Drupal支付宝当面付二维码模块

由于支付宝提高了收款接口的申请门槛,个人已经无法申请到即时到帐接口,即便是企业帐号也要提交预先提交备案的域名才能够正常使用其收款接口。而刚推出不久的当面付接口目前不限制帐号类型,个人和企业都可以申请,而且网站域名不需要备案。几天前了解到这一接口,立马着手给熟悉的DRUPAL写了一个模块,现基本功能已经完成,在此分享给用得着的朋友。在此简单介绍一下开通接口的流程

第一步,在手机上打开你的支付宝APP,扫描上面的二维码,按照提示补全个人信息。如要求激活可先不必理会。

第二步,打开https://openhome.alipay.com/platform/appManage.htm,登录创建应用,设置好私钥保存,记下appID

第三步,在DRUPAL启用commerce alipay f2f 模块,然后设置好相关帐号参数,其中包括APP ID,支付宝公钥以及应用私钥。

 

实践理解drupal 7 render API

drupal render array实践学习
上篇文章介绍drupal 7中的render API,这篇通过实践来更好的理解drupal render api.

创建一个模块

下面通过一个小模块学习drupal render api。
按照开发drupal模块的惯例,首先在sites/all/modules下面创建两个文件:

render_array.info
render_array.module

render_array.info的内容如下:

name = render array
description = understanding drupal's render api
package = test modules
core = 7.x

然后在render_array.module添加如下代码,挂个hook menu钩子。

drupal 7 render arrays详解

drupal 7 render arrays详解

什么是渲染(rendering)?

drupal中rendering,简单来说就是把具有特定结构的关联数组转换为HTML页面的过程。从drupal 7开始,render arrays(中文翻译渲染数组)为drupal页面渲染的最基本元素,render arrays也叫rendable arrays,意为’可渲染的数据‘。
其实render array就是一个php关联数组,但符合drupal页面渲染过程中的标准和数据结构。

大多数情况下,用来渲染页面的数据一直保存在关联数组里,直到页面的最后渲染阶段才被调用,这种机制为页面的布局和内容显示提供了极大的灵活性,也有益于系统以后的性能提升。

注意:虽然render arrays和form api中使用的数组具有某些共同的元素,属性以及结构,但许多表单属性的意义仅限于FORM API,不能等同于render API.简单来说,form API的数组必须通过drupal_get_form这个函数的处理后才能变为标准的render arrays.如果直接把未经该函数处理的form api数组传递给render API,最后的效果可能不能如你所愿。

理解drupal主题的工作机制(template文件,主题函数)

最近一直在折腾drupal,积累了一些经验,有空了将在此与大家分享一下。今天先说下drupal的主题模版工作机制。
drupal主题的核心文件是theme.inc,位于includes下面,通过研读这个文件里的代码和官方的文档,我算是大致明白了drupal生成HTML的流程。主要由主题函数(theme function),主题模版文件(template files)和drupal_render来完成。

进入任何一个主题根目录,可以在templates目录下找到常见的主题模版文件,如html.tpl.php,page.tpl.php,node.tple.php,commet.tpl.php,field.tpl.php等等。这些主题模版文件主要为HTML代码,但也夹杂一部分PHP代码,几乎都是实现简单的判断和HTML代码输出,按照drupal的规范,稍复杂一点代码都应该在其它地方完成。

Drupal 7 支付宝担保支付和双功能(带自动发货功能)

Drupal是一个非常强大的CMS,目前有上万个模块,易于扩展。 而drupal commerce是drupal 7上的网店平台,扩展性比之前的ubercart强,可惜支付方面只能支持支付宝即时支付,个人能申请到的担保支付帐号则无法使用。经过几天的折腾,终于弄出一个双功能的支付模块,这个模块支持自动发货功能,即收到支付完成后会自动确认发货,无需手动确认。模块是基于原来的即时支付模块,已在drupal官方提交patch,但不知什么时候才能审核通过,所以在些先发布一个完整的模块,给需要的朋友使用。

在RK3188/RK3066电视机顶盒上运行ubuntu

研究了几天,终于成功在新买的MK908/MK802I上运行起了LUBUNTU系统。MK908/MK802在国外非常火,很多人都买来运行像UBUNTU这样的PC系统,用来做家用服务器。想像一下,一个U盘大小的东西,接到任何带有HDMI接口的显示器上就可以开始工作学习,何其方便。但我觉得这类产品最大的优势还是省电,很适合放在家里做服务器。LINUX上的服务器端应用太多了,可以用来架设各种服务器,我现在在用的有FTP,SAMBA服务器(作家用NAS),web服务器, POSTFIX邮件服务器,OWNCLOUD个人云服务(跟dropbox一样), 电驴下载服务器,BT下载服务器,音乐播放服务器,VPN服务器,代理服务器等等。 因为功耗非常低,完全可以一天24小时开机而不用担心电费飙升。此外,硬件配置也非常强大,搭载ROCKCHIP RK3188 28nm工艺四核CPU,2GB内存,8GB内置存储,扩展性也非常不错,可以外接SD卡和移动硬盘,OTG USB口可以接网卡之类的外设。最重要的是2,3百块的价格,我想很多人都可以接受的。下面先帖几张图,接下来会分享编译的内核,弄个教程供有兴趣的朋友折腾。

简单几步安装owncloud到openwrt路由器

上一篇博客介绍了owncloud的一些功能,这篇将教各位如何轻松几步把owncloud安装到openwrt的路由上去。为了方便对openwrt或LINUX不熟悉的朋友,我特意写了一个脚本,使得整个安装过程全自动化,完全无需人工操作。你只需下载脚本,然后执行就可以配置好openwrt的web环境,并下载安装owncloud到指定的目录。所有的软件都是安装到外挂的U盘上去,因此无论是4M内存还是8M的路由都可以用。但要想顺利运行owncloud的话建议你的路由有64MB以上的运存。我在tplink 703N和水星4530R上顺利测试通过,703N是改的64MB内存,原厂4MB flash。4530R原厂硬件,未做任何修改。好了,开始动手吧!

准备U盘,插入openwrt路由器

U盘应格式化为EXT3/EXT4的格式,最好是一个分区,脚本会自动挂载第一个分区。

下载owncloud一键安装脚本

用putty登录到你的Openwrt路由器命令终端,在终端执行以下命令

利用OWNCLOUD在TP-LINK 4300(openwrt)或PC搭建类似dropbox个人私有云服务器

现在很多软件厂商都推出免费的云服务,让用户在其服务器上免费存放自己的文件,图片,视频,联系人以及其它个人数据,如dropbox,谷歌的google drive。但是树大招风,这些大软件厂商常常是黑客研究攻击的对像,前不久dropbox就被黑客攻破,导致数据泄露。除此之外,把数据放在人家那里总感觉不是那么放心,你无从知道他们会怎么利用你的数据。因此,把数据放到自己的服务器才是最放心,而owncloud就是这样一个工具。

linux dnspod客户端(适用于openwrt,ddwrt, centos, ubuntu等)

几个月前写过一个dnspod脚本,也是用来自动更新动态IP地址到DNSPOD解析顶级域名。周末闲着无聊,重新写了个脚本,在原来的基础上增加了一些功能,比如批量创建,批量更新,批量删除。脚本兼容支持centos, ubuntu这些使用bash的版本,也支持集成busybox的轻量发行版,如openwrt, ddwrt, tomato.但本人只在openwrt, centos和ubuntu上测试过。下面说下使用方法,首先你得有一个顶级域名并已转到dnspod解析,这步就省略了。