Example #1
0
 /**
  * 应用程序初始化
  */
 public static function start()
 {
     // 加载默认配置
     C(include CONF_PATH . '/convention.php');
     date_default_timezone_set(C('DEFAULT_TIMEZONE'));
     // 环境变量
     putenv('LC_ALL=C');
     putenv('LANG="zh_CN.UTF-8"');
     spl_autoload_register(array('M3d', 'autoload'));
     require_array(array(LIB_PATH . '/Core/Dispatcher.class.php', LIB_PATH . '/Core/Model.class.php', LIB_PATH . '/Core/Action.class.php', LIB_PATH . '/Core/View.class.php', LIB_PATH . '/Core/Tool.class.php', LIB_PATH . '/Core/Plugin.class.php'));
     define('REQUEST_METHOD', strtolower($_SERVER['REQUEST_METHOD']));
     define('IS_GET', REQUEST_METHOD === 'get');
     define('IS_POST', REQUEST_METHOD === 'post');
     define('IS_PUT', REQUEST_METHOD === 'put');
     define('IS_DELETE', REQUEST_METHOD === 'delete');
     define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest');
     Tool::start();
     Plugin::start();
     // 加载全局配置
     C(include C('M3D_CONF_PATH') . '/config.php');
     // 加载project配置
     C(include PROJECT_PATH . '/conf/config.php');
     Dispatcher::dispatch();
     self::exec();
 }
Example #2
0
 public static function factory($options)
 {
     $options = is_array($options) ? $options : array();
     //只实例化一个对象
     if (is_null(self::$cacheFactory)) {
         self::$cacheFactory = new cacheFactory();
     }
     $driver = isset($options['driver']) ? $options['driver'] : C("CACHE_TYPE");
     //静态缓存实例名称
     $driverName = md5_s($options);
     //对象实例存在
     if (isset(self::$cacheFactory->cacheList[$driverName])) {
         return self::$cacheFactory->cacheList[$driverName];
     }
     $class = 'Cache' . ucwords(strtolower($driver));
     //缓存驱动
     $classFile = YY_PATH . 'Cache/' . $class . '.class.php';
     //加载驱动类库文件
     if (!require_array($classFile)) {
         halt("缓存类型指定错误,不存在缓存驱动文件:" . $classFile);
     }
     $cacheObj = new $class($options);
     self::$cacheFactory->cacheList[$driverName] = $cacheObj;
     return self::$cacheFactory->cacheList[$driverName];
 }
Example #3
0
 private static function autoload($className)
 {
     $class = ucfirst($className) . '.class.php';
     if (substr($className, -5) == "Model") {
         if (require_array(array(MODEL_PATH . $class, HDPHP_DRIVER_PATH . 'Model/' . $class, COMMON_MODEL_PATH . $class))) {
             return;
         }
     } elseif (substr($className, -7) == "Control") {
         if (require_array(array(CONTROL_PATH . $class, HDPHP_CORE_PATH . $class, COMMON_CONTROL_PATH . $class))) {
             return;
         }
     } elseif (substr($className, 0, 2) == 'Db') {
         if (require_array(array(HDPHP_DRIVER_PATH . 'Db/' . $class))) {
             return;
         }
     } elseif (substr($className, 0, 5) == "Cache") {
         if (require_array(array(HDPHP_DRIVER_PATH . 'Cache/' . $class))) {
             return;
         }
     } elseif (substr($className, 0, 7) == "Session") {
         if (require_array(array(HDPHP_DRIVER_PATH . 'Session/' . $class))) {
             return;
         }
     } elseif (substr($className, -5) == "Event") {
         if (require_array(array(EVENT_PATH . $class, COMMON_EVENT_PATH . $class))) {
             return;
         }
     } elseif (alias_import($className)) {
         return;
     } elseif (require_array(array(EVENT_PATH . $class, LIB_PATH . $class, TAG_PATH . $class, COMMON_LIB_PATH . $class, HDPHP_CORE_PATH . $class, HDPHP_EXTEND_PATH . $class, HDPHP_EXTEND_PATH . '/Tool/' . $class))) {
         return;
     }
     $msg = "Class {$class} not found";
     Log::write($msg);
     error($msg);
 }
