API editeur : Différence entre versions

De OviWiki
Aller à : navigation, rechercher
m
m (API pour créer un module éditeur)
Ligne 67 : Ligne 67 :
 
'''bab_eventEditorContentToHtml''' permet de créer le template HTML de l'éditeur, cet événement sera appelé par $editor->getTemplateHtml()
 
'''bab_eventEditorContentToHtml''' permet de créer le template HTML de l'éditeur, cet événement sera appelé par $editor->getTemplateHtml()
  
'''bab_eventEditorRequestToContent''' cet événement sera appelé par $editor->getContentStore()
+
'''bab_eventEditorRequestToContent''' cet événement sera appelé par $editor->getContent()
  
'''bab_eventEditorContentToHtml''' cet événement sera appelé par $editor->getContentHtml()
+
'''bab_eventEditorContentToHtml''' cet événement sera appelé par $editor->getHtml()
  
  

Version du 26 février 2007 à 15:57

Fonctions à remplacer

bab_editor($content, $editname, $formname, $heightpx=300, $what=3)

cette fonction retourne du html

bab_editor_record(&$str)

Cette fonction est appelée au moment de la récupération des données soumises par l'éditeur

bab_replace_ref(&$str)

cette fonction est appelée au moment de l'affichage du texte enregistré par l'éditeur.


Nouvelle API pour implémenter un éditeur

syntaxe utilisée dans le nom des fonctions :

  • Editor : le html de l'éditeur
  • Content : le contenu à stoquer dans la base
  • Html : le contenu translformé en html pour l'affichage


Pour le HTML nécessaire à l'éditeur, un objet sera utilisé, Pour afficher l'éditeur au moment de la modification d'un texte :

$editor = new bab_editor();
$editor->setRequestFieldName('textarea_name');
$editor->setContent($content);
$editor->setHeight(300);
$editor = $editor->getEditor();


Avant d'enregistrer dans la base :

$editor = new bab_editor();
$editor->setRequestFieldName('textarea_name');
$content = $editor->getContent();
$format = $editor->getFormat();


Pour afficher du contenu qui a été enregistré avec l'éditeur :

$editor = new bab_editor();
$editor->setContent($content);
$html = $editor->getHtml();


API pour créer un module éditeur

Des événements serons définis pour permettre de fournir un éditeur à partir d'un module :

bab_eventEditorContentToHtml permet de créer le template HTML de l'éditeur, cet événement sera appelé par $editor->getTemplateHtml()

bab_eventEditorRequestToContent cet événement sera appelé par $editor->getContent()

bab_eventEditorContentToHtml cet événement sera appelé par $editor->getHtml()


Pour chaque éditeur, un enregistrement doit être ajouté sur cet événement : bab_eventEditor

include_once $GLOBALS['babInstallPath']."utilit/eventincl.php";
bab_addEventListener('bab_eventEditor', 'xxx_getEditorDetails', 'xxx.php');


Il faut prévoir une fonction qui permet d'identifier l'éditeur :

function xxx_getEditorDetails($event) {
    $event->addEditor($uid, 'Editor label');
}


Pour les fonctions externes qui insère du html dans l'éditeur, chaque fonction doit s'inscrire sur cet événement :

bab_eventEditorContentToHtml cet événement sera appelé au moment de l'affichage de la popup avec les liste des fonction qui permettent d'insérer du html dans l'éditeur, s'enregistrer sur cet événements permet d'ajouter des fonction comme l'insertion d'un fichier du gestionnaire de fichier ou une fiche annuaire.


pré requis pour qu'un éditeur soit compatible avec ovidentia

  • Ajout d'un bouton personnalisé qui appelle du javascript (ouverture d'une popup ovidentia)
  • Possibilité de récupérer le html sélectionné par API au moment du click sur le bouton
  • Possibilité d'insérer du html à la place de la sélection par API
  • Le code récupéré doit être transformable en XHTML 1.0 transitional
  • la hauteur de la textarea doit être paramétrable en pixel