uchome二次开发中的feed发送问题

对于SNS来说,feed是个必不可少的东西,有了feed才可以让SNS有黏性,让应用有黏性,同时也是一个在站内推广应用的好方法。(只想知道怎么使用的,请跳到本文的最后面吧)

于是今天要为我给普特英语听力开发的应用添加feed发送功能了,但是uchome没有官方的开发文档,所以只好自己看代码了。先分析了踩日志后,发送feed的这个过程,在 /home/source/cp_blog.php 这个文件里,关于踩日志的feed相关代码在111行。

$feed_title = cplang('feed_trace');
$feed_data = array(
'username' => "<a href=\"space.php?uid=$blog[uid]\">".$_SN[$blog['uid']]."</a>",
'blog' => "<a href=\"space.php?uid=$blog[uid]&do=blog&id=$blog[blogid]\">$blog[subject]</a>"
);
feed_add('trace', $feed_title, $feed_data);
$feed_title = cplang('feed_trace'); $feed_data = array( 'username' => "<a href=\"space.php?uid=$blog[uid]\">".$_SN[$blog['uid']]."</a>", 'blog' => "<a href=\"space.php?uid=$blog[uid]&do=blog&id=$blog[blogid]\">$blog[subject]</a>" ); feed_add('trace', $feed_title, $feed_data);

可以看到有个cplang和feed_add的这两个函数,于是找这两个函数在什么地方定义的就可以了。懒得猜,也懒得通读代码了,用工具来暴力查找吧,我用的是notepad++这个东西指定文件夹,暴力搜索关键字。

找到了function feed_add 在 home/source/function_cp.php 中定义,第384行,有兴趣的自己去看,这里就不贴出来了,比较长。其中feed-add函数的第一个参数是feed图标的名字,例如上面的那个 trace ,就指定到 home/image/icon/中的trace.gif图片。第二个参数是feed的模板,第三个参数是feed的数据,后面的参数都有缺省值,简单的feed可以不使用了。以cplang为关键字找到了在 home/language/lang_cp.php 文件里定义了一个名字为$_SGLOBAL[‘cplang’]的数组,一看内容就是各种feed的模板,好了,function cplang也不找了,就修改这里吧,照着上面已经存在的feed模板,加上了我自己需要的模板格式。然后测试了一下,OK,成功了。

feed模板的用法很简单,看个和上面代码相关的模板你就明白了,里面有这样一行定义:’feed_trace’ => ‘{actor} 踩了一脚 {username} 的日志 {blog}’,看明白了吧,feed中用大括号来括起来动态的部分,然后你在使用add_feed的时候,第三个参数 feed_data是个关联数组,其中key就是这个模板里的名字。

好吧,知道怎么使用了,但是要怎么部署才好呢?如果按照uchome的这种结构部署的话,要修改好几个文件,而且像 lang_cp.php还要在服务器上直接修改才行,因为我这里本地的文件和服务器上的文件是不一样,因为还有其他开发者修改过这个文件,所以不能简单的修改后覆盖。想了想,这个文件无非就是提供一个feed的格式而已,我直接写在我自己app中的代码文件中是一样的。uchome这样使用的理由是,可以支持好几种语言,针对不同语言使用不同的模板,但是我这个就没必要了,都是给中国人用的,所以就不使用 cplang函数来,直接定义$feed_title ,然后传给 add_feed函数就可以了。这样就只用覆盖一个文件就可以完成添加feed功能了。

总之,要在uchome二次开发中使用feed功能,建议是:在 home/source/cp_blog.php中看111行附近的代码,这是个使用示例,然后看 home/source/function_cp.php 384行附近的代码,这个是 feed_add的定义,然后看 home/language/lang_cp.php 这个文件关于feed模板的定义就可以了。另外准备一个图片放在 home/image/icon下面。做了这些就可以很轻松的添加简单的feed功能了,想要更高级的feed功能,就去研究 feed_add 这个函数的定义吧。

IE文本域中回车自动提交表单

当表单中只有一个文本域的时候,在文本域输入完后按回车,IE会自动帮你提交,(谢谢Andre提醒,其实这种情况在其他浏览器里也会提交的,我测试了firefox,opera, chrome。safari没测试,不过表现应该和chrome是一样的,所以主流浏览器都会自动提交,而不仅仅是IE)哪怕没定义 submit按钮,也会提交。

