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
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; |
|
}
|
|
|