Du bist hier: Login

Login

Administrationsbereich.

Bitte Passwort eingeben.

!!! JavaScript und Cookies müssen aktiviert sein !!!
User (optional):

Password:


Anzulegende Dateien:

/admin/xplugin/fancybox/config.php

Hier werden die Standardwerte für die Datenbank angelegt. Besonders ist auf die Syntax des Feldes „plugin_config" zu achten!

$xPluginConfig[] = array(
 'plugin_name' => 'Fancybox 2.1.5',
 'plugin_code' => 'gallery',
 'plugin_config' =>
 'scripts::' .  // Der auf „scripts::" folgende Code wird 1:1 in den Headbereich eingefügt
 '<script type="text/javascript" src="xplugin/fancybox/source/jquery.fancybox.js?v=2.1.5"></script>' .
 '<link rel="stylesheet" href="xplugin/fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />' .
 '<link rel="stylesheet" type="text/css" href="xplugin/fancybox/source/helpers/jquery.fancybox-thumbs.css?v=1.0.7" />' .
 '<script type="text/javascript" src="xplugin/fancybox/source/helpers/jquery.fancybox-thumbs.js?v=1.0.7"></script>' .
 '|' .
 'config::' .   // Der auf „config::" folgende Code enthält die Standardwerte des xPlugins
 'width:650,maxWidth:800,maxHeight:600,openEffect:elastic,closeEffect:elastic,' .
 'nextEffect:elastic,prevEffect:elastic,openSpeed:500,closeSpeed:500,nextSpeed:500,' .
 'prevSpeed:500,openOpacity:1,closeOpacity:1,arrows:1,closeBtn:1,mouseWheel:1,' .
 'autoPlay:1,playSpeed:3000',
 'plugin_typ' => 'C',
 'plugin_help' => // Hier wird der Hilfetext in Form von Html-Code eingefügt
 '<b>Aufruf der Galleriefunktion:</b><br>
     {xPlugin:gallery,Pfad/zu/den/Bilddateien}<br>
     Der Pfad ist ohne führenden Schrägstrich und ab dem Benutzer-Bildverzeichnis anzugeben.
     Dies ist in der Standardkonfiguration "images/user".<br><br>
     <table cellpadding="0" cellspacing="0" class="plugin_help">
    <colgroup>
       ....
       
        <tr>
            <td>playPlay</td>
            <td>Dauer der Einblendung der Galleriebilder in der Slideshow, (1000 Einheiten = 1 Sekunde). <span style="color:#888">Standard: 3000</span></td>
        </tr>
    </tbody>
</table>
'
);

 

/admin/xplugin/fancybox.xplugin.php

Alle, als Public deklarierte, Methoden müssen angelegt werden. Auch wenn diese nicht gebraucht werden sollten.

// Klassenname = Verzeichnisname!
class fancybox extends validate
{
    // In die Seite (head-Bereich) einzufügender Codeblock mit {Platzhaltern} die durch,
    // im Backend angegebene, Werte ersetzt werden. PHP-Scripts sind nicht erlaubt!

    private $_config = array();
    private $_script = "<script type=\"text/javascript\">
        $(document).ready(function() {
            /*
             *  Simple image gallery. Uses default settings
             */

      $('.fancybox').fancybox({
            maxWidth: {maxWidth},
                maxHeight: {maxHeight},
                openEffect: '{openEffect}',
                closeEffect: '{closeEffect}',
                nextEffect: '{nextEffect}',
                prevEffect: '{prevEffect}',
                openSpeed: {openSpeed},
                closeSpeed: {closeSpeed},
                nextSpeed: {nextSpeed},
                prevSpeed: {prevSpeed},
                openOpacity: {openOpacity},
                closeOpacity: {closeOpacity},
                arrows: {arrows},
                closeBtn: {closeBtn},
                mouseWheel: {mouseWheel},
                autoPlay: {autoPlay},
            playSpeed: {playSpeed}
       });
         });
    </script>
    <style type=\"text/css\">
        .fancybox-custom {
            box-shadow: 0 0 50px #222;
            max-width: {width}px;
        }
    </style>";

    /*
     * Initialisierung der im Backend, veränderbaren, Einstellungen
     * mit Angabe von Maximal-, Minimalwert, Istwert und Variblentyp.
     */
    public function __construct()
    {
        $this->_config[] = array('text' => _('Width'), 'name' => 'width',
         'typ' => 'i', 'value' => 650, 'min' => 100, 'max' => 3000, 'set' => '');
        $this->_config[] = array('text' => _('maxWidth'), 'name' => 'maxWidth',
         'typ' => 'i', 'value' => 800, 'min' => 150, 'max' => 3000, 'set' => '');
        $this->_config[] = array('text' => _('maxHeight'), 'name' => 'maxHeight',
         'typ' => 'i', 'value' => 600, 'min' => 100, 'max' => 3000, 'set' => '');

        ...

        $this->_config[] = array('text' => _('Playspeed'), 'name' => 'playSpeed',
         'typ' => 'i', 'value' => 3000, 'min' => 0, 'max' => 20000, 'set' => '');
    }

    /*
     * Erzeugt den Html-Code der den xPluginaufruf, in den geschweiften Klammern, ersetzt.
     *
     * @param string $code Plugin-call-code
     * @return code/replace html/text
     */

    public function getCode($code)
    {
        $codes = explode(':', $code);
        $path = './images/user/' . $codes[1];
        $path = str_replace('}', '', $path);
        $files = scandir($path);

        foreach ($files as $value)
        {
            if ((strpos("/" . $value . "/i", '.png') >= 1 or
                strpos("/" . $value . "/i", '.gif') >= 1 or
                strpos("/" . $value . "/i", '.jpg') >= 1) and
                strpos("/" . $value . "/i", 'tbn_') == FALSE and
                strpos("/" . $value . "/i", '.txt') == FALSE)
                $fileList[] = $value;
        }
           $code = '';

           ...

           $code .= '" alt="' . $alt . '" /></a>';
        }
        return $code;
    }

    /*
     * Erstellt ein Thumbnail des angegebenen Bildes
     *
     * @param string $path            Path to imagedir
     * @param string $name            Name of imagefile
     * @param string $thumbSize    Size og Thumbnail
     */

    private function _createThumbnail($path, $name, $thumbSize)
    {
        $sourceImage = $path . '/' . $name;
        $path = $path . '/';
        $art = strrchr($sourceImage, ".");
        list($width, $height) = getimagesize($sourceImage);
        $ratio = $width / $height;

        ...

        else if ($art == ".png")
        {
            unlink($path . "temp.png");
        }
    }

    /*
     * Erstellt den Html-Code für das Backend. Hier werden die veränderbaren
     * Einstellungen dargestellt.
     *
     * @param string $id Plugin-id from database
     * @return array assoziative with html code for template output
     */

    public function getConfigHtml($id)
    {
        db::getInstance()->where('plugin_id', $id);
        $result = db::getInstance()->getOne('plugin');
        $buffer = explode('|', $result['plugin_config']);
        foreach ($buffer as $bufferx)
        {
            if (preg_match("/config::/i", $bufferx) == 1)
            {
                $buffery = explode('::', $bufferx);
                $savedValues = explode(',', $buffery[1]);
                break;
            }
        }

        ...

        return $data;
    }

    /*
     * Erstellt den Html-Code für den Headbereich
     *
     * @param string $id            Plugin-id from database
     * @param string $config    Config-String with values
     *                                     Three types are possible
     *                                     scripts:: = scripts for head-area of html, copy 1:1
     *                                     head::    = e.g. scripts:: but here must set some values
     *                                                     for initialize
     *                                     config::  = e.g. scripts:: but here are setting config-
     *                                                     values who can set in backend
     * @return array assoziative with html code for template output
     */

    public function getScripts($id, $config = '')
    {
        $scripts = '<!-- gallery START -->';

        $buffer = explode('|', $config);

        ...

        return $scripts;
    }

    /*
     * Speichert, im Backend vorgenommene Änderungen in der Datenbank
     * @return boolean True if successful otherwise false
     */

    public function saveConfigdata($id)
    {
        db::getInstance()->where('plugin_id', $id);
        $result = db::getInstance()->getOne('plugin');
        $buffer = explode('|', $result['plugin_config']);
        foreach ($buffer as $bufferx)
        {
            if (preg_match("/config::/i", $bufferx) == 1)
            {
                $buffery = explode('::', $bufferx);
                $savedValues = explode(',', $buffery[1]);
                break;
            }
        }

        ...

        // Update the database
        db::getInstance()->where('plugin_id', $id);
        if (db::getInstance()->update('plugin', $data))
            message::setNoteRow(_('The data was successful saved.'), true);
    }

}

 

Der Unterschied zwischen den Dateien „/admin/xplugin/fancybox.xplugin.php" und „/xplugin/fancybox.xplugin.php" besteht lediglich darin das in letzterer die Methode entfernt wurde mit der Daten in die Datenbank geschrieben werden.
Dies ist ein Teil des Sicherheitskonzepts von TobbiVM-Shop.

Aktuell

Leider werden in den neueren Versionen von Flyspray Eingriffe in der Serverkonfiguration gefordert. Deren Sinn ist wohl nur dem dem Entwickler bekannt. Bisher lief Flyspray einwandfrei und zur vollsten Zufriedenheit, und jetzt solche Änderungen... Also Flyspray ist auf "normalen" Websites nicht mehr nutzbar und kann nur sicher auf gemieteten VPNs etc. benutzt werden. Für mich ein Eigentor und der Grund mich, nach ca. 12 Jahren der Benutzung, davon zu verabschieden. Im Moment bin ich noch in der Testphase von verschiedenen Bugtrackern.


Noch aktuell

Eine besondere Überraschung kommt in Kürze, zusammen mit der PHP8.x-tauglichen Version!

nach oben