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:

<div id="content_box">
	
		{if $smarty.get.q == 'all' || !$smarty.get.q}
		<div id="main_content">
		<h4>All girls</h4>
			{foreach from=$params.girls.record item="girl"}
			<div class="content">
				{if $smarty.get.command == 'logsm'} {assign var=command value='log'} 
				{elseif $smarty.get.command == 'regsm'}{assign var=command value='reg'}
				{else} {assign var=command value=$smarty.get.command}
				{/if}
				<a href="?command={$command}&amp;q=one&amp;a={$girl.g_id}&amp;lang={$smarty.get.lang}"><img src="{$girl.g_display}" alt="" /></a>
				<p><a href="?command={$command}&amp;q=one&amp;a={$girl.g_id}&amp;lang={$smarty.get.lang}">{$girl.g_name}</a></p>
			</div>
			{/foreach}
		</div>
		{if $params.sum>16}
		<div id="limit_link">
			{assign var=d value=1}
				{section name=d_link loop=$params.sum start=0 step=16}
				{if $smarty.get.s == $smarty.section.d_link.index}<div class="limit_links">{$d++}</div>
				{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>
				{/if}
				{/section}	
		</div>
		{/if}
Így fest, ha még kommentezve sincs...

<div id="content_box">
	
				<div id="main_content">
		<h4>All girls</h4>
						<div class="content">
				 								<a href="?command=log&amp;q=one&amp;a=9&amp;lang=en"><img src="view/images/thumbnail/kati/PICT9603.jpg" alt="" /></a>
				<p><a href="?command=log&amp;q=one&amp;a=9&amp;lang=en">Kati</a></p>

			</div>
						<div class="content">
				 								<a href="?command=log&amp;q=one&amp;a=10&amp;lang=en"><img src="view/images/thumbnail/katinka/3.jpg" alt="" /></a>
				<p><a href="?command=log&amp;q=one&amp;a=10&amp;lang=en">Katinka</a></p>
			</div>
						<div class="content">
				 								<a href="?command=log&amp;q=one&amp;a=11&amp;lang=en"><img src="view/images/thumbnail/dia/PICT9605.jpg" alt="" /></a>
				<p><a href="?command=log&amp;q=one&amp;a=11&amp;lang=en">Dia</a></p>

			</div>
						<div class="content">
És így fest, ha kommentezve van:

<div id="content_box">
	
		<!---->
		<div id="main_content">
		<h4>All girls</h4>
			<!---->
			<div class="content">
				<!-- 				-->

				<a href="?command=log&amp;q=one&amp;a=9&amp;lang=en"><img src="view/images/thumbnail/kati/PICT9603.jpg" alt="" /></a>
				<p><a href="?command=log&amp;q=one&amp;a=9&amp;lang=en">Kati</a></p>
			</div>
			<!---->
			<div class="content">
				<!-- 				-->
				<a href="?command=log&amp;q=one&amp;a=10&amp;lang=en"><img src="view/images/thumbnail/katinka/3.jpg" alt="" /></a>
				<p><a href="?command=log&amp;q=one&amp;a=10&amp;lang=en">Katinka</a></p>

			</div>
			<!---->
			<div class="content">
				<!-- 				-->
				<a href="?command=log&amp;q=one&amp;a=11&amp;lang=en"><img src="view/images/thumbnail/dia/PICT9605.jpg" alt="" /></a>
				<p><a href="?command=log&amp;q=one&amp;a=11&amp;lang=en">Dia</a></p>
			</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
<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