这个是今天在解决一个其他BUG的时候,了解到的这个问题,虽然要解决的BUG和这个没关系,这个一会儿再说。

先说这个怎么解决吧,在form里建个隐藏的input标签就可以了,可以这样  <input style:”display:none”/> 。

另外我要说说,大家要慎用IE tester这个东西啊,太不靠谱了,在这个里面执行JS和原生浏览器执行,有很大差别。今天想用这个来解决IE6的一个BUG,一直没进行到要真正解决的部分去,因为我一直以为是上面的那个问题带来的BUG,只到我用机器上的IE8运行了一段测试代码,又用IE tester新建IE8来运行,结果不一样,当时就囧了,我意识到做了一个晚上的无用功了。

只好马上用Virtual BOX安装 XP了,用原生的IE6来解决问题,果然,问题不在那里,很快解决了BUG。

所以建议大家一定要慎用IE tester,尽量用原生的浏览器来测试。

然后今天遇到的实际的BUG,是因为在js中对字符串处理的时候使用的非标准的方法。我想返回字符串中指定位置的字符,我使用了类似PHP的方法:

var a=’hello world’;

var b=a[0];

这样在firefox中是有用的,b是 ‘h’ ,但是在IE下是不起作用的,翻了手册才知道,标准的方法是 charAt().

var b=a.charAt(0);

要这样才是标准的方式,换了这个后,马上就解决了要解决的BUG。

因为一个W_A_P站,整个站都被关了

网××监,我问候你们一户口本。有没有违规内容,你不会自己去看看啊,为什么要一棒子打死。

空间在国内真TM的不安全。

算了,不多说了,虽然这是我的私人博客,但是上头有人管着呢,谁让这是国内的空间呢。

11.11,又一个光棍节

又是一个光棍节,这样的节日过一个少一个了(废话,什么节日都是过一个少一个)。只是我希望这样的节日没有几个了。

本来以为不用再过这个节日的,但是我做错了很多事情,所以又要来过这个节日。我的情商确实很低,很多事情都处理不好,不知道该怎么处理,就这样错过了很多事情,但是后悔是没有用的,伤心过后,还是要继续鼓起勇气往前走。

几年也没什么特别的,和其他的日子是一样的。上午去公司有点事情,下午在宿舍窝了一个下午,基本什么都没做。晚上打算来写代码。

这段时间我有很大的问题,效率低下。不能再这样下去了。什么事情都没做。是的,这段时间情绪低落,痛苦过,但是还是应该做事情的,而不应该颓废。

昨天晚上想了想,我好想这段时间很多事情都想干一下,但是什么都没干。同时在看好几本书,但是进度缓慢,同时想写两个项目的代码,但是都没写。所以昨晚我决定,事情要一件一件的干,不能这样窝在一起。所以昨晚把《我是一只IT小小鸟》看完了。书写的不错,还是有很多可以借鉴的地方,可以看看那些牛人是怎么学习的。

好吧,今晚剩下的时间我要写代码了。不能颓废下去了。

另外今天收到了阿里巴巴的通知了,明天去准备三方协议,寄过去。同时在新蛋上买了个双肩包,算是给自己庆祝一下吧,一直想要一个双肩电脑包,但是一直又舍不得花钱,因为是有个单间的电脑包的,总不想浪费。这次算是浪费点吧,给自己庆祝一下。

怎么才能给面试官留下好的印象?

今天做了一天的面试官,帮助普特英语听力网站招聘程序员,主要是招PHP+MySQL+JS方面的。面试了10来个人左右。颇有感触,其实如果应聘者要想获得到那份工作,还是要需要注意到很多东西的。

以前我只是作为一个应聘者的角色去想我应该怎么做,才能给面试官好感,我想每个应聘者都应该考虑过这个问题。只是现在我可以从面试官的角度来想应聘者应该怎么做。

首先,我的面试经验不多,就今天一天而已,所以可能有很多疏忽的地方,很多不妥的地方,只能为大家做个参考,请自己用心思考这些问题。

