Browse Source

refactor: juste quelques vérifs et commentaires plus précis

pull/21/head
tcharlss 3 months ago
parent
commit
14c2d3451e
  1. 20
      albums_pipelines.php
  2. 2
      formulaires/ajouter_album.php
  3. 32
      formulaires/editer_album.php

20
albums_pipelines.php

@ -208,21 +208,27 @@ function albums_affiche_gauche($flux) {
**/
function albums_post_insertion($flux) {
$objet = objet_type($flux['args']['table']);
$id_objet = $flux['args']['id_objet'];
include_spip('inc/autoriser');
include_spip('base/objets');
$objet = objet_type($flux['args']['table'] ?? '');
$id_objet = (int) ($flux['args']['id_objet'] ?? 0);
if (
autoriser('ajouteralbum', $objet, $id_objet)
and $id_auteur = intval($GLOBALS['visiteur_session']['id_auteur'])
$objet
and $id_objet
and autoriser('ajouteralbum', $objet, $id_objet)
and $id_auteur = (int) $GLOBALS['visiteur_session']['id_auteur']
) {
$id_temporaire = 0 - $id_auteur;
include_spip('action/editer_liens');
$id_temporaire = 0 - $id_auteur;
$liens = objet_trouver_liens(['album' => '*'], [$objet => $id_temporaire]);
foreach ($liens as $lien) {
objet_associer(['album' => $lien['id_album']], [$objet => $id_objet]);
$id_album = (int) $lien['id_album'];
// Associer l'album avec le vrai id de l'objet
objet_associer(['album' => $id_album], [$objet => $id_objet]);
}
// un simple delete pour supprimer les liens temporaires
// Supprimer les liens temporaires
sql_delete('spip_albums_liens', ['id_objet=' . $id_temporaire, 'objet=' . sql_quote($objet)]);
}

2
formulaires/ajouter_album.php

@ -252,7 +252,7 @@ function formulaires_ajouter_album_traiter_dist($objet = '', $id_objet = 0, $red
// Si album ok, on passe aux documents
if (!empty($retours_editer_album['id_album'])) {
$id_album = $retours_editer_album['id_album'];
$id_album = (int) $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', ['url' => $url_album,'id_album' => $id_album]);

32
formulaires/editer_album.php

@ -70,16 +70,20 @@ function formulaires_editer_album_identifier_dist($id_album = 'new', $retour = '
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é
// lorsqu'on créé un album associé à un objet :
// - le publier d'office
// - utiliser son titre comme valeur par défaut si c'est configuré ainsi
if (
!intval($id_album)
!(int) $id_album
and $associer_objet
and substr_count($associer_objet, '|') > 0
and [$objet, $id_objet] = explode('|', $associer_objet)
and $id_objet > 0
) {
$valeurs['statut'] = 'publie';
include_spip('inc/config');
if (!empty(lire_config('albums/utiliser_titre_defaut'))) {
$valeurs['titre'] = generer_info_entite($id_objet, $objet, 'titre');
$valeurs['titre'] = generer_info_entite($id_objet, $objet, 'titre', '*');
}
}
@ -142,17 +146,21 @@ function formulaires_editer_album_verifier_dist($id_album = 'new', $retour = '',
*/
function formulaires_editer_album_traiter_dist($id_album = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = [], $hidden = '') {
// traitements génériques
// Traitements génériques
$res = formulaires_editer_objet_traiter('album', $id_album, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
// un lien a prendre en compte ?
if ($associer_objet and $id_album = $res['id_album']) {
if ([$objet, $id_objet] = explode('|', $associer_objet)) {
include_spip('action/editer_liens');
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']);
}
// S'il y a un objet à associer
// Nb : il peut avoir un id négatif, c'est voulu
if (
$id_album = (int) $res['id_album']
and $associer_objet
and substr_count($associer_objet, '|') > 0
and [$objet, $id_objet] = explode('|', $associer_objet)
) {
include_spip('action/editer_liens');
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']);
}
}

Loading…
Cancel
Save