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

Encore plus d'ajax dans le bloc de traductions

parent 9786251c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -40,7 +40,6 @@ ecrire/action/instituer_article.php -text ...@@ -40,7 +40,6 @@ ecrire/action/instituer_article.php -text
ecrire/action/instituer_breve.php -text ecrire/action/instituer_breve.php -text
ecrire/action/instituer_collaboration.php -text ecrire/action/instituer_collaboration.php -text
ecrire/action/instituer_forum.php -text ecrire/action/instituer_forum.php -text
ecrire/action/instituer_langue_article.php -text
ecrire/action/instituer_langue_rubrique.php -text ecrire/action/instituer_langue_rubrique.php -text
ecrire/action/instituer_syndic.php -text ecrire/action/instituer_syndic.php -text
ecrire/action/joindre.php -text ecrire/action/joindre.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;
// http://doc.spip.org/@action_instituer_langue_article_dist
function action_instituer_langue_article_dist() {
include_spip('inc/actions');
$var_f = charger_fonction('controler_action_auteur', 'inc');
$var_f();
$arg = _request('arg');
$changer_lang = _request('changer_lang');
if ($GLOBALS['meta']['multi_articles'] == 'oui' AND $changer_lang) {
list($id_article, $id_rubrique) = preg_split('/\W/', $arg);
if ($changer_lang != "herit")
spip_query("UPDATE spip_articles SET lang=" . spip_abstract_quote($changer_lang) . ", langue_choisie='oui' WHERE id_article=$id_article");
else {
$langue_parent = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=" . $id_rubrique));
$langue_parent=$langue_parent['lang'];
spip_query("UPDATE spip_articles SET lang=" . spip_abstract_quote($langue_parent) . ", langue_choisie='non' WHERE id_article=$id_article");
include_spip('inc/lang');
calculer_langues_utilisees();
}
}
}
?>
...@@ -35,8 +35,27 @@ function action_referencer_traduction_dist() { ...@@ -35,8 +35,27 @@ function action_referencer_traduction_dist() {
} elseif (preg_match(",^(\d+)\D(\d+)\D(\d+)$,", $arg, $r)) { } elseif (preg_match(",^(\d+)\D(\d+)\D(\d+)$,", $arg, $r)) {
// modifier le groupe de traduction de $r[1] (SQL le trouvera) // modifier le groupe de traduction de $r[1] (SQL le trouvera)
spip_query("UPDATE spip_articles SET id_trad = " . $r[3] . " WHERE id_trad =" . $r[2]); spip_query("UPDATE spip_articles SET id_trad = " . $r[3] . " WHERE id_trad =" . $r[2]);
} elseif (preg_match(",^(\d+)\D(\d+)$,", $arg, $r)) {
instituer_langue_article($r[1],$r[2]);
} else { } else {
spip_log("action_referencer_traduction_dist $arg pas compris"); spip_log("action_referencer_traduction_dist $arg pas compris");
} }
} }
function instituer_langue_article($id_article, $id_rubrique) {
$changer_lang = _request('changer_lang');
if ($GLOBALS['meta']['multi_articles'] == 'oui' AND $changer_lang) {
if ($changer_lang != "herit")
spip_query("UPDATE spip_articles SET lang=" . spip_abstract_quote($changer_lang) . ", langue_choisie='oui' WHERE id_article=$id_article");
else {
$langue_parent = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=" . $id_rubrique));
$langue_parent=$langue_parent['lang'];
spip_query("UPDATE spip_articles SET lang=" . spip_abstract_quote($langue_parent) . ", langue_choisie='non' WHERE id_article=$id_article");
include_spip('inc/lang');
calculer_langues_utilisees();
}
}
}
?> ?>
...@@ -37,7 +37,6 @@ function exec_referencer_traduction_dist() ...@@ -37,7 +37,6 @@ function exec_referencer_traduction_dist()
function formulaire_referencer_traduction($id_article, $id_rubrique, $id_trad, $flag_editable, $trad_err='') function formulaire_referencer_traduction($id_article, $id_rubrique, $id_trad, $flag_editable, $trad_err='')
{ {
spip_log("formulaire_referencer_traduction($id_article, $id_rubrique, $id_trad, $flag_editable, $trad_err=''");
global $connect_statut, $couleur_claire, $options, $connect_toutes_rubriques, $spip_lang_right, $dir_lang; global $connect_statut, $couleur_claire, $options, $connect_toutes_rubriques, $spip_lang_right, $dir_lang;
$langue_article = spip_fetch_array(spip_query("SELECT lang FROM spip_articles WHERE id_article=$id_article")); $langue_article = spip_fetch_array(spip_query("SELECT lang FROM spip_articles WHERE id_article=$id_article"));
...@@ -56,10 +55,14 @@ function formulaire_referencer_traduction($id_article, $id_rubrique, $id_trad, $ ...@@ -56,10 +55,14 @@ function formulaire_referencer_traduction($id_article, $id_rubrique, $id_trad, $
if (!$langue_article) if (!$langue_article)
$langue_article = $langue_parent; $langue_article = $langue_parent;
$menu = menu_langues('changer_lang', $langue_article, _T('info_multi_cet_article').' ', $langue_parent, 'ajax');
$menu = ajax_action_auteur('referencer_traduction', "$id_article,$id_rubrique","articles","id_article=$id_article", $menu);
$reponse .= debut_block_invisible('languesarticle') $reponse .= debut_block_invisible('languesarticle')
. debut_cadre_couleur('',true) . debut_cadre_couleur('',true)
. "\n<div style='text-align: center;' id='instituer_langue_article-$id_article'>" . "\n<div style='text-align: center;'>"
. menu_langues('changer_lang', $langue_article, _T('info_multi_cet_article').' ', $langue_parent, redirige_action_auteur('instituer_langue_article', "$id_article-$id_rubrique","articles","id_article=$id_article")) . $menu
. "</div>\n" . "</div>\n"
. fin_cadre_couleur(true) . fin_cadre_couleur(true)
. fin_block(); . fin_block();
...@@ -88,7 +91,7 @@ function formulaire_referencer_traduction($id_article, $id_rubrique, $id_trad, $ ...@@ -88,7 +91,7 @@ function formulaire_referencer_traduction($id_article, $id_rubrique, $id_trad, $
// changer les globales $dir_lang etc // changer les globales $dir_lang etc
changer_typo($langue_article); changer_typo($langue_article);
$form .= "<table width='100%'><tr>"; $form = "<table width='100%'><tr>";
if ($flag_editable AND $options == "avancees" AND !$table) { if ($flag_editable AND $options == "avancees" AND !$table) {
// Formulaire pour lier a un article // Formulaire pour lier a un article
...@@ -109,13 +112,16 @@ function formulaire_referencer_traduction($id_article, $id_rubrique, $id_trad, $ ...@@ -109,13 +112,16 @@ function formulaire_referencer_traduction($id_article, $id_rubrique, $id_trad, $
$form .= "<td>" $form .= "<td>"
. icone_horizontale(_T('trad_new'), generer_url_ecrire("articles_edit","new=oui&lier_trad=$id_article&id_rubrique=$id_rubrique"), "traductions-24.gif", "creer.gif", false) . icone_horizontale(_T('trad_new'), generer_url_ecrire("articles_edit","new=oui&lier_trad=$id_article&id_rubrique=$id_rubrique"), "traductions-24.gif", "creer.gif", false)
. "</td>"; . "</td>";
if ($flag_editable AND $options == "avancees" AND $table) { if ($flag_editable AND $options == "avancees" AND $table) {
$form .= "<td background='' width='10'> &nbsp; </td>"; $clic = _T('trad_delier');
$form .= "<td background='" . _DIR_IMG_PACK . "tirets-separation.gif' width='2'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"; $form .= "<td background='' width='10'> &nbsp; </td>"
$form .= "<td background='' width='10'> &nbsp; </td>"; . "<td background='" . _DIR_IMG_PACK . "tirets-separation.gif' width='2'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"
$form .= "<td>"; . "<td background='' width='10'> &nbsp; </td>"
$form .= icone_horizontale(_T('trad_delier'), redirige_action_auteur("referencer_traduction","$id_article,-$id_trad",'articles', "id_article=$id_article"), "traductions-24.gif", "supprimer.gif", false); . "<td>"
$form .= "</td>\n"; // la 1ere occurrence de clic ne sert pas en Ajax
. icone_horizontale($clic, ajax_action_auteur("referencer_traduction","$id_article,-$id_trad",'articles', "id_article=$id_article",array($clic)), "traductions-24.gif", "supprimer.gif", false)
. "</td>\n";
} }
$form .= "</tr></table>"; $form .= "</tr></table>";
...@@ -137,7 +143,6 @@ function formulaire_referencer_traduction($id_article, $id_rubrique, $id_trad, $ ...@@ -137,7 +143,6 @@ function formulaire_referencer_traduction($id_article, $id_rubrique, $id_trad, $
. fin_block() . fin_block()
. fin_cadre_enfonce(true); . fin_cadre_enfonce(true);
spip_log("rt $flag_editable ($flag_editable === 'ajax')");
return ($flag_editable === 'ajax') return ($flag_editable === 'ajax')
? $res ? $res
: "\n<div id='referencer_traduction-$id_article'>$res</div>"; : "\n<div id='referencer_traduction-$id_article'>$res</div>";
......
...@@ -157,11 +157,8 @@ function ajax_action_auteur($action, $id, $script, $args, $corps=false, $args_aj ...@@ -157,11 +157,8 @@ function ajax_action_auteur($action, $id, $script, $args, $corps=false, $args_aj
$action, $action,
"var_ajax=1&script=$script$args_ajax"); "var_ajax=1&script=$script$args_ajax");
$clic = "<a href='$href'\nonclick='return !AjaxSqueeze(\"$ajax\",\"$ancre\");'>$clic</a>"; if ($att) $clic = "\n<div$att>$clic</div>";
return "<a href='$href'\nonclick='return !AjaxSqueeze(\"$ajax\",\"$ancre\");'>$clic</a>";
return (!$att)
? $clic
: "\n<div$att>$clic</div>";
} }
} }
......
...@@ -268,9 +268,13 @@ function menu_langues($nom_select = 'var_lang', $default = '', $texte = '', $her ...@@ -268,9 +268,13 @@ function menu_langues($nom_select = 'var_lang', $default = '', $texte = '', $her
} }
} }
return "<form action='$lien' method='post' style='margin:0px; padding:0px;'>" $change = ($lien === 'ajax')
. (!$cible ? '' : "<input type='hidden' name='url' value='$cible' />") ? "\nonchange=\"this.nextSibling.style.visibility='visible';\""
. $texte : ("\nonchange=\"document.location.href='"
. parametre_url($lien, 'url', str_replace('&amp;', '&', $cible))
."&amp;$nom_select='+this.options[this.selectedIndex].value\"");
$ret = $texte
. "<select name='$nom_select' " . "<select name='$nom_select' "
. (_DIR_RESTREINT ? . (_DIR_RESTREINT ?
("class='forml' style='vertical-align: top; max-height: 24px; margin-bottom: 5px; width: 120px;'") : ("class='forml' style='vertical-align: top; max-height: 24px; margin-bottom: 5px; width: 120px;'") :
...@@ -278,12 +282,18 @@ function menu_langues($nom_select = 'var_lang', $default = '', $texte = '', $her ...@@ -278,12 +282,18 @@ function menu_langues($nom_select = 'var_lang', $default = '', $texte = '', $her
("class='verdana1' style='background-color: " . $couleur_foncee ("class='verdana1' style='background-color: " . $couleur_foncee
. "; max-height: 24px; border: 1px solid white; color: white; width: 100px;'") : . "; max-height: 24px; border: 1px solid white; color: white; width: 100px;'") :
"class='fondl'")) "class='fondl'"))
. "\nonchange=\"document.location.href='" . $change
. parametre_url($lien, 'url', str_replace('&amp;', '&', $cible)) . ">\n"
."&amp;$nom_select='+this.options[this.selectedIndex].value\">\n" . $ret
// attention, le input doit etre le frere direct du select
. "</select><input type='submit' class='visible_au_chargement fondo' value='"
. _T('bouton_changer')
."' />";
if ($lien === 'ajax') return $ret;
return "<form action='$lien' method='post' style='margin:0px; padding:0px;'>"
. (!$cible ? '' : "<input type='hidden' name='url' value='$cible' />")
. $ret . $ret
. "</select>\n"
. "<noscript><div style='display:inline;'><input type='submit' name='Valider' value='&gt;&gt;' class='spip_bouton' /></div></noscript>\n"
. "</form>\n"; . "</form>\n";
} }
......
...@@ -2017,31 +2017,42 @@ function icone_horizontale($texte, $lien, $fond = "", $fonction = "", $echo = tr ...@@ -2017,31 +2017,42 @@ function icone_horizontale($texte, $lien, $fond = "", $fonction = "", $echo = tr
$retour = ''; $retour = '';
// cas d'ajax_action_auteur: faut defaire le boulot
// (il faudrait fusionner avec le cas $javascript)
if (preg_match(",^<a href='([^']*)'([^>]*)>(.*)</a>$,i",$lien,$r))
list($x,$lien,$atts,$texte)= $r;
else $atts = '';
$lien = "\nhref='$lien'$atts";
if ($spip_display != 4) { if ($spip_display != 4) {
//if (!$fonction) $fonction = "rien.gif"; //if (!$fonction) $fonction = "rien.gif";
if ($spip_display != 1) { if ($spip_display != 1) {
$retour .= "<a href='$lien' class='cellule-h' $javascript>"; $retour .= "<a class='cellule-h' $javascript$lien>"
$retour .= "<table cellpadding='0' valign='middle'><tr>\n"; . "\n<table cellpadding='0' valign='middle'><tr>\n"
$retour .= "<td><a href='$lien' class='cellule-h'><div class='cell-i'>" ; . "<td><a class='cellule-h'"
. $lien
. "><div class='cell-i'>" ;
if ($fonction){ if ($fonction){
$retour .= http_img_pack($fonction, "", http_style_background($fond, "center center no-repeat")); $retour .= http_img_pack($fonction, "", http_style_background($fond, "center center no-repeat"));
} }
else { else {
$retour .= http_img_pack($fond, "", ""); $retour .= http_img_pack($fond, "", "");
} }
$retour .= "</div></a></td>\n" . $retour .= "</div></a></td>" .
"<td class='cellule-h-lien'><a href='$lien' class='cellule-h'>$texte</a></td>\n"; "\n<td class='cellule-h-lien'><a class='cellule-h'"
$retour .= "</tr></table>\n"; . $lien
$retour .= "</a>\n"; . ">"
. $texte
. "</a></td></tr></table>\n";
} }
else { else {
$retour .= "<a href='$lien' class='cellule-h-texte' $javascript><div>$texte</div></a>\n"; $retour .= "<a class='cellule-h-texte' $javascript$lien><div>$texte</div></a>\n";
} }
if ($fonction == "supprimer.gif") if ($fonction == "supprimer.gif")
$retour = "<div class='danger'>$retour</div>"; $retour = "\n<div class='danger'>$retour</div>";
} else { } else {
$retour = "<li><a href='$lien'>$texte</a></li>"; $retour = "<li><a$lien>$texte</a></li>";
} }
if ($echo) echo $retour; if ($echo) echo $retour;
......
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