Example #4
0
 /**
  * 系统自动加载ThinkPHP类库
  * 并且支持配置自动加载路径
  * @param string $class 对象类名
  * @return void
  */
 public static function autoload($class)
 {
     // 检查是否存在别名定义
     if (alias_import($class)) {
         return;
     }
     $libPath = defined('BASE_LIB_PATH') ? BASE_LIB_PATH : LIB_PATH;
     $group = defined('GROUP_NAME') && C('APP_GROUP_MODE') == 0 ? GROUP_NAME . '/' : '';
     $file = $class . '.class.php';
     if (substr($class, -8) == 'Behavior') {
         // 加载行为
         if (require_array(array(CORE_PATH . 'Behavior/' . $file, EXTEND_PATH . 'Behavior/' . $file, LIB_PATH . 'Behavior/' . $file, $libPath . 'Behavior/' . $file), true) || defined('MODE_NAME') && require_cache(MODE_PATH . ucwords(MODE_NAME) . '/Behavior/' . $file)) {
             return;
         }
     } elseif (substr($class, -5) == 'Model') {
         // 加载模型
         if (require_array(array(LIB_PATH . 'Model/' . $group . $file, $libPath . 'Model/' . $file, EXTEND_PATH . 'Model/' . $file), true)) {
             return;
         }
     } elseif (substr($class, -6) == 'Action') {
         // 加载控制器
         if (require_array(array(LIB_PATH . 'Action/' . $group . $file, $libPath . 'Action/' . $file, EXTEND_PATH . 'Action/' . $file), true)) {
             return;
         }
     } elseif (substr($class, 0, 5) == 'Cache') {
         // 加载缓存驱动
         if (require_array(array(EXTEND_PATH . 'Driver/Cache/' . $file, CORE_PATH . 'Driver/Cache/' . $file), true)) {
             return;
         }
     } elseif (substr($class, 0, 2) == 'Db') {
         // 加载数据库驱动
         if (require_array(array(EXTEND_PATH . 'Driver/Db/' . $file, CORE_PATH . 'Driver/Db/' . $file), true)) {
             return;
         }
     } elseif (substr($class, 0, 8) == 'Template') {
         // 加载模板引擎驱动
         if (require_array(array(EXTEND_PATH . 'Driver/Template/' . $file, CORE_PATH . 'Driver/Template/' . $file), true)) {
             return;
         }
     } elseif (substr($class, 0, 6) == 'TagLib') {
         // 加载标签库驱动
         if (require_array(array(EXTEND_PATH . 'Driver/TagLib/' . $file, CORE_PATH . 'Driver/TagLib/' . $file), true)) {
             return;
         }
     }
     // 根据自动加载路径设置进行尝试搜索
     $paths = explode(',', C('APP_AUTOLOAD_PATH'));
     foreach ($paths as $path) {
         if (import($path . '.' . $class)) {
             // 如果加载类成功则返回
             return;
         }
     }
 }
 /**
  * The system automatically loads the library Senthot
  * And Support configure automatic loading path
  * @param string $class Object class name
  * @return void
  */
 public static function autoload($class)
 {
     // Check for alias definitions
     if (alias_import($class)) {
         return;
     }
     $libPath = defined('BASE_LIB_PATH') ? BASE_LIB_PATH : LIB_PATH;
     $group = defined('GROUP_NAME') && C('APP_GROUP_MODE') == 0 ? GROUP_NAME . '/' : '';
     $file = $class . '.class.php';
     if (substr($class, -8) == 'Behavior') {
         // Load Behavior
         if (require_array(array(CORE_PATH . 'Behavior/' . $file, ADDONS_PATH . 'Behavior/' . $file, LIB_PATH . 'Behavior/' . $file, $libPath . 'Behavior/' . $file), true) || defined('MODE_NAME') && require_cache(MODE_PATH . ucwords(MODE_NAME) . '/Behavior/' . $file)) {
             return;
         }
     } elseif (substr($class, -5) == 'Model') {
         // Load Model
         if (require_array(array(LIB_PATH . 'Model/' . $group . $file, $libPath . 'Model/' . $file, ADDONS_PATH . 'Model/' . $file), true)) {
             return;
         }
     } elseif (substr($class, -6) == 'Action') {
         // Load Controller
         if (require_array(array(LIB_PATH . 'Action/' . $group . $file, $libPath . 'Action/' . $file, ADDONS_PATH . 'Action/' . $file), true)) {
             return;
         }
     } elseif (substr($class, 0, 5) == 'Cache') {
         // Load cache drive
         if (require_array(array(ADDONS_PATH . 'Driver/Cache/' . $file, CORE_PATH . 'Driver/Cache/' . $file), true)) {
             return;
         }
     } elseif (substr($class, 0, 2) == 'Db') {
         // Load database driver
         if (require_array(array(ADDONS_PATH . 'Driver/Db/' . $file, CORE_PATH . 'Driver/Db/' . $file), true)) {
             return;
         }
     } elseif (substr($class, 0, 8) == 'Template') {
         // Loading template engine driven
         if (require_array(array(ADDONS_PATH . 'Driver/Template/' . $file, CORE_PATH . 'Driver/Template/' . $file), true)) {
             return;
         }
     } elseif (substr($class, 0, 6) == 'TagLib') {
         // Load tag library drive
         if (require_array(array(ADDONS_PATH . 'Driver/TagLib/' . $file, CORE_PATH . 'Driver/TagLib/' . $file), true)) {
             return;
         }
     }
     // According to the settings automatically load path try to search
     $paths = explode(',', C('APP_AUTOLOAD_PATH'));
     foreach ($paths as $path) {
         if (import($path . '.' . $class)) {
             // If you load the class success, returns
             return;
         }
     }
 }
