Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
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
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
Merci pour tes réponses, nikrou. Par contre du coup, le message s'affiche trois fois à la suite.
Hors ligne
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
C'est parfait, ça marche !
Hors ligne
Vous n'êtes pas identifié(e).