Author: cedric@yterium.com
Date: Wed Jun 28 12:59:59 2006
New Revision: 3692
Log:
fonction 'Exporter la reponse dans un article' !
nettoyage des include_ecrire
Added:
_plugins_/_contenu_editorial_/Forms/action/
_plugins_/_contenu_editorial_/Forms/action/forms_exporte_reponse_article.php
Modified:
_plugins_/_contenu_editorial_/Forms/base/forms.php
_plugins_/_contenu_editorial_/Forms/exec/forms_edit.php
_plugins_/_contenu_editorial_/Forms/exec/forms_reponses.php
_plugins_/_contenu_editorial_/Forms/exec/forms_telecharger.php
_plugins_/_contenu_editorial_/Forms/exec/forms_tous.php
_plugins_/_contenu_editorial_/Forms/forms_options.php
_plugins_/_contenu_editorial_/Forms/inc/forms.php
_plugins_/_contenu_editorial_/Forms/valide_sondage.html
Added: _plugins_/_contenu_editorial_/Forms/action/forms_exporte_reponse_article.php
--- _plugins_/_contenu_editorial_/Forms/action/forms_exporte_reponse_article.php (added)
+++ _plugins_/_contenu_editorial_/Forms/action/forms_exporte_reponse_article.php Wed Jun 28 12:59:59 2006
@@ -0,0 +1,103 @@
+<?php
+
+function action_forms_exporte_reponse_article(){
+ $id_reponse = _request('arg');
+ $hash = _request('hash');
+ $id_auteur = _request('id_auteur');
+ $redirect = _request('redirect');
+ if ($redirect==NULL) $redirect="";
+
+ if (verifier_action_auteur("forms_exporte_reponse_article-$id_reponse",$hash,$id_auteur)==TRUE){
+ // preparer l'article
+ $id_article = 0;
+ $res = spip_query("SELECT * FROM spip_reponses AS r LEFT JOIN spip_forms AS f ON f.id_form = r.id_form WHERE r.id_reponse=".spip_abstract_quote($id_reponse));
+ if ($row=spip_fetch_array($res)){
+ $id_form = $row['id_form'];
+ $titre = _L("Reponse $id_reponse");
+ $soustitre = _L($row['titre']);
+ $date = $row['date'];
+
+ $structure = unserialize($row['structure']);
+ foreach ($structure as $index => $t) {
+ $code = $t['code'];
+ $type = $t['type'];
+ $type_ext = $t['type_ext'];
+ $types[$id_form][$code] = $type;
+ $trans[$id_form][$code] = array();
+
+ if ($type == 'select' || $type == 'multiple') {
+ $trans[$id_form][$code] = $t['type_ext'];
+ }
+ else if ($type == 'mot') {
+ $id_groupe = intval($t['type_ext']['id_groupe']);
+ $query_mot = "SELECT id_mot, titre FROM spip_mots WHERE id_groupe=$id_groupe";
+ $result_mot = spip_query($query_mot);
+ while ($row = spip_fetch_array($result_mot)) {
+ $id_mot = $row['id_mot'];
+ $titre = $row['titre'];
+ $trans[$id_form][$code][$id_mot] = $titre;
+ }
+ }
+ }
+ // Lire les valeurs entrees
+ $query2 = "SELECT * FROM spip_reponses_champs WHERE id_reponse=".spip_abstract_quote($id_reponse);
+ $result2 = spip_query($query2);
+ $valeurs = array();
+ while ($row2 = spip_fetch_array($result2)) {
+ $champ = $row2['champ'];
+ if ($types[$id_form][$champ] == 'fichier') {
+ $valeurs[$champ][] = $row2['valeur'];
+ }
+ else if (isset($trans[$id_form][$champ][$row2['valeur']]))
+ $valeurs[$champ][] = $trans[$id_form][$champ][$row2['valeur']];
+ else
+ $valeurs[$champ][] = $row2['valeur'];
+ }
+
+ $texte = "";
+ foreach ($structure as $index => $t) {
+ $nom = $t['nom'];
+ $code = $t['code'];
+ $type = $t['type'];
+ if (!$v = $valeurs[$code]){
+ switch ($type){
+ case 'textestatique': $texte .= "\n{{{$nom}}}\n\n"; break;
+ case 'separateur': $texte .= "\n{{{{$nom}}}}\n\n"; break;
+ }
+ }
+ else {
+ $n = count($v);
+ if ($n > 1) {
+ $s = "\n-* " . join("\n-* ", $v);
+ }
+ else $s = join('', $v);
+
+ switch ($type){
+ case 'texte': $texte .= "\n{{{$nom}}}\n_ $s\n"; break;
+ case 'url': $texte .= "_ {{{$nom}}} : [$s -> $s]\n"; break;
+ case 'email': $texte .= "_ {{{$nom}}} : [$s -> mailto:$s]\n"; break;
+ default:
+ $texte .= "_ {{{$nom}}} : $s\n"; break;
+ }
+ }
+ }
+
+ // creer un article
+ include_spip('base/abstract_sql');
+ $id_article = spip_abstract_insert("spip_articles",
+ "(titre,soustitre,texte,date,statut)",
+ "(".spip_abstract_quote($titre).",".spip_abstract_quote($soustitre).",".spip_abstract_quote($texte).",".spip_abstract_quote($date).",'prepa')");
+
+ if ($id_article!=0){
+ spip_query("UPDATE spip_reponses SET id_article_export=$id_article WHERE id_reponse=".spip_abstract_quote($id_reponse));
+ }
+ }
+ if ($id_article!=0)
+ redirige_par_entete(generer_url_ecrire('articles_edit',"id_article=$id_article",true));
+ else
+ redirige_par_entete($redirect);
+ }
+ else
+ redirige_par_entete($redirect);
+}
+?>
\ No newline at end of file
Modified: _plugins_/_contenu_editorial_/Forms/base/forms.php
--- _plugins_/_contenu_editorial_/Forms/base/forms.php (original)
+++ _plugins_/_contenu_editorial_/Forms/base/forms.php Wed Jun 28 12:59:59 2006
@@ -33,6 +33,7 @@
"date" => "DATETIME NOT NULL",
"ip" => "VARCHAR(255) NOT NULL",
"id_auteur" => "bigint(21) NOT NULL",
+ "id_article_export" => "bigint(21) NOT NULL",
"statut" => "VARCHAR(255) NOT NULL",
"cookie" => "VARCHAR(255) NOT NULL",
"maj" => "TIMESTAMP");
Modified: _plugins_/_contenu_editorial_/Forms/exec/forms_edit.php
--- _plugins_/_contenu_editorial_/Forms/exec/forms_edit.php (original)
+++ _plugins_/_contenu_editorial_/Forms/exec/forms_edit.php Wed Jun 28 12:59:59 2006
@@ -384,8 +384,8 @@
if ($retour)
$retour = urldecode($retour);
- include_ecrire("inc_presentation");
- include_ecrire("inc_config");
+ include_spip("inc/presentation");
+ include_spip("inc/config");
if ($id_form) {
$query = "SELECT COUNT(*) FROM spip_reponses WHERE id_form=$id_form AND statut='valide'";
Modified: _plugins_/_contenu_editorial_/Forms/exec/forms_reponses.php
--- _plugins_/_contenu_editorial_/Forms/exec/forms_reponses.php (original)
+++ _plugins_/_contenu_editorial_/Forms/exec/forms_reponses.php Wed Jun 28 12:59:59 2006
@@ -10,12 +10,13 @@
*
*/
-include_ecrire('inc_forms');
+include_spip('inc/forms');
function exec_forms_reponses(){
global $id_form;
global $supp_reponse;
- include_ecrire("inc_presentation");
+ include_spip("inc/presentation");
+ Forms_verifier_base();
$id_form = intval($id_form);
@@ -198,6 +199,13 @@
$link=parametre_url(self(),'supp_reponse', $id_reponse);
icone(_L("Supprimer cette réponse"), $link,"../"._DIR_PLUGIN_FORMS."/img_pack/form-24.png", "supprimer.gif", "right");
+ if ($row['id_article_export']==0){
+ icone(_L("Exporter dans un article"), generer_action_auteur('forms_exporte_reponse_article',"$id_reponse",self()),"article-24.gif", "creer.gif", "right");
+ }
+ else
+ icone(_L("Voir l'article"), generer_url_ecrire('articles',"id_article=".$row['id_article_export']),"article-24.gif", "", "right");
+
+
echo _L("Réponse envoyée le ").affdate($date)."<br />\n";
if (!$form_unique) {
//echo "<div style='padding: 2px; background-color: $couleur_claire;'>";
Modified: _plugins_/_contenu_editorial_/Forms/exec/forms_telecharger.php
--- _plugins_/_contenu_editorial_/Forms/exec/forms_telecharger.php (original)
+++ _plugins_/_contenu_editorial_/Forms/exec/forms_telecharger.php Wed Jun 28 12:59:59 2006
@@ -11,9 +11,9 @@
*/
-include_ecrire('inc_forms');
-include_ecrire("inc_charsets");
-include_ecrire("inc_presentation");
+include_spip('inc/forms');
+include_spip("inc/charsets");
+include_spip("inc/presentation");
function csv_champ($champ) {
$champ = preg_replace(',[\s]+,', ' ', $champ);
@@ -303,7 +303,7 @@
// S'il y a des fichiers joints, creer un ZIP
//
include_ecrire("pclzip.lib");
- include_ecrire("inc_session");
+ include_spip("inc/session");
$zip = "data/form".$id_form."_".rand().".zip";
$csv = "data/$filename.$extension";
Modified: _plugins_/_contenu_editorial_/Forms/exec/forms_tous.php
--- _plugins_/_contenu_editorial_/Forms/exec/forms_tous.php (original)
+++ _plugins_/_contenu_editorial_/Forms/exec/forms_tous.php Wed Jun 28 12:59:59 2006
@@ -1,6 +1,6 @@
<?php
-include_ecrire('inc_forms');
+include_spip('inc/forms');
function Forms_duplique_form(){
$duplique = intval(_request('duplique_form'));
Modified: _plugins_/_contenu_editorial_/Forms/forms_options.php
--- _plugins_/_contenu_editorial_/Forms/forms_options.php (original)
+++ _plugins_/_contenu_editorial_/Forms/forms_options.php Wed Jun 28 12:59:59 2006
@@ -22,7 +22,7 @@
$nom_cookie = 'spip_cookie_form_'.$id_form;
// Ne generer un nouveau cookie que s'il n'existe pas deja
if (!$cookie = $_COOKIE[$nom_cookie]) {
- include_ecrire("inc_session");
+ include_spip("inc/session");
$cookie = creer_uniqid();
}
$GLOBALS['cookie_form'] = $cookie; // pour utilisation dans inc_forms...
Modified: _plugins_/_contenu_editorial_/Forms/inc/forms.php
--- _plugins_/_contenu_editorial_/Forms/inc/forms.php (original)
+++ _plugins_/_contenu_editorial_/Forms/inc/forms.php Wed Jun 28 12:59:59 2006
@@ -21,7 +21,7 @@
}
function Forms_verifier_base(){
- $version_base = 0.13;
+ $version_base = 0.14;
$current_version = 0.0;
if ( (isset($GLOBALS['meta']['forms_base_version']) )
&& (($current_version = $GLOBALS['meta']['forms_base_version'])==$version_base))
[... 75 lines stripped ...]