Fonction catDescription

Bonjour à tous,

En créant un thème je me rend compte que $plxShow->catDescription renvoie des valeurs de mise en forme

<div class="infos">#cat_description</div>

Je propose une modification pour avoir le choix lors de la création du template

    /**
     * Méthode qui affiche le contenu de la description d'une catégorie
     *
     * @param   format  format du texte à afficher (variable: #cat_description)
     * @param   echo    si à VRAI affichage à l'écran
     * @scope   categorie
     * @author  Stephane F.
     **/
    public function catDescription($format='<div class="infos">#cat_description</div>', $echo=true) {

        $desc = plxUtils::getValue($this->plxMotor->aCats[$this->plxMotor->cible]['description']);
        if($this->plxMotor->mode AND $desc)
            $result = str_replace('#cat_description',$desc, $format);
            if($echo)
                echo $result;
            else
                return $result;
    }

Désolé de pas la proposé en PR, j'ai fais la modif à la volé.

J'ai un string de l'array

Réponses

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    juin 2020 modifié

    Avant d'utiliser $this->plxMotor->cible, il convient de s'assurer que $this->plxMotor->mode == 'categorie'.

    public function catDescription($format='<div class="infos">#cat_description</div>', $echo=true) {
    
        if($this->plxMotor->mode == 'categorie') {
            $id = $this->plxMotor->cible;
            $desc = plxUtils::getValue($this->plxMotor->aCats[$id]['description']);
            if($echo) {
                if(!empty($desc)) {
                    echo str_replace('#cat_description', $desc, $format);
                }
            } else {
                return $desc;
            }
        }
    
        if(!$echo) {
            return '';
        }
    }
    

    Je vais envoyer un PR.

  • Avant d'utiliser $this->plxMotor->cible, il convient de s'assurer que $this->plxMotor->mode == 'categorie'.

    Possible, je n'ai pas regardé cette partie et j'ai laissé le code d'origine.

    J'ai un string de l'array

  • krockroc Member

    Ça serait bien de permettre aussi cela pour les meta, qui sont mis en forme directement.
    <?php $plxShow->meta('$meta') ?> formate directement la valeur avec des balises, ce qui n'est pas très pratique à personnaliser dans un thème.

    Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Tu veux personnaliser quoi ?
    A part utiliser d'autres valeurs pour name dont le content n'est pas stocké dans PluXml, je ne vois rien de plus.
    La méthode a juste besoin d'être refactorisée (switch !!)

  • krockroc Member
    juin 2020 modifié

    En fait, j'aimerai par exemple personnaliser par exemple la balise title de cette façon :
    "titre de l'article"-"catégorie de l'article"-"mon nom"

    Et la meta description :
    "titre de l'article"-"categorie de l'article"-"chapo (x caractères)"

    Là je suis obligé de tout faire à la main, ça me prends des heures, et pas possible de modifier si je me rends compte que ça ne va pas.

  • Je déterre le sujet, mais autre cas bien pratique d'utilisation : utiliser les données des meta pour les insertions meta des réseaux. À moins qu'il existe un plugin qui fasse déjà l'insertion des métas pour les réseaux sociaux ?

  • krockroc Member
    novembre 2020 modifié

    Je crois qu'une demande de modification est en cours sur ce sujet de la mise en forme forcée de PlxShow qui restreint certains usages dont les balises de partage sur les réseaux sociaux.
    https://forum.pluxml.org/discussion/6821/echo-et-return-sur-la-fonction-plxshow-meta/p1

Connectez-vous ou Inscrivez-vous pour répondre.