[ Index ] |
|
Code source de SPIP 1.9.2c |
1 <?php 2 3 /***************************************************************************\ 4 * SPIP, Systeme de publication pour l'internet * 5 * * 6 * Copyright (c) 2001-2007 * 7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * 8 * * 9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * 10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * 11 \***************************************************************************/ 12 13 if (!defined("_ECRIRE_INC_VERSION")) return; 14 15 include_spip('base/abstract_sql'); 16 17 // http://doc.spip.org/@action_editer_auteurs_dist 18 function action_editer_auteurs_dist() { 19 20 $securiser_action = charger_fonction('securiser_action', 'inc'); 21 $arg = $securiser_action(); 22 $redirect = urldecode(_request('redirect')); 23 if ($script = _request('script')) 24 $redirect = parametre_url($redirect,'script',$script,'&'); 25 if ($titre = _request('titre')) 26 $redirect = parametre_url($redirect,'titre',$titre,'&'); 27 28 if (preg_match(",^\W*(\d+)\W(\w*)\W-(\d+)$,", $arg, $r)) { 29 supprimer_auteur_et_rediriger($r[2], $r[1], $r[3], parametre_url($redirect,'type',$r[2],'&')); 30 } 31 elseif (preg_match(",^\W*(\d+)\W(\w*)\W(\d+)$,", $arg, $r)) { 32 ajouter_auteur_et_rediriger($r[2], $r[1], $r[3], parametre_url($redirect,'type',$r[2],'&')); 33 } 34 elseif (preg_match(",^\W*(\d+)\W(\w*)$,", $arg, $r)) { 35 if ($nouv_auteur = intval(_request('nouv_auteur'))) { 36 ajouter_auteur_et_rediriger($r[2], $r[1], $nouv_auteur, parametre_url($redirect,'type',$r[2],'&')); 37 } else if ($cherche = _request('cherche_auteur')) { 38 if ($p = strpos($redirect, '#')) { 39 $ancre = substr($redirect,$p); 40 $redirect = substr($redirect,0,$p); 41 } else $ancre =''; 42 $redirect = parametre_url($redirect,'type',$r[2],'&'); 43 $res = rechercher_auteurs($cherche); 44 $n = count($res); 45 46 if ($n == 1) 47 # Bingo. Signaler le choix fait. 48 ajouter_auteur_et_rediriger($r[2], $r[1], $res[0], "$redirect&ids=" . $res[0] . "&cherche_auteur=" . rawurlencode($cherche) . $ancre); 49 # Trop vague. Le signaler. 50 elseif ($n > 16) 51 redirige_par_entete("$redirect&cherche_auteur=$cherche&ids=-1" . $ancre); 52 elseif (!$n) 53 # Recherche vide (mais faite). Le signaler 54 redirige_par_entete("$redirect&cherche_auteur=$cherche&ids=" . $ancre); 55 else 56 # renvoyer un formulaire de choix 57 redirige_par_entete("$redirect&cherche_auteur=$cherche&ids=" . join(',',$res) . $ancre); 58 59 } 60 } else spip_log("action_editer_auteur: $arg pas compris"); 61 } 62 63 // http://doc.spip.org/@supprimer_auteur_et_rediriger 64 function supprimer_auteur_et_rediriger($type, $id, $id_auteur, $redirect) 65 { 66 if (preg_match(',^[a-z]*$,',$type)){ 67 spip_query("DELETE FROM spip_auteurs_{$type}s WHERE id_auteur="._q($id_auteur)." AND id_{$type}="._q($id)); 68 if ($GLOBALS['meta']['activer_moteur'] == 'oui') { 69 include_spip("inc/indexation"); 70 marquer_indexer("spip_{$type}s", $id); 71 } 72 } 73 74 if ($redirect) redirige_par_entete($redirect); 75 } 76 77 // http://doc.spip.org/@ajouter_auteur_et_rediriger 78 function ajouter_auteur_et_rediriger($type, $id, $id_auteur, $redirect) 79 { 80 if (preg_match(',^[a-z]*$,',$type)){ 81 $res = spip_query("SELECT id_$type FROM spip_auteurs_{$type}s WHERE id_auteur=" . _q($id_auteur) . " AND id_{$type}=" . $id); 82 if (!spip_num_rows($res)) 83 spip_abstract_insert("spip_auteurs_{$type}s", "(id_auteur,id_{$type})", "($id_auteur,$id)"); 84 85 if ($GLOBALS['meta']['activer_moteur'] == 'oui') { 86 include_spip("inc/indexation"); 87 marquer_indexer("spip_{$type}s", $id); 88 } 89 } 90 91 if ($redirect) redirige_par_entete($redirect); 92 } 93 94 // http://doc.spip.org/@rechercher_auteurs 95 function rechercher_auteurs($cherche_auteur) 96 { 97 include_spip('inc/mots'); 98 include_spip('inc/charsets'); // pour tranlitteration 99 $result = spip_query("SELECT id_auteur, nom FROM spip_auteurs"); 100 $table_auteurs = array(); 101 $table_ids = array(); 102 while ($row = spip_fetch_array($result)) { 103 $table_auteurs[] = $row["nom"]; 104 $table_ids[] = $row["id_auteur"]; 105 } 106 return mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids); 107 } 108 109 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Wed Nov 21 10:20:27 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |