Posts Tagged ‘PageCookery’

终极同步大法

星期四, 四月 8th, 2010

随着微博的热门,已经有很多的微博程序纷纷出现了,而我们该如何挑选这些微博程序呢?首先我们要考虑的是选择单用户还是多用户的。但是如果像我这种注重功能的人,可能第一个想到的是它的同步功能如何?今天就介绍一种方法,为你的PageCookery的同步功能做拓展。

这里主要是利用了月光博客制作的GAE同步程序制作的一个针对PageCookery的简易教程。总所周知,Twitter现如今是微博界的老大,虽然被G.F.W了,但是仍然不能阻挡它的光芒!我们可以利用Twitter这个跳板,将其他地方的消息同步到Twitter中,同时也可以利用Twitter的多方式发布消息将自己的消息发布到Twitter中,然后将Twitter的消息同步到别的地方去!而月光的这个GAE程序就能够实现将Twitter的信息分发到各大微博网站去,包括新浪微博/嘀咕/网易微博/9911/51follow等等微博门户。而PageCookery微博程序又提供了对嘀咕的双向同步,而且也提供了RSS导入这么一个极佳的功能。

有人可能会说了,为什么我不直接用Twitter的RSS导入到PageCookery来呢?这是因为直接导入RSS的话,会有很多的RSS垃圾产生,比如你@别人的消息,以及RT别人的消息也都会同步过来,这个还算是小事,重要的是Twitter的RSS格式包括了用户名,所以每次导入Twitter的消息时都会带上”username:”这样的前缀,让人看起来甚是不爽,所以我们要对RSS进行过滤!而月光博客的GAE同步程序也正是做到了这一点。在此,要感谢月光博客为我们带来了这么好的一个工具。而且,利用GAE的高效工作性,我们基本能够实时的同步我们的消息到PageCookery中(我说的是几乎)……

好了,优点讲完了就改说怎么捣鼓了,首先呢,你要有申请一个GAE,如果有,则可跳过此不,如果没有,请参照如何申请GAE

申请好GAE并成功建立一个项目之后,我们要做的就是将月光博客的GAE程序给下载下来,下载方法,使用TortoiseSVN检出这个SVN地址,然后,编辑 app.yaml,修改为自己的appspot应用名,接着,修改twitter.py文件的最后一行,将自己的Twitter用户名填入,修改从 ret = send_sina_msgs(“username”,”password”,text) 语句开始的 username 和 password ,将相应微博客的用户名和密码分别填入,不需要同步的服务请使用#号注释掉,cron.yaml文件里是计划任务设置。至于如何使用TortoiseSVN下载,请参考:教你如何用SVN下载源码

千万不要忘记,记得修改最后一样你要同步的Twitter帐号!编辑保存后,我们就可以把程序上传到GAE主机上去了,至于如何上传么,请参考:如何上传文件到GAE
image

好了,前半部分工作就做好了,下面我们就要做另外一部分工作了,现在假设你将Twitter上的信息同步到了嘀咕,由于PageCookery的嘀咕同步有个限制,就是嘀咕没有认证的API(也就是嘀咕页面消息显示是来自API)的消息PageCookery是不会同步过来的,所以我们只能通过RSS导入的法子,获取嘀咕微博的RSS地址,然后导入过来就可以了。(不能使用RSS导入功能的童鞋表示灰常抱歉了。)有人说了,如果我填写的是新浪微博的帐号怎么办?恩,我们知道新浪微博还没有开放RSS功能,不过这个也不要紧,http://imnerd.org/sinarss.php+”你的ID号”就是你的RSS地址了,这里要再次感谢月光博客提供的程序,有需要的也可以去他博客下载哦~~

其实个人认为吧,我们应该能从月光的GAE程序中直接获取到RSS地址的,那么就可以直接导入进PageCookery了,而不用使用其他微博做跳板了,只是python实在不是很了解,就没心思看他的代码了,希望有心人能够发现啊,呵呵~~最后就讲讲这个同步的时间问题,从Twitter同步到嘀咕等微博网站的时间是可以设置的,最短可以是1分钟(修改地方在cron.yaml文件最后一行的every * minutes,将*换成同步间隔时间即可),基本上可以做到实时同步,然后是嘀咕等RSS同步到PageCookery,经过我的初步观察,最迟15min~20min应该会同步过来的,如果没有同步过来的话我就告诉你一句:反正迟早的事,何必这么焦急呢,呵呵!

