BB’s Blog:本博近期关注 中国移动、电影、电视、手机软件.
perl.exe 问题小记 2007-05-30 | 本文链接
最近进程中老出现 多个perl.exe 。以前也会出现这种情况,但一般都是在被垃圾引用攻击的时候,而现在只要打开MovableType后台就经常出现多个perl.exe,致使服务器内存大量使用、CPU一直过高。 1、我起初怀疑通过ZIP安装的PERL 会导致了该问题,于是今天特地重新安装了官方推荐的5.81 的版本(.mis版),可还是出现PERL.exe大量生成。 2、郁闷了,现在只能先限制应用的最大内存,当PERL.exe 数目一多自动回收,不过好象没什么作用。 3、我发现出现大量perl.exe 一般是因为服务器页面卡死导致perl.exe 中断,自动启用新的perl.exe。想起每次使用MT如果打开卡巴斯基,重建速度就非常慢,而服务器重做后安装了个杀毒软件,于是我把杀毒软件删除了,结果还是不行。 4、我整理了目录权限,并再开了个应用池进行测试,结果发现重建的时候数据库CPU很高,怀疑是MYSQL数据库出现问题。最终我放弃了重装MYSQL的决定,因为感觉不太象。 5、我整理了插件,感觉可能是插件的问题,可也没效果。 6、最后发现一用户的池很怪异,经常出现高CPU 我怀疑是他导致数据库卡住,然后数据库导致perl.exe 卡住,因此会出现大量的perl.exe。现在在关闭了那个池,正在测试中(也不是)。 问题解决了,好象和目录权限有关系。我将目录权限还原为系统默认(只给最基本的权限)就正常了,具体原因我也不清楚,好了就好。 现在偶尔还是会出现多个perl.exe,应该是一些机器人搞的鬼,如:批量搜索(我暂时关闭搜索功能)。不过比以前好很多了,大家有什么能控制perl.exe 数目的好方法可以回复本文,谢谢先。 为了本站更稳定,我的博客将在7月搬到CBN合租的服务器上。这样可以多个空间备用,有事也好通知。
分类:搭建 Install | 作者:bb | 评论(2) | 引用关闭 | Add to del.icio.us | 更多操作...
通过robots.txt文件保护MovableType后台 2007-05-24 | 本文链接
Movabletype 如果经常调用cgi 页面,会让服务器负荷增加,特别是在WIN主机中以perl.exe 方式运行的时候(一个cgi页面就会产生一个perl.exe,占CPU约20%)。因此我们应该设置搜索引擎无法收录后台.cgi的页面,使服务器得到最合理的利用。 并且控制后台cgi 页面的收录,对防止spam也有好处。我建议小型BSP都应该合理的使用robots.txt文件,来控制通过搜索引擎近来的spam 机器人(OBLOG中最好设置reg.asp页面不被收录)。 那么如何禁止搜索引擎收录MT后台页面呢? 您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被robot访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜索引擎只收录指定的内容。 robots.txt文件用法可参考此文。 当然控制搜索会带来流量的减少,比如在通过cgi 页面实现的TAG,SEARCH 功能都将无法被搜索引擎收录。 我觉得作为Blogger 没必要对这种流量看的太重,搜索引擎只是为大家提供有用的信息,这些TAG、SEARCH 只是将你的文章进行汇总,主要功能是文章联系便于读者阅读,其本身并没太大的收录价值。并且这些TAG、Search 只会和你被收录的文章重复,从某个程度减少文章的搜索量。
分类:搭建 Install | 作者:bb | 评论(1) | 引用关闭 | Add to del.icio.us | 更多操作...
在IIS ISAPI ReWrite下的TAG 美化规则 2007-05-22 | 本文链接
我改了下movabletype 的TAG,其规则为: RewriteRule /tag/(.*)/ /mt-search\.cgi\?tag=$1&blog_id=1 我建议去掉后面的&blog_id=1,向我这种独自使用MT的人来说全站是TAG一样的。 然后将所有模中的 <$MTTagSearchLink$> 替换为 <$MTCGIPath$>tag/<$MTTagName$> 效果见本站首页的TAG,ISAPI ReWrite的具体安装请看此文。
分类:搭建 Install | 作者:bb | 评论(2) | 引用关闭 | Add to del.icio.us | 更多操作...
域名、PR心得记录 2007-05-22 | 本文链接
1、域名购买 性价比最高的方法:是到二级代理商那注册,但一定要先确实他们能否提供转移密码,如果能提供转移代码你就可以注册。一般首年价格在40块左右,但第二年价格会上调10元内浮动。你可以选择时机将域名转移到一级代理商那,转移服务一般是免费的,但是要求你续费一年(当然你可以续费9年后转移,这样省钱)。当然你可以直接在新网互联一级代理商那购买域名,一般一级代理价格为50元左右,并且后台能够直接设置在新互的转移密码。10月.com .net域名价格将上调,建议大家现在就续费域名。 2、网站PR 有个网友PR值突然间达到了5,一般这个时候人就会很HAPPY到处绣。其实PR值很容易做到的,网站中子页一般比主页PR少1,当然也有可能相等。也就是说如果你有个高PR的站,你如果想发展其他域名的PR,只需要在同台服务器中做个站,并在原来高PR的站点中放在该站的链接,那么新站的PR很有可能和原来高PR站持平。如果你没有高PR的站,你可以在国外有名的主机商那合租个空间,然后和同台服务器中高PR的网友换个连接。申明本人对PR不感冒,只是在这里介绍下方法,解开一些人的“迷惑”。心得而已,没找理论支持。
分类:网络 Internet | 作者:bb | 评论(1) | 引用关闭 | Add to del.icio.us | 更多操作...
FeedBurner已推出中文版 2007-05-19 | 本文链接
Feedburner.com 终于推出中文版本了。 大家只需要登陆Feedburner,进入languages选择“汉语 (beta)”,即可第一时间转化为中文版本。不过翻译的质量一般,并且有一小部分页面还未完全汉化。 这次feedburner 中文化一定会引来很多中国新用户的关注,具我了解,大部分博客新手最先都会选择FEEDSKY的烧录服务,其主要原因是FEEDSKY的中文后台方便管理。同时这次feedburner中文版的推出一定会给FEEDSKY带来冲击,希望这种良性竞争能让FEEDSKY 改善烧录文章更新的速度。 真怕这次feedburner中文化的推出,让GFW有所关注。毕竟通过国外烧录的FEED 来阅读文章是突破GFW的一有效手段,如果GFW将feedburner卡了,我们这些用户就麻烦了。 还有一则消息说:Google可能会收购feedburner,收购价格为1亿美圆。就我个人而言,我很不希望feedburner 被google 收购,如果被google收购将促使feedburner 影响力扩大,这将很有可能导致feedburner 和blogger.com一样被墙。 日本人有feedburner.jp,什么时候我们也能有自己的feedburner.cn,呵呵。 BTW: 介绍一个刚出炉的烧录站 http://flickrvision.com/ UPDATE:Google收购FeedBurner的传言已经被确认。交易的金额为1亿美元左右,交易方式为现金。
分类:网络 Internet | 作者:bb | 评论(2) | 引用关闭 | Add to del.icio.us | 更多操作...
Image::Magick 模块的安装 2007-05-19 | 本文链接
Movable Type系统需求检查 [mt-check.cgi] 中你会发现一个Image::Magick 可选模块,这个模块主要用于图片的自动略缩。 下面我简单介绍在下该模块在WindowsXP、Windows2000,以及Windows Server 2003的平台下安装的方法: 1、登陆ImageMagick组织的网站。 2、进入网站后,选择Binary Release 的Windows 部分 3、下载相关可执行文件,一般选择windows-dll.exe文件 4、点击安装,安装时一定要选择Install PerlMagick for ActiveState Perl v5.8.8 build819。这样安装过程中会自动安装Image:Magick模块,省去用命令安装Image:Magick模块的麻烦。 注:如果你的ActiveState Perl 版本不是ImageMagick 所选择的,你也可以安装,该程序会自动根据ActiveState 版本安装。 5、马上重启服务器(必须),否则无法使用,并且可能让PERL负荷增加。
分类:搭建 Install | 作者:bb | 评论(0) | 引用关闭 | Add to del.icio.us | 更多操作...
Perl 安装记录 2007-05-18 | 本文链接
前天服务器重新架设了下,当安装完所有的程序后发现ActivePerl 无法安装,显示的错误提示是: There is a problem with this Windows Installer package.A program run as part of the setup did not finish as expected.Contact your support personnel or package vendor. 我使用的是 ActivePerl-5.8.6.811 版本,因为我个人比较习惯使用PPM3命令形式来安装模块,所以一直在使用这个版本。显示该错误其实后,我最先怀疑的是这个.mis安装包的问题,于是我下载了最后一版结合ppm3的ActivePerl-5.8.7.815.mis,可还是显示该错误。 以前服务器成功安装过ActivePerl.mis,所以怀疑是系统重建后installer的版本过低导致的,可当我安装installer.31的时候,系统提示主机使用的installer版本是最高的,看来问题不在这里(UPDATE:原来MIS的无法安装的问题是因为服务器ADMIN的权限不足,所以每次到最后一步都无法生成PPM3)。 无奈下我下载了最新版的 ActivePerl-5.8.8.820.mis,可是这个版本使用的是PPM4,PPM4不在使用命令形式,着让我根本不懂得怎样安装模块。无奈下我只好求助google,在ActivePerl 官方论坛里发现也有人出现了该问题。解决方法是使用.zip 格式的ActivePerl压缩包进行安装。于是我卸载了5.8.8版本,安装上了ActivePerl-5.8.7.815。 安装完以后却发现CGI无法使用,显示“无权限访问该页”“IIS配置401错误”,而我在IIS中的设置完全正确,期间我还重装了几次PERL,可还是出现此权限提示。 无奈中我只能面对着服务器发呆,发呆中我发现在该IIS 目录下的PHP、HTML、ASP都正常运行,这让我怀疑是CGI 本身目录权限存在问题。带着疑问我开始在服务器上乱点,无意间我发现一个PERL目录(原先安装的)无法删除,即使重启服务器也仍然无法删除。于是我查看了该目录中的管理权限设置,我将权限设满终于把该目录删除掉了。 这一操作让我心头一亮。我赶紧进入C:\perl 目录查看“属性”“安全”,发现该目录缺少了Users权限(就是GUEST),于是我添加了该Users用户,终于把PERL搞定了。 在这向大家道歉,因为我的学艺不精,让大家18小时无法正常使用博客。
分类:搭建 Install | 作者:bb | 评论(2) | 引用关闭 | Add to del.icio.us | 更多操作...
DBD::mysql 模块的安装 2007-05-18 | 本文链接
首先进入CMD 命令提示符: 输入ppm 进入ppm> 命令提示符 输入i DBD-mysql 系统会自动安装Movabletype所需要的DBD::mysql 数据模块 注:此命令方法只适用于PPM3,PPM4开始使用管理面版,我个人还不太会使用。
分类:搭建 Install | 作者:bb | 评论(2) | 引用关闭 | Add to del.icio.us | 更多操作...
福建电力招聘是在搞世袭 2007-05-13 | 本文链接
工作稳定赚钱,流程简单清闲的电力系统,相信是很多应届毕业生向往的企业。然而2007年电力系统招聘流程却让无数应届毕业生感到失望。失望的不是竞争的公平性,失望的不是这个企业连一个笔试的机会都不提供给那些前来应聘的毕业生,失望的是这种国家资源企业内部控制的混乱,失望的是垄断企业占地为王不思进取的企业文化。 我不遗憾自己未能进入电力系统,因为这种企业本身就不适合我这种有想法的人。我参加福建电力招聘是因为父母的意愿,他们希望我能在厦门拥有一个较为平稳安逸的工作。出于对父母期望的回应,1月份我接到一师兄提供的招聘信息,风尘仆仆的从厦门赶到福州参加他们的人才招聘。那天早上我8点就来到了招聘现场,那天早上当所有公司还在紧锣密鼓的招聘,电力系统就在10点收摊走人,我当时很庆幸自己提前一天就来福州准备应聘。还有一个细节,电力让应聘者自己电话咨询是否有笔试机会,这是我见过企业中唯一一家实行这种应聘方式。我将准备了好的彩色简历投放到他们的简历箩筐,我自信的以为自己能从一箩筐简历中脱颖而出。然而在1星期后我发现那天的招聘只接受电力专业的毕业生的简历,而不接受财务、市场、文秘、综合等专业的投递。那些热门专业全部只有内部子女才能报名,理由是今年职工子女就业形式严峻。 我突然记起那师兄的一句话"这里的发展空间很小"。也许真的是这样,招聘都有如此黑幕未来的工作发展空间更是无法预料。 我没有参加电力的应聘,所以就无法进行评价,据说电力应聘流程也很混乱,有人在福州呆了4天才给了具体面试的时间。这里我介绍下移动的招聘流程,让大家感受下其中一些细节的合理性。移动笔试和面试都分为省内和省外,整个过程安排的很合理,多少分钟笔试什么项目,哪批人归哪些工作人员负责都安排的仅仅有条,考试面试都提前短信+网上通知(笔试面试当晚还会提醒一次)。并且考虑到省外学生春节后要提前回校,移动在春节前就安排了省外学生的体检。而他们内部子女是一同参加笔试面试,据我所知有很多内部子女没有通过第一轮的笔试,当然我不能保证移动的招聘是多么公平,但我能感受到该企业的内部文化,和对人才的重视都值得所有公司学习。 移动应聘的时候给了一个人力资源部、公司内控、顾客服务和财务部相互关系的案例,我当时的观点是只有重视人力资源、财务管理,使公司内控得到完善,促进员工积极性,服务才能提高,利润才能飞跃。我不知道如果我在电力应该怎么回答,满足内部员工的要求,让人力部全面使用内部子女,促使员工团结进取?PS:我这里不是在为移动说好话,只是简单的讲诉自己的一些心得。 我再介绍两家电力系统的招聘细节:一家是河北电力,去年12月的一河北电力的人力部负责人来到厦门大学,他在早上8点通知了学生到教室面试,当天联想也在应聘加上准备期很短应聘的人也不多,他简单的问了学生的家庭情况,说下午赶飞机马上要走人,就随意的选择了四个人。这是今年以来招聘最不正式的一家企业。第二家是广西电网,正式是满正式的,但这家企业完全没有国企的气度。学生因为一些原因决定违约,5000的违约交了,对方却不肯退还协议书,那些同学只能从厦门赶到广西去拿协议书。我知道企业来厦门也花费了很多心思,但请问一学生追求一个更理想的工作有那么多错误吗?至于这样咄咄逼人吗?最终你们的行为让所有的学生都违约了,因为你们不懂得尊重人才。 如果我是电力系统的老总我会为自己拥有这样的人力资源部感到可耻,为自己企业没有任何生机感到可悲。最后引用厦大学生的一句话"福建电力招聘是在搞世袭,没有关系的肯定进不了"。比较晚了,点到为止。让我们在象牙塔中享受最后的自由吧,也许未来的社会会逐渐教会我们。
分类:胡想 Thinking | 作者:bb | 评论(10) | 引用关闭 | Add to del.icio.us | 更多操作...
从Wordpress转移到Movabletype 2007-05-12 | 本文链接
wordpress2.0实现了直接导入Movabletype导出文件,这里向大家介绍个WP插件,让从WP中导出的文件能导入MovableType。 该插件叫 WPexportfor2 ,其支持的导出格式: 1、MoveableType 2、SQL 3、XML 4、Wiki XML 5、WikiXML file WPexportfor2的安装使用方法: 1、下载WPexportfor2并解压到wp-content/plugins目录下。激活以后,在Option中进入Export,即可使用Export功能。 注:如果出现错误提示说 Warning: wpexport_option_page(admin.css): failed to open stream: No such file or directory in /home/dotkunet/public_html/blog/wp-content/plugins/WPexport_plugin.php on line 72 Warning: wpexport_option_page(admin.css): failed to open stream: No such file or directory in /home/dotkunet/public_html/blog/wp-content/plugins/WPexport_plugin.php on line 72 Warning: wpexport_option_page(): Failed opening 'admin.css' for inclusion (include_path='.:/usr/local/lib/php') in /home/dotkunet/public_html/blog/wp-content/plugins/WPexport_plugin.php on line 72 无须做任何处理,这是因为缺少一CSS。 2、将“Export Data”“Export WordPress data in MoveableType (MTimport) format”框中的数据的内容复制出来。 3、新建一个文本文档.txt(推荐使用em editor,不要用记事本),将刚才复制的文本粘贴到文档中,最后保存文件即可。注:保存的时候编码类型一定要选择UTF-8格式(点击“文件”“另存为”在“编码”中可以选择),否则导入的内容会全部乱码。 4、最后使用MovableType 导入该txt文件即可。 同样有了这个插件你可以将wordpress支持导入的博客平台,全部转换为MT导入数据,实现更完善的搬家功能。目前支持以下搬家(使用BLOGCS还能实现更多平台搬家): Old Blogger   Import posts, comments, and users from an Old Blogger blog Blogware  Import posts from Blogware DotClear  Import categories, users, posts, comments, and links from a DotClear blog GreyMatter  Import users, posts, and comments from a Greymatter blog LiveJournal  Import posts from a LiveJournal XML export file Movable Type and TypePad  Import posts and comments from a Movable Type or Typepad blog RSS  Import posts from an RSS feed Textpattern  Import categories, users, posts, comments, and links from a Textpattern blog 感谢kesor'blog 提的问题,我希望能有更多人提问,让我有文可写。
分类:部件 Parts | 作者:bb | 评论(3) | 引用关闭 | Add to del.icio.us | 更多操作...
Movabletype 全部文章按月列表 2007-05-11 | 本文链接
我简单的修改了下全部文章汇总页面,将其改为按月份顺序显示。 其中月份显示的主体效果如下: A月份:  A中文章1  A中文章2 B分份:  B中文章1  B中文章2  方法:在汇总模版中添加红字部分 <MTArchiveList archive_type="Monthly"> <li><strong><$MTArchiveTitle$></strong></li> <MTEntries sort_order="descend"> <li><a href="<$MTEntryPermalink$>" target="_self"><$MTEntryTitle$></a></li> </MTEntries> </MTArchiveList> 重建即可看到效果,你可进入本站汇总页面查看效果。
分类:窍门 Tips | 作者:bb | 评论(0) | 引用关闭 | Add to del.icio.us | 更多操作...
Macros:将符号转换为HTML 2007-05-10 | 本文链接
上次我介绍了实现“在评论框中添加表情图标按键”的方法,其实和BBEDIT插件原理一样,就是点击一个按键通过JS生成一些html。如果你嫌生成的html 源码过于难看,你可以使用Macros插件,该插件会自动将“设定的符号”转换为图片显示的html源码。 下载安装Macros插件 上传到相应目录 (mt home)/plugins/macros.pl (mt home)/extlib/bradchoate/macros.pm (mt home)/extlib/bradchoate/postproc.pm 然后将“符号转换为HTML”代码添加到,相关模版的<head>...</head>之间(代码美观起见,你可以在模块中添加个包含下列代码,名为smiley macros的模块,然后在head之间使用<$MTInclude module="smiley macros"$>),如: <MTMacroDefine name="very_happy" string="你设定的符号如:Q" no_html="1"> <img src="http://mtblog.org/images/smiles/icon_biggrin.gif" alt="Very Happy" width="15" height="15" border="0" /> </MTMacroDefine> 进行符号转换为HTML识别,然后在要转换的“MT标签”前后加上<MTMacroApply>...</MTMacroApply>如: <MTMacroApply><$MTEntryBody$></MTMacroApply> <MTMacroApply><$MTCommentBody$></MTMacroApply> 最后重建文件,该插件回自动将设定的符号转换成HTML。 推荐大家结合BBEDIT插件使用,该插件包中有上述那些“符号转换html识别代码”汇总和“本地表情图片”,大家可以直接复制使用。
分类:插件 Plugins | 作者:bb | 评论(0) | 引用关闭 | Add to del.icio.us | 更多操作...
StatWatch:访问来源统计插件 2007-05-08 | 本文链接
StatWatch是一计数统计插件。StatWatch与MovableType结合的很好,并且还能够直接调用显示页面中FeedBurner的订阅数。遗憾的是这个插件无法将统计数据显示在博客页面中,相信随着插件升级不久就能解决这个问题。 安装使用方法: 1、下载解压插件 2、修改该插件的BUG 进入\plugins\statwatch\lib\statwatch.pm 将my $schema = File::Spec->catfile($path.'schemas', $db_type . '.dump') 改为my $schema = File::Spec->catfile($path.'plugins/statwatch/schemas', $db_type . '.dump') 否则会出现Can't open schema file '\schemas\mysql.dump': No such file or directory at E:\web\StatWatch.pm line 560.的错误提示。 3、上传StatWatch到相关目录 4、并且将plugins\statwatch\tmpl的文件上传到MT根目录中的\tmpl 否则也会出现错误提示。 安装完后,进入插件执行该插件,系统会自动安装。之后你只要在用户模版中加入<$MTstats$>标签即可激活访问量统计,查看访问数值和来路只需要进入"插件"点击执行插件就能查看。
分类:插件 Plugins | 作者:bb | 评论(2) | 引用关闭 | Add to del.icio.us | 更多操作...
在评论框中添加表情图标按键 2007-05-08 | 本文链接
1、在要单页面中添加JS代码: <script type="text/javascript" language="javascript"> <!-- function emoticon(smiley) { var txtarea = document.comments_form.text; smiley = ' ' + smiley + ' '; if (txtarea.createTextRange && txtarea.caretPos) { var caretPos = txtarea.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? smiley + ' ' : smiley; txtarea.focus(); } else { txtarea.value  += smiley; txtarea.focus(); } } //--> </script> 2、在要显示表情图标按键的地方添加以下代码: <style> img.smiley {margin-bottom : 1px; margin-left : 1px; margin-top : 1px; margin-right :1px;} </style> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_biggrin.gif" alt="Very Happy" width="15" height="15" border="0" title="Very Happy" />')"><img src="http://mtblog.org/images/smiles/icon_biggrin.gif" alt="Very Happy" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_smile.gif" alt="Smile" width="15" height="15" border="0" title="Smile!" />')"><img src="http://mtblog.org/images/smiles/icon_smile.gif" alt="Smile" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_sad.gif" alt="Sad" width="15" height="15" border="0" title="Sad!" />')"><img src="http://mtblog.org/images/smiles/icon_sad.gif" alt="Sad" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_surprised.gif" alt="Surprised" width="15" height="15" border="0" title="Surprised!" />')"><img src="http://mtblog.org/images/smiles/icon_surprised.gif" alt="Surprised" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_eek.gif" alt="Shocked" width="15" height="15" border="0" title="Shocked!" />')"><img src="http://mtblog.org/images/smiles/icon_eek.gif" alt="Shocked" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_confused.gif" alt="Confused" width="15" height="15" border="0" title="Confused!" />')"><img src="http://mtblog.org/images/smiles/icon_confused.gif" alt="Confused" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_cool.gif" alt="Cool" width="15" height="15" border="0" title="Cool!" />')"><img src="http://mtblog.org/images/smiles/icon_cool.gif" alt="Cool" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_lol.gif" alt="Laughing" width="15" height="15" border="0" title="Laughing!" />')"><img src="http://mtblog.org/images/smiles/icon_lol.gif" alt="Laughing" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_mad.gif" alt="Mad" width="15" height="15" border="0" title="Mad!" />')"><img src="http://mtblog.org/images/smiles/icon_mad.gif" alt="Mad" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_razz.gif" alt="Razz" width="15" height="15" border="0" title="Razz!" />')"><img src="http://mtblog.org/images/smiles/icon_razz.gif" alt="Razz" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_redface.gif" alt="Embarassed" width="15" height="15" border="0" title="Embarassed!" />')"><img src="http://mtblog.org/images/smiles/icon_redface.gif" alt="Embarassed" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_cry.gif" alt="Crying or Very Sad" width="15" height="15" border="0" title="Crying or Very Sad!" />')"><img src="http://mtblog.org/images/smiles/icon_cry.gif" alt="Crying or Very Sad" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_evil.gif" alt="Evil or Very Mad" width="15" height="15" border="0" title="Evil or Very Mad!" />')"><img src="http://mtblog.org/images/smiles/icon_evil.gif" alt="Evil or Very Mad" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_twisted.gif" alt="Twisted Evil" width="15" height="15" border="0" title="Twisted Evil!" />')"><img src="http://mtblog.org/images/smiles/icon_twisted.gif" alt="Twisted Evil" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_rolleyes.gif" alt="Rolling Eyes" width="15" height="15" border="0" title="Rolling Eyes!" />')"><img src="http://mtblog.org/images/smiles/icon_rolleyes.gif" alt="Rolling Eyes" width="15" height="15" border="0" class="smiley"></a> <a href="javascript:emoticon('<img src="http://mtblog.org/images/smiles/icon_wink.gif" alt="Wink" width="15" height="15" border="0" title="Wink!" />')"><img src="http://mtblog.org/images/smiles/icon_wink.gif" alt="Wink" width="15" height="15" border="0" class="smiley"></a><br /> 重建页面后即可,具体效果可查看本站评论框。 在这推荐大家使用BbEdit 文章编辑插件,并结合结合MACRO优化该表情按键。 BBEDIT插件包中有"符号转换html识别文件、本地表情图片、和结合Morcos后的smile代码(压缩包中的bb+smile)",大家可以直接复制使用。
分类:部件 Parts | 作者:bb | 评论(0) | 引用关闭 | Add to del.icio.us | 更多操作...
在评论框中添加html代码编辑器 2007-05-08 | 本文链接
首先在mt-site.js的模版中加入以下js: // form support // var canFormat = 0; if (document.selection ||     (typeof(document.createElement("textarea")["setSelectionRange"]) != "undefined"))     canFormat = 1; function getSelected (e) {     if (document.selection) {         e.focus();         var range = document.selection.createRange();         return range.text;     } else {         var length = e.textLength;         var start = e.selectionStart;         var end = e.selectionEnd;         if (end == 1 || end == 2 && length != undefined) end = length;         return e.value.substring(start, end);     } } function setSelection (e, v) {     if (document.selection) {         e.focus();         var range = document.selection.createRange();         range.text = v;     } else {         var length = e.textLength;         var start = e.selectionStart;         var end = e.selectionEnd;         if (end == 1 || end == 2 && length != undefined) end = length;         e.value = e.value.substring(0, start) + v + e.value.substr(end, length);         e.selectionStart = start + v.length;         e.selectionEnd = start + v.length;     }     e.focus(); } function formatStr (e, v) {     if (!canFormat) return;     var str = getSelected(e);     if (str) setSelection(e, '<' + v + '>' + str + '</' + v + '>');     return false; } function insertLink (e, isMail) {     if (!canFormat) return;     var str = getSelected(e);     var link = '';     if (!isMail) {         if (str.match(/^https?:/)) {             link = str;         } else if (str.match(/^(\w+\.)+\w{2,5}\/?/)) {             link = 'http://' + str;         } else if (str.match(/ /)) {             link = 'http://';         } else {             link = 'http://' + str;         }     } else {         if (str.match(/@/)) {             link = str;         }     }     var my_link = prompt(isMail ? '输入 Email 地址:' : '输入 URL: ', link);     if (my_link != null) {          if (str == '') str = my_link;          if (isMail) my_link = 'mailto:' + my_link;         setSelection(e, '<a href="' + my_link + '">' + str + '</a>');     }     return false; } function Decode(e) {         if (!canFormat) return;         var str = getSelected(e);         if (!str) return;         str = str.replace(new RegExp("&","g"), "&amp;");         str = str.replace(new RegExp("<","g"), "&lt;");         str = str.replace(new RegExp(">","g"), "&gt;");         str = str.replace(new RegExp('"',"g"), "&quot;");   /*    str = str.replace(new RegExp(' ',"g"), "&nbsp;"); */         setSelection(e, str);         return false; } //END for form 然后在单页模版中家加上下列编辑框显示的JS代码,如: <script type="text/javascript"> if (canFormat) {     with (document) {         write('<img title="粗体" onclick="return formatStr(document.comments_form.text, \'strong\')" src="http://mtblog.org/images/formatting-icons/bold.gif" alt="粗体" width="26" height="19" />');         write('<img title="斜体" onclick="return formatStr(document.comments_form.text, \'em\')" src="http://mtblog.org/images/formatting-icons/italic.gif" alt="斜体" width="26" height="19" />');         write('<img title="下划线" onclick="return formatStr(document.comments_form.text, \'u\')" src="http://mtblog.org/images/formatting-icons/underline.gif" alt="下划线" width="26" height="19" />');         write('<img title="插入链接" onclick="return insertLink(document.comments_form.text)" src="http://mtblog.org/images/formatting-icons/link.gif" alt="插入链接" width="26" height="19" />');         write('<img title="引用" onclick="return formatStr(document.comments_form.text, \'blockquote\')" src="http://mtblog.org/images/formatting-icons/quote.gif" alt="引用" width="26" height="19" />');         write('<img title="HTML编码" onclick="return Decode(document.comments_form.text)" src="http://mtblog.org/images/formatting-icons/decode.gif" alt="Decode" width="26" height="19" />');     } } </script> 重建页面后即可,具体效果可查看本站评论框。顺便在这推荐大家使用BbEdit 文章编辑插件。
分类:部件 Parts | 作者:bb | 评论(0) | 引用关闭 | Add to del.icio.us | 更多操作...
PostToTwitter:将MovableType中更新的文章发布到Twitter 2007-05-06 | 本文链接
最近Twitter 满火的,今天ikias就在自己的博客上介绍一个能利用MobavleType自动向Twitter投稿的插件。该插件名为PostToTwitter,是一日本博客制作的,Ikias将其翻译成中文,推荐大家下载试用。 使用方法: 1、下载解压原版日文插件 2、将文件上传到plugins里面 3、进入要发布到Twitter的博客,在"设置"中点入"插件" 4、输入你在Twitter的用户名、密码 这样以后你在MT中每发布一篇文章,该文章就自动的发布到你在Twitter的帐号中。效果可看http://twitter.com/zhongjia UPDate:该插件不适合多用户使用:cry:,可能会出现发布文章缓慢、较耗系统资源,并且多个Twitter帐号可能会互相影响(我设置了一个博客使用Twitter,结果其他博客里的"设置"也出现该帐户的用户密码)。
分类:插件 Plugins | 作者:bb | 评论(4) | 引用关闭 | Add to del.icio.us | 更多操作...
合理的设置MT博客 2007-05-04 | 本文链接
当博客建立以后,我们首先应该进入“设置”,在出版设置中整理下“归档映射”: 1、将单篇文章归档的归档文件路径 设置为 %c/%f 路径为 http://域名/分类/文件名.html ,顺便建议大家使用“中文 英文”形式的分类,如“博客 Blog”。 2、将按月归档归档的归档文件路径 设置为 %y-%m/%i 路径为 http://域名/年-月/ ,我建议大家整理下自己的按月模版,让按月归档的文章按摘要的形式呈现,我使用的标签为<$MTEntryBody words="200"$>。 3、分类归档保持不变 路径为 http://域名/分类/ ,我建议分类归档的文章使用标题的方式呈现。我使用的标签为: <a href="<$MTEntryPermalink$>" target="_self"><$MTEntryTitle$></a> 具体演示可参见mtblog.org ,我觉得这样生成的静态页面的路径就会更合理。
分类:窍门 Tips | 作者:bb | 评论(0) | 引用关闭 | Add to del.icio.us | 更多操作...
合理的安排博客 2007-05-04 | 本文链接
搭建完movabletype后,应该进行简单的平台规划。 首先将默认的博客(也就是blog_id=1的博客)结合Feed.app插件用来做博客聚合,该插件自动更新暂时只支持blog_id=1的博客。如果你不想搭建博客聚合,我建议将这个默认博客留着不要使用。 然后建立自己大分类博客,我将博客分为“MT教程”和“IT生活”两大类,于是就建立了mtblog.org和lblog.org。大分类博客的建立主要是让阅读者更有选择性的阅读。域名不充足的朋友可以使用二级域名来绑定相应博客。并且你可以将汇总博客利用起来,发布一些比较常用的文章。如:留言本、友情链接。 再结合MultiBlog 建立一个汇总博客,如本站的bblog.biz ,这样可以更直观的通过一个平台关注你两个博客。 当然你还可以结合Photo Gallery插件建立一个图片博客,如本站的bblog.biz/photos。 最后将“系统用户名(author_id=1)”留着,建立一个新的ID,该ID专门用来写博客。虽然这样没什么意义,但总感觉这样爽点,安全点。
分类:窍门 Tips | 作者:bb | 评论(0) | 引用关闭 | Add to del.icio.us | 更多操作...
“回到顶部”模块的设计 2007-05-02 | 本文链接
我对“回到顶部”这一模块进行了两部分设计: 一、将“回到顶部”固定在下拉框中间; 方法 在模版顶部添加<div id="top"></div>给予定位,然后在模版中增加下列源码(在IE6下无法显示,所以我还在页面底部加了个“回到顶部”) <div align="center"><a id="toTop" href="#top" title="回到顶部" class="internal" rel="nofollow"><span>&uarr;</span></a></div>  在css 中添加 #toTop { width:26px; height:26px; display:block; position:fixed; bottom:50%; right:5px; background:url(<$MTBlogURL$>styles/milk/pager_home.gif) no-repeat 0 0; outline:0 none; } #toTop span { display:none; } 二、在回到顶部过程中使用逐步上升的JS。 在<head></head>中添加下列JS <script type="text/javascript"> toTop = { init:function(){ document.getElementById("toTop").onclick=function(e){ toTop.set(); return false; }  }, waitTimer:null, set:function(){ var d_st=document.documentElement.scrollTop; if(window.navigator.userAgent.indexOf("MSIE")>=1){ for (var i=d_st; i>10; i-=Math.floor(i/6)){ window.scrollTo(0,i); } window.scrollTo(0,10); } else{ window.scrollTo(0,Math.floor(d_st / 2));  if(d_st>10){  waitTimer=setTimeout("toTop.set()",40);   } else{   clearTimeout(waitTimer); } } } } window.onload = function(){toTop.init();} </script>
分类:部件 Parts | 作者:bb | 评论(0) | 引用关闭 | Add to del.icio.us | 更多操作...
Google PageRank:显示PR值的插件 2007-05-02 | 本文链接
这是个将Google 的PR值通过标签在博客中显示的插件,你可以查看作者对此插件的介绍。我这里简单介绍下安装和使用方法: 1、下载解压该插件 2、将文件包中的MTGooglePageRank.pl 上传到plugins 文件夹中 3、再将文件包中的lib->WWW->Google 文件夹,上传到你的MT根目录中的extlib->WWW里面。 好奇怪,为什么该作者不直接安排下目录,让大家安装还要按照这个步骤上传-_|| 4、使用的时候你只需要在模版适当的地方加上以下代码: Google PageRank:<MTGooglePageRank url="你的网站地址"><$MTpagerank$></MTGooglePageRank> 其实PR 更新比较慢,我建议大家直接填写网站PR值,毕竟插件多了重建会比较慢(一旦Google API无法访问,重建会一直卡着)
分类:插件 Plugins | 作者:bb | 评论(2) | 引用关闭 | Add to del.icio.us | 更多操作...
May 2007 共有文章 20 篇
Short Cuts
Search my Blog
Archives
Random Entries