首页
微语
统计
友链
留言
memos
圈子
图床
推荐
相册
网站监控
VPS监控
Search
1
实现typecho微信时光机功能的图文教程
45,229 阅读
2
为Typecho添加webp解析
43,189 阅读
3
emlog数据成功迁移到typecho
26,739 阅读
4
Memos备忘录,记录瞬间想法
25,723 阅读
5
Jasmine - 简约、美观的博客主题
24,391 阅读
手机达人
免费资源
电脑网络
娱乐休闲
网站建设
威言威语
Typecho
Emlog
WordPress
服务器
主题
插件
排行榜    
登录
/
注册
Search
标签搜索
wordpress
发布
插件
免费
教程
typecho
EMlog
PHP
代码
CSS
华为
图片
代码修改
安装
评论
手机
诺基亚
微信
文章
智能
Chen'mo
累计撰写
1,266
篇文章
累计收到
374
条评论
首页
栏目
手机达人
免费资源
电脑网络
娱乐休闲
网站建设
威言威语
Typecho
Emlog
WordPress
服务器
主题
插件
页面
微语
统计
友链
留言
memos
推荐
相册
网站监控
VPS监控
搜索到
12
篇与
的结果
2021-06-26
emlog pro实现图片粘贴上传功能
前言emlog pro默认使用了Editor.md编辑器,由于官方并没有在该编辑器插件调用处留下钩子供开发者进行插件拓展,所以需要进行修改文件实现。实现新增插件新增JS文件,建议路径:/admin/editor.md/plugins/image-handle-paste/image-handle-paste.js文件内容:/*! * editormd图片粘贴上传插件 * * @file image-handle-paste.js * @author codehui * @date 2018-11-07 * @link https://www.codehui.net */ (function() { var factory = function (exports) { var $ = jQuery; // if using module loader(Require.js/Sea.js). var pluginName = "image-handle-paste"; // 定义插件名称 //图片粘贴上传方法 exports.fn.imagePaste = function() { var _this = this; var cm = _this.cm; var settings = _this.settings; var editor = _this.editor; var classPrefix = _this.classPrefix; var id = _this.id; if(!settings.imageUpload || !settings.imageUploadURL){ console.log('你还未开启图片上传或者没有配置上传地址'); return false; } //监听粘贴板事件 $('#' + id).on('paste', function (e) { var items = (e.clipboardData || e.originalEvent.clipboardData).items; //判断图片类型 if (items && items[0].type.indexOf('image') > -1) { var file = items[0].getAsFile(); /*生成blob var blobImg = URL.createObjectURL(file); */ /*base64 var reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function (e) { var base64Img = e.target.result //图片的base64 } */ // 创建FormData对象进行ajax上传 var forms = new FormData(document.forms[0]); //Filename forms.append(classPrefix + "image-file", file, "file_"+Date.parse(new Date())+".png"); // 文件 _this.executePlugin("imageDialog", "image-dialog/image-dialog"); _ajax(settings.imageUploadURL, forms, function(ret){ if(ret.success == 1){ $("." + classPrefix + "image-dialog").find("input[data-url]").val(ret.url); //cm.replaceSelection("![](" + ret.url + ")"); } console.log(ret.message); }) } }) }; // ajax上传图片 可自行处理 var _ajax = function(url, data, callback) { $.ajax({ "type": 'post', "cache": false, "url": url, "data": data, "dateType": "json", "processData": false, "contentType": false, "mimeType": "multipart/form-data", success: function(ret){ callback(JSON.parse(ret)); }, error: function (err){ console.log('请求失败') } }) } }; // CommonJS/Node.js if (typeof require === "function" && typeof exports === "object" && typeof module === "object") { module.exports = factory; } else if (typeof define === "function") // AMD/CMD/Sea.js { if (define.amd) { // for Require.js define(["editormd"], function(editormd) { factory(editormd); }); } else { // for Sea.js define(function(require) { var editormd = require("./../../editormd"); factory(editormd); }); } } else { factory(window.editormd); } })();插件调用修改文件 /admin/views/article_write.phppro v1.0.0(RC622)是195行在 onload : function() {内添加//粘贴上传 editormd.loadPlugin("/admin/editor.md/plugins/image-handle-paste/image-handle-paste", function(){ Editor.imagePaste(); });其中 /admin/editor.md/plugins/image-handle-paste/image-handle-paste是插件文件路径去掉后缀成品参考闲麻烦的朋友可以直接下载我修改的文件并覆盖下载地址:https://github.com/wuxiaocong/emlogproforimagepaste
2021年06月26日
13,504 阅读
0 评论
0 点赞
2021-06-08
emlog判断文章发布时间超过特定时间时输出一段代码
打开当前模板下的 echo_log.php 文件 ,把下面判断代码添加到自己想要显示的地方<?php $time=strtotime(gmdate('Y-n-j', $date));$now=time();$t=$now-$time;if($t>3600*24*30){?> <div class="stetement" style="color: #ad9948;background: #fff4b9 url(叹号图标地址) -1px -1px no-repeat;border: 1px solid #eac946;overflow: hidden;margin: 3px 0;padding: 15px 15px 15px 35px;font-size: 14px;text-indent: 0;">本文最后更新于<?php echo gmdate('Y-n-j', $date); ?>,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!</div> <?php }?>把上面代码内的 叹号图标地址 更改为自己的图标存放地址即可。下面列出一些常用的时间一年:3600*24*365 一个月:3600*24*30 一个季度:3600*24*120 半年:3600*24*180然后把文字修改修改即可wordpress更改方法如图示:
2021年06月08日
12,422 阅读
0 评论
0 点赞
emlog pro版本获取文章缩略图
emlog列表页面缩略图先调用正文HTML代码第一张图片,没有的话就调用Markdown语法数据库的图片,如果都没有则调用随机图片代码,以前正则读数据库的代码不能用了这里我做了个修改,以前的版本或者PRO都能使用在模板的module.php文件中加入以下代码 <?php //全局匹配正文中的图片并存入imgsrc中 function img_ns($content){ preg_match_all("|<img[^>]+src=\"([^>\"]+)\"?[^>]*>|is", $content, $img); $imgsrc = !empty($img[1]) ? $img[1][0] : '';if($imgsrc):return $imgsrc;endif;} //Custom: 获取附件第一张图片 function img_fj($content){preg_match_all("/\]\((.*?)\)/", $content, $img);$imgsrc = !empty($img[1]) ? $img[1][0] : '';if($imgsrc):return $imgsrc;endif;} ?>在log_list.php的foreach循环中加入如下代码 <?php if(img_ns($value['content'])){$imgurl = img_ns($value['content']); }elseif(img_fj($value['content'])){$imgurl = img_fj($value['content']); }else{$imgurl = TEMPLATE_URL.'images/'.rand(1,5).'.jpg';} ?>在img的src属性里调用 <?php echo $imgurl;?>总结Markdown语法的数据库图片正则代码为/\]\((.*?)\)/
2021年06月08日
11,942 阅读
0 评论
0 点赞
2021-06-04
Emlog实现网站信息统计的代码
前言:有时候想在网页中向访客展示[Emlog]个人博客的文章数量、评论数量、运行[时间]等信息但[emlog]后台侧边栏没有提供相关的模块,因此需要[站]长自主添加个人博客统计信息代码下面是整理的Emlog[网站信息统计]代码,已在emlog 5.3.1+上测试可用,[最新版]6.0.1也是可以用的正文:方法一利用Emlog官方缓存类统计代码优点:加载速度快缺点:可能信息[更新]不及时把以下代码添加到当前使用的主题模板文件中,无陌然建议放在侧边栏side.php文件底部<?php $sta_cache = Cache::getInstance()->readCache('sta'); ?> <li>日志数量:<?php echo $sta_cache['lognum']; ?></li> <li>评论数量:<?php echo $sta_cache['comnum']; ?></li> <li>微语数量:<?php echo $sta_cache['tbnum']; ?></li> <li>运行时间:<?php echo floor((time()-strtotime("2018-04-04"))/86400); ?>天</li>这里解释一下代码:$sta_cache[‘参数’]中的参数可选如下lognum 游客可见日志总数comnum 未隐藏的评论数量tbnum 微语数量方法二自编函数通过SQL语句查询相关数据优点:实时显示缺点:加载速度较缓存类慢博客用过该代码,后期直接莫名其妙[数据库]出错,不太建议使用)把下面的代码添加到模版文件下的module.php文件中<?php //统计文章总数 function count_log_all(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE type = 'blog'"); return $data['total']; } //置顶文章数 function count_log_top(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE top = 'y' or [sort](http://uqseo.com/tag/sort)op = 'y' AND type = 'blog'"); return $data['total']; } //隐藏文章数 function count_log_hide(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE hide = 'y' AND type = 'blog'"); return $data['total']; } //未审核文章数 function count_log_check(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE checked = 'n' AND type = 'blog'"); return $data['total']; } //加密文章数 function count_log_pass(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE password !='' AND type = 'blog'"); return $data['total']; } //统计[页面](http://aidezy.com/?s=%E9%A1%B5%E9%9D%A2)总数 function count_page_all(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE type = 'page'"); return $data['total']; } //统计评论总数 function count_com_all(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "comment"); return $data['total']; } //统计友链总数 function count_link_all(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "link"); return $data['total']; } //统计微语评论总数 function count_treply_all(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "reply"); return $data['total']; } //统计分类总数 function count_sort_all(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "sort"); return $data['total']; } //统计子分类数 function count_sort_mod(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "sort WHERE pid != 0"); return $data['total']; } //统计[标签](http://aidezy.com/?s=%E6%A0%87%E7%AD%BE)总数 function count_tag_all(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "tag"); return $data['total']; } //统计微语总数 function count_tw_all(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "twitter"); return $data['total']; } //统计[用户](http://aidezy.com/?s=%E7%94%A8%E6%88%B7)总数 function count_user_all(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user"); return $data['total']; } //统计管理员总数 function count_user_admin(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user WHERE role = 'admin'"); return $data['total']; } //统计作者总数 function count_user_writer(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user WHERE role = 'writer'"); return $data['total']; } //统计附件总数 function count_att_all(){ $db = MySql::getInstance(); $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "attachment"); return $data['total']; } //最后发表文章时间 function last_post_log(){ $db = MySql::getInstance(); $sql = "SELECT * FROM " . DB_PREFIX . "blog WHERE type='blog' ORDER BY date DESC LIMIT 0,1"; $res = $db->query($sql); $row = $db->fetch_array($res); $date = date('Y-n-j H:i',$row['date']); return $date; }; ?>然后在需要的地方调用就行,调用代码如下<ul> <li>文章总数:<?php echo count_log_all();?></li> <li>置顶文章:<?php echo count_log_top();?></li> <li>隐藏文章:<?php echo count_log_hide();?></li> <li>待审文章:<?php echo count_log_check();?></li> <li>加密文章:<?php echo count_log_pass();?></li> <li>页面总数:<?php echo count_page_all();?></li> <li>评论总数:<?php echo count_com_all();?></li> <li>友链总数:<?php echo count_link_all();?></li> <li>微语评论:<?php echo count_treply_all();?></li> <li>分类总数:<?php echo count_sort_all();?></li> <li>子分类数:<?php echo count_sort_mod();?></li> <li>标签总数:<?php echo count_tag_all();?></li> <li>微语总数:<?php echo count_tw_all();?></li> <li>用户总数:<?php echo count_user_all();?></li> <li>管理员数:<?php echo count_user_admin();?></li> <li>作者总数:<?php echo count_user_writer();?></li> <li>附件总数:<?php echo count_att_all();?></li> <li>最后更新:<?php echo last_post_log();?></li> </ul>无陌然直接上图看效果,如果有什么不懂的可以留言
2021年06月04日
11,023 阅读
0 评论
0 点赞
2021-05-26
又拍云for emlog pro 插件修复下载
最近又在折腾emlog Pro版,跟之前的5.3.1版感觉没什么区别,除了UI重新设计了一下。需要设置文件密钥,我的u-file账号是用不了了。结合https://tcao.cn/post-2.html修改了控制台JS报错。下载:{cloud title="upyun for emlog pro" type="default" url="https://img.cmsblog.cn/2021/05/2203728537.zip" password=""/}upyun.zip来源:https://su1018.cn/chajian/28.html
2021年05月26日
9,984 阅读
0 评论
2 点赞
emlog博客隐藏指定分类下的文章
1.隐藏置顶分类的文章<?php if (!empty($logs)): foreach($logs as $value): ?> <div <?php if($value['sortid']==1){echo 'style="display:none"';}?>>//如果是指定的分类,则输出<div style="display:none"> 循环体 </div>//div结束标记 <?php endforeach; else: ?>代码==1中的1为分类id,本代码来源于em论坛hackhp之手,不足之处就是查看源代码时是显示的。2.隐藏指定分类文章同时代码也隐藏疤下面代码<?php if (!empty($logs)): foreach($logs as $value): ?>替换为<?php if (!empty($logs)): foreach($logs as $value): if ($value['sortid']==1) continue; ?>代码==1中的1为分类id,如需实现多个分类隐藏,请使用下面代码if(in_array($value['sortid'],array(1,2,3,4))){continue;}把其中的分类id更改一下就可以了,本代码在5.3.1版本下测试正常,如果你的log_list.php未分离出首页模板,请勿使用此方法,否则对应分类里的文章也将被隐藏。以上方法修改以后确实可以屏蔽指定的栏目文章在首页显示,但是首页文章数量会减少,被屏蔽的栏目的文章条目数在首页还是会被记录导致首页总少几篇文章而且和发布的被屏蔽的栏目文章数是对应的。
2021年05月25日
10,409 阅读
0 评论
0 点赞
2021-05-08
emlog根据图片数量来改变显示方式
一直以来我博客的文章列表页面都是那么的单调,无论里面的图片或多或少都是取得首张图片,标题,摘要。电脑上看吧还是可以的,但是手机上的阅读体验并不是太好,所以在其他模板里面扒出来了这个代码。可以获取文章内的图片数量,当图片大于或者小于多少多少张的时候可以使用特定的显示方式。首先在module.php里面添加代码:<?php function img_array($content){ //正则获取文章内的外链图片数量 preg_match_all("/\]\((.*?)\)/", $content, $imgarr); $result = $imgarr[1]; return $result; } ?> <?php function img_count($content){ return count(img_array($content)); } ?>然后在文章列表页,一般是log_list.php文件内这样调用:<?php $logImgCount = img_count($value['content']); ?> <?php if(img_count($value['content']) >=1 && img_count($value['content']) < 3){?> <!--图片小于三张时显示--> <?php }elseif(img_count($value['content']) >= 3){?> <!--图片等于三张时显示--> <?php }elseif(img_count($value['content']) == 0){?> <!--无图片时显示--> <?php }?>本教程用于emlog pro版本,如果是6.0或者5.3.1的话第一步的代码是<?php function img_array($content){ //正则获取文章内的外链图片数量 preg_match_all("|<img[^>]+src=\"([^>\"]+)\"?[^>]*>|is", $content, $imgarr); $result = $imgarr[1]; return $result; }https://su1018.cn/jiaocheng/14.html ?> <?php function img_count($content){ return count(img_array($content)); } ?>
2021年05月08日
12,555 阅读
0 评论
0 点赞
2021-02-06
emlog数据成功迁移到typecho
用了快十年多的emlog,转过来还是有点不舍的。所以之前的数据也保留放在blog.cmsblog.cn里吧!参考方案:官方文档:http://docs.typecho.org/emlog2typechoemlog2typecho 是一个用python写的脚本,用来迁移Emlog的数据库到Typecho。正如你所看到的这个网站我的博客,就是用它迁移过来的,相信你也可以很方便的使用它。目前它可以自动迁移文章、页面、分类、标签,当然你也可以参与本工具的更新、修改和优化,Github地址在文末。使用方法:在本地新建emlog数据库并导入需要转换的数据再安装Typecho来建立Typecho的数据库在脚本中设置两个数据库名(默认是"emlog"和"typecho")运行emlog2typecho.py备份Typecho数据库,上传到你的博客注意 此Python代码用到了MySQLdb库来连接MySQL,没有这个包的可以用pip安装:pip install MySQL-python Typecho最好是新安装出来的空数据库,以免出现不必要的麻烦源码:https://github.com/isaced/emlog2typecho以下是改进版本(代码来自:https://cloud.tencent.com/developer/article/1549699)我是直接在宝塔面板里转换的。只惜的是微语不能转换,有些tag没转换无伤大雅,苦了的是很多文章要重新排版了,我懒将就算了。[alt type="warning"]微语不能转换[/alt][alt type="warning"]相册需要重新弄[/alt]#! /usr/bin/env python # -*- coding: utf-8 -*- # 一些设置项 # Emlog 数据库名 emlog_database_name = 'blog1' # Typecho 数据库名 typecho_database_name = 'blog' # 数据库地址 database_host = 'localhost' # 数据库用户名 database_port = 3306 # 数据库用户名 database_user_name = 'root' # 数据库用户名 database_user_password = '123456' # 字符集 database_charset = 'utf8' emlog_prefix = 'log_' typecho_prefix = 'typecho_' ################################################################################# import MySQLdb # 连接数据库... conn=MySQLdb.connect(host = database_host, user = database_user_name, passwd = database_user_password, port = database_port, charset = database_charset) # 切换emlog数据库... conn.select_db(emlog_database_name) cur=conn.cursor() # 读取emlog所有分类 cur.execute('select sid, sortname, alias, ( select count( * ) from '+emlog_prefix+'blog where sortid = sid ) AS count FROM '+emlog_prefix+'sort') emlog_sort_list = cur.fetchall() # 读取Emlog所有Tag cur.execute('select tid,tagname,gid from '+emlog_prefix+'tag') emlog_tag_list = [] for row in cur.fetchall(): tagname = row[1] gid_list = row[2].split(',') # 移除列表中为空字符串的项 for gid in gid_list: if gid == '': gid_list.remove(gid) # 组装 tag = {'tagname':tagname,'gidlist':gid_list} emlog_tag_list.append(tag) # 读取emlog blog表... cur.execute('select gid,title,date,content,excerpt,alias,sortid,type,allow_remark from '+emlog_prefix+'blog') emlog_blog_list = cur.fetchall() # 读取Emlog comment表 cur.execute("SELECT * FROM `"+emlog_prefix+"comment`") emlog_comment_list = cur.fetchall() # ------------------------------------------ # --- Emlog表读取完毕,切换Typecho表进行写入 --- # ------------------------------------------ # 切换Typecho数据库... conn.select_db(typecho_database_name) cur=conn.cursor() # 删除Typecho 所有分类和标签... cur.execute('delete from '+typecho_prefix+'metas') # 插入emlog所有分类 for sort in emlog_sort_list: sort_id = sort[0] sort_name = sort[1] sort_sulg = sort[2] # sort[0] if sort[1] == '' else sort[1] sort_count = sort[3] cur.execute("insert into "+typecho_prefix+"metas (mid, name, slug, type, description, `count`, `order`) VALUES (%s, %s, %s, 'category', NULL, %s, 0)" , (sort_id,sort_name, sort_sulg,sort_count)) # 删除Typecho 所有文章... cur.execute('delete from '+typecho_prefix+'contents') # 删除文章所有关系 cur.execute('delete from '+typecho_prefix+'relationships') # 删除所有评论 cur.execute('delete from '+typecho_prefix+'comments') # 转移所有文章 for blog in emlog_blog_list: print blog blog_id = blog[0] blog_title = blog[1] blog_create_date = blog[2] blog_content = blog[3] blog_excerpt = blog[4] # 不能为空字符串 blog_alias = blog[5] if blog_alias == '': blog_alias = None # emlog --> blog page # typecho --> post page if blog[7] == 'blog': blog_type = 'post' else: blog_type = 'page' # allow comment if blog[8] == 'y': blog_allow_comment = '1' else: blog_allow_comment = '0' params = (blog_id,blog_title,blog_alias,blog_create_date,blog_content,blog_type,blog_allow_comment) cur.execute("insert into `"+typecho_prefix+"contents` (`cid`, `title`, `slug`, `created`, `modified`, `text`, `order`, `authorId`, `template`, `type`, `status`, `password`, `commentsNum`, `allowComment`, `allowPing`, `allowFeed`, `parent`) VALUES (%s, %s, %s, %s, NULL, %s, '0', '1', NULL, %s, 'publish', NULL, '0', %s, '0', '0', '0')",params) # 添加文章的relationships blog_sortid = blog[6] # emlog 中 分类id -1 为页面 if blog_sortid == -1: continue cur.execute('insert into `'+typecho_prefix+'relationships` (`cid`, `mid`) VALUES (%s, %s)',(blog_id,blog_sortid)) # 插入所有Tag(和关系) cur.execute("select MAX( mid ) FROM `"+typecho_prefix+"metas`") sort_max_id = (cur.fetchall()[0][0]) + 1 # 从刚插入的分类最后一个ID+1作为ID开始循环插入 for tag in emlog_tag_list: cur.execute("insert into `"+typecho_prefix+"metas` (`mid`, `name`, `slug`, `type`, `description`, `count`, `order`) VALUES (%s, %s, %s, 'tag', NULL, %s, '0');",(sort_max_id,tag['tagname'],tag['tagname'],len(tag['gidlist']))) for gid in tag['gidlist']: params = (int(gid),sort_max_id) # !有时会遇到重复项插入失败跳过 try: cur.execute('insert into `'+typecho_prefix+'relationships` (`cid`, `mid`) VALUES (%s, %s)',params) except: print '失败一条Tag:%s,%s' % (params) sort_max_id = sort_max_id + 1 # 插入评论 for comment in emlog_comment_list: params = (comment[0],comment[1],comment[3],comment[4],comment[6],comment[7],comment[8],comment[5],comment[2]) cur.execute("INSERT INTO `"+typecho_prefix+"comments` (`coid`, `cid`, `created`, `author`, `authorId`, `ownerId`, `mail`, `url`, `ip`, `agent`, `text`, `type`, `status`, `parent`) VALUES (%s, %s, %s, %s, '0', '1', %s, %s, %s, NULL, %s, 'comment' , 'approved', %s)",params) # 关闭数据库连接 cur.close() conn.close() print '转移完成...'
2021年02月06日
26,740 阅读
3 评论
1 点赞
2021-01-22
EMLOG调用正文中图片(多图模式)的方法
代码说明(为修改代码的情况下,可根据自己的情况修改):使用本代码将实现当正文少于4张图片时候只调用一张图片;当少于8张图片时,调出4张;当大于8张图片时,调出8张图片代码效果:代码详情:<?php if(preg_match_all("/<img.*src=[\"'](.*)[\"']/Ui", $value['content'], $imgs) && !empty($imgs[1])){ $imgNum = count($imgs[1]); if($imgNum < 4) $n = 1; elseif($imgNum < 8) $n = 4; else $n = 8; for($i=0; $i < $n; $i++){ $img = $imgs[1][$i];echo "<img src='$img'>";} }else{ echo "<img src='图片地址'>";}//没有图片时显示 ?>下面代码自用,增加判断当只有一张图片时用不同css表达<?php if(preg_match_all("/<img.*src=[\"'](.*)[\"']/Ui", $value['content'], $imgs) && !empty($imgs[1])){ $imgNum = count($imgs[1]); if($imgNum < 5) $n = 1; elseif($imgNum < 10) $n = 5; else $n = 10; for($i=0; $i < $n; $i++){ if($n == 1){$img = $imgs[1][$i];echo "<p><img src='$img'></p>";} elseif($n > 1){$img = $imgs[1][$i];echo "<ul><li><img src='$img'><li></ul>";} } }else{ echo '<p><img src="图片地址" ></p>';}//没有图片时显示,为空则不显示 ?>代码说明:把上面代码直接放入log_list.php中你想要放入的位置即可,当然你也可以放入你的首页。
2021年01月22日
14,079 阅读
0 评论
0 点赞
2021-01-17
emlog文章列表获取附件(图片)数量方法
本方法实际获取的是文章附件的数量,而非只是图片的数量,如果你的文章含有文件附件,列表也会显示成图片数量。所以此方法最适合于文章图片特别多而且没有附件的博客。有强迫症必须显示图片实际数量的,请绕道。 emlog文章列表获取附件(图片)数量,方法过于简单,修改博客emlog模板文件步骤如下:1、在module.php文件里面加入以下代码:<?php //图片数量 function pic_num($attnum){ if ($attnum > 0) { echo '<span class="attnum" title="此文有 '.$attnum.' 张图片">',$attnum,'</span>'; } }?>2、在log_list.php文件里面进行以下操作:`找到 <?php echo $value['log_title']; ?> ,在其后 加上 <?php pic_num($value['attnum']); ?> 即可。`3、添加css样式到你的样式文件`.attnum{background: url(images/img.gif) no-repeat 5px center;padding-left: 20px} //图片可替换自己的图片,字体大小自己调节`
2021年01月17日
16,027 阅读
0 评论
0 点赞
2021-01-16
Emlog通过邮箱判断获得Gravatar或者QQ的头像
有时候有些访客可能并没有 Gravatar 头像,那么很多人可能填写的都是QQ邮箱,于是有了下面的代码把下面的代码放到 Emlog 的 module.php 文件里//获取Gravatar头像 QQ邮箱取用qq头像 function ea_getGravatar($email, $s = 96, $d = 'mp', $r = 'g', $img = false, $atts = array()){ preg_match_all('/((\d)*)@qq.com/', $email, $vai); if (empty($vai['1']['0'])) { $url = 'https://secure.gravatar.com/avatar/'; $url .= md5(strtolower(trim($email))); $url .= "?s=$s&d=$d&r=$r"; if ($img) { $url = '<img src="' . $url . '"'; foreach ($atts as $key => $val) $url .= ' ' . $key . '="' . $val . '"'; $url .= ' />'; } }else{ $url = 'https://q2.qlogo.cn/headimg_dl?dst_uin='.$vai['1']['0'].'&spec=100'; } return $url; }调用方法:<?php echo ea_getGravatar($value['mail']);?>来源:https://mengx.io/post/8
2021年01月16日
9,900 阅读
0 评论
0 点赞
2020-07-26
文章加密测试, 密码cmsblog
Emlog 程序的钩子远不如 WordPress 这么丰富,因此这一美化只能通过直接修改 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); }文章来源:https://mkblog.cn/1634/演示网址:
2020年07月26日
10,098 阅读
0 评论
0 点赞