Closed ImagineAndDraw closed 13 years ago
J'ai été confronter au même problème et c'est pour ça que je n'ai pas essayé de le mettre tout de suite. Parcequ'il faut concevoir un systeme simple et pratique. Mon idée c'était de faire un shorcode comme ça shortcodes => array( 'dailymotion' => array( 'description' => 'Permet d'insérer une vidéo dailymotion dans un article' 'id' => 'Id de la vidéo dailumotion', 'render' => '<embed...... id=":id"..... )
Mais je suis en train de plencher pour que cela génère aussi un panneau pour "générer" et insérer rapidement un shortcode dans l'éditeur
Donc ça revient à la question sur la génération d'arrays via l'admin directement.
En développant l'un, y aura déjà tout en place pour créer via un formulaire des shortcodes.
Après avoir tester le framework, je me suis dit qu'ajouter les shortcodes serait intéressant. Mais j'ai buter sur deux problèmes: le tableau de départ et comment déclaré une fonction de manière dynamique.
// Pour un lien :
<()a href="lien" id="id">content
[link href="lien" id="id"]content[/link]
array( 'shortcode'=>array( 'func_name'=>'link_func', 'short_tag'=>'link', 'attributs'=>array( 'href'=>'lien', 'id'=>'id' ), 'contenu'=>'content' ), 'html'=>array( 'before'=>array( 'open'=>'<a', 'close'=>'>' ), 'after'=>'' ) );
// Pour un player (utilisation des helpers) :
array( 'special'=>array( 'type'=>'player', 'attributs'=>array( 'type'=>'dailymotion', 'code_video'=>'code', 'width'=>'111', 'height'=>'111' ) ) );
var $conf = array( 'shortcode'=>array( 'func_name' => '', 'short_tag' => '', 'attributs' => array(), 'contenu' => '' ), 'html'=>array( 'open'=>array( 'before'=>'', 'after'=>'' ), 'close'=>'' ), 'special'=array( 'type'=>'' 'value'=>'' ) );
Le problème c'est que c'est pas du tout "souple", de plus je ne vois pas comment on peut nommer dynamiquement une fonction ...
Pour le problème de souplesse, je me suis dit qu'utiliser un système de patterns ne serait pas bête.
()#item# : patterns pour attributs.
()$item$ : content.
Du type : <()a #href#>$content$<()/a> qui serait lier à attributs et content.
Les () sont là pour annuler la mise en page de github.
array( 'attributs'=array('href'=>'lien'), 'content'='lien' );
Mais ça ne règle pas le problème de la fonction.
Ou peut-être n'utiliser que des shortcodes prédéfinis avec la possibilité d'activation et modification minim ...