注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

浮游生物的博客

以扯蛋的态度面对操蛋的人生

 
 
 

日志

 
 

phpcms 关于列表页自动分页和内容页自动分页{$pages}的修改  

2010-12-01 11:12:01|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

用PHPCMS做了一个网站,发现里面列表页(分为多页和单页两种)和内容页使用{$pages},会有不同结果导致样式不能统一。如在列表页使用如下标签:

{tag_二级栏目图片}

模板代码: 

<div class="xlist">    
        <ul>

{loop $data $n $r}
<li><a href="{$r[url]}" target="{$target}"><img src="{thumb($r[thumb], $width, $height)}" width="{$width}" height="{$height}" alt="{$r[title]}" /></a><br /><a href="{$r[url]}" target="{$target}">{if $r[style]}<span class="{$r[style]}">{str_cut($r[title], $titlelen,'')}</span>{else}{str_cut($r[title], $titlelen,'')}{/if}</a></li>
{/loop}
 </ul>
           </div>

<ul class="mypage">
{if $pages}
{$pages}
{/if}
</ul>

发现此处的{$pages}是使用/include/global.func.php里的

function pages($num, $curr_page, $perpage = 20, $urlrule = '', $array = array(), $catid = 0)
{
global $PHPCMS;
if($PHPCMS['pagemode'] && $num > $perpage)
{
  $multipage = '';
  if($num > $perpage)
  {
   $page = 6;
   $offset = 2;
   $pages = ceil($num / $perpage);
   $from = $curr_page - $offset;
   $to = $curr_page + $offset;
   $more = 0;
   if($page >= $pages)
   {
    $from = 2;
    $to = $pages-1;
   }
   else
   {
    if($from <= 1)
    {
     $to = $page-1;
     $from = 2;
    }
    elseif($to >= $pages)
    {
     $from = $pages-($page-2); 
     $to = $pages-1; 
    }
    $more = 1;
   }
   if($urlrule == '') $urlrule = url_par('page={$page}');
   $url = load('url.class.php');
  // $multipage .= '<li>总数:<b>'.$num.'</b>&nbsp;&nbsp;</li>';
   $multipage .= '<li></li>';
   if($curr_page>0)
   {
    $multipage .= $catid ? '<li><a href="'.$url->category($catid, $curr_page-1, 1, 1).'">上一页</a></li>' : '<li><a href="'.pageurl($urlrule, $curr_page-1, $array).'">上一页</a></li>';
    if($curr_page==1)
    {
     //$multipage .= '<li><u><b>1</b></u></li> ';
  $multipage .= '<li><u>1</u></li> ';
    }
    elseif($curr_page>6 && $more)
    {
     $multipage .= $catid ? '<li><a href="'.$url->category($catid, 1, 1, 1).'">1</a></li><li>..</li>' : '<li><a href="'.pageurl($urlrule, 1, $array).'">1</a></li><li>..</li>';
    }
    else
    {
     $multipage .= $catid ? '<li><a href="'.$url->category($catid, 1, 1, 1).'">1</a></li>' : '<li><a href="'.pageurl($urlrule, 1, $array).'">1</a></li> ';
    }
   }
   for($i = $from; $i <= $to; $i++)
   {
    if($i != $curr_page)
    {
     $multipage .= $catid ? '<li><a href="'.$url->category($catid, $i, 1, 1).'">'.$i.'</a> </li>' : '<li><a href="'.pageurl($urlrule, $i, $array).'">'.$i.'</a></li> ';
    }
    else
    {
     //$multipage .= ' <li><u><b>'.$i.'</b></u> </li>';
   $multipage .= ' <li><u>'.$i.'</u> </li>';
    }
   }
   if($curr_page<$pages)
   {
    if($curr_page<$pages-5 && $more)
    {
     $multipage .= $catid ? '<li>..</li><li><a href="'.$url->category($catid, $pages, 1, 1).'">'.$pages.'</a></li><li><a href="'.$url->category($catid, $curr_page+1, 1, 1).'">下一页</a></li>' : '<li>..</li><li><a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a></li><li><a href="'.pageurl($urlrule, $curr_page+1, $array).'">下一页</a></li>';
    }
    else
    {
     $multipage .= $catid ? '<li><a href="'.$url->category($catid, $pages, 1, 1).'">'.$pages.'</a></li><li><a href="'.$url->category($catid, $curr_page+1, 1, 1).'">下一页</a></li>' : '<li><a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a></li><li><a href="'.pageurl($urlrule, $curr_page+1, $array).'">下一页</a></li>';
    }
   }
   elseif($curr_page==$pages)
   {
   //$multipage .= ' <li><u><b>'.$pages.'</b></u></li><li><a href="'.$url->category($catid, $curr_page, 1, 1).'">下一页</a></li>';
   $multipage .= ' <li><u>'.$pages.'</u></li><li><a href="'.$url->category($catid, $curr_page, 1, 1).'">下一页</a></li>';
   }
  }
  return $multipage;
}
else
{
  $total = $num;
  $page = $curr_page;
  if($num < 1) return '';
  if($urlrule == '') $urlrule = url_par('page={$page}');
  $pages = ceil($total/$perpage);
 
  $page = min($pages, $page);
  $prepage = $page - 1;
  $prepage = max($prepage, 1);
  $nextpage = $page+1;
  $nextpage = min($nextpage, $pages);
  if($catid)//此处跟前台如列表页翻页相关
  {
   $url = load('url.class.php');
 //$firstpage = $url->category($catid, 1, 1, 1);为了修正多个域名指向同一网站时的翻页路径错误,故修改此处
   //$prepage = $url->category($catid, $prepage, 1, 1);
   //$nextpage = $url->category($catid, $nextpage, 1, 1);
  // $lastpage = $url->category($catid, $pages, 1, 1);
   //$urlpre = $url->category($catid, '', 1, 1);
  
   $firstpage = PHPCMS_PATH.$url->category($catid, 1, 1, 1);
   $prepage = PHPCMS_PATH.$url->category($catid, $prepage, 1, 1);
   $nextpage = PHPCMS_PATH.$url->category($catid, $nextpage, 1, 1);
   $lastpage = PHPCMS_PATH.$url->category($catid, $pages, 1, 1);
   $urlpre = PHPCMS_PATH.$url->category($catid, '', 1, 1);  }
  else//此处跟网站后台翻页相关,改了后台翻页路径会出错,不改问吧之类的栏目翻页路径会出错,只好不改,在问吧加<base href="{SITE_URL}"/> (另外<base href="{SITE_URL}" />这个标签放在栏目页,可以解决前台栏目页翻页和后台、搜索翻页路径不同导致的错误问题)

  {
  
   $firstpage = PHPCMS_PATH.pageurl($urlrule, 1, $array);
   $prepage = PHPCMS_PATH.pageurl($urlrule, $prepage, $array);
   $nextpage = PHPCMS_PATH.pageurl($urlrule, $nextpage, $array);
   $lastpage = PHPCMS_PATH.pageurl($urlrule, $pages, $array);
   $urlpre = PHPCMS_PATH.pageurl($urlrule, '', $array);  }

 


  $data = str_replace('"', '\"', $PHPCMS['pageshtml']);
  eval("\$url = \"$data\";");
  return $url;
}
}

