[SPIP Zone] [Spip-zone-commit] r28881 - in /_plugins_/_stable_/urledit: ./ action/ img_pack/ inc/ lang/ prive/ prive/formulaires/

Ca recouvre un peu ce qu'il y a dans urls_etendues, non ?

Le 29 mai 09 à 12:49, stephane@rezo.net a écrit :

Author: stephane@rezo.net
Date: Fri May 29 12:49:31 2009
New Revision: 28881

Log:
Gestion des URLs

Added:
   _plugins_/_stable_/urledit/
   _plugins_/_stable_/urledit/TODO.txt
   _plugins_/_stable_/urledit/action/
   _plugins_/_stable_/urledit/action/urledit_ajouter.php
   _plugins_/_stable_/urledit/action/urledit_supprimer.php
   _plugins_/_stable_/urledit/img_pack/
   _plugins_/_stable_/urledit/img_pack/urledit-48.png (with props)
   _plugins_/_stable_/urledit/inc/
   _plugins_/_stable_/urledit/inc/urledit.php
   _plugins_/_stable_/urledit/lang/
   _plugins_/_stable_/urledit/lang/urledit_fr.php
   _plugins_/_stable_/urledit/plugin.xml
   _plugins_/_stable_/urledit/prive/
   _plugins_/_stable_/urledit/prive/formulaires/
   _plugins_/_stable_/urledit/prive/formulaires/urledit.html
   _plugins_/_stable_/urledit/urledit_pipelines.php

Added: _plugins_/_stable_/urledit/TODO.txt

======================================================================
--- _plugins_/_stable_/urledit/TODO.txt (added)
+++ _plugins_/_stable_/urledit/TODO.txt Fri May 29 12:49:31 2009
@@ -0,0 +1,3 @@
+Rendre tout ca un peu parametrable (autorisations, droit de modif si publie...)
+gérer plusieurs URL pour un meme article (avec redirection 301 pour les anciennes URLs)
+compatibilite URL libres ?
\ No newline at end of file

Added: _plugins_/_stable_/urledit/action/urledit_ajouter.php

--- _plugins_/_stable_/urledit/action/urledit_ajouter.php (added)
+++ _plugins_/_stable_/urledit/action/urledit_ajouter.php Fri May 29 12:49:31 2009
@@ -0,0 +1,35 @@
+<?php
+
+/***************************************************************************\
+ * SPIP, Systeme de publication pour l'internet *
+ * *
+ * Copyright (c) 2001-2009 *
+ * 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. *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+// http://doc.spip.org/@action_urledit_ajouter_dist
+function action_urledit_ajouter_dist() {
+ $securiser_action = charger_fonction('securiser_action', 'inc');
+ $arg = $securiser_action();
+ list($type_objet, $id_objet) = preg_split('/\W/', $arg);
+ $id_objet = intval($id_objet);
+ /*$url = pipeline('creer_chaine_url',
+ array(
+ 'data' => _request('urlpropre'), // le vieux url_propre
+ 'objet' => array('type' => $type, 'id_objet' => $id_objet, 'titre'=>_request('urlpropre'))
+ )
+ );
+ */
+ $url = _request('urlpropre');
+ $set = array('url' => $url, 'type' => $type_objet, 'id_objet' => $id_objet, 'date' => 'NOW()');
+ if (!@sql_insertq('spip_urls', $set) > 0) {
+ //retour erreur duplicite
+ }
+}
+
+?>
\ No newline at end of file

Added: _plugins_/_stable_/urledit/action/urledit_supprimer.php

