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

  [Opened] Wikirenderer dans jelix

Posted by lipki on 01/11/2008 16:59

Bonjour, je viens d'atterrir sur la planète jelix. Ca fait un petit moment que je survole ce système, et que j'intercepte les communications radio. Comme j'ai un projet sur le feu, je me penche sur jelix etje décide d'atterir.

Il y a quelque chose que j'aimerais pouvoir faire, écrire directement en {wikirenderer} dans les .tpl .

ex: fichier.tpl

 !!Page index
 
 Bienvenue sur la première __{$nom}__ !
 
 Vous pouvez :
 * rester ici
 * aller plus loin
 * revenir en arrière
 * aller ailleurs
 
 ====
 <div>
   [Retour à l'accueil|{jurl 'listproduits~default:index'}]
 </div>

Question : Est-ce que c'est possible nativement ?

Merci de votre attention.

ps: mon message n'a rien a faire dans cette partie du forum :(

  [Opened] Re: Wikirenderer dans jelix

Reply #1 Posted by laurentj on 01/12/2008 14:46

Salut,

bienvenue :-)

Pour wikirenderer, c'est possible, mais il faut que tu manipules toi même le template pour pouvoir ensuite renvoyer du html.

Exemple :

  $tpl = new jTpl();
  $tpl->assign('nom','toto');
  $wr = new jWiki();
  $content = $wr->render($tpl->fetch('fichier'));

Et le $content contient du html.

  [Opened] Re: Wikirenderer dans jelix

Reply #2 Posted by lipki on 01/18/2008 13:37

Ok je vais essayer ça, merci !

  [Opened] Re: Wikirenderer dans jelix

Reply #3 Posted by laurentj on 01/21/2008 22:49

Attend, je ne comprend pas là. Tu ne peux pas mélanger dans un template du wiki et du HTML. Il faut choisir.

Si tu as un contenu wiki que tu veux convertir en HTML et l'insérer dans un template, tu as alors juste à faire ça.

Le template index.tpl

 <h2>Titre</h2>
 <h3>sous titre</h3>
 <small>2008-01-21 12:30:00</small>
 
 {$leContenuWiki|wiki}

dans le contrôleur

  $maintpl = new jTpl();
  $maintpl->assign('leContenuWiki', $duContenuWiki);
  $rep->body->assign('MAIN', $maintpl->fetch('index'));

  [Opened] Re: Wikirenderer dans jelix

Reply #4 Posted by lipki on 01/21/2008 23:25

Et bien justement, j'aimerais mélanger dans un template du wiki et du HTML !
Mais je veux faire ça bien.

J'explique comme ça tu pourras me dire si je faits fausse route et ou.
Je stock dans la bdd les textes, avec un formatage wiki, ça permet d'avoir dans la base un texte lisible.

Ensuite je récupère ce texte

 $fact = jDao::get('main~di_user');
 $liste = $fact->findAll();

dans une liste.
Plutôt que d'appliquer la modification a chaque texte de la liste,
je décide de préciser dans le tpl que ce texte est en wiki.

 $rep->body->assign('liste', $liste);

 {foreach $liste as $user}
 	<h3>{$user->name_user}</h3>
 	<p>
 		{wiki}
 			{$user->desc_user}
 		{/wiki}
 	</p>
 {/foreach}

Voilà, la méthode me parait logique. En fait j'estime (c'est personnel) qu'il est plus facile de mettre en forme du texte en wiki qu'en htm et dans un tpl, je trouve logique de décrire la structure de la page en html et le texte ( la partie purement rédactionnelle ) en wiki.

Bon partant de là, j'ai créé un plugin jTpl, mais je pense mis être pris comme un bourrin.

Je te laisse juge :

 <?php
 
 	function jtpl_block_html_wiki($compiler, $begin, $param=array()) {
 
 	    if($begin)
 		$content = '
 		if(!function_exists("callback")) {
 			function callback($buffer) {
 				$wr = new jWiki();
 				return $wr->render($buffer);
 			}
 		}
 		ob_start("callback");';
 	    else
 		$content = 'ob_end_flush()';
 	    
 	    return $content;
 	}
 ?>

  [Opened] Re: Wikirenderer dans jelix

Reply #5 Posted by lipki on 01/21/2008 23:57

 {$user->desc_user|wiki}

Je ne savais pas :) Dans ce cas c'est mieux, effectivement, mais si on n'a pas de variable...
Enfin bon, on verra a l'utilisation.

Je ne vois pas à quoi sert de définir une fonction de callback ici.

Moi non plus je ne vois vraiment pas. :)

Merci d'être aussi disponible.

 
Page
  1. Wikirenderer dans jelix