Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2013-11-28 19:23:10

Jean-Michel
Modérateur à ailes d'ange
Lieu : Paris
Inscription : 2006-08-22
Site Web

Thème avec configurateur ajouter le message de confirmation de réglage

Bonsoir,

Pour un thème que je suis en train de finaliser, j'ai mis en place un configurateur avec trois options à choisir grâce à une liste déroulante, tout fonctionne mais j'aimerai insérer le code du type "Votre réglage a été bien effectué". Il me semble que c'est une bonne pratique.

Par contre encore novice, je souhaite garder un code encore compréhensible pour moi. Comment faire ?

fichier _config.php

<?php

if (!defined('DC_CONTEXT_ADMIN')) { return; }

// chargement de la traduction
l10n::set(dirname(__FILE__).'/locales/'.$_lang.'/admin');

// Initialisation
$StoneStructure_styles = array(
	"1 colonne" => 'structure-fixed-1col-bottom',
	"2 colonnes, sidebar à gauche" => 'structure-fixed-2col-left',
	"2 colonnes, sidebar à droite" => 'structure-fixed-2col-right',
	"3 colonnes, sidebar à gauche" => 'structure-fixed-3col-left',
	"3 colonnes, sidebar middle" => 'structure-fixed-3col-middle',
	"3 colonnes, sidebar à droite" => 'structure-fixed-3col-right'
);
$StoneStyle_styles = array(
	__('Classic') => 'colour-classic',
	__('Custom') => 'colour-custom'
);
$StonePolice_styles = array(
	__('Helvetica') => 'police-helvetica',
	__('Georgia') => 'police-georgia'
);

// Traitement à l'enregistrement
if (!$core->blog->settings->themes->StoneStructure_style) {
	$core->blog->settings->themes->StoneStructure_style = 'structure-fixed-1col-bottom';
}

if (!$core->blog->settings->themes->StoneStyle_style) {
	$core->blog->settings->themes->StoneStyle_style = 'colour-classic';
}

if (!$core->blog->settings->themes->StonePolice_style) {
	$core->blog->settings->themes->StonePolice_style = 'police-helvetica';
}


if (!empty($_POST['StoneStructure_style']) && in_array($_POST['StoneStructure_style'],$StoneStructure_styles))
{
	$core->blog->settings->themes->StoneStructure_style = $_POST['StoneStructure_style'];
	$core->blog->settings->addNamespace('themes');
	$core->blog->settings->themes->put('StoneStructure_style',$core->blog->settings->StoneStructure_style,'string','Stone - Structure',true);
	$core->blog->triggerBlog();
}

if (!empty($_POST['StoneStyle_style']) && in_array($_POST['StoneStyle_style'],$StoneStyle_styles))
{
	$core->blog->settings->themes->StoneStyle_style = $_POST['StoneStyle_style'];
	$core->blog->settings->addNamespace('themes');
	$core->blog->settings->themes->put('StoneStyle_style',$core->blog->settings->StoneStyle_style,'string','Stone - Style',true);
	$core->blog->triggerBlog();
}

if (!empty($_POST['StonePolice_style']) && in_array($_POST['StonePolice_style'],$StonePolice_styles))
{
	$core->blog->settings->themes->StonePolice_style = $_POST['StonePolice_style'];
	$core->blog->settings->addNamespace('themes');
	$core->blog->settings->themes->put('StonePolice_style',$core->blog->settings->StonePolice_style,'string','Stone - Police',true);
	$core->blog->triggerBlog();
}

// Affichage d'un menu déroulant proposant le choix de la déclinaison 
echo
'<fieldset><legend>'.__('Personnalisation').'</legend>'.
'<p class="field"><label>'.__('Structure :').'</label>'.
form::combo('StoneStructure_style',$StoneStructure_styles,$core->blog->settings->themes->StoneStructure_style).
'</p>'.

'<p class="field"><label>'.__('Style :').'</label>'.
form::combo('StoneStyle_style',$StoneStyle_styles,$core->blog->settings->themes->StoneStyle_style).
'</p>'.

'<p class="field"><label>'.__('Police :').'</label>'.
form::combo('StonePolice_style',$StonePolice_styles,$core->blog->settings->themes->StonePolice_style).
'</p>'.
'</fieldset>';

Hors ligne

#2 2013-11-29 09:57:26

nikrou
Membre
Inscription : 2007-10-02
Site Web

Re : Thème avec configurateur ajouter le message de confirmation de réglage

A chaque fois que tu fais un triggerBlog(), après (ou avant) tu ajoutes cette ligne

dcPage::message(__('Your beautiful message in english.'));

Je préfère être atteint de parkinson plutôt qu'alzheimer : je prefère renverser un peu de ma bière plutôt qu'oublier de la boire !

Présentez vos photos simplement avec Phyxo !

Hors ligne

#3 2013-11-29 11:42:45

Jean-Michel
Modérateur à ailes d'ange
Lieu : Paris
Inscription : 2006-08-22
Site Web

Re : Thème avec configurateur ajouter le message de confirmation de réglage

Merci pour tes réponses, nikrou. Par contre du coup, le message s'affiche trois fois à la suite.

Hors ligne

#4 2013-11-29 12:11:40

nikrou
Membre
Inscription : 2007-10-02
Site Web

Re : Thème avec configurateur ajouter le message de confirmation de réglage

Jean-Michel a écrit :

Merci pour tes réponses, nikrou. Par contre du coup, le message s'affiche trois fois à la suite.

Ah oui c'est parce que tes conditions ne sont pas mutuellement exclusives.
Je te propose d'ajouter tout en haut :

$need_update = false;

A la place des lignes :

$core->blog->triggerBlog();

Tu mets :

$need_update = true;

Et juste avant l'affichage (la ligne qui commence par // Affichage d'un menu ...) tu ajoutes :

if ($need_update) {
   $core->blog->triggerBlog();
   dcPage::message(__('Configuration updated.'));
}

Je préfère être atteint de parkinson plutôt qu'alzheimer : je prefère renverser un peu de ma bière plutôt qu'oublier de la boire !

Présentez vos photos simplement avec Phyxo !

Hors ligne

#5 2013-11-29 17:07:21

Jean-Michel
Modérateur à ailes d'ange
Lieu : Paris
Inscription : 2006-08-22
Site Web

Re : Thème avec configurateur ajouter le message de confirmation de réglage

C'est parfait, ça marche !

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map