Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kod php w tpl mozliwe?
Pozycjonowanie i Optymalizacja > Projektowanie stron > PHP i MySQL
NetBusters Group
Wiec tak mam prosty skrypcik w php lecz wszystkie pliki stron sa w tpl (Tylko index itp itd w php)

Index wyglada tak wiec nie duzo da ale podam:
CYTAT
<?

include ('library/loader.php');

try {

$config = new config;
$arrayConfig = $config->loadConfig('menu.ini');

registry::set('config', $config);

$db = new db("mysql:host=".$arrayConfig['db']['host'].";dbname=".$arrayConfig['db']['name'], $arrayConfig['db']['user'], $arrayConfig['db']['password']);
$db->query("SET CHARSET utf8");
$db->query("SET NAMES utf8");

registry::set('db', $db);

$router = new router($arrayConfig['router']['defaultClass'], $arrayConfig['router']['startClass'], $arrayConfig['router']['exceptions']);

registry::set('router', $router);

$router->action();



} catch (Exception $e) {

echo 'Wystąpił błąd systemu: '.$e->getMessage();

}


?>


I dotego pliki w tpl reszta i pytanie brzmi tak:) Czy da sie wstawic tu gdzies kodzik z swli zeby działało?
Mion
Tak o ile pliki TPL są includowane do plikow PHP co za tym idzie wykonywane jako całość
tomek_25
Link
CYTAT
Do plików .tpl nie możesz wstawic bezpośrednio kodu php dlatego nie działa.
Mion
To się tyczy tylko tego archaicznego smarty. Nawet w smarty możesz wstawić kod php ale w umownych znacznikach
{php}
// kod php
{/php}
garyoldman
A takie coś nie działa?
KOD
{php}
// kod php
{/php}


EDYTA:
Mion uprzedził...

Dodatkowo:
Ja w jednym z swli, który pozwala na rozbicie linków do tablicy robię tak

1) W index.php sczytuje linki SWL i rozdzielam je na tablice 5 elementową, wynik wstawiam do zmiennej np. $linki
2) Tą zmienną $linki dodaję do widoku za pomocą np za pomocą assign('linki', $linki) (jak są to czyste Smarty)
3) W pliku tpl w pętli po takiej tablicy wypisuje sobie te linki np:
KOD
<ul>
{foreach from=$linki item=link}
      <li>{$link}</li>
{/foreach}
</ul>
NetBusters Group
Nie dziala moze podam kod tpl w ktorym musze wstawic kod

CYTAT
</td></tr><tr><td class="doln"></td></tr>

</tbody></table>

</td>

</tr>

</tbody></table>



<table align="center" cellpadding="0" cellspacing="0">

<tbody><tr>

<td class="foot1">Copyright by NetBusters Group | Valid HTML 4.01 & CSS</td>

d>

</tr>

</tbody></table>

</body></html>
Mion
Ale co nie działa wacko.gif PHP czy SWL.
Jeśli nie jest to oparte na smarty kod php należy umieścić klasycznie w znacznikach:
<?php
// kod testowy php wyświetli uniksowy znacznik czasu
echo "Test PHP". time();
?>
Jeśli jest to oprogramowanie oparte o jakiś inny system szablonów należy szukać w dokumentacji.
Darek82
Dokładnie tak jak pisze Mion - poszukaj w dokumentacji.

Możesz jeszcze zrobić tak, że w pliku w którym zdefiniowane są zmienne dla .tpl (plik ten służy do definiowania zmiennych, PRZED wysłaniem ich do .tpl - taki plik to zwykły php) wstawić kod php i wynik zapisać do zmiennej. I wtedy taką zmienną wyświetlasz normalnie w pliku .tpl tak jak wszystkie inne zmienne.
master
Mam dość podobny problem więc postanowiłem zadać pytanie w tym topicu.

A więc tak:

Mam plik main.tpl, w którym chcę wstawić paginację stron.

I teraz

W pliku main.tpl includuje:

{include_php file='pagination.php'}

Natomiast w pliku php, mam taki kod:

KOD
echo '<p align="center"><a href="strona-'.$zmienna1.'-'.$zmienna1.'.html">poprzednia</a> | Strona '.$zmienna2.' | <a href="strona-'.$zmienna3.'-'.$zmienna3.'.html">następna</a></p>';


Chodzi o to żeby na stronie wyświetlało się np.: <a href="http://www.mojadomena.pl/strona-1-1.html>poprzednia</a> | Strona 2 | <a href="http://www.mojadomena.pl/strona-3-3.html>następna</a>

Problem polega na tym, że w miejscu gdzie powinny pobierać się numerki stron (w linku) jest pusto, tak jakby zmienne były puste. Jeżeli natomiast, bezpośrednio w pliku main.tpl wkleję kod:
KOD
<a href="strona-{$zmienna1}-{$zmienna1}.html">

Link buduje się prawidłowo.

Moje pytanie zatem: Czy w pliku pagination.php powinienem w jakiś sposób, jeszcze raz zdefiniować wartości zmiennych ?
garyoldman
Spróbuj w tym pliku pagination.php sczytać te zmienne bo nie są tam widoczne. Użyj czegoś takiego tam:
$zmienna1 = $this->get_template_vars("zmienna1");

Wydaje mi się, że powinno to pomóc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2012 Invision Power Services, Inc.