function exec_admin_repair_dist() { $ok = false; if (!spip_connect()) $message = _T('titre_probleme_technique'); else { $version_sql = sql_version(); if (!$version_sql) $message = _T('avis_erreur_connexion_mysql'); else { $s = $GLOBALS['connexions'][0]['type']; if ($s == 'mysql' AND version_compare($version_sql,'3.23.14','<')) $message = _T('avis_version_mysql', array('version_mysql' => " MySQL $version_sql")); else { $message = _T('texte_requetes_echouent'); $ok = true; } } $action = _T('texte_tenter_reparation'); } if ($ok) { $admin = charger_fonction('admin', 'inc'); echo $admin('admin_repair', $action, $message, true); } else { include_spip('inc/minipres'); echo minipres(_T('titre_reparation'), "<p>$message</p>"); } }
function exec_install_dist() { $etape = _request('etape'); $deja = (_FILE_CONNECT AND analyse_fichier_connection(_FILE_CONNECT)); // Si deja installe, on n'a plus le droit qu'a l'etape chmod // pour chgt post-install ou aux etapes supplementaires // de declaration de base externes. // Mais alors il faut authentifier car ecrire/index.php l'a omis if ($deja AND in_array($etape, array('chmod', 'sup1', 'sup2'))) { $auth = charger_fonction('auth', 'inc'); if (!$auth()) { verifier_visiteur(); $deja = (!autoriser('configurer')); } } if ($deja) { // Rien a faire ici echo minipres(); } else { include_spip('base/create'); $fonc = charger_fonction("etape_$etape", 'install'); $fonc(); } }
function exec_editer_mots_args($id_objet, $objet) { $base=""; if (!$id_objet OR !$objet) $droit = false; elseif ($GLOBALS['connect_toutes_rubriques']) // pour eviter SQL $droit = true; elseif ($objet == 'article') $droit = autoriser('modifier','article',$id_objet); elseif ($objet == 'rubrique') $droit = autoriser('publierdans','rubrique',$id_objet); else { if ($objet == 'breve') $droit = sql_select("id_rubrique", "spip_breves", "id_breve=".sql_quote($id_objet)); else $droit = sql_select("id_rubrique", "spip_syndic", "id_syndic=".sql_quote($id_objet)); $droit = autoriser('publierdans','rubrique',$droit['id_rubrique']); } $bases = array('article'=>'articles','breve'=>'breves_voir','rubrique'=>'naviguer','syndic'=>'sites'); if (isset($bases[$objet])) $base = $bases[$objet]; if (!$droit) { include_spip('inc/minipres'); echo minipres(); } else { $ch = _request('cherche_mot'); $id_groupe = _request('select_groupe'); $editer_mots = charger_fonction('editer_mots', 'inc'); ajax_retour($editer_mots($objet, $id_objet, $ch, $id_groupe, 'ajax',false,$base)); } }
function cfg_charger_classe($nom, $dossier = 'inc', $continue = false) { if (class_exists($f = $nom)) { return $f; } if (class_exists($g = $f . '_dist')) { return $g; } if (substr($dossier, -1) != '/') { $dossier .= '/'; } // Sinon charger le fichier de declaration si plausible if (!preg_match(',^\\w+$,', $f)) { die(htmlspecialchars($nom) . " pas autorise"); } // passer en minuscules (cf les balises de formulaires) $inc = include_spip($d = $dossier . strtolower($nom)); if (class_exists($f)) { return $f; } if (class_exists($g)) { return $g; } if ($continue) { return false; } // Echec : message d'erreur spip_log("class {$nom} ({$f} ou {$g}) indisponible" . ($inc ? "" : " (fichier {$d} absent)")); include_spip('inc/minipres'); echo minipres(_T('forum_titre_erreur'), _T('fichier_introuvable', array('fichier' => '<b>' . htmlentities($d) . '</b>'))); exit; }
function exec_config_lang_dist() { if (!autoriser('configurer', 'lang')) { include_spip('inc/minipres'); echo minipres(); } else { $config = charger_fonction('config', 'inc'); $config(); pipeline('exec_init',array('args'=>array('exec'=>'config_lang'),'data'=>'')); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('titre_page_config_contenu'), "configuration", "langues"); echo debut_gauche('', true); echo debut_droite('', true); echo "<br /><div style='text-align: center'>", gros_titre(_T('info_langues'), '', false), '</div><br />', barre_onglets("config_lang", "langues"), '<br />'; $langue = charger_fonction('langue', 'configuration'); echo $langue(); $transcodeur = charger_fonction('transcodeur', 'configuration'); echo $transcodeur(); echo fin_gauche(), fin_page(); } }
/** * Page d'affichage des résultats de validation XML selon une DTD * * - l'argument var_url peut indiquer un fichier ou un repertoire * - l'argument ext peut valoir "php" ou "html" * -- Si "php", le script est execute et la page valide * -- Si "html", on suppose que c'est un squelette dont on devine les args * en cherchant les occurrences de Pile[0]. * * @example * ``` * ecrire?exec=valider_xml&var_url=exec&ext=php pour tester l'espace prive * ecrire?exec=valider_xml&var_url=../squelettes-dist&ext=html pour le public * ``` * * @uses valider_xml_ok() **/ function exec_valider_xml_dist() { if (!autoriser('sauvegarder')) { include_spip('inc/minipres'); echo minipres(); } else { $erreur = ""; // verifier que les var de l'URL sont conformes avant d'appeler la fonction $url = trim(_request('var_url')); if (strncmp($url, '/', 1) == 0) { $erreur = 'Chemin absolu interdit pour var_url'; } // on a pas le droit de remonter plus de 1 fois dans le path (pas 2 occurences de ../) if (($p = strpos($url, '../')) !== false and strpos($url, '../', $p + 3) !== false) { $erreur = 'Interdit de remonter en dehors de la racine'; } $ext = trim(_request('ext')); $ext = ltrim($ext, '.'); // precaution if (preg_match('/\\W/', $ext)) { $erreur = 'Extension invalide'; } if ($erreur) { include_spip('inc/minipres'); echo minipres($erreur); } else { valider_xml_ok($url, $ext, intval(_request('limit')), _request('recur')); } } }
/** * Telecharger un dump quand on est webmestre * * @param string $arg */ function action_telecharger_dump_dist($arg = null) { if (!$arg) { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); } $file = dump_repertoire() . basename($arg, '.sqlite') . '.sqlite'; if (file_exists($file) and autoriser('webmestre')) { $f = basename($file); // ce content-type est necessaire pour eviter des corruptions de zip dans ie6 header('Content-Type: application/octet-stream'); header("Content-Disposition: attachment; filename=\"{$f}\";"); header("Content-Transfer-Encoding: binary"); // fix for IE catching or PHP bug issue header("Pragma: public"); header("Expires: 0"); // set expiration time header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); if ($cl = filesize($file)) { header("Content-Length: " . $cl); } readfile($file); } else { http_status(404); include_spip('inc/minipres'); echo minipres(_T('erreur') . ' 404', _T('info_acces_interdit')); } // et on finit comme ca d'un coup exit; }
function exec_acces_restreint(){ if (!autoriser('administrer','zone',0)) { include_spip('inc/minipres'); echo minipres(); exit; } $commencer_page = charger_fonction('commencer_page','inc'); echo $commencer_page(_T('accesrestreint:page_zones_acces')); echo gros_titre(_T('accesrestreint:titre_zones_acces'),'',false); echo debut_gauche("acces_restreint",true); echo debut_boite_info(true); echo propre(_T('accesrestreint:info_page')); echo fin_boite_info(true); if (autoriser('webmestre')) { $res = icone_horizontale(_L('Configuration des accès .htaccess'), generer_url_ecrire("acces_restreint_config"), "../"._DIR_PLUGIN_ACCESRESTREINT."/img_pack/zones-acces-24.gif", "cadenas-24.gif",false); echo bloc_des_raccourcis($res); } echo debut_droite("acces_restreint",true); echo recuperer_fond('prive/acces_restreint',$_GET); if (autoriser('modifier','zone')) echo "<div>".icone_inline(_T('accesrestreint:creer_zone'), generer_url_ecrire("zones_edit","new=oui"), _DIR_PLUGIN_ACCESRESTREINT."/img_pack/zones-acces-24.gif", "creer.gif",'right')."</div>"; echo fin_gauche(),fin_page(); }
function exec_admin_declarer_dist() { if (!autoriser('detruire')) { include_spip('inc/minipres'); echo minipres(); } else { $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('titre_admin_tech'), "configuration", "base"); echo "\n<br /><br />"; echo gros_titre(_T('titre_admin_effacer'),'',false); echo barre_onglets("administration", "declarer"); echo debut_gauche('',true); echo debut_boite_info(true); echo _T('info_gauche_admin_effacer'); echo fin_boite_info(true); echo creer_colonne_droite('',true); echo pipeline('affiche_droite',array('args'=>array('exec'=>'admin_effacer'),'data'=>'')); echo debut_droite('',true); echo autres_bases(); echo pipeline('affiche_milieu',array('args'=>array('exec'=>'admin_effacer'),'data'=>'')); echo fin_gauche(), fin_page(); } }
function exec_admin_tech_dist() { if (!autoriser('sauvegarder')){ include_spip('inc/minipres'); echo minipres(); } else exec_admin_tech_args(options_avancees_dump()); }
function exec_articles_args($id_article) { pipeline('exec_init',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>'')); $row = sql_fetsel("*", "spip_articles", "id_article=$id_article"); if (!$row OR !autoriser('voir', 'article', $id_article)) { include_spip('inc/minipres'); echo minipres(_T('public:aucun_article')); } else { $row['titre'] = sinon($row["titre"],_T('info_sans_titre')); $res = debut_gauche('accueil',true) . articles_affiche($id_article, $row, _request('cherche_auteur'), _request('ids'), _request('cherche_mot'), _request('select_groupe'), _request('trad_err'), _request('debut')) . "<br /><br /><div class='centered'>" . "</div>" . fin_gauche(); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page("« ". $row['titre'] ." »", "naviguer", "articles", $row['id_rubrique']); echo debut_grand_cadre(true), afficher_hierarchie($row['id_rubrique'],_T('titre_cadre_interieur_rubrique'),$id_article,'article',$row['id_secteur'],($row['statut'] == 'publie')), fin_grand_cadre(true), $res, fin_page(); } }
/** * Exec de la page de destruction des tables de SPIP **/ function exec_base_delete_all_dist() { include_spip('inc/autoriser'); if (!autoriser('detruire')) { include_spip('inc/minipres'); echo minipres(); } else { include_spip('base/dump'); $res = base_lister_toutes_tables('', array(), array(), true); if (!$res) { include_spip('inc/minipres'); spip_log("Erreur base de donnees"); echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique') . "<p><tt>" . sql_errno() . " " . sql_error() . "</tt></p>"); } else { $res = base_saisie_tables('delete', $res); include_spip('inc/headers'); $res = "\n<ol style='text-align:left'><li>\n" . join("</li>\n<li>", $res) . '</li></ol>'; $admin = charger_fonction('admin', 'inc'); $res = $admin('delete_all', _T('titre_page_delete_all'), $res); if (!$res) { redirige_url_ecrire('install', ''); } else { echo $res; } } } }
function action_iextras_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); // droits include_spip('inc/autoriser'); if (!autoriser('configurer', 'iextra')) { include_spip('inc/minipres'); echo minipres(); exit; } @(list($arg, $id_extra_ou_table, $champ) = explode('/', $arg)); // actions possibles if (!in_array($arg, array('associer_champ', 'supprimer_champ'))) { include_spip('inc/minipres'); echo minipres(_T('iextras:erreur_action', array("action" => $arg))); exit; } // cas de l'association d'un champ existant if ($arg == 'associer_champ' and $table = $id_extra_ou_table and $champ) { $extra_id = action_associer_champ_sql_comme_champ_extra($table, $champ); } // cas de la suppression d'un champ existant if ($arg == 'supprimer_champ' and $table = $id_extra_ou_table and $champ) { action_supprimer_champ_sql($table, $champ); } }
/** * Action de mise à jour des descriptions d'un dépot * * @return array * Liste identifiant du dépot, texte d'erreur éventuel **/ function action_editer_depot_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); // Verification des autorisations if (!autoriser('webmestre')) { include_spip('inc/minipres'); echo minipres(); exit; } // Le depot n'est jamais cree par une edition mais via le formulaire ajouter_depot // On est toujours en presence d'une mise a jour pour cette action, l'id_depot // doit donc etre renseigne sinon c'est une erreur if ($id_depot = intval($arg)) { // On teste si l'auteur est connecte. Si non on renvoie sur le formulaire login $id_auteur = $GLOBALS['visiteur_session']['id_auteur']; if (!$id_auteur) { include_spip('inc/headers'); redirige_url_ecrire(); } // On met a jour le depot avec les saisies if (sql_updateq('spip_depots', array('titre' => _request('titre'), 'descriptif' => _request('descriptif'), 'type' => _request('type')), 'id_depot=' . sql_quote($id_depot))) { } // Enregistre l'envoi dans la BD // Dans le cas du depot rien n'est fait actuellement, on garde cette fonction // par souci de coherence avec les autres editions d'objet et pour usage futur $err = depots_set($id_depot); if (!$err) { spip_log("ACTION MODIFIER DEPOT (manuel) : id_depot = " . $id_depot, 'svp_actions.' . _LOG_INFO); } } return array($id_depot, $err); }
/** * Point d'entrée d'édition d'un objet * * On ne peut entrer que par un appel en fournissant $id et $objet * ou avec un argument d'action sécurisée de type "objet/id" * * @param int $id * @param string $objet * @param array $set * @return array */ function action_editer_objet_dist($id = null, $objet = null, $set = null) { // appel direct depuis une url avec arg = "objet/id" if (is_null($id) or is_null($objet)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); list($objet, $id) = array_pad(explode("/", $arg, 2), 2, null); } // appel incorrect ou depuis une url erronnée interdit if (is_null($id) or is_null($objet)) { include_spip('inc/minipres'); echo minipres(_T('info_acces_interdit')); die; } // si id n'est pas un nombre, c'est une creation // mais on verifie qu'on a toutes les donnees qu'il faut. if (!($id = intval($id))) { // on ne sait pas si un parent existe mais on essaye $id_parent = _request('id_parent'); $id = objet_inserer($objet, $id_parent); } if (!($id = intval($id)) > 0) { return array($id, _L('echec enregistrement en base')); } // Enregistre l'envoi dans la BD $err = objet_modifier($objet, $id, $set); return array($id, $err); }
function charger_fonction($nom, $dossier='exec', $continue=false) { if (strlen($dossier) AND substr($dossier,-1) != '/') $dossier .= '/'; if (function_exists($f = str_replace('/','_',$dossier) . $nom)) return $f; if (function_exists($g = $f . '_dist')) return $g; // Sinon charger le fichier de declaration si plausible if (!preg_match(',^\w+$,', $f)) die(htmlspecialchars($nom)." pas autorise"); // passer en minuscules (cf les balises de formulaires) // et inclure le fichier if (!$inc = include_spip($dossier.($d = strtolower($nom))) // si le fichier truc/machin/nom.php n'existe pas, // la fonction peut etre definie dans truc/machin.php qui regroupe plusieurs petites fonctions AND strlen(dirname($dossier)) AND dirname($dossier)!='.') include_spip(substr($dossier,0,-1)); if (function_exists($f)) return $f; if (function_exists($g)) return $g; if ($continue) return false; // Echec : message d'erreur spip_log("fonction $nom ($f ou $g) indisponible" . ($inc ? "" : " (fichier $d absent de $dossier)")); include_spip('inc/minipres'); echo minipres(_T('forum_titre_erreur'), _T('fichier_introuvable', array('fichier'=> '<b>'.htmlentities($d).'</b>'))); exit; }
function action_configurer_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); # ceinture & bretelles, a priori le test dans exec_configurer # suffit a empecher d'obtenir un hash qui passe le test ci-dessus if(!autoriser('configurer', _request('configuration'))) { include_spip('inc/minipres'); echo minipres(_T('info_acces_interdit')); exit; } $r = rawurldecode(_request('redirect')); $r = parametre_url($r, 'configuration', $arg,"&"); appliquer_modifs_config(); // Cette globale est fixee par appliquer_modifs_config(); // c'est un message a afficher dans l'exec de retour (relayeur si comme ici on est en ajax) if ($arg == 'relayeur') $r = parametre_url($r, 'retour_proxy', $GLOBALS['retour_proxy'],"&"); else if ($arg == 'langue') { include_spip('inc/rubriques'); calculer_langues_rubriques(); } if (_request('envoi_now')) cron(0, array('mail' => -1)); redirige_par_entete($r); }
function exec_valider_xml_dist() { if (!autoriser('sauvegarder')) { include_spip('inc/minipres'); echo minipres(); } else valider_xml_ok(_request('var_url'), _request('ext'), intval(_request('limit')), _request('recur')); }
function exec_statistiques_lang_dist() { if (!autoriser('voirstats')) { include_spip('inc/minipres'); echo minipres(); } else statistiques_lang_ok(); }
function action_dereferencer_traduction_rubrique_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); list($type, $id_objet) = explode('/', $arg); if (!$type = objet_type($type) or !$id_objet = intval($id_objet)) { if (!_AJAX) { include_spip('inc/minipres'); minipres('Arguments incompris'); } else { spip_log('Arguments incompris dans action dereferencer_traduction_rubrique'); return false; } } $objet = table_objet($type); $_id_objet = id_table_objet($objet); $table = table_objet_sql($objet); $id_trad_old = sql_getfetsel('id_trad', $table, "$_id_objet = " . sql_quote($id_objet)); if ($id_trad_old) { include_spip('inc/modifier'); modifier_contenu($objet, $id_objet, array('invalideur' => "id='$objet/$id_objet'"), array('id_trad' => 0)); // si la deliaison fait qu'il ne reste plus que la source // dans le groupe de traduction on lui remet l'id_trad a 0 if (1 == $nb_dans_groupe = sql_countsel($table, array('id_trad = ' . sql_quote($id_trad_old)))) { modifier_contenu($objet, $id_trad_old, array('invalideur' => "id='$objet/$id_trad_old'"), array('id_trad' => 0)); } } }
/** * Traite l'erreur d'un upload trop gros * * L'erreur est appelée depuis public.php et medias_detecter_fond_par_defaut * et affiche un minipres avec la taille limite de documents possibles * * @see minipres() **/ function erreur_upload_trop_gros() { include_spip('inc/filtres'); $msg = "<p>" . taille_en_octets($_SERVER["CONTENT_LENGTH"]) . '<br />' . _T('medias:upload_limit', array('max' => ini_get('upload_max_filesize'))) . "</p>"; echo minipres(_T('pass_erreur'), "<div class='upload_answer upload_error'>" . $msg . "</div>"); exit; }
/** * Action de mise à jour en base de données de la liste des plugins * d'un ou de tous les dépots */ function action_actualiser_depot_dist() { // Securisation: aucun argument attendu $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); // Verification des autorisations if (!autoriser('webmestre')) { include_spip('inc/minipres'); echo minipres(); exit; } // Actualisation des plugins du depot ou de tous les plugins suivant l'argument de l'action // Le depot lui-meme n'est mis a jour que partiellement via le fichier XML une fois que // la premiere insertion a ete effectuee. En effet, seules les infos non editables dans le prive // peuvent etre actualisees lors de cette action include_spip('inc/svp_depoter_distant'); if ($arg === 'tout') { if ($ids_depots = sql_allfetsel('id_depot', 'spip_depots')) { $ids_depots = array_map('reset', $ids_depots); foreach ($ids_depots as $_id_depot) { svp_actualiser_depot($_id_depot); } // On consigne l'action spip_log("ACTION ACTUALISER TOUS LES DEPOTS (manuel)", 'svp_actions.' . _LOG_INFO); } } else { if ($id_depot = intval($arg)) { svp_actualiser_depot($id_depot); // On consigne l'action spip_log("ACTION ACTUALISER DEPOT (manuel) : id_depot = " . $id_depot, 'svp_actions.' . _LOG_INFO); } } }
function action_cs_spam(){ include_spip('inc/minipres'); echo minipres( _T('couteau:lutte_spam'), '<pre>'.$_POST[$_GET['var']].'</pre><div>'._T('couteau:explique_spam').'</div>' ); exit; }
function exec_statistiques_referers_dist() { $jour = _request('jour'); $limit = _request('limit'); // nombre de referers a afficher $limit = intval($limit); //secu if (!autoriser('voirstats','article')) { include_spip('inc/minipres'); echo minipres(); } else { if ($limit == 0) $limit = 100; if ($jour<>'veille') $jour='jour'; $referenceurs = charger_fonction('referenceurs', 'inc'); $res = $referenceurs (0, "SUM(visites_$jour)", 'spip_referers', "visites_$jour>0", "referer", $limit); $n = count($res); $args = "jour=$jour&limit=" . strval($limit+200); $plus = generer_url_ecrire('statistiques_referers', $args); if ($plus) { $plus = "<div style='text-align:right;'><b><a href='$plus'>+++</a></b></div>"; } $titre = _T('titre_liens_entrants') . " ($n " . ($n <= 1 ? _T('info_site') : _T('info_sites')) . ")"; $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('titre_page_statistiques_referers'), "statistiques_visites", "referers"); echo "<br /><br /><br />"; echo gros_titre($titre,'', false); echo debut_gauche('', true); echo debut_boite_info(true); echo "<p style='font-size:small; text-align:left;' class='verdana1'>"; echo _T('info_gauche_statistiques_referers'); echo "</p>"; echo fin_boite_info(true); echo debut_droite('', true); echo barre_onglets("stat_referers", $jour); if ($res) { echo "<br /><div style='font-size:small;' class='verdana1'>"; echo "<ul class='referers'><li>"; echo join("</li><li>\n", $res); echo "</li></ul>"; echo $plus; echo "</div><br />"; } echo fin_gauche(), fin_page(); } }
function exec_cfg_install_libs_dist($class = null) { include_spip('inc/filtres'); include_spip("inc/presentation"); global $cfg_libs; // droits : il faut avoir le droit de choisir les plugins, // mais aussi d'en ajouter include_spip('inc/autoriser'); if (!autoriser('configurer', 'plugins')) { echo minipres(); exit; } pipeline('exec_init', array('args' => array('exec' => 'cfg'), 'data' => '')); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('cfg:installation_librairies'), 'cfg'); echo "<br /><br /><br />\n"; echo gros_titre(_T('cfg:installation_librairies'), '', false); // colonne gauche echo debut_gauche('', true); echo pipeline('affiche_gauche', array('args' => array('exec' => 'cfg'), 'data' => '')); echo creer_colonne_droite('', true); echo pipeline('affiche_droite', array('args' => array('exec' => 'cfg'), 'data' => '')); echo debut_droite("", true); // centre de la page echo debut_cadre_trait_couleur('', true, '', _T('cfg:installation_liste_libs')); // message pour creer le dossier lib/ if (!is_dir(_DIR_LIB) && !is_writable(_DIR_LIB)) { echo "<p class='important'>" . _T('cfg:installer_dossier_lib', array('dir' => joli_repertoire(_DIR_LIB))) . "</p>\n"; } // message pour installation 1.9.2 if ($spip192 = defined('_COMPAT_CFG_192') && _COMPAT_CFG_192) { echo "<p>" . _T('cfg:installer_lib_192', array('dir' => joli_repertoire(_DIR_LIB))) . "</p>\n"; } // mettre un lien pour telecharger les libs include_spip('inc/actions'); foreach ($cfg_libs as $lib => $info) { // deja present ? texte du bouton : "mettre a jour", sinon "telecharger" $quoi = is_dir(_DIR_LIB . $info['dir']) ? 'update' : 'install'; echo "<dl>\n"; echo "<dt>" . $info['nom'] . "</dt>\n"; echo "<dd>" . $info['description'] . "</dd>\n"; // cas 1.9.2 // proposer de copier manuellement le zip decompresse dans le dossier lib if ($spip192) { echo "<dd>" . ($quoi == 'update' ? "(" . _T('cfg:bouton_mettre_a_jour') . ") " : "") . "<a class='spip_out' href='{$info['install']}' />{$info['install']}</a></dd>\n"; // cas > 1.9.2 // chargeur plugin/lib de spip } else { echo "<dd>" . redirige_action_auteur('charger_plugin', 'lib', '', '', "<input type='hidden' name='url_zip_plugin' value='{$info['install']}' />" . "<input type='hidden' name='retour' value='" . self() . "' />" . "<input type='submit' class='fondo' name='ok' value='" . ($quoi == 'update' ? _T('cfg:bouton_mettre_a_jour') : _T('bouton_telecharger')) . "' />", "\nmethod='post'") . "</dd>\n"; } echo "</dl>\n"; } echo fin_cadre_trait_couleur(true); // pied echo fin_gauche() . fin_page(); }
function exec_forum_admin_dist() { if (!autoriser('forum_admin')) { include_spip('inc/minipres'); echo minipres(); } else { include_spip('exec/forum'); forum_affiche(intval(_request('debut')), true); } }
function exec_configurer_previsualiseur_dist() { if(!autoriser('configurer', _request('configuration'))) { include_spip('inc/minipres'); echo minipres(_T('info_acces_interdit')); exit; } $previsualiseur = charger_fonction('previsualiseur', 'configuration'); include_spip('inc/actions'); ajax_retour($previsualiseur()); }
function exec_configurer_notifications_forum_dist() { if(!autoriser('configurer', _request('configuration'))) { include_spip('inc/minipres'); echo minipres(_T('info_acces_interdit')); exit; } $f = charger_fonction('notifications_forum', 'configuration'); include_spip('inc/actions'); ajax_retour($f()); }
function exec_mots_type_dist() { $id_groupe= intval(_request('id_groupe')); if (!$id_groupe) { $type = $titre = filtrer_entites(_T('titre_nouveau_groupe')); $row = array(); } else { $row = sql_fetsel("id_groupe,titre", "spip_groupes_mots", "id_groupe=$id_groupe"); if ($row) { $id_groupe = $row['id_groupe']; $type = $row['titre']; $titre = typo($type); } } if (($id_groupe AND !$row) OR !autoriser($id_groupe?'modifier' : 'creer', 'groupemots', $id_groupe)) { include_spip('inc/minipres'); echo minipres(); } else { pipeline('exec_init',array('args'=>array('exec'=>'mots_type','id_groupe'=>$id_groupe),'data'=>'')); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page("« $titre »", "naviguer", "mots"); echo debut_gauche('', true); echo pipeline('affiche_gauche',array('args'=>array('exec'=>'mots_type','id_groupe'=>$id_groupe),'data'=>'')); echo creer_colonne_droite('', true); echo pipeline('affiche_droite',array('args'=>array('exec'=>'mots_type','id_groupe'=>$id_groupe),'data'=>'')); echo debut_droite('', true); $contexte = array( 'icone_retour'=>icone_inline(_T('icone_retour'), generer_url_ecrire("mots_tous") . "#mots_tous-$id_groupe", "groupe-mot-24.gif", "rien.gif",$GLOBALS['spip_lang_left']), 'titre'=>$type, 'redirect'=>generer_url_ecrire("mots_tous",""), 'new'=>_request('new') == "oui"?"oui":$id_groupe, 'config_fonc'=>'groupes_mots_edit_config', ); echo recuperer_fond("prive/editer/groupe_mot", $contexte); echo pipeline('affiche_milieu', array('args' => array( 'exec' => 'mots_type', 'id_groupe' => $id_groupe ), 'data'=>'') ), fin_gauche(), fin_page(); } }
function exec_legender_args($id_document, $type, $id, $ancre='', $script='') { if (!$id_document OR !autoriser('joindredocument',$type, $id)) { include_spip('inc/minipres'); echo minipres(); } else { include_spip('inc/actions'); $legender = charger_fonction('legender', 'inc'); ajax_retour($legender($id_document, array(), $script, $type, $id, $ancre)); } }