最后要提醒大家一句,请注意不要开启对某个微博的双向同步,一面发生消息同步死循环的状况……到时候估计删消息会删的你手软的!哈哈!

开放你的PageCookery注册功能

星期一, 四月 5th, 2010

大家都知道,现在的PageCookery的注册功能还很闭塞,只能够管理员通过后台添加用户,而不能够让用户自主添加,今天我给出更改方法,能够让其他人自己添加用户!
先我放上一个预览地址吧,我就拿我的似水流年开刀了,呵呵,预览地址:http://lizheming.cn/?act=login
首先我们要在template文件夹下新建一个模板,重命名为”register.html”/*名字可随意*/然后将如下内容添加到里面去:

{template header}
 
<div id="main" class="prefix_edit">
 
<h2 class="nav_title">新增用户</h2>
 
<form action="?act=register&amp;do=add" method="post">
 
用户名: <input class="input_message w150" name="username" type="text" /> 密码: <input class="input_message w150" name="password" type="password" /> <input class="image_button_submit" type="submit" value="新增用户" />
</form>
 
{template footer}</div>
代码我就不讲解了,其实就是拷贝了下users.html里面的部分代码而已,然后我们要打开根目录的index.php文件,在大概倒数第七行的位置,也就是在最后面一个if语句前的一个结束符号”}”之前/*这话讲的我自己都晕了*/加上如下代码:

case 'register':
if ($_GET['do'] == 'add' AND $_POST['username'] AND $_POST['password'])
{
$check = $SQL->QueryRowsArray("SELECT id FROM user WHERE username = '" . Format::Safe($_POST['username'], true) . "'");
if ($check['id'])
{
Helper::PrintJavaScript('alert(\'已经存在名为 ' . Format::Safe($_POST['username'], true) . ' 的用户.\'); window.location = \'' . $_SERVER['HTTP_REFERER'] . '\'');
}
$SQL->Insert('user', array('username', 'password'), array(Format::Safe($_POST['username'], true), Format::Safe(md5($_POST['password']), true)));
Helper::PrintJavaScript('alert(\'很高兴的通知您,你在 似水流年 上成功注册了' . Format::Safe($_POST['username'], true) . ' 此用户.\'); window.location = \'' . $_SERVER['HTTP_REFERER'] . '\'');
exit;
}
$title = SITE_NAME . ' - 用户';
$template=& new Template('register',NULL,'register');
break;
保存之后,你的PageCookery地址+”?act=register”就是公共注册地址了,那么你需要的就是在登录页面添加个链接到这个页面的链接就行了,当然,你也可以直接在最上方的管理旁边添加,这里我就都给出相应的代码吧,先是在管理旁边添加注册链接。先打开template/header.html文件,然后搜索”管理”二字,将如下代码复制替换掉那一行的代码:

 
 <li><a href="{$base_url}"
 <!--{if ($current == 'blog')}--> class="selected"
 <!--{/if}-->>网 志</a>
</li><li><a href="?act=register">注 册</a></li>
<!--{if ($sync['api']['username'])}-->
<li><a href="http://<!--{if ($sync['api']['type'] == 'jiwai')}-->jiwai.de<!--{else}-->digu.com<!--{/if}-->/
<echo>urlencode($sync['api']['username'])</echo>/" target="_blank">
<!--{if ($sync['api']['type'] == 'jiwai')}-->叽 歪<!--{else}-->嘀 咕<!--{/if}--></a></li>
<!--{/if}--><!--{if ($Own['lastfm'])}-->
<li><a href="?act=music"<!--{if ($current == 'music')}--> class="selected"<!--{/if}-->>音乐墙</a></li>
<!--{/if}--><!--{if ($flickr['feed'])}-->
<li><a href="?act=photos"<!--{if ($current == 'photos')}--> class="selected"<!--{/if}-->>照片墙</a></li>
<!--{/if}-->
代码依旧不解释了,大家仔细看看就知道增加了什么了。然后是在登录页面加入注册链接,打开template/login.html页面,搜索”登录”二字,将如下代码复制替换掉该行即可:

