EMLOG获取当前主分类下的子分类名和链接的代码

2016-7-7 老张 网页制作

把以下代码复制到当前模版下的module.php文件里
<?php 
function sort_name($sortid){ 
$db = MySql::getInstance(); 
global $CACHE; $sort_cache = $CACHE->readCache('sort');
$sort_a = $db->query ("SELECT * FROM " . DB_PREFIX . "sort where pid=$sortid ORDER BY sid ASC, taxis asc");while ($row = $db->fetch_array($sort_a)){
foreach(array($row['sid']) as $key => $i){
$out .= '<li><a href="'.Url::sort($i).'">'.$sort_cache[$i]['sortname'].'</a></li>'; }
} echo $out; 
}?>
在需要的地方,例如log_list.php这个分类模板中,适当的位置调用<?php sort_name($sortid);?>就能获取当前主分类下的所有子分类名和链接了,如果当前分类下无子分类则输出空白,至于显示样式就请站长自行修改吧,如要在其它地方调用,把$sortid改为需要调用的主分类ID号即可。

标签: emlog

评论(0) 浏览(20)

EMLOG判断文章是否包含指定标签

2016-7-7 老张 网页制作

使用EMLOG建站的都用到了判断代码,例如首页判断、分类页判断、内容页判断等,使用判断我们可以分类页或内容页显示不同的模版,但判断代码里没有对标签所包含的文章进行判断,蓝叶在制作模板中,需要用到这个功能,就仔细研究了下,最终实现了判断当文章包含指定的标签时显示不同的内容,今天把这个方法分享给有需要的站长。

说明:把下面的PHP函数复制放到模版module.php里去。
<?php
function if_tagname($blogid){
	global $CACHE;
	$log_cache_tags = $CACHE->readCache('logtags');
	if (!empty($log_cache_tags[$blogid])){
		foreach ($log_cache_tags[$blogid] as $value){
			$tag .= $value['tagname'];
		}
		return $tag;
	}
}
?>

说明:这是调用判断代码,放到模版echo_log.php里去。
<?php if(strpos(if_tagname($logid),'EMLOG插件') !== false):?>
当此文章包含EMLOG插件这个标签时,则显示这里的内容。
<?php endif;?>

标签: emlog

评论(0) 浏览(18)

EMLOG所有标签列表代码

2016-7-7 老张 网页制作

EMLOG的标签是个特色,其实标签的功能是很强大的,如果你能充分利用好标签,你可以用EMLOG的标签功能做成各种效果;EMLOG默认没有所有标签列表,只有在侧边栏有全部标签显示的列表,我们可以动手来制作一个EMLOG所有标签列表的页面,蓝叶今天就分享下自己动手制作EMLOG所有标签列表的步骤;首先使用编辑器新建个PHP文件命名为TAGS.PHP,编辑这个PHP文件把以下代码复制到PHP文件里面,做做相应的修改把名称改为你的,保存这个PHP文件上传到你的EMLOG站点的跟目录下,然后再浏览器地址栏输入路径网址打开你就会看到效果了,如同蓝叶的所有标签列表网址演示:http://lanyes.org/tags.php