Example #6
0
 public static function autoload($class)
 {
     if (alias_import($class)) {
         return;
     }
     $libPath = defined('BASE_LIB_PATH') ? BASE_LIB_PATH : LIB_PATH;
     $group = defined('GROUP_NAME') && C('APP_GROUP_MODE') == 0 ? GROUP_NAME . '/' : '';
     $file = $class . '.class.php';
     if (substr($class, -8) == 'Behavior') {
         if (require_array(array(CORE_PATH . 'Behavior/' . $file, EXTEND_PATH . 'Behavior/' . $file, LIB_PATH . 'Behavior/' . $file, $libPath . 'Behavior/' . $file), true) || defined('MODE_NAME') && require_cache(MODE_PATH . ucwords(MODE_NAME) . '/Behavior/' . $file)) {
             return;
         }
     } elseif (substr($class, -5) == 'Model') {
         $model = ucwords(str_replace('Model', "", $class));
         if (require_array(array(LIB_PATH . 'Model/' . $group . $file, $libPath . 'Model/' . $file, EXTEND_PATH . 'Model/' . $file, APP_PATH . C("APP_GROUP_PATH") . "/{$model}/Model/{$class}.class.php"), true)) {
             return;
         }
     } elseif (substr($class, -6) == 'Action') {
         if (require_array(array(LIB_PATH . 'Action/' . $group . $file, $libPath . 'Action/' . $file, EXTEND_PATH . 'Action/' . $file), true)) {
             return;
         }
     } elseif (substr($class, 0, 5) == 'Cache') {
         if (require_array(array(EXTEND_PATH . 'Driver/Cache/' . $file, CORE_PATH . 'Driver/Cache/' . $file), true)) {
             return;
         }
     } elseif (substr($class, 0, 2) == 'Db') {
         if (require_array(array(EXTEND_PATH . 'Driver/Db/' . $file, CORE_PATH . 'Driver/Db/' . $file), true)) {
             return;
         }
     } elseif (substr($class, 0, 8) == 'Template') {
         if (require_array(array(EXTEND_PATH . 'Driver/Template/' . $file, CORE_PATH . 'Driver/Template/' . $file), true)) {
             return;
         }
     } elseif (substr($class, 0, 6) == 'TagLib') {
         if (require_array(array(EXTEND_PATH . 'Driver/TagLib/' . $file, CORE_PATH . 'Driver/TagLib/' . $file, LIB_PATH . "/TagLib/{$class}.class.php"), true)) {
             return;
         }
     } elseif (substr($class, -6) == 'TagLib') {
         if (require_cache(LIB_PATH . "/TagLib/{$class}.class.php")) {
             return;
         }
     } elseif (substr($class, -7) == 'Service') {
         if (require_cache(LIB_PATH . "/Service/{$class}.class.php")) {
             return;
         }
     } elseif (substr($class, 0, 10) == 'Attachment') {
         if (require_cache(LIB_PATH . "/Driver/Attachment/{$class}.class.php")) {
             return;
         }
     } elseif (substr($class, 0, 8) == 'Passport') {
         if (require_cache(LIB_PATH . "/Driver/Passport/{$class}.class.php")) {
             return;
         }
     } elseif (in_array($class, array('content_update', 'content_output', 'content_input', 'content_form', 'content_delete'))) {
         if (require_cache(RUNTIME_PATH . "{$class}.class.php")) {
             return;
         } else {
             D("Content_cache")->model_content_cache();
             if (is_file(RUNTIME_PATH . "{$class}.class.php")) {
                 include RUNTIME_PATH . "{$class}.class.php";
             }
         }
     } else {
         if (require_cache(LIB_PATH . "/Util/{$class}.class.php")) {
             return;
         }
     }
     $paths = explode(',', C('APP_AUTOLOAD_PATH'));
     foreach ($paths as $path) {
         if (import($path . '.' . $class)) {
             return;
         }
     }
 }
