Nouvelle version de Bouquinerie
parent
88af4d43d9
commit
78e0c34b53
@ -1 +1,79 @@
|
||||
* text=auto !eol
|
||||
/bouq_administrations.php -text
|
||||
/bouq_autorisations.php -text
|
||||
/bouq_fonctions.php -text
|
||||
/bouq_options.php -text
|
||||
/bouq_pipelines.php -text
|
||||
formulaires/configurer_bouquinerie.html -text
|
||||
formulaires/dater_livre.html -text
|
||||
formulaires/dater_livre.php -text
|
||||
formulaires/editer_livre.html -text
|
||||
formulaires/editer_livre.php -text
|
||||
formulaires/editer_livres_auteur.html -text
|
||||
formulaires/editer_livres_auteur.php -text
|
||||
head/livre.html -text
|
||||
head/livres_auteur.html -text
|
||||
inc/precharger_livre.php -text
|
||||
lang/bouq_fr.php -text
|
||||
lang/livre_fr.php -text
|
||||
lang/livres_auteur_fr.php -text
|
||||
lang/paquet-bouq_fr.php -text
|
||||
/paquet.xml -text
|
||||
prive/ajax_item_pick.html -text
|
||||
prive/objets/contenu/livre.html -text
|
||||
prive/objets/contenu/livres_auteur.html -text
|
||||
prive/objets/infos/livre.html -text
|
||||
prive/objets/infos/livres_auteur.html -text
|
||||
prive/objets/liste/livres.html -text
|
||||
prive/objets/liste/livres_associer.html -text
|
||||
prive/objets/liste/livres_associer_fonctions.php -text
|
||||
prive/objets/liste/livres_auteurs.html -text
|
||||
prive/objets/liste/livres_auteurs_associer.html -text
|
||||
prive/objets/liste/livres_auteurs_associer_fonctions.php -text
|
||||
prive/objets/liste/livres_auteurs_lies.html -text
|
||||
prive/objets/liste/livres_auteurs_lies_fonctions.php -text
|
||||
prive/objets/liste/livres_auteurs_roles_associer.html -text
|
||||
prive/objets/liste/livres_auteurs_roles_associer_fonctions.php -text
|
||||
prive/objets/liste/livres_auteurs_roles_lies.html -text
|
||||
prive/objets/liste/livres_auteurs_roles_lies_fonctions.php -text
|
||||
prive/objets/liste/livres_lies.html -text
|
||||
prive/objets/liste/livres_lies_fonctions.php -text
|
||||
prive/objets/liste/livres_roles_associer.html -text
|
||||
prive/objets/liste/livres_roles_associer_fonctions.php -text
|
||||
prive/objets/liste/livres_roles_lies.html -text
|
||||
prive/objets/liste/livres_roles_lies_fonctions.php -text
|
||||
prive/objets/liste/objets_lies_livres_auteur.html -text
|
||||
prive/squelettes/contenu/accueil.html -text
|
||||
prive/squelettes/contenu/configurer_bouquinerie.html -text
|
||||
prive/squelettes/contenu/livre.html -text
|
||||
prive/squelettes/contenu/livre_edit.html -text
|
||||
prive/squelettes/contenu/livres.html -text
|
||||
prive/squelettes/contenu/livres_auteur.html -text
|
||||
prive/squelettes/contenu/livres_auteur_edit.html -text
|
||||
prive/squelettes/contenu/livres_auteurs.html -text
|
||||
prive/squelettes/extra/livres_auteur.html -text
|
||||
prive/squelettes/inclure/plan-livres.html -text
|
||||
prive/themes/spip/images/bouq-128.png -text
|
||||
prive/themes/spip/images/bouq-32.png -text
|
||||
prive/themes/spip/images/bouq-64.png -text
|
||||
prive/themes/spip/images/livre-12.png -text
|
||||
prive/themes/spip/images/livre-16.png -text
|
||||
prive/themes/spip/images/livre-24.png -text
|
||||
prive/themes/spip/images/livre-32.png -text
|
||||
prive/themes/spip/images/livre-new-16.png -text
|
||||
prive/themes/spip/images/livres_auteur-12.png -text
|
||||
prive/themes/spip/images/livres_auteur-16.png -text
|
||||
prive/themes/spip/images/livres_auteur-24.png -text
|
||||
prive/themes/spip/images/livres_auteur-32.png -text
|
||||
prive/themes/spip/images/livres_auteur-add-16.png -text
|
||||
prive/themes/spip/images/livres_auteur-add-24.png -text
|
||||
prive/themes/spip/images/livres_auteur-add-32.png -text
|
||||
prive/themes/spip/images/livres_auteur-del-16.png -text
|
||||
prive/themes/spip/images/livres_auteur-del-24.png -text
|
||||
prive/themes/spip/images/livres_auteur-del-32.png -text
|
||||
prive/themes/spip/images/livres_auteur-edit-16.png -text
|
||||
prive/themes/spip/images/livres_auteur-edit-24.png -text
|
||||
prive/themes/spip/images/livres_auteur-edit-32.png -text
|
||||
prive/themes/spip/images/livres_auteur-new-16.png -text
|
||||
prive/themes/spip/images/livres_auteur-new-24.png -text
|
||||
prive/themes/spip/images/livres_auteur-new-32.png -text
|
||||
|
@ -0,0 +1,66 @@
|
||||
<?php
|
||||
/**
|
||||
* Fichier gérant l'installation et désinstallation du plugin Bouquinerie
|
||||
*
|
||||
* @plugin Bouquinerie
|
||||
* @copyright 2017
|
||||
* @author Peetdu
|
||||
* @licence GNU/GPL
|
||||
* @package SPIP\Bouquinerie\Installation
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fonction d'installation et de mise à jour du plugin Bouquinerie.
|
||||
*
|
||||
* @param string $nom_meta_base_version
|
||||
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
|
||||
* @param string $version_cible
|
||||
* Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
|
||||
* @return void
|
||||
**/
|
||||
function bouq_upgrade($nom_meta_base_version, $version_cible) {
|
||||
$maj = array();
|
||||
|
||||
$maj['create'] = array(array('maj_tables', array('spip_livres', 'spip_livres_liens', 'spip_livres_auteurs', 'spip_livres_auteurs_liens')));
|
||||
|
||||
$maj['1.0.1'] = array(
|
||||
array('sql_alter',"TABLE spip_livres CHANGE `hauteur` `hauteur` VARCHAR(10) NOT NULL DEFAULT ''"),
|
||||
array('sql_alter',"TABLE spip_livres CHANGE `largeur` `largeur` VARCHAR(10) NOT NULL DEFAULT ''"),
|
||||
array('sql_alter',"TABLE spip_livres CHANGE `prix` `prix` FLOAT(6,2) NOT NULL DEFAULT 0"),
|
||||
);
|
||||
|
||||
include_spip('base/upgrade');
|
||||
maj_plugin($nom_meta_base_version, $version_cible, $maj);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fonction de désinstallation du plugin Bouquinerie.
|
||||
*
|
||||
* @param string $nom_meta_base_version
|
||||
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
|
||||
* @return void
|
||||
**/
|
||||
function bouq_vider_tables($nom_meta_base_version) {
|
||||
|
||||
sql_drop_table('spip_livres');
|
||||
sql_drop_table('spip_livres_liens');
|
||||
sql_drop_table('spip_livres_auteurs');
|
||||
sql_drop_table('spip_livres_auteurs_liens');
|
||||
|
||||
# Nettoyer les liens courants (le génie optimiser_base_disparus se chargera de nettoyer toutes les tables de liens)
|
||||
sql_delete('spip_documents_liens', sql_in('objet', array('livre', 'livres_auteur')));
|
||||
sql_delete('spip_mots_liens', sql_in('objet', array('livre', 'livres_auteur')));
|
||||
sql_delete('spip_auteurs_liens', sql_in('objet', array('livre', 'livres_auteur')));
|
||||
# Nettoyer les versionnages et forums
|
||||
sql_delete('spip_versions', sql_in('objet', array('livre', 'livres_auteur')));
|
||||
sql_delete('spip_versions_fragments', sql_in('objet', array('livre', 'livres_auteur')));
|
||||
sql_delete('spip_forum', sql_in('objet', array('livre', 'livres_auteur')));
|
||||
|
||||
effacer_meta($nom_meta_base_version);
|
||||
}
|
@ -0,0 +1,255 @@
|
||||
<?php
|
||||
/**
|
||||
* Définit les autorisations du plugin Bouquinerie
|
||||
*
|
||||
* @plugin Bouquinerie
|
||||
* @copyright 2017
|
||||
* @author Peetdu
|
||||
* @licence GNU/GPL
|
||||
* @package SPIP\Bouquinerie\Autorisations
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fonction d'appel pour le pipeline
|
||||
* @pipeline autoriser */
|
||||
function bouq_autoriser() {
|
||||
}
|
||||
|
||||
|
||||
// -----------------
|
||||
// Objet livres
|
||||
|
||||
|
||||
/**
|
||||
* Autorisation de voir un élément de menu (livres)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_livres_menu_dist($faire, $type, $id, $qui, $opt) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Autorisation de voir le bouton d'accès rapide de création (livre)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_livrecreer_menu_dist($faire, $type, $id, $qui, $opt) {
|
||||
return autoriser('creer', 'livre', '', $qui, $opt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Autorisation de créer (livre)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_livre_creer_dist($faire, $type, $id, $qui, $opt) {
|
||||
return ($qui['statut'] == '0minirezo' and !$qui['restreint'] and sql_countsel('spip_rubriques')>0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Autorisation de voir (livre)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_livre_voir_dist($faire, $type, $id, $qui, $opt) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Autorisation de modifier (livre)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_livre_modifier_dist($faire, $type, $id, $qui, $opt) {
|
||||
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Autorisation de supprimer (livre)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_livre_supprimer_dist($faire, $type, $id, $qui, $opt) {
|
||||
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Autorisation de créer l'élément (livre) dans une rubrique
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_rubrique_creerlivredans_dist($faire, $type, $id, $qui, $opt) {
|
||||
return ($id and autoriser('voir', 'rubrique', $id) and autoriser('creer', 'livre', $id));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Autorisation de lier/délier l'élément (livres)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_associerlivres_dist($faire, $type, $id, $qui, $opt) {
|
||||
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
|
||||
}// -----------------
|
||||
// Objet livres_auteurs
|
||||
|
||||
|
||||
/**
|
||||
* Autorisation de voir un élément de menu (livresauteurs)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_livresauteurs_menu_dist($faire, $type, $id, $qui, $opt) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Autorisation de voir le bouton d'accès rapide de création (livresauteur)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_livresauteurcreer_menu_dist($faire, $type, $id, $qui, $opt) {
|
||||
return autoriser('creer', 'livres_auteur', '', $qui, $opt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Autorisation de créer (livresauteur)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_livresauteur_creer_dist($faire, $type, $id, $qui, $opt) {
|
||||
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Autorisation de voir (livresauteur)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_livresauteur_voir_dist($faire, $type, $id, $qui, $opt) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Autorisation de modifier (livresauteur)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_livresauteur_modifier_dist($faire, $type, $id, $qui, $opt) {
|
||||
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Autorisation de supprimer (livresauteur)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_livresauteur_supprimer_dist($faire, $type, $id, $qui, $opt) {
|
||||
return autoriser('webmestre', '', '', $qui);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Autorisation de lier/délier l'élément (livresauteurs)
|
||||
*
|
||||
* @param string $faire Action demandée
|
||||
* @param string $type Type d'objet sur lequel appliquer l'action
|
||||
* @param int $id Identifiant de l'objet
|
||||
* @param array $qui Description de l'auteur demandant l'autorisation
|
||||
* @param array $opt Options de cette autorisation
|
||||
* @return bool true s'il a le droit, false sinon
|
||||
**/
|
||||
function autoriser_associerlivresauteurs_dist($faire, $type, $id, $qui, $opt) {
|
||||
return $qui['statut'] == '0minirezo' and !$qui['restreint'];
|
||||
}
|
||||
|
||||
/* compatibilité plugin LIM */
|
||||
if (!function_exists('autoriser_rubrique_creerlivredans')) {
|
||||
function autoriser_rubrique_creerlivredans($faire, $type, $id, $qui, $opt) {
|
||||
$quelles_rubriques = lire_config('lim_rubriques/livre');
|
||||
is_null($quelles_rubriques) ? $lim_rub = true : $lim_rub = !in_array($id,$quelles_rubriques);
|
||||
|
||||
return
|
||||
$lim_rub
|
||||
AND autoriser_rubrique_creerlivredans_dist($faire, $type, $id, $qui, $opt);
|
||||
}
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
* Fonctions utiles au plugin Bouquinerie
|
||||
*
|
||||
* @plugin Bouquinerie
|
||||
* @copyright 2017
|
||||
* @author Peetdu
|
||||
* @licence GNU/GPL
|
||||
* @package SPIP\Bouquinerie\Fonctions
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Afficher le prix avec une virgule plutôt qu'un point
|
||||
*
|
||||
* @param float $prix
|
||||
* Saisie à protéger
|
||||
* @return string
|
||||
**/
|
||||
|
||||
function bouq_prix_virgule($prix) {
|
||||
$prix = str_replace('.', ',', $prix);
|
||||
return $prix;
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
/**
|
||||
* Options au chargement du plugin Bouquinerie
|
||||
*
|
||||
* @plugin Bouquinerie
|
||||
* @copyright 2017
|
||||
* @author Peetdu
|
||||
* @licence GNU/GPL
|
||||
* @package SPIP\Bouquinerie\Options
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
@ -0,0 +1,235 @@
|
||||
<?php
|
||||
/**
|
||||
* Utilisations de pipelines par Bouquinerie
|
||||
*
|
||||
* @plugin Bouquinerie
|
||||
* @copyright 2017
|
||||
* @author Peetdu
|
||||
* @licence GNU/GPL
|
||||
* @package SPIP\Bouquinerie\Pipelines
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ajouter les objets sur les vues des parents directs
|
||||
*
|
||||
* @pipeline affiche_enfants
|
||||
* @param array $flux Données du pipeline
|
||||
* @return array Données du pipeline
|
||||
**/
|
||||
function bouq_affiche_enfants($flux) {
|
||||
if ($e = trouver_objet_exec($flux['args']['exec']) and $e['edition'] == false) {
|
||||
$id_objet = $flux['args']['id_objet'];
|
||||
|
||||
if ($e['type'] == 'rubrique') {
|
||||
|
||||
$flux['data'] .= recuperer_fond(
|
||||
'prive/objets/liste/livres',
|
||||
array(
|
||||
'titre' => _T('livre:titre_livres_rubrique'),
|
||||
'id_rubrique' => $id_objet
|
||||
)
|
||||
);
|
||||
|
||||
if (autoriser('creerlivredans', 'rubrique', $id_objet)) {
|
||||
include_spip('inc/presentation');
|
||||
$flux['data'] .= icone_verticale(
|
||||
_T('livre:icone_creer_livre'),
|
||||
generer_url_ecrire('livre_edit', "id_rubrique=$id_objet"),
|
||||
'livre-24.png',
|
||||
'new',
|
||||
'right'
|
||||
) . "<br class='nettoyeur' />";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return $flux;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ajout de contenu sur certaines pages,
|
||||
* notamment des formulaires de liaisons entre objets
|
||||
*
|
||||
* @pipeline affiche_milieu
|
||||
* @param array $flux Données du pipeline
|
||||
* @return array Données du pipeline
|
||||
*/
|
||||
function bouq_affiche_milieu($flux) {
|
||||
$texte = '';
|
||||
$e = trouver_objet_exec($flux['args']['exec']);
|
||||
|
||||
|
||||
|
||||
// livres sur les livres
|
||||
// if (!$e['edition'] and in_array($e['type'], array('livre'))) {
|
||||
// $texte .= recuperer_fond('prive/objets/editer/liens', array(
|
||||
// 'table_source' => 'livres',
|
||||
// 'objet' => $e['type'],
|
||||
// 'id_objet' => $flux['args'][$e['id_table_objet']]
|
||||
// ));
|
||||
// }
|
||||
|
||||
// livres_auteurs sur les livres
|
||||
if (!$e['edition'] and in_array($e['type'], array('livre'))) {
|
||||
$texte .= recuperer_fond('prive/objets/editer/liens', array(
|
||||
'table_source' => 'livres_auteurs',
|
||||
'objet' => $e['type'],
|
||||
'id_objet' => $flux['args'][$e['id_table_objet']]
|
||||
));
|
||||
}
|
||||
|
||||
if ($texte) {
|
||||
if ($p = strpos($flux['data'], '<!--affiche_milieu-->')) {
|
||||
$flux['data'] = substr_replace($flux['data'], $texte, $p, 0);
|
||||
} else {
|
||||
$flux['data'] .= $texte;
|
||||
}
|
||||
}
|
||||
|
||||
return $flux;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ajout de liste sur la vue d'un auteur
|
||||
*
|
||||
* @pipeline affiche_auteurs_interventions
|
||||
* @param array $flux Données du pipeline
|
||||
* @return array Données du pipeline
|
||||
*/
|
||||
function bouq_affiche_auteurs_interventions($flux) {
|
||||
if ($id_auteur = intval($flux['args']['id_auteur'])) {
|
||||
$flux['data'] .= recuperer_fond('prive/objets/liste/livres', array(
|
||||
'id_auteur' => $id_auteur,
|
||||
'titre' => _T('livre:info_livres_auteur')
|
||||
), array('ajax' => true));
|
||||
}
|
||||
return $flux;
|
||||
}
|
||||
|
||||
/**
|
||||
* Afficher le nombre d'éléments dans les parents
|
||||
*
|
||||
* @pipeline boite_infos
|
||||
* @param array $flux Données du pipeline
|
||||
* @return array Données du pipeline
|
||||
**/
|
||||
function bouq_boite_infos($flux) {
|
||||
if (isset($flux['args']['type']) and isset($flux['args']['id']) and $id = intval($flux['args']['id'])) {
|
||||
$texte = '';
|
||||
if ($flux['args']['type'] == 'rubrique' and $nb = sql_countsel('spip_livres', array("statut='publie'", 'id_rubrique=' . $id))) {
|
||||
$texte .= '<div>' . singulier_ou_pluriel($nb, 'livre:info_1_livre', 'livre:info_nb_livres') . "</div>\n";
|
||||
}
|
||||
if ($texte and $p = strpos($flux['data'], '<!--nb_elements-->')) {
|
||||
$flux['data'] = substr_replace($flux['data'], $texte, $p, 0);
|
||||
}
|
||||
}
|
||||
return $flux;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Compter les enfants d'un objet
|
||||
*
|
||||
* @pipeline objets_compte_enfants
|
||||
* @param array $flux Données du pipeline
|
||||
* @return array Données du pipeline
|
||||
**/
|
||||
function bouq_objet_compte_enfants($flux) {
|
||||
if ($flux['args']['objet'] == 'rubrique' and $id_rubrique = intval($flux['args']['id_objet'])) {
|
||||
// juste les publiés ?
|
||||
if (array_key_exists('statut', $flux['args']) and ($flux['args']['statut'] == 'publie')) {
|
||||
$flux['data']['livres'] = sql_countsel('spip_livres', 'id_rubrique= ' . intval($id_rubrique) . " AND (statut = 'publie')");
|
||||
} else {
|
||||
$flux['data']['livres'] = sql_countsel('spip_livres', 'id_rubrique= ' . intval($id_rubrique) . " AND (statut <> 'poubelle')");
|
||||
}
|
||||
}
|
||||
|
||||
return $flux;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Optimiser la base de données
|
||||
*
|
||||
* Supprime les liens orphelins de l'objet vers quelqu'un et de quelqu'un vers l'objet.
|
||||
* Supprime les liens orphelins de l'objet vers quelqu'un et de quelqu'un vers l'objet.
|
||||
* Supprime les objets à la poubelle.
|
||||
* Supprime les objets à la poubelle.
|
||||
*
|
||||
* @pipeline optimiser_base_disparus
|
||||
* @param array $flux Données du pipeline
|
||||
* @return array Données du pipeline
|
||||
*/
|
||||
function bouq_optimiser_base_disparus($flux) {
|
||||
|
||||
include_spip('action/editer_liens');
|
||||
$flux['data'] += objet_optimiser_liens(array('livre'=>'*', 'livres_auteur'=>'*'), '*');
|
||||
|
||||
sql_delete('spip_livres', "statut='poubelle' AND maj < " . $flux['args']['date']);
|
||||
|
||||
sql_delete('spip_livres_auteurs', "statut='poubelle' AND maj < " . $flux['args']['date']);
|
||||
|
||||
return $flux;
|
||||
}
|
||||
|
||||
/**
|
||||
* Synchroniser la valeur de id secteur
|
||||
*
|
||||
* @pipeline trig_propager_les_secteurs
|
||||
* @param string $flux Données du pipeline
|
||||
* @return string Données du pipeline
|
||||
**/
|
||||
function bouq_trig_propager_les_secteurs($flux) {
|
||||
|
||||
// synchroniser spip_livres
|
||||
$r = sql_select(
|
||||
'A.id_livre AS id, R.id_secteur AS secteur',
|
||||
'spip_livres AS A, spip_rubriques AS R',
|
||||
'A.id_rubrique = R.id_rubrique AND A.id_secteur <> R.id_secteur'
|
||||
);
|
||||
while ($row = sql_fetch($r)) {
|
||||
sql_update('spip_livres', array('id_secteur' => $row['secteur']), 'id_livre=' . $row['id']);
|
||||
}
|
||||
|
||||
return $flux;
|
||||
}
|
||||
|
||||
function bouq_accueil_informations($texte){
|
||||
|
||||
$nbr_livre = sql_countsel('spip_livres', "statut='publie'");
|
||||
$texte = "<div class='accueil_informations livre liste'>";
|
||||
$texte .= "<h4><a href='".generer_url_ecrire('livres')."'>"._T("livre:titre_livres")."</a></h4>";
|
||||
$texte .= "<ul class='liste-items'>";
|
||||
$texte .= "<li class='item'>" . _T("texte_statut_publies") . ": " . $nbr_livre . '</li>';
|
||||
$texte .= "</ul>";
|
||||
$texte .= "</div>";
|
||||
return $texte;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1- Ne pas jamais changer la date de parution du livre
|
||||
* 2- Pour les fiches Auteurs de livre, le statut après création est 'Publié'
|
||||
*
|
||||
* @pipeline pre_edition
|
||||
* @param array $flux Données du pipeline
|
||||
* @return array Données du pipeline
|
||||
*/
|
||||
function bouq_pre_edition($flux) {
|
||||
if ($flux['args']['table'] == 'spip_livres'
|
||||
and $flux['args']['action'] == 'instituer'
|
||||
and isset($flux['data']['statut'])) {
|
||||
$new_date = $flux['args']['date_ancienne'];
|
||||
$flux['data']['date_parution'] = $new_date;
|
||||
}
|
||||
if ($flux['args']['table'] == 'spip_livres_auteurs') {
|
||||
$flux['data']['statut'] = 'publie';
|
||||
}
|
||||
return $flux;
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
|
||||
|
||||
<h3 class="titrem"><:bouq:cfg_titre_parametrages:></h3>
|
||||
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
|
||||
<form method="post" action="#ENV{action}">
|
||||
<div>
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
|
||||
<input type="hidden" name="_meta_casier" value="bouq" />
|
||||
<p class="boutons"><span class="image_loading"> </span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
@ -0,0 +1,62 @@
|
||||
<div class="formulaire_spip formulaire_dater formulaire_#FORM-#ENV{objet}-#ENV{id,nouveau}">
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
[(#ENV{editable})
|
||||
<form method='post' action='#ENV{action}'><div>
|
||||
[(#REM) declarer les hidden qui declencheront le service du formulaire
|
||||
parametre : url d'action ]
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
]
|
||||
<div class="editer-groupe">
|
||||
#SET{name,date}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||
<div class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
|
||||
<label for="#GET{name}"><:livre:champ_date_parution_label:></label>[
|
||||
<span class='erreur_message'>(#GET{erreurs})</span>
|
||||
]
|
||||
<span class="affiche"[(#ENV{_saisie_en_cours}|et{#ENV{_editer_date}}|oui)style="display:none;"]>[(#ENV*{afficher_#GET{name}}|affdate)]</span>
|
||||
[(#ENV{editable})
|
||||
<span class="toggle_box_link"[(#ENV{_saisie_en_cours}|oui)style="display:none;"]>[<button
|
||||
class="link"
|
||||
name="_saisie_en_cours" value="X"
|
||||
onclick="var f=jQuery(this).parents('form').eq(0);f.find('.editer .input.editable').show('fast').siblings('span').add(jQuery(this).parent()).hide('fast');f.find('.boutons').show('fast');f.find('input.date').eq(0).focus();return false;"
|
||||
><:bouton_changer:><i class="over"> \(#ENV{_label_date}\)</i></button>]</span>
|
||||
<span class="input[(#ENV{_editer_date}|oui)editable]"[(#ENV{_saisie_en_cours}|et{#ENV{_editer_date}}|non)style="display:none;"]>
|
||||
<input type="text" class="text date" name="#GET{name}_jour" id="#GET{name}_jour" value="#ENV{#GET{name}_jour}" size="10"/>
|
||||
</span>
|
||||
]
|
||||
</div>
|
||||
#SET{name,date_nouvelle_edition}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||
<div class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
|
||||
<label for="#GET{name}"><:livre:champ_date_nouvelle_edition_label:></label>[
|
||||
<span class='erreur_message'>(#GET{erreurs})</span>
|
||||
]
|
||||
<span class="affiche"[(#ENV{_saisie_en_cours}|oui)style="display:none;"]>[(#ENV*{afficher_#GET{name}}|affdate|sinon{<:jour_non_connu_nc:>})]</span>
|
||||
[(#ENV{editable})
|
||||
<span class="input editable"[(#ENV{_saisie_en_cours}|non)style="display:none;"]>
|
||||
<span class="saisie_redac"[(#ENV{sans_nouvelle_edition}|oui)style="display:none;"]>
|
||||
<input type="text" class="text date" name="#GET{name}_jour" id="#GET{name}_jour" value="#ENV{#GET{name}_jour}" size="10"/>
|
||||
<br />
|
||||
</span>
|
||||
<span class="choix">
|
||||
<input type="checkbox" name="sans_nouvelle_edition" value="1"[(#ENV{sans_nouvelle_edition}|oui)checked="checked"] id="sans_nouvelle_edition"
|
||||
onclick="jQuery(this).blur();"
|
||||
onchange="if (jQuery(this).prop('checked')) jQuery(this).parent().siblings().hide('fast'); else jQuery(this).parent().siblings().show('fast');"
|
||||
/><label for="sans_nouvelle_edition"><:livre:texte_date_nouvelle_edition_nonaffichee:></label>
|
||||
</span>
|
||||
]
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
|
||||
<!--extra-->
|
||||
[(#ENV{editable})
|
||||
<p class='boutons'[(#ENV{_saisie_en_cours}|non)style="display:none;"]>
|
||||
<span class='image_loading'> </span>
|
||||
<input type='submit' class='over' name='changer' value='<:bouton_changer:>' />
|
||||
<input type='submit' class='submit' name='annuler' value='<:bouton_annuler:>' />
|
||||
<input type='submit' class='submit' name='changer' value='<:bouton_changer:>' />
|
||||
</p>
|
||||
</div></form>
|
||||
]
|
||||
</div>
|
||||
<INCLURE{fond=formulaires/dateur/inc-dateur,heure_pas} />
|
@ -0,0 +1,358 @@
|
||||
<?php
|
||||
|
||||
/***************************************************************************\
|
||||
* SPIP, Systeme de publication pour l'internet *
|
||||
* *
|
||||
* Copyright (c) 2001-2016 *
|
||||
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
|
||||
* *
|
||||
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
|
||||
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
|
||||
\***************************************************************************/
|
||||
|
||||
/**
|
||||
* Gestion du formulaire de date
|
||||
*
|
||||
* @package SPIP\Core\Formulaires
|
||||
**/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Chargement du formulaire d'édition d'une date
|
||||
*
|
||||
* @param string $objet
|
||||
* Type d'objet
|
||||
* @param int $id_objet
|
||||
* Identifiant de l'objet
|
||||
* @param string $retour
|
||||
* URL de redirection après le traitement
|
||||
* @param array|string $options
|
||||
* Options. Si string, unserialize pour obtenir un tableau.
|
||||
*
|
||||
* - date_nouvelle_edition : Permet de modifier en plus la date de rédaction antérieure
|
||||
* @return array
|
||||
* Environnement du formulaire
|
||||
**/
|
||||
function formulaires_dater_livre_charger_dist($objet, $id_objet, $retour = '', $options = array()) {
|
||||
|
||||
$objet = objet_type($objet);
|
||||
if (!$objet or !intval($id_objet)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!is_array($options)) {
|
||||
$options = unserialize($options);
|
||||
}
|
||||
|
||||
$_id_objet = id_table_objet($objet);
|
||||
$table = table_objet($objet);
|
||||
$trouver_table = charger_fonction('trouver_table', 'base');
|
||||
$desc = $trouver_table($table);
|
||||
|
||||
if (!$desc) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$champ_date = $desc['date'] ? $desc['date'] : 'date';
|
||||
if (!isset($desc['field'][$champ_date])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$valeurs = array(
|
||||
'objet' => $objet,
|
||||
'id_objet' => $id_objet,
|
||||
'id' => $id_objet,
|
||||
);
|
||||
|
||||
|
||||
$select = "$champ_date as date ,date_nouvelle_edition";
|
||||
if (isset($desc['field']['statut'])) {
|
||||
$select .= ",statut";
|
||||
}
|
||||
|
||||
|
||||
$row = sql_fetsel($select, $desc['table'], "$_id_objet=" . intval($id_objet));
|
||||
$statut = isset($row['statut']) ? $row['statut'] : 'publie'; // pas de statut => publie
|
||||
|
||||
$valeurs['editable'] = autoriser('dater', $objet, $id_objet, null, array('statut' => $statut));
|
||||
|
||||
$possedeDateNouvelleEdition = false;
|
||||
|
||||
if (isset($row['date_nouvelle_edition']) and
|
||||
$regs = recup_date($row['date_nouvelle_edition'], false)
|
||||
) {
|
||||
$annee_nouvelle_edition = $regs[0];
|
||||
$mois_nouvelle_edition = $regs[1];
|
||||
$jour_nouvelle_edition = $regs[2];
|
||||
$heure_nouvelle_edition = $regs[3];
|
||||
$minute_nouvelle_edition = $regs[4];
|
||||
$possedeDateNouvelleEdition = true;
|
||||
// attention : les vrai dates de l'annee 1 sont stockee avec +9000 => 9001
|
||||
// mais reviennent ici en annee 1 par recup_date
|
||||
// on verifie donc que le intval($row['date_nouvelle_edition']) qui ressort l'annee
|
||||
// est bien lui aussi <=1 : dans ce cas c'est une date sql 'nulle' ou presque, selon
|
||||
// le gestionnnaire sql utilise (0001-01-01 pour PG par exemple)
|
||||
if (intval($row['date_nouvelle_edition']) <= 1 and ($annee_nouvelle_edition <= 1) and ($mois_nouvelle_edition <= 1) and ($jour_nouvelle_edition <= 1)) {
|
||||
$possedeDateNouvelleEdition = false;
|
||||
}
|
||||
} else {
|
||||
$annee_nouvelle_edition = $mois_nouvelle_edition = $jour_nouvelle_edition = $heure_nouvelle_edition = $minute_nouvelle_edition = 0;
|
||||
}
|
||||
|
||||
if ($regs = recup_date($row['date'], false)) {
|
||||
$annee = $regs[0];
|
||||
$mois = $regs[1];
|
||||
$jour = $regs[2];
|
||||
$heure = $regs[3];
|
||||
$minute = $regs[4];
|
||||
}
|
||||
|
||||
// attention, si la variable s'appelle date ou date_nouvelle_edition, le compilo va
|
||||
// la normaliser, ce qu'on ne veut pas ici.
|
||||
$valeurs['afficher_date_nouvelle_edition'] = ($possedeDateNouvelleEdition ? $row['date_nouvelle_edition'] : '');
|
||||
$valeurs['date_nouvelle_edition_jour'] = dater_livre_formater_saisie_jour($jour_nouvelle_edition, $mois_nouvelle_edition, $annee_nouvelle_edition);
|
||||
$valeurs['date_nouvelle_edition_heure'] = "$heure_nouvelle_edition:$minute_nouvelle_edition";
|
||||
|
||||
$valeurs['afficher_date'] = $row['date'];
|
||||
$valeurs['date_jour'] = dater_livre_formater_saisie_jour($jour, $mois, $annee);
|
||||
$valeurs['date_heure'] = "$heure:$minute";
|
||||
|
||||
$valeurs['_editer_date_nouvelle_edition'] = true;
|
||||
|
||||
// $valeurs['sans_nouvelle_edition'] = !$possedeDateNouvelleEdition;
|
||||
|
||||
// if (isset($options['date_nouvelle_edition'])) {
|
||||
// $valeurs['_editer_date_nouvelle_edition'] = $options['date_nouvelle_edition'];
|
||||
// } else {
|
||||
// $valeurs['_editer_date_nouvelle_edition'] = ($objet == 'livre' and $possedeDateNouvelleEdition);
|
||||
// }
|
||||
$valeurs['_label_date'] = (($statut == 'publie') ? _T('texte_date_publication_objet') : _T('texte_date_creation_objet'));
|
||||
$valeurs['_saisie_en_cours'] = (_request('_saisie_en_cours') !== null or _request('date_jour') !== null);
|
||||
|
||||
// cas ou l'on ne peut pas dater mais on peut modifier la date de redac anterieure
|
||||
// https://core.spip.net/issues/3494
|
||||
$valeurs['_editer_date'] = $valeurs['editable'];
|
||||
if ($valeurs['_editer_date_nouvelle_edition'] and !$valeurs['editable']) {
|
||||
$valeurs['editable'] = autoriser('modifier', $objet, $id_objet);
|
||||
}
|
||||
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Formate la date
|
||||
*
|
||||
* @param string|int $jour
|
||||
* Numéro du jour
|
||||
* @param string|int $mois
|
||||
* Numéro du mois
|
||||
* @param string|int $annee
|
||||
* Année
|
||||
* @param string $sep
|
||||
* Séparateur
|
||||
* @return string
|
||||
* Date formatée tel que `02/10/2012`
|
||||
**/
|
||||
function dater_livre_formater_saisie_jour($jour, $mois, $annee, $sep = "/") {
|
||||
$annee = str_pad($annee, 4, '0', STR_PAD_LEFT);
|
||||
if (intval($jour)) {
|
||||
$jour = str_pad($jour, 2, '0', STR_PAD_LEFT);
|
||||
$mois = str_pad($mois, 2, '0', STR_PAD_LEFT);
|
||||
|
||||
return "$jour$sep$mois$sep$annee";
|
||||
}
|
||||
if (intval($mois)) {
|
||||
$mois = str_pad($mois, 2, '0', STR_PAD_LEFT);
|
||||
|
||||
return "$mois$sep$annee";
|
||||
}
|
||||
|
||||
return $annee;
|
||||
}
|
||||
|
||||
/**
|
||||
* Identifier le formulaire en faisant abstraction des paramètres qui
|
||||
* ne représentent pas l'objet edité
|
||||
*
|
||||
* @param string $objet
|
||||
* Type d'objet
|
||||
* @param int $id_objet
|
||||
* Identifiant de l'objet
|
||||
* @param string $retour
|
||||
* URL de redirection après le traitement
|
||||
* @param array|string $options
|
||||
* Options.
|
||||
* @return string
|
||||
* Hash du formulaire
|
||||
**/
|
||||
function formulaires_dater_livre_identifier_dist($objet, $id_objet, $retour = '', $options = array()) {
|
||||
return serialize(array($objet, $id_objet));
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifications avant traitements du formulaire d'édition d'une date
|
||||
*
|
||||
* @param string $objet
|
||||
* Type d'objet
|
||||
* @param int $id_objet
|
||||
* Identifiant de l'objet
|
||||
* @param string $retour
|
||||
* URL de redirection après le traitement
|
||||
* @param array|string $options
|
||||
* Options.
|
||||
* @return Array
|
||||
* Tableau des erreurs
|
||||
*/
|
||||
function formulaires_dater_livre_verifier_dist($objet, $id_objet, $retour = '', $options = array()) {
|
||||
$erreurs = array();
|
||||
|
||||
// ouvrir le formulaire en edition ?
|
||||
if (_request('_saisie_en_cours')) {
|
||||
$erreurs['message_erreur'] = '';
|
||||
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
foreach (array('date', 'date_nouvelle_edition') as $k) {
|
||||
if ($v = _request($k . "_jour") and !dater_livre_recuperer_date_saisie($v, $k)) {
|
||||
$erreurs[$k] = _T('format_date_incorrecte');
|
||||
} elseif ($v = _request($k . "_heure") and !dater_livre_recuperer_heure_saisie($v)) {
|
||||
$erreurs[$k] = _T('format_heure_incorrecte');
|
||||
}
|
||||
}
|
||||
|
||||
if (!_request('date_jour')) {
|
||||
$erreurs['date'] = _T('info_obligatoire');
|
||||
}
|
||||
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Traitement du formulaire d'édition d'une date
|
||||
*
|
||||
* @param string $objet
|
||||
* Type d'objet
|
||||
* @param int $id_objet
|
||||
* Identifiant de l'objet
|
||||
* @param string $retour
|
||||
* URL de redirection après le traitement
|
||||
* @param array|string $options
|
||||
* Options.
|
||||
* @return Array
|
||||
* Retours des traitements
|
||||
*/
|
||||
function formulaires_dater_livre_traiter_dist($objet, $id_objet, $retour = '', $options = array()) {
|
||||
$res = array('editable' => ' ');
|
||||
|
||||
if (_request('changer')) {
|
||||
$_id_objet = id_table_objet($objet);
|
||||
$table = table_objet($objet);
|
||||
$trouver_table = charger_fonction('trouver_table', 'base');
|
||||
$desc = $trouver_table($table);
|
||||
|
||||
if (!$desc) {
|
||||
return array('message_erreur' => _L('erreur'));
|
||||
} #impossible en principe
|
||||
|
||||
$champ_date = $desc['date'] ? $desc['date'] : 'date';
|
||||
|
||||
$set = array();
|
||||
|
||||
$charger = charger_fonction("charger", "formulaires/dater_livre/");
|
||||
$v = $charger($objet, $id_objet, $retour, $options);
|
||||
|
||||
if ($v['_editer_date']) {
|
||||
if (!$d = dater_livre_recuperer_date_saisie(_request('date_jour'))) {
|
||||
$d = array(date('Y'), date('m'), date('d'));
|
||||
}
|
||||
if (!$h = dater_livre_recuperer_heure_saisie(_request('date_heure'))) {
|
||||
$h = array(0, 0);
|
||||
}
|
||||
|
||||
$set[$champ_date] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]);
|
||||
}
|
||||
if (isset($desc['field']['date_nouvelle_edition']) and $v['_editer_date_nouvelle_edition']) {
|
||||
if (!_request('date_nouvelle_edition_jour') or _request('sans_nouvelle_edition')) {
|
||||
$set['date_nouvelle_edition'] = sql_format_date(0, 0, 0, 0, 0, 0);
|
||||
} else {
|
||||
if (!$d = dater_livre_recuperer_date_saisie(_request('date_nouvelle_edition_jour'), "date_nouvelle_edition")) {
|
||||
$d = array(date('Y'), date('m'), date('d'));
|
||||
}
|
||||
if (!$h = dater_livre_recuperer_heure_saisie(_request('date_nouvelle_edition_heure'))) {
|
||||
$h = array(0, 0);
|
||||
}
|
||||
$set['date_nouvelle_edition'] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]);
|
||||
}
|
||||
}
|
||||
if (count($set)) {
|
||||
$publie_avant = objet_test_si_publie($objet, $id_objet);
|
||||
include_spip('action/editer_objet');
|
||||
objet_modifier($objet, $id_objet, $set);
|
||||
$publie_apres = objet_test_si_publie($objet, $id_objet);
|
||||
if ($publie_avant !== $publie_apres) {
|
||||
// on refuse ajax pour forcer le rechargement de la page ici
|
||||
// on refera traiter une 2eme fois, mais c'est sans consequence
|
||||
refuser_traiter_formulaire_ajax();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($retour) {
|
||||
$res['redirect'] = $retour;
|
||||
}
|
||||
|
||||
set_request('date_jour');
|
||||
set_request('date_nouvelle_edition_jour');
|
||||
set_request('date_heure');
|
||||
set_request('date_nouvelle_edition_heure');
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupérer annee,mois,jour sur la date saisie
|
||||
*
|
||||
* @param string $post
|
||||
* @param string $quoi
|
||||
* @return array
|
||||
*/
|
||||
function dater_livre_recuperer_date_saisie($post, $quoi = "date") {
|
||||
if (!preg_match('#^(?:(?:([0-9]{1,2})[/-])?([0-9]{1,2})[/-])?([0-9]{4}|[0-9]{1,2})#', $post, $regs)) {
|
||||
return '';
|
||||
}
|
||||
if ($quoi == "date_nouvelle_edition") {
|
||||
if ($regs[3] <> '' and $regs[3] < 1001) {
|
||||
$regs[3] += 9000;
|
||||
}
|
||||
|
||||
return array($regs[3], $regs[2], $regs[1]);
|
||||
} else {
|
||||
$t = mktime(0, 0, 0, $regs[2], $regs[1], $regs[3]);
|
||||
// si la date n'est pas valide selon mktime, la refuser
|
||||
if (!$t) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return array(date('Y', $t), date('m', $t), date('d', $t));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupérer heures,minutes sur l'heure saisie
|
||||
*
|
||||
* @param string $post
|
||||
* @return array
|
||||
*/
|
||||
function dater_livre_recuperer_heure_saisie($post) {
|
||||
if (!preg_match('#([0-9]{1,2})(?:[h:](?:([0-9]{1,2}))?)?#', $post, $regs)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return array($regs[1], $regs[2]);
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
<div class='formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id_livre,nouveau}'>
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
|
||||
[(#ENV{editable})
|
||||
<form method="post" action="#ENV{action}"><div>
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
<input type="hidden" name="id_livre" value="#ENV{id_livre}" />
|
||||
<div class="editer-groupe">
|
||||
|
||||
[(#SAISIE{input, titre, obligatoire=oui,
|
||||
label=<:livre:champ_titre_label:>})]
|
||||
|
||||
[<div class="editer editer_rubrique[ (#ENV**{erreurs/id_parent}|oui)erreur]">
|
||||
<label for="id_parent"><:titre_cadre_interieur_rubrique:></label>[
|
||||
<span class="erreur_message">(#ENV**{erreurs/id_parent})</span>
|
||||
]
|
||||
(#VAL|chercher_rubrique{#ENV{id_livre},#ENV{id_parent},'livre',#ENV{id_secteur},'',0,form_simple})
|
||||
</div>]
|
||||
|
||||
[(#SAISIE{input, soustitre,
|
||||
label=<:livre:champ_soustitre_label:>})]
|
||||
|
||||
[(#SAISIE{input, volume,
|
||||
label=<:livre:champ_volume_label:>})]
|
||||
|
||||
[(#SAISIE{input, edition,
|
||||
label=<:livre:champ_edition_label:>})]
|
||||
|
||||
[(#SAISIE{input, traduction,
|
||||
label=<:livre:champ_traduction_label:>})]
|
||||
|
||||
[(#SAISIE{textarea, texte,
|
||||
label=<:livre:champ_texte_label:>,
|
||||
conteneur_class=pleine_largeur, rows=16})]
|
||||
|
||||
[(#SAISIE{textarea, extrait,
|
||||
label=<:livre:champ_extrait_label:>,
|
||||
conteneur_class=pleine_largeur, class=inserer_barre_forum, rows=8})]
|
||||
|
||||
[(#SAISIE{input, infos_sup,
|
||||
label=<:livre:champ_infos_sup_label:>})]
|
||||
|
||||
[(#SAISIE{input, isbn,
|
||||
label=<:livre:champ_isbn_label:>})]
|
||||
|
||||
[(#SAISIE{input, pages, obligatoire=oui,
|
||||
label=<:livre:champ_pages_label:>})]
|
||||
|
||||
[(#SAISIE{input, reliure,
|
||||
label=<:livre:champ_reliure_label:>,
|
||||
explication=<:livre:champ_reliure_explication:> })]
|
||||
|
||||
[(#SAISIE{input, largeur,
|
||||
label=<:livre:champ_largeur_label:>,
|
||||
explication=<:livre:champ_largeur_explication:> })]
|
||||
|
||||
[(#SAISIE{input, hauteur,
|
||||
label=<:livre:champ_hauteur_label:>,
|
||||
explication=<:livre:champ_hauteur_explication:> })]
|
||||
|
||||
[(#SAISIE{input, poids,
|
||||
label=<:livre:champ_poids_label:>,
|
||||
explication=<:livre:champ_poids_explication:> })]
|
||||
|
||||
[(#SAISIE{input, prix,
|
||||
label=<:livre:champ_prix_label:>,
|
||||
explication=<:livre:champ_prix_explication:> })]
|
||||
|
||||
</div>
|
||||
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
|
||||
<!--extra-->
|
||||
<p class="boutons"><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
|
||||
</div></form>
|
||||
]
|
||||
</div>
|
@ -0,0 +1,160 @@
|
||||
<?php
|
||||
/**
|
||||
* Gestion du formulaire de d'édition de livre
|
||||
*
|
||||
* @plugin Bouquinerie
|
||||
* @copyright 2017
|
||||
* @author Peetdu
|
||||
* @licence GNU/GPL
|
||||
* @package SPIP\Bouquinerie\Formulaires
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
include_spip('inc/actions');
|
||||
include_spip('inc/editer');
|
||||
|
||||
|
||||
/**
|
||||
* Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité
|
||||
*
|
||||
* @param int|string $id_livre
|
||||
* Identifiant du livre. 'new' pour un nouveau livre.
|
||||
* @param int $id_rubrique
|
||||
* Identifiant de l'objet parent (si connu)
|
||||
* @param string $retour
|
||||
* URL de redirection après le traitement
|
||||
* @param string $associer_objet
|
||||
* Éventuel `objet|x` indiquant de lier le livre créé à cet objet,
|
||||
* tel que `article|3`
|
||||
* @param int $lier_trad
|
||||
* Identifiant éventuel d'un livre source d'une traduction
|
||||
* @param string $config_fonc
|
||||
* Nom de la fonction ajoutant des configurations particulières au formulaire
|
||||
* @param array $row
|
||||
* Valeurs de la ligne SQL du livre, si connu
|
||||
* @param string $hidden
|
||||
* Contenu HTML ajouté en même temps que les champs cachés du formulaire.
|
||||
* @return string
|
||||
* Hash du formulaire
|
||||
*/
|
||||
function formulaires_editer_livre_identifier_dist($id_livre = 'new', $id_rubrique = 0, $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
|
||||
return serialize(array(intval($id_livre), $associer_objet));
|
||||
}
|
||||
|
||||
/**
|
||||
* Chargement du formulaire d'édition de livre
|
||||
*
|
||||
* Déclarer les champs postés et y intégrer les valeurs par défaut
|
||||
*
|
||||
* @uses formulaires_editer_objet_charger()
|
||||
*
|
||||
* @param int|string $id_livre
|
||||
* Identifiant du livre. 'new' pour un nouveau livre.
|
||||
* @param int $id_rubrique
|
||||
* Identifiant de l'objet parent (si connu)
|
||||
* @param string $retour
|
||||
* URL de redirection après le traitement
|
||||
* @param string $associer_objet
|
||||
* Éventuel `objet|x` indiquant de lier le livre créé à cet objet,
|
||||
* tel que `article|3`
|
||||
* @param int $lier_trad
|
||||
* Identifiant éventuel d'un livre source d'une traduction
|
||||
* @param string $config_fonc
|
||||
* Nom de la fonction ajoutant des configurations particulières au formulaire
|
||||
* @param array $row
|
||||
* Valeurs de la ligne SQL du livre, si connu
|
||||
* @param string $hidden
|
||||
* Contenu HTML ajouté en même temps que les champs cachés du formulaire.
|
||||
* @return array
|
||||
* Environnement du formulaire
|
||||
*/
|
||||
function formulaires_editer_livre_charger_dist($id_livre = 'new', $id_rubrique = 0, $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
|
||||
$valeurs = formulaires_editer_objet_charger('livre', $id_livre, $id_rubrique, $lier_trad, $retour, $config_fonc, $row, $hidden);
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifications du formulaire d'édition de livre
|
||||
*
|
||||
* Vérifier les champs postés et signaler d'éventuelles erreurs
|
||||
*
|
||||
* @uses formulaires_editer_objet_verifier()
|
||||
*
|
||||
* @param int|string $id_livre
|
||||
* Identifiant du livre. 'new' pour un nouveau livre.
|
||||
* @param int $id_rubrique
|
||||
* Identifiant de l'objet parent (si connu)
|
||||
* @param string $retour
|
||||
* URL de redirection après le traitement
|
||||
* @param string $associer_objet
|
||||
* Éventuel `objet|x` indiquant de lier le livre créé à cet objet,
|
||||
* tel que `article|3`
|
||||
* @param int $lier_trad
|
||||
* Identifiant éventuel d'un livre source d'une traduction
|
||||
* @param string $config_fonc
|
||||
* Nom de la fonction ajoutant des configurations particulières au formulaire
|
||||
* @param array $row
|
||||
* Valeurs de la ligne SQL du livre, si connu
|
||||
* @param string $hidden
|
||||
* Contenu HTML ajouté en même temps que les champs cachés du formulaire.
|
||||
* @return array
|
||||
* Tableau des erreurs
|
||||
*/
|
||||
function formulaires_editer_livre_verifier_dist($id_livre = 'new', $id_rubrique = 0, $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
|
||||
$erreurs = array();
|
||||
|
||||
$erreurs = formulaires_editer_objet_verifier('livre', $id_livre, array('titre', 'pages'));
|
||||
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Traitement du formulaire d'édition de livre
|
||||
*
|
||||
* Traiter les champs postés
|
||||
*
|
||||
* @uses formulaires_editer_objet_traiter()
|
||||
*
|
||||
* @param int|string $id_livre
|
||||
* Identifiant du livre. 'new' pour un nouveau livre.
|
||||
* @param int $id_rubrique
|
||||
* Identifiant de l'objet parent (si connu)
|
||||
* @param string $retour
|
||||
* URL de redirection après le traitement
|
||||
* @param string $associer_objet
|
||||
* Éventuel `objet|x` indiquant de lier le livre créé à cet objet,
|
||||
* tel que `article|3`
|
||||
* @param int $lier_trad
|
||||
* Identifiant éventuel d'un livre source d'une traduction
|
||||
* @param string $config_fonc
|
||||
* Nom de la fonction ajoutant des configurations particulières au formulaire
|
||||
* @param array $row
|
||||
* Valeurs de la ligne SQL du livre, si connu
|
||||
* @param string $hidden
|
||||
* Contenu HTML ajouté en même temps que les champs cachés du formulaire.
|
||||
* @return array
|
||||
* Retours des traitements
|
||||
*/
|
||||
function formulaires_editer_livre_traiter_dist($id_livre = 'new', $id_rubrique = 0, $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
|
||||
$retours = formulaires_editer_objet_traiter('livre', $id_livre, $id_rubrique, $lier_trad, $retour, $config_fonc, $row, $hidden);
|
||||
|
||||
// Un lien a prendre en compte ?
|
||||
if ($associer_objet and $id_livre = $retours['id_livre']) {
|
||||
list($objet, $id_objet) = explode('|', $associer_objet);
|
||||
|
||||
if ($objet and $id_objet and autoriser('modifier', $objet, $id_objet)) {
|
||||
include_spip('action/editer_liens');
|
||||
|
||||
objet_associer(array('livre' => $id_livre), array($objet => $id_objet));
|
||||
|
||||
if (isset($retours['redirect'])) {
|
||||
$retours['redirect'] = parametre_url($retours['redirect'], 'id_lien_ajoute', $id_livre, '&');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $retours;
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
<div class='formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id_livres_auteur,nouveau}'>
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
|
||||
[(#ENV{editable})
|
||||
<form method="post" action="#ENV{action}"><div>
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
<input type="hidden" name="id_livres_auteur" value="#ENV{id_livres_auteur}" />
|
||||
<div class="editer-groupe">
|
||||
|
||||
[(#SAISIE{input, nom, obligatoire=oui,
|
||||
label=<:livres_auteur:champ_nom_label:>})]
|
||||
|
||||
[(#SAISIE{input, prenom,
|
||||
label=<:livres_auteur:champ_prenom_label:>})]
|
||||
|
||||
[(#SAISIE{textarea, biographie,
|
||||
label=<:livres_auteur:champ_bio_label:>,
|
||||
conteneur_class=pleine_largeur, class=inserer_barre_edition, rows=4})]
|
||||
|
||||
<div class='editer_liens_sites fieldset'>
|
||||
<fieldset>
|
||||
<legend><:livres_auteur:info_site_web_livres_auteur:></legend>
|
||||
[(#SAISIE{input, lien_titre,
|
||||
label=<:livres_auteur:champ_lien_titre_label:>})]
|
||||
|
||||
[(#SAISIE{input, lien_url,
|
||||
label=<:livres_auteur:champ_lien_url_label:>,
|
||||
placeholder='http://...'})]
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
|
||||
<!--extra-->
|
||||
<p class="boutons"><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
|
||||
</div></form>
|
||||
]
|
||||
</div>
|
@ -0,0 +1,152 @@
|
||||
<?php
|
||||
/**
|
||||
* Gestion du formulaire de d'édition de livres_auteur
|
||||
*
|
||||
* @plugin Bouquinerie
|
||||
* @copyright 2017
|
||||
* @author Peetdu
|
||||
* @licence GNU/GPL
|
||||
* @package SPIP\Bouquinerie\Formulaires
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
include_spip('inc/actions');
|
||||
include_spip('inc/editer');
|
||||
|
||||
|
||||
/**
|
||||
* Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité
|
||||
*
|
||||
* @param int|string $id_livres_auteur
|
||||
* Identifiant du livres_auteur. 'new' pour un nouveau livres_auteur.
|
||||
* @param string $retour
|
||||
* URL de redirection après le traitement
|
||||
* @param string $associer_objet
|
||||
* Éventuel `objet|x` indiquant de lier le livres_auteur créé à cet objet,
|
||||
* tel que `article|3`
|
||||
* @param int $lier_trad
|
||||
* Identifiant éventuel d'un livres_auteur source d'une traduction
|
||||
* @param string $config_fonc
|
||||
* Nom de la fonction ajoutant des configurations particulières au formulaire
|
||||
* @param array $row
|
||||
* Valeurs de la ligne SQL du livres_auteur, si connu
|
||||
* @param string $hidden
|
||||
* Contenu HTML ajouté en même temps que les champs cachés du formulaire.
|
||||
* @return string
|
||||
* Hash du formulaire
|
||||
*/
|
||||
function formulaires_editer_livres_auteur_identifier_dist($id_livres_auteur = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
|
||||
return serialize(array(intval($id_livres_auteur), $associer_objet));
|
||||
}
|
||||
|
||||
/**
|
||||
* Chargement du formulaire d'édition de livres_auteur
|
||||
*
|
||||
* Déclarer les champs postés et y intégrer les valeurs par défaut
|
||||
*
|
||||
* @uses formulaires_editer_objet_charger()
|
||||
*
|
||||
* @param int|string $id_livres_auteur
|
||||
* Identifiant du livres_auteur. 'new' pour un nouveau livres_auteur.
|
||||
* @param string $retour
|
||||
* URL de redirection après le traitement
|
||||
* @param string $associer_objet
|
||||
* Éventuel `objet|x` indiquant de lier le livres_auteur créé à cet objet,
|
||||
* tel que `article|3`
|
||||
* @param int $lier_trad
|
||||
* Identifiant éventuel d'un livres_auteur source d'une traduction
|
||||
* @param string $config_fonc
|
||||
* Nom de la fonction ajoutant des configurations particulières au formulaire
|
||||
* @param array $row
|
||||
* Valeurs de la ligne SQL du livres_auteur, si connu
|
||||
* @param string $hidden
|
||||
* Contenu HTML ajouté en même temps que les champs cachés du formulaire.
|
||||
* @return array
|
||||
* Environnement du formulaire
|
||||
*/
|
||||
function formulaires_editer_livres_auteur_charger_dist($id_livres_auteur = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
|
||||
$valeurs = formulaires_editer_objet_charger('livres_auteur', $id_livres_auteur, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifications du formulaire d'édition de livres_auteur
|
||||
*
|
||||
* Vérifier les champs postés et signaler d'éventuelles erreurs
|
||||
*
|
||||
* @uses formulaires_editer_objet_verifier()
|
||||
*
|
||||
* @param int|string $id_livres_auteur
|
||||
* Identifiant du livres_auteur. 'new' pour un nouveau livres_auteur.
|
||||
* @param string $retour
|
||||
* URL de redirection après le traitement
|
||||
* @param string $associer_objet
|
||||
* Éventuel `objet|x` indiquant de lier le livres_auteur créé à cet objet,
|
||||
* tel que `article|3`
|
||||
* @param int $lier_trad
|
||||
* Identifiant éventuel d'un livres_auteur source d'une traduction
|
||||
* @param string $config_fonc
|
||||
* Nom de la fonction ajoutant des configurations particulières au formulaire
|
||||
* @param array $row
|
||||
* Valeurs de la ligne SQL du livres_auteur, si connu
|
||||
* @param string $hidden
|
||||
* Contenu HTML ajouté en même temps que les champs cachés du formulaire.
|
||||
* @return array
|
||||
* Tableau des erreurs
|
||||
*/
|
||||
function formulaires_editer_livres_auteur_verifier_dist($id_livres_auteur = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
|
||||
$erreurs = array();
|
||||
|
||||
$erreurs = formulaires_editer_objet_verifier('livres_auteur', $id_livres_auteur, array('nom'));
|
||||
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Traitement du formulaire d'édition de livres_auteur
|
||||
*
|
||||
* Traiter les champs postés
|
||||
*
|
||||
* @uses formulaires_editer_objet_traiter()
|
||||
*
|
||||
* @param int|string $id_livres_auteur
|
||||
* Identifiant du livres_auteur. 'new' pour un nouveau livres_auteur.
|
||||
* @param string $retour
|
||||
* URL de redirection après le traitement
|
||||
* @param string $associer_objet
|
||||
* Éventuel `objet|x` indiquant de lier le livres_auteur créé à cet objet,
|
||||
* tel que `article|3`
|
||||
* @param int $lier_trad
|
||||
* Identifiant éventuel d'un livres_auteur source d'une traduction
|
||||
* @param string $config_fonc
|
||||
* Nom de la fonction ajoutant des configurations particulières au formulaire
|
||||
* @param array $row
|
||||
* Valeurs de la ligne SQL du livres_auteur, si connu
|
||||
* @param string $hidden
|
||||
* Contenu HTML ajouté en même temps que les champs cachés du formulaire.
|
||||
* @return array
|
||||
* Retours des traitements
|
||||
*/
|
||||
function formulaires_editer_livres_auteur_traiter_dist($id_livres_auteur = 'new', $retour = '', $associer_objet = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
|
||||
$retours = formulaires_editer_objet_traiter('livres_auteur', $id_livres_auteur, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
|
||||
|
||||
// Un lien a prendre en compte ?
|
||||
if ($associer_objet and $id_livres_auteur = $retours['id_livres_auteur']) {
|
||||
list($objet, $id_objet) = explode('|', $associer_objet);
|
||||
|
||||
if ($objet and $id_objet and autoriser('modifier', $objet, $id_objet)) {
|
||||
include_spip('action/editer_liens');
|
||||
|
||||
objet_associer(array('livres_auteur' => $id_livres_auteur), array($objet => $id_objet));
|
||||
|
||||
if (isset($retours['redirect'])) {
|
||||
$retours['redirect'] = parametre_url($retours['redirect'], 'id_lien_ajoute', $id_livres_auteur, '&');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $retours;
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
<BOUCLE_contexte(LIVRES){id_livre}>
|
||||
<title>[(#TITRE|couper{80}|textebrut) : ][(#SOUSTITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
|
||||
[<meta name="description" content="(#TEXTE|couper{150}|textebrut)" />]
|
||||
[<link rel="canonical" href="(#URL_LIVRE|url_absolue)" />]
|
||||
<meta property="og:title" content="[(#TITRE|couper{80}|textebrut)]"/>
|
||||
[<meta property="og:image" content="(#LOGO_LIVRE|fichier|url_absolue)"/>]
|
||||
<meta property="og:url" content="#URL_LIVRE"/>
|
||||
<meta property="og:site_name" content="#NOM_SITE_SPIP"/>
|
||||
[<meta property="og:description" content="(#INTRODUCTION{150}|attribut_html)"/>]
|
||||
<meta name="twitter:title" content="[(#TITRE|couper{80}|textebrut)]" />
|
||||
[<meta name="twitter:image" content="(#LOGO_LIVRE|fichier|url_absolue)" />]
|
||||
[<meta name="twitter:url" content="(#URL_LIVRE|url_absolue)" />]
|
||||
</BOUCLE_contexte>
|
@ -0,0 +1,13 @@
|
||||
<BOUCLE_contexte(LIVRES_AUTEURS){id_livres_auteur}>
|
||||
<title>[(#PRENOM) ]#NOM[ - (#NOM_SITE_SPIP|textebrut)]</title>
|
||||
<meta name="description" content="[(#BIO|?{[(#BIO|couper{150}|textebrut)], 'liste des livres publiés aux éditions Arléa'})]" />
|
||||
[<link rel="canonical" href="(#URL_LIVRES_AUTEUR|url_absolue)" />]
|
||||
<meta property="og:title" content="[(#PRENOM) ]#NOM"/>
|
||||
[<meta property="og:image" content="(#LOGO_LIVRES_AUTEUR|fichier|url_absolue)"/>]
|
||||
<meta property="og:url" content="#URL_LIVRES_AUTEUR"/>
|
||||
<meta property="og:site_name" content="#NOM_SITE_SPIP"/>
|
||||
[<meta property="og:description" content="(#BIO)"/>]
|
||||
<meta name="twitter:title" content="#PRENOM #NOM" />
|
||||
[<meta name="twitter:image" content="(#LOGO_LIVRES_AUTEUR|fichier|url_absolue)" />]
|
||||
<meta name="twitter:url" content="#URL_LIVRES_AUTEUR" />
|
||||
</BOUCLE_contexte>
|
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/**
|
||||
* Préchargement des formulaires d'édition de livre
|
||||
*
|
||||
* @plugin Bouquinerie
|
||||
* @copyright 2017
|
||||
* @author Peetdu
|
||||
* @licence GNU/GPL
|
||||
* @package SPIP\Bouquinerie\Formulaires
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
include_spip('inc/precharger_objet');
|
||||
|
||||
/**
|
||||
* Retourne les valeurs à charger pour un formulaire d'édition d'un livre
|
||||
*
|
||||
* Lors d'une création, certains champs peuvent être préremplis
|
||||
* (c'est le cas des traductions)
|
||||
*
|
||||
* @param string|int $id_livre
|
||||
* Identifiant de livre, ou "new" pour une création
|
||||
* @param int $id_rubrique
|
||||
* Identifiant éventuel de la rubrique parente
|
||||
* @param int $lier_trad
|
||||
* Identifiant éventuel de la traduction de référence
|
||||
* @return array
|
||||
* Couples clés / valeurs des champs du formulaire à charger.
|
||||
**/
|
||||
function inc_precharger_livre_dist($id_livre, $id_rubrique=0, $lier_trad=0) {
|
||||
return precharger_objet('livre', $id_livre, $id_rubrique, $lier_trad, 'titre');
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupère les valeurs d'une traduction de référence pour la création
|
||||
* d'un livre (préremplissage du formulaire).
|
||||
*
|
||||
* @note
|
||||
* Fonction facultative si pas de changement dans les traitements
|
||||
*
|
||||
* @param string|int $id_livre
|
||||
* Identifiant de livre, ou "new" pour une création
|
||||
* @param int $id_rubrique
|
||||
* Identifiant éventuel de la rubrique parente
|
||||
* @param int $lier_trad
|
||||
* Identifiant éventuel de la traduction de référence
|
||||
* @return array
|
||||
* Couples clés / valeurs des champs du formulaire à charger
|
||||
**/
|
||||
function inc_precharger_traduction_livre_dist($id_livre, $id_rubrique=0, $lier_trad=0) {
|
||||
return precharger_traduction_objet('livre', $id_livre, $id_rubrique, $lier_trad, 'titre');
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$GLOBALS[$GLOBALS['idx_lang']] = array(
|
||||
|
||||
// B
|
||||
'bouq_titre' => 'Bouquinerie',
|
||||
|
||||
// C
|
||||
'cfg_exemple' => 'Exemple',
|
||||
'cfg_exemple_explication' => 'Explication de cet exemple',
|
||||
'cfg_titre_parametrages' => 'Paramétrages',
|
||||
|
||||
// T
|
||||
'titre_page_configurer_bouq' => 'Configurer Auteurs de livres',
|
||||
);
|