一:我们要尊重面试官,要表现的不卑不亢,翘二郎腿是不对的,虽然面试官可能翘二郎腿,但是作为应聘者,我始终觉得是不应该这样做的。要表现的轻松,但是不能太随意,你要表现出你重视这次面试。今天遇到了一个川大的学生,就是这种情况,翘二郎腿,表现的很随意,很不在意的样子。我想有可能是他就是这个习惯,还有个可能是他瞧不起普特英语,觉得公司太小。但是我和他交流了一下他的求职经历,面试了20多家公司,只有TCL愿意签他,但是不是他想要做的工作,拒掉了。我不知道他在其他大点的公司面试是个怎么样子的情况,但是在这里,表现的确是不会给面试官留下好的印象。

二:最好带一份简历。今天有好几个来面试的都没带简历。特别是这种通过网申的方式投递简历的情况。很多时候网申的简历和你的纸质简历还是有蛮大区别的,一般纸质简历会写的详细点,也可能前一天才修改过的,所以带上几份纸质简历是有好处的,花不了多少钱,也不会有太大麻烦的。如果面试官手里面没有简历的话,就不能对你有个大概的了解,就不知道应该问一些什么样的问题,才能表现出你的能力。特别是本科生,知识一般掌握的都不全面,面试官也知道,所以如果不知道你擅长哪个方面,问了你一堆你不会的,你肯定不会爽,就更不会给面试官留下好的印象了。

三:准备好自我介绍。很多时候面试官都会让你先做个自我介绍。自我介绍的内容不应该仅仅是你的姓名,出生地,学校,你的知识结构,你可以讲讲你做过的你认为比较有吸引力的项目。很多童鞋的自我介绍都很短,不能显示出优势,不能让面试官了解到你擅长什么方面的东西。其实这个问题我以前也很严重,在面试阿里巴巴的时候,被面试官指点了一下(非常感谢我的一面面试官)。

四:要找对口的工作。虽然都是程序员,但是程序员要分好多方向,要找对口的工作才好。人生的第一份工作是很重要的,要慎重择业啊。今天遇到了一个川大的,看上去C++不错的学生,来应聘WEB程序员,其实别看都是程序员,但是差别还是蛮大的。比如说他对JS一点兴趣都没有,甚至了解都不愿意去了解。对WEB的概念也不清楚。我最后就给他建议去找C/C++的工作吧。

五:如果你决定要做那个方面的工作,就要表现出你的激情,年轻人需要激情。如果面试官问你,有没有很浓厚的兴趣来做WEB开发,你不应该回答:还可以吧。这种不温不火的答案,面试官是很不喜欢的。年轻人干事情需要激情的,能力不是很强,再没有激情,谁敢要你啊。

六:在知识的广度上,要下点功夫。很多学生都是老师教什么,就学什么。不去了解这个领域的前沿知识。不一定需要掌握前沿知识,但是如果你了解一些,起码可以说明你是有兴趣在这个方面发展。如果稍微前沿点的东西,一问三不知,那就基本没戏了。特别是做IT行业的,技术革新太快,概念革新也快,如果没有把握这个的能力,还是不要来做这个吧。

七:要有自己的思想。今天遇到了一个学生,他说他们老师让他们从ASP.NET转向PHP,然后他们就开始学习PHP。他们老师说做C++不好就业,让他们做WEB,他们就来做WEB。我问他,你对PHP感兴趣吗?他说有兴趣,我说不对吧,听你的话,更多的是你们老师让你们学习而已。作为一个成年人,我们要有自己的思考能力,而不仅仅是听从别人的话。哪怕只是想招个代码民工,招聘方也希望你有自己的思想,有自己在这个领域的理解。

八:在大学的日子里,要多多思考应该怎么来学习。作为本科生,企业应该更看重的是你的发展潜力。这个时候就要考察你的学习能力了。我听到有同学说,遇到问题会只网上提问,让别人来解答,我说,你去什么地方提问,他说“百度知道”。- -!

九:要精神抖擞。有几个同学我不知道是什么原因,显得很萎靡,这样的话,是不会留下好印象的。

到此为止。感触还是蛮多的。希望能还在求职这个道路上走的人有说帮助。并不全对,希望你能自己甄别。

今天一天的面试只收获了一个靠谱的,其他的都不合格。