Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Wysiwyg/src/Controller/Component/WysiwygComponent.php
<?php

namespace Croogo\Wysiwyg\Controller\Component;

use
Cake\Controller\Component;

/**
 * Wysiwyg Component
 *
 * @category Wysiwyg.Controller.Component
 * @package  Croogo.Wysiwyg.Controller.Component
 * @version  1.5
 * @author   Rachman Chavik <rchavik@xintesa.com>
 * @license  http://www.opensource.org/licenses/mit-license.php The MIT License
 * @link     http://www.croogo.org
 */
class WysiwygComponent extends Component
{

   
/**
     * Key name used for storing redirect information in sessions
     */
   
protected $_key = 'Wysiwyg.redirect';

   
/**
     * List of actions that we are interested in
     */
   
protected $_actions = ['admin_add', 'admin_edit', 'admin_delete'];

   
/**
     * Store the referer information for use later
     */
   
public function startup(Controller $controller)
    {
       
$redirect = $controller->Session->read($this->_key);
        if (!
in_array($controller->action, $this->_actions)) {
            return;
        }
        if (!empty(
$redirect)) {
            return;
        }
       
$controller->Session->write($this->_key, $controller->referer());
    }

   
/**
     * Replace the redirect $url when appropriate
     */
   
public function beforeRedirect(Controller $controller, $url, $status = null, $exit = true)
    {
       
$redirect = $controller->Session->read($this->_key);
        if (!empty(
$redirect)) {
            if (
in_array($controller->action, $this->_actions)) {
               
$controller->Session->delete($this->_key);
            }

            return
$redirect;
        }

        return
$url;
    }
}