spip-3.1
cedric@yterium.com 8 years ago
parent 7db75b0fc5
commit 99534f8c96

@ -7,8 +7,10 @@
* @license GPL
* @package SPIP\SVP\Actions
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
/**
* Action effectuant 1 action dans la liste des actions à réaliser
@ -38,7 +40,7 @@ function action_actionner_dist() {
if ($actionneur->tester_si_svp_desactive()) {
$url = _request('redirect');
} else {
$url = generer_action_auteur('actionner', '', _request('redirect'));
$url = generer_action_auteur('actionner', '', _request('redirect'));
}
// en mode pas à pas, on affiche un bilan entre chaque action
@ -55,18 +57,20 @@ function action_actionner_dist() {
#minipres #actionner ul {margin-left: 0.5em;}
#minipres #actionner li {list-style-type:square; margin-left: 0.5em;}
</style>";
echo minipres( _T('svp:installation_en_cours'), $pres . '<br /><br />' . $btn . $styles);
echo minipres(_T('svp:installation_en_cours'), $pres . '<br /><br />' . $btn . $styles);
die();
}
redirige_par_entete(str_replace('&amp;','&', $url));
redirige_par_entete(str_replace('&amp;', '&', $url));
}
foreach($actionneur->done as $done){
if ($done['todo']=='on'){
foreach ($actionneur->done as $done) {
if ($done['todo'] == 'on') {
if ($voir = session_get('svp_admin_plugin_voir')
AND $voir=='inactif')
session_set('svp_admin_plugin_voir','actif');
AND $voir == 'inactif'
) {
session_set('svp_admin_plugin_voir', 'actif');
}
break;
}
}
@ -74,10 +78,11 @@ function action_actionner_dist() {
include_spip('inc/svp_depoter_local');
svp_actualiser_paquets_locaux();
if (!_request('redirect'))
if (!_request('redirect')) {
$GLOBALS['redirect'] = generer_url_ecrire('admin_plugin');
else
$GLOBALS['redirect'] = str_replace('&amp;','&', _request('redirect'));
} else {
$GLOBALS['redirect'] = str_replace('&amp;', '&', _request('redirect'));
}
}

@ -6,12 +6,12 @@
* @license GPL
* @package SPIP\SVP\Actions
*/
/**
* Action de mise à jour en base de données de la liste des plugins
* d'un ou de tous les dépots
*/
function action_actualiser_depot_dist(){
function action_actualiser_depot_dist() {
// Securisation: aucun argument attendu
$securiser_action = charger_fonction('securiser_action', 'inc');
@ -32,16 +32,18 @@ function action_actualiser_depot_dist(){
if ($arg === 'tout') {
if ($ids_depots = sql_allfetsel('id_depot', 'spip_depots')) {
$ids_depots = array_map('reset', $ids_depots);
foreach ($ids_depots as $_id_depot)
foreach ($ids_depots as $_id_depot) {
svp_actualiser_depot($_id_depot);
}
// On consigne l'action
spip_log("ACTION ACTUALISER TOUS LES DEPOTS (manuel)", 'svp_actions.' . _LOG_INFO);
}
}
else if ($id_depot = intval($arg)) {
svp_actualiser_depot($id_depot);
// On consigne l'action
spip_log("ACTION ACTUALISER DEPOT (manuel) : id_depot = ". $id_depot, 'svp_actions.' . _LOG_INFO);
} else {
if ($id_depot = intval($arg)) {
svp_actualiser_depot($id_depot);
// On consigne l'action
spip_log("ACTION ACTUALISER DEPOT (manuel) : id_depot = " . $id_depot, 'svp_actions.' . _LOG_INFO);
}
}
}

@ -17,14 +17,16 @@
* @license GPL
* @package SPIP\SVP\Actions
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
/**
* Action de mise à jour des descriptions d'un dépot
* Action de mise à jour des descriptions d'un dépot
*
* @return array
* Liste identifiant du dépot, texte d'erreur éventuel
**/
**/
function action_editer_depot_dist() {
$securiser_action = charger_fonction('securiser_action', 'inc');
@ -49,17 +51,22 @@ function action_editer_depot_dist() {
}
// On met a jour le depot avec les saisies
if (sql_updateq('spip_depots',
array('titre'=> _request('titre'),
'descriptif'=> _request('descriptif'),
'type'=> _request('type')),
'id_depot=' . sql_quote($id_depot)));
// Enregistre l'envoi dans la BD
// Dans le cas du depot rien n'est fait actuellement, on garde cette fonction
// par souci de coherence avec les autres editions d'objet et pour usage futur
$err = depots_set($id_depot);
if (!$err)
spip_log("ACTION MODIFIER DEPOT (manuel) : id_depot = ". $id_depot, 'svp_actions.' . _LOG_INFO);
if (sql_updateq('spip_depots',
array(
'titre' => _request('titre'),
'descriptif' => _request('descriptif'),
'type' => _request('type')
),
'id_depot=' . sql_quote($id_depot))) {
;
}
// Enregistre l'envoi dans la BD
// Dans le cas du depot rien n'est fait actuellement, on garde cette fonction
// par souci de coherence avec les autres editions d'objet et pour usage futur
$err = depots_set($id_depot);
if (!$err) {
spip_log("ACTION MODIFIER DEPOT (manuel) : id_depot = " . $id_depot, 'svp_actions.' . _LOG_INFO);
}
}
return array($id_depot, $err);
@ -72,12 +79,12 @@ function action_editer_depot_dist() {
*
* @note
* Cette fonction ne fait rien actuellement !!
*
*
* @param int $id_depot
* Identifiant du dépot
* @return string
* Texte d'une eventuelle erreur
**/
**/
function depots_set($id_depot) {
$err = '';

@ -6,14 +6,14 @@
* @license GPL
* @package SPIP\SVP\Actions
*/
/**
* Action de suppression en base de données d'un dépot et de ses plugins
*
* @uses svp_supprimer_depot()
* @return void
*/
function action_supprimer_depot_dist(){
function action_supprimer_depot_dist() {
// Securisation: aucun argument attendu
$securiser_action = charger_fonction('securiser_action', 'inc');
@ -30,7 +30,7 @@ function action_supprimer_depot_dist(){
if ($id_depot = intval($arg)) {
include_spip('inc/svp_depoter_distant');
svp_supprimer_depot($id_depot);
spip_log("ACTION SUPPRIMER DEPOT (manuel) : id_depot = ". $id_depot, 'svp_actions.' . _LOG_INFO);
spip_log("ACTION SUPPRIMER DEPOT (manuel) : id_depot = " . $id_depot, 'svp_actions.' . _LOG_INFO);
}
}

@ -6,11 +6,11 @@
* @license GPL
* @package SPIP\SVP\Actions
*/
/**
* Téléporter et déballer un composant
*
*
* @param string $methode
* http|git|svn|...
* @param string $source
@ -24,23 +24,26 @@
* String : texte d'une erreur
* true si l'opération est correctement réalisée
*/
function action_teleporter_composant_dist($methode, $source, $dest, $options = array()){
function action_teleporter_composant_dist($methode, $source, $dest, $options = array()) {
# Si definie a '', le chargeur est interdit ; mais on n'aurait de toutes
# facons jamais pu venir ici avec toutes les securisations faites :^)
# sauf si on doit télécharger une lib dans _DIR_LIB
if (!preg_match(','.substr(_DIR_LIB,0,-1).',',$dest) && !_DIR_PLUGINS_AUTO)
if (!preg_match(',' . substr(_DIR_LIB, 0, -1) . ',', $dest) && !_DIR_PLUGINS_AUTO) {
die('Vous ne pouvez pas télécharger, absence de _DIR_PLUGINS_AUTO');
}
// verifier que la methode est connue
if (!$teleporter = charger_fonction($methode,"teleporter",true)){
spip_log("Methode $methode inconnue pour teleporter $source vers $dest","teleport"._LOG_ERREUR);
return _T('svp:erreur_teleporter_methode_inconue',array('methode' => $methode));
if (!$teleporter = charger_fonction($methode, "teleporter", true)) {
spip_log("Methode $methode inconnue pour teleporter $source vers $dest", "teleport" . _LOG_ERREUR);
return _T('svp:erreur_teleporter_methode_inconue', array('methode' => $methode));
}
if (!$dest = teleporter_verifier_destination($d = $dest)){
spip_log("Rerpertoire $d non accessible pour teleporter $source vers $d","teleport"._LOG_ERREUR);
return _T('svp:erreur_teleporter_destination_erreur',array('dir' => $d));
if (!$dest = teleporter_verifier_destination($d = $dest)) {
spip_log("Rerpertoire $d non accessible pour teleporter $source vers $d", "teleport" . _LOG_ERREUR);
return _T('svp:erreur_teleporter_destination_erreur', array('dir' => $d));
#$texte = "<p>"._T('plugin_erreur_droit1',array('dest'=>$dest))."</p>"
# . "<p>"._T('plugin_erreur_droit2').aide('install0')."</p>";
}
@ -48,7 +51,7 @@ function action_teleporter_composant_dist($methode, $source, $dest, $options = a
# destination temporaire des fichiers si besoin
$options['dir_tmp'] = sous_repertoire(_DIR_CACHE, 'chargeur');
return $teleporter($methode,$source,$dest,$options);
return $teleporter($methode, $source, $dest, $options);
}
@ -60,28 +63,31 @@ function action_teleporter_composant_dist($methode, $source, $dest, $options = a
* false en cas d'échec
* Chemin du répertoire sinon
*/
function teleporter_verifier_destination($dest){
$dest = rtrim($dest,"/");
function teleporter_verifier_destination($dest) {
$dest = rtrim($dest, "/");
$final = basename($dest);
$base = dirname($dest);
$create = array();
// on cree tout le chemin jusqu'a dest non inclus
while (!is_dir($base)){
while (!is_dir($base)) {
$create[] = basename($base);
$base = dirname($base);
}
while (count($create)){
if (!is_writable($base))
while (count($create)) {
if (!is_writable($base)) {
return false;
$base = sous_repertoire($base,array_pop($create));
if (!$base)
}
$base = sous_repertoire($base, array_pop($create));
if (!$base) {
return false;
}
}
if (!is_writable($base))
if (!is_writable($base)) {
return false;
}
return $base."/$final";
return $base . "/$final";
}
/**
@ -90,22 +96,24 @@ function teleporter_verifier_destination($dest){
* Si le répertoire donné existe, le déplace dans un répertoire de backup.
* Si ce backup existe déjà, il est supprimé auparavant.
* Retourne le nouveau chemin du répertoire.
*
*
* @param string $dest
* Chemin du répertoire à déplacer
* @return string
* Nouveau chemin du répertoire s'il existait,
* Chaîne vide sinon
**/
function teleporter_nettoyer_vieille_version($dest){
**/
function teleporter_nettoyer_vieille_version($dest) {
$old = "";
if (is_dir($dest)){
if (is_dir($dest)) {
$dir = dirname($dest);
$base = basename($dest);
$old="$dir/.$base.bck";
if (is_dir($old))
$old = "$dir/.$base.bck";
if (is_dir($old)) {
supprimer_repertoire($old);
rename($dest,$old);
}
rename($dest, $old);
}
return $old;
}

@ -1,11 +1,11 @@
<?php
/**
* Déclarations relatives à la base de données
*
*
* @plugin SVP pour SPIP
* @license GPL
* @package SPIP\SVP\Pipelines
**/
**/
/**
* Déclarer les objets éditoriaux de SVP
@ -22,180 +22,213 @@
*/
function svp_declarer_tables_objets_sql($tables) {
include_spip('inc/config');
// Table des depots
$tables['spip_depots'] = array(
// Base de donnees
'table_objet' => 'depots',
'type' => 'depot',
'field' => array(
"id_depot" => "bigint(21) NOT NULL",
"titre" => "text DEFAULT '' NOT NULL",
"descriptif" => "text DEFAULT '' NOT NULL",
"type" => "varchar(10) DEFAULT '' NOT NULL",
"url_serveur" => "varchar(255) DEFAULT '' NOT NULL", // url du serveur svn ou git
"url_brouteur" => "varchar(255) DEFAULT '' NOT NULL", // url de l'interface de gestion du repository (trac, redmine...)
"url_archives" => "varchar(255) DEFAULT '' NOT NULL", // url de base des zips
"url_commits" => "varchar(255) DEFAULT '' NOT NULL", // url du flux rss des commits du serveur svn ou git
"xml_paquets" => "varchar(255) DEFAULT '' NOT NULL", // chemin complet du fichier xml du depot
"sha_paquets" => "varchar(40) DEFAULT '' NOT NULL",
"nbr_paquets" => "integer DEFAULT 0 NOT NULL",
"nbr_plugins" => "integer DEFAULT 0 NOT NULL",
"nbr_autres" => "integer DEFAULT 0 NOT NULL", // autres contributions, non plugin
"maj" => "timestamp"),
'key' => array(
"PRIMARY KEY" => "id_depot"),
'tables_jointures' => array('id_plugin' => 'depots_plugins'),
'principale' => 'oui',
'table_objet' => 'depots',
'type' => 'depot',
'field' => array(
"id_depot" => "bigint(21) NOT NULL",
"titre" => "text DEFAULT '' NOT NULL",
"descriptif" => "text DEFAULT '' NOT NULL",
"type" => "varchar(10) DEFAULT '' NOT NULL",
"url_serveur" => "varchar(255) DEFAULT '' NOT NULL",
// url du serveur svn ou git
"url_brouteur" => "varchar(255) DEFAULT '' NOT NULL",
// url de l'interface de gestion du repository (trac, redmine...)
"url_archives" => "varchar(255) DEFAULT '' NOT NULL",
// url de base des zips
"url_commits" => "varchar(255) DEFAULT '' NOT NULL",
// url du flux rss des commits du serveur svn ou git
"xml_paquets" => "varchar(255) DEFAULT '' NOT NULL",
// chemin complet du fichier xml du depot
"sha_paquets" => "varchar(40) DEFAULT '' NOT NULL",
"nbr_paquets" => "integer DEFAULT 0 NOT NULL",
"nbr_plugins" => "integer DEFAULT 0 NOT NULL",
"nbr_autres" => "integer DEFAULT 0 NOT NULL",
// autres contributions, non plugin
"maj" => "timestamp"
),
'key' => array(
"PRIMARY KEY" => "id_depot"
),
'tables_jointures' => array('id_plugin' => 'depots_plugins'),
'principale' => 'oui',
// Titre, date et gestion du statut
'titre' => "titre, '' AS lang",
'titre' => "titre, '' AS lang",
// Edition, affichage et recherche
'page' => 'depot',
'url_voir' => 'depot',
'url_edit' => 'depot_edit',
'editable' => lire_config('svp/depot_editable', 'non'),
'champs_editables' => array('titre', 'descriptif'),
'icone_objet' => 'depot',
'page' => 'depot',
'url_voir' => 'depot',
'url_edit' => 'depot_edit',
'editable' => lire_config('svp/depot_editable', 'non'),
'champs_editables' => array('titre', 'descriptif'),
'icone_objet' => 'depot',
// Textes standard
'texte_retour' => 'icone_retour',
'texte_modifier' => 'svp:bouton_modifier_depot',
'texte_creer' => '',
'texte_creer_associer' => '',
'texte_retour' => 'icone_retour',
'texte_modifier' => 'svp:bouton_modifier_depot',
'texte_creer' => '',
'texte_creer_associer' => '',
'texte_signale_edition' => '',
'texte_objet' => 'svp:titre_depot',
'texte_objets' => 'svp:titre_depots',
'info_aucun_objet' => 'svp:info_aucun_depot',
'info_1_objet' => 'svp:info_1_depot',
'info_nb_objets' => 'svp:info_nb_depots',
'texte_logo_objet' => 'svp:titre_logo_depot',
'texte_objet' => 'svp:titre_depot',
'texte_objets' => 'svp:titre_depots',
'info_aucun_objet' => 'svp:info_aucun_depot',
'info_1_objet' => 'svp:info_1_depot',
'info_nb_objets' => 'svp:info_nb_depots',
'texte_logo_objet' => 'svp:titre_logo_depot',
);
// Table des plugins
$tables['spip_plugins'] = array(
// Base de donnees
'table_objet' => 'plugins',
'type' => 'plugin',
'field' => array(
"id_plugin" => "bigint(21) NOT NULL",
"prefixe" => "varchar(30) DEFAULT '' NOT NULL",
"nom" => "text DEFAULT '' NOT NULL",
"slogan" => "text DEFAULT '' NOT NULL",
"categorie" => "varchar(100) DEFAULT '' NOT NULL",
"tags" => "text DEFAULT '' NOT NULL",
"vmax" => "varchar(24) DEFAULT '' NOT NULL", // version la plus elevee des paquets du plugin
"date_crea" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // la plus ancienne des paquets du plugin
"date_modif" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // la plus recente des paquets du plugin
"compatibilite_spip" => "varchar(24) DEFAULT '' NOT NULL", // union des intervalles des paquets du plugin
"branches_spip" => "varchar(255) DEFAULT '' NOT NULL"), // union des branches spip supportees par les paquets du plugin
'key' => array(
"PRIMARY KEY" => "id_plugin",
"KEY prefixe" => "prefixe"),
'tables_jointures' => array('id_depot' => 'depots_plugins'),
'principale' => 'oui',
'table_objet' => 'plugins',
'type' => 'plugin',
'field' => array(
"id_plugin" => "bigint(21) NOT NULL",
"prefixe" => "varchar(30) DEFAULT '' NOT NULL",
"nom" => "text DEFAULT '' NOT NULL",
"slogan" => "text DEFAULT '' NOT NULL",
"categorie" => "varchar(100) DEFAULT '' NOT NULL",
"tags" => "text DEFAULT '' NOT NULL",
"vmax" => "varchar(24) DEFAULT '' NOT NULL", // version la plus elevee des paquets du plugin
"date_crea" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // la plus ancienne des paquets du plugin
"date_modif" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // la plus recente des paquets du plugin
"compatibilite_spip" => "varchar(24) DEFAULT '' NOT NULL", // union des intervalles des paquets du plugin
"branches_spip" => "varchar(255) DEFAULT '' NOT NULL"
), // union des branches spip supportees par les paquets du plugin
'key' => array(
"PRIMARY KEY" => "id_plugin",
"KEY prefixe" => "prefixe"
),
'tables_jointures' => array('id_depot' => 'depots_plugins'),
'principale' => 'oui',
// Titre, date et gestion du statut
'titre' => "prefixe AS titre, '' AS lang",
'titre' => "prefixe AS titre, '' AS lang",
// Edition, affichage et recherche
'page' => 'plugin',
'url_voir' => 'plugin',
'editable' => 'non',
'champs_editables' => array(),
'rechercher_champs' => array('prefixe' => 8, 'nom' => 8, 'slogan' => 4),
'rechercher_jointures' => array('paquet' => array('auteur' => 8, 'description' => 2)),
'icone_objet' => 'plugin',
'page' => 'plugin',
'url_voir' => 'plugin',
'editable' => 'non',
'champs_editables' => array(),
'rechercher_champs' => array('prefixe' => 8, 'nom' => 8, 'slogan' => 4),
'rechercher_jointures' => array('paquet' => array('auteur' => 8, 'description' => 2)),
'icone_objet' => 'plugin',
// Textes standard
'texte_retour' => 'icone_retour',
'texte_modifier' => '',
'texte_creer' => '',
'texte_creer_associer' => '',
'texte_retour' => 'icone_retour',
'texte_modifier' => '',
'texte_creer' => '',
'texte_creer_associer' => '',
'texte_signale_edition' => '',
'texte_objet' => 'svp:titre_plugin',
'texte_objets' => 'svp:titre_plugins',
'info_aucun_objet' => 'svp:info_aucun_plugin',
'info_1_objet' => 'svp:info_1_plugin',
'info_nb_objets' => 'svp:info_nb_plugins',
'texte_logo_objet' => 'svp:titre_logo_plugin',
'texte_objet' => 'svp:titre_plugin',
'texte_objets' => 'svp:titre_plugins',
'info_aucun_objet' => 'svp:info_aucun_plugin',
'info_1_objet' => 'svp:info_1_plugin',
'info_nb_objets' => 'svp:info_nb_plugins',
'texte_logo_objet' => 'svp:titre_logo_plugin',
);
$tables['spip_paquets'] = array(
// Base de donnees
'table_objet' => 'paquets',
'type' => 'paquet',
'field' => array(
"id_paquet" => "bigint(21) NOT NULL",
"id_plugin" => "bigint(21) NOT NULL",
"prefixe" => "varchar(30) DEFAULT '' NOT NULL",
"logo" => "varchar(255) DEFAULT '' NOT NULL", // chemin du logo depuis la racine du plugin
"version" => "varchar(24) DEFAULT '' NOT NULL",
"version_base" => "varchar(24) DEFAULT '' NOT NULL",
"compatibilite_spip" => "varchar(24) DEFAULT '' NOT NULL",
"branches_spip" => "varchar(255) DEFAULT '' NOT NULL", // branches spip supportees (cf meta)
"description" => "text DEFAULT '' NOT NULL",
"auteur" => "text DEFAULT '' NOT NULL",
"credit" => "text DEFAULT '' NOT NULL",
"licence" => "text DEFAULT '' NOT NULL",
"copyright" => "text DEFAULT '' NOT NULL",
"lien_doc" => "text DEFAULT '' NOT NULL", // lien vers la documentation
"lien_demo" => "text DEFAULT '' NOT NULL", // lien vers le site de demo
"lien_dev" => "text DEFAULT '' NOT NULL", // lien vers le site de dev
"etat" => "varchar(16) DEFAULT '' NOT NULL",
"etatnum" => "int(1) DEFAULT 0 NOT NULL", // 0 aucune indication - 1 exp - 2 dev - 3 test - 4 stable
"dependances" => "text DEFAULT '' NOT NULL",
"procure" => "text DEFAULT '' NOT NULL",
"date_crea" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"date_modif" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"id_depot" => "bigint(21) DEFAULT 0 NOT NULL", // 0 pour un paquet local
"nom_archive" => "VARCHAR(255) DEFAULT '' NOT NULL", // nom du zip du paquet, depuis l'adresse de la zone
"nbo_archive" => "integer DEFAULT 0 NOT NULL", // taille de l'archive en octets
"maj_archive" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // date de mise a jour de l'archive
"src_archive" => "VARCHAR(255) DEFAULT '' NOT NULL", // source de l'archive sur le depot
"traductions" => "text DEFAULT '' NOT NULL", // tableau serialise par module des langues traduites et de leurs traducteurs
"actif" => "varchar(3) DEFAULT 'non' NOT NULL", // est actif ? oui / non
"installe" => "varchar(3) DEFAULT 'non' NOT NULL", // est desinstallable ? oui / non
"recent" => "int(2) DEFAULT 0 NOT NULL", // a ete utilise recemment ? > 0 : oui
"maj_version" => "VARCHAR(255) DEFAULT '' NOT NULL", // version superieure existante (mise a jour possible)
"superieur" => "varchar(3) DEFAULT 'non' NOT NULL", // superieur : version plus recente disponible (distant) d'un plugin (actif?) existant
"obsolete" => "varchar(3) DEFAULT 'non' NOT NULL", // obsolete : version plus ancienne (locale) disponible d'un plugin local existant
"attente" => "varchar(3) DEFAULT 'non' NOT NULL", // attente : plugin semi actif (il etait actif, mais il lui manque maintenant une dependance : il reste coche actif jusqu'a resolution ou desactivation manuelle)
"constante" => "VARCHAR(30) DEFAULT '' NOT NULL", // nom de la constante _DIR_(PLUGINS|EXTENSIONS|PLUGINS_SUPP)
"signature" => "VARCHAR(32) DEFAULT '' NOT NULL"), // hash MD5 d'un paquet
'key' => array(
"PRIMARY KEY" => "id_paquet",
"KEY id_plugin" => "id_plugin"),
'join' => array(
"id_paquet" => "id_paquet",
"id_plugin" => "id_plugin"),
'principale' => 'oui',
'table_objet' => 'paquets',
'type' => 'paquet',
'field' => array(
"id_paquet" => "bigint(21) NOT NULL",
"id_plugin" => "bigint(21) NOT NULL",
"prefixe" => "varchar(30) DEFAULT '' NOT NULL",
"logo" => "varchar(255) DEFAULT '' NOT NULL",
// chemin du logo depuis la racine du plugin
"version" => "varchar(24) DEFAULT '' NOT NULL",
"version_base" => "varchar(24) DEFAULT '' NOT NULL",
"compatibilite_spip" => "varchar(24) DEFAULT '' NOT NULL",
"branches_spip" => "varchar(255) DEFAULT '' NOT NULL",
// branches spip supportees (cf meta)
"description" => "text DEFAULT '' NOT NULL",
"auteur" => "text DEFAULT '' NOT NULL",
"credit" => "text DEFAULT '' NOT NULL",
"licence" => "text DEFAULT '' NOT NULL",
"copyright" => "text DEFAULT '' NOT NULL",
"lien_doc" => "text DEFAULT '' NOT NULL",
// lien vers la documentation
"lien_demo" => "text DEFAULT '' NOT NULL",
// lien vers le site de demo
"lien_dev" => "text DEFAULT '' NOT NULL",
// lien vers le site de dev
"etat" => "varchar(16) DEFAULT '' NOT NULL",
"etatnum" => "int(1) DEFAULT 0 NOT NULL",
// 0 aucune indication - 1 exp - 2 dev - 3 test - 4 stable
"dependances" => "text DEFAULT '' NOT NULL",
"procure" => "text DEFAULT '' NOT NULL",
"date_crea" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"date_modif" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"id_depot" => "bigint(21) DEFAULT 0 NOT NULL",
// 0 pour un paquet local
"nom_archive" => "VARCHAR(255) DEFAULT '' NOT NULL",
// nom du zip du paquet, depuis l'adresse de la zone
"nbo_archive" => "integer DEFAULT 0 NOT NULL",
// taille de l'archive en octets
"maj_archive" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
// date de mise a jour de l'archive
"src_archive" => "VARCHAR(255) DEFAULT '' NOT NULL",
// source de l'archive sur le depot
"traductions" => "text DEFAULT '' NOT NULL",
// tableau serialise par module des langues traduites et de leurs traducteurs
"actif" => "varchar(3) DEFAULT 'non' NOT NULL",
// est actif ? oui / non
"installe" => "varchar(3) DEFAULT 'non' NOT NULL",
// est desinstallable ? oui / non
"recent" => "int(2) DEFAULT 0 NOT NULL",
// a ete utilise recemment ? > 0 : oui
"maj_version" => "VARCHAR(255) DEFAULT '' NOT NULL",
// version superieure existante (mise a jour possible)
"superieur" => "varchar(3) DEFAULT 'non' NOT NULL",
// superieur : version plus recente disponible (distant) d'un plugin (actif?) existant
"obsolete" => "varchar(3) DEFAULT 'non' NOT NULL",
// obsolete : version plus ancienne (locale) disponible d'un plugin local existant
"attente" => "varchar(3) DEFAULT 'non' NOT NULL",
// attente : plugin semi actif (il etait actif, mais il lui manque maintenant une dependance : il reste coche actif jusqu'a resolution ou desactivation manuelle)
"constante" => "VARCHAR(30) DEFAULT '' NOT NULL",
// nom de la constante _DIR_(PLUGINS|EXTENSIONS|PLUGINS_SUPP)
"signature" => "VARCHAR(32) DEFAULT '' NOT NULL"
), // hash MD5 d'un paquet
'key' => array(
"PRIMARY KEY" => "id_paquet",
"KEY id_plugin" => "id_plugin"
),
'join' => array(
"id_paquet" => "id_paquet",
"id_plugin" => "id_plugin"
),
'principale' => 'oui',
// Titre, date et gestion du statut
'titre' => "nom_archive AS titre, '' AS lang",
'titre' => "nom_archive AS titre, '' AS lang",
// Edition, affichage et recherche
'page' => 'paquet',
'url_voir' => '',
'editable' => 'non',
'champs_editables' => array(),
'rechercher_champs' => array(),
'rechercher_jointures' => array(),
'icone_objet' => 'paquet',
'page' => 'paquet',
'url_voir' => '',
'editable' => 'non',
'champs_editables' => array(),
'rechercher_champs' => array(),
'rechercher_jointures' => array(),
'icone_objet' => 'paquet',
// Textes standard
'texte_retour' => '',
'texte_modifier' => '',
'texte_creer' => '',
'texte_creer_associer' => '',
'texte_retour' => '',
'texte_modifier' => '',
'texte_creer' => '',
'texte_creer_associer' => '',
'texte_signale_edition' => '',
'texte_objet' => 'svp:titre_paquet',
'texte_objets' => 'svp:titre_paquets',
'info_aucun_objet' => 'svp:info_aucun_paquet',
'info_1_objet' => 'svp:info_1_paquet',
'info_nb_objets' => 'svp:info_nb_paquets',
'texte_logo_objet' => '',
'texte_objet' => 'svp:titre_paquet',
'texte_objets' => 'svp:titre_paquets',
'info_aucun_objet' => 'svp:info_aucun_paquet',
'info_1_objet' => 'svp:info_1_paquet',
'info_nb_objets' => 'svp:info_nb_paquets',
'texte_logo_objet' => '',
);
return $tables;
@ -216,15 +249,15 @@ function svp_declarer_tables_objets_sql($tables) {
function svp_declarer_tables_auxiliaires($tables_auxiliaires) {
// Tables de liens entre plugins et depots : spip_depots_plugins
$spip_depots_plugins = array(
"id_depot" => "bigint(21) NOT NULL",
"id_plugin" => "bigint(21) NOT NULL"
"id_depot" => "bigint(21) NOT NULL",
"id_plugin" => "bigint(21) NOT NULL"
);
$spip_depots_plugins_key = array(
"PRIMARY KEY" => "id_depot, id_plugin"
"PRIMARY KEY" => "id_depot, id_plugin"
);
$tables_auxiliaires['spip_depots_plugins'] =
$tables_auxiliaires['spip_depots_plugins'] =
array('field' => &$spip_depots_plugins, 'key' => &$spip_depots_plugins_key);
return $tables_auxiliaires;
@ -241,7 +274,7 @@ function svp_declarer_tables_auxiliaires($tables_auxiliaires) {
*/
function svp_declarer_tables_interfaces($interface) {
// Les tables : permet d'appeler une boucle avec le *type* de la table uniquement
$interface['table_des_tables']['depots'] = 'depots';
$interface['table_des_tables']['depots'] = 'depots';
$interface['table_des_tables']['plugins'] = 'plugins';
$interface['table_des_tables']['paquets'] = 'paquets';
$interface['table_des_tables']['depots_plugins'] = 'depots_plugins';

@ -21,7 +21,9 @@
* @license GPL
* @package SPIP\SVP\Exec
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/presentation');
@ -33,7 +35,7 @@ include_spip('inc/presentation');
* @uses plugin_installes_meta()
* @uses plugin_donne_erreurs()
* @uses svp_vider_tables()
*
*
* @pipeline_appel affiche_gauche
* @pipeline_appel affiche_droite
*/
@ -48,10 +50,10 @@ function exec_admin_plugin_dist() {
// 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
include_spip('inc/plugin');
include_spip('inc/plugin');
$new = actualise_plugins_actifs();
if ($new AND _request('actualise')<2) {
$url = parametre_url(self(),'actualise',_request('actualise')+1,'&');
if ($new AND _request('actualise') < 2) {
$url = parametre_url(self(), 'actualise', _request('actualise')+1, '&');
include_spip('inc/headers');
echo redirige_formulaire($url);
exit;
@ -73,18 +75,18 @@ function exec_admin_plugin_dist() {
// car dans le html d'un squelette, encapsule dans un ob_start()/ob_flush(),
// la redirection en cas de timeout sur une installation ne se fait pas.
/*
// on installe les plugins maintenant,
// cela permet aux scripts d'install de faire des affichages (moches...)
plugin_installes_meta();
// les squelettes ne peuvent pas s'appeler 'admin_plugin'
// sinon Z les charge en priorite par rapport a ce fichier exec en PHP
set_request('fond', 'svp_admin_plugin');
// on lance l'affichage standard Z
include_spip('exec/fond');
*/
/*
// on installe les plugins maintenant,
// cela permet aux scripts d'install de faire des affichages (moches...)
plugin_installes_meta();
// les squelettes ne peuvent pas s'appeler 'admin_plugin'
// sinon Z les charge en priorite par rapport a ce fichier exec en PHP
set_request('fond', 'svp_admin_plugin');
// on lance l'affichage standard Z
include_spip('exec/fond');
*/
// liste des erreurs mises en forme
@ -98,8 +100,8 @@ function exec_admin_plugin_dist() {
echo pipeline('affiche_gauche',
array(
'args'=>array('exec'=>'admin_plugin'),
'data'=> recuperer_fond('prive/squelettes/navigation/svp_admin_plugin')
'args' => array('exec' => 'admin_plugin'),
'data' => recuperer_fond('prive/squelettes/navigation/svp_admin_plugin')
)
);
@ -107,50 +109,53 @@ function exec_admin_plugin_dist() {
// alerte si mode de compatibilité forcée
$mode_compat = defined('_DEV_PLUGINS') ?
'<span class="notice">'. _T('svp:alerte_compatibilite') .'</span>' : '';
'<span class="notice">' . _T('svp:alerte_compatibilite') . '</span>' : '';
echo gros_titre(_T('icone_admin_plugin') . $mode_compat, '', false);
// message d'erreur au retour d'une operation
if ($erreur_activation){
if ($erreur_activation) {
include_spip('inc/filtres_boites');
echo "<div class='svp_retour'>" . boite_ouvrir(_T('svp:actions_en_erreur'), 'error') . $erreur_activation . boite_fermer() . "</div>";
echo "<div class='svp_retour'>" . boite_ouvrir(_T('svp:actions_en_erreur'),
'error') . $erreur_activation . boite_fermer() . "</div>";
}
// afficher les actions realisees s'il y en a eu
// (activation/desactivation/telechargement...)
echo svp_presenter_actions_realisees();
// on installe les plugins maintenant,
// cela permet aux scripts d'install de faire des affichages (moches...)
plugin_installes_meta();
$args = $_REQUEST;
// quand on demande un 'voir', on le memorise en session utilisateur
if (isset($args['voir'])){
session_set('svp_admin_plugin_voir',$args['voir']);
if (isset($args['voir'])) {
session_set('svp_admin_plugin_voir', $args['voir']);
}
if (!isset($args['voir'])
AND $voir = session_get('svp_admin_plugin_voir')
AND in_array($voir,array('tous','actif','inactif'))){
AND $voir = session_get('svp_admin_plugin_voir')
AND in_array($voir, array('tous', 'actif', 'inactif'))
) {
$args['voir'] = $voir;
}
if (!isset($args['voir'])){
if (!isset($args['voir'])) {
/*$args['voir'] = 'tous';
$count = count(liste_plugin_files());
if ($count>256) */
$args['voir'] = 'actif';
$args['voir'] = 'actif';
}
if (isset($args['verrouille'])){
session_set('svp_admin_plugin_verrouille',$args['verrouille']);
if (isset($args['verrouille'])) {
session_set('svp_admin_plugin_verrouille', $args['verrouille']);
}
if (!isset($args['verrouille'])
AND $verrouille = session_get('svp_admin_plugin_verrouille')
AND in_array($verrouille,array('tous','oui','non'))){
AND $verrouille = session_get('svp_admin_plugin_verrouille')
AND in_array($verrouille, array('tous', 'oui', 'non'))
) {
$args['verrouille'] = $verrouille;
}
if (!isset($args['verrouille'])){
if (!isset($args['verrouille'])) {
$args['verrouille'] = 'non'; //'tous';
}
@ -158,8 +163,8 @@ function exec_admin_plugin_dist() {
echo pipeline('affiche_milieu',
array(
'args'=>array('exec'=>'admin_plugin'),
'data'=>''
'args' => array('exec' => 'admin_plugin'),
'data' => ''
)
);
@ -178,11 +183,11 @@ function exec_admin_plugin_dist() {
* dans l'URL (ce lien est justement disponible si l'auteur des actions
* tombe sur cette page alors qu'il reste des actions à faire, ce qui
* signale en général un problème)
*
*
* @return string
* Code HTML présentant les actions réalisées
* Vide si rien ne s'est passé !
**/
**/
function svp_presenter_actions_realisees() {
// presenter les traitements realises... si tel est le cas...
include_spip('inc/svp_actionner');

@ -1,14 +1,16 @@
<?php
/**
* Gestion du formulaire de gestion des plugins
* Gestion du formulaire de gestion des plugins
*
* @plugin SVP pour SPIP
* @license GPL
* @package SPIP\SVP\Formulaires
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
/**
* Chargement du formulaire de gestion des plugins
@ -28,8 +30,8 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
* 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 = ''){
**/
function formulaires_admin_plugin_charger_dist($voir = 'actif', $verrouille = 'non', $id_paquet = '', $redirect = '') {
$valeurs = array();
// actualiser la liste des paquets locaux systematiquement
@ -39,16 +41,20 @@ function formulaires_admin_plugin_charger_dist($voir = 'actif', $verrouille = 'n
svp_actualiser_paquets_locaux(false, $valeurs['_erreurs_xml']);
$valeurs['actif'] = 'oui';
if ($voir == 'inactif')
if ($voir == 'inactif') {
$valeurs['actif'] = 'non';
if ($voir == 'tous')
}
if ($voir == 'tous') {
$valeurs['actif'] = '';
}
$valeurs['constante'] = array('_DIR_PLUGINS','_DIR_PLUGINS_SUPPL');
if ($verrouille == 'oui')
$valeurs['constante'] = array('_DIR_PLUGINS', '_DIR_PLUGINS_SUPPL');
if ($verrouille == 'oui') {
$valeurs['constante'] = array('_DIR_PLUGINS_DIST');
if ($verrouille == 'tous')
}
if ($verrouille == 'tous') {
$valeurs['constante'] = array();
}
$valeurs['verrouille'] = $verrouille;
$valeurs['id_paquet'] = $id_paquet;
@ -75,9 +81,9 @@ function formulaires_admin_plugin_charger_dist($voir = 'actif', $verrouille = 'n
* 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
@ -92,8 +98,8 @@ function formulaires_admin_plugin_charger_dist($voir = 'actif', $verrouille = 'n
* 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 = ''){
**/
function formulaires_admin_plugin_verifier_dist($voir = 'actif', $verrouille = 'non', $id_paquet = '', $redirect = '') {
$erreurs = array();
@ -107,7 +113,7 @@ function formulaires_admin_plugin_verifier_dist($voir = 'actif', $verrouille = '
// ...
} else {
$a_actionner = array();
// actions globales...
if ($action_globale = _request('action_globale') AND _request('appliquer')) {
$ids_paquet = _request('ids_paquet');
@ -118,7 +124,7 @@ function formulaires_admin_plugin_verifier_dist($voir = 'actif', $verrouille = '
$a_actionner[$i] = $action_globale;
}
}
// action unitaire
// action unitaire
} else {
$actions = _request('actions');
// $actions[type][id] = Texte
@ -130,10 +136,10 @@ function formulaires_admin_plugin_verifier_dist($voir = 'actif', $verrouille = '
}
}
// lancer les verifications
if (!$a_actionner)
if (!$a_actionner) {
$erreurs['message_erreur'] = _T('svp:message_erreur_aucun_plugin_selectionne');
else {
} else {
// On fait appel au decideur pour determiner la liste exacte des commandes apres
// verification des dependances
include_spip('inc/svp_decider');
@ -141,20 +147,21 @@ function formulaires_admin_plugin_verifier_dist($voir = 'actif', $verrouille = '
$todo = _request('_todo') ? unserialize(_request('_todo')) : array();
$actions = _request('_decideur_actions') ? unserialize(_request('_decideur_actions')) : array();
// si c'est une action simple sans rien a faire de plus que demande, on y go direct
if (in_array('stop',$todo)){
if (in_array('stop', $todo)) {
$notices['decideur_warning'] = _T('svp:confirmer_desinstaller');
set_request('_notices', $notices);
}
elseif (!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 !
} elseif (!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']))
if (count($erreurs) AND !isset($erreurs['message_erreur'])) {
$erreurs['message_erreur'] = '';
}
return $erreurs;
}
@ -163,9 +170,9 @@ function formulaires_admin_plugin_verifier_dist($voir = 'actif', $verrouille = '
*
* 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
@ -180,9 +187,9 @@ function formulaires_admin_plugin_verifier_dist($voir = 'actif', $verrouille = '
* 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 = ''){
**/
function formulaires_admin_plugin_traiter_dist($voir = 'actif', $verrouille = 'non', $id_paquet = '', $redirect = '') {
$retour = array();
if (_request('valider_actions')) {
@ -192,10 +199,11 @@ function formulaires_admin_plugin_traiter_dist($voir = 'actif', $verrouille = 'n
// lors de l'appel de action/actionner
$actions = unserialize(_request('_todo'));
include_spip('inc/svp_actionner');
svp_actionner_traiter_actions_demandees($actions, $retour,$redirect);
svp_actionner_traiter_actions_demandees($actions, $retour, $redirect);
}
$retour['editable'] = true;
return $retour;
}

@ -7,16 +7,18 @@
* @license GPL
* @package SPIP\SVP\Formulaires
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
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(){
**/
function formulaires_ajouter_depot_charger_dist() {
// On ne renvoie pas les valeurs saisies mais on fait un raz systematique
return array();
}
@ -26,28 +28,27 @@ function formulaires_ajouter_depot_charger_dist(){
*
* 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(){
**/
function formulaires_ajouter_depot_verifier_dist() {
$erreurs = array();
$xml = trim(_request('xml_paquets'));
if (!$xml) {
// L'url est obligatoire
$erreurs['xml_paquets'] = _T('svp:message_nok_champ_obligatoire');
}
elseif (!svp_verifier_adresse_depot($xml)) {
} elseif (!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', array('url' => $xml));
}
elseif (sql_countsel('spip_depots','xml_paquets='.sql_quote($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', array('url' => $xml));
}
return $erreurs;
}
@ -57,12 +58,12 @@ function formulaires_ajouter_depot_verifier_dist(){
* 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(){
**/
function formulaires_ajouter_depot_traiter_dist() {
include_spip('inc/svp_depoter_distant');
$retour = array();
@ -75,11 +76,11 @@ function formulaires_ajouter_depot_traiter_dist(){
$ok = svp_ajouter_depot($xml, $erreur);
// Determination des messages de retour
if (!$ok)
if (!$ok) {
$retour['message_erreur'] = $erreur;
else {
} 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);
spip_log("ACTION AJOUTER DEPOT (manuel) : url = " . $xml, 'svp_actions.' . _LOG_INFO);
}
$retour['editable'] = true;
@ -92,13 +93,13 @@ function formulaires_ajouter_depot_traiter_dist(){
*
* 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){
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

@ -8,16 +8,18 @@
* @license GPL
* @package SPIP\SVP\Formulaires
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
/**
* Chargement du formulaire de recherche et téléchargement de plugins
*
* @return array
* Environnement du formulaire
**/
function formulaires_charger_plugin_charger_dist(){
**/
function formulaires_charger_plugin_charger_dist() {
return array(
'phrase' => _request('phrase'),
'categorie' => _request('categorie'),
@ -44,12 +46,12 @@ function formulaires_charger_plugin_charger_dist(){
* 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(){
**/
function formulaires_charger_plugin_verifier_dist() {
$erreurs = array();
$a_installer = array();
@ -58,10 +60,10 @@ function formulaires_charger_plugin_verifier_dist(){
// 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());
@ -72,28 +74,30 @@ function formulaires_charger_plugin_verifier_dist(){
// 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)
foreach ($id_paquets as $_id_paquet) {
$a_installer[$_id_paquet] = 'geton';
}
}
}
else {
} 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))
if ($install = _request('installer_paquet')) {
if ($id_paquet = key($install)) {
$a_installer[$id_paquet] = 'geton';
}
}
}
if (!$a_installer)
if (!$a_installer) {
$erreurs['message_erreur'] = _T('svp:message_nok_aucun_plugin_selectionne');
else {
} 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;
}
@ -102,18 +106,17 @@ function formulaires_charger_plugin_verifier_dist(){
*
* 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(){
**/
function formulaires_charger_plugin_traiter_dist() {
$retour = array();
if (_request('rechercher') OR _request('annuler_actions')) {
}
elseif (_request('valider_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

@ -7,19 +7,21 @@
* @license GPL
* @package SPIP\SVP\Formulaires
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
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' =>''
'archive' => '',
'destination' => ''
);
}
@ -28,11 +30,11 @@ function formulaires_charger_plugin_archive_charger_dist() {
*
* 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(){
**/
function formulaires_charger_plugin_archive_verifier_dist() {
include_spip('inc/plugin'); // _DIR_PLUGINS_AUTO
$erreurs = array();
if (!$archive = _request('archive')) {
@ -42,8 +44,7 @@ function formulaires_charger_plugin_archive_verifier_dist(){
$infos_archive = pathinfo($archive);
if (!isset($infos_archive['extension'])) {
$erreurs['archive'] = _T('svp:message_nok_url_archive');
}
else {
} else {
// calcul du répertoire de destination
if (!$destination = _request('destination')) {
$destination = $infos_archive['filename'];
@ -59,7 +60,8 @@ function formulaires_charger_plugin_archive_verifier_dist(){
$backup = "$base/.$nom.bck";
$erreurs['confirmer'] = _T("svp:confirmer_telecharger_dans", array(
'dir' => joli_repertoire($dir),
'dir_backup' => joli_repertoire($backup)));
'dir_backup' => joli_repertoire($backup)
));
}
}
}
@ -71,11 +73,11 @@ function formulaires_charger_plugin_archive_verifier_dist(){
* 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(){
**/
function formulaires_charger_plugin_archive_traiter_dist() {
$retour = array();
$archive = _request('archive');
@ -88,9 +90,10 @@ function formulaires_charger_plugin_archive_traiter_dist(){
$retour['message_erreur'] = $ok;
} else {
$retour['message_ok'] = _T('svp:message_telechargement_archive_effectue',
array('dir' => joli_repertoire( _DIR_PLUGINS_AUTO . $dest )));
array('dir' => joli_repertoire(_DIR_PLUGINS_AUTO . $dest)));
}
$retour['editable'] = true;
return $retour;
}

@ -7,8 +7,10 @@
* @license GPL
* @package SPIP\SVP\Formulaires
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
include_spip('inc/editer');
@ -21,9 +23,10 @@ include_spip('inc/editer');
* URL de redirection
* @return array
* Environnement du formulaire
**/
function formulaires_editer_depot_charger_dist($id_depot, $redirect){
**/
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;
}
@ -36,9 +39,10 @@ function formulaires_editer_depot_charger_dist($id_depot, $redirect){
* URL de redirection
* @return array
* Tableau des erreurs
**/
function formulaires_editer_depot_verifier_dist($id_depot, $redirect){
**/
function formulaires_editer_depot_verifier_dist($id_depot, $redirect) {
$erreurs = formulaires_editer_objet_verifier('depot', $id_depot, array('titre'));
return $erreurs;
}
@ -51,8 +55,8 @@ function formulaires_editer_depot_verifier_dist($id_depot, $redirect){
* URL de redirection
* @return array
* Retours du traitement
**/
function formulaires_editer_depot_traiter_dist($id_depot, $redirect){
**/
function formulaires_editer_depot_traiter_dist($id_depot, $redirect) {
return formulaires_editer_objet_traiter('depot', $id_depot, 0, 0, $redirect);
}
@ -64,14 +68,14 @@ function formulaires_editer_depot_traiter_dist($id_depot, $redirect){
* @return array
* Tableau de configurations qui seront ajoutés à l'environnement
* du formulaire sous la clé 'config'
**/
function depots_edit_config($row)
{
**/
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;
}

@ -1,28 +1,30 @@
<?php
/**
* Gestion du formulaire de téléchargement de plugin via une URL
* Gestion du formulaire de t<EFBFBD>l<EFBFBD>chargement de plugin via une URL
*
* @plugin SVP pour SPIP
* @license GPL
* @package SPIP\SVP\Formulaires
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
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
* Cr<EFBFBD>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]
* <EFBFBD>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]";
}

@ -8,7 +8,9 @@
* @package SPIP\SVP\Genie
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
/**
* Actualise tous les dépots
@ -21,7 +23,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
* @return int
* Positif : la tâche a été effectuée
*/
function genie_svp_actualiser_depots_dist ($last) {
function genie_svp_actualiser_depots_dist($last) {
include_spip('inc/svp_depoter_distant');
@ -29,7 +31,7 @@ function genie_svp_actualiser_depots_dist ($last) {
if ($resultats = sql_allfetsel('id_depot', 'spip_depots')) {
foreach ($resultats as $depot) {
svp_actualiser_depot($depot['id_depot']);
spip_log("ACTION ACTUALISER DEPOT (automatique) : id_depot = ". $depot['id_depot'], 'svp_actions.' . _LOG_INFO);
spip_log("ACTION ACTUALISER DEPOT (automatique) : id_depot = " . $depot['id_depot'], 'svp_actions.' . _LOG_INFO);
}
}

@ -7,13 +7,16 @@
* @license GPL
* @package SPIP\SVP\Genie
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
if (!defined('_SVP_CRON_ACTUALISATION_DEPOTS')) {
/**
* Mise à jour automatique des depots (CRON)
* true pour autoriser les actualisations automatique
*
* @var bool
*/
define('_SVP_CRON_ACTUALISATION_DEPOTS', true);
@ -22,6 +25,7 @@ if (!defined('_SVP_CRON_ACTUALISATION_DEPOTS')) {
if (!defined('_SVP_PERIODE_ACTUALISATION_DEPOTS')) {
/**
* Période d'actualisation en nombre d'heures (de 1 a 24)
*
* @var int
*/
define('_SVP_PERIODE_ACTUALISATION_DEPOTS', 6);
@ -43,8 +47,9 @@ function svp_taches_generales_cron($taches_generales) {
// Ajout de la tache CRON de mise a jour reguliere de tous les depots de la base
// Par defaut, toutes les 6h
// Conditionnee a la variable de configuration
if (_SVP_CRON_ACTUALISATION_DEPOTS)
if (_SVP_CRON_ACTUALISATION_DEPOTS) {
$taches_generales['svp_actualiser_depots'] = _SVP_PERIODE_ACTUALISATION_DEPOTS*3600;
}
return $taches_generales;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff