b0y-101 Mini Shell


Current Path : E:/www/buriram/libraries/nextend2/smartslider/smartslider/models/
File Upload :
Current File : E:/www/buriram/libraries/nextend2/smartslider/smartslider/models/Settings.php

<?php

class N2SmartsliderSettingsModel extends N2Model {

    public function form() {
        $data = N2SmartSliderSettings::getAll();
        $this->formDefault($data);
    }

    public function save() {
        $namespace = N2Request::getCmd('namespace', 'default');
        $settings  = N2Request::getVar('settings');
        if ($namespace && $settings) {
            if ($namespace == 'default') $namespace = 'settings';
            if ($namespace == 'font' && N2Request::getInt('sliderid')) {
                $namespace .= N2Request::getInt('sliderid');
                self::markChanged(N2Request::getInt('sliderid'));
            }

            N2SmartSliderSettings::store($namespace, json_encode($settings));
        }

        return true;
    }

    public static function markChanged($id) {
        N2SmartSliderHelper::getInstance()
                           ->setSliderChanged($id, 1);
    }

    public function saveDefaults($defaults) {
        if (!empty($defaults)) {
            foreach ($defaults AS $referenceKey => $value) {
                N2StorageSectionAdmin::set('smartslider', 'default', $referenceKey, $value);
            }
        }

        return true;
    }

