Guest User

Untitled

a guest
Jun 25th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.92 KB | None | 0 0
  1. <?
  2. /*
  3.  * The idea is to have a full set of functionality, that I could use within all my projects for free
  4.  * and transparently. Per project rewrites done only for the parts that has to be changed.
  5.  * Otherwise use the defaults
  6.  *
  7.  * Make sure "Shared" parts are loaded I add this:
  8.  */
  9.  
  10. <?
  11.     #app/webroot/index.php
  12.    App::uses('Dispatcher', 'Routing');
  13.    
  14.     App::build(array(
  15.         'Controller' => array(ROOT . DS . 'cake/Share/Controller/'),
  16.         'Model' => array(ROOT . DS . 'cake/Share/Model/'),
  17.         'Plugin' => array(ROOT . DS . 'cake/',ROOT . DS . 'cake/Share/'),
  18.         'View' => array(ROOT . DS . 'cake/Share/View/')
  19.         ),APP::APPEND);
  20.    
  21.     CakePlugin::load('Share', array('path' => ROOT . DS . 'cake/Share/'));
  22. ?>
  23.  
  24. // To have e.g. shared Users Controller:
  25.  
  26. #path/Share/Controller/UsersController.php
  27. <?php
  28. # To prevent collisions prefix the controller
  29. class SharedUsersController extends AppController {
  30.     function login() {
  31.         if (isset($this->data['User'])) {
  32.             if ($this->Auth->login())
  33.                 $this->redirect($this->Auth->redirect());
  34.            else
  35.                 $this->Session->setFlash(__('You failed'));
  36.         }
  37.     }
  38.  
  39.     function register() {/* Do something */}
  40.     function remind(){/* Do something */}
  41. }
  42.  
  43. # If no UsersController declared - declare.
  44. if (!class_exists('UsersController')) {
  45.     class UsersController extends SharedUsersController {}
  46. }
  47. ?>
  48.  
  49. /*
  50.  * At his point in any projects I could go to site.com/users/login
  51.  * And it just works (TM)
  52.  *
  53.  * However if I what to have custom layout for login, just do:
  54.  */
  55. <?
  56. var_dump(App::import('Controller', 'Share.Users'));
  57.  
  58. class UsersController extends SharedUsersController {
  59.     function login() {
  60.     $this->layout="fancy";
  61.     parent::login();
  62.    }
  63. }
  64.  
  65. /*
  66.  * Thats IT. All register/remind/etc functionality works as originally intended,
  67.  * but login has new layout.
  68.  */
Add Comment
Please, Sign In to add comment