Browse Source

Coding standards SPIP40

pull/21/head
tcharlss 2 weeks ago
parent
commit
f75a8822ee
  1. 3
      action/associer_album.php
  2. 5
      action/desordonner_liens_albums.php
  3. 19
      action/dissocier_album.php
  4. 3
      action/instituer_album.php
  5. 3
      action/supprimer_album.php
  6. 3
      action/vider_album.php
  7. 45
      albums_administrations.php
  8. 32
      albums_autorisations.php
  9. 7
      albums_fonctions.php
  10. 49
      albums_pipelines.php
  11. 57
      base/albums.php
  12. 28
      formulaires/ajouter_album.php
  13. 21
      formulaires/editer_album.php
  14. 81
      formulaires/migrer_albums.php
  15. 56
      inc/albums.php
  16. 3
      inc/marquer_doublons_albums.php
  17. 3
      inc/objet_marquer_albums_inseres.php
  18. 1
      inc/precharger_album.php
  19. 15
      modeles/album_fonctions.php
  20. 3
      prive/objets/resume/album_choisir_fonctions.php
  21. 3
      prive/objets/resume/album_colonne_fonctions.php
  22. 3
      prive/objets/resume/album_fonctions.php

3
action/associer_album.php

@ -1,4 +1,5 @@
<?php
/**
* Action : associer un album à un objet éditorial
*
@ -42,6 +43,6 @@ function action_associer_album_dist($arg = null) {
if ($id_album = intval($id_album)) {
include_spip('action/editer_liens');
objet_associer(array('album'=>$id_album), array($objet=>$id_objet));
objet_associer(['album' => $id_album], [$objet => $id_objet]);
}
}

5
action/desordonner_liens_albums.php

@ -1,4 +1,5 @@
<?php
/**
* Gestion de l'action remettant à zéro l'ordre des albums liés à un objet
*
@ -28,7 +29,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Ex. : `album-article-10-rang_lien`
* @return void
*/
function action_desordonner_liens_albums_dist(? string $arg = null) {
function action_desordonner_liens_albums_dist(?string $arg = null) {
include_spip('base/objets');
include_spip('action/editer_liens');
@ -74,7 +75,7 @@ function action_desordonner_liens_albums_dist(? string $arg = null) {
* Numéro de l'objet duquel dissocier
* @return void
*/
function desordonner_liens_albums(string $objet, string $objet_lie, int $id_objet_lie, ? string $champ_rang) : void {
function desordonner_liens_albums(string $objet, string $objet_lie, int $id_objet_lie, ?string $champ_rang): void {
include_spip('action/editer_liens');
// Colonne pour le rang sur table spip_xxx_liens
// Si pas donné, on prend en dur pour l'instant. Pourrait-être donné plus tard par objet_associable() ?

19
action/dissocier_album.php

@ -1,4 +1,5 @@
<?php
/**
* Action : dissocier un ou tous les albums liés à un objet éditorial
*
@ -44,9 +45,10 @@ function action_dissocier_album_dist($arg = null) {
// si l'identifiant de l'objet est négatif, vérifier qu'il correspondant à celui du visiteur,
// (cas d'un album lié à un objet pas encore enregistré en base).
if ($id_objet = intval($id_objet)
if (
$id_objet = intval($id_objet)
and (
($id_objet<0 and $id_objet == -$GLOBALS['visiteur_session']['id_auteur'])
($id_objet < 0 and $id_objet == -$GLOBALS['visiteur_session']['id_auteur'])
or autoriser('modifier', $objet, $id_objet)
)
) {
@ -56,21 +58,22 @@ function action_dissocier_album_dist($arg = null) {
// Ne dissocier que les albums non insérés dans le texte.
// = autorisation à dissocier un album d'un objet,
// sauf qu'on économise des requêtes.
if (is_array($liens = objet_trouver_liens(array('album'=>'*'), array($objet=>$id_objet)))) {
$ids_albums = array();
if (is_array($liens = objet_trouver_liens(['album' => '*'], [$objet => $id_objet]))) {
$ids_albums = [];
foreach ($liens as $lien) {
if ($lien['vu'] == 'non') {
$ids_albums[] = $lien['id_album'];
}
}
objet_dissocier(array('album' => $ids_albums), array($objet => $id_objet));
objet_dissocier(['album' => $ids_albums], [$objet => $id_objet]);
}
break;
default:
if ($id_album = intval($album)
and autoriser('dissocier', 'album', $id_album, '', array('objet' => $objet, 'id_objet' => $id_objet))
if (
$id_album = intval($album)
and autoriser('dissocier', 'album', $id_album, '', ['objet' => $objet, 'id_objet' => $id_objet])
) {
objet_dissocier(array('album' => $id_album), array($objet => $id_objet));
objet_dissocier(['album' => $id_album], [$objet => $id_objet]);
}
break;
}

3
action/instituer_album.php

@ -1,4 +1,5 @@
<?php
/**
* Action : changer le statut d'un album
*
@ -47,6 +48,6 @@ function action_instituer_album_dist($arg = null) {
if ($id_album = intval($id_album)) {
include_spip('action/editer_objet');
objet_instituer('album', $id_album, array('statut' => $statut), false);
objet_instituer('album', $id_album, ['statut' => $statut], false);
}
}

3
action/supprimer_album.php

@ -1,4 +1,5 @@
<?php
/**
* Action : supprimer un album
*
@ -41,7 +42,7 @@ function action_supprimer_album_dist($arg = null) {
$arg = $securiser_action();
}
list($id_album, $supprimer_orphelins) = preg_split('/\W/', $arg);
$supprimer_docs_orphelins = ($supprimer_docs_orphelins=='orphelins') ? true : false;
$supprimer_docs_orphelins = ($supprimer_docs_orphelins == 'orphelins') ? true : false;
// suppression
if ($id_album = intval($id_album)) {

3
action/vider_album.php

@ -1,4 +1,5 @@
<?php
/**
* Action : «vider» un album en dissociant tous ses documents.
*
@ -56,7 +57,7 @@ function action_vider_album_dist($arg = null) {
}
list($id_album, $supprimer_orphelins) = preg_split('/\W/', $arg);
$supprimer_orphelins = ($supprimer_orphelins=='orphelins') ? true : false;
$supprimer_orphelins = ($supprimer_orphelins == 'orphelins') ? true : false;
if ($id_album = intval($id_album)) {
include_spip('inc/albums');

45
albums_administrations.php

@ -1,4 +1,5 @@
<?php
/**
* Fonctions d'installation et de désinstallation du plugin Albums
*
@ -27,7 +28,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function albums_upgrade($nom_meta_base_version, $version_cible) {
include_spip('inc/config');
$maj = array();
$maj = [];
// Création des tables + options de configuration
$maj['create'] = [
@ -37,27 +38,27 @@ function albums_upgrade($nom_meta_base_version, $version_cible) {
];
// Suppression de la colonne «categorie»
$maj['0.0.2'] = array(
array('sql_alter','TABLE spip_albums DROP COLUMN categorie'),
);
$maj['0.0.2'] = [
['sql_alter','TABLE spip_albums DROP COLUMN categorie'],
];
// Statut «prepa» au lieu de «refuse»
$maj['0.0.3'] = array(
array('sql_updateq', 'spip_albums', array('statut'=>'prepa'), 'statut='.sql_quote('refuse'))
);
$maj['0.0.3'] = [
['sql_updateq', 'spip_albums', ['statut' => 'prepa'], 'statut=' . sql_quote('refuse')]
];
// passer le titre en «text» au lieu de «varchar» pour la recherche fulltext
// passer le titre en «text» au lieu de «mediumtext»
// passer le satut en «varchar(10)» au lieu 255
// nettoyer les options de configuration obsolètes
$maj['1.0.0'] = array(
array('sql_alter', "TABLE spip_albums CHANGE titre titre text DEFAULT '' NOT NULL"),
array('sql_alter', "TABLE spip_albums CHANGE descriptif descriptif text DEFAULT '' NOT NULL"),
array('sql_alter', "TABLE spip_albums CHANGE statut statut varchar(10) DEFAULT '' NOT NULL"),
array('effacer_config', 'albums/afficher_champ_descriptif'),
array('effacer_config', 'albums/vue_icones'),
array('effacer_config', 'albums/vue_liste'),
);
$maj['1.0.0'] = [
['sql_alter', "TABLE spip_albums CHANGE titre titre text DEFAULT '' NOT NULL"],
['sql_alter', "TABLE spip_albums CHANGE descriptif descriptif text DEFAULT '' NOT NULL"],
['sql_alter', "TABLE spip_albums CHANGE statut statut varchar(10) DEFAULT '' NOT NULL"],
['effacer_config', 'albums/afficher_champ_descriptif'],
['effacer_config', 'albums/vue_icones'],
['effacer_config', 'albums/vue_liste'],
];
// Ajout des `credits`, de `rang_lien` sur la table de liens + nouvelle config par défaut
$maj['1.1.0'] = [
@ -84,12 +85,12 @@ function albums_vider_tables($nom_meta_base_version) {
sql_drop_table('spip_albums_liens');
# Suppression des liens des documents liés aux albums
sql_delete('spip_documents_liens', sql_in('objet', array('album')));
sql_delete('spip_documents_liens', sql_in('objet', ['album']));
# Nettoyer les versionnages et forums
sql_delete('spip_versions', sql_in('objet', array('album')));
sql_delete('spip_versions_fragments', sql_in('objet', array('album')));
sql_delete('spip_forum', sql_in('objet', array('album')));
sql_delete('spip_versions', sql_in('objet', ['album']));
sql_delete('spip_versions_fragments', sql_in('objet', ['album']));
sql_delete('spip_forum', sql_in('objet', ['album']));
# Suppression meta
effacer_meta($nom_meta_base_version);
@ -97,7 +98,7 @@ function albums_vider_tables($nom_meta_base_version) {
# Retirer les albums de la liste des objets où téléverser des documents
if (in_array('spip_albums', $objets = @array_filter(explode(',', $GLOBALS['meta']['documents_objets'])))) {
$objets = array_diff($objets, array('spip_albums'));
$objets = array_diff($objets, ['spip_albums']);
ecrire_meta('documents_objets', implode(',', $objets));
}
}
@ -113,7 +114,7 @@ function albums_vider_tables($nom_meta_base_version) {
* @return array
* Valeurs complétées
*/
function albums_verifier_config_documents(?array $config = null, bool $ecrire = true) : array {
function albums_verifier_config_documents(?array $config = null, bool $ecrire = true): array {
include_spip('inc/config');
$objets = (is_null($config) ? explode(',', lire_config('documents_objets')) : $config);
$objets_full = array_merge($objets, ['spip_albums']);
@ -144,4 +145,4 @@ function albums_ecrire_config_defaut(): bool {
]
);
return $maj;
}
}

32
albums_autorisations.php

@ -1,4 +1,5 @@
<?php
/**
* Définit les autorisations du plugin Albums
*
@ -192,7 +193,7 @@ function autoriser_album_modifier_dist($faire, $type, $id, $qui, $options) {
// Perf : un static car cette autorisation est appelée par d'autres,
// donc potentiellement plusieurs fois dans le même hit
static $autorisations = array();
static $autorisations = [];
$id_auteur = $qui['id_auteur'];
if (isset($autorisations[$id_auteur][$id])) {
return $autorisations[$id_auteur][$id];
@ -435,14 +436,13 @@ function tester_album($test, $args) {
// Perf : une statique car ces tests sont mutualisés entre les autorisations,
// donc appelés potentiellement plusieurs fois dans le même hit.
static $tests = array();
static $tests = [];
$id_auteur = $qui['id_auteur'];
if (isset($tests[$id_auteur][$id][$test])) {
return $tests[$id_auteur][$id][$test];
}
switch ($test) {
// On est connecté⋅e
case 'connecte':
$ok = ($qui['id_auteur'] > 0);
@ -450,7 +450,7 @@ function tester_album($test, $args) {
// On est admin simple ou rédacteur
case 'admin_redac':
$ok = (in_array($qui['statut'], array('0minirezo', '1comite')));
$ok = (in_array($qui['statut'], ['0minirezo', '1comite']));
break;
// On est admin simple
@ -465,9 +465,9 @@ function tester_album($test, $args) {
// On est un⋅e des auteur⋅ices de l'album
case 'auteur_album':
$ids_auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', array('objet=' . sql_quote('album'), 'id_objet=' . intval($id)));
$ids_auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', ['objet=' . sql_quote('album'), 'id_objet=' . intval($id)]);
$ids_auteurs = array_column($ids_auteurs, 'id_auteur');
$ids_auteurs = (is_array($ids_auteurs) ? array_values($ids_auteurs) : array());
$ids_auteurs = (is_array($ids_auteurs) ? array_values($ids_auteurs) : []);
$ok = in_array($qui['id_auteur'], $ids_auteurs);
break;
@ -487,7 +487,7 @@ function tester_album($test, $args) {
// C'est un des objets configurés pour les albums
case 'objet_config':
include_spip('inc/config');
$config = lire_config('albums/objets', array());
$config = lire_config('albums/objets', []);
$ok = in_array(table_objet_sql($type), array_filter($config));
break;
@ -509,7 +509,7 @@ function tester_album($test, $args) {
// L'album est vide
case 'vide':
$ok = !sql_countsel('spip_documents_liens', array('objet=' . sql_quote($type), 'id_objet=' . intval($id)));
$ok = !sql_countsel('spip_documents_liens', ['objet=' . sql_quote($type), 'id_objet=' . intval($id)]);
break;
// L'album est orphelin
@ -521,18 +521,18 @@ function tester_album($test, $args) {
case 'non_vu':
$ok = !sql_countsel(
'spip_albums_liens',
array(
[
'id_album=' . intval($id),
'objet=' . sql_quote($options['objet']),
'id_objet='.intval($options['id_objet']),
'id_objet=' . intval($options['id_objet']),
'vu=' . sql_quote('oui'),
)
]
);
break;
// Il y a plusieurs albums liés à l'objet
case 'plusieurs_lies':
$ok = (sql_countsel('spip_albums_liens', array('objet='.sql_quote($type), 'id_objet='.intval($id))) > 1);
$ok = (sql_countsel('spip_albums_liens', ['objet=' . sql_quote($type), 'id_objet=' . intval($id)]) > 1);
break;
// L'album est dans un secteur wiki (plugin autorité)
@ -563,7 +563,7 @@ function tester_album_wiki($id_album, $qui) {
if (test_plugin_actif('autorite')) {
include_spip('action/editer_liens');
$liens = objet_trouver_liens(array('album' => $id_album), '*');
$liens = objet_trouver_liens(['album' => $id_album], '*');
// Parcourir les objets liés : ils doivent tous être dans un secteur wiki
if (is_array($liens)) {
@ -576,10 +576,10 @@ function tester_album_wiki($id_album, $qui) {
// On cherche le secteur
$desc = lister_tables_objets_sql(table_objet_sql($objet));
if (isset($desc['field']['id_secteur'])) {
$id_secteur = sql_getfetsel('id_secteur', $table_objet, $cle_objet.'='.intval($id_objet));
$id_secteur = sql_getfetsel('id_secteur', $table_objet, $cle_objet . '=' . intval($id_objet));
} elseif (isset($desc['field']['id_rubrique'])) {
$id_rubrique = sql_getfetsel('id_rubrique', $table_objet, $cle_objet.'='.intval($id_objet));
$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique='.intval($id_rubrique));
$id_rubrique = sql_getfetsel('id_rubrique', $table_objet, $cle_objet . '=' . intval($id_objet));
$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
}
// Si on a le secteur, on teste
// obligé de recopier une partie du code d'autorité, faute de fonction séparée

7
albums_fonctions.php

@ -1,4 +1,5 @@
<?php
/**
* Fonctions du plugin Albums
*
@ -32,13 +33,13 @@ function critere_ALBUMS_orphelins_dist($idb, &$boucles, $crit) {
$not = $crit->not ? '' : 'NOT';
$select = sql_get_select('DISTINCT id_album', 'spip_albums_liens as oooo');
$where = "'" .$boucle->id_table.".id_album $not IN (SELECT * FROM($select) AS subquery)'";
$where = "'" . $boucle->id_table . ".id_album $not IN (SELECT * FROM($select) AS subquery)'";
if ($cond) {
$_quoi = '@$Pile[0]["orphelins"]';
$where = "($_quoi) ? $where : ''";
}
$boucle->where[]= $where;
$boucle->where[] = $where;
}
@ -125,4 +126,4 @@ function albums_decrire_dispositions(): array {
// Un coup de pipeline pour finir ? Peut-être plus tard.
return $dispositions;
}
}

49
albums_pipelines.php

@ -1,4 +1,5 @@
<?php
/**
* Utilisations de pipelines par le plugin Albums
*
@ -173,14 +174,14 @@ function albums_affiche_gauche($flux) {
and (
(isset($flux['args'][$id_table_objet]) and $id = intval($flux['args'][$id_table_objet]))
// id non défini pour les nouveaux objets : on met un identifiant negatif
or ($id = 0-$GLOBALS['visiteur_session']['id_auteur'])
or ($id = 0 - $GLOBALS['visiteur_session']['id_auteur'])
)
and autoriser('ajouteralbum', $type, $id)
and !autoriser('joindredocument', $type, $id)
) {
$texte .= recuperer_fond(
'prive/objets/editer/colonne_document',
array('objet'=>$type,'id_objet'=>$id)
['objet' => $type,'id_objet' => $id]
);
}
@ -222,14 +223,14 @@ function albums_post_insertion($flux) {
autoriser('ajouteralbum', $objet, $id_objet)
and $id_auteur = intval($GLOBALS['visiteur_session']['id_auteur'])
) {
$id_temporaire = 0-$id_auteur;
$id_temporaire = 0 - $id_auteur;
include_spip('action/editer_liens');
$liens = objet_trouver_liens(array('album'=>'*'), array($objet=>$id_temporaire));
$liens = objet_trouver_liens(['album' => '*'], [$objet => $id_temporaire]);
foreach ($liens as $lien) {
objet_associer(array('album'=>$lien['id_album']), array($objet=>$id_objet));
objet_associer(['album' => $lien['id_album']], [$objet => $id_objet]);
}
// un simple delete pour supprimer les liens temporaires
sql_delete('spip_albums_liens', array('id_objet='.$id_temporaire, 'objet='.sql_quote($objet)));
sql_delete('spip_albums_liens', ['id_objet=' . $id_temporaire, 'objet=' . sql_quote($objet)]);
}
return $flux;
@ -291,7 +292,7 @@ function albums_insert_head_css($flux) {
$cfg = (defined('_ALBUMS_INSERT_HEAD_CSS') ? _ALBUMS_INSERT_HEAD_CSS : lire_config('albums/insert_head_css', 1));
if ($cfg) {
// feuille de style minimale de base
$flux .= '<link rel="stylesheet" href="'.direction_css(find_in_path('css/albums.css')).'" type="text/css" />';
$flux .= '<link rel="stylesheet" href="' . direction_css(find_in_path('css/albums.css')) . '" type="text/css" />';
}
}
@ -309,19 +310,21 @@ function albums_insert_head_css($flux) {
*/
function albums_objet_compte_enfants($flux) {
if ($objet = $flux['args']['objet']
and $id=intval($flux['args']['id_objet'])) {
if (
$objet = $flux['args']['objet']
and $id = intval($flux['args']['id_objet'])
) {
// juste les publiés ?
if (array_key_exists('statut', $flux['args']) and ($flux['args']['statut'] == 'publie')) {
$flux['data']['album'] = sql_countsel(
'spip_albums AS D JOIN spip_albums_liens AS L ON D.id_album=L.id_album',
'L.objet='.sql_quote($objet).'AND L.id_objet='.intval($id)." AND (D.statut='publie')"
'L.objet=' . sql_quote($objet) . 'AND L.id_objet=' . intval($id) . " AND (D.statut='publie')"
);
} else {
$flux['data']['album'] = sql_countsel(
'spip_albums AS D JOIN spip_albums_liens AS L ON D.id_album=L.id_album',
'L.objet='.sql_quote($objet).'
AND L.id_objet='.intval($id)."
'L.objet=' . sql_quote($objet) . '
AND L.id_objet=' . intval($id) . "
AND (D.statut='publie' OR D.statut='prepa')"
);
}
@ -341,10 +344,12 @@ function albums_objet_compte_enfants($flux) {
*/
function albums_boite_infos($flux) {
if ($flux['args']['type']=='rubrique'
and $id_rubrique = $flux['args']['id']) {
if ($nb = sql_countsel('spip_albums_liens', "objet='rubrique' AND id_objet=".intval($id_rubrique))) {
$nb = '<div>'. singulier_ou_pluriel($nb, 'album:info_1_album', 'album:info_nb_albums') . '</div>';
if (
$flux['args']['type'] == 'rubrique'
and $id_rubrique = $flux['args']['id']
) {
if ($nb = sql_countsel('spip_albums_liens', "objet='rubrique' AND id_objet=" . intval($id_rubrique))) {
$nb = '<div>' . singulier_ou_pluriel($nb, 'album:info_1_album', 'album:info_nb_albums') . '</div>';
if ($p = strpos($flux['data'], '<!--nb_elements-->')) {
$flux['data'] = substr_replace($flux['data'], $nb, $p, 0);
}
@ -375,8 +380,9 @@ function albums_optimiser_base_disparus($flux) {
and is_array($ids_albums_poubelle = sql_allfetsel(
'id_album',
table_objet_sql('album'),
"statut='poubelle' AND maj < ".sql_quote(trim($flux['args']['date'], "'"))
))) {
"statut='poubelle' AND maj < " . sql_quote(trim($flux['args']['date'], "'"))
))
) {
$ids_albums_poubelle = array_column($ids_albums_poubelle, 'id_album');
include_spip('inc/albums');
supprimer_albums($ids_albums_poubelle);
@ -384,8 +390,8 @@ function albums_optimiser_base_disparus($flux) {
// optimiser les liens morts entre documents et albums
include_spip('action/editer_liens');
$flux['data'] += objet_optimiser_liens(array('document'=>'*'), array('album'=>'*'));
$flux['data'] += objet_optimiser_liens(array('album' => '*'), '*');
$flux['data'] += objet_optimiser_liens(['document' => '*'], ['album' => '*']);
$flux['data'] += objet_optimiser_liens(['album' => '*'], '*');
return $flux;
}
@ -398,7 +404,7 @@ function albums_optimiser_base_disparus($flux) {
* @param array $flux
* @return array
*/
function albums_formulaire_verifier(array $flux) : array {
function albums_formulaire_verifier(array $flux): array {
// Config des documents
if ($flux['args']['form'] == 'configurer_documents') {
@ -437,7 +443,6 @@ function albums_recuperer_fond($flux) {
$fond === 'formulaires/inc-upload_document'
and $objet === 'album'
) {
// Rendre unique l'identifiant du conteneur
// Définition dans le squelette : _#ENV{mode}|concat{'_',#ENV{id,new}}
$texte = $flux['data']['texte'];

57
base/albums.php

@ -1,4 +1,5 @@
<?php
/**
* Déclarations relatives à la base de données
*
@ -44,10 +45,10 @@ function albums_declarer_tables_interfaces($interfaces) {
function albums_declarer_tables_objets_sql($tables) {
/* ALBUMS */
$tables['spip_albums'] = array(
$tables['spip_albums'] = [
'type' => 'album',
'principale' => 'oui',
'field'=> array(
'field' => [
'id_album' => 'bigint(21) NOT NULL',
'titre' => "text DEFAULT '' NOT NULL",
'descriptif' => "text DEFAULT '' NOT NULL",
@ -58,46 +59,46 @@ function albums_declarer_tables_objets_sql($tables) {
'langue_choisie' => "VARCHAR(3) DEFAULT 'non'",
'id_trad' => "bigint(21) DEFAULT '0' NOT NULL",
'maj' => 'TIMESTAMP'
),
'key' => array(
],
'key' => [
'PRIMARY KEY' => 'id_album',
'KEY lang' => 'lang',
'KEY id_trad' => 'id_trad',
'KEY statut' => 'statut',
),
],
'titre' => 'titre, lang AS lang',
'date' => 'date',
'champs_editables' => array('titre', 'descriptif', 'credits'),
'champs_versionnes' => array('titre', 'descriptif', 'credits'),
'rechercher_champs' => array(
'champs_editables' => ['titre', 'descriptif', 'credits'],
'champs_versionnes' => ['titre', 'descriptif', 'credits'],
'rechercher_champs' => [
'titre' => 10,
'descriptif' => 1,
'credits' => 1,
),
'tables_jointures' => array(
),
'modeles' => array('album'),
'statut'=> array(
array(
],
'tables_jointures' => [
],
'modeles' => ['album'],
'statut' => [
[
'champ' => 'statut',
'publie' => 'publie',
'previsu' => 'prepa,publie',
'post_date' => 'date',
'exception' => array('statut','tout')
)
),
'statut_textes_instituer' => array(
'exception' => ['statut','tout']
]
],
'statut_textes_instituer' => [
'prepa' => 'album:texte_statut_prepa',
'publie' => 'album:texte_statut_publie',
'poubelle' => 'album:texte_statut_poubelle',
),
],
'texte_changer_statut' => 'album:texte_changer_statut',
);
];
// jointures sur les albums pour tous les objets
// passe apres id_auteur=>auteurs_liens et evite de le casser
$tables[]['tables_jointures'][]= 'albums_liens';
$tables[]['tables_jointures'][]= 'albums';
$tables[]['tables_jointures'][] = 'albums_liens';
$tables[]['tables_jointures'][] = 'albums';
return $tables;
}
@ -114,19 +115,19 @@ function albums_declarer_tables_objets_sql($tables) {
*/
function albums_declarer_tables_auxiliaires($tables) {
$tables['spip_albums_liens'] = array(
'field' => array(
$tables['spip_albums_liens'] = [
'field' => [
'id_album' => "bigint(21) DEFAULT '0' NOT NULL",
'id_objet' => "bigint(21) DEFAULT '0' NOT NULL",
'objet' => "VARCHAR (25) DEFAULT '' NOT NULL",
'vu' => "ENUM('non', 'oui') DEFAULT 'non' NOT NULL",
'rang_lien' => "int(4) DEFAULT '0' NOT NULL"
),
'key' => array(
],
'key' => [
'PRIMARY KEY' => 'id_album,id_objet,objet',
'KEY id_album' => 'id_album',
)
);
]
];
return $tables;
}

28
formulaires/ajouter_album.php

@ -1,4 +1,5 @@
<?php
/**
* Gestion du formulaire d'ajout d'album
*
@ -39,7 +40,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Hash du formulaire
*/
function formulaires_ajouter_album_identifier_dist($objet = '', $id_objet = 0, $redirection = '', $lier_trad = 0, $options = []) {
$hash = serialize(array($objet, $id_objet));
$hash = serialize([$objet, $id_objet]);
return $hash;
}
@ -92,7 +93,7 @@ function formulaires_ajouter_album_charger_dist($objet = '', $id_objet = 0, $red
// Valeurs du formulaire d'ajout de documents
// Hack : identifiant négatif pour l'instant, cf. medias_post_insertion()
$id_album_temp = 0-$GLOBALS['visiteur_session']['id_auteur'];
$id_album_temp = 0 - $GLOBALS['visiteur_session']['id_auteur'];
$charger_joindre_document = charger_fonction('charger', 'formulaires/joindre_document');
$valeurs_joindre_document = $charger_joindre_document(
'new',
@ -141,17 +142,18 @@ function formulaires_ajouter_album_verifier_dist($objet = '', $id_objet = 0, $re
// (présent uniquement sur celui de l'onglet choisir).
$methode = (_request('choisir_album') ? 'choisir' : 'creer');
switch ($methode) {
// Créer un nouvel album.
case 'creer':
// Erreurs du formulaire d'édition d'un album.
$verifier_editer_album = charger_fonction('verifier', 'formulaires/editer_album');
if ($erreurs_editer_album = $verifier_editer_album(
'new',
$redirection,
"$objet|$id_objet",
$lier_trad
)) {
if (
$erreurs_editer_album = $verifier_editer_album(
'new',
$redirection,
"$objet|$id_objet",
$lier_trad
)
) {
$erreurs = array_merge($erreurs, $erreurs_editer_album);
}
@ -159,7 +161,7 @@ function formulaires_ajouter_album_verifier_dist($objet = '', $id_objet = 0, $re
$verifier_joindre_document = charger_fonction('verifier', 'formulaires/joindre_document');
$erreurs_joindre_document = $verifier_joindre_document(
'new',
0-$GLOBALS['visiteur_session']['id_auteur'],
0 - $GLOBALS['visiteur_session']['id_auteur'],
'album',
'document'
);
@ -227,10 +229,8 @@ function formulaires_ajouter_album_traiter_dist($objet = '', $id_objet = 0, $red
// (présent uniquement sur celui de l'onglet choisir).
$methode = (_request('choisir_album') ? 'choisir' : 'creer');
switch ($methode) {
// Créer un nouvel album.
case 'creer':
// Traitement de l'album
// On publie d'office uniquement si l'objet à lier est lui-même publié.
if (
@ -253,7 +253,7 @@ function formulaires_ajouter_album_traiter_dist($objet = '', $id_objet = 0, $red
$id_album = $retours_editer_album['id_album'];
$url_album = generer_url_ecrire('album', 'id_album=' . $id_album);
$retours['id_album'] = $id_album;
$retours['message_ok'] = _T('album:message_id_album_ajoute', array('url'=>$url_album,'id_album'=>$id_album));
$retours['message_ok'] = _T('album:message_id_album_ajoute', ['url' => $url_album,'id_album' => $id_album]);
$ok_album = true;
include_spip('inc/joindre_document');
@ -317,7 +317,7 @@ function formulaires_ajouter_album_traiter_dist($objet = '', $id_objet = 0, $red
* @param array $ids identifiants des albums ajoutés
* @return string message js
*/
function js_ajouter_albums(string $ajaxbloc, array $params = [], array $ids = []) : string {
function js_ajouter_albums(string $ajaxbloc, array $params = [], array $ids = []): string {
if ($ids) {
$divs = [];
foreach ($ids as $id) {

21
formulaires/editer_album.php

@ -1,4 +1,5 @@
<?php
/**
* Gestion du formulaire de d'édition d'un album
*
@ -37,8 +38,8 @@ include_spip('inc/editer');
* @return string
* Hash du formulaire
*/
function formulaires_editer_album_identifier_dist($id_album = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
return serialize(array(intval($id_album), $associer_objet));
function formulaires_editer_album_identifier_dist($id_album = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = [], $hidden = '') {
return serialize([intval($id_album), $associer_objet]);
}
/**
@ -66,7 +67,7 @@ function formulaires_editer_album_identifier_dist($id_album = 'new', $retour = '
* @return array
* Environnement du formulaire
*/
function formulaires_editer_album_charger_dist($id_album = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
function formulaires_editer_album_charger_dist($id_album = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = [], $hidden = '') {
$valeurs = formulaires_editer_objet_charger('album', $id_album, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
// lorsqu'on créé un album associé à un objet, le publier d'office et donner un titre par défaut si configuré
@ -110,8 +111,8 @@ function formulaires_editer_album_charger_dist($id_album = 'new', $retour = '',
* @return array
* Tableau des erreurs
*/
function formulaires_editer_album_verifier_dist($id_album = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
return formulaires_editer_objet_verifier('album', $id_album, array());
function formulaires_editer_album_verifier_dist($id_album = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = [], $hidden = '') {
return formulaires_editer_objet_verifier('album', $id_album, []);
}
/**
@ -139,23 +140,23 @@ function formulaires_editer_album_verifier_dist($id_album = 'new', $retour = '',
* @return array
* Retours des traitements
*/
function formulaires_editer_album_traiter_dist($id_album = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
function formulaires_editer_album_traiter_dist($id_album = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = [], $hidden = '') {
// traitements génériques
$res = formulaires_editer_objet_traiter('album', $id_album, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
// peupler le titre à posteriori s'il est vide lors de la création (création rapide d'un album)
if (!intval($id_album = 'new') and !_request('titre') and $res['id_album']) {
objet_modifier('album', $res['id_album'], array('titre' => _T('album:info_nouvel_album').' '._T('info_numero_abbreviation'). $res['id_album']));
objet_modifier('album', $res['id_album'], ['titre' => _T('album:info_nouvel_album') . ' ' . _T('info_numero_abbreviation') . $res['id_album']]);
}
// un lien a prendre en compte ?
if ($associer_objet and $id_album = $res['id_album']) {
if (list($objet, $id_objet) = explode('|', $associer_objet)) {
include_spip('action/editer_liens');
objet_associer(array('album' => $id_album), array($objet => $id_objet));
objet_associer(['album' => $id_album], [$objet => $id_objet]);
if (isset($res['redirect'])) {
$res['redirect'] = ancre_url(parametre_url($res['redirect'], 'id_album', '', '&'), 'album'.$res['id_album']);
$res['redirect'] = ancre_url(parametre_url($res['redirect'], 'id_album', '', '&'), 'album' . $res['id_album']);
}
}
}
@ -167,7 +168,7 @@ function formulaires_editer_album_traiter_dist($id_album = 'new', $retour = '',
$js = "if (window.jQuery) jQuery(function(){ajaxReload('liste_albums');});";
$js = "<script type='text/javascript'>$js</script>";
if (isset($res['message_erreur'])) {
$res['message_erreur'].= $js;
$res['message_erreur'] .= $js;
} else {
$res['message_ok'] .= $js;
}

81
formulaires/migrer_albums.php

@ -1,4 +1,5 @@
<?php
/**
* Gestion du formulaire de migration d'articles en albums
*
@ -23,13 +24,13 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Environnement du formulaire
*/
function formulaires_migrer_albums_charger_dist() {
$valeurs = array(
'id_parent'=>'',
$valeurs = [
'id_parent' => '',
'toute_la_branche' => '',
'groupes_mots' => array(),
'groupes_mots' => [],
'refuser_articles' => '',
'lier_rubriques' => '',
);
];
return $valeurs;
}
@ -43,8 +44,8 @@ function formulaires_migrer_albums_charger_dist() {
* Tableau des erreurs
*/
function formulaires_migrer_albums_verifier_dist() {
$erreurs = array();
$oblis = array('id_parent');
$erreurs = [];
$oblis = ['id_parent'];
foreach ($oblis as $obli) {
if (!_request($obli)) {
@ -52,8 +53,10 @@ function formulaires_migrer_albums_verifier_dist() {
}
}
if (!isset($erreurs['groupes_mots'])
and $groupes = _request('groupes_mots')) {
if (
!isset($erreurs['groupes_mots'])
and $groupes = _request('groupes_mots')
) {
if (!is_array($groupes)) {
$erreurs['groupes_mots'] = _T('migreralbums:erreur_choix_incorrect');
} else {
@ -71,7 +74,7 @@ function formulaires_migrer_albums_verifier_dist() {
$erreurs['nb'] = $nba;
$message = sinon(singulier_ou_pluriel($nba, 'info_1_article', 'info_nb_articles'), _T('info_aucun_article'));
$message .= ' ' ._T('migreralbums:info_migration_articles');
$message .= ' ' . _T('migreralbums:info_migration_articles');
$erreurs['message_erreur'] = '';
$erreurs['confirmer'] = $message;
}
@ -94,7 +97,7 @@ function formulaires_migrer_albums_traiter_dist() {
$lier_rubriques = (_request('lier_rubriques') ? true : false);
$groupes = _request('groupes_mots');
if (!$groupes) {
$groupes = array();
$groupes = [];
}
$where_mots = migrer_albums_where_mots($groupes);
@ -102,9 +105,9 @@ function formulaires_migrer_albums_traiter_dist() {
$nb = albums_migrer_articles($where_articles, $where_mots, $refuser, $lier_rubriques);
$message = sinon(singulier_ou_pluriel($nb, 'info_1_article', 'info_nb_articles'), _T('info_aucun_article'));
$message .= ' ' ._T('migreralbums:info_migration_articles_reussi');
$message .= ' ' . _T('migreralbums:info_migration_articles_reussi');
return array('message_ok'=>$message);
return ['message_ok' => $message];
}
/**
@ -122,29 +125,31 @@ function albums_migrer_articles($where_articles, $where_mots, $refuser, $lier_ru
$res = sql_select('*', 'spip_articles', $where_articles);
while ($row = sql_fetch($res)) {
// y a-t-il deja un album associe ?
$liens = objet_trouver_liens(array('album' => '*'), array('article' => $row['id_article']));
if (!count($liens)
and $id_album = objet_inserer('album')) {
$liens = objet_trouver_liens(['album' => '*'], ['article' => $row['id_article']]);
if (
!count($liens)
and $id_album = objet_inserer('album')
) {
// associer tout de suite à l'article
objet_associer(array('album' => $id_album), array('article' => $row['id_article']));
objet_associer(['album' => $id_album], ['article' => $row['id_article']]);
// et peut-être en plus à la rubrique
if ($lier_rubriques) {
objet_associer(array('album' => $id_album), array('rubrique' => $row['id_rubrique']));
objet_associer(['album' => $id_album], ['rubrique' => $row['id_rubrique']]);
}
// réassocier les bons auteurs
if ($liens_auteurs = objet_trouver_liens(array('auteur' => '*'), array('article' => $row['id_article']))) {
$auteurs = array();
if ($liens_auteurs = objet_trouver_liens(['auteur' => '*'], ['article' => $row['id_article']])) {
$auteurs = [];
foreach ($liens_auteurs as $lien) {
$auteurs[] = $lien['id_auteur'];
}
objet_dissocier(array('auteur' => '*'), array('album' => $id_album));
objet_associer(array('auteur' => $auteurs), array('album' => $id_album));
objet_dissocier(['auteur' => '*'], ['album' => $id_album]);
objet_associer(['auteur' => $auteurs], ['album' => $id_album]);
}
// titrer et decrire
$descriptif = array();
$descriptif = [];
if (strlen($row['chapo'])) {
$descriptif[] = $row['chapo'];
}
@ -156,10 +161,10 @@ function albums_migrer_articles($where_articles, $where_mots, $refuser, $lier_ru
}
$descriptif = implode("\n\n", $descriptif);
$set = array(
$set = [
'titre' => $row['titre'],
'descriptif' => $descriptif,
);
];
objet_modifier('album', $id_album, $set);
@ -168,13 +173,13 @@ function albums_migrer_articles($where_articles, $where_mots, $refuser, $lier_ru
'D.id_document',
'spip_documents AS D JOIN spip_documents_liens AS L
ON (D.id_document=L.id_document AND L.objet="article")',
'id_objet='.intval($row['id_article'])
'id_objet=' . intval($row['id_article'])
);
if (count($docs)) {
$insert = array();
$insert = [];
foreach ($docs as $doc) {
$insert[] = array('id_document' => $doc['id_document'], 'objet' => 'album','id_objet' => $id_album);
$insert[] = ['id_document' => $doc['id_document'], 'objet' => 'album','id_objet' => $id_album];
}
sql_insertq_multi('spip_documents_liens', $insert);
}
@ -184,18 +189,18 @@ function albums_migrer_articles($where_articles, $where_mots, $refuser, $lier_ru
'M.id_mot',
'spip_mots AS M JOIN spip_mots_liens AS L
ON (M.id_mot=L.id_mot AND L.objet="article")',
'id_objet='.intval($row['id_article']).' AND ('.$where_mots.')'
'id_objet=' . intval($row['id_article']) . ' AND (' . $where_mots . ')'
);
if (count($mots)) {
$insert = array();
$insert = [];
foreach ($mots as $mot) {
$insert[] = array('id_mot'=>$mot['id_mot'],'objet'=>'album','id_objet'=>$id_album);
$insert[] = ['id_mot' => $mot['id_mot'],'objet' => 'album','id_objet' => $id_album];
}
sql_insertq_multi('spip_mots_liens', $insert);
}
// publier l'album
objet_modifier('album', $id_album, array('date' => $row['date'],'statut' => 'publie'));
objet_modifier('album', $id_album, ['date' => $row['date'],'statut' => 'publie']);
$nb++;
}
@ -204,7 +209,7 @@ function albums_migrer_articles($where_articles, $where_mots, $refuser, $lier_ru
// meme si c'est un article migre un coup avant
if (count($liens) or $id_album) {
if ($refuser) {
objet_modifier('article', $row['id_article'], array('statut' => 'refuse'));
objet_modifier('article', $row['id_article'], ['statut' => 'refuse']);
}
}
}
@ -218,14 +223,14 @@ function albums_migrer_articles($where_articles, $where_mots, $refuser, $lier_ru
*/
function migrer_albums_where_articles($id_rubrique, $branche = false) {
$where = array();
$where[] = 'statut='.sql_quote('publie');
$where = [];
$where[] = 'statut=' . sql_quote('publie');
if ($id_rubrique > 0) {
if ($branche) {
include_spip('inc/rubriques');
$where[] = sql_in('id_rubrique', calcul_branche_in($id_rubrique));
} else {
$where[] = 'id_rubrique='.intval($id_rubrique);
$where[] = 'id_rubrique=' . intval($id_rubrique);
}
}
@ -238,7 +243,7 @@ function migrer_albums_where_articles($id_rubrique, $branche = false) {
* @return array
*/
function migrer_albums_where_mots($groupes) {
$id_groupe = array();
$id_groupe = [];
$rows = sql_allfetsel('*', 'spip_groupes_mots', sql_in('id_groupe', $groupes));
foreach ($rows as $row) {
@ -250,11 +255,11 @@ function migrer_albums_where_mots($groupes) {
include_spip('action/editer_groupe_mots');
$tables_liees[] = 'albums';
$tables_liees = implode(',', $tables_liees);
groupe_mots_modifier($row['id_groupe'], array('tables_liees' => $tables_liees));
groupe_mots_modifier($row['id_groupe'], ['tables_liees' => $tables_liees]);
}
}
$where = array(sql_in('id_groupe', $id_groupe));
$where = [sql_in('id_groupe', $id_groupe)];
return $where;
}

56
inc/albums.php

@ -1,4 +1,5 @@
<?php
/**
* Fonctions du plugin Albums
*
@ -33,7 +34,7 @@ function supprimer_albums($ids_albums, $supprimer_docs_orphelins = false) {
return false;
}
if (!is_array($ids_albums)) {
$ids_albums = array(intval($ids_albums));
$ids_albums = [intval($ids_albums)];
}
// Vider les albums de leurs documents
@ -41,7 +42,7 @@ function supprimer_albums($ids_albums, $supprimer_docs_orphelins = false) {
// Nettoyer la table de liens
include_spip('action/editer_liens');
objet_dissocier(array('album'=>$ids_albums), '*');
objet_dissocier(['album' => $ids_albums], '*');
// Supprimer les albums
$in_albums = sql_in('id_album', $ids_albums);
@ -83,24 +84,25 @@ function vider_albums($ids_albums, $supprimer_docs_orphelins = false) {
return false;
}
if (!is_array($ids_albums)) {
$ids_albums = array($ids_albums);
$ids_albums = [$ids_albums];
}
$supprimer_docs_orphelins = ($supprimer_docs_orphelins==true) ? 'suppr' : '';
$supprimer_docs_orphelins = ($supprimer_docs_orphelins == true) ? 'suppr' : '';
include_spip('inc/autoriser');
include_spip('action/editer_liens');
$succes = $erreurs = array();
$succes = $erreurs = [];
foreach ($ids_albums as $id_album) {
if ($id_album = intval($id_album)
if (
$id_album = intval($id_album)
and autoriser('modifier', 'album', $id_album)
and count(objet_trouver_liens(array('document'=>'*'), array('album'=>$id_album)))
and count(objet_trouver_liens(['document' => '*'], ['album' => $id_album]))
) {
$dissocier_document = charger_fonction('dissocier_document', 'action');
$modes_documents = array('I/image','I/document','D/document'); // cf. @note
$modes_documents = ['I/image','I/document','D/document']; // cf. @note
foreach ($modes_documents as $mode) {
$dissocier_document("${id_album}-album-${mode}-${supprimer_docs_orphelins}");
// dès que l'album est vide, on arrête
if (!count(objet_trouver_liens(array('document' => '*'), array('album' => $id_album)))) {
if (!count(objet_trouver_liens(['document' => '*'], ['album' => $id_album]))) {
break;
}
}
@ -110,7 +112,7 @@ function vider_albums($ids_albums, $supprimer_docs_orphelins = false) {
}
}
return array('succes' => $succes, 'erreurs' => $erreurs);
return ['succes' => $succes, 'erreurs' => $erreurs];
}
@ -148,14 +150,15 @@ function transvaser_album($id_album, $objet, $id_objet, $remplir = true, $suppri
$nb_maj = 0;
// au besoin, on crée d'abord un album et on l'associe à l'objet
if (!intval($id_album)
if (
!intval($id_album)
and $remplir === true
) {
$id_album = objet_inserer('album');
objet_associer(array('album' => $id_album), array($objet => $id_objet));
objet_associer(['album' => $id_album], [$objet => $id_objet]);
}
if (autoriser('transvaser', 'album', $id_album, '', array('objet' => $objet, 'id_objet' => $id_objet))) {
if (autoriser('transvaser', 'album', $id_album, '', ['objet' => $objet, 'id_objet' => $id_objet])) {
$objet_source = ($remplir === true) ? $objet : 'album';
$id_objet_source = ($remplir === true) ? $id_objet : $id_album;
$objet_destination = ($remplir === true) ? 'album' : $objet;
@ -163,14 +166,15 @@ function transvaser_album($id_album, $objet, $id_objet, $remplir = true, $suppri
// changer les liens existants
// on ne peut pas changer objet et id_objet avec objet_qualifier_liens, donc on fait ça à la main
if ($liens_docs = objet_trouver_liens(array('document' => '*'), array($objet_source => $id_objet_source))
if (
$liens_docs = objet_trouver_liens(['document' => '*'], [$objet_source => $id_objet_source])
and is_array($liens_docs)
) {
foreach ($liens_docs as $lien) {
$qualif = array('objet'=>$objet_destination,'id_objet'=>$id_objet_destination);
$where = 'id_document='.intval($lien['id_document']).'
AND objet='.sql_quote($objet_source).'
AND id_objet='.intval($id_objet_source);
$qualif = ['objet' => $objet_destination,'id_objet' => $id_objet_destination];
$where = 'id_document=' . intval($lien['id_document']) . '
AND objet=' . sql_quote($objet_source) . '
AND id_objet=' . intval($id_objet_source);
$res = sql_updateq('spip_documents_liens', $qualif, $where);
if ($res === false) {
$echec = true;
@ -181,11 +185,13 @@ function transvaser_album($id_album, $objet, $id_objet, $remplir = true, $suppri
}
// en cas de vidage, dissocier l'album
// puis éventuellement le supprimer
if ($remplir === false
if (
$remplir === false
and $echec !== false
) {
objet_dissocier(array('album' => $id_album), array($objet => $id_objet));
if ($supprimer === true
objet_dissocier(['album' => $id_album], [$objet => $id_objet]);
if (
$supprimer === true
and autoriser('supprimer', 'album', $id_album)
) {
supprimer_albums($id_album);
@ -194,7 +200,7 @@ function transvaser_album($id_album, $objet, $id_objet, $remplir = true, $suppri
} else {
$echec = true;
}
return ($echec?false:$nb_maj);
return ($echec ? false : $nb_maj);
}
@ -210,10 +216,10 @@ function albums_lister_modeles() {
static $liste_modeles_albums = false;
if ($liste_modeles_albums === false) {
$liste_modeles_albums = $pre_liste = array();
$liste_modeles_albums = $pre_liste = [];
// d'abord, on liste les 2 modèles par défaut afin qu'ils soient en tête de liste
foreach (array('album.yaml','album_liste.yaml') as $modele) {
foreach (['album.yaml','album_liste.yaml'] as $modele) {
$pre_liste[$modele] = find_in_path($modele, 'modeles/');
}
// ensuite, on liste tous les modèles
@ -241,7 +247,7 @@ function albums_lister_modeles() {
*/
function infos_modele_album($fichier) {
static $infos_modeles_album = array();
static $infos_modeles_album = [];
if (!isset($infos_modeles_album[$fichier])) {
if (substr($fichier, -5) != '.yaml') {
$fichier .= '.yaml';

3
inc/marquer_doublons_albums.php

@ -1,4 +1,5 @@
<?php
/**
* Gestion de l'action pour vérifier les albums insérés dans le texte d'un objet et mettre à jour les liens.
*
@ -23,7 +24,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* @deprecated
* @uses inc_objet_marquer_albums_inseres
*/
function inc_marquer_doublons_albums_dist($champs, $id, $type, $id_table_objet, $table_objet, $table_objet_sql, $desc = [], $serveur = '') : array {
function inc_marquer_doublons_albums_dist($champs, $id, $type, $id_table_objet, $table_objet, $table_objet_sql, $desc = [], $serveur = ''): array {
$objet_marquer_albums_inseres = charger_fonction('objet_marquer_albums_inseres', 'inc');
return $objet_marquer_albums_inseres($type, $id, $champs, $serveur);
}

3
inc/objet_marquer_albums_inseres.php

@ -1,4 +1,5 @@
<?php
/**
* Gestion de l'action pour vérifier les albums insérés dans le texte d'un objet et mettre à jour les liens.
*
@ -37,7 +38,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* @return array
* Liste d'ids des albums insérés dans le texte
*/
function inc_objet_marquer_albums_inseres_dist(string $objet, int $id_objet, array $data, string $serveur = '') : array {
function inc_objet_marquer_albums_inseres_dist(string $objet, int $id_objet, array $data, string $serveur = ''): array {
$ids_albums_inseres = [];

1
inc/precharger_album.php

@ -1,4 +1,5 @@
<?php
/**
* Préchargement des formulaires d'édition des albums
*

15
modeles/album_fonctions.php

@ -1,4 +1,5 @@
<?php
/**
* Fonctions utiles au modèle album
*
@ -77,12 +78,12 @@ function balise_ALBUM_DOC_dist($p) {
'media' => " . champ_sql('media', $p) . ",
'titre' => " . champ_sql('titre', $p) . ",
'descriptif' => " . champ_sql('descriptif', $p) . ",
'credits' => " . champ_sql('credits', $p) . ",
]";
'credits' => " . champ_sql('credits', $p) . ',
]';
// Infos sur l'album
// $_contexte = "\$Pile[0]['args'] ?? []"; // uniquement présent avec #MODELE ?
$_contexte = "\$Pile[0]";
$_contexte = '$Pile[0]';
$_params = "calculer_album_params($_id_album, $_contexte)";
$_album = "array_merge(
[
@ -216,7 +217,7 @@ function balise_ALBUM_PARAMS_dist($p) {
$_id_album = champ_sql('id_album', $p);
// $_contexte = "\$Pile[0]['args'] ?? []"; // uniquement présent avec #MODELE ?
$_contexte = "\$Pile[0] ?? []";
$_contexte = '$Pile[0] ?? []';
$_valeur = interprete_argument_balise(1, $p) ?: null;
$p->code = "calculer_album_params((int) $_id_album, $_contexte, $_valeur)";
@ -246,7 +247,7 @@ function balise_ALBUM_PARAMS_dist($p) {
* Soit un tableau de params : array<string disposition, string modele_doc, string_recadrer_ratio, int recadrer_sens, int largeur, int hauteur, bool images>
* Soit une la valeur d'un param
*/
function calculer_album_params(int $id_album, ? array $contexte = [], ? string $param = null) {
function calculer_album_params(int $id_album, ?array $contexte = [], ?string $param = null) {
// On fait qu'une seule fois le travail par modèle
static $memory;
@ -330,7 +331,7 @@ function calculer_album_params(int $id_album, ? array $contexte = [], ? string $
* @return string
* `format-square`, `format-landscape_2`, `format-portrait_3`, etc.
*/
function albums_classe_ratio(string $ratio) : string {
function albums_classe_ratio(string $ratio): string {
$classe = '';
$prefixe = 'format';
@ -366,4 +367,4 @@ function albums_classe_ratio(string $ratio) : string {
}
return $classe;
}
}

3
prive/objets/resume/album_choisir_fonctions.php

@ -1,4 +1,5 @@
<?php
/**
* Fonctions nécessaire au squelette
*
@ -14,4 +15,4 @@ if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('prive/objets/resume/album_fonctions');
include_spip('prive/objets/resume/album_fonctions');

3
prive/objets/resume/album_colonne_fonctions.php

@ -1,4 +1,5 @@
<?php
/**
* Fonctions nécessaire au squelette
*
@ -14,4 +15,4 @@ if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('prive/objets/resume/album_fonctions');
include_spip('prive/objets/resume/album_fonctions');

3
prive/objets/resume/album_fonctions.php

@ -1,4 +1,5 @@
<?php
/**
* Fonctions nécessaire au squelette
*
@ -23,7 +24,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* @param string $id_album
* @return string
*/
function filtre_inserer_attributs_album(string $texte, string $id_album) : string {
function filtre_inserer_attributs_album(string $texte, string $id_album): string {
$attributs = "id=\"album$id_album\" data-objet=\"album\" data-id_objet=\"$id_album\" data-id=\"$id_album\" data-item-ordonnable ";
$needles = [
'class="box',

Loading…
Cancel
Save