Jak se vyhnout tomu, aby enter delal mezery

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Ja
Člen | 260
+
0
-

Ahoj, mozna je to trochu offtopic, ale aktualne tento problem resim v latte. Zde uvadeny priklad je velice zjednoduseny jen pro zachyceni esence.

<?php
{foreach($items as $item)}
	Mam v kosiku {$item}
	{sep},{sep}
{/foreach}
?>

vystup muze byt napr takovyto:

„V kosiku mam jablka , hrusky , svestky“

Vadi mi ta mezera mezi slovem jablka (resp. hrusky) a samotnou carkou. Mozna namitnete, ze tu carku mohu dat hned za {$item}, jenze kod je mnohem slozitejsi, vypisuje se zde spousta promennych a ty carky jsou napriklad jeste nejak podminene. Takze pokud bych to hazel na jednu lajnu, za chvili by v tom byl neskutecny bordel.

Tusite jak tuto samostatne vznikajici mezeru eliminovat? Editor je sublime text2.

Diky!

S pozdravem
Ja

enumag
Člen | 2118
+
0
-
{foreach($items as $item)}
    Mam v kosiku {$item}{sep},{sep}
{/foreach}

Jinak mne nic nenapadá… zalomit můžeš kdekoli, kde ti mezera nevadí.

Editoval enumag (24. 11. 2012 13:37)

vvoody
Člen | 910
+
0
-

Bordel treba premiestniť mimo šablónu a potom ho upratať (refaktorovať) aby to bordel nebol. Akékoľvek iné riešenie, než dať sep hneď za item by bolo imho hackovanie. Jedno také ma napadá: napísať si makro ktoré zachytí výstup kódu ktorý bude obaľovať (tvoj foreach), zmaže biele znaky pred čiarkami a potom ho vypíše.

Ja
Člen | 260
+
0
-

Ja napsal(a):

Vadi mi ta mezera mezi slovem jablka (resp. hrusky) a samotnou carkou. Mozna namitnete, ze tu carku mohu dat hned za {$item}, jenze kod je mnohem slozitejsi, vypisuje se zde spousta promennych a ty carky jsou napriklad jeste nejak podminene. Takze pokud bych to hazel na jednu lajnu, za chvili by v tom byl neskutecny bordel.

Ja
Člen | 260
+
0
-

Jedna se napr. o vypisovani trvalejch adres a tam jsou asi 4 druhy ruznych formatu.

Takze tam mate 4 rozvetveni dle if/else, pricemz posledni polozka stat je povinna

takze strukturove to bude if/elseif/elseif/else a na konci {if $stat}, {$stat}{/if} – je pravda, ze bych to mohl vyclenit do samostatnyho bloku a pak to includovat do kazdy vetve if/else, ale to mi taky neprijde uplne idealni reseni kvuli jedny blby mezere

ViPEr*CZ*
Člen | 817
+
0
-

A co si udělat tu trvalou adresu jako objekt… mohla by pak vracet celej řetězec, formát podle nějakýho parametru a nemusela by ta logika být v latte?

vvoody
Člen | 910
+
0
-

Aj bez tej medzere/čiarky by si to asi zaslúžilo refaktorovať ;)

ic
Člen | 430
+
0
-

Vždy se to dá udělat takto:

{foreach($items as $item)}
    Mam v kosiku {$item}{* obsah košíku *}
    {sep},{sep}
{/foreach}

a je po problému.

Editoval ic (24. 11. 2012 16:20)

Jan Mikeš
Člen | 771
+
0
-

A co toto?:

{foreach($items as $item)}
	{block|strip}
	Mam v kosiku {$item}
	{* random code here *}
	{sep},{sep}
	{/block}
{/foreach}
Ja
Člen | 260
+
0
-

ic: jaky je rozdil od toho meho kodu?

Lexi: vypada to, ze to nevystripuje odentrovani :(

Editoval Ja (1. 3. 2013 20:52)

Filip Procházka
Moderator | 4668
+
0
-

Napiš si helper, který ti adresu naformátuje.

ic
Člen | 430
+
0
-

Ja napsal(a):

ic: jaky je rozdil od toho meho kodu?

Ten komentář tam sežere mezeru. Znak enteru za latte komentářem se kupodivu do výsledného zdrojového kódu HTML stránky nepřenáší (bug nebo feature, nevím). Možná tam ale přejdou odřádkování z následujícího řádku. Nezkoušel jsem.

Ja
Člen | 260
+
0
-

Diky moc vsem za pomoc. Prisel jsem jeste na jeden zpusob, kterym teda se mi to dneska podarilo zlomit. Neni to idealni, ale funguje.

<?php
{nejaky generovany kod}{*


*}, neco neco neco
?>