为你的PageCookery制作网站挂件(增加97版的支持)
提醒:本文最后更新于 5608 天前,文中所描述的信息可能已发生改变,请谨慎使用。
之前写过一篇为你的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_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>
</pre>
badge.php文件源代码(适合97版本以前的PageCookery【不包括97版】):
<pre class="brush: 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]*$",$_GET['mount'])){
$sql='SELECT * FROM entry ORDER BY time DESC LIMIT '.$_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_username_by_id($item['userid']) . '</span>';
echo ':';
echo hFormat::ParseBBCode( htmlspecialchars($item['content'],ENT_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版】):
header('Content-Type:application/javascript;charset=utf-8');
require_once("global.php");
if (!isset($_GET['mount'])){
$_GET['mount']='10';
}
echo "document.getElementById('pagecookery').innerHTML='";
if(ereg("^[0-9]*$",$_GET['mount'])){
$sql='SELECT * FROM entry ORDER BY time DESC LIMIT '.$_GET['mount'];
$entry = $db->query($sql)->result_array();
echo '<style type="text/css">#pagecookery img {display:none;}</style><ul>';
foreach($entry as $item){
echo '<li>';
echo '<span clss="entry">' . get_username_by_id($item['userid']) . '</span>';
echo ':';
echo Format::ParseBBCode( htmlspecialchars($item['content'],ENT_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 '这里没有你要的东西呢';
}
echo "';";
站外引用的代码|在"您的PageCookery地址+/widget.php"文件中有!
<div id="pagecookery"></div>
<script type="text/javascript" src="您的PageCookery地址+/badge.php"></script>
明眼人都看出来了吧,其实widget.php可有可无的,方便大家而已!
46 评论
[…]本文主要参考:http://imnerd.org/make-a-pagecookery-widget-for-your-website-new.html[...]
貌似不支持9.9版本吧?我按照这个方法做了,一直提示
求解答~~~
@山姆
额,不好意思,因为在文章中直接引用代码带来的转义上的错误,导致了代码的无法运行。现在已经将代码托管到Gist上去了,并实测可运行,请放心使用。
请问你文章头的播放器是怎么弄的啊··还有歌词显示 好强大
@shaun
亦歌播放器.谁用谁知道!哈哈!
恩 那个播放器的样式也能自定义的吗 我看你的播放器好像不同呢
@shaun
应该是可以的吧.我这个是插件的,插件里头可以设置
博主,请教个PageCookery问题,PageCookery是不是不支持数据库前缀?如data_PC
是的,目前是不支持的
判断是否为合法的数值0-9那句后面的echo段
单独声明一个变量装在并拼合字串,
OR,
使用混合输出
?>
好东西,收下
都是大神级别的。 电脑小白痴的我完全一片空白。
又换主题了orz话说这次文字和背景颜色好接近看着好累orz
这个不错。
:8 前来马克 真有用~~