Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2008-09-20 20:23:39

JC
Membre
Lieu : Lille
Inscription : 2006-07-07
Site Web

Existe-t-il plugin TOC

Bonsoir,

La migration avance tout doucement mais surement.
Je recherche un plugin  ou un code permettent d'afficher la table des matières du site comme le TOC DC1 (*ttp://franck.paul.free.fr/dotclear/?2007/12/07/1246-plugin-table-des-matieres-121).

j'ai recherché sur le forum sans rien trouvé

Avez-vous une idée?
d'avance merci


A+ JClaude
www.chtipecheur.com sous DC 2
www.wambrechies-peche.com sous DC 2

Hors ligne

#2 2008-09-20 20:37:35

chrix
Membre
Lieu : Beausoleil (06)
Inscription : 2008-07-30
Site Web

Re : Existe-t-il plugin TOC

Salut,

J'ai contacté Franck Paul à ce sujet cette semaine. Le développement de la v2 de TOC est prévue, mais pour l'instant, il dit <<  il faut d'abord que je terminev la version suivante du plugin Typo. >>
J'attends TOC 2 avec une indicible impatience.

Hors ligne

#3 2008-09-21 07:40:19

atropos
Membre
Inscription : 2008-05-18

Re : Existe-t-il plugin TOC

le plugin tdm apres quelques manoeuvres de mise au gout de la V2.0 finale fonctionne chez moi


Dotclear c'est comme la lune c'a possède une face cachée alors éclairons là !!!

Hors ligne

#4 2008-10-01 21:05:42

Jessica
Membre
Inscription : 2007-08-26

Re : Existe-t-il plugin TOC

Je ne vois pas bien le rapport entre le plugin DLM et TOC
mais depuis le temps que je cherche à adapter ce plugin DLM a DotClear 2

Je serais bien curieuse de savoir comment tu as fait ?
de même que d'autres ;-)) a priori

Merci d'avance !

Hors ligne

#5 2008-10-01 21:55:41

Tomtom33
Responsable des travaux finis
Lieu : Barcelone
Inscription : 2006-06-13

Re : Existe-t-il plugin TOC

Concernant DLM, c'est sur ma todo list mais j'ai le portage de feedburner en premier ;)


Le lab => http://lab.dotclear.org
Besoin d'un plugin? => http://plugins.dotaddict.org
Besoin d'un thème? => http://themes.dotaddict.org
Besoin d'une astuce? => http://tips.dotaddict.org

Hors ligne

#6 2008-10-08 19:19:19

Jessica
Membre
Inscription : 2007-08-26

Re : Existe-t-il plugin TOC

Je sais pas pourquoi j'en suis venu à parler de DLM
J'ai du m'embrouiller avec TDM
Mais ok ;-)) Tomtom33 et bon courage alors

Pour revenir à TDM, Moi je ne parviens pas à l'utiliser avec le thème par défault de DC 2 (2.0.1)

J'ai une page Table des Matières sans aucune mise-en-forme !

cette page n'est en fait que

<div id="content"><div id="post"><h2 class="post-title">Table des Matières</h2>...

Hors ligne

#7 2008-10-08 19:21:21

Jessica
Membre
Inscription : 2007-08-26

Re : Existe-t-il plugin TOC

Hors ligne

#8 2008-10-08 20:16:11

atropos
Membre
Inscription : 2008-05-18

Re : Existe-t-il plugin TOC

Voilou:
public.php

<?php

# ***** BEGIN LICENSE BLOCK *****

# This file is part of DotClear.

# Copyright (c) 2005 Olivier Meunier and contributors. All rights

# reserved.

#

# DotClear is free software; you can redistribute it and/or modify

# it under the terms of the GNU General Public License as published by

# the Free Software Foundation; either version 2 of the License, or

# (at your option) any later version.

# 

# DotClear is distributed in the hope that it will be useful,

# but WITHOUT ANY WARRANTY; without even the implied warranty of

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

# GNU General Public License for more details.

# 

# You should have received a copy of the GNU General Public License

# along with DotClear; if not, write to the Free Software

# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

#

# ***** END LICENSE BLOCK *****









$core->url->register('tdm','tdm','^tdm(/.+)?$',array('tpltdm','loadtdm'));



/*$core->url->register('createtdm','createtdm','^createtdm(/.+)?$',array('tpltdm','createtdm'));*/



$core->tpl->addValue('tdmurl',array('tpltdm','tdmurl'));







		

class tpltdm extends dcUrlHandlers

{

	public static function tdmwidget(&$w)

