Fork me on GitHub






Ajouter un bouton Editeur dhtml
Semi pro
Inscrit: 19/08/2006 03:45
De Paris
Messages: 520
Bonjour, je voudrais ajouter un bouton à l'éditeur dhtml un bouton avec une fonction comme celui de youtube je suis allez voir dans les fichier à class/xoopseditor/dhml mais rien ! merci.

Posté le : 08/04/2012 09:37

Version Bootstrap
4.5.3
Version font-awesome
5.15.1
Version Xoops
2.5.10
Partager Twitter Partagez cette article sur GG+
Re: Ajouter un bouton Editeur dhtml
Semi pro
Inscrit: 10/11/2004 13:40
Messages: 1659
Bonjour,

Pour rajouter un bouton ,

- il faut rajouter une ligne dans le fichier /class/textsanitizer/config.php

par exemple
"nouveau" => 1,


- rajouter dans le dossier class/textsanitizer/
un répertoire "nouveau", et dans ce dossier un fichier nouveau.php qui contiendra ta fonction

par exemple sur le modèle du fichier flash.php (en renommant "MytsFlash" en "MytsNouveau", et "function xoopsCodeFlash" en "function xoopsCodeNouveau")
<?php
class MytsNouveau extends MyTextSanitizerExtension
{
    function 
encode($textarea_id)
    {
        
$config parent::loadConfig(dirname(__FILE__));
        
$code "<img src='{$this->image_path}/swf.gif' alt='" _XOOPS_FORM_ALTFLASH "' onclick='xoopsCodeFlash("{$textarea_id}","" . htmlspecialchars(_XOOPS_FORM_ENTERFLASHURL, ENT_QUOTES) . "","" . htmlspecialchars(_XOOPS_FORM_ALT_ENTERHEIGHT, ENT_QUOTES) . "","" . htmlspecialchars(_XOOPS_FORM_ALT_ENTERWIDTH, ENT_QUOTES) . "", "" . $config['detect_dimension'] . "");'  onmouseover='style.cursor="hand"'/>&nbsp;";
        
$javascript = <<<EOF
            function xoopsCodeNouveau(id, enterFlashPhrase, enterFlashHeightPhrase, enterFlashWidthPhrase, enableDimensionDetect)
            {
                var selection = xoopsGetSelect(id);
                if (selection.length > 0) {
                    var text = selection;
                } else {
                    var text = prompt(enterFlashPhrase, "");
                }
                var domobj = xoopsGetElementById(id);
                if ( text.length > 0 ) {
                    var text2 = enableDimensionDetect ? "" : prompt(enterFlashWidthPhrase, "");
                    var text3 = enableDimensionDetect ? "" : prompt(enterFlashHeightPhrase, "");
                    var result = "[flash="+text2+","+text3+"]" + text + "[/flash]";
                    xoopsInsertText(domobj, result);
                }
                domobj.focus();
            }
EOF;

        return array(
            
$code ,
            
$javascript);
    }

    function 
load(&$ts)
    {
        
$ts->patterns[] = "/[(swf|flash)=(['"]?)([^"']*),([^"']*)\2]([^"]*)[/\1]/esU";
        $ts->replacements[] = __CLASS__ . "::decode( '
\5', '\3', '\4' )";

        return true;
    }

    function decode($url, $width, $height)
    {
        $config = parent::loadConfig(dirname(__FILE__));
        if ((empty($width) || empty($height)) && !empty($config['
detect_dimension'])) {
            if (!$dimension = @getimagesize($url)) {
                return "<a href='
{$url}' rel='external' title=''>{$url}</a>";
            }
            if (!empty($width)) {
                $height = $dimension[1] * $width / $dimension[0];
            } else if (! empty($height)) {
                $width = $dimension[0] * $height / $dimension[1];
            } else {
                list ($width, $height) = array(
                    $dimension[0] ,
                    $dimension[1]);
            }
        }

        $rp = "<object width='
{$width}' height='{$height}' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0'>";
        
$rp .= "<param name='movie' value='{$url}'>";
        
$rp .= "<param name='QUALITY' value='high'>";
        
$rp .= "<PARAM NAME='bgcolor' VALUE='#FFFFFF'>";
        
$rp .= "<param name='wmode' value='transparent'>";
        
$rp .= "<embed src='{$url}' width='{$width}' height='{$height}' quality='high' bgcolor='#FFFFFF' wmode='transparent'  pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash'></embed>";
        
$rp .= "</object>";
        return 
$rp;
    }
}
?>


Voilà tu as un nouveau bouton, te manque plus qu'à trouver ta fonction ?

Posté le : 08/04/2012 11:41

PS : Toujours faire une sauvegarde des fichiers avant de les modifier !
-------------------------------------------
http://www.aideordi.com
Partager Twitter Partagez cette article sur GG+
Re: Ajouter un bouton Editeur dhtml
Semi pro
Inscrit: 19/08/2006 03:45
De Paris
Messages: 520
Merci pour l'explication très claire comme d'hab !
J'ai remarqué que lorsque je poste un lien Flash avec le bouton d'origine (pas celui que je suis entrain de modifier selon vos explication) et bien il me demande un lien je le mets & puis je valide "ok" et direct il m'affiche ce code [flash,] le lien [/flash]
Alors déjà est-ce normal la virgule dans le premier []
et sur le fichier flash.php que je modifie j'ai remarqué qu'il demande width & height

var domobj = xoopsGetElementById(id);
if ( text.length > 0 ) {
var text2 = enableDimensionDetect ? "" : prompt(enterFlashWidthPhrase, "");
var text3 = enableDimensionDetect ? "" : prompt(enterFlashHeightPhrase, "");

Et quand je clique sur le bouton il me demande que l'url ?

Posté le : 09/04/2012 09:43

Version Bootstrap
4.5.3
Version font-awesome
5.15.1
Version Xoops
2.5.10
Partager Twitter Partagez cette article sur GG+
Re: Ajouter un bouton Editeur dhtml
Semi pro
Inscrit: 10/11/2004 13:40
Messages: 1659
Sur un flash normal et le fichier nouveau chez moi, il ne me demande pas les width & height à tous les coups, je ne saurais pas te dire pourquoi....

Posté le : 09/04/2012 10:36

PS : Toujours faire une sauvegarde des fichiers avant de les modifier !
-------------------------------------------
http://www.aideordi.com
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

87 Personne(s) en ligne (76 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 87 | Plus ...