예제 #1
0
 protected function afterSave()
 {
     if (!$this->isNewRecord) {
         $idOldPhpScript = $this->getPkBeforeSave();
         if ($this->id_php_script_type != $idOldPhpScript) {
             PhpScriptInstance::model()->updateAll(array('id_php_script_type' => $this->id_php_script_type), 'id_php_script_type=:id', array(':id' => $idOldPhpScript));
             DaObjectViewColumn::model()->updateAll(array('handler' => $this->id_php_script_type), 'handler=:id', array(':id' => $idOldPhpScript));
         }
     }
     return parent::afterSave();
 }
예제 #2
0
 public function init()
 {
     parent::init();
     // Элемент работает с одним типом пхп скрипта.
     $idPhpScriptType = HU::get(ObjectUrlRule::PARAM_SYSTEM_MODULE);
     $idPhpScript = $this->model->{$this->attributeName};
     if ($idPhpScript == null && $idPhpScriptType == null) {
         $this->render = false;
         return;
     }
     if ($idPhpScript != null) {
         $this->phpScript = PhpScriptInstance::model()->findByAttributes(array('id_php_script' => $idPhpScript));
         if ($this->phpScript == null) {
             $this->error = 'Ошибка определения обработчика. Возможно, был удален php-скрипт, привязанный к данному экземпляру.';
             return;
         }
     } else {
         if ($idPhpScriptType != null) {
             // новый раздел
             $this->phpScript = new PhpScriptInstance();
             $this->phpScript->id_php_script_type = $idPhpScriptType;
         }
     }
 }
예제 #3
0
 public function prepareSiteModule($name, $idPhpScriptType, $params = array(), $visible = true)
 {
     $this->activatePhpScript($idPhpScriptType);
     $phpScript = new PhpScriptInstance();
     $phpScript->id_php_script_type = $idPhpScriptType;
     $phpScript->setParametersValue($params);
     $phpScript->save();
     $siteModule = new SiteModule();
     $siteModule->id_php_script = $phpScript->id_php_script;
     $siteModule->name = $name;
     $siteModule->setIsVisible($visible);
     return $siteModule;
 }