	{

		global $core;

		

		if ($w->homeonly && $core->url->type != 'default') {

			return;

		}

		$separateur = "?";

		if ($core->blog->settings->url_scan == 'query_string') {

      $separateur = "&";

      }

		$title = $w->title ? html::escapeHTML($w->title) : __('Summary');

$param = array ($w->ordre,$w->linkinpage);

	

		

/*		$res =

		'<div class="tdm">'.

		'<h2><a href="'.$core->blog->url.$core->url->getBase("tdm").'?ordre='.$w->ordre.'&display='.$w->linkinpage.'">'.

		$title.'</a></h2></div>';*/

		$res =

		'<div class="tdm">'.

		'<h2><a href="'.$core->blog->url.$core->url->getBase("tdm").$separateur.'param='.addslashes(urlencode(serialize($param))).'">'.

		$title.'</a></h2></div>';



		return $res;





}

	public static function tdmurl($ordre) {

		global $core;

		global $blog;
			

				$separateur = "?";

		if ($core->blog->settings->url_scan == 'query_string') {

      $separateur = "&";

      }



		

		

		

		

		$res = '<h2 class="post-title">Table des matières</h2>';





if (!empty($_GET['param'])) {



      $param = $_GET['param']; 



      $param = unserialize(urldecode(stripslashes($param)));

       $ordre = $param[0];

       $display = $param[1];



  } else {   

  $ordre =  'alpha';

        $display = 1;} 

		

/*

   if (!empty($_GET['display'])) {

      $display = $_GET['display'];  

  } else { 



   $display =  1;}  



if (!empty($_GET['ordre'])) {



      $ordre = $_GET['ordre'];  

  } else {  $ordre =  'alpha';} 

  

*/

   

   

  		if ($display ==  1){

  

  $res .= '<p class="post-info-co">';

  

  if ($ordre == 'alpha'){

		$res .= __('alpha').' - ';

$param = array ('chrono',$display);



		$res .= '<a href="'.$core->blog->url.$core->url->getBase("tdm").$separateur.'param='.addslashes(urlencode(serialize($param))).'">'.__('chrono').'</a>';





    $params['order']='post_title ASC';

    $alpha = true;

  } 

  if ($ordre == 'chrono'){

      $param = array ('alpha',$display);

		$res .= '<a href="'.$core->blog->url.$core->url->getBase("tdm").$separateur.'param='.addslashes(urlencode(serialize($param))).'">'.__('alpha').'</a> - ';



		  $res .= __('chrono');



      $params['order']='post_dt ASC';

       $alpha = false;

    }

    



$res .= '</p>';



    }



  $res .= '<ul>';  

  

  if ($ordre != 'category'){



		    $params['no_content'] = true;
		    $params['post_type'] = array('post');

		    $rs = $core->blog->getPosts($params);

		    $debut = true;

		    $categories = $core->blog->getCategories();

		   



			while ($rs->fetch()) {	



		      $post_dt = $rs->post_dt;

		      $post_url = $rs->getURL();

		      $post_title = html::escapeHTML($rs->post_title);

		      $cat_id = $rs->cat_id;

      /*    $cat_title = 	$categories [$cat_id];*/   

          $cat_title = $categories->cat_title;

          $cat_url = $categories->cat_url;



		      if ($alpha){ 

		      

            $ind = $rs->index ();

		        $lettre = substr ($post_title,0,1 );

			      $ind = $ind-1;

		        $rs->index ($ind);

		      

		        $lettre1 = substr (html::escapeHTML($rs->post_title),0,1 );

		      	$ind = $ind+1;

		        $rs->index ($ind);	 

            if (($lettre != $lettre1) OR ($debut)) {

              $debut = false;

              $res .= '<li class="tdtinitiale">'.$lettre.'</li>';

            }

          }

          /*$res .= $ind.$lettre1.$lettre2;   */            

          $res .= '<li class="tdmcontent"><a href="'.$post_url.'">'.$post_title.'</a>, le '.$rs->getDate('').', '.__('category').' "<a href="category/'.$cat_url.'">'.$cat_title.'"</a></li>';







			}



		  } else {  /* tri par catégorie */

		  	$params['no_content'] = true;
			$params['post_type'] = array('post');

		    $rs = $core->blog->getPosts($params);

		    

 		    $categories = $core->blog->getCategories();

		    while ($categories->fetch()) {

		      $tdmcat [$categories->cat_id] =  html::escapeHTML($categories->cat_title);

		    	    

		    }  

		    while ($rs->fetch()) {	

		    

		      $cat_id = $rs->cat_id;		    

		      $resultat[] = array( 

		        'post_date'=>$rs->getDate(''),

		        'post_dt' => $rs->post_dt,

		        'post_url' => $rs->getURL(),

		        'post_title' => html::escapeHTML($rs->post_title),

		        'cat_title' => $tdmcat [''.$cat_id.'']
			

            		);



			}  

		      

		foreach ($resultat as $key => $row) {



     

      $cat_title[$key] = $row['cat_title'];

      $post_dt[$key] = $row['post_dt'];

      $post_url[$key]  = $row['post_url'];

      $post_title[$key] = $row['post_title'];

      $post_date[$key] = $row['post_date'];
      



    }

          array_multisort($cat_title, SORT_ASC, $post_title, SORT_ASC,$resultat);





      		$debut = true; 

      		

      		       $cat ='';

reset ($resultat);

while (list($key, $row) = each($resultat)) {







  

	     /*	foreach ($resultat as $key => $row) {*/

		  $cat1 = $row['cat_title'];



      list($key, $row2) = each($resultat);





      /*  list($key, $row2) = each($resultat);*/ 

  

      prev ($resultat);

   		$cat2 = $row2['cat_title'];



  		if ($debut)

      {

   		     $debut = false;

          $res .= '<li class="tdmcatcontent"><B>'.$cat1.'</B></li>';

      } else {



        if ($cat != '') {

            $res .= '<li class="tdmcatcontent"><B>'.$cat.'</B></li>';

            $cat ='';

        }

        if (($cat1 != $cat2) ){

           $cat = $cat2;

        }

      }

      $res .= '<li class="tdmcontent"><a href="'.$row['post_url'].'">'.$row['post_title'].'</a>, le '.$row['post_date'].'.</li>';

      



      }



      }

      		  $res .= '</ul>';

		return $res;

}



