Blame view

administrator/components/com_jce/controller/preferences.php 2.1 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
<?php

/**
 * @copyright     Copyright (c) 2009-2017 Ryan Demmer. All rights reserved
 * @license       GNU/GPL 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 * JCE is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses
 */
defined('_JEXEC') or die('RESTRICTED');

class WFControllerPreferences extends WFController
{
    /**
     * Custom Constructor.
     */
    public function __construct($default = array())
    {
        parent::__construct();

        $this->registerTask('apply', 'save');
    }

    protected function filter($data)
    {
        $model = $this->getModel('preferences');
        $form = $model->getForm();

        if (is_a($form, 'JForm')) {
            return $form->filter($data);
        }

        return $data;
    }

    public function save()
    {
        // Check for request forgeries
        JRequest::checkToken() or die('RESTRICTED');

        $db = JFactory::getDBO();

        $post = JRequest::getVar('params', '', 'POST', 'ARRAY');
        $registry = new JRegistry();
        $registry->loadArray($post);

        // get params
        $component = WFExtensionHelper::getComponent();

        // set preferences object
        $preferences = $registry->toObject();

        if (isset($preferences->rules)) {
            $preferences->access = $preferences->rules;

            unset($preferences->rules);
        }

        // set params as JSON string
        $component->params = json_encode($preferences);

        if (!$component->check()) {
            JError::raiseError(500, $row->getError());
        }
        if (!$component->store()) {
            JError::raiseError(500, $row->getError());
        }
        $component->checkin();

        $close = 0;

        if ($this->getTask() == 'save') {
            $close = 1;
        }

        $this->setRedirect('index.php?option=com_jce&view=preferences&tmpl=component&close='.$close, WFText::_('WF_PREFERENCES_SAVED'));
    }
}