Пример #1
0
 /**
  * 生成静态页面
  * @param type $arg     生成静态数据
  * array(控制器名,方法名,表态数据,保存表态文件路径)
  * array(news,show,1,'h/b/hd.html');表示生成news控制器中的show方法生成ID为1的文章
  */
 public function create($control, $method, $data)
 {
     $control = rtrim($control, C("CONTROL_FIX"));
     $file = get_control_file($control . C('CONTROL_FIX'));
     load_file($file[0]);
     $className = $file[1] . C("CONTROL_FIX");
     $obj = new $className();
     // $obj->$method();
     //        $GLOBALS['html_control'] = $control;
     //        $GLOBALS['html_method'] = $method;
     foreach ($data as $v) {
         //设置GET参数
         ob_start();
         foreach ($v as $m => $n) {
             $_GET[$m] = $n;
         }
         if (!isset($v['html_file'])) {
             //验证是否含有html_file内容,即生成文件的名子
             error(L("html_create_error1"), false);
             return false;
         }
         $dirname = dirname($v['html_file']);
         if (!$this->createDir($dirname)) {
             //创建一下生成静态的目录
             error(L("html_create_error2"));
             return false;
         }
         $obj->{$method}();
         //执行控制器方法
         $content = ob_get_clean();
         file_put_contents($v['html_file'], $content);
     }
     return true;
 }
Пример #2
0
 /**
  * 自动载入函数
  */
 private static function autoload($classname)
 {
     if (substr($classname, -7) == 'Control' && strlen($classname) > 7) {
         $classFile = get_control_file($classname);
         $classFile = $classFile[0];
     } else {
         $classFile = PATH_HD . '/libs/bin/' . $classname . '.class.php';
     }
     if (C("USR_FILES." . $classname)) {
         $classFile = C("USR_FILES." . $classname);
     }
     load_file($classFile);
 }
Пример #3
0
/**
 * 加载控制器
 * @param type $control         控制器名,可以为module.control形式调用其他模块的控制器
 */
function Control($control)
{
    $controlArr = get_control_file($control);
    static $_control = array();
    $name = md5($controlArr[0]);
    if (isset($_control[$name])) {
        return $_control[$name];
    }
    //控制器文件
    $control_file = $controlArr[0];
    load_file($control_file);
    $controlClass = $controlArr[1] . "Control";
    if (class_exists($controlClass, false)) {
        $_control[$name] = new $controlClass();
        return $_control[$name];
    } else {
        error($control_file . L("functions_control_error") . $control[1], false);
        //" 控制器文件中没有定义类"
    }
}