You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

135 lines
3.4 KiB

<?php
/**
* Fonctions du plugin Albums
*
* @plugin Albums
* @copyright 2014
* @author Tetue, Charles Razack
* @licence GNU/GPL
* @package SPIP\Albums\Fonctions
*/
// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* critère `{orphelins}`
*
* Sélectionne les albums sans lien avec un objet éditorial
*
* @critere
*
* @param string $idb
* @param object $boucles
* @param object $crit
*/
function critere_ALBUMS_orphelins_dist($idb, &$boucles, $crit) {
$boucle = &$boucles[$idb];
$cond = $crit->cond;
$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)'";
if ($cond) {
$_quoi = '@$Pile[0]["orphelins"]';
$where = "($_quoi) ? $where : ''";
}
$boucle->where[] = $where;
}
/**
* Activer bigup sur le formulaire d'ajout d'album
*
* @param array $args
* @param \Spip\Bigup\Formulaire $formulaire
* @return \Spip\Bigup\Formulaire
*/
function inc_bigup_medias_formulaire_ajouter_album_dist($args, $formulaire) {
$formulaire->preparer_input_class(
'file', // 'file' pour rendre automatique.
['previsualiser' => true]
);
return $formulaire;
}
/**
* Description des dispositions connues pour le modèle album.
*
* On indique les traitements images éventuels, le modèle de doc à utiliser, etc.
* (parité avec les noms des paramètres du modèle album)
*
* @return array
* Tableau associatif avec la description de chaque disposition, clé `*` pour les valeurs de fallback.
* - (string) modele_doc : modèle de document à utiliser
* - (int|null|bool) largeur : largeur max des images. null = rien par défaut, false = redimensionnement interdit
* - (int|null|bool) hauteur : hauteur max des images. null = rien par défaut, false = redimensionnement interdit
* - (string|null) recadrer_ratio : ratio pour recadrer
* - (bool) images : indique si la disposition est prévue plus particulièrement pour des images
*/
function albums_decrire_dispositions(): array {
static $dispositions;
if (!is_null($dispositions)) {
return $dispositions;
}
include_spip('inc/config');
$largeur_config = lire_config('albums/img_largeur', null);
$hauteur_config = lire_config('albums/img_hauteur', null);
$dispositions = [
// 1ère de la liste = celle par défaut
'inline' => [
'largeur' => false,
'hauteur' => $hauteur_config,
'images' => true,
],
'masonry' => [
'largeur' => $largeur_config,
'hauteur' => $hauteur_config,
'images' => true,
],
'mosaic' => [
'largeur' => $largeur_config,
'hauteur' => $hauteur_config,
'images' => true,
],
'line' => [
'largeur' => false,
'hauteur' => $hauteur_config,
'images' => true,
],
'list' => [
'modele_doc' => 'file_album',
'largeur' => 50,
'hauteur' => 50,
],
'browse' => [
'modele_doc' => 'file_album',
'largeur' => 100,
'hauteur' => 100,
],
'simple' => [
'largeur' => null,
'hauteur' => null,
],
// Le fallback si disposition inconnue ou info non présente,
// avec toutes les valeurs possibles.
'*' => [
'modele_doc' => 'doc',
'largeur' => null,
'hauteur' => null,
'recadrer_ratio' => null,
'images' => false,
],
];
// Un coup de pipeline pour finir ? Peut-être plus tard.
return $dispositions;
}