Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pliki .tpl
Forum PHP.pl > Forum > Przedszkole
verona
Witam. W pewnym cms mam pliki tpl, i jeden odpowiada na sidebary, w których jest menu itp. Jak w takim pliku tpl użyć kodu php, skoro ma takie rozszerzenie?

To przykładowy fragment kodu tpl:
  1. <div style="clear: both;">&nbsp;</div>
  2. <div id="mw_snoopy_col_1"></div>
  3. <div id="mw_snoopy_col_2">
  4. <div id="mw_snoopy_col_text_top" class="mw_snoopy_frii"><h2>menu</h2></div>
  5. <div class="mw_snoopy_content">
  6. <div id="mw_snoopy_friend">
  7. <?php include('form.php'); ?>
  8. </div>
  9. </div>
  10. <div id="mw_snoopy_col_3"></div>
  11. </div>


w form.php jest formularz, a dokładnie jedno pole i button. Jak użyję include w tym kodzie, to nic mi nie wyświetla, tak jakby nie było tej linijki. Dlaczego? Jak w inny sposób wyświetlić kod w innym pliku wywołując go w tpl?
bemol
a czy ten plik tpl includujesz do pliku php?
Darti
mozliwe że to smarty ?
{include_php file='form.php'}
bemol
nie sądze ;p jesli ktos sie bierze za smarty to juz wie ze je w ogole uzywa, a kolega wyzej chyba nie wie ;p
verona
Nie mam pojęcia, to CMS Datalife Engine, a w pliku tpl to wywołania czegoś używa się czegoś takiego: {vote}, {info}, {itp}. Chciałbym wywołać swój skrypt php, ale nie mam pojęcia jak.

Tak wyglądają te znaczniki w index.php, ale nie wiem jak dodać tu swój skrypt:



Kod
$tpl->set ( '{calendar}', $tpl->result['calendar'] );
$tpl->set ( '{archives}', $tpl->result['archive'] );
$tpl->set ( '{tags}', $tpl->result['tags_cloud'] );
$tpl->set ( '{vote}', $tpl->result['vote'] );
$tpl->set ( '{topnews}', $topnews );
$tpl->set ( '{login}', $login_panel );
$tpl->set ( '{info}', "<span id='dle-info'>" . $tpl->result['info'] . "</span>" );
$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );



Jak dodałem swoją linijkę, i zamieniłem np. $zmienna na include to skrypt pojawia mi się na początku strony, bez względu czy wywołam go w pliku tpl :/
Czyli gdy użyję czegoś takiego w index.php to wyświetla mi się na początku strony, a nie w menu:



Kod
$tpl->set ( '{forma}', include('plik.php') );



Jak poprawnie użyć tego {*} lub wywołać skrypt innym sposobem?



Gdy użyłem tego od poprzednika:



Kod
{include_php file='form.php'}



To wyświetlił się w tym miejscu sam tekst, czyli zamiast skryptu to "{include_php file='form.php'}", tak jakby to było zwykłe zdanie, a nie kod.


Co robić?
crackcomm
  1. <?php
  2. $tpl->set ( '{forma}', file_get_contents('form.php'));
  3. ?>

może ?
EDIT: Literówka...
verona
Cytat(crackcomm @ 5.07.2009, 19:28:26 ) *
<?php
$tpl->set ( '{forma}', "<php include('form.php'); ?>" );
?>
może ?


I znowu nic nie widać :/
crackcomm
  1. <?php
  2. $tpl->set ( '{forma}', file_get_contents('form.php'); ?>" );

i w pliku tpl wpisz to {forma}...
verona
Cytat(crackcomm @ 5.07.2009, 19:48:02 ) *
  1. <?php
  2. $tpl->set ( '{forma}', file_get_contents('form.php'); ?>" );

i w pliku tpl wpisz to {forma}...


Niestety ten kod kompletnie nie działa :/ nie wiem co w środku robi "?>"


Edit: Zrobiłem z tego coś takiego:


Kod
$tpl->set ( '{forma}', file_get_contents('form.php'));



Nie wiem dlaczego ale zamiast pustego pola i przycisku, wyświetliło mi dwa pola i pod spodem kod z php :/ Dlaczego go nie wykonuje tylko wyświetla zawartość?
crackcomm
aaaa bo w pliku form.php masz kod php myślałem, że tylko html ;p
verona
Cytat(crackcomm @ 5.07.2009, 20:01:29 ) *
aaaa bo w pliku form.php masz kod php myślałem, że tylko html ;p


Więc da się to jednak zrobić z php? Cieszę się że już coś w tym menu wyświetliło, ale jednak nie skutecznie :/
bemol
bo ta funkcja + ten system szablonów pokazuje kod pliku.
musisz gdzies znalezc dokumentacje tego i poczytac.
ale czemu formularz chcesz inkludować?
napisz w tym pliku tpl na sztywno formularz, a jesli chcesz przekazac cos do tego formularza to zrob:
  1. <?php
  2. $tpl->set ( '{cos_tam}', $jakas_zmienna );
  3. ?>


i spróbuj w pliku tpl napisac {cos_tam} a powinno przekazac. nie wiem jakiego systemu szablonów uzywa ten CMS, ale na pewno nie Smarty.
verona
Więc może opisze to dokładniej. Formularz przerabia link (downloader wrzuty), i po naciśnięciu buttona ma się otworzyć ta strona (najlepiej same pobieranie, bez nowej karty).

Więc skoro zrobię w tpl na sztywno formularz, i gdy wcisnę button to jak on ma wysłać zmienną do php, aby skrypt wykonał przekształcanie linku bez samego otwierania php, i jak wszystko zrobi to włączy tą stronę z przerobionego linku?

Czyli button ma otworzyć stronę, ale link uzyskać dzięki przefiltrowaniu przez plik php. Jak takie coś zrobić? Jest to możliwe, aby przez cały czas była włączona główna strona, i pobieranie włączało się samoczynnie?


Strona główna z formularzem (tpl) ----> wysyłanie zmiennej do plik.php -----> otwieranie przerobionego linku


Edit: Udało się. Formularz napisany na sztywno w tpl i wysyłanie zmiennej do php. Proste smile.gif Dzięki za pomoc!
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-2025 Invision Power Services, Inc.