WP File Manager
Current Path:
/
home
/
argothem
/
www
/
organecyberpresse
/
plugins
/
auto
/
albumsauto
/
v1.3.0
/
inc
/
Name
Action
..
albums_changer_mode_document - Copy.html
Edit
albums_changer_mode_document.html
Edit
albumsauto_creer_album.php
Edit
migrer_portfolio.php
Edit
Editing: migrer_portfolio.php
<?php /** * Préchargement des formulaires d'édition des albums * * @plugin Albums * @copyright 2024 * @author RealET * @licence GPL */ // Sécurité if (!defined('_ECRIRE_INC_VERSION')) { return; } /** * Fonction publique * * @return int nombre d'albums créés */ function albumsauto_migrer_portfolio(array $objets = ['article', 'rubrique'], string $titre = '') { include_spip('action/editer_objet'); include_spip('action/editer_liens'); $nb = 0; // Trouver les objets ayant au moins une image non vues dans son portfolio $trouver_table = charger_fonction('trouver_table', 'base'); // on desactive les revisions $liste_objets_versionnes = $GLOBALS['meta']['objets_versions'] ?? ''; unset($GLOBALS['meta']['objets_versions']); // et le signalement des editions $articles_modif = $GLOBALS['meta']['articles_modif'] ?? ''; $GLOBALS['meta']['articles_modif'] = 'non'; // Trouver les objets ayant au moins une image dans son portfolio $select_objets = ['id_objet', 'objet']; $from_objets = ['spip_documents INNER JOIN spip_documents_liens ON ( spip_documents.id_document = spip_documents_liens.id_document )']; $where_objets = [sql_in('objet', $objets), "mode='document'", "media='image'", "vu='non'"]; $groupby_objets = ['objet', 'id_objet']; $orderby_objets = ['id_objet']; $res_objets = sql_select($select_objets, $from_objets, $where_objets, $groupby_objets, $orderby_objets); while ($objet = sql_fetch($res_objets)) { // Trouvers les documents non vus du Portfolio de l'objet // Mémoriser la date de modif actuelle de l'objet $_id_objet = id_table_objet($objet['objet']); $id_objet = $objet['id_objet']; $table = table_objet_sql($objet['objet']); $desc = $trouver_table($table); if (isset($desc['field']['date_modif'])) { $date_modif = sql_getfetsel('date_modif', $table, "$_id_objet=$id_objet"); } else { $date_modif = null; } // Trouvers les documents du Portfolio de l'objet $select_documents = ['spip_documents.id_document', 'rang_lien']; $from_documents = ['spip_documents INNER JOIN spip_documents_liens ON ( spip_documents.id_document = spip_documents_liens.id_document )']; $where_documents = ["objet='" . $objet['objet'] . "'", 'id_objet=' . $objet['id_objet'], "mode='document'", "media='image'", "vu='non'"]; $orderby_documents = ['id_document']; $res_docs = sql_select($select_documents, $from_documents, $where_documents, '', $orderby_documents); // Créer un album avec le titre choisi pour recevoir les éléments du Portfolio // Est-ce qu'il existe déjà ? $select_album = ['spip_albums.id_album']; $from_album = ['spip_albums INNER JOIN spip_albums_liens ON ( spip_albums.id_album = spip_albums_liens.id_album )']; $where_album = ["objet='" . $objet['objet'] . "'", 'id_objet=' . $objet['id_objet'], "titre='$titre'"]; if ($album = sql_fetsel($select_album, $from_album, $where_album)) { // a) oui $id_album = $album['id_album']; } else { // b) non, le créer $id_album = objet_inserer('album'); autoriser_exception('modifier', 'album', $id_album); objet_modifier('album', $id_album, ['titre' => $titre]); autoriser_exception('modifier', 'album', $id_album, false); autoriser_exception('associer', 'album', $id_album); objet_associer(['album' => $id_album], [$objet['objet'] => $objet['id_objet']]); autoriser_exception('associer', 'album', $id_album, false); } // Y ajouter les documents + délier le document de l'objet $insert = []; $in = []; while ($doc = sql_fetch($res_docs)) { $insert[] = ['id_document' => $doc['id_document'], 'objet' => 'album','id_objet' => $id_album, 'rang_lien' => $doc['rang_lien']]; array_push($in, $doc['id_document']); } // Ajouter les documents sql_insertq_multi('spip_documents_liens', $insert); $in = sql_in('id_document', $in); // Délier le document de l'objet sql_delete('spip_documents_liens', [$in, "objet='" . $objet['objet'] . "'", 'id_objet=' . $objet['id_objet']]); // publier l'album autoriser_exception('modifier', 'album', $id_album); objet_instituer('album', $id_album, ['statut' => 'publie'], false); autoriser_exception('modifier', 'album', $id_album, false); // Restaurer la date de modification de l'objet if ($date_modif) { sql_updateq($table, ['date_modif' => $date_modif], "$_id_objet=$id_objet"); } $nb++; } // Mettre le mode image à toutes les images (peut concerner des images déjà ajoutées à un album) sql_updateq('spip_documents', ['mode' => 'image'], ["mode='document'", "media='image'"]); if ($liste_objets_versionnes) { $GLOBALS['meta']['objets_versions'] = $liste_objets_versionnes; } $GLOBALS['meta']['articles_modif'] = $articles_modif; effacer_meta('drapeau_edition'); return $nb; }