<div style="text-align:right"><input type="submit" value="登 录" class="login_submit" /><a href="?act=register" class="login_submit">注 册</a></div>
恩,这样大家就可以完成公开注册的方法了,其实就是将注册的那些文件搬到了程序判定外面来了而已。也就是说,不能填写照片墙,不能填写音乐墙等资料,包括RSS导入功能也不能使用,因为这些都是管理员才能有的。

PS:最后再说一声,谁知道比较好用的代码高亮插件?现在用的这个太挫了……

为你的PageCookery制作博客挂件

星期三, 三月 31st, 2010

由于本文所出现的代码不知道怎么搞的,总是跟代码高亮插件作对,搞的我的博客面目全非,没办法,就只好先放到Google Docs上面去了,请大家谅解一下啊……
正文请看:传送门
最后,再次为给大家带来的不便表示深刻的道歉!希望大家能够互相体谅……
注:如果地址不能访问的话请在http后面加s试试,如果还不行请使用Freegate翻墙阅览,当然,你也可以留下您的邮箱,我会无偿的将文章以电子邮件的形式发送给您的……

给你的PageCookery增加友链页面

星期六, 三月 27th, 2010

真是不好意思啊,好不容易写篇文章结果还是回到教程上来了,呵呵,没办法啊!再不发我就憋死了,嘻嘻…这次的友情链接页面也可以扩充出来作为跟随和关注页面的说!不过比较可惜的是手工能力要好强大才行,本来是让某人根据这个写一个数据库版本的,结果他个死人的忙打游戏去了……so,期待强人帮忙修改啦~~

注意,使用本方法新增友情链接页面的话首先必须要他们利用站外引用微博客最新消息这篇文章的方法在根目录添加了api.php文件,而且你的博客也必须按照上述方法添加了read.php和api.php这两个文件才行!/*如果你不需要显示链接的最新消息的话则不需要上述条件!*/

首先,你要打开你的read.php文件,在第8行左右/*或者是第一行之后*/

define(P2_PATH,'http://imnerd.org/mblog/'); // please change to your P2 path, remember the ending slash.
define(P2_PATH_1,'http://yuensan.cn/mblog/');
我先来解释一下代码,P2_PATH这个是一个定义的变量,名字你可以随便取!后面则跟的是你要添加的微薄网址/*一定要对方的微博根目录有api.php文件才有效!判断是否有访问其地址+“/api.php”即可!*/这里要注意的是一定要以”/”结尾!这里我添加了两个作为示例!如果你想要添加更多,只要复制出新的一行即可!
然后在最后一行之前添加如下代码:
function readit()
{
$request = P2_PATH.'api.php';
$result = pcurl( $request );
if ($result) return $result;
else return false;
}
function readit_1()
{
$request = P2_PATH_1.'api.php';
$result = pcurl( $request );
if ($result) return $result;
else return false;
}
依旧是解释一下代码,这里是定义一个函数来读取最新消息的,function后跟的如readit之类的是函数名称,这个可以随便取,只是后面调用的时候要记得也跟着改!我这里就解释一个fuction吧,$request后面跟着的是对方api.php的地址,P2_PATH则是你在上面定义的对方博客的地址的变量/*这里的变量名称和你上面定义的变量名称一定要对应起来!*/如果你还要调用更多的博客的话只要复制function到”}”之间的代码重新编辑下即可!如我代码示例所示!

然后呢你要在/template文件夹下新建一个页面,名称为”follow.html”/*名称可以任取,保证后缀是.html即可!*/然后复制如下代码到文件中:

{template header}
 
<div id="main">
 
<div id="entry" class="link" style="margin-top: 20px;">
 
<div class="lavatar">
  		<a href="http://yuensan.cn/mblog/" target="_blank"><img src="http://yuensan.cn/mblog/?act=getavatar" alt="" /></a></div>
 
 
<div class="linkentry">
  		<span><a href="http://yuensan.cn/mblog/" target="_blank">AsiMo:</a></span>
  		  < ?php 
  		    require_once("read.php");
  		    echo readit_1();
  		 ?> 
