コード例 #1
0
ファイル: Html.class.php プロジェクト: sandom123/king400
 /**
  * 生成自定义列表页面
  * @param type $data
  * @return boolean
  */
 public function createListHtml($data = '')
 {
     if (empty($data)) {
         if (!empty($this->data)) {
             $data = $this->data;
             // 重置数据
             $this->data = array();
         } else {
             $this->error = '没有数据';
             return false;
         }
     } else {
         if (is_integer($data)) {
             $data = D('Template/Customlist')->where(array('id' => $data))->find();
             if (empty($data)) {
                 $this->error = '没有数据';
                 return false;
             }
         }
     }
     $model = D('Template/Customlist');
     //初始化一些模板分配变量
     $this->assignInitialize();
     //计算总数
     $countArray = $model->query($data['totalsql']);
     if (!empty($countArray)) {
         $count = $countArray[0]['total'];
     } else {
         return false;
     }
     //seo分配到模板
     $seo = seo(0, $data['title'], $data['description'], $data['keywords']);
     $this->assign("SEO", $seo);
     //分页总数
     $paging = ceil($count / $data['lencord']);
     $pagehao = 1;
     do {
         //生成路径
         $customlistUrl = $this->Url->createListUrl($data, $pagehao);
         if ($customlistUrl == false) {
             return false;
         }
         //取得URL规则
         $urls = $customlistUrl['page'];
         $page = page($count, $data['lencord'], $pagehao, array('isrule' => true, 'rule' => $urls));
         $listData = $model->query($data['listsql'] . " LIMIT {$page->firstRow},{$page->listRows}");
         //把分页分配到模板
         $this->assign(C("VAR_PAGE"), $pagehao);
         $this->assign('listData', $listData);
         $this->assign("pages", $page->show());
         if (empty($data['listpath'])) {
             //生成路径
             $htmlpath = SITE_PATH . $customlistUrl["path"];
             // 页面缓存
             ob_start();
             ob_implicit_flush(0);
             //渲染模板
             parent::show($data['template']);
             // 获取并清空缓存
             $content = ob_get_clean();
             //检查目录是否存在
             if (!is_dir(dirname($htmlpath))) {
                 // 如果静态目录不存在 则创建
                 mkdir(dirname($htmlpath), 0777, true);
             }
             //写入文件
             if (false === file_put_contents($htmlpath, $content)) {
                 throw_exception("自定义列表生成失败:" . $htmlpath);
             }
         } else {
             //去除完后缀的模板
             $template = TEMPLATE_PATH . (empty(self::$Cache["Config"]['theme']) ? "Default" : self::$Cache["Config"]['theme']) . "/Content/List/{$data['listpath']}";
             //模板检测
             $template = parseTemplateFile($template);
             //生成
             $this->buildHtml($customlistUrl['path'], SITE_PATH, $template);
         }
         $pagehao++;
     } while ($pagehao <= $paging);
     return true;
 }