--- _plugins_/_stable_/urledit/action/urledit_supprimer.php (added)
+++ _plugins_/_stable_/urledit/action/urledit_supprimer.php Fri May 29 12:49:31 2009
@@ -0,0 +1,29 @@
+<?php
+
+/***************************************************************************\
+ * SPIP, Systeme de publication pour l'internet *
+ * *
+ * Copyright (c) 2001-2009 *
+ * 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. *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+// http://doc.spip.org/@action_urledit_supprimer_dist
+function action_urledit_supprimer_dist() {
+ $securiser_action = charger_fonction('securiser_action', 'inc');
+ $arg = $securiser_action();
+ list($type_objet, $id_objet) = preg_split('/\W/', $arg);
+ $id_objet = intval($id_objet);
+ $type_objet = _q($type_objet);
+ $url = _q(_request('urlpropre'));
+ $set = array('url='.$url, 'type='.$type_objet, 'id_objet' => $id_objet);
+
+ if (!@sql_delete('spip_urls', $set) > 0) {
+ //retour rien a effacer ?
+ }
+}
+?>
\ No newline at end of file

Added: _plugins_/_stable_/urledit/img_pack/urledit-48.png

Binary file - no diff available.

Propchange: _plugins_/_stable_/urledit/img_pack/urledit-48.png
------------------------------------------------------------------------------
   svn:mime-type = application/octet-stream

Added: _plugins_/_stable_/urledit/inc/urledit.php

--- _plugins_/_stable_/urledit/inc/urledit.php (added)
+++ _plugins_/_stable_/urledit/inc/urledit.php Fri May 29 12:49:31 2009
@@ -0,0 +1,7 @@
+<?php
+
+function autoriser_urledit_dist($faire, $type, $id, $qui, $opt) {
+ return ($qui['statut'] == '0minirezo');
+}
+
+?>
\ No newline at end of file

Added: _plugins_/_stable_/urledit/lang/urledit_fr.php

--- _plugins_/_stable_/urledit/lang/urledit_fr.php (added)
+++ _plugins_/_stable_/urledit/lang/urledit_fr.php Fri May 29 12:49:31 2009
@@ -0,0 +1,11 @@
+<?php
+
+ $GLOBALS[$GLOBALS['idx_lang']] = array(
+ 'supprimer' => "Supprimer",
+ 'ajouter' => "Ajouter",
+ 'titre_urledit' => 'Gestion des URLs',
+ 'info_urledit' => 'Attribuer une URL'
+ );
+
+?>
\ No newline at end of file

Added: _plugins_/_stable_/urledit/plugin.xml

--- _plugins_/_stable_/urledit/plugin.xml (added)
+++ _plugins_/_stable_/urledit/plugin.xml Fri May 29 12:49:31 2009
@@ -0,0 +1,18 @@
+<plugin>
+ <nom>URLs editables</nom>
+ <icon>img_pack/urledit-48.png</icon>
+ <auteur> <!-- Auteur du plugin -->
+ Stephane LAURENT <stephane@rezo.net>
+ </auteur>
+ <licence>GPL 3 - &#169; 2009</licence>
+ <version>0.1</version>
+ <etat>dev</etat>
+ <description>Edition libre des URLs</description>
+ <lien></lien> <!-- URI de documentation -->
+ <prefix>urledit</prefix>
+ <pipeline>
+ <nom>boite_infos</nom>
+ <inclure>urledit_pipelines.php</inclure>
+ </pipeline>
+ <necessite id='SPIP' version='[2.0.8;]' />
+</plugin>

Added: _plugins_/_stable_/urledit/prive/formulaires/urledit.html

--- _plugins_/_stable_/urledit/prive/formulaires/urledit.html (added)
+++ _plugins_/_stable_/urledit/prive/formulaires/urledit.html Fri May 29 12:49:31 2009
@@ -0,0 +1,23 @@
+<div class="formulaire_urledit" id="formulaire_urledit" style="margin-top:20px;">
+ <div class="titrem deplie depliant"><b><:urledit:titre_urledit:></b></div>
+ <div>
+ <B_url>
+ <ul style="list-style:none;padding-left:0">
+ <BOUCLE_url(URLS){type=#ENV{type_objet}}{id_objet}{!par date}>
+ [<li><a style="float:right;clear:right" href="[(#URL_ACTION_AUTEUR{'urledit_supprimer',#ENV{args},#ENV{redirect}}|parametre_url{urlpropre,#URL})]"><:urledit:supprimer:></a><b>(#URL)</b></li>]
+ </BOUCLE_url>
+ </ul>
+ </B_url>
+ [(#ENV{urlpropre})<br/>]
+ <//B_url>
+ <div class="cadre-e bloc_depliable blocdeplie" style="margin-top:20px;padding:5px 10px 25px 5px;">
+ <form method="get">
+ [(#URL_ACTION_AUTEUR{'urledit_ajouter',#ENV{args},#ENV{redirect}}|form_hidden)]
+ <input type="hidden" name="[id_(#ENV{type_objet})]" value="[(#ENV{id_objet})]"/>
+ <label for="urlpropre"><:urledit:info_urledit:></label>
+ <input type="text" name="urlpropre" id="urlpropre" value=""/>
+ <input type="submit" class="submit fondo" value="<:urledit:ajouter:>" style="float:right"/>
+ </form>
+ </div>
+ </div>
+</div>
\ No newline at end of file

Added: _plugins_/_stable_/urledit/urledit_pipelines.php

--- _plugins_/_stable_/urledit/urledit_pipelines.php (added)
+++ _plugins_/_stable_/urledit/urledit_pipelines.php Fri May 29 12:49:31 2009
@@ -0,0 +1,28 @@
+<?php
+function urledit_boite_infos($flux){
+ $type_objet=$flux['args']['type'];
+ $id_objet=$flux['args']['id'];
+ $statut=$flux['args']['row']['statut'];
+ if (in_array($type_objet,array('article','rubrique','breve'))) {
+ include_spip('inc/urledit');
+ include_spip('urls/propres');
+ include_spip('inc/autoriser');
+ if (autoriser($type_objet,'urledit',$id_objet)){
+ $redirect = self();
+ $args=$type_objet."-".$id_objet;
+ $urlpropre = pipeline('creer_chaine_url',
+ array(
+ 'data' => $url_propre, // le vieux url_propre
+ 'objet' => array('type' => $type, 'id_objet' => $id_objet, 'titre'=>$flux['args']['row']['titre'])
+ )
+ );
+ $contexte = array('urlpropre'=>$urlpropre,'args'=>$args,'redirect'=>$redirect,'id_objet' => $id_objet,'type_objet' => $type_objet,'statut' => $statut);
+ $fond = recuperer_fond("prive/formulaires/urledit", $contexte);
+
+ $flux['data'].=$fond;
+ }
+ }
+ return $flux;
+}
+
+?>
\ No newline at end of file

_______________________________________________
Spip-zone-commit@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone-commit

-Nicolas

--
Nicolas HOIZEY
Blog : http://www.gasteroprod.com/
Photos : http://flic.kr/nicolas-hoizey/

ouip, ça ressemble beaucoup à

Cédric

Le 29 mai 09 à 12:58, Nicolas Hoizey a écrit :

Ca recouvre un peu ce qu'il y a dans urls_etendues, non ?

Le 29 mai 09 à 12:49, stephane@rezo.net a écrit :

Author: stephane@rezo.net
Date: Fri May 29 12:49:31 2009
New Revision: 28881

Log:
Gestion des URLs
...

Le 29 mai 09 à 13:17, cedric.morin@yterium.com a écrit :

ouip, ça ressemble beaucoup à
Connexion · GitLab

Au passage, j'y ai découvert hier la possibilité de définir manuellement une URL, magique !

Par contre, la notion de « verrouillage » et « libération » ne me semble pas très intuitive, j'ai tâtonné pour comprendre. Mais c'est une excellente évolution.

Le 29 mai 09 à 12:58, Nicolas Hoizey a écrit :

Ca recouvre un peu ce qu'il y a dans urls_etendues, non ?

Le 29 mai 09 à 12:49, stephane@rezo.net a écrit :

Author: stephane@rezo.net
Date: Fri May 29 12:49:31 2009
New Revision: 28881

Log:
Gestion des URLs
...

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

-Nicolas

--
Nicolas HOIZEY
Blog : http://www.gasteroprod.com/
Photos : Nicolas Hoizey | Flickr

Nicolas Hoizey a écrit :

Le 29 mai 09 à 13:17, cedric.morin@yterium.com a écrit :

ouip, ça ressemble beaucoup à
Connexion · GitLab

Au passage, j'y ai découvert hier la possibilité de définir manuellement une URL, magique !

Par contre, la notion de « verrouillage » et « libération » ne me semble pas très intuitive, j'ai tâtonné pour comprendre. Mais c'est une excellente évolution.

quel nul, je l'avais pas vu celui la !
je regarde....

Stephane a écrit :

Nicolas Hoizey a écrit :

Le 29 mai 09 à 13:17, cedric.morin@yterium.com a écrit :

ouip, ça ressemble beaucoup à
Connexion · GitLab

Au passage, j'y ai découvert hier la possibilité de définir manuellement une URL, magique !

Par contre, la notion de « verrouillage » et « libération » ne me semble pas très intuitive, j'ai tâtonné pour comprendre. Mais c'est une excellente évolution.

quel nul, je l'avais pas vu celui la !
je regarde....

bon, alors, oui mais non...
En fait, mon besoin, c'est :
1- avoir la ou les urls visibles sur les pages articles, breves et rubriques (mots et sites aussi mais il manque un pipeline je crois)
2- pourvoir ajouter/supprimer ces urls depuis les pages articles, breves et rubriques

jusque la, ca meriterait sans doute de faire un plugin dépendant de urls_etendues qui ne fasse qu'ajouter ma petite boite, mais :
1- le comportement par défaut consistant à prendre l'url d'un autre article si elle n'est pas verrouillée me plait moyen, je prefere dans ce cas un echec, quitte à donner le lien vers l'article utilisant deja l'url (fonctionnellement et techniquement pour la gestion des droits)
2- idem pour l'ajout du numero d'article si l'url est verrouillée, bof, je prefere echouer la aussi plutot que d'ajouter le ,XX

est-ce que ca aurait un interet de rendre ca parametrable dans urls_etendues (verrouillée par defaut oui/non, ca parait simple, pour echouer en cas d'url existante, c'est plus chaud je pense) ?
auquel cas, je pourrais peut etre lui ajouter un formulaire cfg et pourquoi pas ma petite boite ajout/suppression optionnellement ?
c'est quoi la politique sur les plugin _core_, plutot pas de dépendances non ?

@++

PS : bon, d'un autre coté, c'est vraiment un tout petit plugin simpliste, qui à priori est tout a fait compatible avec urls_etendues...

Cédric

Le 29 mai 09 à 15:57, Stephane a écrit :

Stephane a écrit :

Nicolas Hoizey a écrit :

Le 29 mai 09 à 13:17, cedric.morin@yterium.com a écrit :

ouip, ça ressemble beaucoup à
Connexion · GitLab

Au passage, j'y ai découvert hier la possibilité de définir manuellement une URL, magique !

Par contre, la notion de « verrouillage » et « libération » ne me semble pas très intuitive, j'ai tâtonné pour comprendre. Mais c'est une excellente évolution.

quel nul, je l'avais pas vu celui la !
je regarde....

bon, alors, oui mais non...
En fait, mon besoin, c'est :
1- avoir la ou les urls visibles sur les pages articles, breves et rubriques (mots et sites aussi mais il manque un pipeline je crois)

oui, ça on est d'accord, c'est ce qu'il faut en terme de fonctionnement :
- l'url principale de l'objet visible directement sur l'objet
- idéalement pouvoir modifier directement l'url de l'objet sur la page concernée
- un lien du type vers 'gerer toutes les urls de cet objet', pour plus de possibilités

ce que j'ai mis en place sur urls_etendues n'est donc pas optimum encore, et mérite d'être amélioré.

2- pourvoir ajouter/supprimer ces urls depuis les pages articles, breves et rubriques

jusque la, ca meriterait sans doute de faire un plugin dépendant de urls_etendues qui ne fasse qu'ajouter ma petite boite, mais :
1- le comportement par défaut consistant à prendre l'url d'un autre article si elle n'est pas verrouillée me plait moyen, je prefere dans ce cas un echec, quitte à donner le lien vers l'article utilisant deja l'url (fonctionnellement et techniquement pour la gestion des droits)

Un echec, c'est pas si simple, car cela veut dire depublier l'objet si il n'est pas possible de lui donner une url...
Ou retourner une url permanente alors (?article13)

2- idem pour l'ajout du numero d'article si l'url est verrouillée, bof, je prefere echouer la aussi plutot que d'ajouter le ,XX

est-ce que ca aurait un interet de rendre ca parametrable dans urls_etendues (verrouillée par defaut oui/non, ca parait simple, pour echouer en cas d'url existante, c'est plus chaud je pense) ?
auquel cas, je pourrais peut etre lui ajouter un formulaire cfg et pourquoi pas ma petite boite ajout/suppression optionnellement ?
c'est quoi la politique sur les plugin _core_, plutot pas de dépendances non ?

si tu parles de cfg, en effet. Sur les autres plugins _core_ on a fait des formulaires de configuration CVT.

Cédric

cedric.morin@yterium.com a écrit :

Cédric

Le 29 mai 09 à 15:57, Stephane a écrit :

Stephane a écrit :

Nicolas Hoizey a écrit :

Le 29 mai 09 à 13:17, cedric.morin@yterium.com a écrit :

ouip, ça ressemble beaucoup à
Connexion · GitLab

Au passage, j'y ai découvert hier la possibilité de définir manuellement une URL, magique !

Par contre, la notion de « verrouillage » et « libération » ne me semble pas très intuitive, j'ai tâtonné pour comprendre. Mais c'est une excellente évolution.

quel nul, je l'avais pas vu celui la !
je regarde....

bon, alors, oui mais non...
En fait, mon besoin, c'est :
1- avoir la ou les urls visibles sur les pages articles, breves et rubriques (mots et sites aussi mais il manque un pipeline je crois)

oui, ça on est d'accord, c'est ce qu'il faut en terme de fonctionnement :
- l'url principale de l'objet visible directement sur l'objet
- idéalement pouvoir modifier directement l'url de l'objet sur la page concernée
- un lien du type vers 'gerer toutes les urls de cet objet', pour plus de possibilités

ce que j'ai mis en place sur urls_etendues n'est donc pas optimum encore, et mérite d'être amélioré.

OK, donc à priori, fonctionnellement, mon petit formulaire a sa place dans le plugin

2- pourvoir ajouter/supprimer ces urls depuis les pages articles, breves et rubriques

jusque la, ca meriterait sans doute de faire un plugin dépendant de urls_etendues qui ne fasse qu'ajouter ma petite boite, mais :
1- le comportement par défaut consistant à prendre l'url d'un autre article si elle n'est pas verrouillée me plait moyen, je prefere dans ce cas un echec, quitte à donner le lien vers l'article utilisant deja l'url (fonctionnellement et techniquement pour la gestion des droits)

Un echec, c'est pas si simple, car cela veut dire depublier l'objet si il n'est pas possible de lui donner une url...

alors oui mais non, moi, je ne m'occupe pas de la génération automatique, c'est le format d'url choisit qui le gere, et la, effectivement, si c'est deja pris, il faut bien en trouver une autre => l'ajout du ,XX pourquoi pas (ou ,artXX en url libre je suppose)
Moi le but c'est surtout :
1- de choisir l'url avant publication
2- de changer d'url (sachant qu'à priori, après publication, il vaut mieux eviter...)
3- à terme, de gerer plusieurs URL pour un meme article pour continuer à repondre aux anciennes URL (avec redirection 301 vers la derniere url déclarée)

si rien n'a été précisé à la publication (ou preview), ca rentre dans le systeme normal, en faisant au mieux à partir du titre
c'est pour ca que pour moi, il y a des actions d'ajout/suppression indépendantes de la mécanique Spip

Ou retourner une url permanente alors (?article13)

2- idem pour l'ajout du numero d'article si l'url est verrouillée, bof, je prefere echouer la aussi plutot que d'ajouter le ,XX

est-ce que ca aurait un interet de rendre ca parametrable dans urls_etendues (verrouillée par defaut oui/non, ca parait simple, pour echouer en cas d'url existante, c'est plus chaud je pense) ?
auquel cas, je pourrais peut etre lui ajouter un formulaire cfg et pourquoi pas ma petite boite ajout/suppression optionnellement ?
c'est quoi la politique sur les plugin _core_, plutot pas de dépendances non ?

si tu parles de cfg, en effet. Sur les autres plugins _core_ on a fait des formulaires de configuration CVT.

c'est ce qui me semblait, bon, faut que je m'y mette un peu à cette 2.0 moi !

bon, en attendant, je crois qu'il va rester un peu comme ca ce plugin, j'y reviendrai quand je saurai faire proprement.

En l'etat, il a l'air de fonctionner correctement, avec ou sans urls_etendues, sauf qu'il considère toutes les url existantes comme verrouillées et qu'il echoue silencieusement en cas de doublons

@++