</div>
</div>
 
 
<div id="entry" class="link">
 
<div class="lavatar">
  		<a href="http://imnerd.org" target="_blank"><img src="http://imnerd.org/mblog/?act=getavatar" alt="" /></a></div>
 
 
<div class="linkentry">
  		<span><a href="http://imnerd.org/mblog/" target="_blank">公子:</a></span>
  		  <content>< ?php 
  		    require_once("read.php");
  		    echo readit();
  		 ?></content>
</div>
</div>
</div>
 
 
{template footer}
下面先给大家解释下代码,总体分两个div,我只要解释一个大家就恩那个明白下面几行的用处的了!大家看第五行有很多网址是把,前面那个标签里面的则是调用最新消息的代码,readit()是你刚才定义的调用对方消息的函数,这个跟你刚才定义的函数名称是相互对应起来的!然后下面又是一个div标签,内容是差不多的,大家如果需要新增的话只要复制第二个div标签就可以了,也就是16-28行之间的代码!并做相应的修改!
最后就是修改CSS了!将如下代码复制到/css/style.css文件中:
.link {
background:none repeat scroll 0 0 #DFE1E3;
border-color:#E9EAEB #C7CCD1 #C7CCD1;
border-style:solid;
border-width:1px;
color:#000000;
font:12px/22px "Lucida Grande",Verdana,Arial;
padding:8px 10px;
text-shadow:0 1px 0 #FFFFFF;
	margin:auto;
	height:60px;
	width:700px;
}
 
.link span {
 font-family:Microsoft Yahei;
 font-size:14px;
 padding-left:10px;
}
 
.lavatar {
float:left;
}
 
.linkentry content{
margin-left:20px;
font-size:14px;
font-family:Mirosfot Yahei, Microsoft Jhenghei;
}.link {
background:none repeat scroll 0 0 #DFE1E3;
border-color:#E9EAEB #C7CCD1 #C7CCD1;
border-style:solid;
border-width:1px;
color:#000000;
font:12px/22px "Lucida Grande",Verdana,Arial;
padding:8px 10px;
text-shadow:0 1px 0 #FFFFFF;
	margin:auto;
	height:60px;
	width:700px;
}
 
.link span {
 font-family:Microsoft Yahei;
 font-size:14px;
 padding-left:10px;
}
 
.lavatar {
float:left;
}
 
.linkentry content{
margin-left:20px;
font-size:14px;
font-family:Mirosfot Yahei, Microsoft Jhenghei;
}
这个是我的样式代码,但并不一定能通用,所以大家可以根据自己的需要做相应的修改~如果不会改的也可以留言给我,只是不能保证及时回复哦!但是知道的我会尽量回答的啦……
最后的最后,就是要添加链接按钮咯~不过别急,还有一项准备工作要做,打开根目录的index.php文件,拉到最后,从后往前看到第一个“break;”字样的时候,在后面添加如下代码:
	case 'follow':
	$template =& new Template('follow', NULL, 'follow');
	$title = SITE_NAME. ' - 我关注的人';
	break;
再来解释代码,第一行的follow是链接调用用的,比如这里填写的是follow的话,链接页面的地址则为”你的微博客地址+‘/?act=follow’”,一般设置为你建立的HTML文件一样的名字,第二行的两个follow没怎么改过,一般跟你新建立的HTML文件名字一样,第三行是定义你的页面的标题/*浏览器标签中显示的标题*/,添加完后记得保存文件。
最后就是添加链接按钮了!打开/template/header.html文件,大概在232行处/*如果你没改动的话*/你会找到“网志”“叽歪”“嘀咕”“音乐墙”“照片墙”等文字,那一行最后那个”< / ul>“标签之前添加如下代码:
	<li><a href="?act=follow"><!--{if ($current == 'follow')}--> class="selected"<!--{/if}-->>友链</a></li>
最后一次解释代码,href=后头跟随的是你友情链接页面的地址,地址的话在上面我已经讲过了,这里就不重复了,友链是显示的文字,这个根据自己的喜好改吧!最后保存文件,大功告成!

