ApPHP Shopping Cart Pro - Example of Code

Show Plain Text »
  1. <?php
  2.  
  3. class Roles extends CActiveRecord
  4. {
  5.  
  6.     /** @var string */    
  7.     protected $_table = 'roles';
  8.     protected $_tablePrivileges = 'privileges';
  9.     protected $_tableRolesPrivileges = 'role_privileges';
  10.  
  11.     /**
  12.      * Class default constructor
  13.      */
  14.     public function __construct()
  15.     {
  16.         parent::__construct();
  17.     }
  18.  
  19.     /**
  20.      * Returns the static model of the specified AR class
  21.      */
  22.     public static function model()
  23.     {
  24.         return parent::model(__CLASS__);
  25.     }
  26.    
  27.     /**
  28.      * Defines relations between different tables in database and current $_table
  29.      */
  30.     protected function _relations()
  31.     {
  32.         return array();
  33.     }
  34.  
  35.     /**
  36.      * This method is invoked after saving a record successfully
  37.      * @param string $id
  38.     */
  39.     protected function _afterSave($id = 0)
  40.     {
  41.         $this->_isError = false;
  42.        
  43.         $privileges = Privileges::model()->findAll();
  44.         foreach($privileges as $key => $val){
  45.             $data = array(
  46.                 'role_id'        => $id,
  47.                 'privilege_id'   => $val['id'],
  48.                 'is_active'      => 1
  49.             );
  50.            
  51.             $privileges = RolePrivileges::model()->addPrivilages($data);
  52.             if(!$privileges){
  53.                 $this->_isError = true;
  54.             }
  55.         }        
  56.     }
  57.  
  58.     /**
  59.      * This method is invoked after deleting a record successfully
  60.      * @param int $pk
  61.      */
  62.     protected function _afterDelete($pk = '')
  63.     {
  64.         // Remove role privileges        
  65.         RolePrivileges::model()->deleteAll('role_id = :role_id', array(':role_id' => $pk));
  66.     }
  67.    
  68. }
  69.  
  70. ?>