Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] générer des liens à partir d'un champ texte

Posted by Dubphil on 03/01/2008 00:16

Bonsoir,

Je me prend la tête depuis des heures sur un truc qui parait tout bête, mais qui me résiste :

j'ai un champ texte dans ma bdd qui contient des urls (une par ligne) et je souhaiterai dans le template transformer chaque url en lien,

il y a une astuce ?

je vois bien que je pourrai utiliser {...|regex_replace:...} et {...|strip:...} mais j'arrive à rien en tirer...

Philippe

  [Opened] Re: générer des liens à partir d'un champ texte

Reply #1 Posted by bballizlife on 03/01/2008 11:05

 <a href="{$ton_url}">Nom du lien</a>

Tu cherche bien loin et de façon bien compliquée une réponse toute simple. Ou alors je n'ai rien compris à ta problèmatique.


N'importe comment c'est dans la doc

  [Opened] Re: générer des liens à partir d'un champ texte

Reply #2 Posted by Dubphil on 03/01/2008 19:11

ok comme d'hab je me suis mal expliqué ^^

donc j'ai un champ texte dans une BDD qui stocke une liste d'url : les urls ont été saisies une par ligne dans le formulaire :

exemple du contenu de mon champ lien dans ma bdd :

 ######## contenu du champ 'liens'########
 # http://www.google.fr[retour chariot]  #
 # http://www.jelix.org[retour chariot]  #
 # http://www.unautre.com[retour chariot]#
 # ...etc                                # 
 #########################################

donc $record->liens me ramène le bloc de texte en entier. Or comme $record est issu du "foreach" dans mon template je ne vois pas comment traiter cela dans mon controleur, ni dans mon template d'ailleurs ;)

Philippe

  [Opened] Re: générer des liens à partir d'un champ texte

Reply #3 Posted by laurentj on 03/01/2008 20:53

Salut

fonction explode en php. tu récupère alors un tableau php, et tu l'assigne dans ton template... Enfin bref, fais-en ce que tu veux.

  [Opened] Re: générer des liens à partir d'un champ texte

Reply #4 Posted by lipki on 03/02/2008 11:49

En gros tu doit faire le traitement dans le contrôlleur

Je te montre un exemple par rapport a ce que j'ai déjà fait pour moi.

 $dao = jDao::get('ta_table');
 $list = $dao->findAll();
 
 $this->_tpl->assign('list', $list);
 
 $table_url = array();
 foreach( $list as $record )
 	foreach( $record as $key => $val )
 		if( $key == 'ton_champ' )
 			$table_url[$record->id] = explode( "\r", $val );
 
 $this->_tpl->assign('table_url', $table_url);

Et une fois dans ton template.

 {foreach $list as $record}
 	(...)
 	{foreach $table_url[$record->id] as $url}
 		<a href="{$url}">$url</a>
 	{/foreach}
 	(...)
 {/foreach}

A toi de tester cette solution.

 

  [Opened] Re: générer des liens à partir d'un champ texte

Reply #5 Posted by Dubphil on 03/03/2008 08:49

ok merci, je voulais éviter de parcourir deux fois ma liste issue du finfAll, mais si on a pas le choix alors tant pis je vais faire l'explode dans le contrôleur...

  [Opened] Re: générer des liens à partir d'un champ texte

Reply #6 Posted by lipki on 03/03/2008 09:31

Il faut bien avoir en tête que les templates non sont pas la pour faire du traitement, mais seulement de l'affichage.

par contre je pense que tu pourrais modifier ta structure de bdd

placer plusieurs informations dans un seul champ, c'est recréer un nouveau système de base de donnée a l'intérieur d'un champ de base de donnée, ça fait redondance, et ce n'ai pas optimal. Et la je ne fait que répéter ce qu'un maitre de stage ma dit il y a quelque année.

 
Page
  1. générer des liens à partir d'un champ texte