	public static function createtdm() {

		global $core;

		global $blog;		

 /*     $core->blog->themes_path*/

      		$fichierhome = $core->blog->themes_path.'/'.$core->blog->settings->theme.'/tpl/post.html';

      		

      		  $id_fichier = fopen($fichierhome,"r");

      		  

      		    

  $fichiertdm = $core->blog->themes_path.'/'.$core->blog->settings->theme.'/tpl/tdma.html';   

  

    $id_fichiertdm = fopen($fichiertdm, "a+");

      		  

      		  

      		  

  if(file_exists($fichierhome)) 

    $tableau = file($fichierhome);

    $copier = true;

    $div = 0;

  while ((list($cle,$valeur) = each($tableau))and $copier) {



   /*       echo "<p>".$valeur."</p>";*/ 

          fputs($id_fichiertdm, $valeur);  

          if (ereg('<div class="post">', $valeur)) {$copier = false;}

          if (ereg('<div', $valeur)) {$div = $div +1;}

          if (ereg('</div', $valeur)) {$div = $div -1;}

}

$valeur = "{{tpl:tdmurl}}";

          fputs($id_fichiertdm, $valeur);  

          $copier = true;

          while ($copier) {

 $valeur = "</div>";

 $div = $div -1;

 if ($div == 2)  {$copier = false;}

          fputs($id_fichiertdm, $valeur);          

          

          }



$valeur = "

{{tpl:include src='_footer.html'}}

</div> <!-- End #page -->

</body>

</html>";



          fputs($id_fichiertdm, $valeur); 

  fclose($id_fichier);

  fclose($id_fichiertdm);

   		





		

		

		

		

}		



	public static function loadtdm() {

		global $core;







/*		$core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__).'/');*/



		

		header('Pragma: no-cache');

		header('Cache-Control: no-cache');



/*		self::serveDocument('tdm.'.$core->blog->id.'.html','text/html',false);*/

		self::serveDocument('tdm.html');

				exit;

}

}

?>

http://nemesis.trenteansapres.fr/index.php?tdm


Dotclear c'est comme la lune c'a possède une face cachée alors éclairons là !!!

Hors ligne

#9 2008-10-09 10:38:29

Jessica
Membre
Inscription : 2007-08-26

Re : Existe-t-il plugin TOC

Merci atropos mais pour moi du moins, ca ne change rien, apparemment

J'ai remplacé le fichier _public.php de /plugins/tdm/ par celui ci-dessus

J'ai cliqué dans l'administration sur le lien TDM pour que le fichier tdm.html soit créé

NB: avec le thème par défaut,
ce fichier est créé dans /themes/default/ et non pas /themes/default/tpl/
J'ai alors déplacé tdm.html dans /themes/default/tpl/

