uawdijnntqw1x1x1
IP : 216.73.217.34
Hostname : webm019.cluster129.gra.hosting.ovh.net
Kernel : Linux webm019.cluster129.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
checkyd
/
www
/
6316b
/
..
/
7b5d0
/
.
/
formulaires.tar
/
/
admin_plugin.php000064400000016010152524514340007726 0ustar00<?php /** * Gestion du formulaire de gestion des plugins * * @plugin SVP pour SPIP * @license GPL * @package SPIP\SVP\Formulaires */ if (!defined("_ECRIRE_INC_VERSION")) { return; } /** * Chargement du formulaire de gestion des plugins * * @uses svp_actualiser_paquets_locaux() * @param string $voir * Statut des plugins que l'on souhaite voir : actif, inactif, tous * @param string $verrouille * Types de plugins que l'on souhaite voir : * - 'non' : les plugins utilisateurs * - 'oui' : les plugins verrouillés (plugins-dist) * - 'tous' : les deux ! * @param string|int $id_paquet * Identifiant du paquet dont on veut obtenir une description complète * lors de l'affichage du formulaire * @param string $redirect * URL de redirection après les traitements * @return array * Environnement du formulaire **/ function formulaires_admin_plugin_charger_dist($voir = 'actif', $verrouille = 'non', $id_paquet = '', $redirect = '') { $valeurs = array(); // actualiser la liste des paquets locaux systematiquement include_spip('inc/svp_depoter_local'); // sans forcer tout le recalcul en base, mais en récupérant les erreurs XML $valeurs['_erreurs_xml'] = array(); svp_actualiser_paquets_locaux(false, $valeurs['_erreurs_xml']); $valeurs['actif'] = 'oui'; if ($voir == 'inactif') { $valeurs['actif'] = 'non'; } if ($voir == 'tous') { $valeurs['actif'] = ''; } $valeurs['constante'] = array('_DIR_PLUGINS', '_DIR_PLUGINS_SUPPL'); if ($verrouille == 'oui') { $valeurs['constante'] = array('_DIR_PLUGINS_DIST'); } if ($verrouille == 'tous') { $valeurs['constante'] = array(); } $valeurs['verrouille'] = $verrouille; $valeurs['id_paquet'] = $id_paquet; $valeurs['actions'] = array(); $valeurs['ids_paquet'] = _request('ids_paquet'); $valeurs['afficher_incompatibles'] = _request('afficher_incompatibles'); $valeurs['_todo'] = _request('_todo'); $valeurs['_notices'] = _request('_notices'); $valeurs['_libelles_actions'] = _request('_libelles_actions'); return $valeurs; } /** * Vérifications du formulaire de gestion des plugins * * Appelle le décideur qui détermine la liste des actions à faire et si celles-ci * peuvent être faites (dépendances connues). Une erreur sera levé dans le * cas contraire. * * Si toutes les actions peuvent être faites, une demande de confirmation * est envoyée (dans une erreur spéciale), présentant alors toutes les * actions qui seront réalisées (celle demandée + celles à faire par voie * de conséquence. * * Si on reçoit une demande de confirmation, on sort sans lever d'erreur ! * * @uses svp_decider_verifier_actions_demandees() * * @param string $voir * Statut des plugins que l'on souhaite voir : actif, inactif, tous * @param string $verrouille * Types de plugins que l'on souhaite voir : * - 'non' : les plugins utilisateurs * - 'oui' : les plugins verrouillés (plugins-dist) * - 'tous' : les deux ! * @param string|int $id_paquet * Identifiant du paquet dont on veut obtenir une description complète * lors de l'affichage du formulaire * @param string $redirect * URL de redirection après les traitements * @return array * Tableau des erreurs **/ function formulaires_admin_plugin_verifier_dist($voir = 'actif', $verrouille = 'non', $id_paquet = '', $redirect = '') { $erreurs = array(); if (_request('annuler_actions')) { // Requete : Annulation des actions d'installation en cours // -- On vide la liste d'actions en cours set_request('_todo', ''); // -- vider les paquets coches s'il y en a set_request('ids_paquet', array()); } elseif (_request('valider_actions')) { // ... } else { $a_actionner = array(); // actions globales... if ($action_globale = _request('action_globale') and _request('appliquer')) { $ids_paquet = _request('ids_paquet'); if (!is_array($ids_paquet)) { $erreurs['message_erreur'] = _T('svp:message_erreur_aucun_plugin_selectionne'); } else { foreach ($ids_paquet as $i) { $a_actionner[$i] = $action_globale; } } // action unitaire } else { $actions = _request('actions'); // $actions[type][id] = Texte // -> $a_actionner[id] = type foreach ($actions as $action => $p) { foreach ($p as $i => $null) { $a_actionner[$i] = $action; } } } // lancer les verifications if (!$a_actionner) { $erreurs['message_erreur'] = _T('svp:message_erreur_aucun_plugin_selectionne'); } else { // On fait appel au decideur pour determiner la liste exacte des commandes apres // verification des dependances include_spip('inc/svp_decider'); svp_decider_verifier_actions_demandees($a_actionner, $erreurs); include_spip('inc/filtres'); $todo = decoder_contexte_ajax(_request('_todo'), 'svp_todo') ?: []; $actions = _request('_libelles_actions') ?: []; // si c'est une action simple (hors suppression) sans rien a faire de plus que demande, on y go direct if (in_array('stop', $todo) or in_array('kill', $todo)) { if (in_array('stop', $todo)) { $notices = array(); $notices['decideur_warning'] = _T('svp:confirmer_desinstaller'); set_request('_notices', $notices); } } elseif ( count($todo) == count($a_actionner) // et on n'a pas plus d'actions que ce qu'on avait demandé explicitement and !isset($erreurs['decideur_erreurs']) and (!isset($erreurs['decideur_propositions']) or !count($actions['decideur_propositions'])) ) { set_request('valider_actions', true); // on fake la validation, non mais ho ! } } } if (count($erreurs) and !isset($erreurs['message_erreur'])) { $erreurs['message_erreur'] = ''; } return $erreurs; } /** * Traitement du formulaire de gestion des plugins * * Si une liste d'action est validée, on redirige de formulaire sur * l'action 'actionner' qui les traitera une par une. * * @uses svp_actionner_traiter_actions_demandees() * * @param string $voir * Statut des plugins que l'on souhaite voir : actif, inactif, tous * @param string $verrouille * Types de plugins que l'on souhaite voir : * - 'non' : les plugins utilisateurs * - 'oui' : les plugins verrouillés (plugins-dist) * - 'tous' : les deux ! * @param string|int $id_paquet * Identifiant du paquet dont on veut obtenir une description complète * lors de l'affichage du formulaire * @param string $redirect * URL de redirection après les traitements * @return array * Retours du traitement **/ function formulaires_admin_plugin_traiter_dist($voir = 'actif', $verrouille = 'non', $id_paquet = '', $redirect = '') { $retour = array(); if (_request('valider_actions')) { refuser_traiter_formulaire_ajax(); // Ajout de la liste des actions à l'actionneur // c'est lui qui va effectuer rellement les actions // lors de l'appel de action/actionner include_spip('inc/filtres'); $actions = decoder_contexte_ajax(_request('_todo'), 'svp_todo'); include_spip('inc/svp_actionner'); svp_actionner_traiter_actions_demandees($actions, $retour, $redirect); } $retour['editable'] = true; return $retour; } charger_plugin_archive.html000064400000003462152524514340012136 0ustar00<div class='formulaire_spip formulaire_#FORM'> <h3 class='titrem'><:svp:titre_form_charger_plugin_archive:></h3> [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] <form method="post" action="#SELF"><div> #ACTION_FORMULAIRE [<p class='notice'>(#ENV{erreurs/confirmer}) <p class='boutons'><input class='submit' type="submit" name='confirmer' value="<:svp:bouton_confirmer:>" /></p> </p>] <p class='explication'><:svp:telecharger_archive_plugin_explication:></p> <div class="editer-groupe"> <div class="editer editer_password obligatoire[(#ENV{erreurs/password}|oui) erreur]"> <label for="password"><:entree_mot_passe:></label> [<span class="erreur_message">(#ENV**{erreurs/password})</span>] <input type="password" name="password" id="password" value="#ENV{password}" class="text" /> <p class='explication'><:svp:explication_mot_passe:></p> </div> <div class="editer editer_archive pleine_largeur obligatoire[(#ENV{erreurs/archive}|oui) erreur]"> <label for="archive"><:svp:label_archive:></label> [<span class="erreur_message">(#ENV**{erreurs/archive})</span>] <input type="text" name="archive" id="archive" value="#ENV{archive}" class="text" /> </div> <div class="editer editer_destination[(#ENV{erreurs/destination}|oui) erreur]"> <label for="destination"><:svp:label_destination:></label> [<span class="erreur_message">(#ENV**{erreurs/destination})</span>] <input type="text" name="destination" id="destination" value="#ENV{destination}" class="text" /> <p class='explication'><:svp:explication_destination:></p> </div> </div> <p class='boutons'><input class='submit' type="submit" value="<:bouton_telecharger:>" /></p> </div></form> </div> editer_depot.html000064400000005013152524514340010105 0ustar00<div class="formulaire_spip formulaire_editer formulaire_editer_depot formulaire_editer_depot-#ENV{id_depot}"> <!-- <br class='bugajaxie' /> --> [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>] [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] [(#ENV{editable}) <form method='post' action='#ENV{action}' enctype='multipart/form-data'><div> [(#REM) declarer les hidden qui declencheront le service du formulaire parametre : url d'action ] #ACTION_FORMULAIRE <div class="editer-groupe"> <div class="editer editer_titre obligatoire[(#ENV**{erreurs}|table_valeur{titre}|oui) erreur]"> <label for="titre"><:info_titre:></label> [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{titre})</span>] <input type='text' class='text' name='titre' id='titre'[ lang='(#LANGUE)'] value="[(#ENV**{titre,#VAL{<:svp:titre_nouveau_depot:>}})]" [(#ENV{titre,''}|non)onfocus="if(!antifocus){this.value='';antifocus=true;}"]/> </div> <div class="editer editer_descriptif[ (#ENV**{erreurs}|table_valeur{descriptif}|oui) erreur]"> <label for="descriptif"><:info_descriptif:></label> [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{descriptif})</span>] <textarea name='descriptif' id='descriptif'[ lang='(#LANGUE)'] rows='12' cols='40'>[(#ENV**{descriptif})]</textarea> </div> <div class="fieldset"> <fieldset><div class="editer-groupe"> <div class="editer editer_type[(#ENV**{erreurs}|table_valeur{type}|oui) erreur]"> <label><:svp:label_type_depot:></label> <div class="choix"> <input type="radio" value="svn" id="type_svn" class="radio" name="type" [(#ENV{type, svn}|=={svn}|oui) checked="checked"] /> <label for="type_svn"><:svp:label_type_depot_svn:></label> </div> <div class="choix"> <input type="radio" value="git" id="type_git" class="radio" name="type" [(#ENV{type, svn}|=={git}|oui) checked="checked"] /> <label for="type_git"><:svp:label_type_depot_git:></label> </div> <div class="choix"> <input type="radio" value="manuel" id="type_manuel" class="radio" name="type" [(#ENV{type, svn}|=={manuel}|oui) checked="checked"] /> <label for="type_manuel"><:svp:label_type_depot_manuel:></label> </div> </div> </div></fieldset> </div> </div> [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ] <!--extra--> <p class='boutons'><input type='submit' name="save" class='submit' value='<:bouton_enregistrer:>' /></p> </div></form> ] </div> charger_plugin.html000064400000010651152524514340010433 0ustar00<div class="formulaire_spip formulaire_charger_plugin" id="formulaire_charger_plugin"> <h3 class="titrem">[(#CHEMIN_IMAGE{plugin-add-24.png}|balise_img{icone ajouter_plugin-24,cadre-icone})]<:svp:titre_form_charger_plugin:></h3> [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] [(#ENV*{_actions_realisees})] <BOUCLE_depot_existe(DEPOTS) {0,1}> <form method="post" action="#ENV{action}"> <INCLURE{fond=formulaires/inc-confirmer_actions, env} /> [(#REM) <!-- declarer les hidden qui declencheront le service du formulaire parametre : url d'action --> ] #ACTION_FORMULAIRE <input type="hidden" name="exclusion" class='hidden' value="oui" /> <div class="liste-recherche"> <fieldset> <legend><:svp:legende_rechercher_plugins:></legend> <p class="explication"><:svp:info_charger_plugin{version=#SPIP_VERSION}:></p> <div class="editer-groupe"> <div class="editer editer_phrase obligatoire[(#ENV{erreurs}|table_valeur{phrase}|oui) erreur]"> <label for="phrase"><:svp:label_critere_phrase:></label> <p class="explication"><:svp:info_critere_phrase:></p> [<span class="erreur_message">(#ENV{erreurs}|table_valeur{phrase})</span>] <input type="text" name="phrase" id="phrase" value="#ENV{phrase}" class="text" placeholder="<:svp:placeholder_phrase:>" /> </div> <div class="editer editer_categorie obligatoire[(#ENV{erreurs}|table_valeur{categorie}|oui) erreur]"> <label for="categorie"><:svp:label_critere_categorie:></label> [<span class="erreur_message">(#ENV{erreurs}|table_valeur{categorie})</span>] <INCLURE{fond=formulaires/inc-select_categorie, categorie=#ENV{categorie}, env} /> </div> <div class="editer editer_etat obligatoire[(#ENV{erreurs}|table_valeur{etat}|oui) erreur]"> <label for="etat"><:svp:label_critere_etat:></label> [<span class="erreur_message">(#ENV{erreurs}|table_valeur{etat})</span>] <select name="etat" id="etat"> <option value="tout_etat"[ (#ENV{etat,tout_etat}|=={tout_etat}|oui)selected="selected"]><:svp:option_etat_tout:></option> <option value="stable"[ (#ENV{etat,tout_etat}|=={stable}|oui)selected="selected"]><:plugin_etat_stable|ucfirst:></option> <option value="test"[ (#ENV{etat,tout_etat}|=={test}|oui)selected="selected"]><:plugin_etat_test|ucfirst:></option> <option value="dev"[ (#ENV{etat,tout_etat}|=={dev}|oui)selected="selected"]><:plugin_etat_developpement|ucfirst:></option> <option value="experimental"[ (#ENV{etat,tout_etat}|=={experimental}|oui)selected="selected"]><:plugin_etat_experimental|ucfirst:></option> </select> </div> <div class="editer editer_depot obligatoire[(#ENV{erreurs}|table_valeur{depot}|oui) erreur]"> <label for="depot"><:svp:label_critere_depot:></label> [<span class="erreur_message">(#ENV{erreurs}|table_valeur{depot})</span>] <INCLURE{fond=formulaires/inc-select_depot, env} /> </div> <div class="editer editer_doublon obligatoire[(#ENV{erreurs}|table_valeur{doublon}|oui) erreur]"> <label for="doublon"><:svp:label_critere_doublon:></label> [<span class="erreur_message">(#ENV{erreurs}|table_valeur{doublon})</span>] <select name="doublon" id="doublon"> <option value="non"[ (#ENV{doublon}|=={non}|oui)selected="selected"]><:svp:option_doublon_non:></option> <option value="oui"[ (#ENV{doublon}|=={oui}|oui)selected="selected"]><:svp:option_doublon_oui:></option> </select> </div> </div> </fieldset> <p class="boutons recherche"><input type="submit" name="rechercher" class="submit" value="<:info_rechercher:>" /></p> </div> [(#ENV{phrase}|ou{#ENV{depot}}|ou{#ENV{categorie}}|ou{#ENV{etat}|ou{#ENV{doublon}}}|oui) <div class="liste-plugins"> <fieldset> <legend><:svp:legende_installer_plugins:></legend> <INCLURE{fond=formulaires/inc-plugins_trouves, plugins=#ENV*{message_ok}|table_valeur{plugins}, env} /> </fieldset> <p class="boutons actions"[(#ENV{ids_paquet}|non) style="display:none"]> <input type="submit" name="telecharger" class="submit" value="<:bouton_telecharger:>" /> <input type="submit" name="installer" class="submit" value="<:svp:bouton_installer:>" /> </p> </div>] </form> </BOUCLE_depot_existe> #BOITE_OUVRIR{'','notice'} <p><:svp:message_nok_aucun_depot_disponible:></p> #BOITE_FERMER <//B_depot_existe> </div> charger_plugin.php000064400000010641152524514340010255 0ustar00<?php /** * Gestion du formulaire de recherche et téléchargement de plugins * distants connus dans un dépot * * @plugin SVP pour SPIP * @license GPL * @package SPIP\SVP\Formulaires */ if (!defined("_ECRIRE_INC_VERSION")) { return; } // pour svp_presenter_actions_realisees() include_spip('exec/admin_plugin'); /** * Chargement du formulaire de recherche et téléchargement de plugins * * @return array * Environnement du formulaire **/ function formulaires_charger_plugin_charger_dist() { return array( 'phrase' => _request('phrase'), 'categorie' => _request('categorie'), 'etat' => _request('etat'), 'depot' => _request('depot'), 'doublon' => _request('doublon'), 'exclusion' => _request('exclusion'), 'ids_paquet' => _request('ids_paquet'), '_todo' => _request('_todo'), '_libelles_actions' => _request('_libelles_actions'), // on présente les actions réalisées ici au retour, lorsqu'il n'y avait eu que des Téléchargement demandés (sans activation) '_actions_realisees' => (_request('todo') or _AJAX) ? '' : svp_presenter_actions_realisees() ); } /** * Vérification du formulaire de recherche et téléchargement de plugins * * Appelle le décideur qui détermine la liste des actions à faire et si celles-ci * peuvent être faites (dépendances connues). Une erreur sera levé dans le * cas contraire. * * Si toutes les actions peuvent être faites, une demande de confirmation * est envoyée (dans une erreur spéciale), présentant alors toutes les * actions qui seront réalisées (celle demandée + celles à faire par voie * de conséquence. * * Si on reçoit une demande de confirmation, on sort sans lever d'erreur ! * * @uses svp_decider_verifier_actions_demandees() * @return array * Tableau des erreurs **/ function formulaires_charger_plugin_verifier_dist() { $erreurs = array(); $a_installer = array(); if (_request('annuler_actions')) { // Requete : Annulation des actions d'installation en cours // -- On vide la liste d'actions en cours set_request('_todo', ''); } elseif (_request('valider_actions')) { } elseif (_request('rechercher')) { // annuler les selections si nouvelle recherche set_request('ids_paquet', array()); } else { // Requete : Installation d'un ou de plusieurs plugins // -- On construit le tableau des ids de paquets conformement a l'interface du decideur if (_request('installer') or _request('telecharger')) { $action = _request('installer') ? 'geton' : 'get'; // L'utilisateur a demande une installation multiple de paquets // -- on verifie la liste des id_paquets uniquement if ($id_paquets = _request('ids_paquet')) { foreach ($id_paquets as $_id_paquet) { $a_installer[$_id_paquet] = $action; } } } else { // L'utilisateur a demande l'installation d'un paquet en cliquant sur le bouton en regard // du resume du plugin -> installer_paquet if ($install = _request('installer_paquet')) { if ($id_paquet = key($install)) { $a_installer[$id_paquet] = 'geton'; } } } if (!$a_installer) { $erreurs['message_erreur'] = _T('svp:message_nok_aucun_plugin_selectionne'); } else { // On fait appel au decideur pour determiner la liste exacte des commandes apres // verification des dependances include_spip('inc/svp_decider'); svp_decider_verifier_actions_demandees($a_installer, $erreurs); } } return $erreurs; } /** * Traitement du formulaire de recherche et téléchargement de plugins * * Si une liste d'action est validée, on redirige de formulaire sur * l'action 'actionner' qui les traitera une par une. * * @return array * Retours du traitement **/ function formulaires_charger_plugin_traiter_dist() { $retour = array(); if (_request('rechercher') or _request('annuler_actions')) { } elseif (_request('valider_actions')) { #refuser_traiter_formulaire_ajax(); // Ajout de la liste des actions à l'actionneur // c'est lui qui va effectuer rellement les actions // lors de l'appel de action/actionner include_spip('inc/filtres'); $actions = decoder_contexte_ajax(_request('_todo'), 'svp_todo') ?: []; include_spip('inc/svp_actionner'); // si toutes les actions sont des téléchargements (pas d'activation), on reste sur cette page $redirect = null; if (!array_diff($actions, array('get'))) { $redirect = self(); } svp_actionner_traiter_actions_demandees($actions, $retour, $redirect); } $retour['editable'] = true; return $retour; } ajouter_depot.html000064400000003604152524514340010306 0ustar00<div class="formulaire_spip formulaire_ajouter_depot" id="formulaire_ajouter_depot"> <h3 class="titrem">[(#CHEMIN_IMAGE{depot-add-24.png}|balise_img{icone ajouter_depot-24,cadre-icone})]<:svp:titre_form_ajouter_depot:></h3> [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] <!-- <br class='bugajaxie' /> --> [(#ENV{editable}) <form method="post" action="#ENV{action}"> [(#REM) <!-- declarer les hidden qui declencheront le service du formulaire parametre : url d'action --> ] #ACTION_FORMULAIRE <div> <p class="explication"><:svp:info_ajouter_depot:></p> <div class="editer-groupe"> <div class="editer editer_password obligatoire[(#ENV{erreurs/password}|oui) erreur]"> <label for="password"><:entree_mot_passe:></label> [<span class="erreur_message">(#ENV**{erreurs/password})</span>] <input type="password" name="password" id="password" value="#ENV{password}" class="text" /> <p class='explication'><:svp:explication_mot_passe:></p> </div> <div class="editer editer_xml_paquets obligatoire[(#ENV{erreurs}|table_valeur{xml_paquets}|oui) erreur]"> <label for="xml_paquets"><:svp:label_xml_depot:></label> <p class="explication"> <:svp:info_fichier_depot:> <a class="spip_out" title="<:svp:bulle_ajouter_spipzone:>" href="https://plugins.spip.net/depots/principal.xml" onclick="$('#xml_paquets').attr('value',$(this).attr('href')).focus();return false;"><:svp:info_adresse_spipzone:></a> </p> [<span class="erreur_message">(#ENV{erreurs}|table_valeur{xml_paquets})</span>] <input type="text" name="xml_paquets" id="xml_paquets" value="#ENV{xml_paquets}" class="text" /> </div> </div> <p class="boutons"> <input type="submit" class="submit" value="<:bouton_ajouter:>" /> </p> </div> </form> ] </div> charger_plugin_archive.php000064400000006066152524514340011764 0ustar00<?php /** * Gestion du formulaire de téléchargement de plugin via une URL * * @plugin SVP pour SPIP * @license GPL * @package SPIP\SVP\Formulaires */ if (!defined("_ECRIRE_INC_VERSION")) { return; } /** * Chargement du formulaire de téléchargement de plugin * * @return array * Environnement du formulaire **/ function formulaires_charger_plugin_archive_charger_dist() { return array( 'archive' => '', 'destination' => '', 'password' => '' ); } /** * Vérifications du formulaire de téléchargement de plugin * * Vérifie qu'une archive est saisie, et si la destination existe * demande à confirmer l'écrasement * * @return array * Tableau des erreurs **/ function formulaires_charger_plugin_archive_verifier_dist() { include_spip('inc/plugin'); // _DIR_PLUGINS_AUTO $erreurs = array(); if (!autoriser('ajouter', '_plugins')) { $erreurs['message_erreur'] = _T('svp:erreur_teleporter_chargement_source_impossible', ['source' => '']); } else { if (!$archive = _request('archive')) { $erreurs['archive'] = _T('info_obligatoire'); } else { // Validité de l'url de l'archive $infos_archive = pathinfo($archive); if (!isset($infos_archive['extension'])) { $erreurs['archive'] = _T('svp:message_nok_url_archive'); } else { // calcul du répertoire de destination if (!$destination = _request('destination')) { $destination = $infos_archive['filename']; } $destination = str_replace('../', '', $destination); set_request('destination', $destination); // si la destination existe, on demande confirmation de l'ecrasement. $dir = _DIR_PLUGINS_AUTO . $destination; if (is_dir($dir) and !_request('confirmer')) { $base = dirname($dir); $nom = basename($dir); $backup = "$base/.$nom.bck"; $erreurs['confirmer'] = _T('svp:confirmer_telecharger_dans', [ 'dir' => joli_repertoire($dir), 'dir_backup' => joli_repertoire($backup) ]); } } } $password = _request('password'); if (empty($password)) { $erreurs['password'] = _T('info_obligatoire'); } else { include_spip('inc/auth'); if (!auth_controler_password_auteur_connecte($password)) { $erreurs['message_erreur'] = _T('svp:erreur_teleporter_chargement_source_impossible', ['source' => '']); } } } return $erreurs; } /** * Traitement du formulaire de téléchargement de plugin * * Télécharge le plugin via le téléporteur et rend la main. * * @return array * Retours du traitement **/ function formulaires_charger_plugin_archive_traiter_dist() { $retour = array(); $archive = _request('archive'); $dest = _request('destination'); include_spip('action/teleporter'); $teleporter_composant = charger_fonction('teleporter_composant', 'action'); $ok = $teleporter_composant('http', $archive, _DIR_PLUGINS_AUTO . $dest); if ($ok !== true) { $retour['message_erreur'] = $ok; } else { $retour['message_ok'] = _T('svp:message_telechargement_archive_effectue', array('dir' => joli_repertoire(_DIR_PLUGINS_AUTO . $dest))); } $retour['editable'] = true; return $retour; } editer_depot.php000064400000003570152524514340007736 0ustar00<?php /** * Gestion du formulaire d'édition de dépot * * @plugin SVP pour SPIP * @license GPL * @package SPIP\SVP\Formulaires */ if (!defined("_ECRIRE_INC_VERSION")) { return; } include_spip('inc/editer'); /** * Chargement du formulaire d'édition de dépot * * @param int $id_depot * Identifiant du dépot * @param string $redirect * URL de redirection * @return array * Environnement du formulaire **/ function formulaires_editer_depot_charger_dist($id_depot, $redirect) { $valeurs = formulaires_editer_objet_charger('depot', $id_depot, 0, 0, $redirect, 'depots_edit_config'); return $valeurs; } /** * Vérification du formulaire d'édition de dépot * * @param int $id_depot * Identifiant du dépot * @param string $redirect * URL de redirection * @return array * Tableau des erreurs **/ function formulaires_editer_depot_verifier_dist($id_depot, $redirect) { $erreurs = formulaires_editer_objet_verifier('depot', $id_depot, array('titre')); return $erreurs; } /** * Traitement du formulaire d'édition de dépot * * @param int $id_depot * Identifiant du dépot * @param string $redirect * URL de redirection * @return array * Retours du traitement **/ function formulaires_editer_depot_traiter_dist($id_depot, $redirect) { return formulaires_editer_objet_traiter('depot', $id_depot, 0, 0, $redirect); } /** * Préparation des configurations particulières du formulaire d'édition de dépot * * @param array $row * Données SQL actuelles de l'objet qui va être édité * @return array * Tableau de configurations qui seront ajoutés à l'environnement * du formulaire sous la clé 'config' **/ function depots_edit_config($row) { global $spip_ecran, $spip_lang; $config = $GLOBALS['meta']; $config['lignes'] = ($spip_ecran == "large") ? 8 : 5; $config['langue'] = $spip_lang; return $config; } ajouter_depot.php000064400000007234152524514340010134 0ustar00<?php /** * Gestion du formulaire d'ajout de dépot * * @plugin SVP pour SPIP * @license GPL * @package SPIP\SVP\Formulaires */ if (!defined("_ECRIRE_INC_VERSION")) { return; } /** * Chargement du formulaire d'ajout de dépot * * @return array * Environnement du formulaire **/ function formulaires_ajouter_depot_charger_dist() { // On ne renvoie pas les valeurs saisies mais on fait un raz systematique $nb = (int)sql_countsel('spip_depots'); return array( 'xml_paquets' => $nb ? '' : "https://plugins.spip.net/depots/principal.xml", 'password' => '', ); } /** * Vérifications du formulaire d'ajout de dépot * * Vérifie qu'une adresse valide est soumise et que ce dépot n'a pas * déjà été créé. * * @uses svp_verifier_adresse_depot() * @return array * Tableau des erreurs **/ function formulaires_ajouter_depot_verifier_dist() { $erreurs = array(); if (!autoriser('ajouter', '_depots')) { $erreurs['message_erreur'] = _T('svp:erreur_teleporter_chargement_source_impossible', ['source' => '']); } else { $password = _request('password'); if (empty($password)) { $erreurs['password'] = _T('info_obligatoire'); } else { include_spip('inc/auth'); if (!auth_controler_password_auteur_connecte($password)) { $erreurs['message_erreur'] = _T('svp:erreur_teleporter_chargement_source_impossible', ['source' => '']); } } $xml = trim(_request('xml_paquets')); if (!$xml){ // L'url est obligatoire $erreurs['xml_paquets'] = _T('svp:message_nok_champ_obligatoire'); } if (empty($erreurs)) { if (!svp_verifier_adresse_depot($xml)) { // L'url n'est pas correcte, le fichier xml n'a pas ete trouve $erreurs['xml_paquets'] = _T('svp:message_nok_url_depot_incorrecte', ['url' => $xml]); } elseif (sql_countsel('spip_depots', 'xml_paquets=' . sql_quote($xml))) { // L'url est deja ajoutee $erreurs['xml_paquets'] = _T('svp:message_nok_depot_deja_ajoute', ['url' => $xml]); } } } if (count($erreurs)) { set_request('password'); } return $erreurs; } /** * Traitement du formulaire d'ajout de dépot * * Ajoute le dépot. * Retourne une éventuelle erreur si le dépot a un XML mal formé * ou s'il n'a aucun plugin. * * @uses svp_ajouter_depot() * @return array * Retours du traitement **/ function formulaires_ajouter_depot_traiter_dist() { include_spip('inc/svp_depoter_distant'); $retour = array(); $xml = trim(_request('xml_paquets')); // On ajoute le depot et ses plugins dans la base // On traite le cas d'erreur fichier ($retour['message_erreur']) non conforme // - si la syntaxe xml est incorrecte // - ou si le depot ne possede pas au moins un plugin $ok = svp_ajouter_depot($xml, $erreur); // Determination des messages de retour if (!$ok) { $retour['message_erreur'] = $erreur; } else { $retour['message_ok'] = _T('svp:message_ok_depot_ajoute', array('url' => $xml)); spip_log("ACTION AJOUTER DEPOT (manuel) : url = " . $xml, 'svp_actions.' . _LOG_INFO); set_request('xml_paquets'); } set_request('password'); $retour['editable'] = true; return $retour; } /** * Teste la validité d'une URL d'un dépot de paquets * * Pour cela on tente de rapatrier le fichier distant * en local. Si on réussi, c'est bon. * * @param string $url * URL du fichier xml de description du depot * @return bool * Le dépot est-il valide ? */ function svp_verifier_adresse_depot($url) { include_spip('inc/distant'); // evitons de recuperer 2 fois le XML demandé. // si on le recupere ici, il sera deja a jour pour le prochain copie_locale // lors du traitement. return (copie_locale($url) ? true : false); #return (!$xml = recuperer_page($url)) ? false : true; } inc-admin_plugin_fonctions.php000064400000001222152524514340012556 0ustar00<?php /** * Gestion du formulaire de t�l�chargement de plugin via une URL * * @plugin SVP pour SPIP * @license GPL * @package SPIP\SVP\Formulaires */ if (!defined("_ECRIRE_INC_VERSION")) { return; } include_spip("inc/plugin"); /** * Cr�e une valeur d'action pour l'attribut 'name' d'une saisie de formulaire * * @example * [(#ID_PAQUET|svp_nom_action{on})] * �crit : actions[on][24] * @param int $id_paquet * Identifiant du paquet * @param string $action * Une action possible (on, off, stop, up, on, upon, kill) **/ function filtre_svp_nom_action($id_paquet, $action) { return "actions[$action][$id_paquet]"; } inc-select_depot.html000064400000000471152524514340010662 0ustar00<select name="depot" id="depot"> <option value="tout_depot"[ (#ENV{depot}|=={tout_depot}|oui)selected="selected"]><:svp:option_depot_tout:></option> <BOUCLE_depots(DEPOTS) {par titre}> <option[ value="(#ID_DEPOT)"][ (#ENV{depot}|=={#ID_DEPOT}|oui)selected="selected"]>#TITRE</option> </BOUCLE_depots> </select> admin_plugin.html000064400000012572152524514340010114 0ustar00<B_erreurs_xml> <div class='svp_retour'> [(#BOITE_OUVRIR{<:svp:actions_en_erreur:>, error})] <:svp:erreurs_xml:> <ul> <BOUCLE_erreurs_xml(DATA){source tableau,#ENV{_erreurs_xml}}> <li>#VALEUR*</li> </BOUCLE_erreurs_xml> </ul> #BOITE_FERMER </div> </B_erreurs_xml> <div class="formulaire_spip formulaire_admin_plugin" id="formulaire_admin_plugin"> <h3 class="titrem">[(#CHEMIN_IMAGE{plugin-24.png}|balise_img{icone plugin-24,cadre-icone})]<span id="nbr_plugin"><:plugins_liste:></span> </h3> <input type="input" id="filtrer" placeholder="<:svp:filtrer|attribut_html:>"> [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] <form method="post" action="#ENV{action}"> <INCLURE{fond=formulaires/inc-confirmer_actions, env} /> #ACTION_FORMULAIRE <div class="liste-plugins"> <fieldset> <p class="explication"> [(#ENV{verrouille}|=={oui}|oui) #SET{dir_plugins_dist,#CONST{_DIR_PLUGINS_DIST}|joli_repertoire} <:svp:info_admin_plugin_verrouille{dir_plugins_dist=#GET{dir_plugins_dist}}:> ][(#ENV{verrouille}|=={oui}|non) [(#VAL{svp:info_admin_plugin}|concat{[_actif_(#ENV{actif, oui})], [_verrou_(#ENV{verrouille, non})]}|_T)] ] </p> <INCLURE{fond=formulaires/inc-admin_plugin,env} /> </fieldset> </div> <div class="actions_multiples"> [<fieldset class="boutons">(#CONST{_DIR_PLUGINS_DIST}|in_array{#ENV{constante,#ARRAY}}|non) <p class="cocher"> <a href="#" id="select_tous"><:svp:tout_cocher:></a><span class="sep"> | </span> <a href="#" id="select_aucun"><:svp:tout_decocher:></a><span class="sep"> | </span> <a href="#" id="select_up"><:svp:tout_cocher_up:></a> </p> <select id="action_globale" class="action" name="action_globale"> [(#ENV{actif}|=={oui}|non)<option value="on"><:svp:bouton_activer:></option>] [(#ENV{actif}|=={non}|non)<option value="off"><:svp:bouton_desactiver:></option>] <option value="up" id="option_up"><:svp:bouton_up:></option> [(#ENV{actif}|=={non}|non|et{#AUTORISER{webmestre}}|oui)<option value="stop"><:svp:bouton_desinstaller:></option>] </select> <input type="submit" class="submit" name="appliquer" value="<:svp:bouton_appliquer:>" /> </fieldset>] <script type="text/javascript"> /*<![CDATA[*/ (function($){ var tous_les_elements = $('div#liste_plugins ul > li'); // afficher le nombre de plugin au chargement de la page calculer_nbr_plugin(tous_les_elements); // on filtre les plugins $('input#filtrer').keyup(function(){ var that = this; jQuery('h1.grostitre').attr('data',$(this).val()); var elements_trouves = tous_les_elements.filter(function(i, li){ var listItemText = $(li).text().toUpperCase() searchText = that.value.toUpperCase(); return ~listItemText.indexOf(searchText); }); tous_les_elements.hide(); elements_trouves.show(); // recalculer le nombre de plugin calculer_nbr_plugin(elements_trouves); }); $("#select_tous").click(function(){ jQuery("input.select_plugin").prop("checked",true); return false; }); $("#select_aucun").click(function(){ $("input.select_plugin").prop("checked",false); return false; }); var cocher_plugins_up = function(){ if ($(".plugins li.item.up").length != 0) { $("#select_up").click(function(){ $(".plugins li.item.up input.select_plugin").prop("checked",true); $("select#action_globale>option#option_up").prop("selected",true); return false; }); } else { $("#select_up").hide(); $("#select_up").prev(".sep").hide(); $("#option_up").hide(); } } // lorsqu'il y a de nombreux plugins et comme la remontee ajax est desactivee // on ne voit pas forcement les erreurs. A ce monent la, on remonte dessus. var remonter_sur_erreurs = function() { if ($('#formulaire_admin_plugin .reponse_formulaire_erreur').length) { $(document).scrollTop($('#formulaire_admin_plugin').offset().top - 20); } } cocher_plugins_up(); onAjaxLoad(cocher_plugins_up); onAjaxLoad(remonter_sur_erreurs); onAjaxLoad(refiltrer); // Au rechargement de la page et lors du chargement du descriptif d'un plugin // on recupere l'éventuel filtre et on l'applique si présent function refiltrer(){ if (jQuery('h1.grostitre').attr('data')) { var elements_trouves = tous_les_elements.filter(function(i, li){ var listItemText = $(li).text().toUpperCase() var searchText = jQuery('h1.grostitre').attr('data'); jQuery('input#filtrer').val(searchText); return ~listItemText.indexOf(searchText.toUpperCase()); }); tous_les_elements.hide(); elements_trouves.show(); } } function calculer_nbr_plugin(liste_plugins){ var nbr_plugin = liste_plugins.length; if (nbr_plugin > 1){ var texte = '<:svp:info_nb_plugins|texte_script:>'; texte = texte.replace('@nb@', nbr_plugin); jQuery('span#nbr_plugin').text(texte); } else if (nbr_plugin === 1){ jQuery('span#nbr_plugin').text('<:svp:info_1_plugin|texte_script:>'); } else { jQuery('span#nbr_plugin').text('<:svp:info_0_plugin|texte_script:>'); } } })(jQuery); /*]]>*/ </script> </div> </form> </div> inc-select_categorie.html000064400000000650152524514340011510 0ustar00<B_categories> <select name="categorie" id="categorie"> <option value="toute_categorie"[ (#ENV{categorie}|=={toute_categorie}|oui)selected="selected"]> <:svp:option_categorie_toute:> </option> <BOUCLE_categories(DATA) {source table, #SVP_CATEGORIES}> [(#CLE|!={aucune}|oui) <option value="#CLE"[ (#ENV{categorie}|=={#CLE}|oui)selected="selected"]> #VALEUR </option>] </BOUCLE_categories> </select> </B_categories> inc-confirmer_actions.html000064400000004473152524514340011722 0ustar00 <input type="hidden" name="_todo" class='hidden' value="[(#ENV{_todo})]" /> [<div class="reponse_formulaire reponse_formulaire_erreur"> (#ENV**{erreurs/decideur_erreurs}|foreach{svp_presenter_actions}) </div>] [<div id="charger_plugin_confirm"> [<div class="reponse_formulaire notice"> (#ENV**{_notices/decideur_warning}) </div>] <div class="reponse_formulaire reponse_formulaire_ok"> <strong><:svp:actions_demandees:></strong> <ul>(#ENV**{_libelles_actions/decideur_demandes}|foreach{svp_presenter_actions})</ul> </div> [<div class="reponse_formulaire reponse_formulaire_ok"> <strong><:svp:actions_necessaires:></strong> <ul>(#ENV**{_libelles_actions/decideur_propositions}|foreach{svp_presenter_actions})</ul> </div>] <p class="boutons"> <input type="submit" name="annuler_actions" class="submit annuler_actions" value="<:bouton_annuler:>" /> <input type="submit" name="valider_actions" class="submit valider_actions" value="<:bouton_valider:>" /> </p> <script type="text/javascript">/*<!\[CDATA\[*/ /*[(#REM) Fonctionnement du JS. - overlayClose // pas de click en dehors des éléments prévus - onComplete // le chargement et fait : si l'on clique les boutons du formulaire // mis dans la modale, on leur ajoute une classe 'fire' // et on lance la fermeture de la boite - onCleanup // avant la fermeture... on verifie que 'fire' est bien là // sinon c'est qu'on a appuyé ESC ou cliqué X // dans ce cas on met 'fire' sur annuler - onClose // apres la fermeture, on clique le bouton ayant 'fire' ]*/ (function($){ $(function(){ if ($.modalbox !== 'undefined') { $.modalboxload('#charger_plugin_confirm', { overlayClose: false, // pas de click en dehors onComplete: function() { $('#cboxLoadedContent .boutons .submit').click(function(){ $(this).addClass('fire'); $.mediaboxClose(); }); }, onCleanup: function() { if (!$('#charger_plugin_confirm .boutons .submit.fire').length) { $('#charger_plugin_confirm .boutons .submit.annuler_actions').addClass('fire'); } $('#charger_plugin_confirm').hide(); }, onClose: function() { $('#charger_plugin_confirm .submit.fire').click(); } }); } }); })(jQuery); /*\]\]>*/ </script> </div>] configurer_svp.html000064400000012044152524514340010473 0ustar00<div class='formulaire_spip formulaire_configurer formulaire_configurer_#FORM' id='formulaire_configurer_#FORM'> <h3 class='titrem'><:svp:titre_form_configurer_svp:></h3> [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] <form method="post" action="#SELF"><div> #ACTION_FORMULAIRE <fieldset> <legend><:svp:fieldset_fonctionnement:></legend> <div class="editer-groupe"> #SET{name,mode_runtime}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} <div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]"> <label><:svp:config_activer_runtime:></label> <div class='explication'><:svp:config_activer_runtime_explication:></div>[ <span class='erreur_message'>(#GET{erreurs})</span> ]<div class="choix"> <input type="radio" name="#GET{name}" id="#GET{name}_oui" value="oui" [(#ENV{#GET{name}}|!={non}|oui)checked="checked"] /><label for="#GET{name}_oui"><:item_oui:></label> </div> <div class="choix"> <input type="radio" name="#GET{name}" id="#GET{name}_non" value="non" [(#ENV{#GET{name}}|=={non}|oui)checked="checked"] /><label for="#GET{name}_non"><:item_non:></label> </div> </div> <div class="editer-groupe"> </fieldset> <fieldset> <legend><:svp:fieldset_debug:></legend> <div class="editer-groupe"> #SET{name,mode_pas_a_pas}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} <div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]"> <label><:svp:config_activer_pas_a_pas:></label> <div class='explication'><:svp:config_activer_pas_a_pas_explication:></div>[ <span class='erreur_message'>(#GET{erreurs})</span> ]<div class="choix"> <input type="radio" name="#GET{name}" id="#GET{name}_oui" value="oui" [(#ENV{#GET{name}}|=={oui}|oui)checked="checked"] /><label for="#GET{name}_oui"><:item_oui:></label> </div> <div class="choix"> <input type="radio" name="#GET{name}" id="#GET{name}_non" value="non" [(#ENV{#GET{name}}|=={oui}|non)checked="checked"] /><label for="#GET{name}_non"><:item_non:></label> </div> </div> #SET{name,mode_log_verbeux}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} <div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]"> <label><:svp:config_activer_log_verbeux:></label> <div class='explication'><:svp:config_activer_log_verbeux_explication:></div>[ <span class='erreur_message'>(#GET{erreurs})</span> ]<div class="choix"> <input type="radio" name="#GET{name}" id="#GET{name}_oui" value="oui" [(#ENV{#GET{name}}|=={oui}|oui)checked="checked"] /><label for="#GET{name}_oui"><:item_oui:></label> </div> <div class="choix"> <input type="radio" name="#GET{name}" id="#GET{name}_non" value="non" [(#ENV{#GET{name}}|=={oui}|non)checked="checked"] /><label for="#GET{name}_non"><:item_non:></label> </div> </div> #SET{name,autoriser_activer_paquets_obsoletes}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} <div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]"> <label><:svp:config_autoriser_activer_paquets_obsoletes:></label> <div class='explication'><:svp:config_autoriser_activer_paquets_obsoletes_explication:></div>[ <span class='erreur_message'>(#GET{erreurs})</span> ]<div class="choix"> <input type="radio" name="#GET{name}" id="#GET{name}_oui" value="oui" [(#ENV{#GET{name}}|=={oui}|oui)checked="checked"] /><label for="#GET{name}_oui"><:item_oui:></label> </div> <div class="choix"> <input type="radio" name="#GET{name}" id="#GET{name}_non" value="non" [(#ENV{#GET{name}}|=={oui}|non)checked="checked"] /><label for="#GET{name}_non"><:item_non:></label> </div> </div> <div class="editer-groupe"> </fieldset> <fieldset> <legend><:svp:fieldset_edition:></legend> <div class="editer-groupe"> #SET{name,depot_editable}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} <div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]"> <label><:svp:config_depot_editable:></label> <div class='explication'><:svp:config_depot_editable_explication:></div>[ <span class='erreur_message'>(#GET{erreurs})</span> ]<div class="choix"> <input type="radio" name="#GET{name}" id="#GET{name}_oui" value="oui" [(#ENV{#GET{name}}|=={oui}|oui)checked="checked"] /><label for="#GET{name}_oui"><:item_oui:></label> </div> <div class="choix"> <input type="radio" name="#GET{name}" id="#GET{name}_non" value="non" [(#ENV{#GET{name}}|=={oui}|non)checked="checked"] /><label for="#GET{name}_non"><:item_non:></label> </div> </div> <div class="editer-groupe"> </fieldset> <p class='boutons'><input class='submit' type="submit" name="_cfg_ok" value="<:bouton_enregistrer:>" /></p> </div></form> </div> inc-plugins_trouves.html000064400000006263152524514340011465 0ustar00[(#SET{plugins,#ARRAY})] [(#ENV{phrase}|ou{#ENV{depot}}|ou{#ENV{categorie}}|ou{#ENV{etat}}|ou{#ENV{exclusion}}|ou{#ENV{doublon}}|oui) [(#SET{plugins,[(#ENV{phrase}|construire_recherche_plugins{#ENV{categorie}, #ENV{etat}, #ENV{depot}, #ENV{exclusion}, #ENV{doublon}})]})] [(#SET{nb,[(#GET{plugins}|count)]})] [(#SET{tri,[(#GET{phrase}|?{score,nom})]})] [(#GET{nb}|oui)<p class="explication"><:svp:message_ok_plugins_trouves{nb_plugins=#GET{nb},tri=#GET{tri}}:></p>] [(#GET{nb}|non)<p class="explication"><:svp:message_ok_aucun_plugin_trouve:></p>] ] <B_plugins_trouves> <div class="liste plugins distants"> <ul class="liste-items"> <BOUCLE_plugins_trouves(DATA) {source table, #GET{plugins}}> <li class="item[(#VALEUR{installe}|oui) installe][(#VALEUR{etat}|=={stable}|non) nonstable]"[ id="(#VALEUR{prefixe}|strtolower)-#COMPTEUR_BOUCLE-#VALEUR{score}"]> [(#REM) <!-- Checkbox action multiple -->] [(#VALEUR{installe}|non|et{#VAL|test_plugins_auto}) <div class="check"> <input type="checkbox" class="checkbox" name="ids_paquet\[\]" value="#ID_PAQUET" [(#ID_PAQUET|in_any{#ENV{ids_paquet}}) checked="checked"] /> </div> ] [(#REM) <!-- Resume du plugin -->] <div class="resume"> <h3 class="nom"><a href="#" rel="info">[(#VALEUR{nom}|extraire_multi)]</a></h3> <span class="version">[(#VALEUR{version}|denormaliser_version)]</span> <span class="etat">[ - (#VALEUR{etat})]</span> [<span class="svp_message"> - (#VALEUR{installe}|oui)<:svp:info_plugin_installe:></span>] <div class="short">[(#VALEUR{slogan}|extraire_multi)]</div> <div class="icon">[(#VALEUR{logo}|image_reduire{32})]</div> </div> [(#REM) <!-- Details du plugin -->] <div class="details none-js"> <dl> <dd class="desc"> [(#VALEUR{description}|extraire_multi|propre)] [<em class="site"> <a href="(#LIEN_DOC)" class="spip_out" title="<:svp:bulle_aller_documentation:>"><:svp:lien_documentation:></a> </em>] </dd> [<dt class="auteurs"><:public:par_auteur:></dt> <dd class="auteurs">(#AUTEUR*|svp_afficher_credits)</dd>] [<dt class="licence"><:intitule_licence:></dt> <dd class="licence">(#LICENCE|svp_afficher_credits{','})</dd>] </dl> </div> </li> </BOUCLE_plugins_trouves> </ul> </div> </B_plugins_trouves> <script type="text/javascript"> /*<![CDATA[*/ jQuery(function(){ jQuery('.plugins li.item a[rel=info]').click(function(){ var li = jQuery(this).parents('li').eq(0); if (jQuery('div.details',li).toggle().is(':visible')) li.addClass('on'); else li.removeClass('on'); return false; }); [(#REM) Déplier le bouton 'installer' et mettre le submit en premier dans le form pour que l'appuie de la touche entree valide. Le supprimer si l'on change un critere de recherche. ] jQuery('.plugins li.item input.checkbox').change(function(){ $form = jQuery(this).parents('form').eq(0); if (!$form.find('> input.submit').length) { $form.find('.boutons.actions').slideDown().find('input.submit').clone().addClass('invisible').prependTo($form); $form.find('.liste-recherche').change(function(){ jQuery(this).parents('form').eq(0).find('> input.submit').remove(); }); } }); }); /*]]>*/ </script> inc-admin_plugin.html000064400000016364152524514340010666 0ustar00#SET{vspip, #EVAL{$GLOBALS['spip_version_branche']}} #SET{autoriser_plugins_ajouter,#AUTORISER{plugins_ajouter}} #SET{autoriser_webmestre,#AUTORISER{webmestre}} [(#SET{image_verrou,[(#CHEMIN_IMAGE{cadenas-16.png}|balise_img{<:svp:plugin_info_verrouille:>,picto_verrou}|inserer_attribut{title,<:svp:plugin_info_verrouille:>})]})] [(#SET{erreur_attente,[- <span class="svp_message">(#GET{autoriser_plugins_ajouter}|?{<:svp:info_plugin_attente_dependance:>,<:svp:info_plugin_attente_dependance_interdit:>})</span> ]})] [(#SET{erreur_incompatible,- <span class="svp_message"><:svp:info_plugin_incompatible:></span>})] <B_plugins> [(#GET{incompatibles}) [(#ENV{afficher_incompatibles,''}|non) <a id="afficher_incompatibles" href="[(#SELF|parametre_url{afficher_incompatibles,1})]"><:svp:afficher_les_plugins_incompatibles:></a> ] [(#ENV{afficher_incompatibles,''}|oui) <a id="afficher_incompatibles" href="[(#SELF|parametre_url{afficher_incompatibles,''})]"><:svp:cacher_les_plugins_incompatibles:></a> ] ] <div class="liste plugins" id="liste_plugins"> <ul class="liste-items"> <BOUCLE_plugins(PAQUETS plugins){tout}{par multi nom, paquets.prefixe}{!par constante, actif}{id_depot=0}{actif ?}{constante ?IN #ENV{constante}}> #SET{incompatible, #COMPATIBILITE_SPIP|plugin_version_compatible{#GET{vspip}, spip}|non} #SET{verrou,#CONSTANTE|=={_DIR_PLUGINS_DIST}|oui} #SET{actif,#ACTIF|=={oui}|oui} #SET{attente,#ATTENTE|=={oui}|oui} [(#GET{incompatible})#SET{incompatibles,' '}] [(#GET{incompatible}|non|ou{#ENV{afficher_incompatibles,''}}|ou{#GET{verrou}}|ou{#GET{actif}}|ou{#GET{attente}}) #SET{obsolete,#OBSOLETE|=={oui}|oui} #SET{details,#ENV{id_paquet,''}|=={#ID_PAQUET}|oui} <li class="item[ (#GET{actif}|?{actif,inactif})][(#GET{obsolete}|ou{#GET{attente}}|ou{#GET{incompatible}}|oui) disabled][(#GET{incompatible}) incompatible][(#GET{verrou}) verrou][(#MAJ_VERSION|oui|et{#GET{autoriser_plugins_ajouter}|oui}|oui)up]"[ id="(#PREFIXE|strtolower)-#COMPTEUR_BOUCLE"][ data-id_paquet="(#ID_PAQUET)"]> [(#GET{incompatible}|non|ou{#GET{attente}}|et{#GET{verrou}|non}) [(#GET{obsolete}|non) <div class="check"> <input type="checkbox" class="checkbox select_plugin" name="ids_paquet\[\]" value="#ID_PAQUET" [(#ID_PAQUET|in_any{#ENV{ids_paquet}}) checked="checked"] /> </div>] [(#REM) si la configuration le permet, on peut activer un plugin obsolete ] [(#GET{obsolete}|et{#GET{incompatible}|non}) [(#CONFIG{svp/autoriser_activer_paquets_obsoletes}|=={oui}|oui) <div class="check"> <input type="checkbox" class="checkbox select_plugin" name="ids_paquet\[\]" value="#ID_PAQUET" [(#ID_PAQUET|in_any{#ENV{ids_paquet}}) checked="checked"] /> </div> ] ] ] [(#REM) <!-- Resume du plugin -->] <div class="resume"> <h3 class="nom"><a href="[(#SELF|parametre_url{id_paquet,#GET{details}|?{'',#ID_PAQUET}})]" rel="info">[(#NOM|extraire_multi|svp_importer_charset)]</a></h3> <span class="version">[(#VERSION)]</span> <span class="etat">[ - (#ETAT)]</span> [(#SET{erreur,[<span class="svp_message">(#GET{obsolete})<:svp:info_plugin_obsolete:></span> ]})] [(#GET{attente}) [(#SET{erreur,#GET{erreur}|concat{#GET{erreur_attente}}})] ] [(#GET{incompatible})[(#SET{erreur,#GET{erreur}|concat{#GET{erreur_incompatible}}})]] [(#SET{slogan,#GET{erreur}|ltrim{'-'}|trim})] [(#GET{slogan}|non)[(#SET{slogan,#SLOGAN|extraire_multi|typo})]] [(#GET{slogan}|non)[(#SET{slogan,#DESCRIPTION|extraire_multi|propre|PtoBR|explode{'<br />'}|reset})]] <div class="short">[(#GET{slogan}|couper{80}|svp_importer_charset)]</div> [(#LOGO|et{#GET{incompatible}|non})<div class="icon"> [(#CONST{#CONSTANTE}|concat{#SRC_ARCHIVE/#LOGO}|balise_img)] </div>] </div> <div class="actions"> [(#REM) on peut desactiver un plugin - qu'il soit obsolete ou pas ] [(#GET{verrou}|non|et{#GET{incompatible}|non}|oui) [(#GET{actif}) <input type="submit" name="[(#ID_PAQUET|svp_nom_action{off})]" class="submit" value="<:svp:bouton_desactiver:>" /> [(#INSTALLE|=={oui}|et{#GET{autoriser_webmestre}}|oui) <input type="submit" name="[(#ID_PAQUET|svp_nom_action{stop})]" class="submit" value="<:svp:bouton_desinstaller:>" /> ] ] ] [(#GET{obsolete}|non|et{#GET{verrou}|non}|et{#GET{incompatible}|non}|oui) [(#GET{actif}|non|ou{#GET{attente}}) [(#GET{actif}|non|ou{#GET{attente}|et{#GET{autoriser_plugins_ajouter}|oui}}|oui) <input type="submit" name="[(#ID_PAQUET|svp_nom_action{on})]" class="submit" value="<:svp:bouton_activer:>" />] ] ] [(#GET{obsolete}|non|et{#GET{verrou}|non}|oui) [(#MAJ_VERSION|oui|et{#GET{autoriser_plugins_ajouter}|oui}|oui) <input type="submit" name="[(#ID_PAQUET|svp_nom_action{up})]" class="submit" value="<:svp:bouton_up:>" /> ] ] [(#REM) si la configuration le permet, on peut activer un plugin obsolete ] [(#GET{obsolete}|et{#GET{verrou}|non}|et{#GET{incompatible}|non}|oui) [(#GET{actif}|non|et{#CONFIG{svp/autoriser_activer_paquets_obsoletes}|=={oui}}) <input type="submit" name="[(#ID_PAQUET|svp_nom_action{on})]" class="submit" value="<:svp:bouton_activer:>" /> ] ] [(#GET{actif}|non|et{[(#SRC_ARCHIVE|couper{5}|=={auto/})]}) <input type="submit" name="[(#ID_PAQUET|svp_nom_action{kill})]" class="submit" value="<:svp:bouton_supprimer:>" /> ] [(#GET{verrou}) <span class="svp_message"><:svp:info_verrouille:></span> ] </div> [(#GET{actif}|et{#GET{attente}|non}|oui) #SET{prefixe,#PREFIXE|strtolower} [(#CHEMIN_IMAGE{ok-16.png}|balise_img{<:svp:plugin_info_actif:>,picto_actif}|inserer_attribut{title,<:svp:plugin_info_actif:>})] [(#INCLURE{fond=prive/squelettes/inclure/cfg,script=configurer_#GET{prefixe},nom=#NOM})] ] [(#GET{verrou}|?{#GET{image_verrou}})] [(#MAJ_VERSION|oui|et{#GET{autoriser_plugins_ajouter}|oui}|oui) [(#CHEMIN_IMAGE{update-16.png}|balise_img{<:svp:plugin_info_up:>,picto_up}|inserer_attribut{title,<:svp:plugin_info_up{version=#MAJ_VERSION}:>})] ] [(#GET{obsolete}|ou{#GET{incompatible}}|ou{#GET{attente}}|oui) [(#SET{image,#GET{attente}|?{erreur-16.png,plugin-dis-16.png}})] [(#GET{obsolete}) [(#SET{err, <:svp:info_plugin_obsolete:>})]] [(#GET{incompatible}) [(#SET{err, <:svp:info_plugin_incompatible:>})]] [(#CHEMIN_IMAGE{#GET{image}}|balise_img{#GET{err}, picto_err}|inserer_attribut{title, #GET{err}})] ] [(#GET{details}) [(#INCLURE{fond=prive/squelettes/inclure/plugin_detail,id_paquet,ajax=detail_#ID_PAQUET,env})] ] ] </li> </BOUCLE_plugins> </ul> </div> </B_plugins> <script type="text/javascript"> /*<![CDATA[*/ (function($){ $('#liste_plugins').on('click','li.item a[rel=info]',function(){ var li = $(this).parents('li').eq(0); var id_paquet = li.data('id_paquet'); // premier clic, on charge le contenu du bloc details en ajax if (!$('div.details',li).html()) { $(this).ajaxReload({args: {'id_paquet':id_paquet}}, {callback:function(){ li.addClass('on'); }}); } // clics suivants, masquer ou afficher les details if ($('div.details',li).toggle().is(':visible')) li.addClass('on'); else li.removeClass('on'); return false; }); $('.plugins li.item input.checkbox').change(function(){ $(this).parents('form').eq(0).find('.boutons').slideDown(); }); })(jQuery); /*]]>*/ </script> config_multilang.html000064400000005401152524701020010751 0ustar00<!-- autoriser=webmestre --> <!-- refus=<:cfg:refus_configuration_webmestre:> --> <!-- nom=multilang --> <div class="formulaire_spip formulaire_configurer formulaire_configurer_multilang"> [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] <form method="post" action="#ENV{action}"> <div> #ACTION_FORMULAIRE{#ENV{action}} <ul> <li class="fieldset"> <fieldset> <h3 class="legend"><:multilang:cfg_activer:></h3> <ul> [(#SAISIE{oui_non,siteconfig, label=<:multilang:cfg_lbl_siteconfig:>, defaut=on} )] [(#SAISIE{oui_non,article, label=<:multilang:cfg_lbl_article:>, defaut=''} )] [(#SAISIE{oui_non,breve, label=<:multilang:cfg_lbl_breve:>, defaut=''} )] [(#SAISIE{oui_non,rubrique, label=<:multilang:cfg_lbl_rubrique:>, defaut=on} )] [(#SAISIE{oui_non,auteur, label=<:multilang:cfg_lbl_auteur:>, defaut=on} )] [(#SAISIE{oui_non,document, label=<:multilang:cfg_lbl_document:>, defaut=on} )] [(#SAISIE{oui_non,motcle, label=<:multilang:cfg_lbl_motcle:>, defaut=''} )] [(#SAISIE{oui_non,site, label=<:multilang:cfg_lbl_site:>, defaut=''} )] [(#PLUGIN{agenda}|oui) [(#SAISIE{oui_non,evenement, label=<:multilang:cfg_lbl_evenement:>, defaut=''} )] ] [(#PLUGIN{gis}|oui) [(#SAISIE{oui_non,gis, label=<:multilang:cfg_lbl_gis:>, defaut=''} )] ] [(#SAISIE{oui_non,multilang_public, label=<:multilang:cfg_lbl_espace_public:>, defaut=off} )] [(#SAISIE{oui_non,multilang_crayons, label=<:multilang:cfg_lbl_crayons:>, explication=<:multilang:cfg_explication_crayons:>, defaut=''} )] </ul> </fieldset> </li> </ul> <p class="boutons"> <input type="submit" name="_cfg_ok" class="submit" value="<:bouton_enregistrer:>" /> </p> </div> </form> </div>
/home/checkyd/www/6316b/../7b5d0/./formulaires.tar