Server IP : 103.233.192.212 / Your IP : 18.225.92.18 Web Server : Apache/2 System : Linux sv1.inde.co.th 3.10.0-1160.36.2.el7.x86_64 #1 SMP Wed Jul 21 11:57:15 UTC 2021 x86_64 User : sumpatuan ( 1058) PHP Version : 5.5.38 Disable Function : symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,putenv,passthru,escapeshellarg,escapeshellcmd,pcntl_exec,proc_get_status,proc_nice,proc_terminate,pclose,ini_alter,virtual,openlog,ini_restore MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/sumpatuan/public_html/backup/framework/gii/generators/controller/ |
Upload File : |
<?php class ControllerCode extends CCodeModel { public $controller; public $baseClass='Controller'; public $actions='index'; public function rules() { return array_merge(parent::rules(), array( array('controller, actions, baseClass', 'filter', 'filter'=>'trim'), array('controller, baseClass', 'required'), array('controller', 'match', 'pattern'=>'/^\w+[\w+\\/]*$/', 'message'=>'{attribute} should only contain word characters and slashes.'), array('actions', 'match', 'pattern'=>'/^\w+[\w\s,]*$/', 'message'=>'{attribute} should only contain word characters, spaces and commas.'), array('baseClass', 'match', 'pattern'=>'/^[a-zA-Z_][\w\\\\]*$/', 'message'=>'{attribute} should only contain word characters and backslashes.'), array('baseClass', 'validateReservedWord', 'skipOnError'=>true), array('baseClass, actions', 'sticky'), )); } public function attributeLabels() { return array_merge(parent::attributeLabels(), array( 'baseClass'=>'Base Class', 'controller'=>'Controller ID', 'actions'=>'Action IDs', )); } public function requiredTemplates() { return array( 'controller.php', 'view.php', ); } public function successMessage() { $link=CHtml::link('try it now', Yii::app()->createUrl($this->controller), array('target'=>'_blank')); return "The controller has been generated successfully. You may $link."; } public function prepare() { $this->files=array(); $templatePath=$this->templatePath; $this->files[]=new CCodeFile( $this->controllerFile, $this->render($templatePath.'/controller.php') ); foreach($this->getActionIDs() as $action) { $this->files[]=new CCodeFile( $this->getViewFile($action), $this->render($templatePath.'/view.php', array('action'=>$action)) ); } } public function getActionIDs() { $actions=preg_split('/[\s,]+/',$this->actions,-1,PREG_SPLIT_NO_EMPTY); $actions=array_unique($actions); sort($actions); return $actions; } public function getControllerClass() { if(($pos=strrpos($this->controller,'/'))!==false) return ucfirst(substr($this->controller,$pos+1)).'Controller'; else return ucfirst($this->controller).'Controller'; } public function getModule() { if(($pos=strpos($this->controller,'/'))!==false) { $id=substr($this->controller,0,$pos); if(($module=Yii::app()->getModule($id))!==null) return $module; } return Yii::app(); } public function getControllerID() { if($this->getModule()!==Yii::app()) $id=substr($this->controller,strpos($this->controller,'/')+1); else $id=$this->controller; if(($pos=strrpos($id,'/'))!==false) $id[$pos+1]=strtolower($id[$pos+1]); else $id[0]=strtolower($id[0]); return $id; } public function getUniqueControllerID() { $id=$this->controller; if(($pos=strrpos($id,'/'))!==false) $id[$pos+1]=strtolower($id[$pos+1]); else $id[0]=strtolower($id[0]); return $id; } public function getControllerFile() { $module=$this->getModule(); $id=$this->getControllerID(); if(($pos=strrpos($id,'/'))!==false) $id[$pos+1]=strtoupper($id[$pos+1]); else $id[0]=strtoupper($id[0]); return $module->getControllerPath().'/'.$id.'Controller.php'; } public function getViewFile($action) { $module=$this->getModule(); return $module->getViewPath().'/'.$this->getControllerID().'/'.$action.'.php'; } }