Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 4 Gast/Gäste
php in templates
#1
Ich bin dabei einen Image-hoster in mein Forum einzubauen, aber dafür brauche ich dringend php in dem template das ausgegeben wird, aber das ganze geht nicht.

Ist php in Templates nicht möglich ? Wenn nein, wie soll ich es denn sonst machen, und wenn doch was mache ich falsch(siehe code) ?

Code:
<?php

define("KILL_GLOBALS", 1);
define("IN_MYBB", 1);


require("global.php");
if($mybb->user['uid'] == 0)
{
    error_no_permission();
}

add_breadcrumb("Image-uploader");

eval("\$upload .= \"".$templates->get("upload")."\";");

output_page($upload)


?>

Fehler wird übrigens folgender ausgegeben:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/web52/html/forum/upload.php(16) : eval()'d code on line 22

vielen dank im vorraus
#2
1. Nein, nur mit Hilfe dieses Plugins

http://community.mybboard.net/thread-31860.html

Anderer Weg: Werte in Variablen in der upload.php zu speichern, und sie dann per Template ausgeben lassen, das geht. Sieh dir einfach mal die internen MyBB files an (member.php oda so)

2. Dein Code sollte so heißen:
PHP-Code:
<?php

define
("KILL_GLOBALS"1);
define("IN_MYBB"1);


require(
"global.php");
if(
$mybb->user['uid'] == 0)
{
  
error_no_permission();
}

add_breadcrumb("Image-uploader");

eval(
"\$upload = \"".$templates->get("upload")."\";"); 

output_page($upload);

?>
Gruß Manuel
Bitte erst die Suche und die Doku benutzen.
#3
Wie sieht denn dein Template aus?
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
#4
Da ist der Code der bei mybboard.de in dem FAQ stand, für ne eigene Seite + das upload-script in php.

Danke @ Manuel, werde mir das plugin mal angucken und die mybbfiles.



Edit:

Habe mir das plugin draufgetan, jetzt zeigt er zwar das template an, aber ohne upload-form etc.
Oben über dem forum steht:
Parse error: syntax error, unexpected '<' in /home/www/web52/html/forum/upload.php(15) : eval()'d code(75) : eval()'d code on line 31

und da der code nur 19 Zeilen hat, denke ich wirds am template liegen.Also hier:
PHP-Code:
<html>
<
head>
<
title>{$settings['bbname']} - Image-upload</title>
{
$headerinclude}
</
head>
<
body>
{
$header}
<
table border="0" cellspacing="{$theme['borderwidth']}cellpadding="{$theme['tablespace']}class="tborder">
<
tr>
<
td class="thead"><strong>Image-hosting by Afflatus-Arts</strong></td>
</
tr>
<
tr>
<
td class="trow1" align="center">
<?
php

// Einstellungen
$maxsize "1000000"// Maximale Uploadgrösse (40 Kb) 
$uploddir "uploads/"// Upload Ordner
$extensions = array(".jpg"".gif"".png"); // Erlaubte Erweiterungen

if($_POST['action']=="upload")
{
$tmp_name $HTTP_POST_FILES['bild']['tmp_name']; // Der Originalname 
$name $HTTP_POST_FILES['bild']['name']; // Der Originalname 
$size $HTTP_POST_FILES['bild']['size']; // Größe der Datei 
$type $HTTP_POST_FILES['bild']['type']; // Der MIME Type der Datei 

$ext_tmp explode("."$name);
$ext ".".$ext_tmp[(count($ext_tmp)-1)];

if(
in_array($ext$extensions))

if(
$size<=$maxsize && $size!=0)
{
while(
file_exists($uploddir.$newname) || !$newname)
{
$newname md5(uniqid(rand()));
}

if(
move_uploaded_file($tmp_name$uploddir.$newname.$ext))
{
echo 
"Die Datei wurde erfolgreich hochgeladen.<br>"
echo 
"Groesse: ".$size." Byte<br>"
echo 
"Ansehen: "; <a href='".$uploddir.$newname.$ext."'>Zum Bild</a>
echo 
"Einbinden: <input type='text value='<img src='".$uploddir.$newname.$ext."'>' />" 
}
else{echo 
"Fehler: Datei konnte nicht hochgeladen werden! Überprüfe nocheinmal die Eingabe";}
}
else

echo 
"Die Datei ($size) ist ueber $maxsize Bytes oder gleich 0 KB"

}
else

echo 
"Falsches Dateiende: ".$name

}
else

echo 
"<form action='".$_SERVER['PHP_SELF']."' enctype=\"multipart/form-data\" method='post'>";
echo 
"<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".$maxsize."\">";
echo 
"<input type='hidden' name='action' value='upload'>"
echo 
"<table>"
echo 
"<tr>"
echo 
"<td>Datei</td><td><input type='file' name='bild'></td>"
echo 
"</tr><tr>"
echo 
"<td> </td><td><input type='submit' value='Hochladen'></td>"
echo 
"</tr>"
echo 
"</form>";
echo 
"</table>"


?>


</td>
</tr>
</table>
{$footer}
</body>
</html> 


danke, dass ihr mir helft, bin nicht so der mybb-kenner ^^
#5
Du kannst kein PHP im Template benutzen. Allerdings kannst du in der PHP-Datei Variablen für das Template definieren.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
#6
hab doch schon gesagt, dass ich das plugin von manuel aktiviert habe, demnach müsste es ja gehen.
Wie geht das denn mit den Variablen ?
Ne genaue Erklärung bzw nen code-schnipsel wär da echt hilfreich.

vielen dank im vorraus
#7
Mhh wie ich dir bereits sagte, schau dir ein paar Standard Dateien aus dem MyBB an. Ein Blick in die Templates klärt zusätzlich noch deine Frage an Dragon.
Mit deiner Variante lässt sich das nicht sehr elegant lösen.
Gruß Manuel
Bitte erst die Suche und die Doku benutzen.
#8
okay,okay, dachte nur da hier ja viele sowas wissen und können dass man mal schnell hilfe bekommt.
anscheinend nicht.
trotzdem danke, werd wohl ein bisschen rumprobieren.
#9
Ich komm' nicht weiter.
Kann mir denn einer sagen, wie man externen php-code im template "includen" kann ?
#10
Siehe: https://www.mybb.de/forum/thread-6052-po...l#pid43459
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.