首页
留言板
统计
Search
1
阿里云国际OSS使用CloudFlare免流量
2,262 阅读
2
PP.UA免费域名注册
2,173 阅读
3
Adobe Photoshop CS2经典版 中文原版
2,158 阅读
4
7-Zip中文美化版
2,027 阅读
5
获取免费的 Microsoft 365 E5 开发人员订阅
1,941 阅读
软件分享
网络资源
网络代码
生活情感
免费主机
Search
标签搜索
代码
工具软件
Android
教程
Emlog
办公软件
图形图像
免费空间
Web
情感
PHP
视频
系统工具
上传下载
Windows
建站
PDF
网盘
学习
Typecho
ZJ
累计撰写
802
篇文章
累计收到
105
条评论
首页
栏目
软件分享
网络资源
网络代码
生活情感
免费主机
页面
留言板
统计
搜索到
71
篇与
的结果
2019-12-17
实现Emlog评论Gravatar头像缓存功能
在安装目录下面建立avatar文件夹,设置其权限为可写 (777)。修改 include\lib\function.base.php 文件,找到: /** * 获取Gravatar头像 * http://en.gravatar.com/site/implement/images/ * @param $email * @param $s size * @param $d default avatar * @param $g */ function getGravatar($email, $s = 40, $d = 'mm', $g = 'g') { $hash = md5($email); $avatar = "http://www.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g"; return $avatar; }更改为以下代码://获取Gravatar头像 function getGravatar($email, $s=40, $d='monsterid', $r='g') { $f = md5($email); $a = BLOG_URL.'avatar/'.$f.'.jpg'; $e = EMLOG_ROOT.'/avatar/'.$f.'.jpg'; $t = 1296000; //15天,单位:秒 if (empty($d)) $d = BLOG_URL.'avatar/default.jpg'; if (!is_file($e) || (time() - filemtime($e)) > $t ) { //当头像不存在或者超过15天才更新 $g = sprintf("http://cn.gravatar.com",(hexdec($f{0})%2)).'/avatar/'.$f.'?s=40&d='.$d.'&r='.$r; copy($g,$e); $a=$g; //新头像copy时, 取gravatar显示 } if (filesize($e) < 500) copy($d,$e); return $a; }对于没有设置头像的邮箱,默认显示的头像如下:$d='mm' - 神秘人 (灰色头像)$d='monsterid' - 小怪物 (自动生成)$d='identicon' - 抽象图形 (自动生成)$d='wavatar' - W-avatar (自动生成)$d='非空格符' - Gravatar (大写 “G”)注意:$d 数据中的四个关键字只能是小写,不然会被视为其它的非空格符;另外,$d 的数据中也不能出现空格符,否则该函数将不能正常调用。
2019年12月17日
263 阅读
0 评论
0 点赞
2019-12-13
EMLOG详细目录结构功能
一般来说,一个模板都会包含以下几个部分:images文件夹:存放模板所需图片。 echo_log.php:显示日志内容。 footer.php:页面底部。 header.php:页面头部。 log_list.php:显示日志列表内容。 main.css:模板的css文件。 module.php:模板公共代码,包含侧边widgets、评论、引用、编辑等,该文件是模板最核心的模块。 page.php:自定义的页面内容的模板。 preview.jpg:在后台模板选择界面显示的模板预览图,300×225 jpg格式。 side.php:模板侧边栏文件,如制作单栏模板则该文件不是必须的。 t.php:显示emlog系统自带的微博(碎语)内容。 404.php:自定义404页面未找到时的报错页面 在一般的emlog模板开发中,以上提及的部分中echo_log.php、log_list.php、module.php、page.php、t.php、header.php以及preview.jpg是不可或缺的,一旦缺省,模板将无法运行。此外的side.php、footer.php、main.css、images文件夹等,只需要对模板代码做小部分更改,那么它们都是可以改名、移动、甚至删除的。公共代码分析 通过预览整个模板中的各个文件,你会发现以下代码同时存在于多个文件中,这些代码分别有以下用途:if(!defined('EMLOG_ROOT')) {exit('error!');} 此行代码存在于模板目录下的每个php文件起始部分(事实上为了安全起见,该行代码也在admin目录下的几乎所有php文件起始部分存在),其作用是防止代码所在的php脚本被直接访问执行。 require_once View::getView('side'); require_once View::getView('footer'); 这两行代码存在于log_list.php、echo_log.php、page.php、t.php里面,其作用是调用模板文件夹下的side.php和footer.php的代码到当前文件的当前位置。View是emlog的模板视图控制器,View::getView('文件名','文件后缀')将返回当前模板安装路径下对应的文件。getView函数的第二个参数为缺省参数,在不传入值的情况下,将默认作为.php文件后缀返回文件路径。$curpage:当前页面表示,常用判断tag如下: $curpage== CURPAGE_HOME:首页 $curpage == CURPAGE_TW:碎语页 $curpage == CURPAGE_LOG:日志、page页 ROLE:当前访问者身份 ROLE == 'admin':管理员 ROLE == 'writer':联合撰写人 ROLE == 'vistor':未登录用户通用代码<?php if(!defined('EMLOG_ROOT')) {exit('error!');} ?>存在每个php文件头部,防止非法访问 <?php include getViews('XXXX');; ?>: 调用当前模板目录下XXXX.php文件 <?php echo EMLOG_VERSION;?>:显示当前emlog版本 <?php echo TEMPLATE_URL; ?>: 显示模板文件路径 <?php echo BLOG_URL; ?>: 显示博客Url <?php echo $blogtitle; ?>: 显示博客标题(会根据当前页面变化) <?php echo $blogname; ?>: 显示博客名称 <?php echo $bloginfo; ?>:显示博客描述 <?php echo $icp; ?>:显示备案号 <?php endforeach; ?>: 循环结束,需和<?php foreach(xxxx): ?>配对 <?php endif;?>:结束if标签,需和<?php if(xxxx): ?>配对header头部<?php /* Template Name:(模板名称 ) Description:(模板描述 ) Author:(模板作者 ) Author Url:(作者主页 ) Sidebar Amount:1(侧边栏数目,最大4 ) */ if(!defined('EMLOG_ROOT')) {exit('error!');} require_once View::getView('module'); ?>每个php文件的头部,防止非法访问<?php /* * 注释位置信息 */ if(!defined('EMLOG_ROOT')) {exit('error!');} ?>以下为通用标签<?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'); ?>" 134" 960" />首页连接class选取<?php echo $curpage == CURPAGE_HOME ? 'current' : 'common';?>使用方法:<li class="<?php echo $curpage == CURPAGE_HOME ? 'current' : 'common';?>"><a href="<?php echo BLOG_URL; ?>">首页</a></li>说明:<?php if($istwitter == 'y'):?>函数变量开始,‘Y’决定后台是否开启,开启则显示,这里为加载碎语。<?php endif;?>为函数变量结束 <?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;?>下为header.php头部常用标签<?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; ?>(判断结束)footer.php<?php echo Option::EMLOG_VERSION;?>程序版本号 <?php echo $icp; ?>显示备案号 <?php doAction('index_footer'); ?>底部插件挂载点(用于统计代码等)log_list.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 首页日志列表部分常用标签echo_log.php 下为echo_log.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); ?>加载评论 page.php 下为page.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 if($log_title =="标签" || $log_title =="标签云"):?> <?php include View::getView('tags');?> <?php elseif($log_title =="链接列表" || $log_title =="友情链接"):?> <?php include View::getView('links');?> <?php elseif($log_title =="读者排行" || $log_title =="读者墙"):?> <?php include View::getView('readers');?> <?php elseif($log_title =="文章归档" || $log_title =="文章存档"):?> <?php include View::getView('archives');?> <?php elseif($log_title =="相关服务"):?> <?php include View::getView('service');?> <?php elseif($log_title =="模版开发" || $log_title =="Emlog模版开发"):?> <?php include View::getView('tpl');?> <?php elseif($log_title =="留言板"):?> <?php include View::getView('contact');?> <?php elseif($log_title =="点赞墙" || $log_title =="点赞榜"):?> <?php include View::getView('likes');?> <?php elseif($log_title =="7天热门文章" || $log_title =="7天热门文章排行"):?> <?php include View::getView('week');?> <?php elseif($log_title =="30天热门文章" || $log_title =="30天热门文章"):?> <?php include View::getView('month');?> <?php elseif($log_title =="30天热门评论" || $log_title =="30天热门评论排行"):?> <?php include View::getView('comnum');?> <?php if ($allow_remark == 'y'){blog_comments($comments,$params);blog_comments_post($logid,$ckname,$ckmail,$ckurl,$verifyCode,$allow_remark);} ?> 根据是否允许评论显示评论和评论表单,函数存在于module.phpt.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; ?>" 32px" 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; ?>" 32px" 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 碎语部分常用标签side.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 订阅使用方法 module.phpfunction widget_xxxx($title)显示widgets函数,如widget_blogger($title)显示博主信息
2019年12月13日
244 阅读
0 评论
0 点赞
2019-12-10
美化Emlog的文章访问密码页面
Emlog美化只能通过直接修改代码来实现,具体的位置在include/model/log_model.php文件末尾的authPassword代码。找到以下代码: if ($pwd !== addslashes($logPwd)) { echo <<<EOT <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>emlog message</title> <style type="text/css"> <!-- body{background-color:#F7F7F7;font-family: Arial;font-size: 12px;line-height:150%;} .main{background-color:#FFFFFF;margin-top:20px;font-size: 12px;color: #666666;width:580px;margin:10px 200px;padding:10px;list-style:none;border:#DFDFDF 1px solid;} --> </style> </head> <body> <div class="main"> <form action="" method="post"> 请输入该文章的访问密码<br> <input type="password" name="logpwd" /><input type="submit" value="进入.." /> <br /><br /><a href="$url">«返回首页</a> </form> </div> </body> </html> EOT; if ($cookiePwd) { setcookie('em_logpwd_' . $logid, ' ', time() - 31536000); }替换为如下代码: if ($pwd !== addslashes($logPwd)) { ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="renderer" content="webkit"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>该文章已被加密</title> </head> <body> <div class="main"> <img class="alert" alt="文章已被加密" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIoAAACACAMAAADjwgEwAAAAOVBMVEUAAAD5dBr7dRj4dBn/cBD5cxr4cxn6chj7dBj/cBj5cxr5dBn6cxn4dBn5cxr6dRX5cxr5cxr5dBoQJfbPAAAAEnRSTlMAgD/AEPDgYEAgoLCQcFAw0J/MNdW8AAADg0lEQVR42s3b7W7iMBSEYWftxA75At//xW7VZRWnQ3WkvOKE+VmJMtjxg8Ek4Iy5e8zdmsLFSXmoz8QSrsw61CZxDJdlrsf0OVyUR5WALrDJh3SZ68uswT1rfZ3e/dpNff0lMTjnVr/yEVO01SZdWae6Z/CFNzYXxxa+kttqwTHl2ORHl95zWBrvl/BMM0e34JZ8XC+6phwWtD7ptv95uWBBdzIVMm0luGTshVYB+B5ccvt12Ubnt8Xt91Vb3JyzX/rk5Jy+cr2M3Jyzl8nMnOO6Bewc103TMee4btw5rpsmA+e4bm7O2boh57huS9twyaODc7Zu43fBR3J1bni1q0/Pv0bgHNNNl3cGzgHdyouhmqBzXLf9SZ2c01HXKsA5pptWcXJOV6hWAc5R3bQKcI7qplUcnLs3uhlV1Ln5bboZVd7rXGqdMKuoQ9ObdDOqAOeAbkYVY0fOdTOqAOeAblLFEOAdutlVbOe4bmYV4BzQzahiOId104DPrVw3uwp3zv5fdhXgHNDNqAKcs3Sbw4kqhnNAN7vK25yLhlFGFcM5pJtdBTtn65ZPVDGcY7rZVbhzpgmgitgEdQNV5DUx3UAV5pxebaCKOMd0A1WYcyoTqKJWIt1AFeSczi6rou+rQDdQBTmnEoAqzLn9cfvjYBXdmQLdQBXgnOrGq+j7PNANVAHOiW6gCnBO2idQBTunuvEqtnPoxE2rgJXJdNMqyCt8OqsnH8A5NoZ6HgScoyf5+ykZ+raGr7f97PCWwD4I6iYnquCbPa4b/0aA6OZwgo9/NwV2IEC3950YeP7GTp1DuhkBzpkDx2M7x3XTAOfMRWZn7OJwn5YETjCQbjqtw8qc47o95GHAOaTbUptswDmkm/6aPwLnsG65HpKQc/rqtvP3fRTgHNUt1kM67tx49u6RqR6SgXNIt30097mlzpXT5G+1zQD2c3zvFmV+kHM6aedgieDBz2GZyN5t2+87TGQ/131PGdu7pa7/Hs/M9nPDD2i3cCqllA3s5/bnjqKbY4bDDLXFQOiwxJaGe/BP2gcihCLQuiZKlV1f58zNDmr9lNtLSyg+C8jeKrSXbX/pCqqHxdyvwTO6j53qnvu8/nFLfgz1uGXJ9SMy/sP3A3J7fhq7Pv34f21fnkUWt3eUtDTVSzPL1u6SKGfjrV6TvtM98bhccMlMOYWXSWXpHJNLaPMXZ8oyOMxlLIsAAAAASUVORK5CYII="> <form action="" method="post" class="mk-side-form"> <h2 class="pw-tip">该文章已被加密</h2> <input type="password" name="logpwd" placeholder="请输入访问密码查看" required><button type="submit">提交</button> <?php if($postPwd): ?> <p id="pw-error">Oops!密码不对哦~</p> <script>setTimeout(function() {document.getElementById("pw-error").style.display = "none"}, 2000);</script> <?php endif; ?> </form> <a href="<?php echo $url; ?>" class="return-home" title="点击回到网站首页">- 返回首页 - </a> </div> <style type="text/css"> *{font-family:"Microsoft Yahei",微软雅黑,"Helvetica Neue",Helvetica,"Hiragino Sans GB","WenQuanYi Micro Hei",sans-serif;box-sizing:border-box;margin:0px;padding:0px;font-size:14px;-webkit-transition:.2s;-moz-transition:.2s;-ms-transition:.2s;-o-transition:.2s;transition:.2s} html,body{width:100%;height:100%} body{background-color:#F4F6F9;color:#768093} input,button{font-size:1em;border-radius:3px;-webkit-appearance:none} input{width:100%;padding:5px;box-sizing:border-box;border:1px solid #e5e9ef;background-color:#f4f5f7;resize:vertical} input:focus{background-color:#fff;outline:none} button{border:0;background:#6abd09;color:#fff;cursor:pointer;opacity:1;user-select:none} button:hover,button:focus{opacity:.9} button:active{opacity:1} .main{width:100%;max-width:500px;height:300px;padding:30px;background-color:#fff;border-radius:2px;box-shadow:0 10px 60px 0 rgba(29,29,31,0.09);transition:all .12s ease-out;position:absolute;left:0;top:0;bottom:0;right:0;margin:auto;text-align:center} .alert{width:80px} .mk-side-form{margin-bottom:28px} .mk-side-form input{float:left;padding:2px 10px;width:77%;height:37px;border:1px solid #ebebeb;border-right-color:transparent;border-radius:2px 0 0 2px;line-height:37px} .mk-side-form button{position:relative;overflow:visible;width:23%;height:37px;border-radius:0 2px 2px 0;text-transform:uppercase} .pw-tip{font-weight:normal;font-size:26px;text-align:center;margin:25px auto} #pw-error {color: red;margin-top: 15px;margin-bottom: -20px;} .return-home{text-decoration:none;color:#b1b1b1;font-size:16px} .return-home:hover{color:#1E9FFF;letter-spacing:5px} </style> </body> </html> <?php if ($cookiePwd) { setcookie('em_logpwd_' . $logid, ' ', time() - 31536000); }
2019年12月10日
282 阅读
0 评论
0 点赞
2019-12-09
Emlog插件能陪聊的Live2d版伊斯特瓦尔
最近看到很多小伙伴的博客都有《药水制作大师》里的小萝莉,甚是羡慕。想着自己页面也能设置一个Live2d的立绘看板娘。用了GitHub上的源码进行修改。在原先的基础上加上了如下功能:1.会读最新五篇emlog的微语。2.基于图灵机器人的聊天功能。3.能够随意移动并记录位置(关闭浏览器后失效)。4.能够随意唤醒或者关闭并记录状态。5.自动判断浏览器是否为IE或者手机浏览器,如果判断为true则不加载伊斯。6.给骚扰伊斯加了限制频率,不能狂骚扰伊斯了。7.增加了背景音乐播放功能,需要在后台添加背景音乐文件地址。使用方法:1.Emlog为emlog 5.3.1。2.下载安装插件。3.在图灵机器人上注册帐号。4.在图灵机器人上创建机器人。5.在设置里找到自己专属的APIkey。6.回到博客后台,设置APIkey,这样伊斯就有聊天功能啦。关于本插件:本插件仅供学习和交流使用,禁止用于商业用途。本插件用到的模型为《超次元游戏海王星》系列中的伊斯特瓦尔,动作表情则是取自Live2d官网的demo,故版权归各官方所有。原项目使用了 GPL v2 开源协议。【emlog插件】伪春菜二次开发版下载下载地址 蓝奏网盘
2019年12月09日
260 阅读
0 评论
0 点赞
2019-12-09
Emlog通过不同域名使用不同的模板
只在Emlog根目录的 index.php 简单修改就能实现,也可以做多用户二级域名调用不同的模板。当然也可以修改模板不同域名显示不同用户的文章。$templet=Option::get('nonce_templet'); $the_host = $_SERVER['HTTP_HOST']; if ($the_host=='abc.123.cn') {////判断域名或者浏览器 UA 使用不同的前台模板 $templet='abc';//前台模板名 } define('TEMPLATE_URL', TPLS_URL.$templet.'/'); define('TEMPLATE_PATH', TPLS_PATH.$templet.'/'); //define('TEMPLATE_PATH', TPLS_PATH.Option::get('nonce_templet').'/');//前台模板路径
2019年12月09日
249 阅读
0 评论
0 点赞
2019-12-03
Emlog升级默认编辑器kindeditor最新版
Emlog的默认编辑器是kindeditor4.1.10精简版本,在2016年3月31日kindeditor编辑器官方升级到了4.1.11版本,具体升级了什么请自己到kindeditor官网去看升级日志;升级后编辑器将变成kindeditor4.1.11完全版本;需要升级的就下载下面的压缩包,然后打开FTP进入admin文件夹下,把editor这个文件夹备份下,再把下载的压缩包里的editor文件夹上传到admin文件夹下覆盖,清理浏览器缓存,登陆后台发布文章页面,就能看到编辑器升级变化了。下载地址 蓝奏网盘
2019年12月03日
561 阅读
0 评论
0 点赞
2019-11-28
Emlog插件挂载点以及说明
挂载点:doAction('adm_main_top')所在文件:admin/views/default/header.php描述:后台红线区域扩展 挂载点:doAction('adm_head')所在文件:admin/views/default/header.php描述:后台头部扩展:可以用于增加后台css样式、加载js等 挂载点:doAction('adm_siderbar_ext')所在文件:admin/views/default/header.php描述:后台侧边栏 功能扩展 子菜单扩展,用于插件单独页面。 挂载点:doAction('save_log', $blogid)所在文件:admin/save_log.php描述:新增日志、修改日志扩展点 挂载点:doAction('del_log', $key)所在文件:admin/admin_log.php描述:删除日志操作扩展点 挂载点:doAction('adm_writelog_head', $key)所在文件:admin/add_log.phpadmin/add_page.phpadmin/edit_log.phpadmin/edit_page.php描述:可以再红框处显示扩展内容,如插入网络相册照片的插件。 挂载点:doAction('comment_post')所在文件:./index.php 描述:发表评论扩展点(写入评论前)。可用于垃圾评论防范 挂载点:doAction('comment_saved’)所在文件:include/model/comment_model.php 描述:发表评论扩展点(写入评论后)。用于发布评论成功的后续操作,如发通知邮件 挂载点:doAction('log_related',$logData) 所在文件:content/templates/default/echo_log.php描述:阅读日志页面扩展点、用于增加日志相关内容 挂载点:doAction('navbar', '<li>', '</li>') 所在文件:content/templates/default/header.php描述:用于扩展导航条。例如相册插件会利用这个挂载点生成一个相册的导航链接 挂载点:doAction('index_head') 所在文件:Content/templates/default/header.php描述:前台头部扩展:可以用于增加前台css样式、加载js等 挂载点:doAction('index_footer') 所在文件:content/templates/default/footer.php描述:首页底部扩展点 挂载点:doAction('comment_reply', $commentId, $reply)所在文件:admin/comment.php描述:回复评论扩展点 挂载点:doAction('data_prebakup')所在文件:admin/data.php描述:扩展备份数据库页面,可以对插件增加的表进行备份 挂载点:doAction('rss_display')所在文件:rss.php描述:Rss输出扩展 挂载点:doAction('attach_upload')所在文件:include/lib/function.base.php描述:扩展附件上传,如增加图片水印效果等 挂载点:doAction('url_rewrite')所在文件:include/lib/function.base.php描述:扩展url重写,可以自定义其他url优化方案 挂载点:doAction('adm_comment_display')所在文件:admin/views/comment.php后台评论显示扩展,可以用于查询评论人ip所在地域 挂载点:doAction('index_loglist_top')所在文件:content/templates/default/log_list.php描述:日志列表顶部扩展点,如显示公告等 挂载点:doAction('diff_side')所在文件:content/templates/default/side.php描述:侧边栏控制扩展点 挂载点:doAction('reply_twitter', $r, $name, $date, $tid)所在文件:t/index.php描述:回复碎语扩展点,用于回复邮件提醒等 挂载点:doAction('post_twitter', $t)所在文件:/m/index.php/admin/twitter.php描述:发布碎语扩展点,用于碎语和其他微博类产品同步等
2019年11月28日
262 阅读
0 评论
0 点赞
2019-11-28
Emlog自助友链插件
Emlog自助友链插件适用于Emlog5.3.1+以上版本插件挂载点<?php doAction('ef_link_echo'); ?>下载地址 蓝奏网盘
2019年11月28日
324 阅读
0 评论
0 点赞
1
...
4
5
6
...
9