Hello,
peut on, avec crayons, appeler une vue specifique ?
j'ai mes titres avec un filtre image_typo et j'aimerai les réafficher après edition.
Je me doute qu'on peut, mais je ne vois pas comment.
une piste ?
merci.
@++
Hello,
peut on, avec crayons, appeler une vue specifique ?
j'ai mes titres avec un filtre image_typo et j'aimerai les réafficher après edition.
Je me doute qu'on peut, mais je ne vois pas comment.
une piste ?
merci.
@++
spipcarto a écrit :
Hello,
peut on, avec crayons, appeler une vue specifique ?
j'ai mes titres avec un filtre image_typo et j'aimerai les réafficher après edition.
Je me doute qu'on peut, mais je ne vois pas comment.
une piste ?
merci.@++
Oui, je pensais aussi à la table des traitements qui n'est pas prise en compte non plus au réaffichage après édition !
Pat
Salut,
spipcarto wrote:
Hello,
peut on, avec crayons, appeler une vue specifique ?
j'ai mes titres avec un filtre image_typo et j'aimerai les réafficher après edition.
Regarde cette réponse sur le forum, je pense que ça le ferait, il suffit que tu reproduises ton fragment de squelettes dans un squelettes/vues/article_titre.html
Pour éviter des répétitions, il est même envisageable que ton squelette article fasse lui-même un include de ce fragment.
--
toggg
bertrand Gugger a écrit :
spipcarto wrote:
Hello,
peut on, avec crayons, appeler une vue specifique ?
j'ai mes titres avec un filtre image_typo et j'aimerai les réafficher après edition.
Regarde cette réponse sur le forum, je pense que ça le ferait, il suffit que tu reproduises ton fragment de squelettes dans un squelettes/vues/article_titre.html
Pour éviter des répétitions, il est même envisageable que ton squelette article fasse lui-même un include de ce fragment.
Merci pour la reponse rapide.
Mais en fait, j'avais vu ca, mais je souhaite utiliser ma vue sur certains squelettes et pas d'autres, d'ou la question.
Si j'utilise #EDIT{titreimg}, il va chercher un champ titreimg, et si je fais une vue ou un controleur, il s'applique pour tous les crayons de ce type, pas moyen de faire un truc specifique pour un squelette.
En fait, je me demandais si il n'y avait pas moyen de faire #EDIT{nom,controleur,vue} mais ca parait compliqué., il faut ajouter ces parametres dans le nom de la classe et les recuperer avec la regexp
Mais je crois que je vais simplement faire un "mapping" entre titreimg et titre.
En gros faire :
$f = charger_fonction($type.'_'.$mapping_vues[$modele], 'vues', true)
OR $f = charger_fonction($type.'_'.$modele, 'vues', true)
OR $f = charger_fonction($mapping_vues[$modele], 'vues', true)
OR $f = charger_fonction($modele, 'vues', true)
OR $f = charger_fonction($type, 'vues', true)
OR $f = 'vues_dist';
Ca vous interesse pour crayons ou pas ?
J'ai intégré un fork dans un autre plugin en developpement car j'avais besoin de l'initialisation en 2 temps, mais c'est maintenant possible dans crayons, donc je vais sans doute repartir sur la version officielle.
@++
Si j'utilise #EDIT{titreimg}, il va chercher un champ titreimg
Dans ce cas il faut que tu fasses un controleur aussi, nommé titreimg,
qui le ramène sur le bon champ.
Par ailleurs il y a un système de nommage qui permet à titre_xxx
d'être automagiquement mappé sur titre (regarde dans le code, je ne
suis plus très sûr de la manière dont ça fonctionne). Donc je ne crois
pas que tu aies besoin de changer quoi que ce soit au code des
crayons.
Et, en tout état de cause tu peux commit ton nouveau couple controleur/vue
-- Fil
Fil a écrit :
Si j'utilise #EDIT{titreimg}, il va chercher un champ titreimg
Dans ce cas il faut que tu fasses un controleur aussi, nommé titreimg,
qui le ramène sur le bon champ.
c'est ce que je voulais eviter... je veux juste une vue particuliere, mais ca pourrait etre un controleur ou les fonctions...
Par ailleurs il y a un système de nommage qui permet à titre_xxx
d'être automagiquement mappé sur titre (regarde dans le code, je ne
suis plus très sûr de la manière dont ça fonctionne).
à ben c'est exactement ce que j'etais en train de faire (sauf que j'ai mis "titre__img" avec 2 "_" pour eviter un maximum de soucis avec les noms des champs) mais je n'ai rien trouvé de tel dans le code.
Je suis sur une version qui date un peu et je n'ai pas encore fait le merge, mais je ne vois pas comment il fait ca (et surout comment tu geres les champs "mon_champ")
Donc je ne crois
pas que tu aies besoin de changer quoi que ce soit au code des
crayons.
ben si, je suis dessus, mais en gros, je vais faire :
$x=explode('__',$modele);
$modele_defaut=$x[0]?$x[0]:$x;
$f = charger_fonction($type.'_'.$modele, 'vues', true)
OR $f = charger_fonction($type.'_'.$modele_defaut, 'vues', true)
OR $f = charger_fonction($modele, 'vues', true)
OR $f = charger_fonction($modele_defaut, 'vues', true)
OR $f = charger_fonction($type, 'vues', true)
OR $f = 'vues_dist';
// chercher vues/article_toto.html
// sinon vues/toto.html
$x=explode('__',$modele);
$modele_defaut=$x[0]?$x[0]:$x; if (find_in_path( ($fond = 'vues/' . $type . '_' . $modele) . '.html')
OR find_in_path( ($fond = 'vues/' . $type . '_' . $modele_defaut) . '.html')
OR find_in_path( ($fond = 'vues/' . $modele) .'.html')
OR find_in_path( ($fond = 'vues/' . $modele_defaut) .'.html')
OR find_in_path( ($fond = 'vues/' . $type) .'.html')) {
idem pour le store.
mais je dois encore reporter ca sur le controle des droits et la recuperation de la valeur.
mais j'ai peut etre raté quelque chose...
Et, en tout état de cause tu peux commit ton nouveau couple controleur/vue
heu, ma vue est specifique, je ne pense pas que ca ait un interet :
<BOUCLE_a(ARTICLES){id_article}{statut==.}>
[(#INCLURE{fond=tetris_imgtypo}{texte=#SURTITRE}{style=onglet_principal}{id_rubrique}{id_article})]
</BOUCLE_a>
tetris_imgtypo collectant des mots clés dans la hierarchie pour savoir quelle couleur et quelle typo appliquer...
bref, c'est vraiment specifique et lié à ma gestion des parametres par mot clé
@++
>> Si j'utilise #EDIT{titreimg}, il va chercher un champ titreimg
>
> Dans ce cas il faut que tu fasses un controleur aussi, nommé titreimg,
> qui le ramène sur le bon champ.
c'est ce que je voulais eviter... je veux juste une vue particuliere,
mais ca pourrait etre un controleur ou les fonctions...
Un contrôleur basique c'est vraiment simple à faire, mais tu n'as pas
tort, c'est pas normal d'être obligé de faire un controleur si on veut
juste créer une variante de vue.
> Par ailleurs il y a un système de nommage qui permet à titre_xxx
> d'être automagiquement mappé sur titre (regarde dans le code, je ne
> suis plus très sûr de la manière dont ça fonctionne).
à ben c'est exactement ce que j'etais en train de faire (sauf que j'ai
mis "titre__img" avec 2 "_" pour eviter un maximum de soucis avec les
noms des champs) mais je n'ai rien trouvé de tel dans le code.
Non en effet, désolé ; le format actuel des crayons c'est
type-champ-id (article-titre-12), et les controleurs qu'on cherche
sont de la forme type_champ.html puis champ.html puis type.html
$x=explode('__',$modele);
Je n'aime pas cette syntaxe. Le double _ c'est difficile à lire, ça
risque d'être abscons (déjà que...). Je vois dans _PREG_CRAYON que id
peut être suivi d'un mot, mais je ne sais pas à quoi ça sert !! Ca
pourrait servir pour préciser une variante ? SInon un "_variante" ou
":variante" à la fin de la classe ?
heu, ma vue est specifique, je ne pense pas que ca ait un interet :
Ah ouiche ; je croyais que tu parlais d'un simple |image_typo ![]()
-- Fil
Fil a écrit :
> Par ailleurs il y a un système de nommage qui permet à titre_xxx
> d'être automagiquement mappé sur titre (regarde dans le code, je ne
> suis plus très sûr de la manière dont ça fonctionne).
à ben c'est exactement ce que j'etais en train de faire (sauf que j'ai
mis "titre__img" avec 2 "_" pour eviter un maximum de soucis avec les
noms des champs) mais je n'ai rien trouvé de tel dans le code.Non en effet, désolé ; le format actuel des crayons c'est
type-champ-id (article-titre-12), et les controleurs qu'on cherche
sont de la forme type_champ.html puis champ.html puis type.html
En fait, il faudrait vraiment gerer ca en changeant le format pour "type-champ-id-variante"
Le coup de mettre la variante dans le nom du champ, c'est un peu merdique (ca marche chez moi, mais c'est loin d'erte lisible ... )
$x=explode('__',$modele);
Je n'aime pas cette syntaxe. Le double _ c'est difficile à lire, ça
risque d'être abscons (déjà que...). Je vois dans _PREG_CRAYON que id
peut être suivi d'un mot, mais je ne sais pas à quoi ça sert !!
Je crois avoir compris qu'avec un +, ca rajoute le nom du champ comme classe...
C'est en partie à cause de ca que je n'ai pas modifié le format mais que je suis passé directement par le nom du champ.
Après, j'ai procédé par elimination :
- ca doit passer dans un nom de classe
- ne pas contenir de "-"
- ne pas reiquer de confiit avec un nom de champ
c'est pour ca que j'ai pris le "__" mais si tu as une meilleure idée, je suis preneur...
Ca
pourrait servir pour préciser une variante ? SInon un "_variante"
il faudrait deja bien comprendre à quoi ca sert...
ou
":variante" à la fin de la classe ?
oui, c'est sur que ca serait mieux.
Mais j'ai à peine mis le doigt dedans, et je me dis deja qu'il faudrait en plus pouvoir passer un parametre (au moins à la vue)...
Je vais deja essayer de stabiliser tout ca et de me mettre à jour (je suis sur mon fork qui n'est à priori plus necessaire puisqu'on peut maintenant initialiser les crayons à la demande)
@++
> Je vois dans _PREG_CRAYON que id
> peut être suivi d'un mot, mais je ne sais pas à quoi ça sert !!
svn blame m'indique :
10214 cedric@yterium.com define('_PREG_CRAYON',
',crayon\b[^<>\'"]+\b((\w+)-(\w+)-(\d+(?:-\w+)?))\b,');
donc c'est pour laisser passer des clés primaires multiples.
En termes de syntaxe, je crois que le mieux serait qu'une variante
soit donnée par :xxxx à la fin du nom de la classe.
-- Fil
Fil a écrit :
Je vois dans _PREG_CRAYON que id
peut être suivi d'un mot, mais je ne sais pas à quoi ça sert !!
svn blame m'indique :
10214 cedric@yterium.com define('_PREG_CRAYON',
',crayon\b[^<>\'"]+\b((\w+)-(\w+)-(\d+(?:-\w+)?))\b,');donc c'est pour laisser passer des clés primaires multiples.
ah voila oui je cherchais desesperemment pourquoi j'avais fait ca ![]()
c'est pour la table spip_forms_champs qui n'a qu'une cle primaire multiple
En termes de syntaxe, je crois que le mieux serait qu'une variante
soit donnée par :xxxx à la fin du nom de la classe.-- Fil
_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone
Fil a écrit :
En termes de syntaxe, je crois que le mieux serait qu'une variante
soit donnée par :xxxx à la fin du nom de la classe.
moi je pensais plutot à un truc comme ca (variante collée au champ):
crayon\b[^<>\'"]+\b((\w+)-(\w+(?:-\w+)?)-(\d+(?:-\w+)?))\b,')
mais ca va etre gelere de recuperer les elements derriere...
c'est sans doute mieux de se placer tout à la fin, mais comme il y a deja la gestion de la clé double...
Peut etre en fonction du type : si c'est numerique, c'est une clé, si c'est du texte, c'est une variante ?
spipcarto a écrit :
Fil a écrit :
En termes de syntaxe, je crois que le mieux serait qu'une variante
soit donnée par :xxxx à la fin du nom de la classe.moi je pensais plutot à un truc comme ca (variante collée au champ):
crayon\b[^<>\'"]+\b((\w+)-(\w+(?:-\w+)?)-(\d+(?:-\w+)?))\b,')
mais ca va etre gelere de recuperer les elements derriere...c'est sans doute mieux de se placer tout à la fin, mais comme il y a deja la gestion de la clé double...
Peut etre en fonction du type : si c'est numerique, c'est une clé, si c'est du texte, c'est une variante ?
non non dans les clés multiples, seule la premiere est forcement numérique. Dans mon cas, la seconde partie de la clé est alphanum.
Donc ca permet pas de discriminer
Cedric
spipcarto wrote:
bertrand Gugger a écrit :
spipcarto wrote:
Hello,
peut on, avec crayons, appeler une vue specifique ?
j'ai mes titres avec un filtre image_typo et j'aimerai les réafficher après edition.
Regarde cette réponse sur le forum, je pense que ça le ferait, il suffit que tu reproduises ton fragment de squelettes dans un squelettes/vues/article_titre.html
Pour éviter des répétitions, il est même envisageable que ton squelette article fasse lui-même un include de ce fragment.
Merci pour la reponse rapide.
Mais en fait, j'avais vu ca, mais je souhaite utiliser ma vue sur certains squelettes et pas d'autres, d'ou la question.
Si j'utilise #EDIT{titreimg}, il va chercher un champ titreimg, et si je fais une vue ou un controleur, il s'applique pour tous les crayons de ce type, pas moyen de faire un truc specifique pour un squelette.
Ne pourrais tu pas rajouter ou pas une classe spécifique dans tes squelettes, puis dans ta vue squelettes/vues/article_titre.html tester si #ENV{class} contient cette classe spécifique ou non puisque la classe entière de l'élément est retransmise à action/crayons_html.php par $_GET['class']
Selon ce test, sortir l'une ou l'autre représentation.
avec dans la vue
[(#ENV{class}|match{\bspecial\b}|?{' ',''} affichage special]
[(#ENV{class}|match{\bspecial\b}|?{'',' '} affichage normal]
class="#EDIT{titre} titre" ferait un affichage normal
et
class="#EDIT{titre} titre special" l'affichage special
?
Sinon, juste une note, le + dans la classe sert à demander le bouton "+" d'édition complète en privé.
--
toggg
Ooops, oublié une parenthèse, je voulais dire, bien sûr:
[(#ENV{class}|match{\bspecial\b}|?{' ',''}) affichage special]
[(#ENV{class}|match{\bspecial\b}|?{'',' '}) affichage normal]
class="#EDIT{titre} titre" ferait un affichage normal
et
class="#EDIT{titre} titre special" l'affichage special
--
toggg
>>> peut on, avec crayons, appeler une vue specifique ?
Ne pourrais tu pas rajouter ou pas une classe spécifique dans tes
squelettes, puis dans ta vue squelettes/vues/article_titre.html tester
si #ENV{class} contient cette classe spécifique ou non puisque la classe
entière de l'élément est retransmise à action/crayons_html.php par
$_GET['class']
Selon ce test, sortir l'une ou l'autre représentation.
Hélas la class d'origine n'est pas envoyée à la vue. Mais ça semble
être la bonne idée.
-- Fil
Fil wrote:
peut on, avec crayons, appeler une vue specifique ?
Ne pourrais tu pas rajouter ou pas une classe spécifique dans tes
squelettes, puis dans ta vue squelettes/vues/article_titre.html tester
si #ENV{class} contient cette classe spécifique ou non puisque la classe
entière de l'élément est retransmise à action/crayons_html.php par
$_GET['class']
Selon ce test, sortir l'une ou l'autre représentation.Hélas la class d'origine n'est pas envoyée à la vue. Mais ça semble
être la bonne idée.
tudikoila ?
jQuery.getJSON(configCrayons.url_crayons_html,
{
'w': jQuery(this).width(),
'h': jQuery(this).height(),
'wh': window.innerHeight,
'em': jQuery(this).css('fontSize'),
'class': me.className
},
c'est quoi le 'class' ?
--
toggg
Fil wrote:
peut on, avec crayons, appeler une vue specifique ?
Ne pourrais tu pas rajouter ou pas une classe spécifique dans tes
squelettes, puis dans ta vue squelettes/vues/article_titre.html tester
si #ENV{class} contient cette classe spécifique ou non puisque la classe
entière de l'élément est retransmise à action/crayons_html.php par
$_GET['class']
Selon ce test, sortir l'une ou l'autre représentation.Hélas la class d'origine n'est pas envoyée à la vue. Mais ça semble
être la bonne idée.
Comme ça ?
http://trac.rezo.net/trac/spip-zone/changeset/11246
C'est pas encore gagné, mais elle devrait revenir la classe ...
Pour que tu arrètes de dire que j'ai peur de casser, j'ai pas testé ![]()
--
toggg
C'est pas encore gagné, mais elle devrait revenir la classe ...
yes à un poil prêt ![]()
Pour que tu arrètes de dire que j'ai peur de casser, j'ai pas testé
La peur de tester ?
-- Fil
Fil a écrit :
peut on, avec crayons, appeler une vue specifique ?
Ne pourrais tu pas rajouter ou pas une classe spécifique dans tes
squelettes, puis dans ta vue squelettes/vues/article_titre.html tester
si #ENV{class} contient cette classe spécifique ou non puisque la classe
entière de l'élément est retransmise à action/crayons_html.php par
$_GET['class']
Selon ce test, sortir l'une ou l'autre représentation.
Hélas la class d'origine n'est pas envoyée à la vue. Mais ça semble
être la bonne idée.
Oups, j'avais oublié de repondre à celui la.
Effectivement, je n'avais pas pu reccuperer la classe, j'ai donc gardé mon idée de specifier par le type (avec le '__' comme séparateur), meme si ca me fait maintenir pas mal de modifs sur crayon
En fait, ce qu'il me faudrait, c'est bien l'ensemble des classes du tag (comme ca doit etre le cas maintenant) ou mieux, le moyen de passer un parametre à la balise #EDIT pour preciser un modele (vue ou controleur, le principe etant de se rabattre sur le modele par defaut si le modele specifique n'existe pas)
Bon, comme la ca marche, je ne vais pas y toucher, mais au prochain merge, je regarderai comment implanter une gestion de modeles proprement.
Merci pour le passage des classes en tous cas, ca pourra servir !
@++