Вход Регистрация
Файл: framework/gii/generators/module/ModuleCode.php
Строк: 63
<?php

class ModuleCode extends CCodeModel
{
    public 
$moduleID;

    public function 
rules()
    {
        return 
array_merge(parent::rules(), array(
            array(
'moduleID''filter''filter'=>'trim'),
            array(
'moduleID''required'),
            array(
'moduleID''match''pattern'=>'/^w+$/''message'=>'{attribute} should only contain word characters.'),
        ));
    }

    public function 
attributeLabels()
    {
        return 
array_merge(parent::attributeLabels(), array(
            
'moduleID'=>'Module ID',
        ));
    }

    public function 
successMessage()
    {
        if(
Yii::app()->hasModule($this->moduleID))
            return 
'The module has been generated successfully. You may '.CHtml::link('try it now'Yii::app()->createUrl($this->moduleID), array('target'=>'_blank')).'.';

        
$output=<<<EOD
<p>The module has been generated successfully.</p>
<p>To access the module, you need to modify the application configuration as follows:</p>
EOD;
        
$code=<<<EOD
<?php
return array(
    'modules'=>array(
        '
{$this->moduleID}',
    ),
    ......
);
EOD;

        return 
$output.highlight_string($code,true);
    }

    public function 
prepare()
    {
        
$this->files=array();
        
$templatePath=$this->templatePath;
        
$modulePath=$this->modulePath;
        
$moduleTemplateFile=$templatePath.DIRECTORY_SEPARATOR.'module.php';

        
$this->files[]=new CCodeFile(
            
$modulePath.'/'.$this->moduleClass.'.php',
            
$this->render($moduleTemplateFile)
        );

        
$files=CFileHelper::findFiles($templatePath,array(
            
'exclude'=>array(
                
'.svn',
                
'.gitignore'
            
),
        ));

        foreach(
$files as $file)
        {
            if(
$file!==$moduleTemplateFile)
            {
                if(
CFileHelper::getExtension($file)==='php')
                    
$content=$this->render($file);
                elseif(
basename($file)==='.gitkeep')  // an empty directory
                
{
                    
$file=dirname($file);
                    
$content=null;
                }
                else
                    
$content=file_get_contents($file);
                
$this->files[]=new CCodeFile(
                    
$modulePath.substr($file,strlen($templatePath)),
                    
$content
                
);
            }
        }
    }

    public function 
getModuleClass()
    {
        return 
ucfirst($this->moduleID).'Module';
    }

    public function 
getModulePath()
    {
        return 
Yii::app()->modulePath.DIRECTORY_SEPARATOR.$this->moduleID;
    }
}
Онлайн: 1
Реклама