[Résolu] MySkinSelect KO !

novembre 2012 modifié dans Entraide
Salut,

J'ai essayé d'installer MySkinSelect sur un nouveau site (ma 1ère fois avec la v 5.1.6).

J'ai copié le code indiqué dans la sidebar ... mais quand je choisis un template et que je clique OK, la page est rechargé telle quelle : le template n'est pas changé ! :-(
(Par contre, depuis la partie admin, le changement de template fonctionne)

Qu'est ce que j'ai oublié ?


Merci d'avance,
L@u

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour
    Ne serait-pas un problème de cache avec ton navigateur.
    nb: le code pour changer de theme est à mettre dans chaque theme que tu proposes.

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • novembre 2012 modifié
    Je n'avais pas mis le code sur chaque thème : c'est fait maintenant ... mais cela ne change rien !
    Ca ne marche toujours pas ! :(
    Une autre idée ?


    Le site de test est à l'adresse :
    XXXXX (EDIT: nom du site temporaire supprimé)


    Au fait à quoi sert le choix "aucun" dans le choix des thèmes de la page Paramètres ==> Option d'affichage ?
    Quand je le choisis, j'ai une erreur sur mon site ! ;-)


    Merci d'avance,
    L@u
  • Quelle version du plugin utilises-tu ? A priori ce n'est pas la dernière car le cookie permettant à pluxml de savoir quel style utilisé se nomme "style" sur ton site alors qu'il devrait se nommer différemment.

    Télécharge la version 1.1.1
  • Salut Jerry,

    Non, c'est bien la version 1.1.1 que j'utilise !
    Je l'ai re-téléchargé ... et en regardant dans le code, c'est bien le cookie style qui est utilisé.
  • Personne n'a d'idée de ce qui cloche dans mon MySkinSelect ?
  • Tu as vidé le cache comme demandé par Stéphane ?
  • novembre 2012 modifié
    Ouaip, J'ai vidé le cache et toujours pareil !
    Et pour vous, ça marche sur mon site ? (parce que je sais que cela fonctionne par ailleurs ... comme sur le site de Jerry ... qui est une bonne démo de thèmes ;) ).
  • novembre 2012 modifié
    Bon, j'ai fini par trouver : le message #4 aurait du me mettre la puce à l'oreille.

    Il y a une erreur dans la version 1.1.1 du plugin.
    La ligne 62 devrait être :
    setcookie('plxMySkinSelect', $_POST, time()+3600*24*2);


    Merci quand même. ;-)

    Stéphane, pense à corriger le plugin.


    Ah, au fait, encore une question (j'ai cherché dans la doc mais je n'ai pas trouvé) : quel est le code pour tester si un plugin est actif ?

    Je voudrai pouvoir écrire quelque chose comme :
    <?php
    if plugin.MySkinSelect->activated() {
    print plugin->getLang("themesSelectTitle");
    eval($plxShow->callHook('MySkinSelect'))
    ?>
  • StéphaneStéphane Member, Former PluXml Project Manager
    Ha merci pour cette correction. j'étais loin d'imaginer que ça pouvait venir de là... ^^

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Jerry WhamJerry Wham Member
    novembre 2012 modifié
    @ComputingFroggy :
    <?php
    $plxMotor = plxMotor::getInstance();
    if (isset($plxMotor->plxPlugins->aPlugins['MySkinSelect']) && $plxMotor->plxPlugins->aPlugins['MySkinSelect']['activate'] == 1) {
        print plugin->getLang("themesSelectTitle");
        eval($plxShow->callHook('MySkinSelect'));
    }
    ?>
    

    Le $plxMotor = plxMotor::getInstance(); dépend de là où tu appelles ton code. Il faudra peut-être appeler une instance de plxAdmin à la place, ou rien si ça déjà été fait...
  • Merci Jerry.

    J'ai donc écrit , dans sidebar.php
    <?php
    if (isset($plxMotor->$plxPlugins->aPlugins) && $plxMotor->$plxPlugins->aPlugins == 1) {
    print "<h3>";
    $plxMotor->plxPlugins->getInstance('MySkinSelect')->lang('L_SKIN_THEMES_TITLE');
    print "</h3>";
    eval($plxShow->callHook('MySkinSelect'));
    }
    ?>

    Mais il y a une erreur. Je vais creuser et je vous tiens au courant.
  • ComputingFroggy a écrit:
    Merci Jerry.

    J'ai donc écrit , dans sidebar.php
    <?php
    if (isset($plxMotor->$plxPlugins->aPlugins) && $plxMotor->$plxPlugins->aPlugins == 1) {
    print "<h3>";
    $plxMotor->plxPlugins->getInstance('MySkinSelect')->lang('L_SKIN_THEMES_TITLE');
    print "</h3>";
    eval($plxShow->callHook('MySkinSelect'));
    }
    ?>

    Mais il y a une erreur. Je vais creuser et je vous tiens au courant.

    Me suis trompé. Il ne faut pas écrire $plxMotor->$plxPlugins mais $plxMotor->plxPlugin.
    Et dans la sidebar, il faut appeler une instance de plxMotor pour que ça fonctionne.
  • novembre 2012 modifié
    Bon, au final, voici ce qu'il faut écrire :
    if (isset($plxMotor->plxPlugins->aPlugins) && $plxMotor->plxPlugins->aPlugins == 1) {
    print "<h3>";
    $plxMotor->plxPlugins->getInstance('plxMySkinSelect')->lang('L_SKIN_THEMES_TITLE');
    print "</h3>";
    eval($plxShow->callHook('MySkinSelect'));
    }


    Il suffit de rajouter un répertoire lang avec une seule entrée (pour le moment ;) ) par fichier : L_SKIN_THEMES_TITLE


    @Stéphane : cela pourrait être intégré dans la nouvelle version du plugin. Cela permet de créer les thèmes avec le code pour afficher le sélecteur de thèmes (ci dessus). Et le sélecteur n'est visible que si le plugin MySkinSelect a été activé !
    Je peux te passer les fichiers lang en EN, ES, IT ... et FR, si tu es intéressé.
    Au fait, un peu bizarre le nom, non : MyThemeSelect n'aurait il pas été plus cohérent ?
    ... mais bon, je suis un peu (beaucoup) un coupeur de cheveux en quatre.


    Merci à tous ... et à Jerry en particulier.
  • Jerry WhamJerry Wham Member
    novembre 2012 modifié
    Ce n'est pas
    if (isset($plxMotor->plxPlugins->aPlugins['plxMySearch'])
    
    mais bien
    if (isset($plxMotor->$plxPlugins->aPlugins['MySkinSelect'])
    
    qu'il faut écrire.

    ComputingFroggy a écrit:
    @Stéphane : cela pourrait être intégré dans la nouvelle version du plugin. Cela permet de créer les thèmes avec le code pour afficher le sélecteur de thèmes (ci dessus). Et le sélecteur n'est visible que si le plugin MySkinSelect a été activé !
    Pas bête sauf que le sélecteur ne peut plus alors être placé où l'on veut.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour
    A mon avis il est inutile d'écrire du code pour tester si le plugin est actif ou non pour afficher le selecteur de thème. Il suffit d'activer ou désactiver le plugin dans la gestion des plugins. Cela revient au même et le fichier du theme (sidebar.php) n'est pas polluer par du code inutile. Il suffit juste de laisser l'appel du hook de MySkinSelect.

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • @Jerry :
    autant pour moi ... mais, de fait c'est :
    if (isset($plxMotor->plxPlugins->aPlugins)


    Attention au $ devant plxPlugins

    Je ne vois pas pourquoi le sélecteur ne peut pas être placé où l'on veut. Le code donné est un exemple. A chacun de l'adapter selon où on le met.


    @Stephane:
    Pas vraiment d'accord.
    Si on désactive le plugin et que le code est écrit ... on verra tout ce qu'il y a autour du sélecteur (le nom thème et tout ce qu'on peut ajouter autour).
    Si le thème est prévu pour afficher ou pas, le sélecteur, cela facilite grandement son utilisation par des utilisateurs qui ne veulent pas trop mettre les mains dans le cambouis.
    A toi de voir.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Si le plugin n'est pas activé, tu ne vois pas le sélecteur dans le code html de la page

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

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