    private function formDefault($data) {
        N2Loader::import('libraries.form.form');

        $form = new N2Form(N2Base::getApplication('smartslider')
                                 ->getApplicationType('backend'));
        $form->loadArray($data);

        $general = new N2Tab($form, 'general', n2_('General settings'));

        new N2ElementToken($general);

        new N2ElementOnOff($general, 'beacon', n2_('Show help beacon'), 1);        

        new N2ElementOnOff($general, 'autoupdatecheck', n2_('Automatic update check'), 1);

        $translateUrl = new N2ElementMixed($general, 'translate-url', n2_('Translate url'), '|*|');
        new N2ElementText($translateUrl, 'translate-url-1', n2_('From'), '', array('style' => 'width:200px;'));
        new N2ElementText($translateUrl, 'translate-url-2', n2_('To'), '', array('style' => 'width:200px;'));


        new N2ElementTextarea($general, 'external-css-files', n2_('Editor - additional CSS files'), '', array(
            'fieldstyle' => 'width:300px; height: 100px; resize: vertical;'
        ));

        new N2ElementOnOff($general, 'hardware-acceleration', n2_('Hardware acceleration on sliders'), 1);
        new N2ElementOnOff($general, 'slide-as-file', n2_('Send slide as file'), 0);
        new N2ElementOnOff($general, 'preview-new-window', n2_('Open preview in new window'), 0);
        new N2ElementOnOff($general, 'editor-icon', n2_('Show editor icon'), 1);
        new N2ElementOnOff($general, 'force-rtl-backend', n2_('Force Joomla RTL backend'), 0);

        $pluginsContent = new N2ElementGroup($general, 'plugins-content', n2_('Run content plugins on sliders'));

        JPluginHelper::importPlugin('content');

        $classNames = array();

        $dispatcher = JEventDispatcher::getInstance();
        foreach ($dispatcher->get('_observers') AS $observer) {
            if (method_exists($observer, 'onContentPrepare')) {
                $className              = strtolower(get_class($observer));
                $classNames[$className] = $className;
            }
        }

        foreach (JPluginHelper::getPlugin('content') AS $plugin) {
            $className              = strtolower('Plg' . $plugin->type . $plugin->name);
            $classNames[$className] = ucfirst($plugin->name);
        }

        new N2ElementOnOff($pluginsContent, 'joomla-plugins-content-enabled', n2_('Enabled'), 1, array(
            'relatedFields' => array(
                'settingsjoomla-plugins-content-excluded'
            )
        ));

        new N2ElementList($pluginsContent, 'joomla-plugins-content-excluded', n2_('Exclude plugins'), '', array(
            'isMultiple' => true,
            'options'    => $classNames
        ));

        new N2ElementOnOff($general, 'youtube-privacy-enhanced', n2_('YouTube privacy enhanced mode'), 0);

        new N2ElementNumber($general, 'smooth-scroll-speed', n2_('Smooth scroll speed'), 400, array(
            'style' => 'width:35px;',
            'unit'  => 'ms'
        ));

        $responsive = new N2Tab($form, 'responsive', n2_('Responsive mode'));

        new N2ElementRadio($responsive, 'responsive-basedon', n2_('Based on'), 'combined', array(
            'options' => array(
                'device'   => n2_('Real device detection'),
                'screen'   => n2_('Maximum screen width'),
                'combined' => n2_('Combined')
            )
        ));

        $maximumScreenWidth = new N2ElementGroup($responsive, 'responsive-screen-width', n2_('Maximum screen width'));

        new N2ElementText($maximumScreenWidth, 'responsive-screen-width-desktop-portrait', n2_('Desktop portrait'), 1200, array(
            'style' => 'width:40px;',
            'unit'  => 'px'
        ));

        new N2ElementText($maximumScreenWidth, 'responsive-screen-width-tablet-landscape', n2_('Tablet landscape'), 1024, array(
            'style' => 'width:40px;',
            'unit'  => 'px'
        ));

        new N2ElementText($maximumScreenWidth, 'responsive-screen-width-tablet-portrait', n2_('Tablet portrait'), 800, array(
            'style' => 'width:40px;',
            'unit'  => 'px'
        ));

        new N2ElementText($maximumScreenWidth, 'responsive-screen-width-mobile-landscape', n2_('Mobile landscape'), 740, array(
            'style' => 'width:40px;',
            'unit'  => 'px'
        ));

        new N2ElementText($maximumScreenWidth, 'responsive-screen-width-mobile-portrait', n2_('Mobile portrait'), 440, array(
            'style' => 'width:40px;',
            'unit'  => 'px'
        ));


        $defaultWidthPercentage = new N2ElementGroup($responsive, 'responsive-default-ratio', n2_('Default width percentage'));

        new N2ElementNumber($defaultWidthPercentage, 'responsive-default-ratio-tablet-portrait', n2_('Tablet portrait'), 70, array(
            'style' => 'width:40px;',
            'unit'  => '%',
            'min'   => 0,
            'max'   => 100
        ));
        new N2ElementNumber($defaultWidthPercentage, 'responsive-default-ratio-mobile-portrait', n2_('Mobile portrait'), 50, array(
            'style' => 'width:40px;',
            'unit'  => '%',
            'min'   => 0,
            'max'   => 100
        ));

        new N2ElementOnOff($responsive, 'serversidemobiledetect', n2_('Server side mobile detect'), 0);

        $verticalOffset = new N2ElementGroup($responsive, 'responsive-vertical-offset', n2_('Focus offset'));
        $responsiveHeightOffsetValue = '';
    
        new N2ElementTextAutocomplete($verticalOffset, 'responsive-focus-top', n2_('Top') . ' - ' . n2_('CSS selector (sum of heights)'), $responsiveHeightOffsetValue, array(
            'post'   => 'break',
            'style'  => 'width:400px;',
            'values' => array($responsiveHeightOffsetValue)
        ));
        new N2ElementText($verticalOffset, 'responsive-focus-bottom', n2_('Bottom') . ' - ' . n2_('CSS selector (sum of heights)'), '', array(
            'style' => 'width:400px;'
        ));


        $cache = new N2Tab($form, 'cache', n2_('Cache'));

        new N2ElementButton($cache, 'clear-cache', n2_('Cache'), n2_('Clear cache'), array(
            'url' => N2Base::getApplication('smartslider')->router->createUrl(array(
                'settings/clearcache'
            ), true)
        ));

        N2JS::addFirstCode('
            new N2Classes.Form("smartslider-form", ' . $form->toJSON() . ', null);
        ');

        echo $form->render('settings');
    }

} 

Copyright © 2019 by b0y-101