} // Categories $categories = PageCategory::model() ->language(Yii::app()->languageManager->default->id) ->findAll(); if($categories) { foreach($categories as $c) $c->createTranslation($event->sender->getPrimaryKey()); } } /** * Delete page translations after deleting language * @param $event */ public function deleteTranslations($event) { // Delete page translations Yii::import('application.modules.pages.models.PageTranslate'); $pages = PageTranslate::model()->findAll(array( 'condition'=>'language_id=:lang_id', 'params'=>array(':lang_id'=>$event->sender->getPrimaryKey()) )); if($pages) { foreach($pages as $p) $p->delete(); } // Delete categories translations Yii::import('application.modules.pages.models.PageCategoryTranslate'); $categories = PageCategoryTranslate::model()->findAll(array( 'condition'=>'language_id=:lang_id', 'params'=>array(':lang_id'=>$event->sender->getPrimaryKey()) )); if($categories) { foreach($categories as $c) $c->delete(); } } } Yii::import('application.modules.store.models.*'); /** * Global events */ class StoreModuleEvents { /** * @var array */ public $classes = array( 'StoreProduct', 'StoreCategory', 'StoreAttribute', 'StoreManufacturer', 'StoreDeliveryMethod', ); /** * @return array of events to subscribe module */ public function getEvents() { return array( array('SSystemLanguage', 'onAfterSave', array($this, 'insertTranslations')), array('SSystemLanguage', 'onAfterDelete', array($this, 'deleteTranslations')), ); } /** * `On after create new language` event. * Create default translation for each product object. * @param $event */ public function insertTranslations($event) { if($event->sender->isNewRecord) { foreach($this->classes as $class) $this->_insert($class, $event); } } /** * @param $class * @param $event */ public function _insert($class, $event) { $objects = $class::model() ->language(Yii::app()->languageManager->default->id) ->findAll(); if($objects) { foreach($objects as $obj) $obj->createTranslation($event->sender->getPrimaryKey()); } } /** * Delete product translations after deleting language * @param $event */ public function deleteTranslations($event) { foreach($this->classes as $class) $this->_delete($class.'Translate', $event); } /** * @param $class * @param $event */ private function _delete($class, $event) { $objects = $class::model()->findAll(array( 'condition'=>'language_id=:lang_id', 'params'=>array(':lang_id'=>$event->sender->getPrimaryKey()) )); if($objects) { foreach($objects as $obj) $obj->delete(); } } } Arredondo: оружейный тюнинг и аксессуары купить в iShooter
В Вашем браузере отключены файлы cookie. Сайт работает в ограниченом режиме. Для использования всех функций сайта включите файлы cookie в браузере.