首页
关于本站
网站模板
代码教程
Emlog教程
米拓教程
SEO优化教程
Ecshop教程
zblog教程
Excel技巧
电脑软件教程
互联网
免费资源
网络新闻
留言咨询
在线问答
申请友链
网址导航
联系舍力
搜索
舍力
登录
搜索
舍力
静以修身。
累计撰写
1140
篇文章
累计收到
3657
条评论
首页
栏目
首页
关于本站
网站模板
代码教程
Emlog教程
米拓教程
SEO优化教程
Ecshop教程
zblog教程
Excel技巧
电脑软件教程
互联网
免费资源
网络新闻
留言咨询
在线问答
申请友链
网址导航
联系舍力
Emlog教程
2014-9-22
emlog模板预览功能的简单实现
前台换模板的功能其实非常有用,特别是对于经常做模板的模板作者来说,更是可以让访问都对自己模板的效果有直观的了解。在 Emlog 3.5 版以前,甚至也有过专门的插件,不过自从升级到 4.0 之后,这个插件就失效了。但是,一些爱折腾的技术控和 EMER ,还是陆续弄出一些代码来实现这个功能 今天我要介绍,是从卡片的模板中提取的代码,每个访问者都互不影响,而且,关闭浏览器重新打开该网站,又会恢复后台设置的默认模板。 首先看根目录下的init.php,找到其中的: define('TEMPLATE_URL', TPLS_URL.Option::get('nonce_templet').'/'); 将其替换为如下代码: session_start(); if(isset($_GET)){ $theme = $_GET=='reset' ? Option::get('nonce_templet') : $_GET; $_SESSION=$theme; }elseif(isset($_SESSION)){ $theme=$_SESSION; }else{ $theme=''; } if($theme==''){ define('TEMPLATE_NAME', Option::get('nonce_templet')); }else{ define('TEMPLATE_NAME', $theme); } define('TEMPLATE_URL', TPLS_URL.TEMPLATE_NAME.'/'); 然后将 index.php 和 t/index.php 两个文件中的: define('TEMPLATE_PATH', TPLS_PATH.Option::get('nonce_templet').'/'); 均改为: define('TEMPLATE_PATH', TPLS_PATH.TEMPLATE_NAME.'/'); 要查看某个模板的效果,直接在博客地址后面加上“?theme=模板目录”参数就行了,如“http://www.shuyong.net/?theme=lusongsong”(我已关闭此功能)
2014年9月22日
8252 阅读
2 评论
Emlog教程
2014-9-20
emlog实现全文+标题搜索方法
emlog官方默认默认搜索引擎,只支持搜索日志标题,我想着应该是处于多方面的考虑,基本各位站长自己的需求,我们还是可以做更改的,只要你的服务器允许的话。 找到文件include/controller/search_controller.php中的以下代码: $sqlSegment = "and title like '%{$keyword}%' order by date desc"; 替换为: 【仅全文搜索】 $sqlSegment = "and content like '%{$keyword}%' order by date desc"; 【标题+全文搜索】 $sqlSegment = "and ( title like '%{$keyword}%' or content like '%{$keyword}%' ) order by date desc"; 注意:全文检索对服务器会造成一定的压力,特别是你的文章特别多的时候,是不建议的,万一当机了就不好玩了,是吧。 标题精准搜索 $sqlSegment = "and (title ='{$keyword}') order by date desc";
2014年9月20日
9127 阅读
2 评论
Emlog教程
2014-9-19
Emlog调用附件第一张图片和正文第一张图片的方法
现在制作主题,喜欢在首页放上图片展示或图文形式,在emlog主题制作中要如何才能实现这种效果? 下面介绍了几种常用的方法,抛砖引玉,大家一起共同探导一下。 1、直接读取附件图片 原理:这种方法就是直接判断附件的类型,并获取第一张图片的信息;如果没有图片附件,则显示默认图片或随机图片。 方法:先将获取附件图片的方法定义成一个函数,放在模板文件module.php中(代码如下),位置随便。 <?php //获取文章缩略图,先是自定义指定,然后是查找附件图片,最后是随机图片 function sheli_fjimg($logid){ $db = MySql::getInstance(); $thum_pic = EMLOG_ROOT.'/thumpic/'.$logid.'.jpg'; if (is_file($thum_pic)) { $thum_url = BLOG_URL.'thumpic/'.$logid.'.jpg'; }else{ $sqlimg = "SELECT * FROM ".DB_PREFIX."attachment WHERE blogid=".$logid." AND (`filepath` LIKE '%jpg' OR `filepath` LIKE '%gif' OR `filepath` LIKE '%png') ORDER BY `aid` ASC LIMIT 0,1"; // die($sql); $img = $db->query($sqlimg); while($roww = $db->fetch_array($img)){ $thum_url=BLOG_URL.substr($roww,3,strlen($roww)); }if (empty($thum_url)) { srand((double)microtime()*1000000); $randval = rand(0,9); $thum_url = BLOG_URL.'content/templates/shuyong_net-sf/images/shuyong_net/'.$randval.'.jpg';} //随机图片路径 }echo $thum_url;} ?> 然后在你需要的地方,emlog一般是在log_list.php(当然也可以在你自己的文件)相应的地方插入下面代码:<img src="<?php sheli_fjimg($value); ?>" > 优缺点:优点:上传图片无论是否插入了正文,都可以读取第一张显示。 缺点:一是只能读取上传的第一张图片。 2.读取正文的第一张图片 原理:直接从正文代码——包括注释代码——中获取第一张图片的信息;如果正文中没有图片,则显示默认图片或者随机图片。 方法:先将获取附件图片的方法定义成一个函数,放在模板文件module.php中(代码如下),位置随便。 <?php //获取文章中第一张图片,如果没有就调用随机图片 function sheli_zwimg($str){ preg_match_all("/\<img.*?src\=\"(.*?)\"*>/i", $str, $match); if(!empty($match)){echo $match;}else{ echo TEMPLATE_URL . 'images/shuyong_net_wzimg/'.rand(1,20).'.jpg'; //随机图片路径及图片命名1.jpg……20.jpg }} ?> 在你需要的地方,emlog一般是在log_list.php(当然也可以在你自己的文件)相应的地方插入下面代码: <img src="<?php sheli_zwimg($value); ?>" 以下代码为调用正文第一张图片,没有图片则自定义,也可以空白,直接放在你要log_list.php对应位置即可。 <?php $imgsrc = preg_match_all("|<img+src=\"(+)\"?*>|is", $value, $img);$imgsrc = !empty($img) ? $img : ''; ?><?php if($imgsrc): ?><img src="<?php echo $imgsrc; ?>"><?php else: ?><img src="<?php echo TEMPLATE_URL;?>images/news.jpg" alt="暂无图片" /><?php endif; ?>
2014年9月19日
13854 阅读
4 评论
Emlog教程
2014-9-18
emlog修改分页样式(分页函数)方法总结[修改内核]
本文章总结了很多种不同的关于emlog修改分页样式(分页函数)方法,下面我来给各位整理一下,有需要自行修改emlog分页样式的同学可参考参考。 首先说到分页样式,那么主要去修改emlog的分页函数。那么emlog的分页函数在哪里呢?其实emlog的分页函数是集成在内核的基础函数库中的,所以要修改分页函数就要HACK程序(注:HACK程序前请先备份网站)。 下面来说说如何修改,emlog源程序: 1.找到文件include/lib/function.base.php中的分页函数,大概在function.base.php的220~250行(前提是你的function.base.php的原版程序)。 源程序的分页函数如下: /** * 分页函数 * * @param int $count 条目总数 * @param int $perlogs 每页显示条数目 * @param int $page 当前页码 * @param string $url 页码的地址 */ function pagination($count, $perlogs, $page, $url, $anchor = '') { $pnums = @ceil($count / $perlogs); $re = ''; $urlHome = preg_replace("|*page|", "", $url); for ($i = $page - 5; $i <= $page + 5 && $i <= $pnums; $i++) { if ($i > 0) { if ($i == $page) { $re .= " <span>$i</span> "; } elseif ($i == 1) { $re .= " <a href=\"$urlHome$anchor\">$i</a> "; } else { $re .= " <a href=\"$url$i$anchor\">$i</a> "; } } } if ($page > 6) $re = "<a href=\"{$urlHome}$anchor\" title=\"首页\">«</a><em>...</em>$re"; if ($page + 5 < $pnums) $re .= "<em>...</em> <a href=\"$url$pnums$anchor\" title=\"尾页\">»</a>"; if ($pnums <= 1) $re = ''; return $re; } 修改为 /** * 分页函数 * * @param int $count 条目总数 * @param int $perlogs 每页显示条数目 * @param int $page 当前页码 * @param string $url 页码的地址 */ function pagination($count,$perlogs,$page,$url,$anchor=''){ $pnums = @ceil($count / $perlogs); $page = @min($pnums,$page); $prepg=$page-1; //上一页 $nextpg=($page==$pnums ? 0 : $page+1); //下一页 $urlHome = preg_replace("|*page|","",$url); #开始分页导航内容 $re = ""; if($pnums<=1) return false; //如果只有一页则跳出 if($page!=1) $re .=" <a href=\"$urlHome$anchor\">首页</a> "; if($prepg) $re .=" <a href=\"$url$prepg$anchor\">前页</a> "; for ($i = $page-5;$i <= $page+5 && $i <= $pnums; $i++){ if ($i > 0){ if ($i == $page){ $re .= " <span>$i</span> "; } elseif($i == 1) { $re .= " <a href=\"$urlHome$anchor\">$i</a> "; } else { $re .= " <a href=\"$url$i$anchor\">$i</a> "; } } } if($nextpg) $re .=" <a href=\"$url$nextpg$anchor\">后页</a> "; if($page!=$pnums) $re.=" <a href=\"$url$pnums$anchor\" title=\"尾页\">尾页</a>"; #下拉跳转列表,循环列出所有页码 $re .=" 跳转到第 <select name='topage' size='1' onchange='window.location=\"$url\"+this.value'>\n"; for($i=1;$i<=$pnums;$i++){ if($i==$page) $re .="<option value='$i' selected>$i</option>\n"; else $re .="<option value='$i'>$i</option>\n"; } $re .="</select> 页,共 $pnums 页"; return $re; } 当然你如果还要共几页,这个显示的话。上面删掉的最后一行不要删除而且需要修改如下: $re .="共 $pnums 页"; PS:写在最后,如果不喜欢跳转的那个选择方式,还可以用填入页数跳转的分页,代码实现也差不多,我这里就不一一说明了,以后有时间或者有朋友需要的话就补上去。 如何不想修改内核,请查看:不修改emlog内核实现博客分页自定义的方法分享
2014年9月18日
10650 阅读
1 评论
Emlog教程
2014-9-17
emlog模板调用多个侧边栏教程
正在写新板子,想尝试一下三栏的,但是不知道如何调用多侧边栏。查了emlog官方文档(5.0 版以后的),可以调用多个多个侧边栏。下面emlog官方文档原文: Sidebar Amount:标记该模板有几个侧边栏,一般为1,有些模板有两个侧边栏则标记2。这样可以在后台widgets里识别管理(具体可下载体验官方收录的模板G7)。 但是如何调用,文档说参考 G7 模板,但是我在应用中心没找到那个那个板子。后来也在emlog官方论坛发帖询问,也没人回答。 于是干脆自己想办法吧。学了这么久的php,这点还不会,那真是白学了。我突然发现我有一个缺点,就是不相信自己的实力,那可能就是自卑吧。总是再找别人的方法, 而自己没有真正去想。其实动脑想了之后,然后动手实践很容易解决。 下面是我的解决方法: 1、申明侧边栏目数 在header.php文件的页头申明栏目数:【Sidebar Amount:3】表示此模板支持三个栏目。看了一下数据库,似乎最多也只能是4个。但是3个已经足够了。 2、设置侧边栏 3、调用侧边栏 ①$widgets = !empty($options_cache) ? unserialize($options_cache) : array(); //原文 ②$widgets = !empty($options_cache) ? unserialize($options_cache) : array();//调用侧边栏1 ③$widgets = !empty($options_cache) ? unserialize($options_cache) : array();//调用侧边栏2 ④$widgets = !empty($options_cache) ? unserialize($options_cache) : array();//调用侧边栏3 将side.php 复制三份并重命名如:side1.php、side2.php、side3.php,然后分别把第①句用第②、③、④句替换。 最后include这三个文件中的任何一个,就可以出现不同的侧边栏。理想情况下,首页(列表页)、文章页、页面(微语)可以分别调用不同的侧边栏。 结语 emlog模板调用多侧边栏教程就是这样,是不是很简单。凡事多动脑,问题就解决了……
2014年9月17日
11827 阅读
18 评论
Emlog教程
2014-9-17
修改emlog后台登录路径的方法
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中的代码 define('TEMPLATE_PATH', EMLOG_ROOT.'/admin/views/');//后台当前模板路径 把其中的admin改为第一步更改的名称就ok了, 3、千万不要用记事本来修改核心文件,否则后果很严重。 -=- 修改Emlog后台默认列表显示条数 在include/model/log_model.php文件中找到 $limit = "LIMIT $start_limit, " . $perpage_num; 大概在147行的样子,改为 $limit = "LIMIT $start_limit, " . 1000; 其中1000表示现在所显示的条数
2014年9月17日
22806 阅读
12 评论
Emlog教程
2014-9-10
emlog文章浏览数在规定的时间内算一次修改方法
文章浏览数在规定的时间内算一次修改方法(感谢EM开发QQ群@土著人宁巴) 找到include/controller/log_controller.php 大概102中 $Log_Model->updateViewCount($logid); 改为 if(time()-intval($_COOKIE)>86400){ $Log_Model->updateViewCount($logid); setcookie('viewtime_'.$logid,time()); } (其中86400为时间,单位为秒)就可以搞定了。 另外附上按点击数排列文章的方法 找到include/controller/log_controller.php 大概19中 $sqlSegment ='ORDER BY top DESC ,date DESC'; top改为views即可。。 本人把方法分享给大家,希望对大家所帮助。
2014年9月10日
9767 阅读
3 评论
Emlog教程
2014-9-9
如何在文章页面调用后台设置的文章摘要?
如何在文章页面调用后台设置的文章摘要?后台能设置文章摘要,但是只能在首页显示摘要,而文章页面看不到。 5.3.0为例 在文件include/model/log_model.php中找到 'template' => $row, 在后面添加 'excerpt' => $row, 然后就可以在echo_log.php调用<?php echo $excerpt;?>
2014年9月9日
8261 阅读
0 评论
Emlog教程
2014-9-4
Emlog实现最新头条文章标题加摘要显示代码
最新置顶头条文章标题加摘要显示的效果,把以下代码复制到module.php里面,如需调用分类置顶文章请把top='y'改为sortop='y'即可 <?php //首页置顶头条,不带图片 function sheli_zdLog() { $db = MySql::getInstance(); $sql = "SELECT gid,title,content,date FROM ".DB_PREFIX."blog WHERE type='blog' and top='y' ORDER BY `top` DESC ,`date` DESC LIMIT 0,1"; $list = $db->query($sql); while($row = $db->fetch_array($list)){ //$row = htmlspecialchars($row); $row = strip_tags($row);?> <h1><a href="<?php echo Url::log($row); ?>" title="<?php echo $row; ?>" target="_blank"><?php echo $row; ?></a></h1> <span class="note"><?php echo mb_substr($row,0,85,'utf-8'); ?>...</span><a href="<?php echo Url::log($row); ?>" target="_blank">阅读全文>></a> <?php } ?> <?php } ?> 如果需要带图片请使用下面代码放入module.php中,如需调用首页置顶文章请把sortop='y'改为top='y'即可 <?php //分类置顶头条,带图片 function sheli_zdLog(){ $db = MySql::getInstance(); $sql = $db->query ("SELECT * FROM ".DB_PREFIX."blog inner join ".DB_PREFIX."sort WHERE hide='n' AND type='blog' AND sortop='y' AND sortid=sid order by date DESC limit 0,5"); while($row = $db->fetch_array($sql)){ if (!empty($row)){ preg_match_all("/\<img.*?src\=\"(.*?)\"*>/i", $row, $match); if(empty($match)) { preg_match_all("/\<img.*?src\=\"(.*?)\"*>/i", $row, $match); } }else{ preg_match_all("/\<img.*?src\=\"(.*?)\"*>/i", $row, $match); } $logpost = !empty($row) ? $row : ''.$row.''; $num = rand(1,3); $img = isset($match) ? $match : '<img src="'.TEMPLATE_URL.'images/shuyong_net/'.$num.'.jpg">'; $date = gmdate('Y年m月d日', $row); $content = strip_tags($logpost,''); $content = mb_substr($content,0,250,'utf-8');$comment = ($row != 0) ? '被吐槽<span>'.$row.'</span>次' : '暂无吐槽'; $gid = $row; $tag = $db -> query("SELECT * FROM ".DB_PREFIX."tag WHERE gid LIKE '%,$gid,%'"); $out .=' <div class="flash_img2"> <div class="hdp_img"><a href="'.Url::log($row).'" title="'.$row.'" >'.$img.'</a></div> <div class="hdp"><h4><a href="'.Url::log($row).'" title="'.$row.'">'.$row.'</a></h4> <h5>日期:'.$date.' 分类:<a href="'.Url::sort($row).'" title="查看 '.$row.' 中的全部文章" rel="category tag">'.$row.'</a> 共被围观 '.$row.' 次 '.$comment.'</h5> <h6>'.$content.'...</h6></div></div> '; } echo $out; }?> 以上未提供css代码,请自行折腾
2014年9月4日
11957 阅读
1 评论
Emlog教程
2014-9-4
EMLOG获取固定数量的网站标签方法
标签功能是WEB发展的产物,EMLOG当然也具备文章添加标签的功能。而且在EMLOG的侧边栏组件中,用户也可以手动增加该模块。 不过,有一个小小的问题是,侧边栏组件中的标签默认是显示网站所有标签的,如果你的标签过多,势必会影响到网站的美观度。舍力在设计当前网站风格的时候,也在页面的上方设计了一个标签的模块,如果标签数量过多,则会破坏原有的设计。所以舍力就写了一个如下简单的“EMLOG获取网站固定数量标签”的小功能。 <?php // 获取EMLOG固定数量网站标签 function sheli_Tags($num){global $CACHE;$tag_cache = $CACHE->readCache('tags');foreach($tag_cache as $key => $value):if($key < $num):?> <span><a href="<?php echo Url::tag($value); ?>" title="<?php echo $value; ?> 篇文章"><?php echo $value; ?></a></span> <?php endif;endforeach;}?> 如上代码既实现了获取EMLOG网站固定数量标签的功能呢,参数$num即为用户设置的标签个数。使用方法是先将该段代码写在模板文件module.php当中,然后再模板前台文件中写入一行调用该函数的代码即可,如下: <?php sheli_Tags(10);?> 把这一段代码写到模板文件中即可实现调用10个网站标签 另外,如果希望调用的标签随机显示,则需要使用shuffle()函数进行一次顺序的打乱。函数代码如下,相对于之前来说仅仅只添加了一行代码: <?php // 获取EMLOG固定数量网站标签(随机排序) function sheli_Tags($num){global $CACHE;$tag_cache = $CACHE->readCache('tags'); shuffle($tag_cache); //添加这行代码实现标签随机排序 foreach($tag_cache as $key => $value):if($key < $num):?> <span><a href="<?php echo Url::tag($value); ?>" title="<?php echo $value; ?> 篇文章"><?php echo $value; ?></a></span> <?php endif;endforeach;}?> emlog标签太多了,我想让它只显示文章数量较多的标签。具体教程如下;在默认模板的module.php标签函数中找到$tag_cache = $CACHE->readCache('tags');在后面加入代码 foreach ($tag_cache as $key => $row) { $usenum = $row; }array_multisort($usenum, SORT_DESC, $tag_cache); 然后在foreach($tag_cache as $value):后面加入代码 if($value > 5){ //可以更改为大于5的其他数字,控制文章相关数 最后在endforeach;的前面加”}“即可!
2014年9月4日
8258 阅读
0 评论
Emlog教程
2014-9-4
Emlog按天数时间调用热门文章列表
Emlog按天数时间调用随机热门文章列表 把以下代码复制到模板目录下的module.php里面,其中302460*60中的30为天数,可自行修改 <?php //30天按点击率排行文章 function sheli_hotlog($log_num) { $db = MySql::getInstance(); $time = time(); $sql = "SELECT gid,title FROM ".DB_PREFIX."blog WHERE type='blog' AND date > $time - 30*24*60*60 ORDER BY `views` DESC LIMIT 0,$log_num"; $list = $db->query($sql); while($row = $db->fetch_array($list)){ ?> <li><a href="<?php echo Url::log($row); ?>" title="<?php echo $row; ?>"><?php echo $row; ?></a></li> <?php } ?> <?php } ?> 在需要的调用的地方输入<?php sheli_hotlog(10);?>调用,其中10为调用的数量。
2014年9月4日
8238 阅读
0 评论
Emlog教程
2014-8-30
Emlog手机版获取文章标签和分类
代码仍旧是从module文件里拿出来,经过一些修改而得,使用基本没什么问题。里面的分类和标签链接地址还是电脑版的,不过也不必修改,毕竟手机版也没有分类和标签的功能,如果不需要的可以将其去掉。 以下是调用分类名(带链接)的代码: //获取文章对应的分类 function blog_sort($blogid){ global $CACHE; $log_cache_sort = $CACHE->readCache('logsort'); if(!empty($log_cache_sort)){ $blog_sort = "<a href=\"".Url::sort($log_cache_sort)."\">".$log_cache_sort."</a>"; } else{ $blog_sort = "暂未分类"; } echo $blog_sort; } 把上面的代码放在手机版的index.php里的最后。然后进入view文件夹,按自己需要选择添加位置: 想显示在文章页面:打开single.php,放到里面的适当位置即可: <?php blog_sort($logid); ?> 想显示在文章列表里:打开log.php文件,在 <?php foreach($logs as $value): ?> 与 <?php endforeach; ?> 之间放入如下调用代码: <?php blog_sort($value); ?> 下面是获取文章标签的代码: //获取文章对应的标签 function blog_tag($blogid){ global $CACHE; $log_cache_tags = $CACHE->readCache('logtags'); if (!empty($log_cache_tags)){ $tag = ''; foreach ($log_cache_tags as $value){ $tag .= "<a href=\"".Url::tag($value)."\">".$value.'</a> '; } echo $tag; } } 同样是放到index.php文件的后面,至于和上面的分类代码谁先谁后是无关紧要了,建议彼此隔开一行,方便查看修改。每个标签之间已用空格(即 )隔开,你也可以去掉再用CSS定义。 调用方法和上面的分类调用一样,文章页面的标签调用代码: <?php blog_tag($logid); ?> 文章列表页面的标签调用代码: <?php blog_tag($value); ?> 感觉内容和之前发的差不多(-_-#),我只是想写详细一点。 本文作者: 笑忘书,转载请注明出处
2014年8月30日
8627 阅读
1 评论
Emlog教程
13
14
15
16