Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Core/src/Controller/Admin/AppController.php
<?php

namespace Croogo\Core\Controller\Admin;

use
Cake\Core\Configure;
use
Cake\Event\Event;
use
Croogo\Core\Controller\AppController as CroogoAppController;
use
Croogo\Core\Croogo;
use
Crud\Controller\ControllerTrait;

/**
 * Croogo App Controller
 *
 * @category Croogo.Controller
 * @package  Croogo.Croogo.Controller
 * @version  1.5
 * @author   Fahad Ibnay Heylaal <contact@fahad19.com>
 * @license  http://www.opensource.org/licenses/mit-license.php The MIT License
 * @link     http://www.croogo.org
 *
 * @property \Crud\Controller\Component\CrudComponent $Crud
 */
class AppController extends CroogoAppController
{
    use
ControllerTrait;

   
/**
     * Load the theme component with the admin theme specified
     *
     * @return void
     */
   
public function initialize()
    {
       
parent::initialize();

       
$this->loadComponent('Crud.Crud', [
           
'actions' => [
               
'index' => [
                   
'className' => 'Croogo/Core.Admin/Index'
               
],
               
'lookup' => [
                   
'className' => 'Crud.Lookup',
                   
'findMethod' => 'all'
               
],
               
'view' => [
                   
'className' => 'Crud.View'
               
],
               
'add' => [
                   
'className' => 'Croogo/Core.Admin/Add',
                   
'messages' => [
                       
'success' => [
                           
'text' => __d('croogo', '{name} created successfully'),
                           
'params' => [
                               
'type' => 'success',
                               
'class' => ''
                           
]
                        ],
                       
'error' => [
                           
'params' => [
                               
'type' => 'error',
                               
'class' => ''
                           
]
                        ]
                    ]
                ],
               
'edit' => [
                   
'className' => 'Croogo/Core.Admin/Edit',
                   
'messages' => [
                       
'success' => [
                           
'text' => __d('croogo', '{name} updated successfully'),
                           
'params' => [
                               
'type' => 'success',
                               
'class' => ''
                           
]
                        ],
                       
'error' => [
                           
'params' => [
                               
'type' => 'error',
                               
'class' => ''
                           
]
                        ]
                    ]
                ],
               
'toggle' => [
                   
'className' => 'Croogo/Core.Admin/Toggle'
               
],
               
'delete' => [
                   
'className' => 'Crud.Delete'
               
]
            ],
           
'listeners' => [
               
'Crud.Redirect',
               
'Crud.Search',
               
'Crud.RelatedModels',
               
'Croogo/Core.Flash',
            ]
        ]);

       
$this->Theme->setConfig('theme', Configure::read('Site.admin_theme'));
    }

   
/**
     * beforeFilter
     *
     * @return void
     */
   
public function beforeFilter(Event $event)
    {
       
$this->viewBuilder()->setLayout('admin');

       
parent::beforeFilter($event);

       
Croogo::dispatchEvent('Croogo.beforeSetupAdminData', $this);
    }

    public function
index()
    {
        return
$this->Crud->execute();
    }

    public function
view($id)
    {
        return
$this->Crud->execute();
    }

    public function
add()
    {
        return
$this->Crud->execute();
    }

    public function
edit($id)
    {
        return
$this->Crud->execute();
    }

    public function
delete($id)
    {
        return
$this->Crud->execute();
    }

    protected function
redirectToSelf(Event $event)
    {
       
$subject = $event->getSubject();
        if (
$subject->success) {
           
$data = $this->getRequest()->getData();
            if (isset(
$data['_apply'])) {
               
$entity = $subject->entity;

                return
$this->redirect(['action' => 'edit', $entity->id]);
            }
        }
    }
}