ugrás a tartalomhoz

Smarty template és html kód és a html forrás...

simi · 2006. Aug. 12. (Szo), 14.33
Az a gondom, hogy a Smarty template és html együtt nem túl szép kódot eredményez. Egyelőre úgy oldom meg ezt a problémát, hogy kommentezem
a smarty kódokat. De nincs ennél jobb megoldás?

Pl.:
Ez a .tpl kódrészlet:
  1. <div id="content_box">  
  2.       
  3.         {if $smarty.get.q == 'all' || !$smarty.get.q}  
  4.         <div id="main_content">  
  5.         <h4>All girls</h4>  
  6.             {foreach from=$params.girls.record item="girl"}  
  7.             <div class="content">  
  8.                 {if $smarty.get.command == 'logsm'} {assign var=command value='log'}   
  9.                 {elseif $smarty.get.command == 'regsm'}{assign var=command value='reg'}  
  10.                 {else} {assign var=command value=$smarty.get.command}  
  11.                 {/if}  
  12.                 <a href="?command={$command}&amp;q=one&amp;a={$girl.g_id}&amp;lang={$smarty.get.lang}"><img src="{$girl.g_display}" alt="" /></a>  
  13.                 <p><a href="?command={$command}&amp;q=one&amp;a={$girl.g_id}&amp;lang={$smarty.get.lang}">{$girl.g_name}</a></p>  
  14.             </div>  
  15.             {/foreach}  
  16.         </div>  
  17.         {if $params.sum>16}  
  18.         <div id="limit_link">  
  19.             {assign var=d value=1}  
  20.                 {section name=d_link loop=$params.sum start=0 step=16}  
  21.                 {if $smarty.get.s == $smarty.section.d_link.index}<div class="limit_links">{$d++}</div>  
  22.                 {else}<div class="limit_links"><a href="?command={$command}&amp;q=all&amp;s={$smarty.section.d_link.index}&amp;lang={$smarty.get.lang}">{$d++}</a></div>  
  23.                 {/if}  
  24.                 {/section}    
  25.         </div>  
  26.         {/if}  
Így fest, ha még kommentezve sincs...
  1. <div id="content_box">  
  2.       
  3.                 <div id="main_content">  
  4.         <h4>All girls</h4>  
  5.                         <div class="content">  
  6.                                                 <a href="?command=log&amp;q=one&amp;a=9&amp;lang=en"><img src="view/images/thumbnail/kati/PICT9603.jpg" alt="" /></a>  
  7.                 <p><a href="?command=log&amp;q=one&amp;a=9&amp;lang=en">Kati</a></p>  
  8.   
  9.             </div>  
  10.                         <div class="content">  
  11.                                                 <a href="?command=log&amp;q=one&amp;a=10&amp;lang=en"><img src="view/images/thumbnail/katinka/3.jpg" alt="" /></a>  
  12.                 <p><a href="?command=log&amp;q=one&amp;a=10&amp;lang=en">Katinka</a></p>  
  13.             </div>  
  14.                         <div class="content">  
  15.                                                 <a href="?command=log&amp;q=one&amp;a=11&amp;lang=en"><img src="view/images/thumbnail/dia/PICT9605.jpg" alt="" /></a>  
  16.                 <p><a href="?command=log&amp;q=one&amp;a=11&amp;lang=en">Dia</a></p>  
  17.   
  18.             </div>  
  19.                         <div class="content">  
És így fest, ha kommentezve van:
  1. <div id="content_box">  
  2.       
  3.         <!---->  
  4.         <div id="main_content">  
  5.         <h4>All girls</h4>  
  6.             <!---->  
  7.             <div class="content">  
  8.                 <!--                 -->  
  9.   
  10.                 <a href="?command=log&amp;q=one&amp;a=9&amp;lang=en"><img src="view/images/thumbnail/kati/PICT9603.jpg" alt="" /></a>  
  11.                 <p><a href="?command=log&amp;q=one&amp;a=9&amp;lang=en">Kati</a></p>  
  12.             </div>  
  13.             <!---->  
  14.             <div class="content">  
  15.                 <!--                 -->  
  16.                 <a href="?command=log&amp;q=one&amp;a=10&amp;lang=en"><img src="view/images/thumbnail/katinka/3.jpg" alt="" /></a>  
  17.                 <p><a href="?command=log&amp;q=one&amp;a=10&amp;lang=en">Katinka</a></p>  
  18.   
  19.             </div>  
  20.             <!---->  
  21.             <div class="content">  
  22.                 <!--                 -->  
  23.                 <a href="?command=log&amp;q=one&amp;a=11&amp;lang=en"><img src="view/images/thumbnail/dia/PICT9605.jpg" alt="" /></a>  
  24.                 <p><a href="?command=log&amp;q=one&amp;a=11&amp;lang=en">Dia</a></p>  
  25.             </div>  
 