<?php
require_once 'init.php';
define('TEMPLATE_PATH', TPLS_PATH.Option::get('nonce_templet').'/');
$CACHE = Cache::getInstance();
$options_cache = $CACHE->readCache('options');
extract($options_cache);
$navibar = unserialize($navibar);
$curpage = CURPAGE_HOME;
$site_title = '所有标签列表 - '.Option::get('blogname');
$site_key = '蓝叶博客标签列表,蓝叶博客标签云集,蓝叶博客文章标签索引';
$site_description = '蓝叶博客所有标签列表页面';
include View::getView('header');
?>
<div style="background:#fff;padding:10px;display: table;height:100%">
<div style="font-size:16px;padding-bottom:5px;margin-bottom:10px;color:#0C3;border-bottom:1px solid #00aff0">现在位置:<a title="返回首页" href="<?php echo BLOG_URL; ?>">首页</a> » 所有标签列表</div>
<ul>
<?php global $CACHE;
$tag_cache = $CACHE->readCache('tags');?>
<?php foreach($tag_cache as $value): ?>
<li style="white-space:nowrap;margin:0 10px 10px 0;float:left"><span style="font-size:<?php echo $value['fontsize']; ?>pt; line-height:30px;border: 1px dashed #CCC;padding: 5px;border-radius: 10px;display: block;">
<a style="color:#<?php echo dechex(rand(0,16777215));?>" href="<?php echo Url::tag($value['tagurl']); ?>" title="<?php echo $value['usenum']; ?> 篇日志"><?php echo $value['tagname']; ?>(<?php echo $value['usenum']; ?>)</a></span></li><?php endforeach; ?>
</ul>
</div><div style="clear:both"></div>
<?php include View::getView('footer');?>

标签: emlog

评论(0) 浏览(17)

为网页添加动态背景 (背景轮播)

2016-7-7 老张 网页制作

以前文章 最近发现一个插件所以重新更新下本文

插件名称: jquery.backstretch.js

下面是 示例代码:

设置网页背景

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>全屏背景</title>
  6. <script src="http://api.asilu.com/cdn/jquery.js,jquery.backstretch.min.js" type="text/javascript"></script>
  7. </head>
  8. <body>
  9. <script type="text/javascript">
  10. $.backstretch('http://api.asilu.com/cdn/img/bg/444.jpg');
  11. </script>
  12. </body>
  13. </html>
运行代码



多张张图片切换

														
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>全屏背景切换</title>
  6. <script src="http://api.asilu.com/cdn/jquery.js,jquery.backstretch.min.js" type="text/javascript"></script>
  7. </head>
  8. <body>
  9. <script type="text/javascript">
  10. $.backstretch([
  11. 'http://api.asilu.com/cdn/img/bg/444.jpg',
  12. 'http://api.asilu.com/cdn/img/bg/445.jpg',
  13. 'http://api.asilu.com/cdn/img/bg/446.jpg',
  14. 'http://api.asilu.com/cdn/img/bg/447.jpg',
  15. 'http://api.asilu.com/cdn/img/bg/448.jpg'
  16. ], {
  17. fade : 1000, // 动画时长
  18. duration : 2000 // 切换延时
  19. });
  20. </script>
  21. </body>
  22. </html>
运行代码


2014-11-14 写的原文

看到别人的网站都有背景 自己也高了一下,但是苦于没有适合的 背景图片,所以就没有添加

现在拿出来共享一下

该代码实现了, 背景图片的切换,带有切换效果的
第一个版本 切换效果用到了 jQuery 的动画,这个版本果断放弃 不需要 jQuery切换动画由CSS设置

具体代码如下
CSS 样式
JS 代码
HTML 就一个 div#bg简单实用
																																					
  1. <meta http-equiv="Content-Type"content="text/html; charset=UTF-8"/>
  2. <style>
  3. div#bg {
  4. position: fixed;
  5. top: 0;
  6. left: 0;
  7. height: 100%;
  8. width: 100%;
  9. z-index: -10;
  10. background-position: center 0;
  11. background-repeat: no-repeat;
  12. background-attachment: fixed;
  13. background-size: cover;
  14. -webkit-background-size: cover;
  15. -o-background-size: cover;
  16. zoom: 1;
  17.  
  18. opacity:1;
  19. transition: opacity 1s linear;
  20. -moz-transition: opacity 1s linear;
  21. -webkit-transition: opacity 1s linear;
  22. -o-transition: opacity 1s linear;
  23. }
  24. </style>
  25. <h1><a href="http://gouji.org/?post=317">代码出处</a></h1>
  26. <div id="bg"></div>
  27. <script>
  28. // 定义图片路径 {num} 为 可变的图片序号
  29. var bgImgUrl = 'http://api.asilu.com/cdn/img/bg/{num}.jpg', bgNum,
  30. bgImgArr = [],
  31. bgDiv = document.getElementById("bg");
  32. // 组合数组 此处 200 为 图开始序号 结束 210
  33. for (var i=200; i <= 210; i++){
  34. bgImgArr.push(bgImgUrl.replace('{num}', i));
  35. }
  36. setBGimg();
  37. function setBGimg(d){
  38. if(!bgNum || bgNum > bgImgArr.length) bgNum = 0;
  39. bgDiv.style.opacity = .001;
  40. setTimeout(function(){
  41. bgDiv.style.backgroundImage = 'url('+ bgImgArr[bgNum] +')';
  42. bgDiv.style.opacity = 1;
  43. }, 1000);
  44. bgNum++;
  45. if(typeof d == 'undefined')
  46. setInterval(function(){setBGimg(true);}, 6000);
  47. // 上一行的 6000 是背景图片自动切换时间(单位 毫秒)
  48. }
  49. </script>

