[RÉSOLU] Mettre les différents mots composant le nom du site entre des balises span

erxyzerxyz Member
14 mars modifié dans Entraide

Bonjour,

Sur WordPress, j'avais un petit plugin sympa qui permettait de mettre un <span></span> autour de chaque mot du nom du site de façon à pouvoir leur appliquer des règles CSS différentes.

Est-ce possible sur PluXml ? Et si oui, comment ?

Merci

Réponses

  • bazooka07bazooka07 Moderator
    14 mars modifié

    Bonjour,
    On peut y arriver en créant un plugin qui utilise le hook ThemeEndBody. Il faut savoir utiliser les expressions régulières et la fonction PHP (preg_replace_callback.
    Si cela t'inspire, tu peux regarder le plugin kzDownload

    A++

  • Bonjour,

    de quel plugin s'agit-il ? Ce serait sympa de l'indiquer pour se faire une idée de ce qu'il est et propose.(configuration, nom de classe, options, etc...)
    Basiquement , c'est du php qui va traiter une chaine, alors la fonction de base peut-être ré-encapsuler (au lieu de réinventer la roue) dans le squelette d'un plugin pour PluXml. As tu tenter quelque chose?

    Cdt

    ♣♣♣♣ <°(((((-{ ~ Mon site avec PluXml: https://re7net.com | Mes plugins pour PluXml : https://github.com/gcyrillus }-))))°> ♣♣♣♣

  • 14 mars modifié

    Sans retour et pour le fun : un plugin qui fait grosso modo ce que tu recherches https://github.com/gcyrillus/plx_SpanMyTitle/tree/main

    Il te faudra mettre les mains dans ton thème (fichier header.php pour le thème par défaut ) et remplacer l'appel aux fonctions natives de pluxml par celles du plugin

    pour afficher le titre avec le lien vers la racineAfficher le titre
    rechercher<?php $plxShow->mainTitle('link'); ?><?php $plxShow->mainTitle(); ?>
    remplacer par <?php if (eval($plxMotor->plxPlugins->callHook('spanMainLinkTitle'))) return; ?> <?php if (eval($plxMotor->plxPlugins->callHook('spanMainTitle'))) return; ?>

    La piste des regex serait meilleur et éviterait de devoir toucher aux fichiers du thème là ou tu veut que cela soit effectif.
    Les regex et moi ne sommes pas encore assez intimes pour que je sois capable de cibler spécifiquement un texte dans un élément particulier et éviter de toucher aux attributs en étant sur de ne pas tout cassé ;)

    Cdt.

    ♣♣♣♣ <°(((((-{ ~ Mon site avec PluXml: https://re7net.com | Mes plugins pour PluXml : https://github.com/gcyrillus }-))))°> ♣♣♣♣

  • erxyzerxyz Member

    Merci pour cette piste. :)

    Je teste et je te fais un retour.

    Mettre les mains dans le thème n'est pas un problème, je suis intégrateur (mais, hélas, pas développeur).

  • erxyzerxyz Member

    Ça fait exactement ce que je cherchais, grand merci ! :)

    Pour info, le plugin WordPress est à cette adresse : https://wordpress.org/plugins/genesis-site-title-styles/

  • erxyzerxyz Member

    Aussi, voilà comment je l'utilise dans un thème en préparation :

    <!-- pas de lien sur le titre en page d'acceuil -->
    <?php  if ($plxMotor->mode == 'home') : ?>
    <h1 class="site-title">
        <?php if(class_exists('spanTitle')) : ?>
            <?php if (eval($plxMotor->plxPlugins->callHook('spanMainTitle'))) return; ?>
        <?php else : ?>
            <?php $plxShow->mainTitle(); ?>
        <?php endif; ?>
    </h1>
    <?php else : ?>
    <p class="site-title">
        <?php if(class_exists('spanTitle')) : ?>
            <?php if (eval($plxMotor->plxPlugins->callHook('spanMainLinkTitle'))) return; ?>
        <?php else : ?>
            <?php $plxShow->mainTitle('link'); ?>
        <?php endif; ?>
    </p>
    <?php endif; ?>
    

    Encore merci. :)

  • Super, j’étais pas très loin et tu sembles tout à fait en mesure de créer tes propres plugins vu la façon dont tu le prends en main sitôt installé.

    Amuses toi à l'occasion d'en faire quelques uns et tu verras que tu as probablement plus de compétences en la matière que moi-même .

    Bonne continuation ;)

    ♣♣♣♣ <°(((((-{ ~ Mon site avec PluXml: https://re7net.com | Mes plugins pour PluXml : https://github.com/gcyrillus }-))))°> ♣♣♣♣

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