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.

219 lines
6.2 KiB

5 years ago
5 years ago
5 years ago
5 years ago
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Système de publication pour l'internet *
  4. * *
  5. * Copyright © avec tendresse depuis 2001 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
  9. * Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. /**
  12. * Gestion du formulaire de d'édition d'une brève
  13. *
  14. * @package SPIP\Breves\Formulaires
  15. **/
  16. if (!defined('_ECRIRE_INC_VERSION')) {
  17. return;
  18. }
  19. include_spip('inc/actions');
  20. include_spip('inc/editer');
  21. /**
  22. * Chargement du formulaire d'édition d'une brève
  23. *
  24. * @see formulaires_editer_objet_charger()
  25. *
  26. * @param int|string $id_breve
  27. * Identifiant de la brève. 'new' pour une nouvelle brève.
  28. * @param int $id_rubrique
  29. * Identifiant de la rubrique parente (si connue)
  30. * @param string $retour
  31. * URL de redirection après le traitement
  32. * @param int $lier_trad
  33. * Identifiant de la brève que l'on cherche à traduire
  34. * @param string $config_fonc
  35. * Nom de la fonction ajoutant des configurations particulières au formulaire
  36. * @param array $row
  37. * Valeurs de la ligne SQL de la brève, si connue
  38. * @param string $hidden
  39. * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
  40. * @return array
  41. * Environnement du formulaire
  42. **/
  43. function formulaires_editer_breve_charger_dist(
  44. $id_breve = 'new',
  45. $id_rubrique = 0,
  46. $retour = '',
  47. $lier_trad = 0,
  48. $config_fonc = 'breves_edit_config',
  49. $row = array(),
  50. $hidden = ''
  51. ) {
  52. $valeurs = formulaires_editer_objet_charger(
  53. 'breve',
  54. $id_breve,
  55. $id_rubrique,
  56. $lier_trad,
  57. $retour,
  58. $config_fonc,
  59. $row,
  60. $hidden
  61. );
  62. if (intval($id_breve) and !autoriser('modifier', 'breve', intval($id_breve))) {
  63. $valeurs['editable'] = '';
  64. }
  65. // un bug a permis a un moment que des breves soient dans des sous rubriques
  66. // lorsque ce cas se presente, il faut relocaliser la breve dans son secteur, plutot que n'importe ou
  67. if ($valeurs['id_parent']) {
  68. $valeurs['id_parent'] = sql_getfetsel(
  69. 'id_secteur',
  70. 'spip_rubriques',
  71. 'id_rubrique=' . intval($valeurs['id_parent'])
  72. );
  73. }
  74. return $valeurs;
  75. }
  76. /**
  77. * Identifier le formulaire en faisant abstraction des paramètres qui
  78. * ne representent pas l'objet édité
  79. *
  80. * @param int|string $id_breve
  81. * Identifiant de la brève. 'new' pour une nouvelle brève.
  82. * @param int $id_rubrique
  83. * Identifiant de la rubrique parente (si connue)
  84. * @param string $retour
  85. * URL de redirection après le traitement
  86. * @param int $lier_trad
  87. * Identifiant de la brève que l'on cherche à traduire
  88. * @param string $config_fonc
  89. * Nom de la fonction ajoutant des configurations particulières au formulaire
  90. * @param array $row
  91. * Valeurs de la ligne SQL de la brève, si connue
  92. * @param string $hidden
  93. * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
  94. * @return string
  95. * Hash du formulaire
  96. **/
  97. function formulaires_editer_breve_identifier_dist(
  98. $id_breve = 'new',
  99. $id_rubrique = 0,
  100. $retour = '',
  101. $lier_trad = 0,
  102. $config_fonc = 'breves_edit_config',
  103. $row = array(),
  104. $hidden = ''
  105. ) {
  106. return serialize(array(intval($id_breve), $lier_trad));
  107. }
  108. /**
  109. * Choix par défaut des options de présentation
  110. *
  111. * @param array $row
  112. * Valeurs de la ligne SQL d'un mot, si connu
  113. * return array
  114. * Configuration pour le formulaire
  115. */
  116. function breves_edit_config($row) {
  117. global $spip_lang;
  118. $config = $GLOBALS['meta'];
  119. $config['lignes'] = 8;
  120. $config['langue'] = $spip_lang;
  121. $config['restreint'] = ($row['statut'] == 'publie');
  122. return $config;
  123. }
  124. /**
  125. * Vérification du formulaire d'édition d'une brève
  126. *
  127. * @see formulaires_editer_objet_verifier()
  128. *
  129. * @param int|string $id_breve
  130. * Identifiant de la brève. 'new' pour une nouvelle brève.
  131. * @param int $id_rubrique
  132. * Identifiant de la rubrique parente (si connue)
  133. * @param string $retour
  134. * URL de redirection après le traitement
  135. * @param int $lier_trad
  136. * Identifiant de la brève que l'on cherche à traduire
  137. * @param string $config_fonc
  138. * Nom de la fonction ajoutant des configurations particulières au formulaire
  139. * @param array $row
  140. * Valeurs de la ligne SQL de la brève, si connue
  141. * @param string $hidden
  142. * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
  143. * @return array
  144. * Tableau des erreurs
  145. */
  146. function formulaires_editer_breve_verifier_dist(
  147. $id_breve = 'new',
  148. $id_rubrique = 0,
  149. $retour = '',
  150. $lier_trad = 0,
  151. $config_fonc = 'breves_edit_config',
  152. $row = array(),
  153. $hidden = ''
  154. ) {
  155. // auto-renseigner le titre si il n'existe pas
  156. titre_automatique('titre', array('texte'));
  157. // on ne demande pas le titre obligatoire : il sera rempli a la volee dans editer_article si vide
  158. $erreurs = formulaires_editer_objet_verifier('breve', $id_breve, array('id_parent'));
  159. return $erreurs;
  160. }
  161. /**
  162. * Traitements du formulaire d'édition d'une brève
  163. *
  164. * @see formulaires_editer_objet_traiter()
  165. *
  166. * @param int|string $id_breve
  167. * Identifiant de la brève. 'new' pour une nouvelle brève.
  168. * @param int $id_rubrique
  169. * Identifiant de la rubrique parente (si connue)
  170. * @param string $retour
  171. * URL de redirection après le traitement
  172. * @param int $lier_trad
  173. * Identifiant de la brève que l'on cherche à traduire
  174. * @param string $config_fonc
  175. * Nom de la fonction ajoutant des configurations particulières au formulaire
  176. * @param array $row
  177. * Valeurs de la ligne SQL de la brève, si connue
  178. * @param string $hidden
  179. * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
  180. * @return array
  181. * Tableau des erreurs
  182. */
  183. function formulaires_editer_breve_traiter_dist(
  184. $id_breve = 'new',
  185. $id_rubrique = 0,
  186. $retour = '',
  187. $lier_trad = 0,
  188. $config_fonc = 'breves_edit_config',
  189. $row = array(),
  190. $hidden = ''
  191. ) {
  192. return formulaires_editer_objet_traiter(
  193. 'breve',
  194. $id_breve,
  195. $id_rubrique,
  196. $lier_trad,
  197. $retour,
  198. $config_fonc,
  199. $row,
  200. $hidden
  201. );
  202. }