此函数上半段是多页显示方式(多页在此处修改既可),下半段是单页显示方式(单页最好在PHPCMS管理后台/网站配置/网站设置/切换分页方式,选中上下分页方式修改)

 

内容页的{$pages}在/include/url.class.php里的

 function show_pages($curr_page, $num, $pageurls)
 {  
  $multipage = '';
  $page = 11;
  $offset = 4;
  $pages = $num;
  $from = $curr_page - $offset;
  $to = $curr_page + $offset;
  $more = 0;
  if($page >= $pages)
  {
   $from = 2;
   $to = $pages-1;
  }
  else
  {
   if($from <= 1)
   {
    $to = $page-1;
    $from = 2;
   }
   elseif($to >= $pages)
   {
    $from = $pages-($page-2);
    $to = $pages-1;
   }
   $more = 1;
  }

  if($curr_page>0)
  {
   $perpage = $curr_page == 1 ? 1 : $curr_page-1;

//因为路径问题,凡是链接我都加了PHPCMS_PATH

//如,原本是  $multipage .= '<li><a href="'.$pageurls[$perpage][1].'">上一页</a></li>';

   $multipage .= '<li><a href="'.PHPCMS_PATH.$pageurls[$perpage][1].'">上一页</a></li>';
   if($curr_page==1)
   {
    $multipage .= '<li><u><b>1</b></u></li> ';
   }
   elseif($curr_page>6 && $more)
   {
    $multipage .= '<li><a href="'.PHPCMS_PATH.$pageurls[1][1].'">1</a></li><li>..</li>';
   }
   else
   {
    $multipage .= '<li><a href="'.PHPCMS_PATH.$pageurls[1][1].'">1</a></li>';
   }
  }
  for($i = $from; $i <= $to; $i++)
  {
   if($i != $curr_page)
   {
    $multipage .= '<li><a href="'.PHPCMS_PATH.$pageurls[$i][1].'">'.$i.'</a></li>';
   }
   else
   {
    $multipage .= ' <li><u><b>'.$i.'</b></u></li> ';
   }
  }
  if($curr_page<$pages)
  {
   if($curr_page<$pages-5 && $more)
   {
    $multipage .= '<li>..</li><li><a href="'.PHPCMS_PATH.$pageurls[$pages][1].'">'.$pages.'</a> </li><li><a href="'.PHPCMS_PATH.$pageurls[$curr_page+1][1].'">下一页</a></li>';
   }
   else
   {
    $multipage .= '<li><a href="'.PHPCMS_PATH.$pageurls[$pages][1].'">'.$pages.'</a></li><li><a href="'.PHPCMS_PATH.$pageurls[$curr_page+1][1].'">下一页</a></li>';
   }
  }
  elseif($curr_page==$pages)
  {
   $multipage .= ' <li><u><b>'.$pages.'</b></u></li><li><a href="'.PHPCMS_PATH.$pageurls[$curr_page][1].'">下一页</a></li>';
  }
  return $multipage;
 }

修改既可。

  评论这张
 
阅读(5781)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018