标签: emlog php

评论(0) 浏览(20)

PHP / JavaScript 判断是否为手机

2016-7-7 老张 网页制作

判断当前设备是否为手机的代码

至于为什么有 PHP 与 JavaScript 两个版本?

当然是 各取所需了, 因为有极个别的时候 服务器端 本例指的 是 PHP 代码 获取的 UA 不一定是正确的,以前用过 一款路由器 无论什么设备连接到此路由,在服务服务器端获取 UA 都是一样的 (获取不到实际的 UA)

当然这种情况下用 JavaScript 判断 UA 是没问题的,因为 JavaScript 获取的 UA 信息没有经过 路由器 (貌似废话可以忽略)

PHP 判断手机

  1. <?php
  2.  
  3. define('IS_MOBIE', isset($_SERVER['HTTP_X_WAP_PROFILE']) || @preg_match(' /(Android|iPhone|iPod|Symbian|Windows Phone)/i', $_SERVER['HTTP_USER_AGENT']));
  4.  
  5.  
  6. if(IS_MOBIE)
  7. echo '手机';
  8. else
  9. echo '非手机';


js 判断手机

										
  1. var IS_MOBIE = /(Android|iPhone|iPod|Symbian|Windows Phone)/i.test(navigator.userAgent);
  2.  
  3. if(IS_MOBIE)
  4. alert('手机');
  5. else
  6. alert('非手机');

标签: php

评论(0) 浏览(25)

指定分类id使用指定的文章模版的方法

2016-7-7 老张 网页制作

折腾生命在于折腾,越是折腾学得越是多,于是在看论坛的时候,发现了论坛有人建议这个,emlog 指定的分类文章使用指定的文章详情模版 的方法。
    其实2个步骤就可搞定,第一步,在模板文件echo_log.php中写入如下代码(ps:最好先把原echo_log.php重名[如log.php],在把原echo_log.php文件清空后加入如下代码)
<?php 
$id = "1";//指定分类id
if($sortid == $id){
require_once View::getView('log1');//调用文章模板log1.php(此文件必须存在,否则为空白页)
}else if($sort == "$log"){
require_once View::getView('log');//除上面指定的分类id外,其他文章模板调用log.php
}
?>
    第二步,创建刚刚在第一步中调用的那个文件即可(ps:必须创建log.ph,log1.php)
    如果要实现多个分类调用的不同文章模板的话,把上面第一步中的代码用else分开调用,示例代码
<?php 
if($sortid == "1"){
require_once View::getView('log1');//分类id为1的调用文章模板log1.php(此文件必须存在,否则为空白页)
}else if($sortid == "2"){
require_once View::getView('log2');//分类id为2的调用文章模板log2.php(此文件必须存在,否则为空白页)
}else if($sort == "$log"){
require_once View::getView('log');//除上面指定的分类id外,其他文章模板调用log.php
}
?>
另一个更简单的方法:
在模板文件echo_log.php的顶部 ?>的前面,加入以下代码
if($sortid==1){include View::getView('log_id');exit;}
其中$sortid==1, 是要设以下那个模板文件的分类ID,多个分类使用||,例:$sortid==1 || $sortid==2
getView('log_id')中的log_id就是以上该类要使用的模板文件名,注意模板文件名不要加.php 
不同作者也可以使用此方法,只需要把其中的sortid改为author即可。

