Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
Je suis content de te voir dans l'erreur au moins une fois, c'est rassurant.
Euh... ben tu me connais mal, je suis la risée de la team avec mes fautes d'inattention, oublis réguliers et gourances de tout poil :-D
La documentation : http://doc.dotclear.net/2.0/fulltoc
Le module de recherche du forum : http://www.dotclear.net/forum/search.php ?
Hors ligne
Ok, j'ai employé la méthode d'adjaya, le widget s'en trouve donc modifié. Je vais reprendre le tout, pour ceux qui désireraient placer des icônes dynamiquement devant la liste des catégories (side menu), en fonction de leur nom URL. Voici la procédure :
Placer ces 3 fichiers dans un répertoire "adjaya", lui-même placé dans le dossier "plugins" de Dotclear 2 :
_define.php
<?php$this->registerModule(
/* Name */ "Liste des catégories avec icônes",
/* Description*/ "CategoriesList",
/* Author */ "Adjaya",
/* Version */ '1.0',
/* Permissions */ 'admin'
);?>
_admin.php
<?php$core->addBehavior('initWidgets',array('myCategoriesListBehaviors','initWidgets'));
class myCategoriesListBehaviors
{
public static function initWidgets(&$w)
{
$w->create('CategoriesListWidget',__('Liste des catégories avec icônes'),
array('publicCategoriesListWidget','myCategoriesList'));
$w->CategoriesListWidget->setting('title',__('Title:'),'Categories');
$w->CategoriesListWidget->setting('option',__('Extension des images :'),
null,'combo',array('.jpg' => '.jpg', '.png' => '.png', '.gif' => '.gif'));$w->CategoriesListWidget->setting('path',__('Chemin du conteneur :'),'http://','text');
}
}?>
_public.php
<?phpclass publicCategoriesListWidget
{
public static function myCategoriesList(&$w)
{
global $core;
$rs = $core->blog->getCategories();
if ($rs->isEmpty()) {
return;
}
$res =
'<div class="categories">'.
($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').
'<ul>';
while ($rs->fetch()) {
$path = '<li><img src="'.$w->path;
$ext = $w->option.'"/>';
$ico = $path.$rs->cat_url.$ext;
$res .=
$ico.' <a href="'.$core->blog->url.$core->url->getBase('category').'/'.
$rs->cat_url.'">'.
html::escapeHTML($rs->cat_title).'</a>'.
($w->postcount ? ' ('.$rs->nb_post.')' : '').
'</li>';
}
$res .= '</ul></div>';
return $res;
}
}?>
Puis se rendre dans la partie "widgets" du back office de Dotclear 2, drag'n'drop le widget nouvellement crée "Liste des catégories avec icônes", et remplir les champs nécessaires :
- le titre
- l'extension des icônes (doivent toutes avoir la même) : jpg, png, gif
- le chemin du répertoire contenant les images (ex: http://monblog/dc/montheme/img/)
/!\ Les icônes doivent prendre le nom URL de leurs catégorie d'appartenance. Exemple :
- nom de catégorie : "Jeux de rôles"
- nom URL : "Jeux-de-roles"
- nom de l'icône : "Jeux-de-roles.gif"
Et voilà, ça roule. Testé et fonctionnel, même si ce widget peu amplement être amélioré.
:)
Hors ligne
Salut,
J'ai effectué quelques petites modifications pour le rendre plus lisible sous le back office, et que le code fourni puisse être validé xhtml strict (il manquait les (alt="" des images) :
_admin.php :
<?php$core->addBehavior('initWidgets',array('myCategoriesListBehaviors','initWidgets'));
class myCategoriesListBehaviors
{
public static function initWidgets(&$w)
{
$w->create('CategoriesListWidget',__('Liste des catégories avec icônes'),
array('publicCategoriesListWidget','myCategoriesList'));
$w->CategoriesListWidget->setting('title',__('Title:'),'Categories');
$w->CategoriesListWidget->setting('option',__('Extension des images :'),
null,'combo',array('.jpg' => '.jpg', '.png' => '.png', '.gif' => '.gif'));$w->CategoriesListWidget->setting('path',__('Chemin du conteneur :'),'http://','text');
}
}
?>
_define.php
<?php$this->registerModule(
/* Name */ "CatListIcons",
/* Description*/ "Placez des icônes face aux catégories dans le side menu",
/* Author */ "Adjaya",
/* Version */ '1.0',
/* Permissions */ 'admin'
);?>
_public.php
<?phpclass publicCategoriesListWidget
{
public static function myCategoriesList(&$w)
{
global $core;
$rs = $core->blog->getCategories();
if ($rs->isEmpty()) {
return;
}
$res =
'<div class="categories">'.
($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').
'<ul>';
while ($rs->fetch()) {
$path = '<li><img src="'.$w->path;
$ext = $w->option.'"alt=""/>';
$ico = $path.$rs->cat_url.$ext;
$res .=
$ico.' <a href="'.$core->blog->url.$core->url->getBase('category').'/'.
$rs->cat_url.'">'.
html::escapeHTML($rs->cat_title).'</a>'.
($w->postcount ? ' ('.$rs->nb_post.')' : '').
'</li>';
}
$res .= '</ul></div>';
return $res;
}
}?>
Voilà, des corrections mineures, mais nécessaires.
:)
Hors ligne
Merci Nawak c'est génial et ca fontcionne super :o)
Je recherche la même chose pour les liens :P Est-ce que je pourrais avoir une piste sur le type de modifications à faire (qui doit être assez proche de ce que je vois là) pour l'adapter aussi aux liens ?
En tous cas merci c'est Nickel ;)
Un p'tit blog comme ca...
http://couture.jeremy.free.fr/weblog
/!\ Je rejoins le F.I.L.L.E
Hors ligne
Vous n'êtes pas identifié(e).