MyBB.de Forum
PHP in Templates - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: PHP in Templates (/thread-17210.html)

Seiten: Seiten: 1 2


PHP in Templates - cRaZyYy - 29.10.2010

Huhu, Ich möchte PHP in Templates, ich wollte es wie folgt einbinden (wie aus der Suche hervorging):

Ich habe folgendes in die global.php hinzugefügt:

Code:
ob_start();
include("testpic.php");
$new_pics = ob_get_contents();
ob_end_clean();

Das gab diesen Fehler:

Zitat:Fatal error: Call to a member function query() on a non-object in /web/forum/testpic.php on line 5

Zeile 5-7:

Code:
$first = $db->query("SELECT * FROM `".TABLE_PREFIX."gallery_pic` ORDER BY `ID_PICTURE` DESC LIMIT 3");

while($list = $db->fetch_array($first)) {

Ich weiß jetzt nicht, was ich machen muss um diesen Fehler zu meiden...

Dankeschön - vorab.

Gruß


RE: PHP in Templates - Manuel - 29.10.2010

So wie es aussieht hast du in deiner eingebundenen Datei nicht die global.php von MyBB miteinbezogen.

https://www.mybb.de/doku/haeufig-gestellte-fragen/wie-kann-ich-eine-eigene-seite-erstellen.html


RE: PHP in Templates - cRaZyYy - 29.10.2010

Gibt das nicht ein "Stack-Overflow" ?

Fatal error: Allowed memory size of 50331648 bytes exhausted (tried to allocate 491520 bytes) in /forum/global.php on line 496


RE: PHP in Templates - Michael - 29.10.2010

Der Fehler tritt in der testpic.php auf. Ohne den Inhalt der Datei wird es schwer genaueres zu sagen.

Die zweite Fehlermeldung bedeutet, dass das Skript mehr Speicher benötigt, als in der PHP-Konfiguration erlaubt wurde.


RE: PHP in Templates - cRaZyYy - 29.10.2010

PHP-Code:
<?php


$message 
'<table border="0" cellspacing="1" cellpadding="3" class="tborder"><tr>';

$first $db->query("SELECT * FROM `".TABLE_PREFIX."gallery_pic` ORDER BY `ID_PICTURE` DESC LIMIT 3");

while(
$list $db->fetch_array($first)) {

$thumb $list['thumbfilename'];
$picid $list['ID_PICTURE'];

    
$message .= '<td rowspan="2" class="trow1" align="center" width="120"><a href="http://warriors.pytalhost.de/forum/ezgallery.php?action=view&id='.$picid.'"><img src="http://warriors.pytalhost.de/forum/gallery/'.$thumb.'" /></a></td>
<td class="trow2"><span class="smalltext">'
my_date($mybb->settings['dateformat'],$list['date']) .'</span></td>';
}

$message .= "</tr><tr>";

$first $db->query("SELECT * FROM `".TABLE_PREFIX."gallery_pic` ORDER BY `ID_PICTURE` DESC LIMIT 3");

while(
$list $db->fetch_array($first)) {
$id $list['ID_MEMBER'];
$user get_user($id);
$username format_name($user['username'],$user['usergroup'],$user['displaygroup']);
$message .= '<td class="trow1"><span class="smalltext">Von <a href="http://warriors.pytalhost.de/forum/member.php?action=profile&uid='.$id.'">'.$username.'</a></span></td>';
}

$message .= "</tr></table>";

?>

Gruß (:


RE: PHP in Templates - Michael - 29.10.2010

OK, dann war Manuels Vermutung korrekt. Was passiert, wenn du $message direkt per echo() ausgibst anstatt immer mehr in die Variable zu schreiben?


RE: PHP in Templates - cRaZyYy - 30.10.2010

Genau dasselbe...

Zitat:Fatal error: Allowed memory size of 50331648 bytes exhausted (tried to allocate 491520 bytes) in /forum/global.php on line 496

PHP-Code:
<?php

require "./global.php";

echo 
'<table border="0" cellspacing="1" cellpadding="3" class="tborder"><tr>';

$first $db->query("SELECT * FROM `".TABLE_PREFIX."gallery_pic` ORDER BY `ID_PICTURE` DESC LIMIT 3");

while(
$list $db->fetch_array($first)) {

$thumb $list['thumbfilename'];
$picid $list['ID_PICTURE'];

echo 
'<td rowspan="2" class="trow1" align="center" width="120"><a href="http://warriors.pytalhost.de/forum/ezgallery.php?action=view&id='.$picid.'"><img src="http://warriors.pytalhost.de/forum/gallery/'.$thumb.'" /></a></td>
<td class="trow2"><span class="smalltext">'
my_date($mybb->settings['dateformat'],$list['date']) .'</span></td>';
}

echo 
"</tr><tr>";

$first $db->query("SELECT * FROM `".TABLE_PREFIX."gallery_pic` ORDER BY `ID_PICTURE` DESC LIMIT 3");

while(
$list $db->fetch_array($first)) {
$id $list['ID_MEMBER'];
$user get_user($id);
$username format_name($user['username'],$user['usergroup'],$user['displaygroup']);
echo 
'<td class="trow1"><span class="smalltext">Von <a href="http://warriors.pytalhost.de/forum/member.php?action=profile&uid='.$id.'">'.$username.'</a></span></td>';
}

echo 
"</tr></table>";

?>



RE: PHP in Templates - StefanT - 30.10.2010

Das ist völlig unsinnig, was du machst. Warum baust du den Code nicht direkt in die global.php ein?


RE: PHP in Templates - cRaZyYy - 30.10.2010

Ich wollte den Code als Variable in meinen Templates benutzen.
Über die Suche kam ich auf dieses Verfahren.

Wie ich es nun direkt einbaue, so das dessen, was oben steht, funktioniert - weiß ich nicht.


RE: PHP in Templates - StefanT - 30.10.2010

Mit ob_start musst du arbeiten, wenn du einen Code hast, der mit echo ausgegeben wird. Schreibst du den Code selbst, kann du natürlich gleich Variablen verwenden und benutzen.