Monthly ArchiveJuly 2007



Google & Wiki qienkuen on 13 Jul 2007

将Google日历嵌入到Mediawiki

Current Mood:Bored emoticon Bored

最近在把“教育会议日历”添加进Google日历中与大家共享--这里要感谢翻译和审校“教育会议日历”的同志们 :-) 因为内容过于庞大,本月15号之前只把2007年度的会议放上去,做成一个Beta版,2008年的稍后上菜。同时,我用到的是Google Apps中的calendar。(广告时间:想试用Google Apps的朋友,可以试着申请下周五论坛的邮箱用)

原打算只在教育中文翻译主站嵌入日历的,想想既然在推wiki,何不在此也添加一下呢?

将Google提供的HTML代码直接放入Mediawiki的做法是行不通的。我尝试着直接将代码放入页面,不行;创建一个模板来放置也不行!于是开始找插件。用中文搜索时,我只找到一个不是很健全的插件,并且不是为Google日历做的,而是在Mediawiki中实现日历功能。果然老天不负有心人呐,找到了专门为嵌入Google日历而做的Mediawiki插件,一步步说来:

  • 一、先创建一个叫googleCalendar.php的文件,文件里放进如下代码(这代码不能直接用)
    <?php
    # Google Calendars
    #
    # Tag :
    #   <googlecalendar>docid</googlecalendar>  
    
    # Ex :
    #   from url http://calendar.google.com/calendarplay?docid=6444586097901795775
    #   <googlecalendar>6444586097901795775</googlecalendar>
    #
    # Enjoy !  
    
    $wgExtensionFunctions[] = 'wfGoogleCalendar';
    $wgExtensionCredits['parserhook'][] = array(
    'name' => 'Google Calendar',
    'description' => 'Display Google Calendar',
    'author' => 'Kasper Souren',
    'url' => '/wiki/Google_Calendar_MediaWiki_plugin'
    );  
    
    function wfGoogleCalendar() {
    global $wgParser;
    $wgParser->setHook('googlecalendar', 'renderGoogleCalendar');
    }  
    
    # The callback function for converting the input text to HTML output
    function renderGoogleCalendar($input) {
    $input = htmlspecialchars($input);
    //$input = "6444586097901795775"  
    
    $width = 425;
    $height = 350;  
    
    $output = '<iframe src="http://www.google.com/calendar/embed?src=g43t277um81su1tjvgvah609qk%40group.calendar.google.com&pvttk=db8cdde758254dbe5a511723cac5da46&title=CSC-NZ&chrome=NAVIGATION&height=600&epr=4" mce_src="http://www.google.com/calendar/embed?src=g43t277um81su1tjvgvah609qk%40group.calendar.google.com&pvttk=db8cdde758254dbe5a511723cac5da46&title=CSC-NZ&chrome=NAVIGATION&height=600&epr=4" style=" border-width:0 " width="480" frameborder="0" height="600"></iframe>';
    $output = '<iframe src="http://www.google.com/calendar/embed?src='.$input.'&title=CSC-NZ&chrome=NAVIGATION&height=600&epr=4" mce_src="http://www.google.com/calendar/embed?src='.$input.'&title=CSC-NZ&chrome=NAVIGATION&height=600&epr=4" style=" border-width:0 " width="480" frameborder="0" height="600"></iframe>';  
    
    /*  
    
    $output = '<embed style="width:'.$width.'px; height:'.$height.'px;" '
    .'id="CalendarPlayback" type="application/x-shockwave-flash" '
    .'src="http://calendar.google.com/googleplayer.swf?docId='
    .$input.'" mce_src="http://calendar.google.com/googleplayer.swf?docId='
    .$input.'"> </embed>';
    */
    return $output;
    }
    ?>

    你需要对代码做本地化工作,才能让它显示你想要的效果。这个下面具体说。

  • 二、将这个googleCalendar.php文件放进wiki的extensions/目录下。
  • 三、在LocalSetting.php文件末尾添加这样一行: require_once('extensions/googleCalendar.php');

这算是“安装”完成,下面来看本地化如何做:

  • 一、将上面代码中的“input = "6444586097901795775"”改成你自己日历的ID。这个ID是什么呢?就是Google给你的那段儿代码中,src=后面,;title前面的那一部分,注意不要漏掉任何一个字符哦!
  • 二、把接下来的width、height换成和你设置的宽度、高度一样的数值,不然将按照这个默认的来显示。
  • 三、把第一段$output=后面<iframe></iframe>的内容,换成Google日历提供给你的内容。

本地化工作就是这些,怎么让它显示出来呢?

你看这个插件作者在代码开头的注释中其实已经说清楚了:
<googlecalendar>6444586097901795775</googlecalendar>
你发现没?就是在googlecalendar这一组标签的中间,放入input后的ID就可以了。

另外,我发现个问题,这里只能显示一个想要共享的日历,如果想要在wiki中共享很多日历呢?这个ID怎么变?等我试好了再写吧。

以上效果演示地址:http://edu2do.com/wiki/教育会议日历

Education2.0 qienkuen on 02 Jul 2007

带头将翻译平台转到Wiki上

Current Mood:Esctatic emoticon Esctatic

教育中文翻译的Wiki算是正式开始投产了!除了一些细节需要慢慢做以外,现在其实已经完全可以作为我们日常翻译协作、知识积累、甚至事务商讨的平台。当然,所有这些都必须建立在志愿者同志们会用Wiki的基础上。--现实是:国内的学习者对Wiki的应用远远比不上Blog,这可能和“共建”有很大的关系,因为我感觉所谓的“技术”门槛差不多高,甚至Wiki比Blog要省事儿很多。

为了下大力气建设Wiki,和danny聊天后我们决定,把OLDaily中文版的翻译放在Wiki上进行,虽然OLDaily中文版的翻译工作不需要太多的志愿者一起进行,由于多方面的因素。我一直在考虑如何让志愿者同志们可以很快的从心理上和应用上都接受Wiki,这是件难事儿,因为我正在某方面改变人家的上网习惯。最基本的编辑教程、页面讨论教程都已经有了相对完整的词条,但如何体现其“协作翻译”与“知识积累”呢?作为目前主要负责技术的翻译者,我必须首先自己带头在这里翻译,以至协作翻译。当然,这还是我一直在说的“样例”,也就是要为不熟悉甚至没听说过Wiki的同志们做一个例子出来:不光是编辑语法方面的例子,我觉得更应该是心理接受的例子。

前天我创建了第一个“教育新词汇”词条“电子民主”,等着farah和其它同志来完成它的剩余部分:-)。我带头完善了自己在此Wiki的个人页面个人页面讨论,希望可以在不久的将来,Wiki的事儿就Wiki讨论,不用再不停的email了。--Wiki中的讨论是完全公开的,这样对于群体智慧的发挥也是有好处的。

刚才我把很早就认领翻译的两篇文章从Google Docs中转到了Wiki上,并将在这里完成(或者协作完成)这两篇文章的翻译。其实转到这里的原因比较多:
1、最近电脑分辨率让我恶心,实在不忍对着Google docs。

2、放在Wiki上,带头来做Wiki翻译与协作翻译。

3、我可以在不能用电脑的时候,用手机上的opera mini浏览器浏览Wiki。

有这么多的理由要转到Wiki来翻译,为什么不呢?并且我还是个SWG :-P

正在翻译的两篇文章分别是:

Tips On Developing A Wiki Community

Online Collaboration Tools:Cost-Effective Solutions For Online Teachers

有兴趣的朋友,你也可以加入一起来翻译哦,这两篇文章很长,但我想会对你很有用的。

« Previous Page