Example #7
0
function __autoload($class)
{
    if (substr($class, -10) == 'Controller') {
        require_array(array(CONTROLLER_PATH . $class . '.class.php', YY_PATH . $class . '.class.php'));
    } else {
        if (substr($class, -5) == 'Model') {
            require_array(array(MODEL_PATH . $class . '.class.php', YY_PATH . $class . '.class.php'));
        } elseif (substr($class, 0, 2) == 'Db') {
            require_array(array(YY_PATH . 'Driver/Db/' . $class . '.class.php'));
        } elseif (substr($class, -5) == 'Cache') {
            require_array(array(YY_PATH . 'Core/' . $class . '.class.php'));
        }
    }
}
Example #8
0
/**
 * 实例化控制器并执行方法
 * @param $control 控制器
 * @param null $method 方法
 * @param array $args 参数
 * @return bool|mixed
 */
function control($class, $method = NULl, $args = array())
{
    $class = $class . C('CONTROL_FIX');
    $classfile = $class . '.class.php';
    if (require_array(array(HDPHP_CORE_PATH . $classfile, CONTROL_PATH . $classfile, COMMON_CONTROL_PATH . $classfile))) {
        if (class_exists($class)) {
            $obj = new $class();
            if ($method && method_exists($obj, $method)) {
                return call_user_func_array(array(&$obj, $method), $args);
            }
            return $obj;
        }
    } else {
        return false;
    }
}
Example #9
0
 /**
  * 自动载入函数
  * @param string $className 类名
  * @access private
  * @return void
  */
 public static function autoload($className)
 {
     $class = ucfirst($className) . '.class.php';
     //类文件
     if (substr($className, -5) == 'Model' && require_array(array(HDPHP_DRIVER_PATH . 'Model/' . $class, MODULE_MODEL_PATH . $class, APP_MODEL_PATH . $class))) {
         return;
     } elseif (substr($className, -10) == 'Controller' && require_array(array(HDPHP_CORE_PATH . $class, MODULE_CONTROLLER_PATH . $class, APP_CONTROLLER_PATH . $class))) {
         return;
     } elseif (substr($className, 0, 2) == 'Db' && require_array(array(HDPHP_DRIVER_PATH . 'Db/' . $class))) {
         return;
     } elseif (substr($className, 0, 5) == 'Cache' && require_array(array(HDPHP_DRIVER_PATH . 'Cache/' . $class))) {
         return;
     } elseif (substr($className, 0, 4) == 'View' && require_array(array(HDPHP_DRIVER_PATH . 'View/' . $class))) {
         return;
     } elseif (substr($className, -4) == 'Hook' && require_array(array(MODULE_HOOK_PATH . $class, APP_HOOK_PATH . $class))) {
         return;
     } elseif (substr($className, -5) == 'Addon' && require_array(array(APP_ADDON_PATH . $class))) {
         return;
     } elseif (substr($className, -3) == 'Tag' && require_array(array(APP_TAG_PATH . $class, MODULE_TAG_PATH . $class))) {
         return;
     } elseif (substr($className, -7) == 'Storage' && require_array(array(HDPHP_DRIVER_PATH . 'Storage/' . $class))) {
         return;
     } elseif (alias_import($className)) {
         return;
     } elseif (require_array(array(MODULE_LIB_PATH . $class, APP_LIB_PATH . $class, HDPHP_CORE_PATH . $class, HDPHP_EXTEND_PATH . '/Tool/' . $class))) {
         return;
     }
 }
