作者:公子
发布时间:June 2, 2011
分类:附庸风雅
之前写过一篇为你的PageCookery制作博客挂件,利用的是PageCookery的RSS制作的。今天给大家放的代码是直接读取数据库然后用js的innerhtml引用的方法,此方法适用于任何网站,甚至是HTML页面也是可以的。新分享的方法简单方便而因为读取数据库的原因是实时更新的呢!这里要感谢卜卜口の君的各种指导。
本文需要使用的文件下载:普通下载 | 115下载 | uudisc下载
注意:以上文件适合97版本以前的【不包括97版】PageCookery,如果是97版以后的请拷贝下面的代码。
下载好文件后将其解压,将widget.php和badge.php文件上传到您的PageCookery根目录下,即与config.php同级的目录。然后浏览器输入"您的PageCookery地址+/widget.php",例如我的是http://pagecookery.net/widget.php出现什么了?呵呵~上面已经有提醒了,我就不多说了。
友情提醒:通过定义script地址后面的mount的值可以控制显示的条数哦!我已经定义了许多标签,样式什么的可以尽情的发挥咯!
这里我也直接放出代码出来给那些不愿下载的孩子:
widget.php文件源代码:
| | < ?php | | require<em>once("global.php"); | | ?> | | <p>JS插件代码|复制代码到你要引用的地方 | | <textarea style="width:80%;height:80px;"><div id="pagecookery"></div> | | <script type="text/javascript" src="<?php echo BASE_URL; ?>badge.php?mount=10"></script></textarea></p> | | <p>效果预览: | | <div id="pagecookery"></div> | | <script type="text/javascript" src="<?php echo BASE_URL; ?>badge.php?mount=10"></script></p> |
|
badge.php文件源代码(适合97版本以前的PageCookery【不包括97版】):
| 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 | | 11 | | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | | 21 | | 22 | | 23 | | 24 | | 25 |
| | <?php | | header('Content-Type:application/javascript;charset=utf-8'); | | require_once("global.php"); | | if (!isset($_GET['mount'])){ | | $_GET['mount']='10'; | | } | | ?> | | document.getElementById('pagecookery').innerHTML='< ?php | | if(ereg("^[0-9]*$",$</em>GET['mount'])){ | | $sql='SELECT * FROM entry ORDER BY time DESC LIMIT '.$<em>GET['mount']; | | $entry = $SQL->RunQuery($sql); | | echo '<style type="text/css">#pagecookery img {display:none;}</style><ul>'; | | while($item = $SQL-> FetchArray($entry)){ | | echo '<li>'; | | echo '<span clss="entry">' . get</em>username<em>by</em>id($item['userid']) . '</span>'; | | echo ':'; | | echo hFormat::ParseBBCode( htmlspecialchars($item['content'],ENT<em>QUOTES)); | | echo '<a href="' . BASE_URL .'?act=view&id=' . $item['id'] . '" target="_blank"><span class="time">' . Format::Time($item['time']) . '</span></a>'; | | echo '</li>'; | | } | | echo '</ul>'; | | }else{ | | echo '这里没有你要的东西呢'; | | } | | ?>'; |
|
badge.php文件源代码(适合97版本以后的PageCookery【包括97版】):
| 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 | | 11 | | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | | 21 | | 22 | | 23 | | 24 | | 25 |
| | <?php | | header('Content-Type:application/javascript;charset=utf-8'); | | require_once("global.php"); | | if (!isset($_GET['mount'])){ | | $_GET['mount']='10'; | | } | | ?> | | document.getElementById('pagecookery').innerHTML='< ?php | | if(ereg("^[0-9]*$",$</em>GET['mount'])){ | | $sql='SELECT * FROM entry ORDER BY time DESC LIMIT '.$<em>GET['mount']; | | $entry = $db->query($sql)->result</em>array(); | | echo '<style type="text/css">#pagecookery img {display:none;}</style><ul>'; | | foreach($entry as $item){ | | echo '<li>'; | | echo '<span clss="entry">' . get<em>username</em>by<em>id($item['userid']) . '</span>'; | | echo ':'; | | echo hFormat::ParseBBCode( htmlspecialchars($item['content'],ENT</em>QUOTES)); | | echo '<a href="' . BASE_URL .'?act=view&id=' . $item['id'] . '" target="_blank"><span class="time">' . Format::Time($item['time']) . '</span></a>'; | | echo '</li>'; | | } | | echo '</ul>'; | | }else{ | | echo '这里没有你要的东西呢'; | | } | | ?>'; |
|
站外引用的代码|在"您的PageCookery地址+/widget.php"文件中有!
| | <div id="pagecookery"></div> | | <script type="text/javascript" src="您的PageCookery地址+/badge.php"></script> |
|
明眼人都看出来了吧,其实widget.php可有可无的,方便大家而已!
作者:公子
发布时间:April 30, 2011
分类:附庸风雅
某些人吵着要的转换程序,先放在这里了。将下列代码保存为convertpc2mf.php并放到你的PageCookery根目录下运行即可。
| 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 | | 11 | | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | | 21 | | 22 | | 23 | | 24 | | 25 | | 26 | | 27 | | 28 | | 29 | | 30 | | 31 | | 32 | | 33 | | 34 | | 35 | | 36 | | 37 | | 38 | | 39 | | 40 | | 41 | | 42 | | 43 | | 44 | | 45 | | 46 | | 47 | | 48 | | 49 | | 50 | | 51 | | 52 | | 53 | | 54 | | 55 | | 56 | | 57 | | 58 | | 59 | | 60 | | 61 | | 62 | | 63 | | 64 | | 65 | | 66 | | 67 | | 68 | | 69 |
| | <html> | | <head> | | <title>PageCookery转微饭程序 </title> | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | | <style type="text/css"> | | textarea {width:100%;height:200px;} | | form {width:400px;} | | button {float:right;} | | #footer {width:100%;text-align:center;position:fixed;bottom:0px;} | | </style> | | </head> | | <body> | | <?php | | error_reporting(E_ALL ^ E_NOTICE); | | require_once 'config.php'; | | function sql_query($sqlcon){ | | $con=mysql_connect(DATABASE_HOST, DATABASE_USER, DATABASE_PSSWORD); | | mysql_select_DB(DATABASE_DB_NAME); | | mysql_query("SET NAMES 'utf8'"); | | $result = mysql_query($sqlcon); | | mysql_close($con); | | return $result; | | } | | $entry_pc = sql_query('SELECT * FROM entry'); | | $reply_pc = sql_query('SELECT * FROM reply'); | | $prefix = $_GET['prefix']; | | if ($prefix == "") $prefix = "mf_"; | | ?> | | <form action="convertpc2mf.php" method="GET"> | | 请输入你的微饭数据库的自定义前缀:<input name="prefix" type="text" value="mf_">(不要忘了最后还有一个'_'哦!) | | <input type="submit" value="确认"> | | </form> | | <p>复制下列代码并在phpMyadmin中执行即可<a href="http://img1.dnschina.net/files/68/insert_into_sql.png" target="_blank" style="font-size:12px;">不懂请看图</a></p> | | <textarea> | | <?php | | while ($entry = mysql_fetch_object($entry_pc)) { | | $content = $entry -> content; | | echo "INSERT INTO `" . $prefix . "entry` VALUES "; | | echo "('','" . $entry -> userid . "','','','','" . addslashes($content) . "','" . $entry -> time . "','" . $entry -> from . "','0','','','');"; | | echo "\n"; | | } | | while($reply =mysql_fetch_object($reply_pc)){ | | $nickname = $reply -> nickname; | | $geo = $reply -> geo; | | if ($nickname == "" && $geo != "owner") { | | $nickname = $geo . '网友'; | | $userid = 0; | | } elseif ($nickaname == "" && $geo == "owner" ) { | | $userid = 1; | | $nickname = ""; | | } | | echo "INSERT INTO `" . $prefix . "entry` VALUES"; | | echo "('','" . $userid . "','" . $nickname . "','" . $reply -> email . "','" . $reply -> url . "','" . $reply -> message . "','" . $reply -> time . "','网页','" . $reply -> entryid . "','','','');"; | | echo "\n"; | | } | | ?> | | </textarea> | | <p style="margin-top:15px;color:#AAA;"> | | 友情提示:<br> | | 1.请确定你是在'微饭'的表中执行代码,并确保微饭已经安装,即存在entry和reply两个表。<br> | | 2.请输入你的'微饭'表前缀并确定后再复制代码,否则可能导致失败。<br> | | 3.部分对数据库架构进行过变动的用户可能会导入失败,请修改相关代码后再进行导入。<br> | | 4.导入前请将原数据库进行备份,以免发生意外损失。 | | </p> | | <div id="footer">Powered By <a href="http://imnerd.org">怡红公子</a> | 欢迎报告 <a href="mailto:i@imnerd.org">BUG</a></div> | | <body> | | </html></p> | | | <p> |
|
作者:公子
发布时间:February 26, 2011
分类:附庸风雅
N久之前有某位同学给我发邮件让我帮忙写一个emlog碎语转PageCookery的数据库转换程序。虽然没有什么技术,但感觉这东西还是有些思路的,就接下来了。在卜卜口の君的帮助下,也算是有模有样的写出来了。并且拿了一个emlog的碎语数据库做过测试,因为他的内容多且杂,应该能代表广大群众的了。所以特地分享出来,希望能帮助一些同学。
将下列代码保存成covertopc.php,然后上传到emlog程序的根目录访问即可得到转换代码。本来想写成下载文件下载成SQL文件然后让用户自己导入的。我想直接代码也不还是PHPMYADMIN,于是就没多做操作了。虽然我做了测试,但不代表一定没有问题,欢迎使用中有问题的同学和我交流,最后说明问题的时候能发一份你的碎语数据库文件到我的邮箱里头。我的邮箱是i#imnerd.org
| 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 | | 11 | | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | | 21 | | 22 | | 23 | | 24 | | 25 | | 26 | | 27 | | 28 | | 29 | | 30 | | 31 | | 32 | | 33 | | 34 | | 35 | | 36 | | 37 | | 38 | | 39 | | 40 | | 41 | | 42 | | 43 | | 44 | | 45 | | 46 | | 47 | | 48 | | 49 | | 50 | | 51 | | 52 | | 53 | | 54 | | 55 | | 56 |
| | <html> | | <head> | | <title>Emlog碎语转PageCookery程序 </title> | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | | <style type="text/css"> | | textarea {width:100%;height:200px;} | | form {width:400px;} | | button {float:right;} | | #footer {width:100%;text-align:center;position:fixed;bottom:0px;} | | </style> | | </head> | | <body> | | <?php | | require<em>once 'config.php'; //连接数据库<br /> | | function mysql</em>run($sqlcon){<br /> | | $con=mysql<em>connect(DB</em>HOST, DB<em>USER,DB</em>PASSWD); | | mysql<em>select</em>db(DB<em>NAME); | | mysql</em>query("SET NAMES 'utf8'"); | | $result = mysql<em>query($sqlcon); | | mysql</em>close($con); | | return $result; | | }</p> | | | <p>?></p> | | | <p>复制下列代码并在phpMyadmin中执行即可<a href="http://img1.dnschina.net/files/68/insert_into_sql.png" target="_blank" style="font-size:12px;">不懂请看图</a></p> | | | <p><textarea></p> | | | <p><?php</p> | | | <p>$content = mysql<em>run('SELECT * FROM ' . DB</em>PREFIX . 'twitter');</p> | | | <p>while($entry=mysql<em>fetch</em>object($content)){ | | echo "INSERT INTO <code>entry</code> VALUES "; | | echo "('',1,'" . htmlspecialchars( str<em>replace('\','',$entry -> content) , ENT</em>QUOTES ) . "'," . $entry -> date . ",'Emlog'," . $entry -> author . ");"; | | } | | ?></p> | | | <p><?php | | $re = mysql_run('SELECT * FROM ' . DB_PREFIX . 'reply'); | | while($reply =mysql_fetch_object($re)){ | | echo "INSERT INTO `reply` VALUES"; | | echo "(''," . $reply -> tid .",'Great Fire Wall', '" . $reply -> ip . "','" . $reply -> content . "'," . $reply -> date . ",'0','" . $reply -> name . "');"; | | } | | ?> | | </textarea> | | <p style="margin-top:15px;color:#AAA;"> | | 友情提示:<br> | | 1.请确定你是在PageCookery的表中执行代码,并确保PageCookery已经安装,即存在entry和reply两个表。<br> | | 2.部分对数据库架构进行过变动的用户可能会导入失败,请修改相关代码后再进行导入。<br> | | 3.导入前请将原数据库进行备份,以免发生意外损失。 | | </p> | | <div id="footer">Powered By <a href="http://imnerd.org">怡红公子</a> | 欢迎报告 <a href="mailto:i@imnerd.org">BUG</a></div> | | <body> | | </html> |
|
作者:公子
发布时间:February 9, 2011
分类:日常杂事
不解释,传送门:http:/PageCookery.tk
安装地址:http://goo.gl/pkW14
作者:公子
发布时间:January 31, 2011
分类:附庸风雅
[music1g play=#315715]
不是很喜欢PageCookery默认的照片墙效果,很早之前用了@ideeland同学的方法换了一个透明效果,感觉还不错。这两天又想着搞一个LightBox(灯箱)效果,即点击小图片后可以用LightBox效果浏览大图片。预览效果请见:传送门
PageCookery里头Flickr照片墙是通过CURL函数获取最近上传的json数据来实现的,比较可以的是获取过来的json数据只有小图地址而没有大图地址。所以我就打算自己用Flickr API写过一个。经试验发现,这里需要使用flickr.people.getPublicPhotos和flickr.photos.getSizes两个API,前者获取最近上传照片的信息,后者则获取特定照片的全部尺寸地址。
将下列代码保存成photos.html替换掉template/photos.html
| 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 | | 11 | | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | | 21 | | 22 | | 23 | | 24 | | 25 | | 26 | | 27 | | 28 | | 29 | | 30 | | 31 | | 32 | | 33 | | 34 | | 35 | | 36 | | 37 | | 38 | | 39 | | 40 | | 41 | | 42 | | 43 | | 44 | | 45 | | 46 | | 47 | | 48 | | 49 | | 50 |
| | {template header} | | <style type="text/css"> | | @import 'css/jquery.lightbox.css'; | | ul.photos li { | | overflow:hidden; | | /*根据这个宽度和长度控制你单行显示图片的数量,如果总长是600px,这里设置为100px的话那么你单行就能放6张图片,可以根据自己的情况做改变。*/ | | /*实在计算不来的可以慢慢试出最佳值*/ | | width:149px; | | height:149px; | | } | | ul.photos li a { | | filter:alpha(opacity=70); | | opacity:0.7; | | -moz-opacity:0.7; | | -webkit-opacity:0.7; | | } | | ul.photos li a:hover { | | filter:alpha(opacity=100); | | opacity:1; | | -moz-opacity:1; | | -webkit-opacity:1; | | } | | </style> | | <script type="text/javascript" src="javascript/jquery.lightbox.js"></script> | | <script type="text/javascript"> | | $(function() { | | $('ul.photos li a').lightBox({fixedNavigation:true}); | | }); | | </script> | | <div id="main"> | | <ul class="photos"> | | <php> | | $key= ""; //输入你申请的key,请到"http://www.flickr.com/services/apps/create/noncommercial/?"这里申请你自己的非商用key | | $user_id = ""; //输入你的账户id,请到"http://www.flickr.com/services/api/explore/?method=flickr.photos.getRecent"这里查看你的id | | $per_page = ""; //输入你要显示的照片的数量 | | $data = file_get_contents("http://api.flickr.com/services/rest/?method=flickr.people.getPublicPhotos&api_key=" . $key . "&user_id=" . $user_id . "&per_page=" . $per_page ); | | $object = simpleXML_load_string($data); | | $photo = $object -> photos -> photo; | | foreach ($photo as $each) { | | $photo_m = 'http://farm' . $each['farm'] . '.static.flickr.com/' . $each['server'] . '/' . $each['id'] . '_' . $each['secret'] . '_m.jpg'; | | $photo_b = 'http://farm' . $each['farm'] . '.static.flickr.com/' . $each['server'] . '/' . $each['id'] . '_' . $each['secret'] . '_b.jpg'; | | </php> | | <li><a href="{$photo_b}"><img src="{$photo_m}" /></a></li> | | <php> | | } | | </php> | | </ul> | | <div style="clear:left"></div> | | </div> | | {template footer} |
|
需要填写的东西我已经在代码里写好了,大家填写上就好了。可能美观上有些问题,大家再自己根据我这个修改一下自己的样式表就可以了。如有不懂的地方也可以留言,我会尽量帮忙的啦~
其实我自己的上面是把php语句function成了一个函数,然后再html模板中直接引用就好啦~嘿嘿,发现我最近真的很喜欢这样做,function_microblog.php里已经有好几个自定义函数了。嘿咻~!然后顺便想说的是更换了一个新的icon,没别的意思,就像让大家看一下,结束!
PS:搞完这个之后,我发现Flickr有最近更新的RSS订阅,XML里小图地址大图地址各种齐全,连API,USER_id什么的都不要,各种给力。于是我就这么的悲催了
- 1
- 2
- 3
- 4
- »