editer_mot.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Systeme de publication pour l'internet *
  4. * *
  5. * Copyright (c) 2001-2014 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
  9. * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. if (!defined("_ECRIRE_INC_VERSION")) return;
  12. include_spip('inc/actions');
  13. include_spip('inc/editer');
  14. // http://code.spip.net/@inc_editer_mot_dist
  15. function formulaires_editer_mot_charger_dist($id_mot='new', $id_groupe=0, $retour='', $associer_objet='', $dummy1='', $dummy2='', $config_fonc='mots_edit_config', $row=array(), $hidden=''){
  16. $valeurs = formulaires_editer_objet_charger('mot',$id_mot,$id_groupe,'',$retour,$config_fonc,$row,$hidden);
  17. if ($valeurs['id_parent'] && !$valeurs['id_groupe'])
  18. $valeurs['id_groupe'] = $valeurs['id_parent'];
  19. if ($associer_objet){
  20. if (intval($associer_objet)){
  21. // compat avec l'appel de la forme ajouter_id_article
  22. $objet = 'article';
  23. $id_objet = intval($associer_objet);
  24. }
  25. else {
  26. list($objet,$id_objet) = explode('|',$associer_objet);
  27. }
  28. }
  29. $valeurs['table'] = ($associer_objet?table_objet($objet):'');
  30. // Si nouveau et titre dans l'url : fixer le titre
  31. if ($id_mot == 'oui'
  32. AND strlen($titre = _request('titre')))
  33. $valeurs['titre'] = $titre;
  34. return $valeurs;
  35. }
  36. /**
  37. * Identifier le formulaire en faisant abstraction des parametres qui
  38. * ne representent pas l'objet edite
  39. */
  40. function formulaires_editer_mot_identifier_dist($id_mot='new', $id_groupe=0, $retour='', $associer_objet='', $dummy1='', $dummy2='', $config_fonc='mots_edit_config', $row=array(), $hidden=''){
  41. return serialize(array(intval($id_mot),$associer_objet));
  42. }
  43. // Choix par defaut des options de presentation
  44. // http://code.spip.net/@articles_edit_config
  45. function mots_edit_config($row)
  46. {
  47. global $spip_ecran, $spip_lang;
  48. $config = $GLOBALS['meta'];
  49. $config['lignes'] = ($spip_ecran == "large")? 8 : 5;
  50. $config['langue'] = $spip_lang;
  51. $config['restreint'] = false;
  52. return $config;
  53. }
  54. function formulaires_editer_mot_verifier_dist($id_mot='new', $id_groupe=0, $retour='', $associer_objet='', $dummy1='', $dummy2='', $config_fonc='mots_edit_config', $row=array(), $hidden=''){
  55. $erreurs = formulaires_editer_objet_verifier('mot',$id_mot,array('titre'));
  56. // verifier qu'un mot du meme groupe n'existe pas avec le meme titre
  57. // la comparaison accepte un numero absent ou different
  58. // sinon avertir
  59. if (!count($erreurs) AND !_request('confirm_titre_mot')){
  60. if (sql_countsel("spip_mots",
  61. "titre REGEXP ".sql_quote("^([0-9]+[.] )?".preg_quote(supprimer_numero(_request('titre')))."$")
  62. ." AND id_mot<>".intval($id_mot)))
  63. $erreurs['titre'] =
  64. _T('mots:avis_doublon_mot_cle')
  65. ." <input type='hidden' name='confirm_titre_mot' value='1' />";
  66. }
  67. return $erreurs;
  68. }
  69. // http://code.spip.net/@inc_editer_mot_dist
  70. function formulaires_editer_mot_traiter_dist($id_mot='new', $id_groupe=0, $retour='', $associer_objet='', $dummy1='', $dummy2='', $config_fonc='mots_edit_config', $row=array(), $hidden=''){
  71. $res = array();
  72. set_request('redirect','');
  73. $action_editer = charger_fonction("editer_mot",'action');
  74. list($id_mot,$err) = $action_editer();
  75. if ($err){
  76. $res['message_erreur'] = $err;
  77. }
  78. else {
  79. $res['message_ok'] = "";
  80. if ($retour){
  81. if (strncmp($retour,'javascript:',11)==0){
  82. $res['message_ok'] .= '<script type="text/javascript">/*<![CDATA[*/'.substr($retour,11).'/*]]>*/</script>';
  83. $res['editable'] = true;
  84. }
  85. else {
  86. $res['redirect'] = $retour;
  87. if (strlen(parametre_url($retour,'id_mot')))
  88. $res['redirect'] = parametre_url($res['redirect'],'id_mot',$id_mot);
  89. }
  90. }
  91. if ($associer_objet){
  92. if (intval($associer_objet)){
  93. // compat avec l'appel de la forme ajouter_id_article
  94. $objet = 'article';
  95. $id_objet = intval($associer_objet);
  96. }
  97. else {
  98. list($objet,$id_objet) = explode('|',$associer_objet);
  99. }
  100. if ($objet AND $id_objet AND autoriser('modifier',$objet,$id_objet)){
  101. include_spip('action/editer_mot');
  102. mot_associer($id_mot, array($objet=>$id_objet));
  103. if (isset($res['redirect']))
  104. $res['redirect'] = parametre_url ($res['redirect'], "id_lien_ajoute", $id_mot, '&');
  105. }
  106. }
  107. }
  108. return $res;
  109. }
  110. ?>