function exec_articles_tous_args($id_rubrique, $aff_art, $sel_lang) { global $browser_layer,$spip_lang_right,$spip_lang_left; changer_typo(); // pour definir la direction de la langue if (!is_array($aff_art)) $aff_art = array('prop','publie'); $enfant = arbo_articles_tous(); $flag_trad = (($GLOBALS['meta']['multi_rubriques'] == 'oui' OR $GLOBALS['meta']['multi_articles'] == 'oui') AND $GLOBALS['meta']['gerer_trad'] == 'oui'); list($article,$text_article,$aff_statut) = texte_articles_tous($sel_lang, $flag_trad, $aff_art, lang_dir()); if (_AJAX AND $id_rubrique) { include_spip('inc/actions'); ajax_retour(afficher_contenu_rubrique($article, $enfant, $text_article, $id_rubrique, $flag_trad, 2)); } else { pipeline('exec_init',array('args'=>array('exec'=>'articles_tous'),'data'=>'')); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('titre_page_articles_tous'), "accueil", "tout-site"); echo http_script('var img_deplierhaut = "'. chemin_image('noeud_plus.gif') .'"; var img_deplierbas = "'. chemin_image('noeud_moins.gif') . '";'); echo http_script('', 'jquery-ui-1.8-drag-drop.min.js'); echo http_script('', 'articles_tous_edite.js'); echo http_script('', 'pause.js'); echo debut_gauche('', true); echo formulaire_affiche_tous($aff_art, $aff_statut, $sel_lang); echo pipeline('affiche_gauche',array('args'=>array('exec'=>'articles_tous'),'data'=>'')); echo creer_colonne_droite('', true); echo pipeline('affiche_droite',array('args'=>array('exec'=>'articles_tous'),'data'=>'')); echo debut_droite('', true); if ($enfant AND $browser_layer) echo couche_formulaire_tous(); $out = "<textarea cols='1' rows='1' id='deplacements' style='display:none;' name='deplacements'></textarea>" . "\n<div id='apply' style='display:none;text-align:$spip_lang_right'><input type='submit' value='"._T('bouton_changer')."' /></div>"; echo "\n<div id='cancel' class='verdana2' style='display:none;text-align:$spip_lang_left;float:$spip_lang_left'>", "<a href='javascript:annuler_deplacement();'>", _T('bouton_annuler'), "</a></div>", redirige_action_post("reorganiser","",'articles_tous', '', $out), "<ul id='articles_tous'><li id='rubrique-0' class='treeItem racine verdana2'>", "<span class='holder icone'> </span>", _T('info_racine_site'), "\n<ul class=''>\n", afficher_contenu_rubrique($article, $enfant, $text_article, 0, $flag_trad, 2), "</ul></li></ul>\n", fin_gauche(), fin_page(); } }
function pack_action_rapide() { include_spip('inc/texte'); // pour attribut_html() switch($n = count($GLOBALS['cs_installer'])) { case 0 : $info = _T('couteauprive:pack_nb_zero'); break; case 1 : $info = _T('couteauprive:pack_nb_un'); break; default : $info = _T('couteauprive:pack_nb_plrs', array('nb' => $n)); } $liste = $script = ''; if($n) { $exec = _request('exec'); $fin_delete = _T('couteauprive:pack_delete'); $fin_delete = "\" class='pack_delete' title=\"$fin_delete\"><img src=\""._DIR_IMG_PACK."poubelle.gif\" width='12' height='12' alt=\"$fin_delete\" /></a> <a href=\""; $fin_install = _T('couteauprive:pack_installe'); $fin_install = "\" class='pack_install' title=\"$fin_install\"><img src=\""._DIR_IMG_PACK."secteur-12.gif\" width='12' height='12' alt=\"$fin_install\" /></a> "; foreach(array_keys($GLOBALS['cs_installer']) as $pack) { $u = urlencode($pack); $liste .= "\n-* <a href=\"" . generer_url_ecrire($exec,'cmd=delete&pack='.$u) . $fin_delete . generer_url_ecrire($exec,'cmd=install&pack='.$u) . $fin_install . $pack; } $liste = propre($liste); $script = "<script type=\"text/javascript\"><!-- if (window.jQuery) jQuery(function(){ jQuery('a.pack_delete').click( function() { msg=\"".cs_javascript('couteauprive:pack_supprimer')."\"; return window.confirm(msg.replace(/@pack@/,jQuery(this).parent().text().trim())); }); jQuery('a.pack_install').click( function() { msg=\"".cs_javascript('couteauprive:pack_installer').'\n\n'.cs_javascript('couteauprive:cs_reset2')."\"; return window.confirm(msg.replace(/@pack@/,jQuery(this).parent().text().trim())); }); }); //--></script>\n"; } // appel direct, sans ajax, histoire de mettre a jour le menu : return redirige_action_post('action_rapide', 'sauve_pack', 'admin_couteau_suisse', "cmd=pack#cs_infos", "\n$script<div style='padding:0.4em;'><p>$info</p>$liste<p>"._T('couteauprive:pack_sauver_descrip', array('file' => show_file_options())) ."</p><div style='text-align: center;'><input class='fondo' type='submit' value=\"" .attribut_html(_T('couteauprive:pack_sauver')) . "\" /></div></div>"); }
function inc_joindre_dist($v) { // calculer le formulaire de base $res = joindre_formulaire($v); if (!empty($v['cadre'])) { $debut_cadre = 'debut_cadre_'.$v['cadre']; $fin_cadre = 'fin_cadre_'.$v['cadre']; $res = $debut_cadre($v['icone'], true, $v['fonction'], $v['titre']) . $res . $fin_cadre(true); } $res = "\n<div class='joindre'>".$res."</div>\n"; $att = " enctype='multipart/form-data' class='form_upload'"; $args = (intval($v['id']) .'/' .intval($v['id_document']) . "/".$v['mode'].'/'.$v['type']); $script = $v['script']; // si espace prive, $v a une signification speciale (pas clair) if (test_espace_prive()) return redirige_action_post('joindre', $args, $script, $v['args'], $res, $att); else return generer_action_auteur('joindre', $args, $script, $res, "$att method='post'"); }
/** * Affichage spécifique de la page de gestion des plugins * * Affiche la liste des plugins demandés et les erreurs éventuelles. * * @uses plugin_donne_erreurs() * @uses liste_chemin_plugin() * @uses plugin_installes_meta() * @uses affiche_les_plugins_verrouilles() * * @pipeline_appel affiche_gauche * @pipeline_appel affiche_droit * @pipeline_appel affiche_milieu * * @param string $quoi * Quels plugins afficher ? actifs, ou autre * @param string $erreur * Erreur éventuelle à afficher * @param string $format * Format d'affichage (liste ou arborescence) **/ function admin_plug_args($quoi, $erreur, $format) { if (!$quoi) { $quoi = 'actifs'; } // empecher l'affichage des erreurs dans le bandeau, on le donne ensuite // format brut par plugin $GLOBALS['erreurs_activation_raw'] = plugin_donne_erreurs(true, false); // format resume mis en forme $erreur_activation = plugin_donne_erreurs(); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('icone_admin_plugin'), "configuration", "plugin"); echo debut_gauche('plugin', true); echo recuperer_fond('prive/squelettes/navigation/configurer', array('exec' => 'admin_plugin')); echo pipeline('affiche_gauche', array('args' => array('exec' => 'admin_plugin'), 'data' => afficher_librairies())); echo debut_droite('plugin', true); echo gros_titre(_T('icone_admin_plugin'), '', false); // Barre d'onglets de premier niveau echo barre_onglets("plugins", "plugins_actifs"); // Barre d'onglets de second niveau $onglet2 = $quoi == 'actifs' ? 'plugins_actifs' : 'admin_plugin'; echo debut_onglet('onglets_simple second'); echo onglet(_T('plugins_tous_liste'), generer_url_ecrire("admin_plugin", "voir=tous"), 'admin_plugin', $onglet2); echo onglet(_T('plugins_actifs_liste'), generer_url_ecrire("admin_plugin"), 'plugins_actifs', $onglet2); echo fin_onglet(); // message d'erreur au retour d'une operation if ($erreur) { echo "<div class='error'>{$erreur}</div>"; } if ($erreur_activation) { echo "<div class='error'>{$erreur_activation}</div>"; } // la mise a jour de cette meta a ete faite par ecrire_plugin_actifs $actifs = unserialize($GLOBALS['meta']['plugin']); $lcpa = $actifs + unserialize($GLOBALS['meta']['plugin_attente']); // Les affichages se basent sur le repertoire, pas sur le nom $actifs = liste_chemin_plugin($actifs, ''); if (defined('_DIR_PLUGINS_SUPPL')) { $lcpas = liste_chemin_plugin($lcpa, _DIR_PLUGINS_SUPPL); } $lcpa = liste_chemin_plugin($lcpa); // on installe les plugins maintenant, // cela permet aux scripts d'install de faire des affichages (moches...) plugin_installes_meta(); echo "<div class='liste-plugins formulaire_spip'>"; echo debut_cadre_trait_couleur('plugin-24.png', true, '', _T('plugins_liste'), 'plugins'); if ($quoi !== 'actifs') { $lpf = liste_plugin_files(); if ($lpf) { echo "<p>" . _T('texte_presente_plugin') . "</p>"; } else { if (!@is_dir(_DIR_PLUGINS)) { echo "<p>" . _T('plugin_info_automatique_ftp', array('rep' => joli_repertoire(_DIR_PLUGINS))) . " — " . _T('plugin_info_automatique_creer') . "</p>"; } } $lcpaffiche = $lpf; if (defined('_DIR_PLUGINS_SUPPL')) { $lcpaffichesup = liste_plugin_files(_DIR_PLUGINS_SUPPL); } } else { // la liste // $quoi=='actifs' $lcpaffiche = $lcpa; if (defined('_DIR_PLUGINS_SUPPL')) { $lcpaffichesup = $lcpas; } } if ($quoi == 'actifs' or $lpf) { $nb = count($lcpa); if (defined('_DIR_PLUGINS_SUPPL')) { $nb += count($lcpas); } echo "<h3>" . sinon(singulier_ou_pluriel($nb, 'plugins_actif_un', 'plugins_actifs', 'count'), _T('plugins_actif_aucun')) . "</h3>"; } if (empty($format)) { $format = 'liste'; } elseif (!in_array($format, array('liste', 'repertoires'))) { $format = 'repertoires'; } $afficher = charger_fonction("afficher_{$format}", 'plugins'); $corps = $afficher(self(), $lcpaffiche, $lcpa, $actifs); if (defined('_DIR_PLUGINS_SUPPL')) { $corps .= $afficher(self(), $lcpaffichesup, $lcpas, $actifs, _DIR_PLUGINS_SUPPL); } if ($corps) { $corps .= "\n<div class='boutons' style='display:none;'>" . "<input type='submit' class='submit save' value='" . _T('bouton_enregistrer') . "' />" . "</div>"; } echo redirige_action_post('activer_plugins', 'activer', 'admin_plugin', '', $corps); echo fin_cadre_trait_couleur(true); if ($quoi == 'actifs') { echo affiche_les_plugins_verrouilles($actifs); } echo "</div>"; echo http_script("\n\tjQuery(function(){\n\t\tjQuery('.plugins li.item a[rel=info]').click(function(){\n\t\t\tvar li = jQuery(this).parents('li').eq(0);\n\t\t\tvar prefix = li.find('input.checkbox').attr('name');\n\t\t\tif (!jQuery('div.details',li).html()) {\n\t\t\t\tjQuery('div.details',li).prepend(ajax_image_searching).load(\n\t\t\t\t\tjQuery(this).attr('href').replace(/admin_plugin|plugins/, 'info_plugin'), function(){\n\t\t\t\t\t\tli.addClass('on');\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (jQuery('div.details',li).toggle().is(':visible'))\n\t\t\t\t\tli.addClass('on');\n\t\t\t\telse\n\t\t\t\t\tli.removeClass('on');\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\t\tjQuery('.plugins li.item input.checkbox').change(function(){\n\t\t\tjQuery(this).parents('form').eq(0).find('.boutons').slideDown();\n\t\t});\n\t});\n\t"); echo pipeline('affiche_milieu', array('args' => array('exec' => 'admin_plugin'), 'data' => '')); echo fin_gauche(), fin_page(); }
function http_ajouter_participants($ze_auteurs, $id_message) { include_spip('inc/editer_auteurs'); $cond = auteurs_autorises($ze_auteurs, "messagerie<>'non'"); $all = objet_auteur_select($cond); if (!$all) return ''; $res = "<span class='verdana1 spip_small'><b><label for='id_message'>" . _T('bouton_ajouter_participant') ."</label> </b></span>\n" . "<input type='hidden' name='id_message' id='id_message' value=\"$id_message\" />"; if (is_numeric($all)) { $res .= "\n<input type='text' name='cherche_auteur' id='cherche_auteur' value='' size='20' />"; $res .= "\n<input type='submit' value='"._T('bouton_chercher')."' />"; } else { $res .= "<select name='nouv_auteur' id='nouv_auteur' size='1' style='width: 150px'>" . $all . "</select>" . "<input type='submit' value='"._T('bouton_ajouter')."' />"; } return redirige_action_post('editer_message', "$id_message,", 'message', "id_message=$id_message", "<div style='text-align: left'>\n$res</div>\n"); }
function afficher_site_rubrique($id_syndic, $id_rubrique, $id_secteur) { global $spip_lang_right; if (!_INTERFACE_ONGLETS) return ""; $chercher_rubrique = charger_fonction('chercher_rubrique', 'inc'); $form = $chercher_rubrique($id_rubrique, 'site', false); if (strpos($form,'<select')!==false) { $form .= "<div style='text-align: $spip_lang_right;'>" . '<input type="submit" value="'._T('bouton_choisir').'"/>' . "</div>"; } $msg = _T('titre_cadre_interieur_rubrique'); $form = "<input type='hidden' name='editer_article' value='oui' />\n" . $form; $form = redirige_action_post("editer_site", $id_syndic, 'sites', $form, " class='submit_plongeur'"); if ($id_rubrique == 0) $logo = "racine-site-24.gif"; elseif ($id_secteur == $id_rubrique) $logo = "secteur-24.gif"; else $logo = "rubrique-24.gif"; return debut_cadre_couleur($logo, true, "", $msg) . $form .fin_cadre_couleur(true); }
function action_charger_plugin_dist() { global $spip_lang_left; $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); include_spip('inc/minipres'); include_spip('inc/charger_plugin'); // droits : il faut avoir le droit de choisir les plugins, // mais aussi d'en ajouter -- a voir include_spip('inc/autoriser'); if (!autoriser('configurer', 'plugins')) { echo minipres(); exit; } if ($arg == 'update_flux') { if (is_array($syndic_plug = @unserialize($GLOBALS['meta']['syndic_plug']))) foreach ($syndic_plug as $url => $c) essaie_ajouter_liste_plugins($url); } elseif ($arg == 'supprimer_flux' AND $url = _request('supprimer_flux')) { $syndic_plug = @unserialize($GLOBALS['meta']['syndic_plug']); unset($syndic_plug[$url]); ecrire_meta('syndic_plug', serialize($syndic_plug)); } elseif (in_array($arg,array('charger_zip','lib','plugins'))) { // la verification que c'est bien un zip sera faite apres $zip = _request('url_zip_plugin'); } elseif (strlen($arg)) { // la verification que c'est bien un zip sera faite apres $zip = $arg; } else { // indetermine : c'est un zip ou une liste $arg = 'charger_liste_ou_zip'; $zip = _request('url_zip_plugin2'); } # si premiere lecture, destination temporaire des fichiers $tmp = sous_repertoire(_DIR_CACHE, 'chargeur'); # on ne se contenten pas du basename qui peut etre un simple v1 # exemple de l'url http://nodeload.github.com/kbjr/Git.php/zipball/v0.1.1-rc $fichier = (_request('fichier')? _request('fichier') :"h".substr(md5($zip),0,8)."-".basename($zip) ); # basename par securite notamment dans le cas ou $fichier viens de l'exterieur $fichier = $tmp.basename($fichier); $extension = ""; // a verifier # au second tour, le zip designe directement le fichier au lieu de l'url # initiale if (!file_exists($fichier)) { # si on ne dispose pas encore du fichier # verifier que le zip en est bien un (sans se fier a son extension) # en chargeant son entete car l'url initiale peut etre une simple # redirection et ne pas comporter d'extension .zip include_spip('inc/distant'); $head = recuperer_page($zip, false, true, 0); if (preg_match(",^Content-Type:\s*application/zip$,Uims",$head)) $extension = "zip"; elseif (preg_match(',^Content-Disposition:\s*attachment;\s*filename="?([^"]+)"?$,Uims',$head,$m)){ $f = $m[1]; if (pathinfo($f, PATHINFO_EXTENSION)=="zip"){ $fichier = (_request('fichier')? _request('fichier') :"h".substr(md5($zip),0,8)."-".basename($f) ); $fichier = $tmp.basename($fichier); $extension = "zip"; } } // au cas ou, si le content-type n'est pas la // mais que l'extension est explicite elseif(pathinfo($zip, PATHINFO_EXTENSION)=="zip") $extension = "zip"; # si ce n'est pas un zip dans un format connu, # c'est sans doute une liste de plugins # si on est dans le bon scenario if (!$extension) { if ($arg == 'charger_liste_ou_zip') { essaie_ajouter_liste_plugins($zip); } } } else { $extension = pathinfo($fichier, PATHINFO_EXTENSION); if (!$extension) $extension = pathinfo($zip, PATHINFO_EXTENSION); } # format de fichier inconnu if (!$extension) { spip_log("Extension inconnue pour le paquet $fichier venant de $zip"); include_spip('inc/headers'); redirige_url_ecrire('charger_plugin'); } # Si definie a '', le chargeur est interdit ; mais on n'aurait de toutes # facons jamais pu venir ici avec toutes les securisations faites :^) if (!_DIR_PLUGINS_AUTO) die('jamais'); # dispose-t-on du fichier ? $status = null; # forcer l'extension du fichier par securite $fichier = $tmp.basename($fichier,".$extension").".$extension"; if (!@file_exists($fichier)) { include_spip('inc/distant'); $contenu = recuperer_page($zip, $fichier, false,_COPIE_LOCALE_MAX_SIZE); if (!$contenu) { spip_log('charger_decompresser impossible de charger '.$zip); $status = -1; } } if ($status === null) { $status = chargeur_charger_zip( array( 'zip' => $zip, 'arg' => $arg, 'fichier' => $fichier, 'tmp' => $tmp, 'extract' => _request('extract') ) ); if (_request('extract')) { spip_unlink($fichier); } } // Vers quoi pointe le bouton "suite" $suite = ''; // le fichier .zip est la et bien forme if (is_array($status)) { // Reconnaitre un plugin par son fichier xml $get_infos = charger_fonction('get_infos','plugins'); $infos = $get_infos($status['tmpname'], true, ''); if ($infos) { $nom = $infos['nom']; $image = $infos['icon']; $description = $infos['description']; $type = 'plugin'; $dest = _DIR_PLUGINS_AUTO; } else { $type = 'lib'; $dest = _DIR_RACINE.'lib/'; } // Fixer son emplacement final $status['dirname'] = $dest . basename($status['tmpname']) . '/'; // repertoire parent accessible en ecriture ? if (!@is_dir($dest) OR !@is_writeable($dest)) { $retour = _T("erreur"); $texte = "<p>"._T('plugin_erreur_droit1',array('dest'=>$dest))."</p>" . "<p>"._T('plugin_erreur_droit2').aide('install0')."</p>"; } else // C'est un plugin ? if ($type == 'plugin') { $retour = typo($nom); // l'icone ne peut pas etre dans tmp/ (lecture http oblige) // on la copie donc dans local/chargeur/ if ($image) { $dir = sous_repertoire(_DIR_VAR,'chargeur'); @copy($status['tmpname'].'/'.$image, $image2 = $dir.basename($image)); $retour = "<img src='".$image2."' style='float:right;' />" . $retour; } else $retour = "<img src='".find_in_path('images/plugin-24.gif')."' style='float:right;' />" . $retour; if (_request('extract')) { $afficher = charger_fonction('afficher_plugin','plugins'); // pour plugin_propre $texte = plugin_propre($description) . '<p>'._T('plugin_zip_installe_finie',array('zip'=>$zip)).'</p>' . "<h2 style='text-align:center;'>"._T('plugin_zip_active')."</h2>"; } else { $texte = '<p>'._T('plugin_zip_telecharge',array('zip'=>$zip)).'</p>'; $texte .= liste_fichiers_pclzip($status); $texte .= "<h2 style='text-align:center;'>"._T('plugin_zip_installer')."</h2>"; $suite = 'plugins'; } } // C'est un paquet quelconque else { $retour = _T('plugin_charge_paquet',array('name' => basename($status['tmpname']))); if (_request('extract')) { $texte = '<p>'._T('plugin_zip_installe_rep_finie', array('zip'=>$zip, 'rep'=>$status['dirname'])).'</p>'; } else { $texte = "<p>"._T('plugin_zip_telecharge',array('zip'=>$zip))."</p>\n"; $texte .= liste_fichiers_pclzip($status); $suite = 'lib'; } } } // fichier absent else if ($status == -1) { $retour = _T('erreur'); $texte = _T('plugin_erreur_charger', array('zip'=>$zip)); } // fichier la mais pas bien dezippe else { $retour = _T('erreur'); $texte = _T('plugin_erreur_zip',array('status'=>$status)); } include_spip('inc/install'); // pour bouton_suivant() $texte = "<div style='text-align:$spip_lang_left;'>$texte</div>\n"; $redirect = rawurldecode(_request('redirect')); // par defaut on revient sur la page admin_plugin if($redirect == _DIR_RESTREINT OR $redirect == "./"){ $redirect_annul = generer_url_ecrire('admin_plugin'); $redirect_form = 'admin_plugin&voir=recents&'.$type.'='.preg_replace(',^[^/]+/|/$,', '', $status['dirname']); $redirect_action = ''; } else{ $redirect_annul = $redirect; $redirect_form = preg_replace(',^.*exec\=,', '', $redirect); if (!$suite) $texte .= form_hidden(parametre_url(generer_url_ecrire($redirect_form), $type,preg_replace(',^[^/]+/|/$,', '', $status['dirname']))); $redirect_action = $redirect_form; } echo minipres($retour." ", $suite ? redirige_action_post(_request('action'), $suite, $redirect_action, '', form_hidden('?url_zip_plugin='.urlencode($zip).'&extract=oui&fichier='.urlencode($fichier)) .$texte ."<a class='suivant' href='" .$redirect_annul ."'>"._T('bouton_annuler')."</a>" .bouton_suivant()) : generer_form_ecrire($redirect_form, $texte . bouton_suivant()) ); exit; // 0 = rien, pas charge // liste de fichiers = retour gagnant // < 0 = erreur pclzip // ----- Error codes // -1 : Unable to open file in binary write mode // -2 : Unable to open file in binary read mode // -3 : Invalid parameters // -4 : File does not exist // -5 : Filename is too long (max. 255) // -6 : Not a valid zip file // -7 : Invalid extracted file size // -8 : Unable to create directory // -9 : Invalid archive extension // -10 : Invalid archive format // -11 : Unable to delete file (unlink) // -12 : Unable to rename file (rename) // -13 : Invalid header checksum // -14 : Invalid archive size # redirige_par_entete($url_retour); }
function exec_message_edit_args($id_message, $new, $dest) { global $connect_id_auteur, $connect_statut; if ($new == 'oui') { $onfocus = "\nonfocus=\"if(!antifocus){this.value='';antifocus=true;}\""; } else $onfocus = ''; $row = sql_fetsel("*", "spip_messages", "id_message=$id_message"); $id_message = $row['id_message']; $date_heure = $row["date_heure"]; $date_fin = $row["date_fin"]; $titre = entites_html($row["titre"]); $texte = entites_html($row["texte"]); $type = $row["type"]; $statut = $row["statut"]; $rv = $row["rv"]; $expediteur = $row["id_auteur"]; if (!($expediteur == $connect_id_auteur OR ($type == 'affich' AND $connect_statut == '0minirezo'))) { include_spip('inc/minipres'); echo minipres(); } else { $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('titre_page_message_edit'), "accueil", "messagerie"); if ($type == 'normal') { $le_type = _T('bouton_envoi_message_02'); $logo = "message"; } if ($type == 'pb') { $le_type = _T('bouton_pense_bete'); $logo = "pense-bete"; } if ($type == 'affich') { $le_type = _T('bouton_annonce'); $logo = "annonce"; } echo debut_gauche('', true); if($type == 'normal' AND $dest) { $email = sql_getfetsel("email", "spip_auteurs", "id_auteur=$dest"); if (strlen($email) > 3) { echo icone(_T('info_envoyer_message_prive'), "mailto:".$email, "envoi-message-24.gif"); } } echo debut_droite('', true); $res = "<div class='arial2'>" . "<span style='color:green' class='verdana1 spip_small'><b>$le_type</b></span>"; if ($type == "affich") $res .="<p style='color:red;' class='verdana1 spip_x-small'>" . _T('texte_message_edit')."</p>"; $res .= '<br /><br />'."<label for='titre'>" . _T('texte_titre_obligatoire')."</label><br />\n"; $res .="<input type='text' class='formo' name='titre' id='titre' value=\"$titre\" size='40' $onfocus />"; if (!$dest) { if ($type == 'normal') { $res .="<br /><label for='cherche_auteur'><b>"._T('info_nom_destinataire')."</b></label><br />\n"; $res .="<input type='text' class='formo' name='cherche_auteur' id='cherche_auteur' value='' size='40'/>"; } } else { $nom = sql_getfetsel("nom", "spip_auteurs", "id_auteur=$dest"); $res .= "<br /><b>" . _T('info_nom_destinataire') . "</b> : " . $nom . "<br /><br />\n"; } $res .= '<br />'; ////////////////////////////////////////////////////// // Fixer rendez-vous? // if ($rv == "oui") $fonction = "rv.gif"; else $fonction = ""; $res .= debut_cadre_trait_couleur($logo.".gif", true, $fonction, _T('titre_rendez_vous')) . afficher_si_rdv($date_heure, $date_fin, ($rv == "oui")) . fin_cadre_trait_couleur(true) . "\n<p><label for='texte'><b>" . _T('info_texte_message_02') . "</b></label><br />" . "<textarea name='texte' id='texte' rows='20' class='formo' cols='40'>" . $texte . "</textarea></p><br />\n" . "\n<div style='text-align: right'><input type='submit' value='" . _T('bouton_valider') . "' /></div>" . "\n</div>"; echo redirige_action_post('editer_message', $id_message, 'message',"id_message=$id_message", $res); echo fin_gauche(), fin_page(); } }
function exec_admin_vider_dist() { global $quota_cache, $spip_lang; // autorisation a affiner if (!autoriser('configurer', 'admin_vider')){ include_spip('inc/minipres'); echo minipres(); } else { $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('onglet_vider_cache'), "configuration", "cache"); echo "<br /><br /><br />"; echo gros_titre(_T('titre_admin_vider'),'', false); // barre_onglets("administration", "vider"); echo debut_gauche("",true); echo debut_boite_info(true); echo _T('info_gauche_admin_vider'); echo fin_boite_info(true); echo debut_droite("",true); echo debut_cadre_trait_couleur("cache-24.gif", true, "", _T('texte_vider_cache')); echo "\n<p style='text-align: justify;'>"._T('texte_suppression_fichiers')."</p>", "<p style='text-align: justify;'>"._T('texte_recalcul_page')."</p>"; echo "\n<div> </div>"; // // Quota et taille du cache // echo debut_cadre_relief("", true, "", _T('taille_repertoire_cache')); include_spip('inc/invalideur'); if (($n = taille_du_cache())>250*1024) $info = _T('taille_cache_octets', array('octets' => taille_en_octets($n))); else $info = _T('taille_cache_vide'); echo "<p style='text-align: justify;'><b>$info</b></p>\n"; echo "\n<p style='text-align: justify;'>"; if ($quota_cache) { echo _T('taille_cache_maxi', array('octets' => taille_en_octets($quota_cache*1024*1024))); } else { echo _T('taille_cache_infinie'); } echo ' (', _T('cache_modifiable_webmestre'),')</p>', redirige_action_post('purger', 'cache', "admin_vider", '', "\n<div style='text-align: right'><input type='submit' value=\"" . str_replace('"', '"', _T('bouton_vider_cache')) . "\" /></div>"); echo fin_cadre_relief(true); echo debut_cadre_relief("image-24.gif", true, "", _T('info_images_auto')); echo afficher_taille_cache_vignettes(); echo redirige_action_post('purger', 'vignettes', "admin_vider",'', "\n<div style='text-align: right'><input type='submit' value=\"" . str_replace('"', '"', _T('bouton_vider_cache')) . "\" /></div>"); echo fin_cadre_relief(true); echo fin_cadre_trait_couleur(true); echo "<br />"; echo fin_gauche(), fin_page(); } }
function bouton_telechargement_plugin($url, $rep) { // essayer de creer le repertoire lib/ si on en a le droit if (($rep == 'lib') AND !is_dir(_DIR_RACINE . 'lib')) sous_repertoire(_DIR_RACINE . 'lib','',false,true); if (($rep == 'lib')? is_dir(_DIR_RACINE . 'lib'): (_DIR_PLUGINS_AUTO AND @is_dir(_DIR_PLUGINS_AUTO)) ) $bouton = redirige_action_post('charger_plugin', $rep, // arg = 'lib' ou 'plugins' '', '', "<input type='hidden' name='url_zip_plugin' value='$url' />" ."<input type='submit' name='ok' value='"._T('bouton_telecharger')."' />", 'class="noajax"'); else if ($rep == 'lib'){ $bouton = "<div class='info_todo'>"._T('plugin_info_automatique1_lib')."\n" .'<ol><li>'._T('plugin_info_automatique2',array('rep'=>joli_repertoire(_DIR_RACINE . 'lib/'))).'</li>' .'<li>'._T('plugin_info_automatique3').aide("install0")."</li></ol></div>"; } return _T('plugin_info_telecharger',array('url'=>$url,'rep'=>$rep.'/')).$bouton; }
function maj_auto_action_rapide() { global $spip_version_affichee, $spip_version_base; $arg_chargeur = $spip_version_base>=15828?'url_zip_plugin2':'url_zip_plugin'; // eq. SPIP >= 2.1.2 $time = time(); $timeout = ini_get('max_execution_time'); $timeout = $timeout?min(30,floor($timeout/2)):10; $style = 'style="padding:0.4em;"'; // verification des mises a jour de SPIP>=2.1 include_spip('inc/presentation'); list($m1,$m2) = preg_split('/\D+/', $GLOBALS['spip_version_branche']); $html1 = (function_exists('info_maj_spip') && ($html1=info_maj_spip())) ?"<fieldset><legend $style>"._T('couteauprive:help2', array('version'=>'SPIP '.$spip_version_affichee)).'</legend>'.propre("\n|{{{$html1}}}|") .(preg_match(",$m1\.$m2\.\d+,",$html1)?'<p>'._T('couteau:maj_spip').'</p>':'').'</fieldset>' :''; // verification de l'ecran de securite if(defined('_ECRAN_SECURITE')) { $maj = maj_auto_rev_distante(_MAJ_ECRAN_SECU,false,",(\d+\.\d+(\.\d+)?),",0,true); if($maj{0}!="-" && _ECRAN_SECURITE!=$maj) { include_spip('inc/description_outil'); $html1 .= "\n<fieldset><legend $style>"._T('couteauprive:help2', array('version'=>_T('couteauprive:ecran_securite:nom').' '._ECRAN_SECURITE)).'</legend>' . description_outil_liens(_T("couteauprive:ecran_maj_ko2", array("n"=>"<span style=\"color:red; font-weight:bold;\">$maj</span>"))).'</fieldset>'; } } // verification des plugins include_spip('inc/plugin'); $plugins_actifs = array_values(liste_chemin_plugin_actifs()); // tous, mais les actifs d'abord... $plugins = array_unique(array_merge($plugins_actifs, liste_plugin_files())); $html_actifs = $html_inactifs = array(); foreach ($plugins as $p) /*if(preg_match(',^auto/,', $p))*/ { $actif = in_array($p, $plugins_actifs, true); $auto = preg_match(',^auto/,', $p); $infos = plugin_get_infos_maj($p, $stop=time()-$time>$timeout); $maj_lib = $checked = ''; if($stop) $maj_lib = '<span class="cs_relancer">'.'Temps serveur écoulé : [poursuivre->#].'.'</span>'; elseif($infos['maj_dispo']) { $maj_lib = _T('couteau:maj_rev_ok', array('revision' => $infos['rev_rss'], 'url'=>$infos['url_origine'], 'zip'=>$infos['zip_trac'])); $checked = " class='maj_checked'"; } elseif($infos['rev_rss']>0 && $infos['rev_local']) $maj_lib = _T('couteau:maj'.($infos['svn']?'_svn':'_ok'), array('zip'=>$infos['zip_trac'], 'url'=>$infos['url_origine'])); elseif($auto) { $maj_lib = _T('couteau:maj_rev_ko', array('url'=>$infos['url_origine'])); $checked = " class='maj_checked'"; } elseif($infos['rev_local'] && $infos['rev_rss']<=0) $maj_lib = _T('couteau:maj_rev_ko', array('url'=>$infos['url_origine'])); // eventuels liens morts $maj_lib = preg_replace(',\[([^[]+)->\],', '$1', $maj_lib); $nom = preg_replace(",[\n\r]+,",' ',$infos['nom']). ' (v' .$infos['version'] . ')' . ($maj_lib?"\n_ {{".$maj_lib.'}}':''); $rev = $infos['rev_local']?_T('couteau:maj_rev', array('revision' => $infos['rev_local'])):''; if(strlen($infos['commit'])) $rev .= (strlen($rev)?'<br/>':'') . cs_date_court($infos['commit']); if($infos['svn']) $rev .= '<br/>SVN'; if(!strlen($rev)) $rev = ' '; $zip_log = (strlen($infos['zip_log']) && $infos['zip_log']!=$infos['zip_trac']) ?"<label><input type='radio' value='$infos[zip_log]'$checked name='$arg_chargeur'/>[->$infos[zip_log]]</label>":''; $bouton = ' '; if($auto && !$stop) $bouton = strlen($infos['zip_trac']) ?"<input type='radio' value='$infos[zip_trac]'$checked name='$arg_chargeur'/>" :'<center style="margin-top:0.6em;font-weight:bold;"><acronym title="'._T('couteau:maj_zip_ko').'">?</acronym></center>'; if(strlen($zip_log)) { if (!$stop) $nom .= "\n_ "._T('couteau:maj_verif') . "\n_ $zip_log\n_ {$bouton}[->$infos[zip_trac]]<label>"; $bouton = ' '; } ${$actif?'html_actifs':'html_inactifs'}[] = "|$bouton|$nom|$rev|"; } $html1 = "\n<div $style id='maj_auto_div'>$html1<fieldset><legend $style>" . _T('couteau:maj_liste').'</legend>' . propre( (count($html_actifs)? "\n|{{" . _T('couteau:plug_actifs') . "}}|<|<|\n" . join("\n",$html_actifs) . "\n" : '') . (count($html_inactifs)? "\n|{{" . _T('couteau:plug_inactifs') . "}}|<|<|\n" . join("\n",$html_inactifs) . "\n" : '') ) . "<div style='text-align: right;'><input class='fondo' type='submit' value=\"" . attribut_html(_T('couteau:maj_maj')) . '" /><p><i>'._T('couteau:maj_verif2').'</i></p></div></fieldset></div>' . http_script(" jQuery(document).ready(function() { var ch = jQuery('#maj_auto_div .maj_checked'); var re = jQuery('.cs_relancer a'); if(ch.length) ch[0].checked = true; else if(!re.length){ jQuery('#maj_auto_div :submit').parent().remove(); jQuery('#maj_auto_div :radio').attr('disabled','disabled'); } if(!jQuery('#maj_auto_div :radio:checked').length) jQuery('#maj_auto_div :radio:first')[0].checked = true; re.click(function() { cs_href_click(jQuery('#maj_auto')[0], true); return false; }); });"); $html2 = "\n<div class='cs_sobre'><input class='cs_sobre' type='submit' value=\"[" . attribut_html(_T('couteau:maj_actu')) . ']" /></div>'; // premier formulaire non ajax, lancant directement charger_plugin return redirige_action_post('charger_plugin', '', 'admin_couteau_suisse', "cmd=descrip&outil=maj_auto#cs_infos", $html1) // second formulaire ajax : lien d'actualisation forcee . ajax_action_auteur('action_rapide', 'maj_auto_forcer', 'admin_couteau_suisse', "arg=maj_auto|description_outil&cmd=descrip#cs_action_rapide", $html2); }
function exec_admin_plugin_dist($retour='') { if (!autoriser('configurer', 'plugins')) { include_spip('inc/minipres'); echo minipres(); } else { // on fait la verif du path avant tout, // et l'installation des qu'on est dans la colonne principale // si jamais la liste des plugins actifs change, il faut faire un refresh du hit // pour etre sur que les bons fichiers seront charges lors de l'install if (actualise_plugins_actifs()==-1 AND _request('actualise')<2){ include_spip('inc/headers'); redirige_par_entete(parametre_url(self(),'actualise',_request('actualise')+1,'&')); } if ($erreur_activation = isset($GLOBALS['meta']['plugin_erreur_activation'])){ $erreur_activation = $GLOBALS['meta']['plugin_erreur_activation']; // l'effacement reel de la meta se fera au moment de l'affichage // mais on la vide pour ne pas l'afficher dans le bandeau haut unset($GLOBALS['meta']['plugin_erreur_activation']); } $format = ''; if (_request('format')!==NULL) $format = _request('format'); // liste ou repertoires $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('icone_admin_plugin'), "configuration", "plugin"); echo "<br />\n"; echo "<br />\n"; $quoi = _request('voir'); $quoi = $quoi ? $quoi : 'actifs'; echo gros_titre(_T('icone_admin_plugin'),'',false); echo barre_onglets("plugins", $quoi=='actifs'?"plugins_actifs":"admin_plugin"); echo debut_gauche('plugin',true); echo debut_boite_info(true); $s = ""; $s .= _T('info_gauche_admin_tech'); echo $s; echo fin_boite_info(true); // la valeur de retour de la fonction ci-dessus n'est pas compatible // avec ce que fait actualise_plugins_actifs, il faut recalculer. A revoir. $lcpa = liste_chemin_plugin_actifs(); echo pipeline('affiche_gauche', array( 'args'=>array('exec'=>'admin_plugin'), 'data'=>afficher_librairies() ) ); echo debut_droite('plugin', true); // message d'erreur au retour d'un operation if (_request('erreur')){ echo "<div class='erreur_message-plugins'>" . _T(_request('erreur')) . "</div>"; } if ($erreur_activation){ echo "<div class='erreur_message-plugins'>" . $erreur_activation . "</div>"; effacer_meta('plugin_erreur_activation'); } // on fait l'installation ici, // cela permet aux scripts d'install de faire des affichages (moches...) installe_plugins(); $lpf = liste_plugin_files(); $plugins_interessants = @array_keys(unserialize($GLOBALS['meta']['plugins_interessants'])); if (!is_array($plugins_interessants)) $plugins_interessants = array(); echo "<div class='liste-plugins formulaire_spip'>"; echo debut_cadre_trait_couleur('plugin-24.gif',true,'',_T('plugins_liste'), 'plugins'); if ($quoi!=='actifs'){ if ($lpf) echo "<p>"._T('texte_presente_plugin')."</p>"; else { if (!@is_dir(_DIR_PLUGINS)) echo "<p>"._T('plugin_info_automatique_ftp',array('rep'=>joli_repertoire(_DIR_PLUGINS))) . " — "._T('plugin_info_automatique_creer')."</p>"; } } if ($quoi=='actifs' OR $lpf) echo "<h3>".sinon( singulier_ou_pluriel(count($lcpa), 'plugins_actif_un', 'plugins_actifs', 'count'), _T('plugins_actif_aucun') )."</h3>"; $sub = "\n<div class='boutons'>" . "<input type='submit' class='submit save' value='"._T('bouton_enregistrer') ."' />" . "</div>"; $no_button = false; // la liste if ($quoi=='actifs'){ $aff = affiche_les_plugins($lcpa, $lcpa, $format); $no_button = !strlen($aff); $corps = $aff; } elseif ($quoi=='tous') $corps = affiche_les_plugins($lpf, $lcpa, $format); else { $dir_auto = substr(_DIR_PLUGINS_AUTO, strlen(_DIR_PLUGINS)); $lcpaffiche = array(); foreach ($lpf as $f) if (!strpos($f, '/') OR ($dir_auto AND substr($f, 0, strlen($dir_auto)) == $dir_auto) OR in_array($f, $lcpa) OR in_array($f, $plugins_interessants)) $lcpaffiche[] = $f; $corps = affiche_les_plugins($lcpaffiche, $lcpa, $format); } if (!$no_button) $corps .= "\n<br />" . $sub; echo redirige_action_post('activer_plugins','activer','admin_plugin','', $corps); echo fin_cadre_trait_couleur(true); if ($quoi=='actifs') echo affiche_les_extensions(liste_chemin_plugin_actifs(_DIR_EXTENSIONS)); echo "</div>"; echo http_script(" jQuery(function(){ jQuery('#plugins .boutons').hide(); jQuery('.plugins li.item a[rel=info]').click(function(){ var li = jQuery(this).parents('li').eq(0); var prefix = li.find('input.checkbox').attr('name'); if (!jQuery('div.details',li).html()) { jQuery('div.details',li).prepend(ajax_image_searching).load( jQuery(this).attr('href').replace(/admin_plugin|plugins/, 'info_plugin'), function(){ li.addClass('on'); } ); } else { if (jQuery('div.details',li).toggle().is(':visible')) li.addClass('on'); else li.removeClass('on'); } return false; }); jQuery('.plugins li.item input.checkbox').change(function(){ jQuery(this).parents('form').eq(0).find('.boutons').slideDown(); }); }); "); echo pipeline('affiche_milieu', array( 'args'=>array('exec'=>'admin_plugin'), 'data'=>'' ) ); echo fin_gauche(), fin_page(); } }
function exec_admin_couteau_suisse() { cs_log("INIT : exec_admin_couteau_suisse()"); global $spip_lang_right; global $outils, $afficher_outil, $metas_vars, $metas_outils; // cette valeur par defaut n'est pas definie sous SPIP 1.92 @define('_ID_WEBMESTRES', 1); cs_minipres(); $cmd = _request('cmd'); $exec = _request('exec'); include_spip('inc/cs_outils'); cs_init_plugins(); // id de l'auteur en session if(defined('_SPIP19300')) $connect_id_auteur = $GLOBALS['auteur_session']['id_auteur']; else global $connect_id_auteur; // reset general if($cmd=='resetall'){ spip_log("Reset General du Couteau Suisse par l'auteur id=$connect_id_auteur"); foreach(array_keys($GLOBALS['meta']) as $meta) { if(strpos($meta, 'tweaks_') === 0) effacer_meta($meta); if(strpos($meta, 'cs_') === 0) effacer_meta($meta); } $metas_vars = $metas_outils = array(); // ici, pas d'initialisation... include_spip('cout_lancement'); cout_exec_redirige('cmd=resetjs'); } // installation personnalisee if(strlen($pack = _request('pack')) && isset($GLOBALS['cs_installer'][$pack]['outils'])) { if($cmd=='install'){ spip_log("Installation personnalisee de '$pack' par l'auteur id=$connect_id_auteur"); // installer le pack et rediriger cout_install_pack($pack, true); } elseif($cmd=='delete'){ spip_log("Suppression de '$pack' par l'auteur id=$connect_id_auteur"); $p = preg_quote($pack,'/'); $r = "[$]GLOBALS\['cs_installer'\]\['$p'\] *="; cs_ecrire_config( array("/$r/", "/# [^\\n\\r]+[\\n\\r]+if\(0\) {$r}.*?# $p #[\\n\\r]+/s"), array('if(0) \0', '')); // simplement prendre en compte la supression cout_exec_redirige('cmd=pack', false); } } // reset des variables d'un outil if($cmd=='reset' && strlen($_GET['outil'])){ spip_log("Reset des variables de '$_GET[outil]' par l'auteur id=$connect_id_auteur"); global $outils; include_spip('cout_utils'); include_spip('config_outils'); if(autoriser('configurer', 'outil', 0, NULL, $outils[$_GET['outil']])) { include_spip('inc/cs_outils'); cs_initialisation_d_un_outil($_GET['outil'], charger_fonction('description_outil', 'inc'), true); foreach ($outils[$_GET['outil']]['variables'] as $a) if(autoriser('configurer', 'variable', 0, NULL, array('nom'=>$a, 'outil'=>$outils[$_GET['outil']]))) unset($metas_vars[$a]); else spip_log("Reset interdit de la variable %$a% !!"); ecrire_meta('tweaks_variables', serialize($metas_vars)); } // tout recompiler cout_exec_redirige("cmd=descrip&outil={$_GET[outil]}#cs_infos"); } // reset de l'affichage if($cmd=='showall'){ spip_log("Reset de tous les affichages du Couteau Suisse par l'auteur id=$connect_id_auteur"); effacer_meta('tweaks_caches'); cout_exec_redirige(); } // afficher la description d'un outil ? $afficher_outil = ($cmd=='descrip' OR $cmd=='switch')?$_GET['outil']:''; // initialisation generale forcee : recuperation de $outils; cs_initialisation(true, $cmd!='noinclude'); cs_installe_outils(); // mise a jour des donnees si envoi via formulaire // sinon fait une passe de verif sur les outils if($cmd=='switch' OR $cmd=='hide'){ enregistre_modif_outils($cmd); cout_exec_redirige(strlen($_GET['outil'])?"cmd=descrip&outil={$_GET[outil]}#cs_infos":''); } // else // verif_outils(); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('couteauprive:titre'), "configuration", 'couteau_suisse'); // pour la version du plugin include_spip('inc/plugin'); if(isset($GLOBALS['meta']['plugin'])) { $t = unserialize($GLOBALS['meta']['plugin']); $dir = $t['COUTEAU_SUISSE']['dir']; $dir_type = $t['COUTEAU_SUISSE']['dir_type']; $bt_dir = $t['BARRETYPOENRICHIE']['dir']; $bt_version = $t['BARRETYPOENRICHIE']['version']; } if(!strlen($dir)) $dir = 'couteau_suisse'; if(!strlen($bt_dir)) $bt_dir = 'barre_typo_v2'; $get_infos = defined('_SPIP20100')?charger_fonction('get_infos','plugins'):'plugin_get_infos'; if (isset($dir_type)) { $t = $get_infos($dir, false, constant($dir_type)); } else { $t = $get_infos($dir); } $cs_version_base = $t['version_base']; $cs_version = $t['version']; // mises a jour eventuelles de la base installe_un_plugin($dir, $t, $dir_type); unset($t); if(!strlen($bt_version)) { $bt_version = $get_infos($bt_dir); $bt_version = $bt_version['version']; } $cs_revision = ((lire_fichier(_DIR_PLUGIN_COUTEAU_SUISSE.'svn.revision',$t)) && (preg_match(',<revision>(\d+)</revision>,',$t,$r))) ?'<br/>'._T('couteauprive:version_revision', array('revision'=>$r[1])):""; include_spip('public/assembler'); echo recuperer_fond('exec/admin_couteau_suisse_head', array( 'force' => in_array(_request('var_mode'), array('calcul', 'recalcul'))?'oui':null, 'cs_version' => $cs_version, 'exec' => _request('exec'), )); echo "<br /><br /><br />"; gros_titre(_T('couteauprive:titre'), '', false); echo barre_onglets("configuration", 'couteau_suisse'); echo '<div style="font-size:85%">'; // verification d'une base venant de SPIP 1.8 $res = spip_query("DESCRIBE spip_meta valeur"); $resultat = function_exists('spip_fetch_array')?spip_fetch_array($res):sql_fetch($res); if($resultat['Type']!='text') echo "<p style=\"color:red;\">Attention : votre base semble ancienne et le Couteau Suisse ne va pas bien fonctionner.</p><p>La table 'spip_meta' a pour type de valeur '$resultat[Type]' au lieu de 'text'.</p>"; // verification de la barre typo V2 $mini = '2.5.3'; if(strlen($bt_version) and (version_compare($bt_version,$mini,'<'))) echo "<p>"._T('couteauprive:erreur:bt', array('version'=>$bt_version, 'mini'=>$mini))."</p>"; echo "<script type=\"text/javascript\"><!-- if(!window.jQuery) document.write('".str_replace('/','\/',addslashes(propre('<p>'._T('couteauprive:erreur:jquery').'</p>')))."'); //--></script>"; echo '</div>'; // chargement des outils include_spip('inc/cs_outils'); list($outils_affiches_actifs, $liste_outils) = liste_outils(); // cadre de gauche echo debut_gauche('', true); // pour la liste des docs sur spip-contrib $contribs = isset($GLOBALS['meta']['tweaks_contribs'])?unserialize($GLOBALS['meta']['tweaks_contribs']):array(); foreach($contribs as $i=>$v) $contribs[$i] = preg_replace_callback('/@@(.*?)@@/', 'cs_couper_25', $v); sort($contribs); $aide = ''; if(isset($GLOBALS['cs_installer'])) foreach(array_keys($GLOBALS['cs_installer']) as $pack) $aide .= "\n_ " . _T('couteauprive:pack_du', array('pack'=>"{[{$pack}|"._T('couteauprive:pack_installe').'->' . generer_url_ecrire($exec,'cmd=install&pack='.urlencode($pack)) . ']}')); // si le plugin est installe par procedure automatique, on permet la mise a jour directe (SPIP >= 2.0) $arg_chargeur = $GLOBALS['spip_version_base']>=15828?'url_zip_plugin2':'url_zip_plugin'; // eq. SPIP >= 2.1.2 $form_update = preg_match(',plugins/auto/couteau_suisse/$,',_DIR_PLUGIN_COUTEAU_SUISSE)? "<input type='hidden' name='$arg_chargeur' value='http://files.spip.org/spip-zone/couteau_suisse.zip' />" . "<br/><div class='cs_sobre'><input type='submit' value='• " . attribut_html(_T('couteauprive:version_update')) . "' class='cs_sobre' title='" . attribut_html(_T('couteauprive:version_update_title')) . "' /></div>" :""; // un lien si le plugin plugin "Telechargeur" est present (SPIP < 2.0) if(!strlen($form_update) && defined('_DIR_PLUGIN_CHARGEUR')) $form_update = "<br/>• <a title='" . attribut_html(_T('couteauprive:version_update_chargeur_title')) . "' href='../spip.php?action=charger&plugin=couteau_suisse&url_retour=".urlencode(generer_url_ecrire('admin_couteau_suisse'))."'>"._T('couteauprive:version_update_chargeur').'</a>'; // compilation du bandeau gauche $aide = _T('couteauprive:help2', array( 'version' => $cs_version.$cs_revision.'<br/>'. (defined('_CS_PAS_DE_DISTANT')?'('._T('couteauprive:version_distante_off').')':'<span class="cs_version">'._T('couteauprive:version_distante').'</span>') )) . $form_update . '<br/>• ['._T('couteauprive:pack_titre') . '|' . _T('couteauprive:pack_alt') . '->' . generer_url_ecrire($exec,'cmd=pack#cs_infos') . "]\n\n" . _T('couteauprive:help3', array( 'reset' => generer_url_ecrire($exec,'cmd=resetall'), 'hide' => generer_url_ecrire($exec,'cmd=showall'), 'contribs' => join('', $contribs), 'install' => $aide )); if(function_exists('redirige_action_post')) $aide = redirige_action_post('charger_plugin', '', 'admin_couteau_suisse', '', $aide); // SPIP >= 2.0 $aide = '<div class="cs_aide">'._T('couteauprive:help')."\n\n$aide</div>"; echo debut_boite_info(true), propre($aide), fin_boite_info(true); $aide = cs_aide_raccourcis(); if(strlen($aide)) echo debut_boite_info(true), $aide, fin_boite_info(true); $aide = cs_aide_pipelines($outils_affiches_actifs); if(strlen($aide)) echo debut_boite_info(true), $aide, fin_boite_info(true); echo pipeline('affiche_gauche',array('args'=>array('exec'=>$exec),'data'=>'')); echo creer_colonne_droite('', true); echo pipeline('affiche_droite',array('args'=>array('exec'=>$exec),'data'=>'')), debut_droite('', true), debut_cadre_trait_couleur(find_in_path('img/couteau-24.gif'),true,'',' '._T('couteauprive:outils_liste')), _T('couteauprive:outil_intro'), "\n<table border='0' cellspacing='0' cellpadding='5' style='width:100%;'><tr><td class='sansserif'>"; $_GET['source'] = $exec; echo '<div class="conteneur">', $liste_outils, '</div><br class="conteneur" /><div class="cs_patience"><br />'.http_img_pack('searching.gif','*','').' ...</div>'; flush(); echo '<div class="conteneur"><div id="cs_infos" class="cs_infos">', $cmd=='pack'?cs_description_pack():description_outil2($afficher_outil), '</div><script type="text/javascript"><!-- var cs_descripted = "', $afficher_outil, '"; document.write("<style type=\'text/css\'>#csjs{display:none;}<\/style>"); //--></script><div id="csjs" style="color:red;"><br/>', _T('couteauprive:erreur:js'),'</div> <noscript><style type="text/css">#csjs{display:none;}</style><div style="color:red;"><br/>', _T('couteauprive:erreur:nojs'), $_GET['modif']=='oui'?'<br/>'._T('couteauprive:vars_modifiees').'.':'','</div></noscript>', '</div></td></tr></table>', '<style type="text/css">.cs_patience{display:none;}</style>', fin_cadre_trait_couleur(true), pipeline('affiche_milieu',array('args'=>array('exec'=>$exec),'data'=>'')), fin_gauche(), fin_page(); cs_log(" FIN : exec_admin_couteau_suisse()"); }
function ajax_action_post($action, $arg, $retour, $gra, $corps, $clic='', $atts_i='', $atts_span = "", $args_ajax='', $fct_ajax='') { global $spip_lang_right; if (strpos($gra,"#")===FALSE) { // A etudier: prendre systematiquement arg en trancodant les \W $n = intval($arg); $ancre = "$action-" . ($n ? $n : $arg); } else { $ancre = explode("#",$gra); $args = $ancre[0]; $ancre = $ancre[1]; } if (!$atts_i) $atts_i = " style='float: $spip_lang_right'"; if (is_array($clic)) { $submit = ""; $atts_i .= "\nonclick='AjaxNamedSubmit(this)'"; foreach($clic as $n => $c) $submit .= "\n<input type='submit' name='$n' value='$c' $atts_i />"; } else { if (!$clic) $clic = _T('bouton_valider'); $submit = "<input type='submit' value='$clic' $atts_i />"; } $corps = "<div>" . $corps . "<span" . $atts_span . ">" . $submit . "</span></div>"; if (_SPIP_AJAX !== 1) { return redirige_action_post($action, $arg, $retour, ($gra . '#' . $ancre), $corps); } else { if ($gra AND !$args_ajax) $args_ajax = "&$gra"; if (isset($GLOBALS['var_profile'])) $args_ajax .= '&var_profile=1'; $js = ajax_action_declencheur('this', $ancre, $fct_ajax); return redirige_action_post($action, $arg, $action, "script=$retour$args_ajax", $corps, " onsubmit=$js"); } }
function afficher_breve_rubrique($id_breve, $id_rubrique, $statut) { if (!_INTERFACE_ONGLETS) return ""; global $spip_lang_right; $aider = charger_fonction('aider', 'inc'); $chercher_rubrique = charger_fonction('chercher_rubrique', 'inc'); $form = $chercher_rubrique($id_rubrique, 'breve', ($statut == 'publie')); if (strpos($form,'<select')!==false) { $form .= "<div style='text-align: $spip_lang_right;'>" . '<input type="submit" value="'._T('bouton_choisir').'"/>' . "</div>"; } $form = redirige_action_post('editer_breve', $id_breve, 'breves_voir', "id_breve=$id_breve", $form, " class='submit_plongeur'" ); if ($id_rubrique == 0) $logo = "racine-site-24.gif"; else $logo = "secteur-24.gif"; return debut_cadre_couleur($logo, true, "",_T('entree_interieur_rubrique').$aider ("brevesrub")) . $form . fin_cadre_couleur(true); }
function indiquer_logo($titre, $id_objet, $mode, $id, $script, $iframe_script) { global $formats_logos; $afficher = ""; $reg = '[.](' . join('|', $formats_logos) . ')$'; /* # CODE MORT SI ON DECIDE DE NE PAS LAISSER UPLOADER DES LOGOS PAR FTP if ($GLOBALS['flag_upload'] AND $dir_ftp = determine_upload('logos') AND $fichiers = preg_files($dir_ftp, $reg)) { foreach ($fichiers as $f) { $f = substr($f, strlen($dir_ftp)); $afficher .= "\n<option value='$f'>$f</option>"; } } if (!$afficher) { if ($dir_ftp) { $afficher = _T('info_installer_images_dossier', array('upload' => '<b>' . joli_repertoire($dir_ftp) . '</b>')); } } else { $afficher = "\n<div style='text-align: left'>" . _T('info_selectionner_fichier', array('upload' => '<b>' . joli_repertoire($dir_ftp) . '</b>')) . ":</div>" . "\n<select name='source' class='forml' size='1'>$afficher\n</select>" . "\n<div style='text-align:" . $GLOBALS['spip_lang_right'] . "'><input name='sousaction2' type='submit' value='". _T('bouton_choisir') . "' /></div>"; } */ $afficher = "\n<label for='image'>" . _T('info_telecharger_nouveau_logo') . "</label><br />" . "\n<input name='image' id='image' type='file' class='forml spip_xx-small' size='15' />" . "<div style='text-align: " . $GLOBALS['spip_lang_right'] . "'>" . "\n<input name='sousaction1' type='submit' value='" . _T('bouton_telecharger') . "' /></div>" . $afficher; $type = type_du_logo($id_objet); return redirige_action_post('iconifier', "$id+$type$mode$id", $script, "$id_objet=$id", $iframe_script.$afficher, " enctype='multipart/form-data' class='form_upload_icon'"); }