J'ai vidé les répertoires et fichiers dans /cache/ (via FTP, il y a que comme ca, avec free.fr)
PS: J'ai bien mis l'option "tpl_use_cache" à non

Et j'ai une erreur:

Fatal error: Call to a member function getRelatedFilename() on a non-object in /.../cache/cbtpl/ca/05/ca05526443431ba3427d6bb4d0c6f2b7.php on line 10

voilà voilà... où j'en suis

PS: ce que je ne comprends pas c'est que j'ai toujours des dossiers qui se créés dans /cache/
alors que l'option "tpl_use_cache" est à non

Hors ligne

#10 2008-10-09 13:41:11

adjaya
Membre
Lieu : Provence - Luberon
Inscription : 2006-09-05
Site Web

Re : Existe-t-il plugin TOC

Jessica a écrit :

PS: ce que je ne comprends pas c'est que j'ai toujours des dossiers qui se créés dans /cache/
alors que l'option "tpl_use_cache" est à non

Normal,  le fichier du cache est recalculé à chaque chargement quant on le désactive ( le cache ! ).
C'est en tout cas ce que j'ai constaté,et c'est pratique quand  on fait du dev de plugin.


Photo, Art et Création Numérique : http://benoit-grelier.photo7.fr/

Hors ligne

#11 2008-10-09 17:50:14

Jessica
Membre
Inscription : 2007-08-26

Re : Existe-t-il plugin TOC

Ok, adjaya, j'aurais au moins appris quelque chose ;-)) aujourd'hui

Hors ligne

#12 2008-11-27 23:12:15

Jessica
Membre
Inscription : 2007-08-26

Re : Existe-t-il plugin TOC

Si j'ai bien tout suivi la nouvelle version 1.2 de ce plugin "Typo" est maintenant dispo ;-)) alors on pourrait peut-être donc espérer cette fameuse Table des Matières pour la Noel... non ?

En tout cas moi je n'ai jamais réussi à afficher l'autre plugin "TDM" !

Hors ligne

#13 2008-11-28 12:53:02

JClaude
Membre
Lieu : Lille
Inscription : 2008-05-22
Site Web

Re : Existe-t-il plugin TOC

Un plugin TOC serait vraiment le bienvenue. Ce plugin, s'il n'est pas vraiment utile au blog 100%, est indispensable dès lors qu'un nombre importants de catégories et de billets ont été postés. Il s'agit de site à mi-parcours entre le blog et le site de contenu.
J'ai bien écrit un code php qui liste catégorie par catégorie les billets publiés  mais je ne parviens pas à créer une page template type toc.html adaptée à DC2.
La seule solution (mais que je n'ai pas encore mis en ligne espérant tjs le plugin officiel) est de créer une page autonome en dehors de DC2, ce n'est pas terrible mais fonctionnel.

Hors ligne

#14 2008-11-28 16:04:21

Kozlika
Modo dcTeam
Inscription : 2004-05-08
Site Web

Re : Existe-t-il plugin TOC

http://ateliers.klafoutis.org/public/pl … 0.5.tar.gz

J'ai bidouillé un truc comme ça (par contre je ne le distribue pas car trop de choses sont "en dur" au lieu d'être propremetn paramétrées). Tu peux piocher :-)

Résultat visible ici http://ateliers.klafoutis.org/minitoc


La documentation : http://doc.dotclear.net/2.0/fulltoc
Le module de recherche du forum : http://www.dotclear.net/forum/search.php ?

Hors ligne

#15 2008-11-30 07:42:03

JClaude
Membre
Lieu : Lille
Inscription : 2008-05-22
Site Web

Re : Existe-t-il plugin TOC

JClaude a écrit :

