Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[修改] 为个人空间中添加"归档"、“日志分类”、“搜索博文”三个功能模块

[复制链接]
猪喜 发表于 2014-5-29 16:59:46 | 显示全部楼层 |阅读模式
本帖最后由 猪喜 于 2014-5-29 19:45 编辑

本贴旨在抛砖引玉,大概讲解一下添加日志DIY模块的方法,也希望广大会员能设计出更多更好的模块分享出来。首页,效果如下图:



功能是显示会员的博客分类,日志归档,还有搜索博主文章。

2. 涉及到的文件
两个文件,1是 lang_space.php (语言文件)、2是function_space.php(所有的DIY模块程序都在这里)

3. 填加以上三个模块方法
首先,修改lang_space.php , 找到 'blockdata' 在数组中添加:
  1. 'hansearch'=>'搜索博文','gerenfenlei'=>'个人分类','guidang'=>'日志归档'
复制代码
再添加几个语言项:
  1. 'hansearch' => '搜博文',
  2.         'gerenfenlei'=>'个人分类',
  3.         'allclass' =>'全部分类',
  4.         'noclass' => '未分类',
  5.         'guidang'=>'日志归档',
复制代码

之后修改 function_space.php,添加3个case,如下:
  1. case 'hansearch':
  2.                         $han_search = array('uid'=>$uid);
  3.                         $html .= lang('space', 'hansearchform', $han_search);
  4.                         break;
  5.                 case 'gerenfenlei':
  6.                         $uids[0] = $uid;
  7.                         $count = C::t('home_blog')->count_all_by_search(null, $uids, null, null, $gthot, null, null, null, null, null, $privacyfriend, null, null, null, null);
  8.                         $html .= '<ul class="cat_list"><li><a href="home.php?mod=space&uid='.$uid.'&do=blog&view=me&from=space">'.lang('space', 'allclass').'</a> ['.$count.']</li>';
  9.                         $query = C::t('home_class')->fetch_all_by_uid($uid);
  10.                         foreach($query as $value) {
  11.                                 //$classarr[$value['classid']] = $value['classname'];
  12.                                 $count = C::t('home_blog')->count_all_by_search(null, $uids, null, null, $gthot, null, null, null, null, null, $privacyfriend, null, null, null, $value['classid']);
  13.                                 $html .= "<li><a href='home.php?mod=space&uid=".$uid."&do=blog&view=me&from=space&classid=".$value['classid']."'>".$value['classname']."</a> [".$count."]</li>";
  14.                         }
  15.                         $count = C::t('home_blog')->count_all_by_search(null, $uids, null, null, $gthot, null, null, null, null, null, $privacyfriend, null, null, null, -1);
  16.                         $html .= "<li><a href='home.php?mod=space&uid=".$uid."&do=blog&view=me&from=space&classid=-1'>".lang('space', 'noclass')."</a> [".$count."]</li>";
  17.                         $html .="</ul>";
  18.                         break;
  19.                 case 'guidang':
  20.                         $data_blog = C::t('home_blog')->fetch_all_by_uid($uid);
  21.                         $array_date = array();
  22.                         $html .= '<dl class="cundang">';

  23.                         foreach($data_blog as $key => $value) {
  24.                                 $array_date[date("Y",$value['dateline'])][date("m",$value['dateline'])] = $array_date[date("Y",$value['dateline'])][date("m",$value['dateline'])] + 1;
  25.                                 //$html .= $value['dateline']."<br>";
  26.                         }
  27.                         foreach ($array_date as $key => $value){
  28.                                 $html .= '<dt><b>'.$key."</b></dt>";
  29.                                 foreach ($value as $key2 => $value2){
  30.                                         $y=$key;
  31.                                         $m=$key2;
  32.                                         $d=date("d",strtotime($key.$key2."01"));
  33.                                         $t0=date('t',strtotime($key.$key2."01"));           // 本月一共有几天
  34.                                         $t1=mktime(0,0,0,$m,1,$y);        // 创建本月开始时间
  35.                                         $t2=mktime(23,59,59,$m,$t0,$y);       // 创建本月结束时间

  36.                                         $html .= "<dd><a href='home.php?mod=space&uid=".$uid."&do=blog&view=me&from=space&starttime=".$t1."&endtime=".$t2."'>".$key2.lang('space', 'month')."(".$value2.")</a></dd>";
  37.                                 }
  38.                         }
  39.                         $html .= '</dl>';
  40.                         break;
复制代码

对应的 lang_space.php 里也加一行针对搜索框的语句如下:
  1. 'hansearchform' => '<form action="home.php" method="get">
  2. <input type="hidden" name="mod" value="space">
  3. <input type="hidden" name="do" value="blog">
  4. <input type="hidden" name="view" value="me">
  5. <input type="hidden" name="uid" value="{uid}">
  6. <input type="hidden" name="from" value="space">
  7. <dl class="cat_blogsearch">
  8. <dd>
  9. <input type="text" style="padding:2px; width:100px;" value="" name="searchkey" id="keyword">
  10. <span class="bts_h"><span><button type="button" onclick="if($(\'keyword\').value) this.form.submit();">搜索</button></span></span>
  11. </dd>
  12. </dl>
  13. </form>',
复制代码

以上就是全过程!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
aikato 发表于 2014-8-16 15:25:13 | 显示全部楼层
非常好的教程,十分感謝作者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 13:02 , Processed in 0.025813 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表