Autor Zpráva
jirivo
Profil *
Mám šablonu na zobrazování článků a potřeboval bych do ní vložit php kód s fotogalerií, ale šablona mi php nebere, pouze html kód. V souboru s php skriptem jsem teda vytvořil proměnnou nazvanou $fotogalerie, která by měla obsahovat kód toho, co se pak objeví v šabloně na místě textu $fotogalerie. Potřeboval bych do šablony dostat příkaz include, ale vůbec nevím jak. Když to vložím to té proměnné tak se mi includovaná stránka objeví hned na začátku, ale já potřebuju aby se zobrazila až pod článkem.

Kód šablony:

<table width="92%" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr> 
    <td colspan="2" width=100% height=25 valign=top> 
      <div align="left"><b><font size="2">$art_row[aktivita]</font></b></div>
    </td>
  </tr>
  <tr> 
    <td width="65%" height="2" valign="bottom"> <b>Publikov&aacute;no </b>: $art_date | 
      <b>Autor</b> : <span class="cls1">$art_row[autor]</span><br>
      <b>Kategorie</b> : <a href="$cat_url">$cat_row[cat_name]</a> | <b>Počet zobrazen&iacute;</b> 
      : $art_row[art_views] $rating<br>
    </td>
    <td width="35%" valign="bottom" height="2"> 
      <div align="right"> <img src="$images_path/small_A.gif" onClick="javascript:mydata.className='cls1';" value='A' class=btncls align="absbottom"> 
        <img src="$images_path/large_A.gif" onClick="javascript:mydata.className='cls2';" value='A' class=btncls align="absbottom"> 
        <img src="$images_path/large_A.gif" onClick="javascript:mydata.className='cls3';" value='A' class=btncls align="absbottom"> 
        <img src="$images_path/ex_large_A.gif" onClick="javascript:mydata.className='cls4';" value='A' class=btncls align="absbottom"> 
        <br>
        <img src="$images_path/printer.gif" align="absbottom"> <a href="$root_path/print.php?art_id=$art_row[art_id]">Tisk</a> 
        | <img src="$images_path/send_to_friend.gif" align="absbottom"> <a href="$root_path/send_to_friend.php?art_id=$art_row[art_id]">Poslat emailem</a></div>
    </td>
  </tr>
  <tr> 
    <td colspan="2"> 
      <hr color=#cccccc noshade size="1" width="100%" align="left">
    </td>
  </tr>
  <tr valign="top"> 
    <td colspan="2" class=cls1 name=mydata id=mydata> 
    $art_row[text]</td>
  </tr>
  <tr> 
    <td colspan="2"><br>
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr> 
          <td> $pgs </td>
          <td align=right>&nbsp;</td>
        </tr>
      </table>
    </td>
  </tr>
  <tr> 
    <td colspan="2" align=left><hr color=#cccccc noshade size="1" />

    $fotogalerie

    <br /><br />

</td>
  </tr>
  <tr>
    <td colspan="2" align=right>$article_rating </td>
  </tr>
</table>
Costím
Profil *
a když dáš místo $fotogalerie
include "fotogalerie.php";


?
Nevím jestli jsem pochopil co vlastně chceš..
jirivo
Profil *
Právě to vůbec nefunguje, ta šablona vůbec nereaguje na php skripty
Kubiro
Profil
nj.. protože tam nemáš nejspíš ty zobáky...

<?php
include "fotogalerie.php";
?>


všude kde máš php script tak musí být mezi zobákama <?php a ?>
jirivo
Profil *
To právě taky nefunguje, je to asi tím, že má ta šablona koncovku tpl, ten skript se musí právě vyvolat ze stránky clanky.php v nové proměnné $fotogalerie kam se vloží ten kód, a ta proměnná se pak zobrazí v té šabloně
MCKAY
Profil
jirivo:
Logicky, jak má server poznat, že chceš aby se na stránku nahlíželo jako na php skript? Nejlépe příponou, takže přidej dynamickou příponu a ujisti se, že to máš nahrané na serveru.
AM_
Profil
To jste tady vážně nikdo ještě neviděl template systém? Ono to totiž opravdu někdy nejde, pokud to ten systém neumožňuje :)
jirivo
obecně mi nepřijde dobré řešení používat template systémy a snažit se do nich nacpat cizí skripty jako fotogalerie. Poradil bych ti šablonový systém Smarty, který toho umí opravdu hodně (včetně vkládání PHP), je dobře zdokumentovaný a není těžký k pochopení, ale asi už se ti to nebude chtít předělávat.
Jinak si snad leda zkus upravit současný systém nebo lépe pročíst jeho dokumentaci - třeba umí nějakým speciálním zápisem vložit PHP.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: