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(); }
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; } } }
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; }