public function index()
 {
     inject_check($_GET['typeid']);
     inject_check($_GET['p']);
     //读取数据库&判断
     $typeid = (int) $_GET['typeid'];
     $list_model = 'list/list_default.html';
     $type = M('type');
     $list = $type->where('typeid=' . intval($_GET['typeid']))->find();
     if (!$list) {
         $this->error('栏目不存在!');
     } else {
         //当前选中菜单
         $pid = get_first_father($list['typeid']);
         $cur_menu = get_field('type', 'typeid=' . $pid, 'drank');
         $this->assign('cur_menu', $cur_menu);
         if ($list['list_path'] != '' && file_exists(TMPL_PATH . cookie('think_template') . '/' . $list['list_path'])) {
             $list_model = $list['list_path'];
         }
     }
     ob_start();
     //用于生成静态HTML
     $is_build = C('IS_BUILD_HTML');
     //允许参数
     $allow_param = array('p', 'author_id');
     $static_file = './Html/' . cookie('think_template') . '/lists/' . $typeid;
     $mid_str = '';
     if (count($_REQUEST) > 1) {
         foreach ($_REQUEST as $k => $v) {
             if ($k != 'typeid' && in_array($k, $allow_param)) {
                 $mid_str .= '/' . $k . '/' . md5($v);
             }
         }
     }
     $static_file .= $mid_str . '.html';
     $path = './ListAction.class.php';
     $php_file = basename($path);
     parent::html_init($static_file, $php_file, $is_build);
     //以下是动态代码
     //家族树与子孙树
     parent::tree_dir($typeid, 'tree_list');
     parent::children_dir($typeid, 'child_list');
     //栏目基本信息封装
     $this->assign('title', $list['typename']);
     $this->assign('type', $list);
     //栏目导航
     $config = F('basic', '', './Web/Conf/');
     if ($config['listshowmode'] == 1) {
         $map['fid'] = $list['fid'];
     } else {
         $map['fid'] = intval($_GET['typeid']);
     }
     $map['islink'] = 0;
     $nav = $type->where($map)->field('typeid,typename')->select();
     $this->assign('dh', $nav);
     //第一次释放内存
     $pernum = isset($list['pernum']) && intval($list['pernum']) > 0 ? intval($list['pernum']) : $config['artlistnum'];
     unset($list, $nav, $map);
     $list_server = M('admin')->where('is_client=1')->select();
     $this->assign('list_server', $list_server);
     $vip_sn = M('vip_mess')->order('id desc')->getField('vip_sn');
     $this->assign('vip_sn', $vip_sn);
     //网站头部与友情链接
     R('Public/head');
     R('Public/py_link');
     //查询数据库和缓存
     $article = D('ArticleView');
     //封装条件
     $map['status'] = 1;
     //导入分页类
     import('ORG.Util.Page');
     //准备工作
     $arr = get_children($typeid);
     $map['article.typeid'] = array('in', $arr);
     //用户阅读权限
     if ($config['isread'] == 1) {
         $map['_string'] = 'article.typeid in(' . $_SESSION['dami_uservail'] . ')';
     }
     //分页处理
     $count = $article->where($map)->count();
     $p = new Page($count, $pernum);
     $p->setConfig('prev', '上一页');
     $p->setConfig('header', '篇文章');
     $p->setConfig('first', '首 页');
     $p->setConfig('last', '末 页');
     $p->setConfig('next', '下一页');
     if (check_wap()) {
         $temp_str = "%first%%upPage%%downPage%%end%";
     } else {
         $temp_str = "%first%%upPage%%prePage%%linkPage%%nextPage%%downPage%%end%\n\t\t<select name='select' onChange='javascript:window.location.href=(this.options[this.selectedIndex].value);'>%allPage%</select>共<font color='#CD4F07'><b>%totalRow%</b></font>篇 " . $config['artlistnum'] . "篇/每页";
     }
     $p->setConfig('theme', $temp_str);
     //数据查询
     $alist = $article->where($map)->order('istop desc,addtime desc')->limit($p->firstRow . ',' . $p->listRows)->select();
     //echo $article->getLastSql();
     //封装变量
     $this->assign('page', $p->show());
     $this->assign('list', $alist);
     //释放内存
     unset($article, $type, $p, $tlist, $alist);
     //模板输出
     $this->display(TMPL_PATH . cookie('think_template') . '/' . $list_model);
     if ($is_build == 1) {
         $c = ob_get_contents();
         if (!file_exists(dirname($static_file))) {
             @mk_dir(dirname($static_file));
         }
         file_put_contents($static_file, $c);
     }
 }
 public function index()
 {
     if (!isset($_GET['aid'])) {
         $this->error('非法操作');
     }
     inject_check($_GET['aid']);
     inject_check($_GET['p']);
     $aid = intval($_GET['aid']);
     //读取数据库和缓存
     ob_start();
     //用于生成静态HTML
     $is_build = C('IS_BUILD_HTML');
     //允许参数
     $allow_param = array('p', 'keyword');
     $static_file = './Html/' . cookie('think_template') . '/articles/' . $aid;
     $mid_str = '';
     if (count($_REQUEST) > 1) {
         foreach ($_REQUEST as $k => $v) {
             if ($k != 'aid' && in_array($k, $allow_param)) {
                 $mid_str .= '/' . $k . '/' . md5($v);
             }
         }
     }
     $static_file .= $mid_str . '.html';
     $path = './ArticleAction.class.php';
     $php_file = basename($path);
     parent::html_init($static_file, $php_file, $is_build);
     //以下是动态代码
     $article = M('article');
     $config = F('basic', '', './Web/Conf/');
     $page_model = 'page/page_default.html';
     //相关判断
     $alist = $article->where('aid=' . $aid)->find();
     if (!$alist) {
         alert('文章不存在或已删除!', __APP__);
     }
     if ($alist['islink'] == 1) {
         Header('Location:' . $alist['linkurl']);
     }
     if ($alist['status'] == 0) {
         alert('文章未审核!', __APP__);
     }
     //阅读权限
     if ($config['isread'] == 1) {
         $uvail = explode(',', $_SESSION['dami_uservail']);
         if (!in_array($alist['typeid'], $uvail)) {
             alert('对不起您没有阅读改文章的权限!', __APP__);
         }
     }
     $this->assign('title', $alist['title']);
     parent::tree_dir($alist['typeid'], 'tree_list');
     $type = M('type');
     $list = $type->where('typeid=' . intval($alist['typeid']))->find();
     if ($list) {
         $pid = get_first_father($list['typeid']);
         $cur_menu = get_field('type', 'typeid=' . $pid, 'drank');
         $this->assign('cur_menu', $cur_menu);
         $this->assign('type', $list);
     }
     $a = M('type')->where('typeid=' . $alist['typeid'])->getField('page_path');
     if ($a != '' && file_exists(TMPL_PATH . cookie('think_template') . '/' . $a)) {
         $page_model = $a;
     }
     //网站头部
     R('Public/head');
     R('Public/py_link');
     //统计处理
     if ($alist['status'] == 1) {
         $map['hits'] = $alist['hits'] + 1;
         $article->where('aid=' . $aid)->save($map);
     }
     //注销map
     unset($map);
     $alist['hits'] += 1;
     //关键字替换
     $alist['content'] = $this->key($alist['content']);
     //鼠标轮滚图片
     if ($config['mouseimg'] == 1) {
         $alist['content'] = $this->mouseimg($alist['content']);
     }
     //文章内分页处理
     if ($alist['pagenum'] == 0) {
         //手动分页
         $alist['content'] = $this->diypage($alist['content']);
     } else {
         //自动分页
         $alist['content'] = $this->autopage($alist['pagenum'], $alist['content']);
     }
     //文章内投票
     $this->vote($alist['voteid']);
     //心情投票
     $url = __ROOT__;
     //用于心情js的根路径变量
     $this->assign('url', $url);
     //文章上下篇
     $map['status'] = 1;
     $map['typeid'] = $alist['typeid'];
     $map['aid'] = array('lt', $alist['aid']);
     $up = $article->where($map)->field('aid,title')->order('addtime desc')->limit(1)->find();
     //dump($article->getLastsql());
     if (!$up) {
         $lastpage = '';
         $updown = '下一篇:<span>无</span>';
     } else {
         $up['title'] = msubstr($up['title'], 0, 20, 'utf-8');
         $lastpage = '<a href="' . U('articles/' . $up['aid']) . '" data-icon="arrow-l" data-iconpos="left">' . $up['title'] . '</a>';
         $updown = '下一篇:<span><a href="' . U('articles/' . $up['aid']) . '" >' . $up['title'] . '</a></span>';
     }
     $this->assign('lastpage', $lastpage);
     $map['aid'] = array('gt', $alist['aid']);
     $down = $article->where($map)->field('aid,title')->order('addtime desc')->limit(1)->find();
     if (!$down) {
         $nextpage = '';
         $updown .= '  上一篇:<span>无</span>';
     } else {
         $dowm['title'] = msubstr($down['title'], 0, 20, 'utf-8');
         $nextpage = '<a href="' . U('articles/' . $down['aid']) . '" data-icon="arrow-r" data-iconpos="right">' . $down['title'] . '</a>';
         $updown .= '  上一篇:<span><a href="' . U('articles/' . $down['aid']) . '">' . $down['title'] . '</a></span>';
     }
     $this->assign('nextpage', $nextpage);
     $this->assign('updown', $updown);
     //释放相关内存
     unset($updown, $up, $down, $map, $lastpage, $nextpage);
     //相关文章
     if ($alist['keywords'] != '') {
         $map['status'] = 1;
         $keywords = explode(",", $alist['keywords']);
         foreach ($keywords as $k => $v) {
             if ($k == 0) {
                 $map['_string'] = "(keywords like '%{$v}%')";
             } else {
                 $map['_string'] = " OR (keywords like '%{$v}%')";
             }
         }
         $klist = $article->where($map)->field('aid,title,imgurl,addtime')->limit(6)->select();
         //封装变量
         $this->assign('keylist', $klist);
     }
     $this->assign('article', $alist);
     //释放内存
     unset($article, $alist, $klist, $map);
     //模板输出
     $this->display(TMPL_PATH . cookie('think_template') . '/' . $page_model);
     if ($is_build == 1) {
         $c = ob_get_contents();
         if (!file_exists(dirname($static_file))) {
             @mk_dir(dirname($static_file));
         }
         file_put_contents($static_file, $c);
     }
 }
Ejemplo n.º 3
0
/**
	+----------------------------------------------------------
	* 取得顶级栏目名称
	* 
	+----------------------------------------------------------
	* @author zerowang
	+----------------------------------------------------------
	* @param char
	+----------------------------------------------------------
*/
function get_first_sortName($typeid)
{
    $firstid = get_first_father($typeid);
    $rs = M('type')->where('typeid =' . $firstid)->find();
    return $rs["typename"];
}