1

Sajnos

Skullkid · 2006. Aug. 12. (Szo), 14.39
Sajnos ezt én is tapasztaltam, mikor Smarty-t használtam. Szórakozni kell vele, nekem csak úgy sikerült olyanra megcsinálnom, amilyenre szerettem volna (kommentek nélkül), hogyha a tabokat töröltem.
2

Err gondoltam én is

simi · 2006. Aug. 12. (Szo), 14.41
Erre gondoltam én is, de akkor meg átláthatatlan a forrás:(
3

Nekem sikerült...

Skullkid · 2006. Aug. 12. (Szo), 14.44
Nekem sikerült úgy megcsinálnom hogyha a böngészőben nézem a forrást, akkor úgy nézett ki hogy vannak tabok, de magában a kódban volt is, meg nem is. Szerintem játszadozz vele, ha pl. törlöd a
  1. <div id="main_content">  
előtti tabokat, akkor szerintem a forrásban jó helyen lesz.
4

Kicsit hack

Anonymous · 2006. Aug. 12. (Szo), 16.55
Ha erre szeretnél figyelni akkor azt lehet még csinálni, hogy fogsz egy output plugint ami a templatek cachelésénél lefut, ott egy html tidy-t asszem php modulba van, nekünk forgatott binárisba volt. És ő szépen rendberakta a forráskódot, igaz kicsit visszafogta a gépet. De valamit valamiért :P
5

re

toxin · 2006. Aug. 12. (Szo), 17.01
meg a link

http://hu.php.net/tidy

auto-indent módot keressétek benne
6

logikus

ashnur · 2006. Aug. 13. (V), 11.58
nekem olyan nem volt, hogy tobb vagy kevesebb tab jelenjen meg mint ami a forrasba van, includenel beleszamolta az elotte levoket. foreachnel is ha nem tettem entert ele akkor ugyancsak beleszamolta.. de hat ez logikus.
7

Igen, de

simi · 2006. Aug. 13. (V), 12.48
Igen, de pont azt szeretném, hogy átlátható, bekezdésekkel tagolt legyen
mind a template forrás, mind a html forrás.
Például az egyik - "opelbonto.hu" - munkádnál is úgy tűnik, hogy emiatt
nem túl szép a html forrás.
Ez nem kritika akar lenni, csak én ezt el akarom kerülni.
Attól még tökéletes a munkád.
Csak engem idegesít, hogy amikor az ember elkezdi
a html-t tanulni, aztán később ráébred, hogy bizony a css mellőzése, és az orrba - szájba táblázat nem a követendő út. Aztán belebotlik a php-be, és sikítva fetreng a gyönyörtől:), hogy sikerül egy dinamikus oldalt csinálnia.
De akkor kiderül, hogy nem igazán jó út a html és php keverése.
Persze nem hisz másoknak, csak mikor valami komolyabb portálocskát csinál akkor ébred rá:)
És akkor azt gondolja, mi sem egyszerűbb ennél, és készít függvényeket, amiknek csak az a dolguk, hogy echo-zák a html-t.
Aztán ráébred, hogy ezzel a problémával nem ő találkozik először.
Sőt nagyszerű template-rendszerek vannak erre a célra.
És akkor megtanul még egy "nyelvet", a template-ét. Aztán már csak ezzel csinál szinte minden fejlesztést. De akkor megnézi a html forrást és elgondolkodik, hogy mikor kezdte a html-t tanulni, bizony nem voltak-e szebbek azok a források, amiket szépen tagolva akkor írt:))))))
8

Igen de2

toxin · 2006. Aug. 13. (V), 13.53
miért érdekes hogy néz ki, az gépi parser-nek készült az se aggódik miatta :S ha meg szépre akarod berakod tidy és sanyi

--
forrást megmax FireBug-al nézel de az DOM alapján rakja össze, ott se lényeges