function cs_get_code_php_variable($variable, $valeur) { global $cs_variables; // si la variable n'a pas ete declaree if(!isset($cs_variables[$variable])) return _L("/* Variable '$variable' inconnue ! */"); $cs_variable = &$cs_variables[$variable]; // mise en forme php de $valeur if(!strlen($valeur)) { if($cs_variable['format']==_format_NOMBRE) $valeur='0'; else $valeur='""'; } else $valeur = cs_php_format($valeur, @$cs_variable['format']!=_format_NOMBRE); $code = ''; foreach($cs_variable as $type=>$param) if(preg_match(',^code(:(.*))?$,', $type, $regs)) { $eval = '$test = ' . (isset($regs[2])?str_replace('%s', $valeur, $regs[2]):'true') . ';'; $test = false; eval($eval); $code .= $test?str_replace('%s', $valeur, $param):''; } return $code; }
function description_outil_une_variable($index, &$outil, &$variable, &$label, &$modif) { global $cs_variables, $metas_vars; $actif = $outil['actif']; // la valeur de la variable n'est stockee dans les metas qu'au premier post $valeur = isset($metas_vars[$variable])?$metas_vars[$variable]:cs_get_defaut($variable); $valeur = cs_retire_guillemets($valeur); //cs_log(" -- description_outil_une_variable($index) - Traite %$variable% = $valeur"); $cs_variable = &$cs_variables[$variable]; // autorisations de variables include_spip('inc/autoriser'); $cs_variable['disabled'] = $disab = autoriser('configurer', 'variable', 0, NULL, array('nom'=>$cs_variable['nom'], 'outil'=>$outil))?'':' disabled="disabled"'; // si ce n'est qu'une simple initialisation, on sort if(!$modif) return ''; $nombre = @$cs_variable['format']==_format_NOMBRE; // calcul du commentaire if($actif && isset($cs_variable['commentaire'])) { eval('$comment = '.str_replace('%s',cs_php_format($valeur, !$nombre),$cs_variable['commentaire']).';'); if($comment) $comment = "<p>$comment</p>"; } else $comment = ''; // si la variable necessite des boutons radio if(is_array($radios = &$cs_variable['radio'])) { if(!$actif) { $code = _T($radios[$valeur]); return "<input type=\"hidden\" name=\"$variable\" class=\"cs_hidden_checkbox\" value=\"$code\" />" . $label . (strlen($valeur)?ucfirst($code):' -'); } $res = "$label <ul>"; $i = 0; $nb = isset($cs_variable['radio/ligne'])?intval($cs_variable['radio/ligne']):0; foreach($radios as $code=>$traduc) { $br = (($nb>0) && ( ++$i % $nb == 0))?'</ul><ul>':''; $res .= "<li><label><input id=\"label_{$variable}_$code\" class=\"cs_input_checkbox\" type=\"radio\"" .($valeur==$code?' checked="checked"':'')." value=\"$code\" name=\"$variable\"$disab />" .($valeur==$code?'<b>':'')._T($traduc).($valeur==$code?'</b>':'') ."</label></li>$br"; } return $res.'</ul>'.$comment._VAR_OUTIL; } // si la variable necessite un select elseif(is_array($select = &$cs_variable['select'])) { if(!$actif) { $code = _T($select[$valeur]); return "<input type=\"hidden\" name=\"$variable\" class=\"cs_hidden_checkbox\" value=\"$code\" />" . $label . (strlen($valeur)?ucfirst($code):' -'); } $res = "$label <select name=\"$variable\"$disab>"; foreach($select as $code=>$traduc) { $res .= "<option" .($valeur==$code?' selected="selected"':'')." value=\"$code\">" ._T($traduc)."</option>"; } return $res.'</select>'.$comment._VAR_OUTIL; } // ... ou une case a cocher elseif(isset($cs_variable['check'])) { if(!$actif) return $label._T($cs_variable['check'])._T($valeur?'couteauprive:2pts_oui':'couteauprive:2pts_non'); return $label.'<label><input type="checkbox" '.($valeur?' checked="checked"':'')." value=\"1\" name=\"$variable\" $disab/>" .($valeur?'<b>':'')._T($cs_variable['check']).($valeur?'</b>':'').'</label>' . $comment._VAR_OUTIL; } // ... ou un textarea ... ou une case input if(!$actif) return $label.'<html>'.(strlen($valeur)?nl2br(echapper_tags($valeur)):' '._T('couteauprive:variable_vide')).'</html>'; $len = $nombre?6:0; $width = $len?'':'style="width:100%;" '; $lignes = !isset($cs_variable['lignes']) || $nombre?0:strval($cs_variable['lignes']); return $label . ( $lignes < 2 // <html></html> empechera SPIP de modifier le contenu des <input> ou <textarea> ?"<html><input name='$variable' value=\"" . htmlspecialchars($valeur) . "\" type='text' size='$len' $width $disab/></html>" :"<html><textarea rows='$lignes' name='$variable' $width$disab>" . htmlspecialchars($valeur) . '</textarea></html>' ) . $comment._VAR_OUTIL; }