La seule solution (mais que je n'ai pas encore mis en ligne espérant tjs le plugin officiel) est de créer une page autonome en dehors de DC2, ce n'est pas terrible mais fonctionnel.

Finalement, j'ai publié ma toc "maison", visible ici .. Si vous regardé bien l'url, vous vous appercevrez qu'il s'agit d'une page satellite. Je ne trouve pas cela terrible mais ça dépanne.

Hors ligne

#16 2008-11-30 08:58:09

Kozlika
Modo dcTeam
Inscription : 2004-05-08
Site Web

Re : Existe-t-il plugin TOC

Bouhouhou, elle ne te plaît pas ma minitoc ? snif.


La documentation : http://doc.dotclear.net/2.0/fulltoc
Le module de recherche du forum : http://www.dotclear.net/forum/search.php ?

Hors ligne

#17 2008-11-30 13:54:52

fly06
Membre
Inscription : 2007-05-31
Site Web

Re : Existe-t-il plugin TOC

JClaude a écrit :
JClaude a écrit :

La seule solution (mais que je n'ai pas encore mis en ligne espérant tjs le plugin officiel) est de créer une page autonome en dehors de DC2, ce n'est pas terrible mais fonctionnel.

Finalement, j'ai publié ma toc "maison", visible ici .. Si vous regardé bien l'url, vous vous appercevrez qu'il s'agit d'une page satellite. Je ne trouve pas cela terrible mais ça dépanne.

J'ai développé un chti plugin de plan de site visible sur mon site.
Il est moins sophistiqué que celui de Kozlika mais semble répondre à ton besoin.
Si ça t'intéresse fais-moi signe ;)

-Fly06

Hors ligne

#18 2008-11-30 18:13:50

JClaude
Membre
Lieu : Lille
Inscription : 2008-05-22
Site Web

Re : Existe-t-il plugin TOC

Kozlika a écrit :

Bouhouhou, elle ne te plaît pas ma minitoc ? snif.

C'est du beau travail et je crois bien que je vais l'adopter! Désolé de t'avoir fait de la peine, je ne ferai plus, promis!

Hors ligne

#19 2008-11-30 22:47:58

Jessica
Membre
Inscription : 2007-08-26

Re : Existe-t-il plugin TOC

fly06 >>> Est-ce que, on pourrait aussi profiter de ton plugin ?

Kozlika >>> Toi, aussi, tu as fait une Table des Matière ? Je n'ai rien trouvé dans ce forum ou même chez Dotaddict ! J'ai mal cherché ?

Merci

Hors ligne

#20 2008-12-01 06:26:37

Kozlika
Modo dcTeam
Inscription : 2004-05-08
Site Web

Re : Existe-t-il plugin TOC

Jessica, le lien est au message #14. Je ne l'ai pas distribué car il est trop restreint : liste des billets par cagtégorie en ordre ascendant. Je ne sais pas faire en sorte qu'il soit paramétrable, mes connaissances sont trop maigres.


La documentation : http://doc.dotclear.net/2.0/fulltoc
Le module de recherche du forum : http://www.dotclear.net/forum/search.php ?

Hors ligne

#21 2008-12-01 15:27:19

Jessica
Membre
Inscription : 2007-08-26

Re : Existe-t-il plugin TOC

arch! autant pour moi, j'avais cherché un peu partout ;-)) alors que c'était sous mon nez

aussitot essayé, ça "marche" bien (avec mon DC 2.1.3 et PostGreSQL)

même si dans mon cas, un classement par ordre alphabétique aurait était plus pertinent
ça permet d'avoir tous les billets d'un seul coup d'oeil et c'est déjà ça... en attendant ;-)) plus

Bref, Merci d'avoir partager... cette "mini" Table des Matières

PS: C'est donc "normal" que la page MiniToc dans le Tabeau de bord, Extensions, soit vide ?

Hors ligne

#22 2008-12-01 15:29:42

Kozlika
Modo dcTeam
Inscription : 2004-05-08
Site Web

Re : Existe-t-il plugin TOC

Vi : c'est normal. J'avais prévu de devenir vachement fortiche et d'y mettre des paramètres d'options ;-)

(quelle optimiste je fais parfois moi ;-))


La documentation : http://doc.dotclear.net/2.0/fulltoc
Le module de recherche du forum : http://www.dotclear.net/forum/search.php ?

Hors ligne

#23 2008-12-04 20:11:37

nasp
Membre
Inscription : 2005-11-07

Re : Existe-t-il plugin TOC

J'ai installé et j'aime bien le résultat. J'ai fait une seule modification pour avoir la liste des billets par ordre inverse sur les dates comme indiqué dans le fichier _public.php.

Hors ligne

#24 2008-12-04 20:16:27

Kozlika
Modo dcTeam
Inscription : 2004-05-08
Site Web

Re : Existe-t-il plugin TOC

Voilà, super. C'est un plugin pour utilisateurs capables d'esprit d'initiative ;-)


La documentation : http://doc.dotclear.net/2.0/fulltoc
Le module de recherche du forum : http://www.dotclear.net/forum/search.php ?

Hors ligne

#25 2008-12-05 13:57:46

Kompozitor
Membre
Inscription : 2008-06-09
Site Web

Re : Existe-t-il plugin TOC

Hé Génial Kozlika pour ce plugin... Merci merci

Par contre, je n'ai pas l'effet "accordéon" chez moi... Il y a untruc à paramétrer qque part ?

http://kompozitor.fr/ChtiBonheur/index.php?minitoc

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map