为你的PageCookery制作网站挂件(增加97版的支持)

作者:公子 发布时间: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文件源代码:

1
2
3
4
5
6
7
8
9
< ?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='&lt; ?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='&lt; ?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"文件中有!

1
2
<div id="pagecookery"></div>
<script type="text/javascript" src="您的PageCookery地址+/badge.php"></script>
明眼人都看出来了吧,其实widget.php可有可无的,方便大家而已!

PageCookery转微饭程序

作者:公子 发布时间: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>

Emlog碎语转换到PageCookery

作者:公子 发布时间: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>
&lt;?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>&lt;?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('&#92;','',$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>

PageCookery Theme:iPad

作者:公子 发布时间:February 9, 2011 分类:日常杂事

不解释,传送门:http:/PageCookery.tk 安装地址:http://goo.gl/pkW14 image

PageCookery:为照片墙增加灯箱和透明效果

作者:公子 发布时间: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什么的都不要,各种给力。于是我就这么的悲催了image