Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
Hum... J'attends encore un peu ou je publie aujourd'hui une nouvelle version de mrvbToC avec le patch proposé en #17 ?
Tu peux, mes réflexions ne seront porteuses de modifs que pour la version 2.11 (ou suivantes) de Dotclear
Dotclear addicted since 2004
Hors ligne
Autre question : dans le code proposé, on s'appuie sur la langue du blog, ce qui va forcer un ordre de tri particulier, y compris sur des blogs multilingues, ça peut être gênant, c'est la raison pour laquelle je privilégiais entre autre pour pgsql le C.UTF8 plus générique.
Le problème c'est que de base pgsql ne propose que 2 collations "C" et "POSIX" (pas utf8).
En conséquence C.UTF8 n'est pas toujours disponible.
C'est pourquoi il faut interroger pgsql pour connaitre les collations disponibles.
Actuellement le patch privilégie la langue du blog au détriment de C.UTF8 mais la priorité peux être inversé (sous réserve d’existence)
si aucune des collations n'est disponible on se rabat sur un simple tri avec lowercase.
Après réflexion, pour ce qui est de l'ajout d'une colonne dans le tableau l10n, il est peut-être possible de s'en passer.
Car je pense que l'ordre de tri d'une langue donnée ne doit pas changer en fonction de la région. Dans ce cas on peut faire, comme dans le patch proposé, prendre la première collation de langue correspondant sans tenir compte de la région. (si c.UTF8 n'existe pas)
Pour ce qui est de sqlite il semble le tag langue type fr lui suffise. (Autre piste, voir si il est possible de créer une collation utf8)
Il reste une chose a tester. Il est possible de créer des collations dans pgsql. Reste a voir avec quelles permissions et comment le faire.
Ca fait donc quelques lectures et est a effectuer
Pour changer la priorité entre la langue et C.UTF-8 iil suffit de changer Break de branche dans le if
while ($_rs->fetch()) {
if(strtolower(substr($_rs->f('collname'), 0, 2)) == $_lang) { // 1ere ligne avec fr_XX
$collate = ' ORDER BY P.post_title COLLATE "'.$_rs->f('collname').'" ';
} elseif($_rs->f('collname') == 'C.UTF-8') {
$collate = ' ORDER BY P.post_title COLLATE "'.$_rs->f('collname').'" '; // C.UTF-8
break;
}
}
A+ Gilles
Hors ligne
Nouvelle version, la v0.3.7
- Correction bug lors de la prise en compte des caractères diacritiques avec une base de données 'pgsql'. Merci à Gvx pour ses tests et son patch (celui proposé en #17)
Comme d'hab, plus d’infos et lien pour télécharger chez moi et sur DotAddict.
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Mirovinben,
suite a mes recherches et tests, j'ai trouvé une solution pour être indépendant de la langue du blog.
Voici le patch en question:
if (DC_DBDRIVER == 'mysqli' || DC_DBDRIVER == 'mysql') {
$collate = ' ORDER BY P.post_title COLLATE utf8_unicode_ci ';
} elseif (DC_DBDRIVER == 'pgsql') {
$_rs = $core->con->select("SELECT * FROM pg_collation WHERE (collcollate LIKE '%.utf8')");
if(!$_rs->isEmpty()) {
$collate = ' ORDER BY P.post_title COLLATE "'.$_rs->f('collname').'" ';
}
} elseif (DC_DBDRIVER == 'sqlite' && class_exists('Collator') && method_exists($core->con->link(),'sqliteCreateCollation')) {
$utf8_unicode_ci = new Collator('root');
if ($core->con->link()->sqliteCreateCollation('utf8_unicode_ci',array($utf8_unicode_ci,'compare'))) {
$collate = ' ORDER BY P.post_title COLLATE utf8_unicode_ci ';
}
}
Pour les explications, voir ici http://dev.dotclear.org/2.0/ticket/2198#comment:14
A+ Gilles
Hors ligne
Nouvelle version, la v0.3.8
- Optimisation dans la prise en compte des caractères diacritiques quelque soit le type de base de données supportée par Dotclear. Merci à Gvx pour ses tests et son patch proposé en #29.
Comme d'hab, plus d’infos et lien pour télécharger chez moi et sur DotAddict.
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Bonjour Mirovinben,
Tout d'abord, merci pour ce plugin et ton travail.
En revanche, je n'ai pas très bien compris comment mettre en place cette table des matières. Je veux que la table des matières apparaisse sur une Page, comment dois-je procéder ?
Hors ligne
Pour utiliser le widget en dehors de la sidebar, il faut passer par une page statique créée avec le plugin "related" dans laquelle on insère le widget avec les paramètres kivonbien selon la syntaxe décrite ici.
Je propose un exemple d'implémentation dans mon blog de test là.
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
C'est tout à fait ce que je cherche. Il me fait donc le plugin Related en plus.
Hors ligne
Oui. Tu peux le trouver sur DotAddict.
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Une fois installé, Related Pages devient Pages connexes ?
Hors ligne
Voui...
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Bon, reste à comprendre comment ça fonctionne tout ça. C'est pas simple.
Hors ligne
Le principe de cet excellent plugin (related / related page / pages connexes) est de récupérer un fichier html ou php placé dans un certain répertoire et de l'insérer comme contenu dans un billet d'un type spécial ("related" et non "post" ni "page") n'ayant ni catégorie ni mots-clés ni possibilité de commenter et étant hors flux (contrairement aux billets "normaux") mais pouvant être accessible depuis le blog et/ou de l'extérieur (préfixe d'url par défaut = "static") .
Dernière modification par Mirovinben (2017-12-14 17:25:45)
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Remarque :
-1- Si le fichier inclus a comme extension ".php", le fichier contiendra (ou pas) du code PHP qui sera interprété quelque soit le réglage du blog (cf "tpl_allow_php" de about:config).
-2- Si le fichier inclus a comme extension ".html", le fichier pourra contenir des marqueurs de template.
Donc, dans le cas d'une utilisation de <tpl:Widget> il faut que l'extension du fichier inclus soit ".html" et non ".php".
Dernière modification par Mirovinben (2018-01-11 05:41:47)
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Bon, up, car rien compris....
Hors ligne
Rien compris à quoi ?
Si tu veux placer un widget ailleurs que dans la sidebar il te faut...
- soit l'intégrer dans un fichier template de ton thème (home.html par exemple)
- soit l'intégrer dans un fichier xxx.html qui sera lié à une page de type "related", comme le permet le plugin "related / related page / pages connexes" que tu peux installer depuis dotaddict
Ensuite tu récupères l'URL de cette page et la mets à disposition dans un billet, un widget texte ou toute autre façon habituelle de proposer un lien dans ton blog.
L'exemple de mise en œuvre que je t'ai proposé en #32 utilise
- une page de type "related"
- accessible via http://www.mirovinben.fr/blogtest/index.php?static/ToC,
- titrée "Table des matières"
- avec l'URL spécifique "ToC"
- et qui inclut un fichier
- que j'ai nommé "ToC.html" ("Choisissez un fichier local dans votre dépôt de pages connexes")
- placé via FTP dans le répertoire précisé dans l'onglet "Options", item "Chemin du dépôt des pages incluses" des paramètres du plugin "related".
Le fichier "ToC.html" contient, outre quelques explications, le code suivant :
<tpl:Widget id="mrvbToC">
<setting name="title"></setting>
<setting name="sortby">title</setting>
<setting name="selected">1</setting>
<setting name="count">1</setting>
<setting name="page">1</setting>
<setting name="position">1</setting>
<setting name="static">1</setting>
<setting name="hideposts">1</setting>
</tpl:Widget>
Et c'est tout.
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Merci, j'ai enfin avancé : https://www.matosvelo.fr/index.php?static/toc
Y a-t-il moyen de rajouter sur cette TOC, en face du titre, la date de publication sous forme dd/mm/yyyy ?
Hors ligne
Super !
Ta demande est techniquement faisable mais je crains une complexification du widget :
- date avant/après le titre ?
- paramétrage du format de la date ?
- avec ou sans l'heure ?
pour chacun des trois types (post, page, related)
Faut que je fasse des essais... Mais pas dans l'immédiat.
Dernière modification par Mirovinben (2018-03-20 06:06:20)
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Pas de souci, en effet, si ça complique trop les choses, pas certain que le jeu en vaille la chandelle.
Hors ligne
Nouvelle version, la v0.3.11
- corrige un bug constaté lorsqu'un blog n'a aucune catégorie.
Merci à nanart pour ses tests ayant permis notamment de détecter ce bug.
Comme d'hab, plus d’infos et lien pour télécharger chez moi et sur DotAddict.
Dernière modification par Mirovinben (2018-09-02 07:24:14)
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Je ne peux garantir le bon fonctionnement de cette extension que jusqu'à la version 2.13.1 de Dotclear et la version 5.5 de PHP.
Remarque : Philippe l'a testée avec succès avec Dotclear 2.16.4 sous PHP 7.4
(https://forum.dotclear.org/viewtopic.ph … 41#p344541)
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Bonjour. Juste pour dire que mrvbToc fonctionne encore très bien chez moi sous PHP 8.0.5, base MariaDB (MySQL) 8.0.25, et dotclear 2.19-dev \o/.
Quelques soucis de design en activant le script qui permet de plier-déplier les listes, mais c'est probablement dû à mon thème.
Hors ligne
Merci, Philippe, c'est une excellente nouvelle.
Le B.A.BA : https://abc.dotaddict.org
La doc DC2 : https://fr.dotclear.org/documentation/2.0
Mes extensions : https://www.mirovinben.fr/blog/index.ph … pluginsDC2
Mes marqueurs de template : https://www.mirovinben.fr/blog/index.php?post/id3553
Hors ligne
Vous n'êtes pas identifié(e).