Browse Source

Amélioration demandée par [10414]: une requête Ajax pour chercher les titres des rubriques pour faciliter le choix de la sauvegarde partielle. En cherchant à résoudre le bug corrigé par [10419], il est apparu que le sélecteur de rubrique pouvait assez facilement être utilisé ici aussi. Mais il faudrait voir si ce ne serait pas plus lisible en JQuery.

spip-2.0
Committo,Ergo:sum 16 years ago
parent
commit
c9c2b3bebf
  1. 8
      dist/javascript/layer.js
  2. 2
      ecrire/action/export_all.php
  3. 26
      ecrire/exec/admin_tech.php
  4. 2
      ecrire/exec/export_all.php
  5. 8
      ecrire/exec/informer.php
  6. 5
      ecrire/exec/plonger.php
  7. 9
      ecrire/exec/rechercher.php
  8. 5
      ecrire/exec/selectionner.php
  9. 11
      ecrire/inc/chercher_rubrique.php
  10. 4
      ecrire/inc/informer.php
  11. 8
      ecrire/inc/plonger.php
  12. 12
      ecrire/inc/selectionner.php

8
dist/javascript/layer.js vendored

@ -175,6 +175,14 @@ function aff_selection_titre(titre, id, idom, nid)
if (p.is('.submit_plongeur')) p.get(p.length-1).submit();
}
function admin_tech_selection_titre(titre, id, idom, nid)
{
nom = titre.replace(/\W+/g, '_');
findObj_forcer("znom_sauvegarde").value=nom;
findObj_forcer("nom_sauvegarde").value=nom;
aff_selection_titre(titre, id, idom, nid);
}
function aff_selection_provisoire(id, racine, url, col, sens,informer,event)
{
charger_id_url(url.href,

2
ecrire/action/export_all.php

@ -72,7 +72,7 @@ function export_all_fin($file, $meta)
$corps = "<p style='text-align: $spip_lang_left'>".
_T('info_sauvegarde_reussi_02',
array('archive' => ':<br /><b>'.joli_repertoire($file)."</b> ($n)")) .
array('archive' => ':<br /><b>'.joli_repertoire($nom)."</b> ($n)")) .
" <a href='" . generer_url_ecrire() . "'>".
_T('info_sauvegarde_reussi_03')
. "</a> "

26
ecrire/exec/admin_tech.php

@ -17,7 +17,7 @@ include_spip('inc/presentation');
// http://doc.spip.org/@exec_admin_tech_dist
function exec_admin_tech_dist()
{
global $flag_gz;
global $flag_gz, $spip_lang_right;
if (!autoriser('sauvegarder')){
include_spip('inc/minipres');
echo minipres();
@ -78,14 +78,22 @@ function exec_admin_tech_dist()
_T('texte_admin_tech_02') .
"</p>";
$res .= "\n<p><label for='id_rubrique'>" .
_L('Vous pouvez limiter la sauvegarde &agrave; la rubrique: ') .
"</label>" .
"\n<input name='id_rubrique' id='id_rubrique' size='5' "
. "onchange='x=\"_rub\"+findObj_forcer(\"id_rubrique\").value;
findObj_forcer(\"znom_sauvegarde\").value+=x;
findObj_forcer(\"nom_sauvegarde\").value+=x;'"
." /></p>";
$chercher_rubrique = charger_fonction('chercher_rubrique', 'inc');
$form = $chercher_rubrique(0, 'rubrique', !$GLOBALS['connect_toutes_rubriques'], 0, 'admin_tech_selection_titre');
if (strpos($form,'<select')!==false) {
$form .= "<div style='text-align: $spip_lang_right;'>"
. '<input class="fondo" type="submit" value="'
. _T('bouton_choisir')
.'" />'
. "</div>";
}
$res .= "\n<p><label for='id_parent'>" .
_L('Vous pouvez limiter la sauvegarde &agrave; la rubrique: ') .
"</label>" .
$form
. "</p>";
$file = nom_fichier_dump();
$nom = "\n<input name='nom_sauvegarde' id='nom_sauvegarde' size='40' value='$file' />";

2
ecrire/exec/export_all.php

@ -26,7 +26,7 @@ function exec_export_all_dist()
global $connect_toutes_rubriques;
// utiliser une version fraiche des metas (ie pas le cache)
lire_metas();
$rub = intval(_request('id_rubrique'));
$rub = intval(_request('id_parent'));
$meta = 'status_dump_' . $GLOBALS['auteur_session']['id_auteur'];
if (!isset($GLOBALS['meta'][$meta])) {

8
ecrire/exec/informer.php

@ -22,9 +22,13 @@ function exec_informer_dist()
$id = intval(_request('id'));
$col = intval(_request('col'));
$exclus = intval(_request('exclus'));
$do = _request('do');
spip_log("informer($id, $col, $exclus, _request('rac'), _request('type'), $do");
if (!preg_match('/^\w+$/', $do)) die();
if (!$do) $do = 'aff_selection_titre';
$informer = charger_fonction('informer', 'inc');
ajax_retour($informer($id, $col, $exclus, _request('rac'), _request('type')));
ajax_retour($informer($id, $col, $exclus, _request('rac'), _request('type'), $do));
}
?>

5
ecrire/exec/plonger.php

@ -21,9 +21,12 @@ function exec_plonger_dist()
$id = intval(_request('id'));
$exclus = intval(_request('exclus'));
$col = intval(_request('col'));
$do = _request('do');
if (!preg_match('/^\w+$/', $do)) die();
if (!$do) $do = 'aff_selection_titre';
include_spip('inc/actions');
$plonger = charger_fonction('plonger', 'inc');
ajax_retour($plonger($id, htmlentities($rac), array(), $col, $exclus));
ajax_retour($plonger($id, htmlentities($rac), array(), $col, $exclus, $do));
}
?>

9
ecrire/exec/rechercher.php

@ -22,6 +22,9 @@ function exec_rechercher_dist()
$exclus = intval(_request('exclus'));
$rac = htmlentities(_request('rac'));
$type = _request('type');
$do = _request('do');
if (!preg_match('/^\w+$/', $do)) die();
if (!$do) $do = 'aff_selection_titre';
$where = split("[[:space:]]+", $type);
if ($where) {
@ -81,7 +84,7 @@ function exec_rechercher_dist()
}
}
ajax_retour(proposer_item($points, $rub, $rac, $type));
ajax_retour(proposer_item($points, $rub, $rac, $type, $do));
}
@ -91,7 +94,7 @@ function exec_rechercher_dist()
// ==> attention a composer le message d'erreur avec au moins 2 balises
// http://doc.spip.org/@proposer_item
function proposer_item ($ids, $titles, $rac, $type)
function proposer_item ($ids, $titles, $rac, $type, $do)
{
if (!$ids)
@ -104,7 +107,7 @@ function proposer_item ($ids, $titles, $rac, $type)
$onClick = "aff_selection(this.firstChild.title,'$rac". "_selection','$info', event)";
$ondbClick = "aff_selection_titre(this.firstChild.firstChild.nodeValue,this.firstChild.title,'selection_rubrique', 'id_parent');";
$ondbClick = "$do(this.firstChild.firstChild.nodeValue,this.firstChild.title,'selection_rubrique', 'id_parent');";
foreach($ids as $id => $bof) {

5
ecrire/exec/selectionner.php

@ -23,8 +23,11 @@ function exec_selectionner_dist()
$exclus = intval(_request('exclus'));
$type = _request('type');
$rac = _request('racine');
$do = _request('do');
if (!preg_match('/^\w+$/', $do)) die();
if (!$do) $do = 'aff_selection_titre';
$selectionner = charger_fonction('selectionner', 'inc');
ajax_retour($selectionner($id, "choix_parent", $exclus, $rac, $type!='breve'));
ajax_retour($selectionner($id, "choix_parent", $exclus, $rac, $type!='breve', $do));
}
?>

11
ecrire/inc/chercher_rubrique.php

@ -23,7 +23,7 @@ define('_SPIP_SELECT_RUBRIQUES', 20); /* mettre 100000 pour desactiver ajax */
// n'importe ou (defaut), et les breves dans les secteurs.
// $idem : en mode rubrique = la rubrique soi-meme
// http://doc.spip.org/@inc_chercher_rubrique_dist
function inc_chercher_rubrique_dist ($id_rubrique, $type, $restreint, $idem=0) {
function inc_chercher_rubrique_dist ($id_rubrique, $type, $restreint, $idem=0, $do='aff_selection_titre') {
// Mode sans Ajax :
// - soit parce que le cookie ajax n'est pas la
// - soit parce qu'il y a peu de rubriques
@ -32,8 +32,7 @@ function inc_chercher_rubrique_dist ($id_rubrique, $type, $restreint, $idem=0) {
OR sql_countsel('spip_rubriques') < _SPIP_SELECT_RUBRIQUES)
return selecteur_rubrique_html($id_rubrique, $type, $restreint, $idem);
else
return selecteur_rubrique_ajax($id_rubrique, $type, $restreint, $idem);
else return selecteur_rubrique_ajax($id_rubrique, $type, $restreint, $idem, $do);
}
@ -156,7 +155,7 @@ function selecteur_rubrique_html($id_rubrique, $type, $restreint, $idem=0) {
}
// http://doc.spip.org/@selecteur_rubrique_ajax
function selecteur_rubrique_ajax($id_rubrique, $type, $restreint, $idem=0) {
function selecteur_rubrique_ajax($id_rubrique, $type, $restreint, $idem=0, $do) {
## $restreint indique qu'il faut limiter les rubriques affichees
## aux rubriques editables par l'admin restreint... or, ca ne marche pas.
@ -176,9 +175,11 @@ function selecteur_rubrique_ajax($id_rubrique, $type, $restreint, $idem=0) {
$titre = str_replace('&amp;', '&', entites_html(textebrut(typo($titre))));
$init = " disabled='disabled' type='text' value=\"" . $titre . '" style=\'width:300px;\'';
$url = generer_url_ecrire('selectionner',"id=$id_rubrique&type=$type" . (!$idem ? '' : ("&exclus=$idem&racine=" . ($restreint ? 'non' : 'oui')))
$url = generer_url_ecrire('selectionner',"id=$id_rubrique&type=$type&do=$do"
. (!$idem ? '' : ("&exclus=$idem&racine=" . ($restreint ? 'non' : 'oui')))
. (isset($GLOBALS['var_profile']) ? '&var_profile=1' : ''));
return construire_selecteur($url, '', 'selection_rubrique', 'id_parent', $init, $id_rubrique);
}

4
ecrire/inc/informer.php

@ -15,7 +15,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
# Les information d'une rubrique selectionnee dans le mini navigateur
// http://doc.spip.org/@inc_informer_dist
function inc_informer_dist($id, $col, $exclus, $rac, $type)
function inc_informer_dist($id, $col, $exclus, $rac, $type, $do='aff_selection_rubrique')
{
global $spip_display,$spip_lang_right ;
@ -65,7 +65,7 @@ function inc_informer_dist($id, $col, $exclus, $rac, $type)
. "<div style='text-align: $spip_lang_right;'>"
. "<input type='submit' class='fondo' value='"
. _T('bouton_choisir')
. "'\nonclick=\"aff_selection_titre('$titre',$id,'selection_rubrique','id_parent'); return false;\" />"
. "'\nonclick=\"$do('$titre',$id,'selection_rubrique','id_parent'); return false;\" />"
. "</div>"
. "</div>";
}

8
ecrire/inc/plonger.php

@ -15,7 +15,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/texte');
// http://doc.spip.org/@inc_plonger_dist
function inc_plonger_dist($id_rubrique, $idom="", $list=array(), $col = 1, $exclu=0) {
function inc_plonger_dist($id_rubrique, $idom="", $list=array(), $col = 1, $exclu=0, $do='aff_selection_titre') {
global $spip_lang_left;
if ($list) $id_rubrique = $list[$col-1];
@ -50,8 +50,8 @@ function inc_plonger_dist($id_rubrique, $idom="", $list=array(), $col = 1, $excl
}
$next = isset($list[$col]) ? $list[$col] : 0;
if ($ordre) {
$rec = generer_url_ecrire('plonger',"rac=$idom&exclus=$exclu&col=".($col+1));
$info = generer_url_ecrire('informer', "type=rubrique&rac=$idom&id=");
$rec = generer_url_ecrire('plonger',"rac=$idom&exclus=$exclu&do=$do&col=".($col+1));
$info = generer_url_ecrire('informer', "type=rubrique&rac=$idom&do=$do&id=");
$args = "'$idom',this,$col,'$spip_lang_left','$info',event";
while (list($id, $titrebrut) = each($ordre)) {
@ -69,7 +69,7 @@ function inc_plonger_dist($id_rubrique, $idom="", $list=array(), $col = 1, $excl
# ce lien provoque la selection (directe) de la rubrique cliquee
# et l'affichage de son titre dans le bandeau
. "\"\nondblclick=\""
. "aff_selection_titre(this."
. "$do(this."
. "firstChild.nodeValue,"
. $id
. ",'selection_rubrique','id_parent');"

12
ecrire/inc/selectionner.php

@ -19,12 +19,12 @@ include_spip('inc/filtres');
//
// http://doc.spip.org/@inc_selectionner_dist
function inc_selectionner_dist ($sel, $idom="", $exclus=0, $aff_racine=false, $recur=true) {
function inc_selectionner_dist ($sel, $idom="", $exclus=0, $aff_racine=false, $recur=true, $do='aff_selection_titre') {
if ($recur) $recur = mini_hier($sel); else $sel = 0;
if ($aff_racine) {
$info = generer_url_ecrire('informer', "type=rubrique&rac=$idom&id=");
$info = generer_url_ecrire('informer', "type=rubrique&rac=$idom&do=$do&id=");
$idom3 = $idom . "_selection";
$onClick = " aff_selection(0, '$idom3', '$info', event);";
@ -34,7 +34,7 @@ function inc_selectionner_dist ($sel, $idom="", $exclus=0, $aff_racine=false, $r
textebrut(_T('info_racine_site')))),
"\n\r", " ");
$ondbClick = "aff_selection_titre('$ondbClick',0,'selection_rubrique','id_parent');";
$ondbClick = "$do('$ondbClick',0,'selection_rubrique','id_parent');";
$aff_racine = "<div class='arial11 petite-racine'\nonclick=\""
. $onClick
@ -46,13 +46,13 @@ function inc_selectionner_dist ($sel, $idom="", $exclus=0, $aff_racine=false, $r
. "</div></div>";
} else $onClick = '';
$url_init = generer_url_ecrire('plonger',"rac=$idom&exclus=$exclus&id=0&col=1", true);
$url_init = generer_url_ecrire('plonger',"rac=$idom&exclus=$exclus&id=0&col=1&do=$do", true);
$plonger = charger_fonction('plonger', 'inc');
$plonger_r = $plonger($sel, $idom, $recur, 1, $exclus);
$plonger_r = $plonger($sel, $idom, $recur, 1, $exclus, $do);
// url completee par la fonction JS onkeypress_rechercher
$url = generer_url_ecrire('rechercher', "exclus=$exclus&rac=$idom&type=");
$url = generer_url_ecrire('rechercher', "exclus=$exclus&rac=$idom&do=$do&type=");
return construire_selectionner_hierarchie($idom, $plonger_r, $aff_racine, $url, 'id_parent', $url_init);
}

Loading…
Cancel
Save