Baby - Les thèmes parents avec PluXml, un jeu d'enfants

Rédigé par SWD 4 commentaires
Classé dans : Greffons Mots clés : Plugin, PluXml, Thèmes, Baby

Utiliser des thèmes graphiques enfants et parent avec PluXml.

Permet de régler quelques des éléments différemment d'un thème "parent" sans devoir dupliquer son dossier entièrement.

Faire profiter aux enfants des bienfaits apportés aux parents instantanéments.

Lire la suite de Baby - Les thèmes parents avec PluXml, un jeu d'enfants

Selecteur de theme dans le moteur de PluXml

Rédigé par SWD Aucun commentaire
Classé dans : Codes Mots clés : Thèmes, Code, Webilitaire, Public

Sur le forum et dans l'ancien wiki se trouve un moyen d'adjoindre un outil qui permet a nos internautes de choisir le thème qu'il prèfere et de le conserver lors de ses prochaines visites.

Quelques tubes a essais plus tard voici une solution qui permet de l'adjoindre au moteur de pluXml.

Première étape :

Créer un fichier selectSkin.php dans le dossier où se trouve les plugins (en général plugins)

Placez y le code ci-dessous :

<?php
# Plugin selectSkin pour Pluxml 5
# Réalisé par Skyline (http://skyline-arts.com) 
# puis modifié par Stéphane (stephane@pluxml.org), Florent (florent@pluxml.org) et Thomas sudwebdesign.free.fr
# Distribué sous license Gnu/Gpl
# Dernière mise à jour le 10 Janvier 2019 

# <strong>Documentation</strong>
# 1. Copier ce fichier dans le dossier 'plugins/' (le créer si besoin)
# 2. Insérer le code suivant dans le fichier 'index.php' après la ligne "$plxMotor = plxMotor::getInstance();"
# code à insérer : $plxMotor = plxMotor::getInstance();
# 3. Insérer le code suivant dans le fichier 'sidebar.php' de tous les thèmes à l'endroit où doit s'afficher le sélécteur
# code à insérer : <_?php selectSkin(); ?_> (supprimer les "_") & (supprimer le style de la div : style="position:absolute;display:sticky;top:33rem;right:0;")
# 3. OU pour une <strong>manière automatique</strong>, chercher et modifier <strong>index.php</strong> juste après la ligne "eval($plxMotor->plxPlugins->callHook('ThemeEndBody'));" (hook ThemeEndBody)
# code à remplacer : $output = str_replace('</body>', selectSkin() . ob_get_clean(). '</body>', $output);

if(!empty($_GET['style'])) { # Si le formulaire est soumis
	setcookie('style', $_GET['style'], time()+3600*24*2);
	header('Location: ./');
	exit;
}
# On fait le tableau des thèmes
$thms = plxGlob::getInstance(PLX_ROOT.'themes/',true);
$a_thms = $thms->query('/(.*)/', '', 'alpha');
foreach($a_thms as $k => $v) {
	$all_styles[$v] = $v;
}
if(isset($_COOKIE['style']) && isset($all_styles[$_COOKIE['style']])) {
	$plxMotor->aConf["style"] = $plxMotor->style = $_COOKIE['style'];//baby Fix
}
function selectSkin() {
	global $plxMotor, $all_styles;
	if(isset($_COOKIE['style']))
		$select_style = $_COOKIE['style'];
	else
		$select_style = $plxMotor->style;
	echo '<div id="skinswitcher" style="position:absolute;display:sticky;top:33rem;right:0;">';
	echo '<h2>Changer de thème</h2>';
	echo '<form method="get">';
	plxUtils::printSelect('style', $all_styles, $select_style);
	echo '<input type="submit" value="ok"/>';
	echo '</form>';
	echo '</div>';
}

Note : Comme tous les thèmes sont ainsi choisissable par les visiteurs, prévoir ou créer les fichiers (spécifiques) pour chaques thèmes graphiques du site et leurs évités une erreur d'un fichier de thème inexistant.

Et +user-friendly* : avec les mêmes Crochetages (Hooks) *je propose : visitibilité

Fil RSS des articles de ce mot clé