Inne Dodanie nowej podstrony - problem z wgraniem dwóch szablonów

Założony przez Daniel Praźmo.

wersja skryptu MyBB: 1.6.2
adres forum: http://podziemieopowiadan.pl/forum
na czym polega problem (screen, opis, komunikaty):
Zrobiłem podstronę według poradnika na MyBBsite. Wszystko było dobrze, kiedy wczytywałem zaledwie zawartość szablonu do pliku, jednakże, jako, że w szablonach nie można używać php, a jest mi on potrzebny, podzieliłem szablon na dwie części, dając w pliku funkcję echo pomiędzy nimi, ale, jak mozna zobaczyć na http://podziemieopowiadan.pl/forum/quiz.php efekt nie jest taki jak oczekiwałem.

Tutaj zawartość quiz.php:

<?php
define('IN_MYBB', 1);
require "./global.php";

add_breadcrumb("Quiz z okazji Światowego Dnia książki", "quiz.php");

eval("\$podstr = \"".$templates->get("Quiz1")."\";");
echo "Hello World!";
eval("\$podstr = \"".$templates->get("Quiz2")."\";");
output_page($podstr);
?>

Obydwa szablony są dostępne.

@edit
Już poprawiłem. Domyśliłem się, że za wyświetlanie odpowiada funkcja output_page. (Ech, ta moja znajomość php :P)

<?php
define('IN_MYBB', 1);
require "./global.php";

add_breadcrumb("Quiz z okazji Światowego Dnia książki", "quiz.php");

eval("\$podstr1 = \"".$templates->get("Quiz1")."\";");
eval("\$podstr2 = \"".$templates->get("Quiz2")."\";");
output_page($podstr1);
echo "Hello World!";
output_page($podstr2);
?>


Mimo wszystko prosiłbym o pozostawienie topicu dla potomnych.
:: Akcja DZIĘKUJĘ ZA POMOC ::
Pomocy udzielam jedynie na forum. Wszystkie rzeczy wykraczające poza tą dziedzinę wykonuję odpłatnie.
TaniDedyk.pl
Błąd polega na tym, że nie możesz używać echo przed puszczeniem nagłówków (a funkcja output_page jak widać to w MyBB realizuje [to i wiele innych rzeczy]).
Moim zdaniem wywołanie jej 2 razy to również błąd, lepiej byłoby tak:


<?php
define('IN_MYBB', 1);
require "./global.php";

add_breadcrumb("Quiz z okazji Światowego Dnia książki", "quiz.php");

eval("\$podstr1 = \"".$templates->get("Quiz1")."\";");
eval("\$podstr2 = \"".$templates->get("Quiz2")."\";");
eval("\$page= \"".$templates->get("quiz_calosc")."\";");

output_page($page);
?>


Czyli dodajesz dodatkowy szablon, który łączy w sobie te mniejsze. Właśnie w ten sposób sami twórcy MyBB organizują poszczególne "sekcje" generowanych podstron na forum, warto więc brać z nich przykład.
Tyle, że w templates nie działa kod php, co utrudnia pracę ;]
:: Akcja DZIĘKUJĘ ZA POMOC ::
Pomocy udzielam jedynie na forum. Wszystkie rzeczy wykraczające poza tą dziedzinę wykonuję odpłatnie.
No to elementy tego formularza wrzucasz do zmiennych używanych w szablonie - twórcy MyBB zrobili tak cały silnik forum z ogromem formularzy :)
Spróbuję, gdy będę ponownie potrzebował podstrony, gdyż poprzednia już została użyta i nie jest potrzebna, bo event się skończył ;)

Ale w teorii, jeśli zdefiniowałbym jakiekolwiek zmienne w pliku php i wywołał je w szablonie, to powinno śmigać, mam rację?
:: Akcja DZIĘKUJĘ ZA POMOC ::
Pomocy udzielam jedynie na forum. Wszystkie rzeczy wykraczające poza tą dziedzinę wykonuję odpłatnie.
Tak, powinno śmigać w właśnie o to chodzi w użyciu szablonów.


Użytkownicy przeglądający ten wątek:

1 gości