手机游戏
经典单机
角色扮演
休闲益智
动作冒险
射击枪战
赛车竞速
模拟经营
解密闯关
策略战争
手机软件
时尚购物
体育运动
资讯阅读
教育学习
摄影摄像
生活服务
效率办公
聊天社交
视频盒子
其它软件
新闻资讯
游戏攻略
软件教程
游戏问答
软件资讯
软件技术
叨叨念念
网站技术
技术问答
软件教程
资源资料
原创作品
代码学习
网页设计
网络技术
合集
合集
游戏合集
软件合集
资讯合集
视频合集
首页 > 代码学习 > 代码学习

本站emlog时间轴归档页面代码

作者:星知苑 时间:2014-11-03 09:25:40

文件缓存型时间轴归档,后台更新缓存或者发布新文章的时候会自动更新。

本站这个代码是使用缓存系统的,是需要修改内核文件的。慎用!

 

1、修改cache.php文件,添加归档缓存函数(路径include/lib)

private $logalias_cache;
之后添加
private $loglists_cache;
[break]
添加在其他缓存函数位置添加归档缓存
	/**
	 * 文章归档列表缓存
	 */
	private function mc_loglists() {
                $timezone = Option::get('timezone');
		$query = $this->db->query('select gid,title,date from ' . DB_PREFIX . "blog WHERE hide='n' and checked='y' and type='blog' ORDER BY date DESC");
		$loglists_cache = array();
		while ($row = $this->db->fetch_array($query)) {
                        $row['date'] = $row['date'] + $timezone * 3600;
			$loglists_cache[]= $row;
		}
		$cacheData = serialize($loglists_cache);
		$this->cacheWrite($cacheData, 'loglists');
	}

2、时间轴CSS,对IE系列支持并不完美:

.archives h2{font-size:150%;}
.archives li a{padding:8px 0;display:block}
.archives li a:hover .atitle:after{background:#ff5c43}
.archives li a span{display: inline-block;width:100px;font-size:12px;text-indent:20px}
.archives li a .atitle{display: inline-block;padding:0 15px;position:relative;width:550px;white-space:nowrap;text-overflow:ellipsis;}
.archives li a .atitle:after{position:absolute;left:-2px;background:#ccc;height:8px;width:8px;border-radius:6px;top:8px;content:""}
.archives li a .atitle:before{position:absolute;left:-8px;background:#fff;height:12px;width:12px;border-radius:6px;top:6px;content:""}
.archives{margin:10px;position:relative;padding:10px 0}
.archives:before{height:100%;width:4px;background:#eee;position:absolute;left:100px;content:"";top:0}
.m-title{position:relative;margin:10px 0;cursor:pointer}    
.m-title:hover:after{background:#ff5c43}
.m-title:before{position:absolute;left:93px;background:#fff;height:18px;width:18px;border-radius:6px;top:3px;content:""}
.m-title:after{position:absolute;left:96px;background:#ccc;height:12px;width:12px;border-radius:6px;top:6px;content:""}

3、新建独立Page页面部分代码(由于模版不同,这里只能贴出部分代码):

		 <div class="archives">

		<?php

			global $CACHE; 

			$loglists_cache = $CACHE->readCache('loglists');

			$year_month = 0;

			foreach($loglists_cache as $value):

			if($year_month != 0&&$year_month != date("Y-m",$value['date'])){

				echo '</ul>';

			}

			if($year_month != date("Y-m",$value['date'])){

				$year_month = date("Y-m",$value['date']);

				echo '<h2 class="m-title">'.$year_month.'</h3><ul>';

			}

		?>

			<li><a href="<?php echo Url::log($value['gid']);?>" target="_blank" title="<?php echo $value['title']; ?>"><span><?php echo date("Y-m-d",$value['date']);?></span><div class="atitle"><?php echo $value['title'];?></div></a></li>

			<?php

			endforeach;

		?></div>

 

因为几个人在跟我要这个归档代码,所以也发布一个直接更改模版的方法,因为独立页面有自定义页面的功能,使用该功能就可以使用指定的页面模版。

1、新建独立page页面,填入独立页面代码。(以下只是部分代码)

		 <div class="archives">

		<?php

			$db = Database::getInstance();
			$query = $db->query('select gid,title,date from ' . DB_PREFIX . "blog WHERE hide='n' and checked='y' and type='blog' ORDER BY date DESC");
			$loglists_cache = array();
			while ($row = $this->db->fetch_array($query)) {
				$loglists_cache[]= $row;
			}


			$year_month = 0;

			foreach($loglists_cache as $value):

			if($year_month != 0&&$year_month != date("Y-m",$value['date'])){

				echo '</ul>';

			}

			if($year_month != date("Y-m",$value['date'])){

				$year_month = date("Y-m",$value['date']);

				echo '<h2 class="m-title">'.$year_month.'</h3><ul>';

			}

		?>

			<li><a href="<?php echo Url::log($value['gid']);?>" target="_blank" title="<?php echo $value['title']; ?>"><span><?php echo date("Y-m-d",$value['date']);?></span><div class="atitle"><?php echo $value['title'];?></div></a></li>

			<?php

			endforeach;

		?></div>

2、CSS同上一样保存不变

UPDATE:

2014-11-22 修复时区造成时间不准确问题,同步后台设置。 

良心推荐

宝可梦大探险新手攻略
这是刚刚上线的宝可梦系列的正版游戏授权,已经超过全球的玩家近千万的玩家的预约,手机已经可以开始玩了,在画面也是很有萌系卡爱的宝可梦,像素方块一样的造型更是突出了宝可梦世界的美丽,可以在上面和你所熟悉的各种宝可梦冒险,小编专门整理了一些比较适合新手玩家的攻略,帮助你度过最佳的新手阶段。

相关资讯