Author: christian_lefebvre@laposte.net
Date: Mon Jun 26 14:19:42 2006
New Revision: 3663
Log:
nettoyage : les callbacks ne servent plus a rien
Removed:
_plugins_/_ze_laboratoire_/editables/edit_art.action.html
_plugins_/_ze_laboratoire_/editables/edit_art.html
_plugins_/_ze_laboratoire_/editables/exec/editer.php
Modified:
_plugins_/_ze_laboratoire_/editables/action/editer.php
_plugins_/_ze_laboratoire_/editables/editable.php
_plugins_/_ze_laboratoire_/editables/inc/actionParser.php
_plugins_/_ze_laboratoire_/editables/inc/widgets/Widget.php
Modified: _plugins_/_ze_laboratoire_/editables/action/editer.php
--- _plugins_/_ze_laboratoire_/editables/action/editer.php (original)
+++ _plugins_/_ze_laboratoire_/editables/action/editer.php Mon Jun 26 14:19:42 2006
@@ -7,9 +7,8 @@
// recuperer les autres morceaux et verifier qu'ils sont nets
$actions = urldecode($_REQUEST['actions']);
- $callbacks = urldecode($_REQUEST['callbacks']);
$secu = $_REQUEST['actions_secu'];
- if(!verif_secu($actions, $callbacks, $secu)) {
+ if(!verif_secu($actions, $secu)) {
die("Actions truandees !");
}
$xml= doSpipInclude($actions);
@@ -33,20 +32,21 @@
} elseif($retour = urldecode($_REQUEST['retour'])) {
$GLOBALS['redirect']= str_replace('&', '&', $retour);
}
+ if(count($parser->qs)) {
+ foreach($parser->qs as $k => $v) {
+ $GLOBALS['redirect']= parametre_url($GLOBALS['redirect'], $k, $v);
+ }
+ }
echo "RETOUR : ".$parser->retour."/".$GLOBALS['redirect']."\n";
}
// A l'alle, on a calcule un md5 sur les elements sensibles, concatene a un peu
// de sel (alea_ephemere). si ce qu'on recoit a le meme md5, c'est que
// l'internaute n'a pas truande les valeurs
-// Petit hack en passant, on calcule sur action.alea.callback et pas
-// action.callback.alea pour pas risquer qu'un plaisantin mette action.callback
-// dans action et zappe donc les callback
-function verif_secu($v1, $v2, $secu) {
- $ligne= $v1.' - '.$GLOBALS['meta']['alea_ephemere'].' - '.$v2;
- error_log("verif_secu($v1, $v2, $secu) / ".$GLOBALS['meta']['alea_ephemere'].' => '.md5($ligne));
- return ( $secu == md5($v1.' - '.$GLOBALS['meta']['alea_ephemere'].' - '.$v2)
- OR $secu == md5($v1.' - '.$GLOBALS['meta']['alea_ephemere_ancien'].' - '.$v2) );
+function verif_secu($v, $secu) {
+ $ligne= $v.' - '.$GLOBALS['meta']['alea_ephemere'];
+ return ( $secu == md5($v.' - '.$GLOBALS['meta']['alea_ephemere'])
+ OR $secu == md5($v.' - '.$GLOBALS['meta']['alea_ephemere_ancien']) );
}
@define ('_INC_PUBLIC', 1);
Removed: _plugins_/_ze_laboratoire_/editables/edit_art.action.html
--- _plugins_/_ze_laboratoire_/editables/edit_art.action.html (original)
+++ _plugins_/_ze_laboratoire_/editables/edit_art.action.html (removed)
@@ -1,41 +0,0 @@
-#HTTP_HEADER{Content-type: text/xml}
-<!-- header pour eviter d'y mettre les boutons d'admin ... -->
-#CACHE{0}
-<actions>
-<BOUCLE_arts(ARTICLES){0,5}>
-<!-- on effectue un update d'un article -->
-<update type='articles'>
- <!-- dont la cle est id_article -->
- <where name='id_article' value='#ID_ARTICLE'/>
- <!-- et dont on peut modifier les titres et surtitre,
- selon les valeurs envoyees par le formulaire -->
- <field name='titre' valueFrom='titreArt#ID_ARTICLE'/>
- <field name='surtitre' valueFrom='surtitreArt#ID_ARTICLE'/>
-</update>
-</BOUCLE_arts>
-
-<!-- on effectue un insert d'un article -->
-<!-- l'id de l'article cree sera stocke dans 'art' -->
-<insert type='articles' id='art'>
- <!-- le titre est obligatoire -->
- <field name='titre' cond='!' valueFrom='titreNewArt'/>
- <field name='surtitre' valueFrom='surtitreNewArt'/>
- <field name='texte' valueFrom='texteNewArt'/>
-
- <!-- la rubrique d'accrochage aussi -->
- <field name='id_rubrique' cond='!' valueFrom='rubNewArt'/>
- <!-- le secteur se deduit de la rubrique -->
- <field name='id_secteur'>
- <!-- par un select en base -->
- <select type='rubriques' name='id_secteur'>
- <where name='id_rubrique' valueFrom='rubNewArt'/>
- </select>
- </field>
- <!-- on fait cet insert si l'autre est fait -->
- <insert type='auteurs_articles'>
- <field name='id_auteur' value='#ID_AUTEUR'/>
- <!-- on recupere l'id genere pour l'insert precedent -->
- <field name='id_article' ref='art'/>
- </insert>
-</insert>
-</actions>
Removed: _plugins_/_ze_laboratoire_/editables/edit_art.html
--- _plugins_/_ze_laboratoire_/editables/edit_art.html (original)
+++ _plugins_/_ze_laboratoire_/editables/edit_art.html (removed)
@@ -1,24 +0,0 @@
-<html>
-<body>
-#EDITABLE_DEBUT{edit_art.action}
-<h2>Exemple d'edition d'articles :</h2>
-
-<BOUCLE_arts(ARTICLES){0,5}>
-<br/>
-modif de l'article numero #ID_ARTICLE :<br/>
-titre = #EDITABLE{titreArt#ID_ARTICLE,Widget,#TITRE}<br/>
-surtitre = #EDITABLE{surtitreArt#ID_ARTICLE,Widget,#SURTITRE}<br/>
-</BOUCLE_arts>
-
-<br><br>
-
-<br>
-Creation d'un nouvel article :<br>
-titre : #EDITABLE{titreNewArt,Widget}<br/>
-surtitre : #EDITABLE{surtitreNewArt,Widget}<br/>
-texte :<br>#EDITABLE{texteNewArt,MCEWidget}<br/>
-rubrique :<br>#EDITABLE{rubNewArt,Widget}<br/>
-
-#EDITABLE_FIN
-</body>
-</html>
Modified: _plugins_/_ze_laboratoire_/editables/editable.php
--- _plugins_/_ze_laboratoire_/editables/editable.php (original)
+++ _plugins_/_ze_laboratoire_/editables/editable.php Mon Jun 26 14:19:42 2006
@@ -1,37 +1,20 @@
<?php
-function new_widget($id, $classe, $valeur, $callbacks) {
+function new_widget($id, $classe, $valeur) {
global $editable;
-error_log("new_widget($id, $classe, $valeur, $callbacks)");
+//error_log("new_widget($id, $classe, $valeur)");
include_spip('inc/widgets/'.$classe);
$w= new $classe($id, $valeur);
- $res= $w->code($callbacks).$w->input();
- if($w->callbacks) {
- $editable['callbacks'][$id]= $w->callbacks;
- error_log("$id -> ".$w->callbacks);
- }
+ $res= $w->code().$w->input();
return $res;
}
-function compactCallBacks() {
- global $editable;
-error_log("compactCallBacks:".var_export($editable['callbacks'], 1));
-
- $callbacks= '';
- foreach($editable['callbacks'] as $id => $cbs) {
- $callbacks.="&$id=$cbs";
- }
- return $callbacks;
-}
-
//
-// genere le code d'un widget donne avec l'action et les callbacks associes
-// _ syntaxe : <code>#EDITABLE{id,action,classe,valeur,callbacks}</code>
+// genere le code d'un widget donne
+// _ syntaxe : <code>#EDITABLE{id,classe,valeur}</code>
// -* id = un identifiant qui doit etre unique dans la page
-// -* action = le "script" de l'action associee
// -* classe = le type de widget a instancier ('Widget' par defaut)
// -* valeur = le contenu initial du widget (vide par defaut)
-// -* callbacks = liste de callbacks (separes par des |) pour valider la saisie
//
function balise_EDITABLE($p) {
global $editable;
@@ -59,19 +42,12 @@
$valeur="''";
}
error_log("valeur $valeur");
- if ($param[4]) {
- $callbacks= calculer_liste($param[3],
- $p->descr, $p->boucles, $p->id_boucle);
- } else {
- $callbacks="null";
- }
-error_log("callbacks $callbacks");
} else {
erreur_squelette('EDITABLE necessite au moins 1 parametre');
return $p;
}
- $p->code = editable($editable, $id, $classe, $valeur, $callbacks);
+ $p->code = editable($editable, $id, $classe, $valeur);
$p->interdire_scripts = false;
return $p;
}
@@ -87,7 +63,7 @@
// on force a partir d'un nouveau formulaire
// => on ne peut en faire qu'un a la fois
// => verifier si ca met pas la zone dans des <include> ?
- $editable= array('callbacks' => array() , 'actions' => null);
+ $editable= array('actions' => null);
if ($p->param && !$p->param[0][0] && $p->param[0][1]) {
$actions= calculer_liste($p->param[0][1],
@@ -125,13 +101,12 @@
function editable_fin(&$editable) {
return '"<input type=\'hidden\' name=\'actions\' value=\'".($actions='.$editable['actions'].')."\'>
- <input type=\'hidden\' name=\'callbacks\' value=\'".urlencode($callbacks=compactCallBacks())."\'>
- <input type=\'hidden\' name=\'actions_secu\' value=\'".md5($actions.\' - \'.$GLOBALS[\'meta\'][\'alea_ephemere\'].\' - \'.$callbacks)."\'>
+ <input type=\'hidden\' name=\'actions_secu\' value=\'".md5($actions.\' - \'.$GLOBALS[\'meta\'][\'alea_ephemere\'])."\'>
</form>"';
}
-function editable(&$editable, $id, $classe, $valeur=null, $callbacks=null) {
- return "new_widget($id, $classe, $valeur, $callbacks)";
+function editable(&$editable, $id, $classe, $valeur=null) {
+ return "new_widget($id, $classe, $valeur)";
}
?>
Removed: _plugins_/_ze_laboratoire_/editables/exec/editer.php
--- _plugins_/_ze_laboratoire_/editables/exec/editer.php (original)
+++ _plugins_/_ze_laboratoire_/editables/exec/editer.php (removed)
@@ -1,105 +0,0 @@
-<?php
-
-//include_spip('inc/callbacks');
-
-function exec_editer() {
- if (!isset($_POST['widgets']) OR !is_array($_POST['widgets'])) {
- die("rien a faire la !");
- }
-
- // recuperer les morceaux et verifier qu'ils sont nets
- $retour = urldecode($_POST['url']);
- $actions = urldecode($_POST['actions']);
- $callbacks = urldecode($_POST['callbacks']);
- $secu = $_POST['actions_secu'];
- if(!verif_secu($actions, $callbacks, $secu)) {
- die("Actions truandees !");
- }
-
- // desosser les callbacks
- if($callbacks) {
- preg_match_all('/&(\w*)=([^&]*)/', $callbacks, $re, PREG_PATTERN_ORDER);
- $callbacks= array_combine($re[1], $re[2]);
- error_log("callbacks => ".var_export($callbacks, 1));
- } else {
- $callbacks= array();
- }
-
- // et partir d'une liste de valeurs vide
- $valeurs= array();
-
- foreach ($_POST['widgets'] as $widget) {
- $content = $_POST['content_'.$widget];
- $md5 = $_POST['md5_'.$widget];
-
[... 147 lines stripped ...]