Skip to content
Extraits de code Groupes Projets
Valider 551508b2 rédigé par esj's avatar esj
Parcourir les fichiers

[7390] en Ajax: suppression du portfolio ou du fonds documentaire sans tout recharger.

parent e45be9f0
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -31,6 +31,7 @@ dist/style_prive.html -text
dist/win_width.htc -text
ecrire/action/autoriser.php -text
ecrire/action/dater.php -text
ecrire/action/documenter.php -text
ecrire/action/editer_article.php -text
ecrire/action/editer_auteurs.php -text
ecrire/action/editer_mot.php -text
......@@ -100,6 +101,7 @@ ecrire/exec/convert_utf8.php -text
ecrire/exec/dater.php -text
ecrire/exec/delete_all.php -text
ecrire/exec/discuter.php -text
ecrire/exec/documenter.php -text
ecrire/exec/documents_liste.php -text
ecrire/exec/editer_auteurs.php -text
ecrire/exec/editer_mot.php -text
......
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2006 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('action/supprimer');
function action_documenter_dist($arg)
{
$var_f = charger_fonction('controler_action_auteur', 'inc');
$var_f();
$arg = _request('arg');
if (!preg_match(",^(-?)(\d+)\W(\w+)$,", $arg, $r))
spip_log("action_documenter $arg pas compris");
else {
list($x, $sign, $id, $type) = $r;
if ($sign)
$x = spip_query("SELECT docs.id_document FROM spip_documents AS docs, spip_documents_".$type."s AS l, spip_types_documents AS lestypes WHERE l.id_$type=$id AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension IN ('gif', 'jpg', 'png')");
else $x = spip_query("SELECT docs.* FROM spip_documents AS docs, spip_documents_".$type."s AS l, spip_types_documents AS lestypes WHERE l.id_$type=$id AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension NOT IN ('gif', 'jpg', 'png')");
while($r = spip_fetch_array($x)) {
supprimer_document_et_vignette($r['id_document']);
}
}
}
?>
......@@ -72,35 +72,6 @@ function action_supprimer_auteur_rubrique($arg)
else spip_log("action_supprimer_auteur_rubrique $arg pas compris");
}
function action_supprimer_portfolio($arg)
{
if (!preg_match(",^\D*(\d+)\W+(\w+)$,", $arg, $r))
spip_log("action_supprimer_portfolio $arg pas compris");
else {
list($x, $id, $type) = $r;
$x = spip_query("SELECT docs.id_document FROM spip_documents AS docs, spip_documents_".$type."s AS l, spip_types_documents AS lestypes WHERE l.id_$type=$id AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension IN ('gif', 'jpg', 'png')");
while($r = spip_fetch_array($x)) {
supprimer_document_et_vignette($r['id_document']);
}
}
}
// Ne pas confondre cette fonction avec celle au singulier ci-dessus
function action_supprimer_documents($arg)
{
if (!preg_match(",^\D*(\d+)\W+(\w+)$,", $arg, $r))
spip_log("action_supprimer_fonds $arg pas compris");
else {
list($x, $id, $type) = $r;
$x = spip_query("SELECT docs.* FROM spip_documents AS docs, spip_documents_".$type."s AS l, spip_types_documents AS lestypes WHERE l.id_$type=$id AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension NOT IN ('gif', 'jpg', 'png')");
while($r = spip_fetch_array($x)) {
supprimer_document_et_vignette($r['id_document']);
}
}
}
function supprimer_document_et_vignette($arg)
{
$result = spip_query("SELECT id_vignette, fichier FROM spip_documents WHERE id_document=$arg");
......
......@@ -18,8 +18,8 @@ include_spip('inc/rubriques');
include_spip('inc/actions');
include_spip('inc/mots');
include_spip('inc/date');
include_spip('inc/documents');
include_spip('inc/petition');
include_spip('inc/documents');
include_spip('exec/editer_auteurs');
include_spip('exec/referencer_traduction');
include_spip('exec/virtualiser');
......@@ -196,11 +196,13 @@ if ($options == 'avancees' AND $GLOBALS['meta']["articles_mots"] != 'non') {
if ($spip_display != 4) {
echo afficher_portfolio($id_article, 'article', 'portfolio', $flag_editable),
afficher_portfolio($id_article, 'article', 'documents', $flag_editable);
include_spip('exec/documenter');
echo formulaire_documenter($id_article, 'article', 'portfolio', $flag_editable),
formulaire_documenter($id_article, 'article', 'documents', $flag_editable);
if ($GLOBALS['meta']["documents_article"] != 'non' AND $flag_editable)
echo afficher_formulaire_upload($id_article, "article", $flag_editable);
if ($GLOBALS['meta']["documents_article"] != 'non' AND $flag_editable) {
echo afficher_formulaire_upload($id_article, "article", $flag_editable);
}
}
if ($flag_auteur AND $statut_article == 'prepa' AND !$statut_rubrique)
......
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2006 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/presentation');
include_spip('inc/texte');
function exec_documenter_dist()
{
$type = _request("type");
$id = intval(_request(($type == 'article') ? 'id_article' : 'id_rubrique'));
if ($id > 0)
$album = 'documents';
else { $album = 'portfolio'; $id = 0 - $id;}
if ($type == 'rubrique')
$flag_editable = acces_rubrique($id);
else {
$row = spip_fetch_array(spip_query("SELECT id_rubrique, statut FROM spip_articles WHERE id_article=$id"));
if (!$flag_editable = acces_rubrique($row['id_rubrique'])) {
if ($row['statut'] == 'prepa' OR $row['statut'] == 'prop' OR $row['statut'] == 'poubelle')
$flag_editable = spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs_articles WHERE id_article=$id_article AND id_auteur=$connect_id_auteur LIMIT 1"));
}
}
return formulaire_documenter($id, $type, $album, $flag_editable ? 'ajax' : false);
}
// Compatbilite plugin (sinon togg va encore raler).
$GLOBALS['afficher_portfolio'] = 'formulaire_documenter';
// Affiche le portfolio et les documents lies a l'article (ou a la rubrique)
// => Nouveau : au lieu de les ignorer, on affiche desormais avec un fond gris
// les documents et images inclus dans le texte.
// http://doc.spip.org/@afficher_portfolio
function formulaire_documenter(
$doc, # tableau des documents ou numero de l'objet attachant
$type = "article", # article ou rubrique ?
$album = 'portfolio', # album d'images ou de documents ?
$flag_modif = false, # a-t-on le droit de modifier ?
$couleur='', # couleur des cases du tableau
$appelant ='' # pour le rappel (cf plugin)
) {
global $couleur_claire, $spip_lang_left, $spip_lang_right;
if (is_int($doc)) {
if ($album == 'portfolio') {
$lies = spip_query("SELECT docs.*,l.id_$type FROM spip_documents AS docs, spip_documents_".$type."s AS l, spip_types_documents AS lestypes WHERE l.id_$type=$doc AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension IN ('gif', 'jpg', 'png') ORDER BY 0+docs.titre, docs.date");
$couleur = $couleur_claire;
} else {
$lies = spip_query("SELECT docs.*,l.id_$type FROM spip_documents AS docs, spip_documents_".$type."s AS l,spip_types_documents AS lestypes WHERE l.id_$type=$doc AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension NOT IN ('gif', 'jpg', 'png') ORDER BY 0+docs.titre, docs.date");
$couleur = '#aaaaaa';
}
$documents = array();
while ($document = spip_fetch_array($lies))
$documents[] = $document;
} else $documents = $doc;
if (!$documents) return '';
include_spip('inc/documents');
charger_generer_url();
// la derniere case d'une rangee
$bord_droit = ($album == 'portfolio' ? 2 : 1);
$case = 0;
$res = '';
foreach ($documents as $document) {
$id_document = $document['id_document'];
if (isset($document['script']))
$script = $document['script']; # pour plugin Cedric
else
// ref a $exec inutilise en standard
$script = $appelant ? $appelant : $GLOBALS['exec'];
$style = est_inclus($id_document) ? ' background-color: #cccccc;':'';
if (!$case)
$res .= "<tr style='border-top: 1px solid black;'>";
else if ($case == $bord_droit)
$style .= " border-$spip_lang_right: 1px solid $couleur;";
$res .= "\n<td style='width:33%; text-align: $spip_lang_left; border-$spip_lang_left: 1px solid $couleur; border-bottom: 1px solid $couleur; $style' valign='top'>";
$res .= formulaire_tourner($id_document, $document, $script, $flag_modif, $type);
if ($flag_modif)
$res .= formulaire_legender($id_document, $document, $script, $type, $document["id_$type"], $album);
if (isset($document['info']))
$res .= "<div class='verdana1'>".$document['info']."</div>";
$res .= "</td>\n";
$case++;
if ($case > $bord_droit) {
$case = 0;
$res .= "</tr>\n";
}
}
// fermer la derniere ligne
if ($case) {
$res .= "<td style='border-$spip_lang_left: 1px solid $couleur;'>&nbsp;</td>";
$res .= "</tr>";
}
$div = ($album =='documents' ? '': '-');
if (is_int($doc)) {
$head = "\n<div id='$album'>&nbsp;</div>"
. "\n<div style='background-color: $couleur; padding: 4px; color: black; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px;' class='verdana2'>\n<b>".majuscules(_T("info_$album"))."</b></div>";
if (count($documents) > 3) {
$head .= "<div style='background-color: #dddddd; padding: 4px; color: black; text-align: right' class='arial1'>"
. ajax_action_auteur('documenter', "$div$doc/$type", $GLOBALS['exec'], "id_$type=$div$doc&type=$type",array(_L('Supprimer_tout')))
. "</div>\n";
}
} else $head = '';
$res = $head
. "\n<table width='100%' cellspacing='0' cellpadding='4'>"
. $res
. "</table>";
return _request('var_ajaxcharset')
? $res
: ("<div id='documenter-$div$doc'>$res</div>");
}
?>
......@@ -408,7 +408,8 @@ if ($relief) {
/// Documents associes a la rubrique
if ($id_rubrique > 0) {
echo afficher_portfolio($id_rubrique, 'rubrique', 'portfolio', $flag_editable), afficher_portfolio($id_rubrique, 'rubrique', 'documents', $flag_editable);
include_spip('exec/documenter');
echo formulaire_documenter($id_rubrique, 'rubrique', 'portfolio', $flag_editable), formulaire_documenter($id_rubrique, 'rubrique', 'documents', $flag_editable);
if ($GLOBALS['meta']["documents_rubrique"] != 'non' AND $flag_editable)
echo afficher_formulaire_upload($id_rubrique, "rubrique", $flag_editable);
......
......@@ -318,104 +318,6 @@ function afficher_transferer_upload($texte_upload)
}
}
//
// Affiche le portfolio et les documents lies a l'article (ou a la rubrique)
// => Nouveau : au lieu de les ignorer, on affiche desormais avec un fond gris
// les documents et images inclus dans le texte.
// http://doc.spip.org/@afficher_portfolio
function afficher_portfolio(
$doc, # tableau des documents ou numero de l'objet attachant
$type = "article", # article ou rubrique ?
$album = 'portfolio', # album d'images ou de documents ?
$flag_modif = false, # a-t-on le droit de modifier ?
$couleur='', # couleur des cases du tableau
$appelant ='' # pour le rappel (cf plugin)
) {
global $couleur_claire, $spip_lang_left, $spip_lang_right;
if (is_int($doc)) {
if ($album == 'portfolio') {
$lies = spip_query("SELECT docs.*,l.id_$type FROM spip_documents AS docs, spip_documents_".$type."s AS l, spip_types_documents AS lestypes WHERE l.id_$type=$doc AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension IN ('gif', 'jpg', 'png') ORDER BY 0+docs.titre, docs.date");
$couleur = $couleur_claire;
} else {
$lies = spip_query("SELECT docs.*,l.id_$type FROM spip_documents AS docs, spip_documents_".$type."s AS l,spip_types_documents AS lestypes WHERE l.id_$type=$doc AND l.id_document=docs.id_document AND docs.mode='document' AND docs.id_type=lestypes.id_type AND lestypes.extension NOT IN ('gif', 'jpg', 'png') ORDER BY 0+docs.titre, docs.date");
$couleur = '#aaaaaa';
}
$documents = array();
while ($document = spip_fetch_array($lies))
$documents[] = $document;
} else $documents = $doc;
if (!$documents) return '';
charger_generer_url();
// la derniere case d'une rangee
$bord_droit = ($album == 'portfolio' ? 2 : 1);
$case = 0;
$res = '';
foreach ($documents as $document) {
$id_document = $document['id_document'];
if (isset($document['script']))
$script = $document['script']; # pour plugin Cedric
else
// ref a $exec inutilise en standard
$script = $appelant ? $appelant : $GLOBALS['exec'];
$style = est_inclus($id_document) ? ' background-color: #cccccc;':'';
if (!$case)
$res .= "<tr style='border-top: 1px solid black;'>";
else if ($case == $bord_droit)
$style .= " border-$spip_lang_right: 1px solid $couleur;";
$res .= "\n<td style='width:33%; text-align: $spip_lang_left; border-$spip_lang_left: 1px solid $couleur; border-bottom: 1px solid $couleur; $style' valign='top'>";
$res .= formulaire_tourner($id_document, $document, $script, $flag_modif, $type);
if ($flag_modif)
$res .= formulaire_legender($id_document, $document, $script, $type, $document["id_$type"], $album);
if (isset($document['info']))
$res .= "<div class='verdana1'>".$document['info']."</div>";
$res .= "</td>\n";
$case++;
if ($case > $bord_droit) {
$case = 0;
$res .= "</tr>\n";
}
}
// fermer la derniere ligne
if ($case) {
$res .= "<td style='border-$spip_lang_left: 1px solid $couleur;'>&nbsp;</td>";
$res .= "</tr>";
}
if (is_int($doc)) {
$head = "\n<div id='$album'>&nbsp;</div>"
. "\n<div style='background-color: $couleur; padding: 4px; color: black; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px;' class='verdana2'>\n<b>".majuscules(_T("info_$album"))."</b></div>";
if (count($documents) > 3) {
$head .= "<div style='background-color: #dddddd; padding: 4px; color: black; text-align: right' class='arial1'><a href='"
. redirige_action_auteur('supprimer', "$album/$doc/$type", $GLOBALS['exec'], "id_$type=$doc")
. "'>"
. _L('Supprimer_tout')
. "</a></div>\n";
}
} else $head = '';
return $head
. "\n<table width='100%' cellspacing='0' cellpadding='4'>"
. $res
. "</table>";
}
// http://doc.spip.org/@formulaire_tourner
function formulaire_tourner($id_document, $document, $script, $flag_modif, $type)
{
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter