[plugin] kzSkinSelect ou choisir parmi un des thèmes installés
Allez, un petit dernier pour finir l'année en beauté.
Suite au passage de bâon dans le staff de PluXml, il y a une grande campagne de test sur différents thèmes.
J'ai également quelques thèmes qui trainent au fond de mon disque.
Mais parmi tous les plugins qui trainent dans la nature, je n'ai pas trouvé chaussure à mon pied comme la Belle au Bois Dormant.
J'ai donc plongé les mains dans le cambouis pour avoir un outil qui va bien : le plugin kzSkinSelect.
Vous pouvez passer en revue tous les thèmes installés sur votre serveur de test sans avoir à utiliser de hook personnalisé. Cool !
- Démonstration chez Free.fr avec PluXml 5.8.9
- Démo de Pluxml
- Démonstration chez AlwaysData
Télécharger la dernière version de ce magnifique plugin kzSkinSelect.
- 2022-12-03: version 1.2.5 - Add hook plxMotorPreChauffageBegin
- 2022-11-11: version 1.2.4 - fix FILTER_SANITIZE_STRING obsolète avec PHP 8.1.0
- 2022-11-01: version 1.2.3 - fix quand un template n'existepas
- 2022-08-23: version 1.2.2 - Fix compatiblité PHP 5.6 et Free.fr
- 2021-11-10 : version 1.2.0 - intégration du sélecteur de thèmes dans la sidebar + download à a volée
- 2021-06-02 : diverses optimisations
- 2018-12-30 : Fix erreur dans .htaccess qui empêche l'affichage de l'icône du plugin
- 2018-12-29 : 1ère publication
Suite au passage de bâon dans le staff de PluXml, il y a une grande campagne de test sur différents thèmes.
J'ai également quelques thèmes qui trainent au fond de mon disque.
Mais parmi tous les plugins qui trainent dans la nature, je n'ai pas trouvé chaussure à mon pied comme la Belle au Bois Dormant.
J'ai donc plongé les mains dans le cambouis pour avoir un outil qui va bien : le plugin kzSkinSelect.
Vous pouvez passer en revue tous les thèmes installés sur votre serveur de test sans avoir à utiliser de hook personnalisé. Cool !
- Démonstration chez Free.fr avec PluXml 5.8.9
- Démo de Pluxml
- Démonstration chez AlwaysData
Télécharger la dernière version de ce magnifique plugin kzSkinSelect.
- 2022-12-03: version 1.2.5 - Add hook plxMotorPreChauffageBegin
- 2022-11-11: version 1.2.4 - fix FILTER_SANITIZE_STRING obsolète avec PHP 8.1.0
- 2022-11-01: version 1.2.3 - fix quand un template n'existepas
- 2022-08-23: version 1.2.2 - Fix compatiblité PHP 5.6 et Free.fr
- 2021-11-10 : version 1.2.0 - intégration du sélecteur de thèmes dans la sidebar + download à a volée
- 2021-06-02 : diverses optimisations
- 2018-12-30 : Fix erreur dans .htaccess qui empêche l'affichage de l'icône du plugin
- 2018-12-29 : 1ère publication
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu ne pourrait pas en profiter pour faire sur Github, comme Stéphane, un repository compatible qui me permettrait d'afficher automatiquement tous tes plugins (plus mises à jour) sur les pages de mon centre de ressources ?
Des exemples ici.
https://ressources.pluxopolis.net/
En outre, cela me permettrait, comme quelques autres, d'intégrer tes œuvres dans l'administration de mon nouveau plugin jpbMultidepots qui, greffé sur les dépôts compatibles, propose téléchargement, installation, mises à jour et nouveautés des dépôts sélectionnés.
Là c'est un site entièrement statique généré automatiquement sur mon PC avec mon gestionnaire de dépôt de plugins, thèmes, scripts et plus.
Une fois généré sur mon PC, je fais un git push origin master pour faire la mise à jour du site en ligne.
Tu as une doc sur les fichiers que tu as besoin pour ton plugin ou il faut que j'analyse ton code ( pas trop le temps pour l'instant ) ?
As-tu remarqué que mon dépôt gère les thèmes ?
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Oui, bien sûr et je vais évaluer ça juste après avoir testé kzSkinSelect.
En fait, je l'ai déjà récupéré en local et commencé à regarder la source mais il me vient une question qui me titille depuis longtemps. Il y a-il moyen de supprimer du dépôt les plugins/thèmes ?
Sur ton précédent dépôt, cela était facile mais là, plusieurs fichiers sont impactés par la présence d'un plugin et je n'ai pas encore trouvé (quoi que pas encore cherché) comment retirer les items facilement.
As-tu prévu quelque chose ?
Heu...
Qui c'est ce bâon ?
kzSkinSelect fonctionne parfaitement et un seul mot. Félicitation !
J'ai envoyé ça en privé.
J'attaque l'étude de ton nouveau dépôt.
Très bon plugin bazooka07, merci !
3 principes sont appliqués pour gérer mon dépôt de plugins :
- un seul fichier index.php à installer. Les dossiers et les fichiers images, CSS, .. sont créés automatiquement à la 1ère visite du site
- on privilégie le protocole FTP pour administrer le dépôt. On évite ainsi les limites imposés par PHP (taille, vitesse). Et puis, c'est le protocole qui est fait pour.
- les catalogues de plugins, thèmes sont générés automatiquement : nouveaux plugins, catalogue trop vieux ou absent
les catalogues des plugins, thèmes, ... sont au format JSON et stockés dans le dossier workdir
les plugins sont à déposer dans le dossier plugins qui est créé automatiquement à la 1ère visite du site ( on sait gérer un dépôt vide )
pour les thèmes, c'est le dossier thèmes
idem pour les scripts
Si on supprime un plugin dans le dossier plugins, il suffit de supprimer le fichier workdir/plugins.json et le dossier workdir/assets/plugins. Ils seront recréés à la prochaine visite du dépôt.
les images ( icon.*, preview.* ) sont extraites des archives zip et stockées dans les dossiers workdir/assets/plugins, workdir/assets/thèmes, ... Elles sont renommés avec le nom du plugin ou du thème
index.php sait générer un site statique pour le stocker dans les pages Github. Certainement aussi chez Gitlab.
Index.php gére la sécurité CORS pour Javascript. Donc les contraintes imposées par certains hébergeurs sur curl() ou file_get_contents peuvent être contournées en Javascript. Y compris avec api.github.com (V3)
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Toujours est-il que ça a l'air de fonctionner au poil et que jusqu’ici, il a l'air bien plus pratique que Repositorix.
Reste à trouver le moyen d'afficher les plugins/thèmes/scripts dans les pages d'un site comme j'ai si bien réussi sur ressources.pluxopolis.net
Une petite idée en passant.
N'y aurait-il pas moyen d'afficher une alerte donnant des derniers plugins/thèmes/scripts intégrés dans le repo ?
Bonjour,
Petite mise à jour de ce plugin :
Télécharger version 1.1.0
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Petite mise à jour rapide :
Même lien de téléchargement que précédemment.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Bonsoir,
J'aurai souhaité afficher le select de thème en haut de la sidebar, et non pas fixé en bas.
Est-ce qu'il faut que je modifie le plugin pour ajouter un hook, ou bien la possibilité existe-t-elle déjà?
Cordialement
Bonjour,
Le plugin ajoute quelques règles CSS avec le hook "ThemeEndHead()".
L'affichage se fait en position absolue (display: fixed). Pour déplacer le <select>, il suffit de modifier les valeurs de bottom et right. Eventuellement remplacer bottom ou right par top ou left. 1vh correspond à 1% de la hauteur de la fenêtre du navigateur. A remplacer éventuellement par une valeur en rem.
L'affichage est indépendant de la sidebar. On a aucune garantie que chaque thème présente la même structure HTML
Pour intégrer le <select> dans la sidebar, il faut modifier le hook "ThemeEndHead()" et utiliser les expressions régulières pour localiser la sidebar dans le flux html.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
@cpalo Bonjour,
Tu peut éventuellement aussi modifier le plugin en faisant usage du hook indexEnd pour rechercher une balise et y inserer le formulaire
exemple de modification désolé @bazooka07 si j'abime ton code
raccourcie des modifs: ajout du hook themetag() à la volée et utilisation du hook indexEnd à la place de ThemeEndHead pour cibler toute balise aside (inspirer de hookMyTheme ).
edit ajout d'une constante pour facilement modifier le tag ou string à accrocher pour y inserer le selecteur de théme
HS La mise en forme générale sur le forum est vraiment galère ... on en arrive a ne plus savoir s'il faut utiliser du html , du markdown ou un mixe des deux , ni lesquels fonctionnent ensemble selon le moment ou l'on post , j'ai même des post qui ne prennent que le json au moment de la réedition , ça rend un peu schizo, non ?
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
Je voyais plutôt quelque chose comme
ou dans une page statique
Ce que tu décris est la façon dont est codé pour être utiliser le plugin https://github.com/Pluxopolis/plxMySkinSelect ou le plugin https://github.com/Pluxopolis/plxMySearch , ce n'est pas le cas du plugin de bazooka qui intègre le formulaire à partir du hook ThemeEndBody() , donc invariablement juste avant la fermeture de body , sauf a utiliser le hook IndexEnd et modifier et redévelopper le plugin en conséquences. Le plugin de bazooka est développer pour ceux qui ne veulent ou ne savent pas mettre les mains et la souris dans le code
La modification que j'ai faites dans le post précédent , n'a changer que le hook utilisé et mis une constante aisément modifiable en debut de script pour t'aider à trouver la chaine la plus pertinente (une balise, une chaine de mots,..) dans tes thèmes pour injecter le sélecteur de thèmes de bazooka07. Je n'ai rien redévelopper, juste tordu un peu avec 2 coups de marteau. peut-etre devrait tu simplement utilise le plugin plxMySkinSelect .. en le reinjectant manuellement dans chacun des thème
cdt
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
Si j'ai cela en début dans ma sidebar, comment dois-je modifier ton code pour que cela fonctionne.
Dans ton code, petite erreur car tu as laissé le css initial ce qui fait apparaitre le selecteur fixé en bas comme dans le plugin original
L'interêt de kzSkinSelect par rapport à plxMySkinSelect c'est justement le fait qu'on n'ait pas besoin de modifier les thèmes qu'on veut tester.
Mais effectivement si on veut qu'il soit toujours visible quelque soit le thème, il faut que son affichage ne soit pas lié à un thème.
pour placer le selecteur dans
<div class="block-skin-select">
il te suffit juste de recopier ce morceau dans la constante ou il y a pour le moment<aside>
.Pour le CSS, il se trouve injecter dans la fonction
public function ThemeEndHead() {}
.Tu peut le réecrire ou mettre un lien direct vers une feuille de style à la palce du html/css injecté.Tu peut aussi , le vider, voir retirer ce hook du plugin et injecter tes styles dans la config CSS du plugin coté site si tu utilises une version récente de PluXml.
Cdt
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
Effectivement il faut utiliser le hook ThemeEndBody pour ne pas avoir à modifier tous les thèmes.
La difficulté est de reconnaitre la sidebar principale dans le contenu généré par PluXml ($output dans index.php)
Comme il n'y a jamais de recommendation officielle, c'est un peu la foire aux aveugles. Donc on recherche une <aside> ou <div> qui répond à une des conditions suivantes:
En cas d'échec, on affiche le sélecteur comme avant, en bas et à droite de la fenêtre. Pour rappel un article peut être affiché sans sidebar.
En bonus, on peut créer à la volée l'archive zip du thème affiché et la télécharger.
Télécharger la version 1.2.0 du plugin
Voir la démo
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Bonsoir,
@bazooka07
Merci pour cette version 1.2 du plugin.
Je viens de l'installer et la tester rapidement.
A-priori pas de bug et ça me plait bien.
@gcyrillus-nomade
Merci à toi aussi pour ton aide et de cet échange.
Cela m'a permis de mettre un peu plus les mains dans le "cambouis" et d'apprendre.
Cordialement
Bonjour,
Actuellement:
Par rapport à la difficulté de reconnaitre la sidebar principale, ou même l'endroit à insérer dans la sidebar, ne serait-il pas possible d'imposer la création d'un bloc du style
Et ensuite à l'intégrateur de placer ce bloc à l'endroit souhaité?
Bonjour,
Je ne peux pas imposer aux thèmes existants un bloc comme tu le suggères.
Au mieux, je peux élargir le champ des possibilités sur la structure des pages html générées :
Je ne suis pas sûr qu'il y aura beaucoup d'intégrateurs qui feront l'effort de mettre une <div> avec id ou class égaux à "skinselect".
Par contre, les intégrateurs devraient faire l'effort d'intégrer dans leurs "œuvres" une <div> ou une <aside> avec un id égal à main-sidebar ou site-sidebar.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Je me suis mal exprimé; loin de moi de vouloir imposer un tel bloc... peut-être qu'on pourrait prévoir dans la page de config du plugin un choix permettant de choisir la balise et le nom de cette balise pour le contenant.
Dans mes thèmes j'utilise déjà site-sidebar, donc pas de problème .
Mais actuellement le plugin l'affiche automatiquement en tête de sidebar dès qu'il rencontre un bloc ayant une classe ou une id telles que tu les as définies.
Tandis qu'en définissant un bloc tel que je le souhaite, on aurait plus de possibilités pour son affichage:
un bloc pour le positionnement et un élément (form) pour l'apparence et le contenu .
D'ailleurs c'est déjà ce que tu as dans ta seconde solution avec le kzSkinSelect-wrapper.
je viens de tester ton code.. cela provoque une page blanche dès l'accueil du site.
Oups, il manque une parenthèse à la 3ème ligne du tableau. Je n'avais pas pris le temps de tester et évidemment ça bugue.
Je préconise d'utiliser un "id". Avec le bloc de code suivant, tu peux installer le sélecteur de thèmes où tu veux :
Le plugin se charge d'ajouter un enfant à <div> pour afficher le sélecteur et un bouton pour télécharger l'archive zip du thème sélectionné.
Pour l'apparence, c'est plus compliqué car j'ai eu des soucis avec certains thèmes. C'est pourquoi les règles CSS sont "inline" pour être les plus prioritaires. Je n'aime pas trop cette méthode mais je n'ai rien trouvé de plus fiable.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Bonsoir,
Je continuerai à tester car doutes par rapport à certains thèmes .. mais à vérifier
Par contre,par exemple, sur defaut-enhanced cela fonctionne nickel.
Merci
Bonjour,
Je viens de tester avec différents thèmes sur une installation "vierge" de PluXml. c'est OK
y compris avec 2-3 personnalisations au niveau du style.
La version "aside site-sidebar...." ne me satisfaisait pas trop car en plus on peut avoir plusieurs aside ou sidebar, et suivant les versions mobiles...
tandis que l'id qu'on peut placer où l'on veut --> permet de l'intégrer tel qu'on le thème dans le thème qu'on réalise,
pendant que le test1 (aside site-sidebar..) ou à défaut un bloc fixé en dehors du layout.. permet que le skinSelect reste disponible dans les thèmes qu'on teste sans avoir à le smodifier au préalable...
C'est super.
Merci
Bonjour,
version 1.2.3
Petite correction pour gérer l'absence d'un template, par exemple home-999.php, dans un thème.
On supprime le cookie $_SESSION['kzSkinSelect'] pour retourner au thème avant sélection par le visiteur.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Bonjour
Après cette mise à jour, j'ai le message d'erreur suivant::
Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in F:\htdocs\myPluXml\plugins\kzSkinSelect\kzSkinSelect.php on line 167
Bonjour,
Depuis la version 8.1.0 de PHP FILTER_SANITIZE_STRING est devenu obsolète. Sniff !!!
https://www.php.net/manual/fr/filter.filters.sanitize.php
Je vais faire une mise à jour.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
@cpalo
Remplace la ligne contenant FILTER_SANITIZE_STRING par :
Cela semble faire le taff.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Bonsoir
A-priori ça régle le problème. Je n'ai plus le message d'erreur.
Merci