Markitup prenant à peu près en charge les boutons multiligne, on se base maintenant dessus pour les notres : forceMultiline devient multiline dans la déclaration des boutons.
On change de technique pour ce qui est du calcul les sélections (sélectionner toute une ligne, tout un mot, au plus proche d'une sélection ou du curseur) : avec les dernières évolutions de Markitup, seul IE se permet des folies. On ne traite donc que le cas IE spécifiquement, et on laisse Markitup gérer les calculs de position du curseur. Du coup, il y a moins de modifications du code de Markitup.
On n'utilise plus la librairie XRegExp qui ne semble plus utile pour nos calculs d'expressions régulières.
Testé avec : FF6, IE8, Opera11.52, Chromium 12.0
- deplacer le squelette de preview dans prive/ pour ne pas permettre sa consultation directe
- ajouter un autoriser() dans l'action previsu pour fermer la porte lorsque le porte plume est desactive dans le public
- dans tous les cas faire passer le resultat par safehtml car le texte source peut venir de n'importe qui/n'importe ou et peut servir de support a une attaque type XSS ou vol de cookie (l'utilisation d'un $_POST explicite exclue toutefois le simple lien)
- Mise à jour des scripts d'expression régulière pour la fonction .split() que l'auteur à intégré dans une librairie plus générale, reprenant .replace(), .match() aussi notamment : http://xregexp.com/
- Charger la barre après le chargement de la page.
Cela permet de ne pas afficher la barre aux visiteurs non authentifiés (Touti)
(en surchargeant cette autorisation)
Attention toutefois avec Crayons (qui ne s'occupe pas de tester si les js du PP sont présents)
* mise en fichier externe de la fonction de chargement de porte plume ce
qui permet de la prendre en charge par le compacteur
* permettre des insertions de barrs d'outils avec des classes javascript posés sur
les textarea : inserer_barre_forum, inserer_barre_edition, inserer_previsualisation
* permettre de ne pas déposer la barre dans l'espace public avec la constante PORTE_PLUME_PUBLIC, définie à true par défaut (javascript et css présents dans le public)
* donner une API pour créer des barres d'outils sur des textarea sélectionnés en javascript :
.barre_outils($nom) et .barre_previsualisation().
Exemple issu du core de porte plume :
{{{
$('.formulaire_spip textarea.inserer_barre_forum').barre_outils('forum');
$('.formulaire_spip textarea.inserer_barre_edition').barre_outils('edition');
$('.formulaire_spip textarea.inserer_previsualisation').barre_previsualisation();
}}}