标签: emlog

评论(0) 浏览(17)

emlog 获取相同作者、分类等相关文章代码分享

2016-7-7 老张 网页制作

emlog 好像没有给予获取同一分类文章的相关功能。但是有好像有在默认模版里面。然后看了一下论坛里面有人在问。反正也是无聊状态中。就下载了emlog在弄了一下。下面就是 emlog 获取相同分类的文章 的 代码了
<?php //同分类文章 $sql=mysql_query("SELECT * FROM ".DB_PREFIX."blog WHERE sortid ='".$sortid."' order by `views` DESC LIMIT 0,10"); while($row = mysql_fetch_array($sql)){?> <li><a href="<?php echo Url::log($row['gid']);?>"><?php echo $row['title'];?></a></li> <?php }?>
这个代码可以放到 echo_log.php 里面即可,其中的sortid ='".$sortid."'改为author ='".$author."' 即为相同作者的文章

标签: emlog

评论(0) 浏览(19)

调用指定多个分类文章及后台控制id和数量的方法

2016-7-7 老张 网页制作

对于SQL命令不是很熟悉,想用EMLOG做一个文章类表调用,需要用到SQL命令代码,调用指定多个分类EMLOG文章列表,研究了好些时间没整明白,求人也不是个事,只好自己继续边看教程边测试,功夫不负有心人,最终给我整明白了,用这个SQL命令可以正确调用指定多个分类的EMLOG文章列表,分享给有需要的站长们,把以下代码复制到模板的脚本文件中,设置好需要调用的分类ID号,在前台模板里写入调用代码就可以实现你想要的效果了。 
    在模板文件module.php中加入如下代码
<?php //调用指定多个分类文章,1,2,3,4代表分类id
function sort_logs($log_num) {
$db = MySql::getInstance();
$sql = "SELECT gid,title,date,content,views FROM ".DB_PREFIX."blog WHERE type='blog' and hide='n' and sortid IN (1,2,3,4) ORDER BY `date` DESC LIMIT 0,$log_num";
$list = $db->query($sql);
while($row = $db->fetch_array($list)){ ?>
<li><a href="<?php echo Url::log($row['gid']); ?>"><?php echo $row['title']; ?></a></li>
<?php } ?>
<?php } ?>
     说明:IN后面括号中的就是要调用的分类ID号,请自行更改你需要调用的分类ID号,中间用英文状态下的逗号隔开,前台模板调用在需要输出地方放入代码<?php sort_logs(10);?>其中10为显示条数
    以上方法每次都需要手动修改模板文件中的分类id和数量,下面跟大家说说后台控制id和数量的方法(ps:必须安装 模板设置 插件,否则无法使用以下方法) 
     1、在模板文件module.php中加入如下代码
<?php //调用指定多个分类文章
function sort_logs($log_num) {require('sheli.php');
$db = MySql::getInstance();
$sql = "SELECT gid,title,date,content,views FROM ".DB_PREFIX."blog WHERE type='blog' and hide='n' and sortid IN ($sortlog_id) ORDER BY `date` DESC LIMIT 0,$log_num";
$list = $db->query($sql);
while($row = $db->fetch_array($list)){ ?>
<li><a href="<?php echo Url::log($row['gid']); ?>"><?php echo $row['title']; ?></a><?php echo gmdate('m-d', $row['date']); ?></li>
<?php } ?>
<?php } ?>
    2、在模板文件夹中建立一个名为sheli.php的文件,代码如下
