refactor: PSR et indentation via phpcbf

pull/29/head
Cerdic 3 months ago
parent 4bef6e5245
commit e68c002640

@ -23,10 +23,10 @@
function fabrique_extraire_les_donnees_table($table, $connect) {
$data = sql_allfetsel('*', $table, '', '', '', '', '', $connect);
if (!$data) {
return array(
'cles' => array(),
'valeurs' => array()
);
return [
'cles' => [],
'valeurs' => []
];
}
// extraire les cles
@ -38,8 +38,8 @@ function fabrique_extraire_les_donnees_table($table, $connect) {
$data[$c] = array_values($d);
}
return array(
return [
'cles' => $cles,
'valeurs' => $data
);
];
}

@ -1,4 +1,5 @@
<?php
/**
* Fichier gérant l'installation et désinstallation du plugin Fabrique
*
@ -9,7 +10,8 @@
* @package SPIP\Fabrique\Installation
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) { return;
}
/**
@ -22,9 +24,9 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
* @return void
**/
function fabrique_upgrade($nom_meta_base_version, $version_cible) {
$maj = array();
$maj = [];
$maj['create'] = array(array('fabrique_ajouter_menu_developpement', $GLOBALS['visiteur_session']['id_auteur']));
$maj['create'] = [['fabrique_ajouter_menu_developpement', $GLOBALS['visiteur_session']['id_auteur']]];
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
@ -61,7 +63,7 @@ function fabrique_ajouter_menu_developpement($id_auteur) {
return false;
}
$prefs['activer_menudev'] = 'oui';
if ($err = objet_modifier('auteur', $id_auteur, array('prefs' => serialize($prefs)))) {
if ($err = objet_modifier('auteur', $id_auteur, ['prefs' => serialize($prefs)])) {
spip_log('Ajout du menu developpement en erreur : ' . $err, 'fabrique');
}
return true;

@ -51,7 +51,7 @@ function fabrique_destination() {
**/
function sous_repertoire_complet($arbo) {
$a = explode('/', $arbo);
if ($a[0] == '.' OR $a[0] == '..') {
if ($a[0] == '.' or $a[0] == '..') {
$base = $a[0] . '/' . $a[1];
array_shift($a);
array_shift($a);
@ -78,12 +78,12 @@ function sous_repertoire_complet($arbo) {
* - False si pas un tableau
* - Chaine concaténée sinon
**/
function fabrique_implode_recursif($tableau, $glue='') {
function fabrique_implode_recursif($tableau, $glue = '') {
if (!is_array($tableau)) {
return false;
}
foreach ($tableau as $c =>$valeur) {
foreach ($tableau as $c => $valeur) {
if (is_array($valeur)) {
$tableau[$c] = fabrique_implode_recursif($valeur, $glue);
}
@ -165,11 +165,13 @@ function cle_de_langue($cle, $desc_objet) {
// on permet d'echapper \objets pour trouver 'objets' au bout du compte
// sans qu'il soit transforme dans le nom reel de l'objet
// cas : 'prive/\objets/infos/objet.html' => 'prive/objets/infos/nom.html'
$cle = str_replace("\o", "\1o\\", $cle);
$cle = str_replace('\o', "\1o\\", $cle);
$cle = str_replace(
array('objets', 'objet'),
array($desc_objet['objet'], $desc_objet['type']), $cle);
return str_replace("\1o\\", "o", $cle);
['objets', 'objet'],
[$desc_objet['objet'], $desc_objet['type']],
$cle
);
return str_replace("\1o\\", 'o', $cle);
}
/**
@ -185,7 +187,7 @@ function cle_de_langue($cle, $desc_objet) {
* Tableau avec les valeurs transformées
**/
function tab_cle_de_langue($tableau, $desc_objet) {
foreach($tableau as $c => $v) {
foreach ($tableau as $c => $v) {
$tableau[$c] = cle_de_langue($v, $desc_objet);
}
return $tableau;
@ -204,9 +206,9 @@ function tab_cle_de_langue($tableau, $desc_objet) {
* @return array
* Couples (clé => texte complété de la traduction si elle existe)
**/
function tab_cle_traduite_ajoute_dans_valeur($tableau, $prefixe_cle="", $sep = "&nbsp;: ") {
foreach($tableau as $c => $v) {
$trad = _T("fabrique:". $prefixe_cle . $c, array(), array('force' => false));
function tab_cle_traduite_ajoute_dans_valeur($tableau, $prefixe_cle = '', $sep = '&nbsp;: ') {
foreach ($tableau as $c => $v) {
$trad = _T('fabrique:' . $prefixe_cle . $c, [], ['force' => false]);
if ($trad) {
$tableau[$c] = $v . $sep . $trad;
} else {
@ -245,9 +247,10 @@ function tab_wrap($tableau, $balise) {
* Couples (clé de langue => Texte)
**/
function fabriquer_tableau_chaines($objet) {
$chaines = array();
if (!is_array($objet)) { return $chaines; }
if (!$table = $objet['table'] OR !isset($objet['chaines']) OR !is_array($objet['chaines'])) {
$chaines = [];
if (!is_array($objet)) { return $chaines;
}
if (!$table = $objet['table'] or !isset($objet['chaines']) or !is_array($objet['chaines'])) {
return $chaines;
}
// les chaines definies pour l'objet
@ -288,30 +291,33 @@ function fabriquer_tableau_chaines($objet) {
* - roles_defaut : la clé du role par défaut
*/
function fabrique_description_roles($objet) {
$desc = array();
$desc = [];
// les rôles définis
if (!options_presentes($objet, array('table_liens', 'roles'))
OR !($roles = trim($objet['roles']))) {
if (
!options_presentes($objet, ['table_liens', 'roles'])
or !($roles = trim($objet['roles']))
) {
return $desc;
}
$desc['roles_colonne'] = 'role';
$desc['roles_titres'] = array(); # cle => cle_langue
$desc['roles_objets'] = array();
$desc['roles_trads'] = array(); # cle_langue => Texte
$desc['roles_titres'] = []; # cle => cle_langue
$desc['roles_objets'] = [];
$desc['roles_trads'] = []; # cle_langue => Texte
$desc['roles_defaut'] = '';
$roles = explode("\n", $roles);
foreach ($roles as $i=>$r) {
foreach ($roles as $i => $r) {
list($cle, $texte) = explode(',', $r, 2);
$cle = trim($cle);
if (!$i) $desc['roles_defaut'] = $cle; # la valeur par défaut est la première indiquée
if (!$i) { $desc['roles_defaut'] = $cle; # la valeur par défaut est la première indiquée
}
$cle_langue = 'role_' . $cle;
$desc['roles_titres'][$cle] = $objet['type'] . ':' . $cle_langue;
$desc['roles_trads'][$cle_langue] = trim($texte);
}
$liens = !empty($objet['vue_liens'])
? array_map('table_objet', $objet['vue_liens'])
: array();
: [];
foreach ($liens as $l) {
$desc['roles_objets'][$l] = array_keys($desc['roles_titres']);
}
@ -355,9 +361,11 @@ function champ_present($objet, $champ) {
if (in_array($champ, $objet['langues'])) {
return ' '; // true
}
if (isset($objet['langues']['lang'])
if (
isset($objet['langues']['lang'])
and ($objet['langues']['lang'])
and ($champ == 'langue_choisie')) {
and ($champ == 'langue_choisie')
) {
return ' '; // true
}
}
@ -374,7 +382,7 @@ function champ_present($objet, $champ) {
}
}
return ""; // false
return ''; // false
}
@ -393,15 +401,16 @@ function champ_present($objet, $champ) {
* - Chaîne vide sinon
**/
function options_presentes($objet, $champs) {
if (!$champs) return false;
if (!is_array($champs)) $champs = array($champs);
if (!$champs) { return false;
}
if (!is_array($champs)) { $champs = [$champs];
}
foreach ($champs as $champ) {
if (!option_presente($objet, $champ)) {
return ""; // false
return ''; // false
}
}
return ' '; // true
}
/**
@ -445,7 +454,7 @@ function option_presente($objet, $champ) {
}
}
return ""; // false
return ''; // false
}
@ -469,7 +478,7 @@ function saisie_presente($objet, $saisie) {
}
}
}
return ""; // false
return ''; // false
}
@ -545,7 +554,7 @@ function champ_saisie_presente($champ, $saisie) {
* - tableau de description des objets sélectionnés (si type non défini)
* - tableau les valeurs du type demandé dans les objets sélectionnés (si type défini)
**/
function objets_champ_present($objets, $champ, $type='') {
function objets_champ_present($objets, $champ, $type = '') {
return _tableau_option_presente('champ_present', $objets, $champ, $type);
}
@ -573,7 +582,7 @@ function objets_champ_present($objets, $champ, $type='') {
* - tableau de description des objets sélectionnés (si type non défini)
* - tableau les valeurs du type demandé dans les objets sélectionnés (si type défini)
**/
function objets_option_presente($objets, $option, $type='') {
function objets_option_presente($objets, $option, $type = '') {
return _tableau_option_presente('option_presente', $objets, $option, $type);
}
@ -598,7 +607,7 @@ function objets_option_presente($objets, $option, $type='') {
* - tableau de description des objets sélectionnés (si type non défini)
* - tableau les valeurs du type demandé dans les objets sélectionnés (si type défini)
**/
function objets_saisie_presente($objets, $saisie, $type='') {
function objets_saisie_presente($objets, $saisie, $type = '') {
return _tableau_option_presente('saisie_presente', $objets, $saisie, $type);
}
@ -625,7 +634,7 @@ function objets_saisie_presente($objets, $saisie, $type='') {
* - tableau de description des objets sélectionnés (si type non défini)
* - tableau les valeurs du type demandé dans les objets sélectionnés (si type défini)
**/
function objets_options_presentes($objets, $options, $type='') {
function objets_options_presentes($objets, $options, $type = '') {
return _tableau_options_presentes('option_presente', $objets, $options, $type);
}
@ -648,7 +657,7 @@ function objets_options_presentes($objets, $options, $type='') {
* - tableau de description des champs sélectionnés (si type non défini)
* - tableau les valeurs du type demandé dans les champs sélectionnés (si type défini)
**/
function champs_option_presente($champs, $option, $type='') {
function champs_option_presente($champs, $option, $type = '') {
return _tableau_option_presente('champ_option_presente', $champs, $option, $type);
}
@ -670,7 +679,7 @@ function champs_option_presente($champs, $option, $type='') {
* - tableau de description des champs sélectionnés (si type non défini)
* - tableau les valeurs du type demandé dans les champs sélectionnés (si type défini)
**/
function champs_options_presentes($champs, $options, $type='') {
function champs_options_presentes($champs, $options, $type = '') {
return _tableau_options_presentes('champ_option_presente', $champs, $options, $type);
}
@ -692,7 +701,7 @@ function champs_options_presentes($champs, $options, $type='') {
* - tableau de description des champs sélectionnés (si type non défini)
* - tableau les valeurs du type demandé dans les champs sélectionnés (si type défini)
**/
function champs_saisie_presente($champs, $saisie, $type='') {
function champs_saisie_presente($champs, $saisie, $type = '') {
return _tableau_option_presente('champ_saisie_presente', $champs, $saisie, $type);
}
@ -715,10 +724,10 @@ function champs_saisie_presente($champs, $saisie, $type='') {
* @return array
* Liste des descriptions correspondant à l'option demandée
*/
function _tableau_option_presente($func, $tableau, $option, $type='') {
$o = array();
function _tableau_option_presente($func, $tableau, $option, $type = '') {
$o = [];
if (!is_array($tableau) OR !$func) {
if (!is_array($tableau) or !$func) {
return $o;
}
// tableau est un tableau complexe de donnee
@ -758,11 +767,12 @@ function _tableau_option_presente($func, $tableau, $option, $type='') {
* @return array
* Liste des descriptions correspondant aux options demandées
*/
function _tableau_options_presentes($func, $tableau, $options, $type='') {
if (!$options) return array();
function _tableau_options_presentes($func, $tableau, $options, $type = '') {
if (!$options) { return [];
}
if (!is_array($options)) {
$options = array($options);
$options = [$options];
}
$first = false;
@ -796,7 +806,7 @@ function _tableau_options_presentes($func, $tableau, $options, $type='') {
* @return
**/
function fabrique_objets_enfants_directs($objet, $objets) {
$liste = array();
$liste = [];
foreach ($objets as $autre_objet) {
if ($autre_objet !== $objet) {
if (option_presente($autre_objet, 'liaison_directe')) {
@ -830,7 +840,7 @@ function fabrique_objets_enfants_directs($objet, $objets) {
* L'écriture des critères de boucle
**/
function criteres_champs_id($objet, $objets, $avec_cle_primaire = true) {
$ids = array();
$ids = [];
if ($avec_cle_primaire) {
$ids[] = $objet['id_objet'];
@ -861,7 +871,7 @@ function criteres_champs_id($objet, $objets, $avec_cle_primaire = true) {
// On ajoute leurs champs de liaison.
foreach ($objets as $autre_objet) {
if ($autre_objet !== $objet) {
if (options_presentes($autre_objet, array('table_liens', 'vue_liens'))) {
if (options_presentes($autre_objet, ['table_liens', 'vue_liens'])) {
if (in_array($objet['table'], $autre_objet['vue_liens'])) {
$ids[] = $autre_objet['objet'] . '_liens.' . $autre_objet['id_objet'];
}
@ -870,9 +880,9 @@ function criteres_champs_id($objet, $objets, $avec_cle_primaire = true) {
}
if (!$ids) {
return "";
return '';
}
return "{" . implode("?}{", $ids) . "?}";
return '{' . implode('?}{', $ids) . '?}';
}
/**
@ -889,19 +899,20 @@ function criteres_champs_id($objet, $objets, $avec_cle_primaire = true) {
* @return array
* Liste des tables
**/
function fabrique_lister_tables($objets, $quoi='tout') {
static $tables = array();
function fabrique_lister_tables($objets, $quoi = 'tout') {
static $tables = [];
if (!$objets) return array();
if (!$objets) { return [];
}
$hash = md5(serialize($objets));
if (!isset($tables[$hash])) {
$tables[$hash] = array(
'tout' => array(),
'objets' => array(),
'liens' => array(),
);
$tables[$hash] = [
'tout' => [],
'objets' => [],
'liens' => [],
];
foreach ($objets as $o) {
// tables principales
if (isset($o['table']) and $o['table']) {
@ -936,9 +947,9 @@ function fabrique_lister_tables($objets, $quoi='tout') {
**/
function fabrique_lister_objet_champs($objet, $option) {
if (!$objet) {
return array();
return [];
}
$liste = array();
$liste = [];
if (isset($objet['champs']) and is_array($objet['champs'])) {
$liste = champs_option_presente($objet['champs'], $option, 'champ');
}
@ -967,59 +978,68 @@ function fabrique_lister_objet_champs($objet, $option) {
*/
function fabrique_necessite_pipeline($objets, $pipeline) {
if (!$objets) return false;
if (!$objets) { return false;
}
switch ($pipeline) {
case "autoriser":
case "declarer_tables_objets_sql":
case "declarer_tables_interfaces":
case 'autoriser':
case 'declarer_tables_objets_sql':
case 'declarer_tables_interfaces':
return (bool)fabrique_lister_tables($objets, 'objets');
break;
case "declarer_tables_auxiliaires":
case 'declarer_tables_auxiliaires':
return (bool)fabrique_lister_tables($objets, 'liens');
break;
case "affiche_enfants":
if (objets_option_presente($objets, 'vue_rubrique')
OR objets_option_presente($objets, 'liaison_directe')) {
case 'affiche_enfants':
if (
objets_option_presente($objets, 'vue_rubrique')
or objets_option_presente($objets, 'liaison_directe')
) {
return true;
}
break;
case "affiche_milieu":
if (objets_option_presente($objets, 'auteurs_liens')
OR objets_options_presentes($objets, array('table_liens', 'vue_liens'))) {
case 'affiche_milieu':
if (
objets_option_presente($objets, 'auteurs_liens')
or objets_options_presentes($objets, ['table_liens', 'vue_liens'])
) {
return true;
}
break;
case "affiche_auteurs_interventions":
case 'affiche_auteurs_interventions':
if (objets_option_presente($objets, 'vue_auteurs_liens')) {
return true;
}
break;
case "afficher_contenu_objet":
case 'afficher_contenu_objet':
return false;
break;
case "boite_infos":
if (objets_option_presente($objets, 'id_rubrique')
or objets_option_presente($objets, 'liaison_directe')) {
case 'boite_infos':
if (
objets_option_presente($objets, 'id_rubrique')
or objets_option_presente($objets, 'liaison_directe')
) {
return true;
}
break;
case "objet_compte_enfants":
if (objets_options_presentes($objets, array('id_rubrique', 'statut_rubrique'))
or objets_option_presente($objets, 'liaison_directe')) {
case 'objet_compte_enfants':
if (
objets_options_presentes($objets, ['id_rubrique', 'statut_rubrique'])
or objets_option_presente($objets, 'liaison_directe')
) {
return true;
}
break;
case "optimiser_base_disparus":
case 'optimiser_base_disparus':
# nettoie depuis spip_{objet}_liens
# mais aussi les liaisions vers spip_{objet} (uniquement si une table de liens existe)
if (fabrique_lister_tables($objets, 'liens')) {
@ -1031,8 +1051,8 @@ function fabrique_necessite_pipeline($objets, $pipeline) {
}
break;
case "trig_propager_les_secteurs":
if (objets_options_presentes($objets, array('id_rubrique', 'id_secteur'))) {
case 'trig_propager_les_secteurs':
if (objets_options_presentes($objets, ['id_rubrique', 'id_secteur'])) {
return true;
}
break;
@ -1056,9 +1076,9 @@ function fabrique_necessite_pipeline($objets, $pipeline) {
* - Le code de création du tableau, avec éventuellement le code pour appliquer sql_quote.
* - $defaut si le tableau est vide
**/
function ecrire_tableau($tableau, $quote = false, $defaut = "array()") {
function ecrire_tableau($tableau, $quote = false, $defaut = 'array()') {
// pas de tableau ?
if (!is_array($tableau) OR !count($tableau)) {
if (!is_array($tableau) or !count($tableau)) {
return $defaut;
}
@ -1085,7 +1105,7 @@ function ecrire_tableau($tableau, $quote = false, $defaut = "array()") {
* - Chaîne vide si le tableau est vide
**/
function ecrire_tableau_sinon_rien($tableau, $quote = false) {
return ecrire_tableau($tableau, $quote, "");
return ecrire_tableau($tableau, $quote, '');
}
/**
@ -1102,7 +1122,8 @@ function ecrire_tableau_sinon_rien($tableau, $quote = false) {
* Texte complété des espaces de fin
*/
function espacer($texte, $taille = 0) {
if (!$taille) $taille = _FABRIQUE_ESPACER;
if (!$taille) { $taille = _FABRIQUE_ESPACER;
}
return str_pad($texte, $taille);
}
@ -1119,7 +1140,7 @@ function espacer($texte, $taille = 0) {
* Texte indenté du nombre de tabulations indiqué
*/
function fabrique_tabulations($texte, $nb_tabulations) {
$tab = "";
$tab = '';
if ($nb_tabulations) {
$tab = str_pad("\t", $nb_tabulations);
}
@ -1127,7 +1148,7 @@ function fabrique_tabulations($texte, $nb_tabulations) {
foreach ($texte as $c => $ligne) {
$l = ltrim(ltrim($ligne), "\t");
if (!$l) {
$texte[$c] = "";
$texte[$c] = '';
} else {
$texte[$c] = $tab . $ligne;
}
@ -1197,7 +1218,7 @@ function fabrique_mb_strtolower($str) {
* @return string
* Balise HTML IMG de l'image réduite et à jour
*/
function filtre_fabrique_miniature_image($fichier, $taille=256) {
function filtre_fabrique_miniature_image($fichier, $taille = 256) {
$im = filtrer('image_reduire', $fichier, $taille);
$im = extraire_attribut($im, 'src');
$im = explode('?', $im);
@ -1246,12 +1267,12 @@ function fabrique_chemin_themes_images($fichier, $nom, $taille = 0) {
* @return array
* Tableau table_sql => Nom
**/
function filtre_fabrique_lister_objets_editoriaux($objets_fabrique, $inclus=array(), $exclus=array()) {
function filtre_fabrique_lister_objets_editoriaux($objets_fabrique, $inclus = [], $exclus = []) {
if (!is_array($inclus)) {
$inclus = $inclus ? array($inclus) : array();
$inclus = $inclus ? [$inclus] : [];
}
if (!is_array($exclus)) {
$exclus = $exclus ? array($exclus) : array();
$exclus = $exclus ? [$exclus] : [];
}
// les objets existants
@ -1309,15 +1330,15 @@ function fabrique_parent($objet, $objets) {
$table = $objet['liaison_directe'];
}
if (!$table) {
return array();
return [];
}
$desc = array(
$desc = [
'table' => $table,
'id_objet' => fabrique_id_table_objet($table, $objets),
'type' => fabrique_objet_type($table, $objets),
'objet' => fabrique_table_objet($table, $objets),
);
];
$desc['mid_objet'] = strtoupper($desc['id_objet']);
$desc['mobjet'] = strtoupper($desc['objet']);
$desc['lobjet'] = $desc['objet'];
@ -1438,18 +1459,17 @@ function fabrique_objet_type($table, $objets) {
**/
function fabrique_code_autorisation($type, $prefixe, $objet) {
switch($type) {
case "jamais":
return "false";
switch ($type) {
case 'jamais':
return 'false';
break;
case "toujours":
return "true";
case 'toujours':
return 'true';
break;
// au moins auteur de l'objet, ou administrateur complet ou admin restreint sur rubrique de l'objet
case "auteur_objet":
case 'auteur_objet':
$auteurs_objet = '$auteurs = ' . $prefixe . '_auteurs_objet(\'' . $objet['type'] . '\', $id) and in_array($qui[\'id_auteur\'], $auteurs)';
if (champ_present($objet, 'id_rubrique')) {
$admin = $prefixe . '_autoriser_admins(\'' . $objet['type'] . '\', $id, $qui)';
@ -1461,7 +1481,7 @@ function fabrique_code_autorisation($type, $prefixe, $objet) {
// au moins auteur de l'objet si l'objet n'est pas publié, ou administrateur complet ou admin restreint sur la rubrique de l'objet
// Note : normalement statut doit forcément être présent pour ce test !
case "auteur_objet_statut":
case 'auteur_objet_statut':
$auteurs_objet = '$auteurs = ' . $prefixe . '_auteurs_objet(\'' . $objet['type'] . '\', $id) and in_array($qui[\'id_auteur\'], $auteurs)';
$test_statut = $prefixe . '_autoriser_statuts(\'' . $objet['type'] . '\', $id, $qui, $opt)';
if (champ_present($objet, 'id_rubrique')) {
@ -1476,13 +1496,13 @@ function fabrique_code_autorisation($type, $prefixe, $objet) {
}
break;
case "redacteur":
case 'redacteur':
return "in_array(\$qui['statut'], array('0minirezo', '1comite'))";
break;
// Au moins administrateur complet ou restreint sur la rubrique sur l'objet
// Note : normalement id_rubrique doit forcément être présent pour ce test !
case "administrateur_restreint_objet":
case 'administrateur_restreint_objet':
if (champ_present($objet, 'id_rubrique')) {
$admin = $prefixe . '_autoriser_admins(\'' . $objet['type'] . '\', $id, $qui)';
} else {
@ -1491,21 +1511,20 @@ function fabrique_code_autorisation($type, $prefixe, $objet) {
return $admin;
break;
case "administrateur_restreint":
case 'administrateur_restreint':
return "\$qui['statut'] == '0minirezo'";
break;
case "administrateur":
case 'administrateur':
return "\$qui['statut'] == '0minirezo' and !\$qui['restreint']";
break;
case "webmestre":
case 'webmestre':
return "autoriser('webmestre', '', '', \$qui)";
break;
}
return "";
return '';
}
/**

@ -6,7 +6,8 @@
* @package SPIP\Fabrique\Options
**/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined('_ECRIRE_INC_VERSION')) { return;
}
/**
* Version de la structure des données de sauvegarde de la fabrique

@ -5,7 +5,9 @@
*
* @package SPIP\Fabrique\Pipelines
**/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) { return;
}
/**
@ -15,7 +17,7 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
* @param array $flux Données du pipeline
* @return array Données du pipeline
**/
function fabrique_compagnon_messages(array $flux) : array {
function fabrique_compagnon_messages(array $flux): array {
$exec = $flux['args']['exec'];
$pipeline = $flux['args']['pipeline'];
@ -25,27 +27,27 @@ function fabrique_compagnon_messages(array $flux) : array {
case 'affiche_milieu':
switch ($exec) {
case 'fabrique':
$aides[] = array(
$aides[] = [
'id' => 'fabrique_info',
'titre' => _T('fabrique:c_fabrique_info'),
'texte' => _T('fabrique:c_fabrique_info_texte'),
'statuts'=> array('1comite', '0minirezo', 'webmestre')
);
$aides[] = array(
'statuts' => ['1comite', '0minirezo', 'webmestre']
];
$aides[] = [
'id' => 'fabrique_git',
'titre' => _T('fabrique:c_fabrique_git'),
'texte' => _T('fabrique:c_fabrique_git_texte'),
'statuts'=> array('1comite', '0minirezo', 'webmestre')
);
'statuts' => ['1comite', '0minirezo', 'webmestre']
];
if (!is_writable(_DIR_PLUGINS . rtrim(FABRIQUE_DESTINATION_PLUGINS, '/'))) {
$aides[] = array(
$aides[] = [
'id' => 'fabrique_dans_plugins',
'titre' => _T('fabrique:c_fabrique_dans_plugins'),
'texte' => _T('fabrique:c_fabrique_dans_plugins_texte', array(
'texte' => _T('fabrique:c_fabrique_dans_plugins_texte', [
'dir' => rtrim(FABRIQUE_DESTINATION_PLUGINS, '/'),
'dir_cache' => rtrim(FABRIQUE_DESTINATION_CACHE, '/'))),
'statuts'=> array('1comite', '0minirezo', 'webmestre')
);
'dir_cache' => rtrim(FABRIQUE_DESTINATION_CACHE, '/')]),
'statuts' => ['1comite', '0minirezo', 'webmestre']
];
}
break;
}

@ -8,7 +8,8 @@
*/
// sécurité
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined('_ECRIRE_INC_VERSION')) { return;
}
/**
* Chargement du formulaire de fabrication de peuplement de table SQL
@ -17,11 +18,11 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
* Environnement du formulaire
*/
function formulaires_fabriquer_peuple_charger_dist() {
$contexte = array(
$contexte = [
'table' => '',
'compression' => '',
'table_destination' => '',
);
];
return $contexte;
}
@ -31,7 +32,7 @@ function formulaires_fabriquer_peuple_charger_dist() {
* @return array
* Retour des traitements
*/
function formulaires_fabriquer_peuple_traiter_dist(){
function formulaires_fabriquer_peuple_traiter_dist() {
$table = _request('table');
$compression = _request('compression');
@ -60,14 +61,14 @@ function formulaires_fabriquer_peuple_traiter_dist(){
$chemin_compression = $destination . $donnees_compressees;
// calcul du squelette et copie a destination du contenu.
$contenu = recuperer_fond(FABRIQUE_SKEL_SOURCE . 'base/importer_table.php', array(
$contenu = recuperer_fond(FABRIQUE_SKEL_SOURCE . 'base/importer_table.php', [
'table' => $table,
'table_destination' => $table_destination,
'connecteur' => $connect,
'compression' => $compression,
'chemin_compression' => $chemin_compression,
'donnees_compressees' => $donnees_compressees,
));
]);
ecrire_fichier($chemin, $contenu);
@ -81,15 +82,15 @@ function formulaires_fabriquer_peuple_traiter_dist(){
$message = 'fabrique:fichiers_importations_compresses_cree_dans';
}
$res = array(
'editable'=>'oui',
'message_ok' => _T($message, array(
$res = [
'editable' => 'oui',
'message_ok' => _T($message, [
'dir' => $destination,
'import' => $import,
'donnees_compressees' => $donnees_compressees,
'lignes' => $nb,
'taille' => taille_en_octets($taille),
)),
);
]),
];
return $res;
}

@ -5,7 +5,9 @@
*
* @package SPIP\Fabrique\Formulaires
**/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined('_ECRIRE_INC_VERSION')) { return;
}
/**
* Hash du formulaire de fabrication de plugin
@ -13,7 +15,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
* @return string
* Hash du formulaire
**/
function formulaires_fabriquer_plugin_identifier_dist(){
function formulaires_fabriquer_plugin_identifier_dist() {
return serialize(true);
}
@ -31,9 +33,9 @@ function formulaires_fabriquer_plugin_charger_dist() {
$v_futur = explode('.', $v_spip);
array_pop($v_futur);
$v_futur = implode('.', $v_futur) . '.*';
$contexte = array(
'fabrique' => array(), // ne sert pas dans ce formulaire, mais un jour peut être
'paquet' => array(
$contexte = [
'fabrique' => [], // ne sert pas dans ce formulaire, mais un jour peut être
'paquet' => [
'prefixe' => '',// 'Nouveau plugin',
'version' => '1.0.0',
'auteur' => $GLOBALS['visiteur_session']['nom'],
@ -42,21 +44,21 @@ function formulaires_fabriquer_plugin_charger_dist() {
'compatibilite' => '[' . $v_spip . ';' . $v_futur . ']',
'licence' => 'GNU/GPL',
'schema' => '1.0.0',
'fichiers' => array(),
'fichiers' => [],
'exemples' => '', // inserer des exemples, de l'aide dans les fichiers.
),
'objets' => array(),
);
],
'objets' => [],
];
// On initialise la session si elle est vide
if (is_null($fabrique = session_get(FABRIQUE_ID))){
if (is_null($fabrique = session_get(FABRIQUE_ID))) {
session_set(FABRIQUE_ID, $contexte);
$fabrique = array();
$fabrique = [];
}
// ça merge que la profondeur 1, c'est surtout la 2 qui interesse
#$contexte = array_merge($contexte, $fabrique);
foreach ($contexte as $c=>$v) {
foreach ($contexte as $c => $v) {
if (isset($fabrique[$c])) {
$contexte[$c] = array_merge($contexte[$c], $fabrique[$c]);
}
@ -84,10 +86,10 @@ function formulaires_fabriquer_plugin_charger_dist() {
// on ouvre du coup le 2e accordion par defaut.
// si l'objet a deja ete rempli une fois
$accordion = _request('open_accordion', array());
$accordion = _request('open_accordion', []);
foreach ($contexte['objets'] as $c => $o) {
if (isset($o['champs']) and count($o['champs'])) {
$accordion[$c+1] = 1;
$accordion[$c + 1] = 1;
}
}
$contexte['open_accordion'] = $accordion;
@ -112,35 +114,35 @@ function formulaires_fabriquer_plugin_charger_dist() {
* @return array
* Erreurs du formulaire
**/
function formulaires_fabriquer_plugin_verifier_dist(){
function formulaires_fabriquer_plugin_verifier_dist() {
// cas d'action qui n'ont pas a être testées ici.
if (_request('f_action')) {
return array(); // forcer aucune erreur
return []; // forcer aucune erreur
}
$erreurs = array();
$erreurs = [];
$paquet = _request('paquet');
foreach (array('prefixe', 'version', 'etat', 'nom') as $obli) {
foreach (['prefixe', 'version', 'etat', 'nom'] as $obli) {
if (!$paquet[$obli]) {
$erreurs['paquet'][$obli] = _T("info_obligatoire");
$erreurs['paquet'][$obli] = _T('info_obligatoire');
}
}
$objets = _request('objets');
if (is_array($objets)) {
foreach ($objets as $c => $o) {
foreach (array('nom', 'table') as $obli) {
foreach (['nom', 'table'] as $obli) {
if (!$o[$obli]) {
$erreurs['objets'][$c][$obli] = _T("info_obligatoire");
$erreurs['objets'][$c][$obli] = _T('info_obligatoire');
}
}
if (isset($o['champs']) and is_array($o['champs'])) {
foreach ($o['champs'] as $n => $champ) {
foreach (array('nom', 'champ', 'sql') as $obli) {
foreach (['nom', 'champ', 'sql'] as $obli) {
if (!$champ[$obli]) {
$erreurs['objets'][$c]['champs'][$n][$obli] = _T("info_obligatoire");
$erreurs['objets'][$c]['champs'][$n][$obli] = _T('info_obligatoire');
}
}
}
@ -149,7 +151,7 @@ function formulaires_fabriquer_plugin_verifier_dist(){
}
if (count($erreurs)) {
$erreurs['message_erreur'] = _T("fabrique:erreurs");
$erreurs['message_erreur'] = _T('fabrique:erreurs');
}
return $erreurs;
@ -164,21 +166,21 @@ function formulaires_fabriquer_plugin_verifier_dist(){
* @return array
* Retours du traitement
**/
function formulaires_fabriquer_plugin_traiter_dist(){
function formulaires_fabriquer_plugin_traiter_dist() {
include_spip('fabrique_fonctions');
include_spip('formulaires/fabriquer_plugin_actions');
$paquet = _request('paquet');
$objets = _request('objets');
if (!is_array($objets)) {
$objets = array();
$objets = [];
}
$data = array(
'fabrique' => array('version' => FABRIQUE_VERSION),
$data = [
'fabrique' => ['version' => FABRIQUE_VERSION],
'paquet' => $paquet,
'objets' => $objets,
);
];
// gerer les cas d'envoi d'images.
// (avant les éventuels retours sur l'ajout / suppression d'objet !)
@ -200,7 +202,7 @@ function formulaires_fabriquer_plugin_traiter_dist(){
$data['objets'][$c]['cle_primaire'] = id_table_objet($o['table']);
}
if ($o['table'] and !$o['cle_primaire_sql']) {
$data['objets'][$c]['cle_primaire_sql'] = "bigint(21) NOT NULL";
$data['objets'][$c]['cle_primaire_sql'] = 'bigint(21) NOT NULL';
}
if ($o['table'] and !$o['table_type']) {
$data['objets'][$c]['table_type'] = objet_type($data['objets'][$c]['cle_primaire']);
@ -235,7 +237,8 @@ function formulaires_fabriquer_plugin_traiter_dist(){
'destination',
'destination_plugin',
'destination_backup',
'destination_ancien_plugin');
'destination_ancien_plugin'
);
// executer des actions si demandees
fabrique_executer_script('pre_copie', $data, $contexte_scripts);
@ -247,10 +250,10 @@ function formulaires_fabriquer_plugin_traiter_dist(){
// il vaut mieux quitter en indiquant une erreur
if (is_dir($_destination_ancien_plugin)) {
fabrique_remettre_contexte($data);
return array(
'editable'=>'oui',
'message_erreur' => _T('fabrique:erreur_suppression_sauvegarde', array('dir'=>$_destination_ancien_plugin))
);
return [
'editable' => 'oui',
'message_erreur' => _T('fabrique:erreur_suppression_sauvegarde', ['dir' => $_destination_ancien_plugin])
];
}
if (is_dir($_destination_plugin)) {
@ -258,10 +261,10 @@ function formulaires_fabriquer_plugin_traiter_dist(){
if (!@rename($_destination_plugin, $_destination_ancien_plugin)) {
// une erreur sur le rename signifie qu'on a pas les droits suffisants sur $_destination_plugin
fabrique_remettre_contexte($data);
return array(
'editable'=>'oui',
'message_erreur' => _T('fabrique:erreur_copie_sauvegarde', array('dir'=>$_destination_plugin))
);
return [
'editable' => 'oui',
'message_erreur' => _T('fabrique:erreur_copie_sauvegarde', ['dir' => $_destination_plugin])
];
}
}
if (is_dir($_destination_plugin)) {
@ -295,15 +298,15 @@ function formulaires_fabriquer_plugin_traiter_dist(){
// on nettoie les saisies checkbox de vue_liens qui peuvent ne rien envoyer
// on nettoie une eventuelle table ayant servi a pre-remplir l'objet
foreach ($data['objets'] as $c => $o) {
if (!isset($o['vue_liens']) OR !is_array($o['vue_liens'])) {
$o['vue_liens'] = array();
if (!isset($o['vue_liens']) or !is_array($o['vue_liens'])) {
$o['vue_liens'] = [];
}
unset($data['objets'][$c]['renseigner_avec_table']);
}
// cas particulier data (+images) pour l'export.
fabriquer_fichier("fabrique_prefixe.php", array_merge($data, array('data'=>array_merge($data, array('images' => $images)))));
fabriquer_fichier('fabrique_prefixe.php', array_merge($data, ['data' => array_merge($data, ['images' => $images])]));
fabrique_sauvegarde_tournante_export($destination_plugin . "fabrique_$prefixe.php", $destination_backup);
// pour tous les autres, on ajoute des informations dans notre tableau de données
@ -317,48 +320,46 @@ function formulaires_fabriquer_plugin_traiter_dist(){
// creer le paquet.xml
// en declarant tous les fichiers necessaires
$fichiers_coches = isset($data['paquet']['fichiers']) ? $data['paquet']['fichiers'] : array();
$fichiers_coches = isset($data['paquet']['fichiers']) ? $data['paquet']['fichiers'] : [];
$data['paquet']['fichiers'] = $fichiers;
fabriquer_fichier("paquet.xml", $data);
fabriquer_fichier('paquet.xml', $data);
// on remet ce qu'avait saisi l'utilisateur
$data['paquet']['fichiers'] = $fichiers_coches;
// creer la langue du paquet.
fabriquer_fichier("lang/paquet-prefixe_fr.php", $data);
fabriquer_fichier('lang/paquet-prefixe_fr.php', $data);
// creer la langue du plugin
fabriquer_fichier("lang/prefixe_fr.php", $data);
fabriquer_fichier('lang/prefixe_fr.php', $data);
// creer le formulaire de configuration
if ($paquet['formulaire_config']) {
// creer le squelette d'appel du formulaire
fabriquer_fichier("prive/squelettes/contenu/configurer_prefixe.html", $data);
fabriquer_fichier('prive/squelettes/contenu/configurer_prefixe.html', $data);
// creer le formulaire de config (simple, type CFG avec un champ d'exemple)
fabriquer_fichier("formulaires/configurer_prefixe.html", $data);
fabriquer_fichier('formulaires/configurer_prefixe.html', $data);
}
// creer le fichier d'administrations
if ($paquet['administrations'] or count($data['objets'])) {
fabriquer_fichier("prefixe_administrations.php", $data);
fabriquer_fichier('prefixe_administrations.php', $data);
}
// creer le fichier d'options, de fonctions, autorisations et de pipelines
foreach($fichiers as $fichier) {
foreach ($fichiers as $fichier) {
fabriquer_fichier("prefixe_$fichier.php", $data);
}
// gerer plus specifiquement les objets
if (count($data['objets'])) {
// creer le fichier de declaration de tables SQL
fabriquer_fichier("base/prefixe.php", $data);
fabriquer_fichier('base/prefixe.php', $data);
// pour chaque objet
foreach ($data['objets'] as $c => $objet) {
// des raccourcis de plus pour les squelettes specifiques aux objets
$data['objet'] = $objet;
$data['id_objet'] = $objet['id_objet'];
@ -371,68 +372,68 @@ function formulaires_fabriquer_plugin_traiter_dist(){
$data['parent'] = $objet['parent'];
// creer les langues
fabriquer_fichier("lang/objet_fr.php", $data);
fabriquer_fichier('lang/objet_fr.php', $data);
// créer le formulaire d'edition
fabriquer_fichier("formulaires/editer_objet.html", $data);
fabriquer_fichier("formulaires/editer_objet.php", $data);
fabriquer_fichier('formulaires/editer_objet.html', $data);
fabriquer_fichier('formulaires/editer_objet.php', $data);
// créer la vue du contenu d'un objet
fabriquer_fichier("prive/objets/contenu/objet.html", $data);
fabriquer_fichier('prive/objets/contenu/objet.html', $data);
// créer la liste d'un objet
fabriquer_fichier("prive/objets/liste/objets.html", $data);
fabriquer_fichier('prive/objets/liste/objets.html', $data);
// appel du formulaire d'édition, si liens ou parenté directe autre que rubrique
if (option_presente($objet, 'vue_liens') or option_presente($objet, 'liaison_directe')) {
fabriquer_fichier("prive/squelettes/contenu/objet_edit.html", $data);
fabriquer_fichier('prive/squelettes/contenu/objet_edit.html', $data);
}
// si parenté autre que rubrique, créer des squelettes de hiérarchie
if (option_presente($objet, 'liaison_directe')) {
fabriquer_fichier("prive/squelettes/hierarchie/objet.html", $data);
fabriquer_fichier("prive/squelettes/hierarchie/objet_edit.html", $data);
fabriquer_fichier('prive/squelettes/hierarchie/objet.html', $data);
fabriquer_fichier('prive/squelettes/hierarchie/objet_edit.html', $data);
}
// s'il a des enfants connus ici, créer le fichier d'info pour avoir le nombre d'enfants affichés
if (fabrique_objets_enfants_directs($objet, $objets)) {
fabriquer_fichier("prive/objets/infos/objet.html", $data);
fabriquer_fichier('prive/objets/infos/objet.html', $data);
}
// créer les listes de liaison
if (option_presente($objet, 'vue_liens')) {
fabriquer_fichier("prive/objets/liste/objets_lies.html", $data);
fabriquer_fichier("prive/objets/liste/objets_lies_fonctions.php", $data); // pff
fabriquer_fichier("prive/objets/liste/objets_associer.html", $data);
fabriquer_fichier("prive/objets/liste/objets_associer_fonctions.php", $data); // pff
fabriquer_fichier('prive/objets/liste/objets_lies.html', $data);
fabriquer_fichier('prive/objets/liste/objets_lies_fonctions.php', $data); // pff
fabriquer_fichier('prive/objets/liste/objets_associer.html', $data);
fabriquer_fichier('prive/objets/liste/objets_associer_fonctions.php', $data); // pff
// la meme chose avec des roles s'il y en a
if (option_presente($objet, 'roles')) {
fabriquer_fichier("prive/objets/liste/objets_roles_lies.html", $data);
fabriquer_fichier("prive/objets/liste/objets_roles_lies_fonctions.php", $data); // pff
fabriquer_fichier("prive/objets/liste/objets_roles_associer.html", $data);
fabriquer_fichier("prive/objets/liste/objets_roles_associer_fonctions.php", $data); // pff
fabriquer_fichier('prive/objets/liste/objets_roles_lies.html', $data);
fabriquer_fichier('prive/objets/liste/objets_roles_lies_fonctions.php', $data); // pff
fabriquer_fichier('prive/objets/liste/objets_roles_associer.html', $data);
fabriquer_fichier('prive/objets/liste/objets_roles_associer_fonctions.php', $data); // pff
}
// lister aussi les liaisons sur la vue de cet objet
if (option_presente($objet, 'afficher_liens')) {
fabriquer_fichier("prive/objets/liste/\objets_lies_objet.html", $data);
fabriquer_fichier("prive/squelettes/contenu/objet.html", $data); // fichier habituellement échafaudé
fabriquer_fichier('prive/objets/liste/\objets_lies_objet.html', $data);
fabriquer_fichier('prive/squelettes/contenu/objet.html', $data); // fichier habituellement échafaudé
}
}
// si traductions demandees, creer le fichier de pre-chargement
if (champ_present($objet, 'id_trad')) {
fabriquer_fichier("inc/precharger_objet.php", $data);
fabriquer_fichier('inc/precharger_objet.php', $data);
}
// si inclusion dans plan du site
if (champ_present($objet, 'id_rubrique') and option_presente($objet, 'plan')) {
fabriquer_fichier("prive/squelettes/inclure/plan-objets.html", $data);
fabriquer_fichier('prive/squelettes/inclure/plan-objets.html', $data);
}
// fichiers demandés explicitement (échafaudés normalement par SPIP ou autres spécifiques)
if (isset($objet['fichiers']) AND is_array($objet['fichiers'])) {
if (isset($objet['fichiers']) and is_array($objet['fichiers'])) {
foreach ($objet['fichiers'] as $type => $fichiers) {
// type : echafaudages | explicites
if (is_array($fichiers)) {
@ -457,15 +458,14 @@ function formulaires_fabriquer_plugin_traiter_dist(){
// Si l'on n'a pas de statut pour cet objet, proposer un bouton de suppression et l'action correspondante.
if (!champ_present($objet, 'statut')) {
fabriquer_fichier("action/supprimer_objet.php", $data);
fabriquer_fichier('action/supprimer_objet.php', $data);
// être certain d'avoir ce fichier (échafaudé)
fabriquer_fichier("prive/objets/infos/objet.html", $data);
fabriquer_fichier('prive/objets/infos/objet.html', $data);
}
}
unset($data['objet'], $data['id_objet'], $data['type'], $data['table']);
unset($data['mobjet'], $data['lobjet'], $data['mtype'], $data['mid_objet']);
unset($data['objet'], $data['id_objet'], $data['type'], $data['table']);
unset($data['mobjet'], $data['lobjet'], $data['mtype'], $data['mid_objet']);
}
// creer les images
@ -489,9 +489,9 @@ function formulaires_fabriquer_plugin_traiter_dist(){
}
fabriquer_miniatures($prefixe, $logo_objet_base, $obj, [32]);
$i_precedent = $logo_objet_base;
foreach (array(32, 24, 16, 12) as $taille) {
foreach ([32, 24, 16, 12] as $taille) {
if (
(isset($image['logo'][$taille]) AND $i = $image['logo'][$taille]['fichier'])
(isset($image['logo'][$taille]) and $i = $image['logo'][$taille]['fichier'])
or ($i = $i_precedent)
) {
$i_precedent = $i; // privilegier l'image juste plus grande que la precedente
@ -511,8 +511,11 @@ function formulaires_fabriquer_plugin_traiter_dist(){
// supprimer tous les fichiers .ok des sous-répertoires de destination
$fichiers =
new RegexIterator(
new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($destination . $prefixe)), '/[.]ok$/');
new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($destination . $prefixe)
),
'/[.]ok$/'
);
foreach ($fichiers as $f) {
supprimer_fichier((string)$f);
}
@ -535,15 +538,15 @@ function formulaires_fabriquer_plugin_traiter_dist(){
// indiquer qu'on peut creer le repertoire dans plugins.
if (!is_writable(_DIR_PLUGINS . rtrim(FABRIQUE_DESTINATION_PLUGINS, '/'))) {
set_request("message_info", _T('fabrique:repertoire_plugin_fabrique', array(
set_request('message_info', _T('fabrique:repertoire_plugin_fabrique', [
'dir' => rtrim(FABRIQUE_DESTINATION_PLUGINS, '/'),
'dir_cache' => rtrim(FABRIQUE_DESTINATION_CACHE, '/'))));
'dir_cache' => rtrim(FABRIQUE_DESTINATION_CACHE, '/')]));
}
$res = array(
'editable'=>'oui',
'message_ok' => _T('fabrique:plugin_cree_succes_dans', array('dir'=>$destination_plugin))
);
$res = [
'editable' => 'oui',
'message_ok' => _T('fabrique:plugin_cree_succes_dans', ['dir' => $destination_plugin])
];
return $res;
}
@ -558,15 +561,15 @@ function formulaires_fabriquer_plugin_traiter_dist(){
* Environnement du calcul
**/
function fabriquer_fichier($chemin, $data) {
static $reps = array(); // repertoire de destination deja crees.
static $chemins = array(); // fichiers sources deja utilises
static $reps = []; // repertoire de destination deja crees.
static $chemins = []; // fichiers sources deja utilises
// retrouver la destination de copie des fichiers
$destination = fabrique_destination();
$destination .= $data['paquet']['prefixe'] . '/';
// on retrouve le nom du fichier et la base du chemin de destination
$dest = explode('/', $chemin);
$chemin = str_replace("\o", "o", $chemin); // enlever l'échappement \objet
$chemin = str_replace('\o', 'o', $chemin); // enlever l'échappement \objet
$nom = array_pop($dest);
$chemin_dest = implode('/', $dest);
@ -580,18 +583,18 @@ function fabriquer_fichier($chemin, $data) {
// 'prefixe' => $prefixe.
// 'objet' => $objet.
// mais on conserve si '\objets'
$nom = str_replace("\o", "\1o\\", $nom);
$nom = str_replace('\o', "\1o\\", $nom);
$nom = str_replace('prefixe', $data['paquet']['prefixe'], $nom);
if (isset($data['objet'])) {
$nom = str_replace('objets', $data['objet']['lobjet'], $nom);
$nom = str_replace('objet', $data['objet']['type'], $nom);
$nom = str_replace('objets', $data['objet']['lobjet'], $nom);
$nom = str_replace('objet', $data['objet']['type'], $nom);
}
$nom = str_replace("\1o\\", "o", $nom);
$nom = str_replace("\1o\\", 'o', $nom);
// calcul du squelette et copie a destination du contenu.
$contenu = recuperer_fond(FABRIQUE_SKEL_SOURCE . $chemin, $data);
// Enlever les espaces de fins de ligne et toujours finir un fichier avec un saut de ligne
$contenu = str_replace(", \n", ",\n", str_replace("\n \n", "\n\n", str_replace("} \n", "}\n", str_replace("; \n", ";\n", $contenu))))."\n";
$contenu = str_replace(", \n", ",\n", str_replace("\n \n", "\n\n", str_replace("} \n", "}\n", str_replace("; \n", ";\n", $contenu)))) . "\n";
ecrire_fichier($destination . $chemin_dest . '/' . $nom, $contenu);
}
@ -643,11 +646,10 @@ function fabriquer_repertoire_themes_images($prefixe) {
// creer une fois l'arborescence de destination
static $chemin = false;
if (!$chemin) {
$chemin = "prive/themes/spip/images";
$chemin = 'prive/themes/spip/images';
sous_repertoire_complet($destination . $chemin);
}
return $destination . $chemin;
}
/**
* Prépare une image SVG dont l'adresse est donnée,
@ -679,7 +681,7 @@ function fabriquer_miniature_svg($prefixe, $src, $nom, $taille = 0, $specifique
} else {
$nom = "$nom-xx.svg";
}
ecrire_fichier( "$destination/$nom", $contenu);
ecrire_fichier("$destination/$nom", $contenu);
}
}
@ -715,8 +717,8 @@ function fabriquer_miniature_png($prefixe, $src, $nom, $taille = 128, $variante
$src_img = array_shift($src_img);
$contenu = spip_file_get_contents($src_img);
if ($contenu) {
$nom = $nom . ($variante ? "-$variante" : ''). "-$taille.png";
ecrire_fichier( "$destination/$nom", $contenu);
$nom = $nom . ($variante ? "-$variante" : '') . "-$taille.png";
ecrire_fichier("$destination/$nom", $contenu);
}
}
@ -731,8 +733,8 @@ function fabriquer_miniature_png($prefixe, $src, $nom, $taille = 128, $variante
* Liste des fichiers indispensables au plugin (et ceux qui étaient déjà demandés)
**/
function fabrique_fichiers_paquets($data) {
$fichiers = array();
if (isset($data['paquet']['fichiers']) AND is_array($data['paquet']['fichiers'])) {
$fichiers = [];
if (isset($data['paquet']['fichiers']) and is_array($data['paquet']['fichiers'])) {
$fichiers = $data['paquet']['fichiers'];
}
@ -742,10 +744,12 @@ function fabrique_fichiers_paquets($data) {
}
if (!in_array('pipelines', $fichiers)) {
if (fabrique_necessite_pipeline($data['objets'], 'optimiser_base_disparus')
OR fabrique_necessite_pipeline($data['objets'], 'affiche_enfants')
OR fabrique_necessite_pipeline($data['objets'], 'affiche_auteurs_interventions')
OR fabrique_necessite_pipeline($data['objets'], 'affiche_milieu')) {
if (
fabrique_necessite_pipeline($data['objets'], 'optimiser_base_disparus')
or fabrique_necessite_pipeline($data['objets'], 'affiche_enfants')
or fabrique_necessite_pipeline($data['objets'], 'affiche_auteurs_interventions')
or fabrique_necessite_pipeline($data['objets'], 'affiche_milieu')
) {
$fichiers[] = 'pipelines';
}
}
@ -775,7 +779,7 @@ function fabrique_remettre_contexte($data) {
// on reintroduit le contexte complet, parce que l'erreur ne repasse pas dans charger() dans ce cas.
$data = fabrique_completer_contexte_images($data); // liste des fichiers images presents (pour paquet.xml)
$data = fabrique_completer_contexte($data); // raccourcis
foreach($data as $nom => $valeur) {
foreach ($data as $nom => $valeur) {
set_request($nom, $valeur);
}
}
@ -796,12 +800,13 @@ function fabrique_completer_contexte($data) {
$data['prefixe'] = $data['paquet']['prefixe'];
$data['mprefixe'] = strtoupper($data['paquet']['prefixe']); // m = majuscule
$data['exemples'] = $data['paquet']['exemples'];
if (!is_array($data['objets'])) $data['objets'] = array();
$data['les_objets'] = $data['les_types'] = $data['les_id_objets'] = array();
foreach( $data['objets'] as $c => $o ) {
if (!is_array($data['objets'])) { $data['objets'] = [];
}
$data['les_objets'] = $data['les_types'] = $data['les_id_objets'] = [];
foreach ($data['objets'] as $c => $o) {
// quelques raccourcis
if (isset($o['table']) and $o['table']) {
$data['objets'][$c]['objets_surnoms'] = array();
$data['objets'][$c]['objets_surnoms'] = [];
// si la table est different de spip_xxs
// ou si elle possede des espaces spip_xx_yys
@ -847,7 +852,7 @@ function fabrique_completer_contexte($data) {
}
}
// indiquer les parentés
foreach($data['objets'] as $c => $o) {
foreach ($data['objets'] as $c => $o) {
$data['objets'][$c]['parent'] = fabrique_parent($o, $data['objets']);
}
// fabrique_lister_tables() apres avoir ajoute les infos en plus sur les objets
@ -874,27 +879,27 @@ function fabrique_completer_contexte_images($data) {
// en dehors des donnees postees
// pour ne pas surcharger le formulaire
// et poster à chaque fois les images.
$images = array(
'paquet' => array(
'logo' => array(
0 => array(
$images = [
'paquet' => [
'logo' => [
0 => [
'fichier' => '',
'extension' => '',
'contenu' => '',
)
)
),
'objets' => array()
);
]
]
],
'objets' => []
];
// On initialise la session image si elle est vide
if (is_null($fabrique_images = session_get(FABRIQUE_ID_IMAGES)) OR !is_array($fabrique_images)){
if (is_null($fabrique_images = session_get(FABRIQUE_ID_IMAGES)) or !is_array($fabrique_images)) {
session_set(FABRIQUE_ID_IMAGES, $images);
$fabrique_images = array();
$fabrique_images = [];
}
// On merge avec ce que l'on a dans la session
foreach ($images as $c=>$v) {
foreach ($images as $c => $v) {
if (isset($fabrique_images[$c])) {
$images[$c] = array_merge($images[$c], $fabrique_images[$c]);
}
@ -904,22 +909,22 @@ function fabrique_completer_contexte_images($data) {
// logo de plugin
if (isset($images['paquet']['logo'][0]['fichier']) and $f = $images['paquet']['logo'][0]['fichier']) {
if (!isset($data['paquet']['logo']) or !is_array($data['paquet']['logo'])) {
$data['paquet']['logo'] = array();
$data['paquet']['logo'] = [];
}
if (!isset($data['paquet']['logo'][0]) or !is_array($data['paquet']['logo'][0])) {
$data['paquet']['logo'][0] = array();
$data['paquet']['logo'][0] = [];
}
$data['paquet']['logo'][0]['fichier'] = $f;
}
// logo des objets
foreach ($images['objets'] as $c=>$image) {
foreach (array(0, 32, 24, 16, 12) as $taille) {
foreach ($images['objets'] as $c => $image) {
foreach ([0, 32, 24, 16, 12] as $taille) {
if (isset($image['logo'][$taille]['fichier']) and $f = $image['logo'][$taille]['fichier']) {
if (!isset($data['objets'][$c]['logo']) or !is_array($data['objets'][$c]['logo'])) {
$data['objets'][$c]['logo'] = array();
$data['objets'][$c]['logo'] = [];
}
if (!isset($data['objets'][$c]['logo'][$taille]) or !is_array($data['objets'][$c]['logo'][$taille])) {
$data['objets'][$c]['logo'][$taille] = array();
$data['objets'][$c]['logo'][$taille] = [];
}
$data['objets'][$c]['logo'][$taille]['fichier'] = $f;
}
@ -965,7 +970,7 @@ function fabrique_renseigner_objet($objet) {
}
// prefixer systematiquement de spip_ la table
if (substr($table_spip,0,5) !== 'spip_') {
if (substr($table_spip, 0, 5) !== 'spip_') {
$table_spip = 'spip_' . $table_spip;
}
@ -980,7 +985,7 @@ function fabrique_renseigner_objet($objet) {
// id_rubrique
if (isset($fields['id_rubrique'])) {
if (!isset($objet['rubriques'])) {
$objet['rubriques'] = array();
$objet['rubriques'] = [];
}
if (!in_array('id_rubrique', $objet['rubriques'])) {
$objet['rubriques'][] = 'id_rubrique';
@ -997,7 +1002,7 @@ function fabrique_renseigner_objet($objet) {
// lang
if (isset($fields['lang'])) {
if (!isset($objet['langues'])) {
$objet['langues'] = array();
$objet['langues'] = [];
}
if (!in_array('lang', $objet['langues'])) {
$objet['langues'][] = 'lang';
@ -1008,7 +1013,7 @@ function fabrique_renseigner_objet($objet) {
// id_trad
if (isset($fields['id_trad'])) {
if (!isset($objet['langues'])) {
$objet['langues'] = array();
$objet['langues'] = [];
}
if (!in_array('id_trad', $objet['langues'])) {
$objet['langues'][] = 'id_trad';
@ -1036,7 +1041,7 @@ function fabrique_renseigner_objet($objet) {
}
// champ titre
foreach (array('titre', 'nom') as $titre) {
foreach (