[Turotiel] Masquer ou ajouter des raccourcis dans le porte-plume

Hello,

suite à discussion sur IRC/Discord, j’ai préparé un tuto pour masquer ou ajouter des raccourcis dans le porte-plume : https://contrib.spip.net/Masquer-ou-ajouter-des-raccourcis-dans-le-porte-plume

Je vous laisse regarder si tout est ok et si ça vaut le coup de le publier sur contrib (hors wiki).

Y a juste une question à laquelle je n’ai pas de réponse : pourquoi, dans le replace du raccourci <encadre>, ça ne fonctionne pas avec "<div class=\"encadre\"><p>" (avec chevrons ouvrant/fermant en début/fin de chaîne) mais avec "div class=\"encadre\"><p" ?

1 « J'aime »

Yop, j’ai quelques doutes. De mon côté, j’ai le code suivant pour générer un raccourci qui permet de centrer un élément, mais ça date un peu donc peut-être que simplifié maintenant.

  1. dans center_porte_plume_barre_pre_charger() j’utilise "className" => 'outil_center', avec outil_ comme préfixe donc, histoire d’être cohérent avec les autres items.

  2. dans la wheel, j’ai le code suivant qui fonctionne sans problème :

--- # Ajout du raccourci center

center:
  match: ['<center>', '</center>']
  replace: ['<div class="center text-center"><p>', '</div>']
  if_str: '<center>'
  type: str
  1. pour la déclaration de la wheel, je passe par le pipeline pre_propre ce qui est plus verbeux
function center_pre_propre($letexte) {
	$GLOBALS['spip_wheels']['center'] = array(
		'center.yaml'
	);
	static $wheel = null;
	if (!isset($wheel)) {
		$wheel = new TextWheel(
			SPIPTextWheelRuleset::loader($GLOBALS['spip_wheels']['center'])
		);
	}
	return $wheel->text($letexte);
}

Voilà mes remarques, et merci pour la rédaction de cette doc :slight_smile:

Merci pour le retour.

Pour la wheel, je suis parti sur le json car ça semble être l’avenir d’après ce que j’ai compris mais à voir.
Pour le className, j’ai dû pomper ça qqpart, je corrige pour être cohérent oui.
Pour la déclaration de la wheel, je ne sais pas ce qui est le mieux, vous me dites…

Bonjour,
merci pour cette documentation, je ne sais pas si ça peut aider, voici comment j’ai procédé en utilisant le plugin inserer_modeles puis pour personnaliser et simplifier le porte plume seulement dans l’espace public (devenu un extranet d’où les noms) j’utilise cacherTout puis je remets le son
// Modification du porte-plume pour l’extranet


function prefix_porte_plume_barre_pre_charger($barres
	) {
	if( !test_espace_prive() 
		) {
		$barre = &$barres['edition'];
		$barre->cacherTout();
/// ///

//modeles media recopié
		$barre->ajouterApres('sepInsMod', array(
			'id' => 'inserer_modele_'.'media_extranet',
				'name' => 'Insérer un document',
				'className' => 'outil_inserer_modele_'.'media_extranet',
				'beforeInsert' => "function(markitup) {
					url = $(\"input[type=hidden][name='url_inserer_modeles']\", $(markitup.textarea.form)).val() + '&formulaire_modele=media_extranet';
					jQuery.modalboxload(url,{minHeight: '90%', type: 'ajax'});}
				",
				'display' => true,
		 ));
		
		$barre->afficher(array(
			'header1',
			'bold',
			'italic',
			'sepLink',
			'link',
			'sepGuillemets',
			'quote',
			'sepCaracteres',
			'guillemets',
			'guillemets_simples',
			'image',
		));
	}
	return $barres;
}

Inspiré du plugin inserer_modeles voir https://git.spip.net/spip-contrib-extensions/inserer_modeles/src/branch/master/modeles/media.yaml j’ai un modeles/media_extranet.yaml qui définit, entre autres, l’icône de la barre ainsi que le fichier /inserer_modeles qui s’ouvre en modal pour insérer un document ou une image.