Example #10
0
File: ~boot.php Project: jyht/v5
 private function loadParseTags()
 {
     $tagClass = array();
     $tags = C('TPL_TAGS');
     if (!empty($tags) && is_array($tags)) {
         foreach ($tags as $file) {
             $file = str_replace(".", "/", $file);
             $info = explode("/", $file);
             $class = array_pop($info);
             if (class_exists($class, false)) {
             } else {
                 if (require_array(array(TAG_PATH . $file . '.class.php', COMMON_TAG_PATH . $file . '.class.php'))) {
                 } else {
                     if (import($file)) {
                     } else {
                         if (DEBUG) {
                             halt("标签类文件{$class}不存在");
                         } else {
                             continue;
                         }
                     }
                 }
             }
             $tmp = explode(".", $class);
             $tagClass[] = array_pop($tmp);
         }
     }
     if (import('HDPHP.Lib.Driver.View.ViewTag')) {
         $tagClass[] = 'ViewTag';
         $this->parseTagClass($tagClass);
     }
 }
Example #11
0
 /**
  * 自动载入函数
  * @param string $className 类名
  * @access private
  * @return void
  */
 public static function autoload($className)
 {
     $class = ucfirst($className) . '.class.php';
     //类文件
     if (substr($className, -5) == 'Model') {
         if (require_array(array(HDPHP_DRIVER_PATH . 'Model/' . $class, MODEL_PATH . $class, COMMON_MODEL_PATH . $class))) {
             return;
         }
     } elseif (substr($className, -7) == 'Control') {
         if (require_array(array(HDPHP_CORE_PATH . $class, CONTROL_PATH . $class, COMMON_CONTROL_PATH . $class))) {
             return;
         }
     } elseif (substr($className, 0, 2) == 'Db') {
         if (require_array(array(HDPHP_DRIVER_PATH . 'Db/' . $class))) {
             return;
         }
     } elseif (substr($className, 0, 5) == 'Cache') {
         if (require_array(array(HDPHP_DRIVER_PATH . 'Cache/' . $class))) {
             return;
         }
     } elseif (substr($className, 0, 4) == 'View') {
         if (require_array(array(HDPHP_DRIVER_PATH . 'View/' . $class))) {
             return;
         }
     } elseif (substr($className, -5) == 'Event') {
         if (require_array(array(EVENT_PATH . $class, COMMON_EVENT_PATH . $class))) {
             return;
         }
     } elseif (substr($className, -3) == 'Tag') {
         if (require_array(array(TAG_PATH . $class, COMMON_TAG_PATH . $class))) {
             return;
         }
     } elseif (substr($className, -7) == 'Storage') {
         if (require_array(array(HDPHP_DRIVER_PATH . 'Storage/' . $class))) {
             return;
         }
     } elseif (alias_import($className)) {
         return;
     } elseif (require_array(array(LIB_PATH . $class, COMMON_LIB_PATH . $class, HDPHP_CORE_PATH . $class, HDPHP_EXTEND_PATH . $class, HDPHP_EXTEND_PATH . '/Tool/' . $class))) {
         return;
     }
     $msg = "Class {$className} not found";
     Log::write($msg);
     halt($msg);
 }