<?php 
// @shuyong.net
if(!defined('EMLOG_ROOT')) {exit('error!');}
$sortlog_id = _g('sortlog_id'); 
?>
3、在模板文件options.php加入如下代码(ps:如没有此文件,请参考最后说明)
'sortlog_mun' => array(
'type' =>'text',
'name' =>'调用指定多个分类文章数量',
'description' =>'(选择blog模式就不必理会)',
'default' =>'10',
),

'sortlog_id' => array(
'type' =>'twxt',
'name' =>'调用指定多个分类文章id',
'description' =>'直接写分类id,多个用半角,隔开',
'default' =>'1,2,3,4',
),
    最后在需要显示的地方调用代码<?php sort_logs(_g('sortlog_mun'));?>,如你的模板中没有options.php文件,请自行创建一下,代码如下
<?php
/*@support tpl_options*/
!defined('EMLOG_ROOT') && exit('access deined!');
$options = array(
//此处放3中代码
);

标签: emlog

评论(0) 浏览(22)

emlog判断是否是第一篇日志后加广告的方法

2016-7-7 老张 网页制作

emlog判断是否是第一篇日志后加AD的方法

效果:首页添加一个广告放在博客首页第一篇日志简要的下面

方法:

找到

代码:<ul><?php foreach($logs as $value): ?>

修改为

代码:<ul><?php foreach($logs as $key=>$value): ?>

然后广告如下插入:

代码:<?php if ($key == 0) : ?>广告代码;<?php endif; ?>  

标签: emlog

评论(0) 浏览(20)

修改emlog后台登录路径的方法

2016-7-7 老张 网页制作

emlog后台登录地址的目录名称默认为admin,并且官方没有提供自定义后台登录入口名字的功能,这多少让我们觉得有些不安全,毕竟暴露一个网站的后台不是一件安全的事,今天就给您说下修改方法,增加一下网站的安全性。
虽然我们进入后台的地址是/admin,但其实真实的地址还是/admin/index.php。那么就先从这个文件开始下手,打开这/admin/index.php这个文件后,看到第7行require_once 'globals.php';这一句,也就是说在index.php运行之前会先加载globals.php这个文件,由文件路径可以看出这个文件是处于当前文件夹中,找到并打开它。发现它又加载了一文件,是根目录的init.php。先不管它,先来看下面的,第9行
define('TEMPLATE_PATH', EMLOG_ROOT.'/admin/views/');
定义了一个后台模板路径的常量,这个路径经过登录接口目录,所以我们把它修改成你想要的名称,比如修改成我的ID,即
define('TEMPLATE_PATH', EMLOG_ROOT.'/sheli/views/');
现在先不预览,因为可能还有没有修改的地方,免得会报错。继续往下看。
登录验证,没什么问题。退出,这个让我想到了平时点退出的时候,地址是/admin?action=logout,这里可以看到,它是在admin上加了一个logout的动作,所以我仔细看了一下它,但是没看出可以修改的地方。
那么我们开始看刚才引入的那个文件:init.php。打开这个文件。
由这个文件开头的注释:全局项加载,我们了解到,从现在开始,要开始大规模加载东西了,我想,如果下面还有需要修改的地方的,那修改会变得很麻烦,所以我就此先打住,先测试一下,以现在的修改,有没有成功的可能性。我先是把后台登录的文件夹名称改成admin1,然后打开浏览器输入http://localhost/admin1,打开后台入口,没有任何错误,接着输入账号密码登录,没有报错,我试着进行了各项操作,包括写日志等等,没有出现异常,也就是说后台登录入口的修改至此成功。

总结一下,其实就两步:
1、修改根目录下admin的名称
2、admin/globals.php这个文件的第9行后面admin/views/中的admin改成你要的名称。
3、千万不要用记事本来修改核心文件,否则后果很严重。

修改Emlog后台默认列表显示条数
在include/model/log_model.php文件中找到
$limit = "LIMIT $start_limit, " . $perpage_num;
大概在147行的样子,改为
$limit = "LIMIT $start_limit, " . 1000;
其中1000表示现在所显示的条数

标签: emlog

评论(0) 浏览(18)

Powered by emlog 备案号 sitemap