explode URL – rozumne spracovanie zaznamu z databazy

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

Nette Framework 2.0.1 (revision 94abcaa released on 2012–02–29)
PHP 5.3.9
Netbeans IDE 7.1

Ahoj, snazim sa vytvorit si svoj prvy projekt v Nette a bojujem so zakladnymi vecami. Mam v sablone latte takyto kusok kodu:

<?php
<div class="links">
	{var $links = preg_split('/\r\n|\r|\n/', $usefullinks->content)}
	{foreach $links as $link}
	{var $l = explode('###', $link)}
	<a href="{$l[0]}">{$l[1]}</a><br />
	{/foreach}
</div>
?>

sam viem, ze takto to nevyzera vobec pekne a asi by to explode bolo dobre schovat inam, spravit si na to nejake makro, aby to vyzeralo nasledovne:

<?php
<div class="links">
	{$usefullinks->content|generatelinks}
	{foreach $usefullinks->contentas $link}
	<a href="{$link->url}">{$link->title}</a><br />
	{/foreach}
</div>
?>

alebo hocijako inac, len tomuto navodu som neporozumel dostatocne.

Je to vhodne robit podla toho navodu a pouzit funkciu $set->addMacro() ? Alebo su nejake viac-Nette sposoby?

Toto sa snazim vypisat horeuvedenym sposobom:

http://dailyinfographic.com/###Daily Infographic
http://drawar.com/###Drawar
http://eagereyes.org/###Eagereyes
http://flowingdata.com/###FlowingData
hAssassin
Člen | 293
+
0
-

{$usefullinks->content|generatelinks} neni vlastni makro ale pouze vlastni helper, cili hledej zde. A proc si toto nepripravis uz v presenteru a do sablony si uz neposles rovnou pole $usefulllinks. Jo a bacha, rekl bych ze ti to stejne nebude funguovat, musis to ulozit do promenny: {var $links = $usefullinks->content|generatelinks}.

whitedeath
Člen | 25
+
0
-

hAssassin napsal(a):

A proc si toto nepripravis uz v presenteru a do sablony si uz neposles rovnou pole $usefulllinks.

Lebo som sa k takemu niecomu este nedostal v tutoriale :)

Ale aby som bol presnejsi: nevedel som co je lepsie, ci spravit helper alebo makro, alebo to pripravit v prezenteri a potom to uz len odoslat. Pripravit si to v prezenteri neviem :( A neviem to z dovodu, ze ak si zavolam taketo nieco:

<?php
$this->template->usefullinks = $this->context->createPages()
	->where(array('plist_title' => 'upperfooter', 'title' => 'usefullinks', 'hidden' => false, 'deleted' => false))
	->fetch();
?>

a potom si to dam vypisat, tak mi to vyhodi len nejake pole plne vselicoho co absolutne netusim co znamena, ale tie moje hodnoty, ktore by som chcel tam nie su. Existuje nejaka forma koverzie? ked si tu premennu dumpnem, tak tam nenachadzam nic uzitocne… ziadne potrebne data.

whitedeath
Člen | 25
+
0
-

Aha, tak sa to da vpohode prejst foreachom, co mi predtym neslo neviem preco :( (Preto som sa tejto alternative dalej nevenoval…) Takze to spravim takym sposobom.

Dakujem za pomoc.