Example #12
0
 /**
  * 加载标签库与解析标签
  */
 private function loadParseTags()
 {
     //标签库类
     $tagClass = array();
     //加载框架核心标签库
     if (import('HDPHP.Lib.Driver.View.ViewTag')) {
         $tagClass[] = 'ViewTag';
     }
     //加载扩展标签库
     $tags = C('TPL_TAGS');
     //如果配置文件中存在标签定义
     if (!empty($tags) && is_array($tags)) {
         //加载其他模块或应用中的标签库
         foreach ($tags as $file) {
             $file = str_replace(".", "/", $file);
             $info = explode("/", $file);
             //类名
             $class = array_pop($info);
             if (class_exists($class, false)) {
             } else {
                 if (require_array(array(MODULE_TAG_PATH . $file . '.class.php', APP_TAG_PATH . $file . '.class.php'))) {
                 } else {
                     if (import($file)) {
                     } else {
                         continue;
                     }
                 }
             }
             $tmp = explode(".", $class);
             $tagClass[] = array_pop($tmp);
         }
     }
     $this->parseTagClass($tagClass);
 }
Example #13
0
 /**
  * 修改内容 
  * @param array $data 数据
  * @param type $id 信息ID
  * @return boolean 
  */
 public function edit($data, $id)
 {
     require_array(array(RUNTIME_PATH . 'content_input.class.php', RUNTIME_PATH . 'content_update.class.php'));
     $this->catid = (int) $data['catid'];
     $this->modelid = $this->categorys[$this->catid]['modelid'];
     //主表操作开始
     $this->table_name = ucwords($this->Model[$this->modelid]['tablename']);
     $this->fbtable_name = $this->table_name . "_data";
     $this->Content = new ContentModel($this->table_name);
     $content_input = new content_input($this->modelid, $this);
     $inputinfo = $content_input->get($data);
     if (is_bool($inputinfo) && $inputinfo == false) {
         //显示错误
         $this->error($content_input->getError());
         return false;
     }
     //主表字段内容
     $systeminfo = $inputinfo['system'];
     //副表字段内容
     $modelinfo = $inputinfo['model'];
     //栏目数据
     $catidinfo = $this->categorys[$systeminfo['catid']];
     //setting配置
     $catidsetting = unserialize($catidinfo['setting']);
     //前台投稿状态判断
     if (defined('IN_ADMIN') && IN_ADMIN == false) {
         //前台投稿编辑是否需要审核
         if ($catidsetting['member_editcheck']) {
             $systeminfo['status'] = 1;
         }
     }
     //取得inputtime的真实发布时间
     //inputtime为真实发表时间,不允许修改
     $data['inputtime'] = $systeminfo['inputtime'] = $inputtime = $this->Content->where(array("id" => $id))->getField("inputtime");
     //更新时间处理
     if ($data['updatetime'] && !is_numeric($data['updatetime'])) {
         $systeminfo['updatetime'] = strtotime($data['updatetime']);
     } elseif (!$data['updatetime']) {
         $systeminfo['updatetime'] = time();
     } else {
         $systeminfo['updatetime'] = $data['updatetime'];
     }
     //自动提取摘要,如果有设置自动提取,且description为空,且有内容字段才执行
     if (isset($_POST['add_introduce']) && $systeminfo['description'] == '' && isset($modelinfo['content'])) {
         $content = stripslashes($modelinfo['content']);
         $introcude_length = intval($_POST['introcude_length']);
         $systeminfo['description'] = str_cut(str_replace(array("\r\n", "\t", '[page]', '[/page]', '“', '”', ' '), '', strip_tags($content)), $introcude_length);
         $inputinfo['system']['description'] = $systeminfo['description'] = Input::getVar($systeminfo['description']);
     }
     //自动提取缩略图,从content 中提取
     if (isset($_POST['auto_thumb']) && $systeminfo['thumb'] == '' && isset($modelinfo['content'])) {
         $content = $content ? $content : stripslashes($modelinfo['content']);
         $auto_thumb_no = intval($_POST['auto_thumb_no']) - 1;
         if (preg_match_all("/(src)=([\"|']?)([^ \"'>]+\\.(gif|jpg|jpeg|bmp|png))\\2/i", $content, $matches)) {
             $systeminfo['thumb'] = $matches[3][$auto_thumb_no];
         }
     }
     //转向地址
     if ($data['islink'] == 1) {
         $systeminfo['url'] = $_POST['linkurl'];
     } else {
         //生成该篇地址
         $urls = $this->url->show($id, 0, $systeminfo['catid'], $inputtime, $data['prefix'], $inputinfo, 'edit');
         $systeminfo['url'] = $urls[0];
     }
     //使用TP的自动验证,所以要把令牌合并
     $systeminfo = array_merge($systeminfo, array(C("TOKEN_NAME") => $_POST[C("TOKEN_NAME")]));
     $status = $this->Content->create($systeminfo);
     if (!$status) {
         $this->error($this->Content->getError());
     }
     //把副表的数据合并,按关联模型的需求合并
     $status['id'] = $id;
     $fdata = array($this->fbtable_name => $modelinfo);
     $status = array_merge($status, $fdata);
     //删除真实时间的信息,避免被更新
     unset($status['inputtime']);
     //数据修改,这里使用关联操作
     $this->Content->relation(true)->where(array('id' => $id))->save($status);
     //调用 update
     $content_update = new content_update($this->modelid, $id, $this);
     $data['url'] = $systeminfo['url'];
     $content_update->update($data);
     //更新附件状态,把相关附件和文章进行管理
     $this->attachment_db = service("Attachment");
     $this->attachment_db->api_update('', 'c-' . $systeminfo['catid'] . '-' . $id, 2);
     //更新到全站搜索
     if ($systeminfo['status'] == 99) {
         $this->search_api($id, $inputinfo, "updata");
     } else {
         $this->search_api($id, $inputinfo, "delete");
     }
     //生成相关
     $generatelish = 0;
     import('Html');
     $html = new Html();
     if (defined('IN_ADMIN') && IN_ADMIN) {
         //是否生成内容页
         if ($catidsetting['generatehtml']) {
             //生成静态
             if ($urls['content_ishtml'] && $status['status'] == 99) {
                 $html->show($urls[1], $urls['data']);
             }
         }
         //如果是未审核,删除已经生成
         if ($urls['content_ishtml'] && !$data['islink'] && $status['status'] == 1) {
             $this->deleteHtml($data['catid'], $id, $systeminfo['inputtime'], $systeminfo['prefix']);
         }
         //生成列表
         if ((int) $catidsetting['generatelish'] > 0) {
             $generatelish = (int) $catidsetting['generatelish'];
         }
     } else {
         //投稿内容页生成,直接审核通过的直接生成内容页
         if ($status['status'] == 99) {
             //生成静态
             if ($urls['content_ishtml']) {
                 $html->show($urls[1], $urls['data']);
             }
         } else {
             if ($urls['content_ishtml'] && !$data['islink']) {
                 $this->deleteHtml($data['catid'], $id, $systeminfo['inputtime'], $systeminfo['prefix']);
             }
         }
         //列表生成
         if ((int) $catidsetting['member_generatelish'] > 0) {
             $generatelish = (int) $catidsetting['member_generatelish'];
         }
     }
     //列表生成
     switch ($generatelish) {
         //生成当前栏目
         case 1:
             $html->create_relation_html($status['catid']);
             break;
             //生成首页
         //生成首页
         case 2:
             $html->index();
             break;
             //生成父栏目
         //生成父栏目
         case 3:
             if ($catidinfo['parentid']) {
                 $html->create_relation_html($catidinfo['parentid']);
             }
             break;
             //生成当前栏目与父栏目
         //生成当前栏目与父栏目
         case 4:
             $html->create_relation_html($status['catid']);
             if ($catidinfo['parentid']) {
                 $html->create_relation_html($catidinfo['parentid']);
             }
             break;
             //生成父栏目与首页
         //生成父栏目与首页
         case 5:
             if ($catidinfo['parentid']) {
                 $html->create_relation_html($catidinfo['parentid']);
             }
             $html->index();
             break;
             //生成当前栏目、父栏目与首页
         //生成当前栏目、父栏目与首页
         case 6:
             $html->create_relation_html($status['catid']);
             if ($catidinfo['parentid']) {
                 $html->create_relation_html($catidinfo['parentid']);
             }
             $html->index();
             break;
     }
     //生成上一篇下一篇
     $this->related_content($status['catid'], $id, "edit");
     return true;
 }