Dotclear

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

Annonce

13 février 2024 Sortie de Dotclear 2.29

#26 2007-02-21 22:12:58

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

Re : Changer les fonctions : où, comment ?

Nawak a écrit :

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

#27 2007-02-21 23:04:10

Nawak
Membre
Lieu : à s'baraque !
Inscription : 2006-11-24
Site Web

Re : Changer les fonctions : où, comment ?

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
<?php

class 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

#28 2007-03-01 16:42:59

Nawak
Membre
Lieu : à s'baraque !
Inscription : 2006-11-24
Site Web

Re : Changer les fonctions : où, comment ?

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
<?php

class 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

#29 2008-01-22 15:47:40

Jem
Membre
Inscription : 2005-05-05
Site Web

Re : Changer les fonctions : où, comment ?

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).

Pied de page des forums

Sites map