Bon ça y est, elle fonctionne sous forme de plugins. Je n'ai pas entrepris encore le travail de localisation des chaînes de caractère et j'aimerais pouvoir créer une page d'administration de la barre d'outils qui permettrait de choisir quels boutons utiliser, quel thème etc...
J'ai vu qu'on pouvait créer un fichier config.php permettant cela mais je n'ai pas encore trop compris comment faire avec ce que j'ai pour l'instant... Je colle ici mon fichier de config :
<?php
/* ********************** */
/* Configuration d'ezHTML */
/* ********************** */
/* Récupération de différentes valeurs pour traitement et mise en place du dossier des émoticônes */
global $plxAdmin;
// Récupération de la racine du site
$site_root = $plxAdmin->aConf['racine'];
// Récupération du dossier images
$images_folder = $plxAdmin->aConf['images'];
// Récupération du dossier documents
$documents_folder = $plxAdmin->aConf['documents'];
// Dossier contenant les émoticônes
if (!file_exists('../../'.$images_folder.'smilies')) {// Première utilisation, le dossier "smilies" n'existe pas dans le dossier des images
mkdir('../../'.$images_folder.'smilies');
$smilies = glob('../../addons/editor.ezhtml/smilies/*.png');
foreach ($smilies as $smiley) {
$smiley_name = str_replace('../../addons/editor.ezhtml/smilies/', '', $smiley);
copy($smiley, '../../'.$images_folder.'smilies/'.$smiley_name);
}
} else if (filemtime('../../'.$images_folder.'smilies') < filemtime('../../addons/editor.ezhtml/smilies')) { // Mise à jour des émoticônes lors du'ne nouvelle version d'ezhtml
$smilies = glob('../../addons/editor.ezhtml/smilies/*.png');
foreach ($smilies as $smiley) {
$smiley_name = str_replace('../../addons/editor.ezhtml/smilies/', '', $smiley);
copy($smiley, '../../'.$images_folder.'smilies/'.$smiley_name);
}
}
/* Le style */
// Valeurs possibles : default, simple, grey (nom des dossiers contenus dans editor.ezhtml/theme)
$ezhtml_theme = 'grey';
/* Les boutons */
// Les valeurs possibles : true (affiché/activé) ou false (pas affiché/pas activé)
// Balises de type bloc (1ère ligne de la barre d'outils)
$h3 = 'true';
$h4 = 'true';
$h5 = 'true';
$h6 = 'false';
$p = 'true';
$blockquote = 'true';
$hr = 'true';
$ul = 'true';
$ol1 = 'true';
$ola = 'true';
$codeblock = 'true';
$div = 'true';
// Plein écran
$fullscreen = 'true';
// Balises en ligne (2e ligne de la barre)
$strong = 'true';
$italic = 'true';
$underline = 'true';
$strike = 'false';
$color = 'true';
$br = 'true';
$cite = 'true';
$email = 'true';
$link = 'true';
$media = 'true'; // Bouton d'ouverture du gestionnaire de médias
$image = 'true'; // Bouton d'insertion d'image distante
$video = 'true';
$audio = 'true';
$slideshow = 'false';
$abbr = 'true';
$code = 'true';
$span = 'true';
// Affichage de la barre d'émoticônes
$smilies_bar = 'false';
// Emoticônes (3e ligne)
$smile = 'true';
$sad = 'true';
$neutral = 'true';
$wink = 'true';
$yikes = 'true';
$cool = 'true';
$hmm = 'true';
$lol = 'true';
$ops = 'true';
$big_smile = 'true';
$roll = 'true';
$tongue = 'true';
$mad = 'true';
$angel = 'false';
$cry = 'false';
$devil = 'false';
$glasses = 'false';
$kiss = 'false';
$monkey = 'false';
/* Les lecteurs */
// Lecteur mp3
$dewp_style = 'classic'; // Valeurs possibles : classic, bubble, mini, , vol, multi, multirect, vinyl
$dewp_trans = 'true'; // Arrière-plan transparent
$dewp_autostart = 'false'; // Démarrage automatique
$dewp_autoreplay = 'false'; // Lecture en boucle
$dewp_showtime = 'false'; // Afficher le temps
$dewp_fading = '3'; // transition (en secondes) entre deux morceaux
$dewp_volume = '80'; // Volume (100 = max)
$dewp_nopointer = 'false'; // Pas de pointeurs
$dewp_bgcolor = 'FFFFFF'; // Couleur de fond au format hexadécimal, mettre $dewp_trans à 'false' pour valider cette valeur
// Lecteur vidéos
$dewt_width = '400'; // Largeur par défaut de la vidéo en pixels
$dewt_height = '300'; // Hauteur par défaut de la vidéo en pixels
$dewt_allowfullscreen = 'true'; // Possibilité de plein écran (pas accessible par un bouton)
// Diaporama
$dews_width = '400'; // Largeur par défaut du Slideshow en pixels
$dews_height = '300'; // Hauteur par défaut du Slideshow en pixels
$dews_randomstart = 'false'; // Démarrage aléatoire
$dews_transition = 'fade'; // Valeurs possibles : fade, slide, push, pop, warp, blur, none
$dews_speed = '20'; // Vitesse de transition en ms
$dews_timer = '5'; // Délai d'affichage
$dews_showbuttons = 'true'; // Affichage des boutons
$dews_alignbuttons = 'bottom'; // Position des boutons top (haut) ou bottom (bas)
?>
Comme dit, je ne sais pas trop comment faire pour pouvoir faire modifier ces valeurs en passant par une page d'administration... Peut-être faudra-t-il utiliser un fichier xml (j'ai vu dans la doc sur la création de plugins quelque chose à ce sujet, il me semble) ? Ces valeurs sont utilisées ensuite dans le fichier JavaScript...
Merci pour vos conseils.
En bas de cette page http://pluxml.org/?static6/pluxml-5-1-beta il y a des plugins à télécharger, certains avec des écrans d'admin, de quoi s'inspirer et comprendre comment ça fonctionne en recoupant avec la doc.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Oui, j'ai vu ça hier soir, la doc est vraiment très complète. Je pense que ça devrait aller pour créer ce fichier parameters.xml (xhtml et xml sont des langages frères hein), ta doc est accessible même à un non-codeur pro comme moi (même si je vais probablement agir par mimétisme encore une fois) !
Un petit souci par contre, est-il possible de vérifier si plxToolbar est installée avant d'installer ezhtml (utiliser la méthode Onactivate, ok, mais quel code utiliser pour la vérification ?). J'ai essayé de les installer toutes les 2 en même temps et... ça a marché ! Je me suis retrouvé avec 2 barre d'outils .
Ce que je propose est de voir si la ligne du JavaScript de plxToolbar se trouve dans le fichier top.php. Si elle y est, on n'active pas ezhtml. Mais comment je fais pour ne pas activer ezhtml ?
Il faudrait d'ailleurs trouver un système qui permette de ne pas installer plusieurs barre en même temps (il n'y a pa que la plxToolbar
Y a cette solution, mais elle ne me plait pas du tout car $plxAdmin est déclaré en global
global $plxAdmin;
if(isset($plxAdmin->plxPlugins->aPlugins['plxtoolbar']) AND $plxAdmin->plxPlugins->aPlugins['plxtoolbar']['activate']=='0') {
# code pour déclarer les hooks de ta barre
}
Je t'avoue pour le moment je n'ai pas de solution propre à te proposer. Je vais me pencher sur la question de manière à compléter le moteur de plugin pour rajouter cette possibilité qui n'est pas prévue pour le moment.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Y a cette solution, mais elle ne me plait pas du tout car $plxAdmin est déclaré en global
global $plxAdmin;
if(isset($plxAdmin->plxPlugins->aPlugins['plxtoolbar']) AND $plxAdmin->plxPlugins->aPlugins['plxtoolbar']['activate']=='0') {
# code pour déclarer les hooks de ta barre
}
Je t'avoue pour le moment je n'ai pas de solution propre à te proposer. Je vais me pencher sur la question de manière à compléter le moteur de plugin pour rajouter cette possibilité qui n'est pas prévue pour le moment.
C'est un détail, je ne pense pas qu'un admlinistrateur se laissera aller à installer 2 barre d'outils
Dernières interrogations de mon côté :
* Comme les paramètres contenus dans le fichier parameters.xml seront utilisés dans le JS, est-il possible de "lire" les données directement à partir de JavasScript ? Pas grave si ça ne marche pas, je pourrai passer par php si besoin est mais ce serait super si le moyen existait !
* Pour les fichiers langue (je compte m'occuper de ce problème là lorsque le plugin sera en fin de développement), peut-on utiliser également un fichier xml ? Si non, il faudra que je créé des fichiers php pour la page d'administration du plugin et d'autres au format js (comme pour la plxToolbar). Tu as peut-être une proposition plus intéressante...
Merci en tout cas pour tes conseils et ta disponibilité
[edit]
Il semblerait qu'il faille s'attaquer à du ajax pour lireun fichier xml à partir de JavaScript : http://www.xul.fr/xml-ajax.html . ça m'a l'air assez lourd tout ça...
Peut-être que cette ressource est la bonne : http://www.aliasdmc.fr/coursjavas/cours_javascript168.html ?
[/edit]
Réponses
J'ai vu qu'on pouvait créer un fichier config.php permettant cela mais je n'ai pas encore trop compris comment faire avec ce que j'ai pour l'instant... Je colle ici mon fichier de config : Comme dit, je ne sais pas trop comment faire pour pouvoir faire modifier ces valeurs en passant par une page d'administration... Peut-être faudra-t-il utiliser un fichier xml (j'ai vu dans la doc sur la création de plugins quelque chose à ce sujet, il me semble) ? Ces valeurs sont utilisées ensuite dans le fichier JavaScript...
Merci pour vos conseils.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Un petit souci par contre, est-il possible de vérifier si plxToolbar est installée avant d'installer ezhtml (utiliser la méthode Onactivate, ok, mais quel code utiliser pour la vérification ?). J'ai essayé de les installer toutes les 2 en même temps et... ça a marché ! Je me suis retrouvé avec 2 barre d'outils .
Ce que je propose est de voir si la ligne du JavaScript de plxToolbar se trouve dans le fichier top.php. Si elle y est, on n'active pas ezhtml. Mais comment je fais pour ne pas activer ezhtml ?
Il faudrait d'ailleurs trouver un système qui permette de ne pas installer plusieurs barre en même temps (il n'y a pa que la plxToolbar
Je t'avoue pour le moment je n'ai pas de solution propre à te proposer. Je vais me pencher sur la question de manière à compléter le moteur de plugin pour rajouter cette possibilité qui n'est pas prévue pour le moment.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Dernières interrogations de mon côté :
* Comme les paramètres contenus dans le fichier parameters.xml seront utilisés dans le JS, est-il possible de "lire" les données directement à partir de JavasScript ? Pas grave si ça ne marche pas, je pourrai passer par php si besoin est mais ce serait super si le moyen existait !
* Pour les fichiers langue (je compte m'occuper de ce problème là lorsque le plugin sera en fin de développement), peut-on utiliser également un fichier xml ? Si non, il faudra que je créé des fichiers php pour la page d'administration du plugin et d'autres au format js (comme pour la plxToolbar). Tu as peut-être une proposition plus intéressante...
Merci en tout cas pour tes conseils et ta disponibilité
[edit]
Il semblerait qu'il faille s'attaquer à du ajax pour lireun fichier xml à partir de JavaScript : http://www.xul.fr/xml-ajax.html . ça m'a l'air assez lourd tout ça...
Peut-être que cette ressource est la bonne : http://www.aliasdmc.fr/coursjavas/cours_javascript168.html ?
[/edit]