这样,我们就为我们的PageCookery添加了一个友情链接页面,而且该友情链接页面还可以显示对方的最新消息,果然是相当犀利啊!哈哈啊哈哈哈!不过确有两点是美中不足的:一、必须要对方有api.php文件才能读取最新消息;二、添加新的地址必须要更改一大堆文件/*具体为read.php添加新的函数用以读取对方最新消息,follow.html页面添加新的链接!*/;其实还有一个不足的地方就是不够智能,纯手动的,别人友情链接了你但是你只能手动的添加别人的链接,并不能在一个新的页面中显示有谁添加了你!这个是美中不足的地方,不过相较来说,这个还是个很不错的方法的!起码我们享受到了DIY的乐趣啦!

PageCookery 繁化版

星期一, 二月 22nd, 2010

欢迎大家使用公子繁化的PageCookery程序,如果有什么疑问,可以在下面留言,或者IM/Email我,我的联系方式在About页面可以查到。

PageCookery程序介绍:

PageCookery是一款值得中国人骄傲的国产优秀微博客程序。

采用了Plurk的谓语模式,可以为自己发布的内容添加分享、说、推荐、喜欢、讨厌、爱等等,并 且谓语动词还可以自定义的(自定义的谓语动词,需手动编写CSS代码为其设置颜色)。

并且PageCookery上 的日志内容都是可以允许匿名评论的,这也为这个单用户微博增添了一些互动功能。

可以同步导入和更新嘀咕和叽歪内的消息,利用这个我们可以实现 IM( QQ/MSN/Gtalk ) / 手机 / 博客导入 / JAVA程序等等方式编写微博客上的消息。

同时,新版本还支持RSS导入,我们可以把博客的RSS导入到微博客里面等等……

新版本支持管理员创建用户,是一款功能强大的半开放式的多用户微博客程序。

官方网站:http://pagecookery.com

官方讨论组:http://groups.billwang.net/223/

示例站点:http://imnerd.org/mbloghttp://lizheming.cn

PageCookery 繁体版程序介绍:

记得以前在PageCookery的讨论组有人要PageCookery的繁体版,偶开始还以为挺容易的,后来发现PageCookery的TinyMCE编辑器的中文都用Unicode转码了/当时只道是编译了,无从下手,就没进行繁化工作了/。昨天跟苏洋聊天的时候问了下WP这个默认主题sidebar的行标怎么去除,结果发现既不是用list-style-type,也不是用list-style-image,结果是直接写了个字符上去,而这个字符就是转码了的,慢慢就聊到这里来了,顺手就让他按照我的意思帮忙做了一个Unicode编译/反编译程序(其实就是一个网页),然后今天偶由于天助,花了一个下午的时间繁体了PageCookery的最新版本。编译程序我过两天在重新开篇日志写出来,主要是因为苏洋同鞋说了页面不好看,偶承诺过要美化一下的,嘿嘿~网上也有很多转码网站的~

回到正题,这次的汉化主要在编辑器下了点功夫,但功夫你有看不到,因为偶把TinyMCE附带的插件里面的中文也繁体了,反正只要是中文的地方基本都被偶繁体了一遍~嘿嘿~甚至连程序的Changelog和README两个文本文件偶都有繁体哦!当然这是请谷歌大神帮的忙了~呵呵。另外还有一个修改就是去除了第一篇消息内的广告……不要问偶为什么会有广告,偶也不清楚啊……偶讨厌广告~

由于这次改动的文件比较多,这里就不一一列举了,大概是如下几个文件夹内的文件:

/javascript/tiny_mce

/sql/install/database.sql

/template

/config.php

/httprequest.php

/index.php

主要修改:

1. 对程序所有中文进行繁体化;

2. 对程序默认的谓语进行繁体化;

3. 对程序的说明文档和更改历史进行繁体化;

4. 去除安装后第一条消息的广告;

下載地址:

PageCookery 0.7.1 繁体去广告版: 下載一下載二

友情提示:如遇到压缩包需要解压密码的,密码一律为 “http://imnerd.org”(不包括引号!)

特注:此繁化版可修改,可传播,可共享,但怡红公子对此汉化版本享有最终拥有权,由于只是对原版程序进行繁体化,所以由于此程序所造成的一切损失与本人无关。