emlog主题模板制作教程:标签分析

原创 萧瑟  2017-03-22 13:29:31  阅读 724 次 评论 0 条

准备开始写模版了,所以就来研究一下模版的结构;

转帖自:新浪博客

<?PHP if(!defined('emlog_ROOT')) {exit('error!');} require_once View::getView('module'); ?> 

header.php头部

<?php if(!defined('EMLOG_ROOT')) {exit('error!');} ?> 

每个php文件的头部,防止非法访问

<?php echo $blogtitle; ?> 标题 <?php echo $site_key; ?>关键字 <?php echo $description; ?>副标题(描叙) <?php echo BLOG_URL; ?>网站地址(路径) <?php echo TEMPLATE_URL; ?>模板地址(路径) <?php doAction('index_head'); ?>头部插件挂载点(用在<head>标签之间,如加载JS,CSS等) <?php echo $blogname; ?>博客名字(使用带网站连接方法如:<a href="<?php echo BLOG_URL; ?>"><?php echo $blogname; ?></a><?php echo $bloginfo; ?>博客副标题

以上为通用标签

<?php echo BLOG_URL.Option::get('topimg'); ?>头部图片

使用方法:<img src="<?php echo BLOG_URL.Option::get('topimg'); ?>" height="134" width="960" />

<?php echo $curpage == CURPAGE_HOME ? 'current' : 'common';?>首页连接CLASS选取

使用方法:<li class="<?php echo $curpage == CURPAGE_HOME ? 'current' : 'common';?>"><a href="<?php echo BLOG_URL; ?>">首页</a></li>

<?php if($istwitter == 'y'):?> <li class="<?php echo $curpage == CURPAGE_TW ? 'current' : 'common';?>"><a href="<?php echo BLOG_URL; ?>t/"><?php echo Option::get('twnavi');?></a></li> <?php endif;?> 

说明: <?php if($istwitter == 'y'):?>函数变量开始,‘Y’决定后台是否开启,开启则显示,这里为加载碎语。<?php endif;?>为函数变量结束

<?php foreach ($navibar as $key => $val): if ($val['hide'] == 'y'){continue;} if (empty($val['url'])){$val['url'] = Url::log($key);} ?>开始导航循环 <li class="<?php echo isset($logid) && $key == $logid ? 'current' : 'common';?>"><a href="<?php echo $val['url']; ?>" target="<?php echo $val['is_blank']; ?>"><?php echo $val['title']; ?></a></li> <?php endforeach;?>导航循环结束 <?php doAction('navbar', '左标签', '右标签'); ?>插件挂载点,用于导航栏,左右为html标签,用以控制样式,可为空(如:<?php doAction('navbar', '<li class="common">', '</li>'); ?><?php if(ROLE == 'admin' || ROLE == 'writer'): ?> 判断是否登陆(登陆则显示下面内容) <li class="common"><a href="<?php echo BLOG_URL; ?>admin/write_log.php">写日志</a></li> <li class="common"><a href="<?php echo BLOG_URL; ?>admin/">管理中心</a></li> <li class="common"><a href="<?php echo BLOG_URL; ?>admin/?action=logout">退出</a></li> <?php else: ?>(判断如果没有登陆则显示下面内容) <li class="common"><a href="<?php echo BLOG_URL; ?>admin/">登录</a></li> <?php endif; ?>(判断结束)

上为header.php头部常用标签

<?php echo Option::EMLOG_VERSION;?>程序版本号 <?php echo $icp; ?>显示备案号 <?php doAction('index_footer'); ?>底部插件挂载点(用于统计代码等)

上为footer.php底部常用标签

<?php doAction('index_loglist_top'); ?>插件挂载点,存在于首页日志列表顶部(用于公告等) <?php foreach($logs as $value): ?>开始循环输出日志列表 

下面所有标签仅存在于<?php foreach($logs as $value): ?>和<?php endforeach; ?>之间

<?php topflg($value['top']); ?>置顶标志,函数存在于module.php <?php echo $value['log_title']; ?>显示日志标题 <?php echo $value['log_url']; ?>显示日志标题到正文连接
以上3个标签使用方法:<?php topflg($value['top']); ?><a href="<?php echo $value['log_url']; ?>"><?php echo $value['log_title']; ?></a> <?php blog_author($value['author']); ?> 作者,函数存在于module.php <?php echo gmdate('Y-n-j G:i l', $value['date']); ?>发布时间,格式是2010-12-11 19:05 30,格式可自行修改 <?php blog_sort($value['logid']); ?>分类,该函数存在于module.php <?php editflg($value['logid'],$value['author']); ?>显示编辑链接,函数存在于module.php <?php echo $value['log_description']; ?>显示日志摘要 <?php blog_att($value['logid']); ?>显示日志附件(图片附件不显示),函数存在于module.php <?php blog_tag($value['logid']); ?>显示日志标签,函数存在于module.php <?php echo $value['comnum']; ?>评论数,使用方法<a href="<?php echo $value['log_url']; ?>#comments">评论(<?php echo $value['comnum']; ?>)</a> <?php echo $value['tbcount']; ?>引用数,使用方法<a href="<?php echo $value['log_url']; ?>#tb">引用(<?php echo $value['tbcount']; ?>)</a> <?php echo $value['views']; ?>浏览数,使用方法<a href="<?php echo $value['log_url']; ?>">浏览(<?php echo $value['views']; ?>)</a> 

以上仅存在于<?php foreach($logs as $value): ?>和<?php endforeach; ?>之间

<?php endforeach; ?>循环输出日志列表结束 <?php echo $page_url;?>显示分页 <?php include View::getView('side'); ?>调用边栏 <?php include View::getView('footer'); ?>调用底部
也可以写成 <?php include View::getView('side'); include View::getView('footer'); ?> 

上为log_list.php 首页日志列表部分常用标签

<?php topflg($top); ?>置顶标志,函数存在于module.php <?php echo $log_title; ?>显示日志、page标题 <?php blog_author($author); ?>作者 <?php echo gmdate('Y-n-j G:i l', $date); ?> 发布时间 <?php blog_sort($logid); ?>分类,该函数存在于module.php <?php editflg($logid,$author); ?>显示编辑链接,函数存在于module.php <?php echo $log_content; ?>显示日志内容 <?php blog_att($logid); ?>显示日志附件(图片附件不显示),函数存在于module.php <?php blog_tag($logid); ?>显示日志标签,函数存在于module.php <?php doAction('log_related', $logData); ?>插件挂载点(用于相关日志等) <?php neighbor_log($neighborLog); ?>显示相邻日志(上一篇下一篇),函数存在于module.php <?php blog_trackback($tb, $tb_url, $allow_tb); ?>显示引用通告地址及引用,函数存在于module.php <?php blog_comments($comments); ?>显示日志评论,函数存在于module.php <?php blog_comments_post($logid,$ckname,$ckmail,$ckurl,$verifyCode,$allow_remark); ?>加载评论 

上为echo_log.php 阅读日志页面(内容页)常用标签

<?php echo $log_title; ?>页面名字 <?php echo $log_content; ?>内容 <?php blog_att($logid); ?>附件 <?php blog_comments($comments); ?>显示评论 <?php blog_comments_post($logid,$ckname,$ckmail,$ckurl,$verifyCode,$allow_remark); ?>加载评论

上为page.php 自定义页面常用标签

<?php $widgets = !empty($options_cache['widgets1']) ? unserialize($options_cache['widgets1']) : array(); ?>该页面要加载的widgets,中间红色1为数字,不超过header.php里设置的侧边栏数目 <?php doAction('diff_side'); ?>插件挂载点 <?php foreach ($widgets as $val) { $widget_title = @unserialize($options_cache['widget_title']); $custom_widget = @unserialize($options_cache['custom_widget']); if(strpos($val, 'custom_wg_') === 0) { $callback = 'widget_custom_text'; if(function_exists($callback)) { call_user_func($callback, htmlspecialchars($custom_widget[$val]['title']), $custom_widget[$val]['content']); } }else{ $callback = 'widget_'.$val; if(function_exists($callback)) { preg_match("/^.*\s\((.*)\)/", $widget_title[$val], $matchs); $wgTitle = isset($matchs[1]) ? $matchs[1] : $widget_title[$val]; call_user_func($callback, htmlspecialchars($wgTitle)); } } } ?> 

上这一长串用于显示widgets

<a href="<?php echo BLOG_URL; ?>rss.php" title="RSS订阅"><img src="<?php echo TEMPLATE_URL; ?>images/rss.gif" alt="订阅Rss"/></a> 

上为RSS 订阅使用方法

上为side.php 侧边栏常用标签

<?php if(ROLE == 'admin' || ROLE == 'writer'): ?>判断是否登陆,登陆显示下面内容 <a href="<?php echo BLOG_URL . 'admin/twitter.php' ?>">发布碎语</a> <?php endif; ?>判断结束 <?php foreach($tws as $val): $author = $user_cache[$val['author']]['name']; $avatar = empty($user_cache[$val['author']]['avatar']) ? BLOG_URL . 'admin/views/images/avatar.jpg' : BLOG_URL . $user_cache[$val['author']]['avatar']; $tid = (int)$val['id']; ?>开始循环输出碎语

下面为默认模板代码(循环的是<li>标签里的内容)

<li class="li"> <div class="main_img"><img src="<?php echo $avatar; ?>" width="32px" height="32px" /></div> <p class="post1"><span><?php echo $author; ?></span><br /><?php echo $val['t'];?></p> <div class="clear"></div> <div class="bttome"> <p class="post"><a href="javascript:loadr('<?php echo DYNAMIC_BLOGURL; ?>?action=getr&tid=<?php echo $tid;?>','<?php echo $tid;?>');">回复(<span id="rn_<?php echo $tid;?>"><?php echo $val['replynum'];?></span>)</a></p> <p class="time"><?php echo $val['date'];?> </p> </div> <div class="clear"></div> <ul id="r_<?php echo $tid;?>" class="r"></ul> <div class="huifu" id="rp_<?php echo $tid;?>"> <textarea id="rtext_<?php echo $tid; ?>"></textarea> <div class="tbutton"> <div class="tinfo" style="display:<?php if(ROLE == 'admin' || ROLE == 'writer'){echo 'none';}?>"> 昵称:<input type="text" id="rname_<?php echo $tid; ?>" value="" /> <span style="display:<?php if($reply_code == 'n'){echo 'none';}?>">验证码:<input type="text" id="rcode_<?php echo $tid; ?>" value="" /><?php echo $rcode; ?></span> </div> <input class="button_p" type="button" onclick="reply('<?php echo DYNAMIC_BLOGURL; ?>index.php?action=reply',<?php echo $tid;?>);" value="回复" /> <div class="msg"><span id="rmsg_<?php echo $tid; ?>" style="color:#FF0000"></span></div> </div> </div> </li> <?php endforeach;?>循环输出碎语结束

如上代码说明:

<?php echo $avatar; ?>显示作者头像,使用方法<img src="<?php echo $avatar; ?>" width="32px" height="32px" />这里设置了图片的高宽为32象素 <?php echo $author; ?>显示碎语发布者 <?php echo $val['t'];?>显示碎语内容 <a href="javascript:loadr('<?php echo DYNAMIC_BLOGURL; ?>?action=getr&tid=<?php echo $tid;?>','<?php echo $tid;?>');">回复(<span id="rn_<?php echo $tid;?>"><?php echo $val['replynum'];?></span>)</a>回复碎语连接使用方法 <?php echo $val['date'];?>发布碎语时间 <?php echo $tid;?>碎语ID数

使用方法

<ul id="r_<?php echo $tid;?>" class="r"></ul> 这里参考了官方模板
举例:如碎语ID为3(发布的第3条碎语),原代码显示结果为 <ul id="r_3" class="r"></ul> 
<?php echo $pageurl;?>显示碎语分页 <?php echo $twnum; ?>显示碎语数目

上为t.php 碎语部分常用标签

module.php(建议参考默认模板里的注释) function widget_xxxx($title)显示widgets函数,如widget_blogger($title)显示博主信息

本文地址:https://www.xsyrz.cn/emlog%E4%B8%BB%E9%A2%98%E6%A8%A1%E6%9D%BF%E5%88%B6%E4%BD%9C%E6%95%99%E7%A8%8B%EF%BC%9A%E6%A0%87%E7%AD%BE%E5%88%86%E6%9E%90.html
版权声明:本文为原创文章,版权归 萧瑟 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?