Drupal

建站会用到的Drupal modules大全

转自:http://www.yciydong.com/thread-900-1-1.html

1.为Drupal增加视频播放功能

使用video和flowplayer

http://drupal.org/project/video

http://drupal.org/project/flowplayer

 

2.为Drupal增加邮件服务器 SMTP和PHPMailer

使用SMTP和phpmailer

http://drupal.org/project/phpmailer

http://drupal.org/project/smtp

 

3.为Drupal增加高级论坛功能

先启用7.0核心自带的Forum功能,然后安装以下模块(如果没有安装的话)

http://drupal.org/project/advanced_forum

http://drupal.org/project/ctools

博客分类: 

Drupal 7 隐藏次菜单(secondary menu)

使用Drupal时,菜单默认有主菜单(Main menu)和次菜单(secondary menu)。

在Drupal 7 里面次菜单主要是 User menu,意思是:当用户登录上去之后,在顶部有"My Account | Logout"的菜单显示,大部分情况都是默认显示的。在开发时,这个菜单经常需要修改甚至大部分是需要替换的。所以,我们就需要把它给隐藏掉。

在page.tpl.php里面可以找到对应的PHP code:

博客分类: 

Drupal7 下出现错误的解决办法

  • 错误:

- Notice: Array to string conversion in menu_link_save()

- Warning: Illegal string offset 'field' in DatabaseCondition->__clone()

解决办法:

http://sunkid.me/blog/2012/04/28/install-drupal7-dot-12-for-php5-dot-4/

 

  • 关于locate_resource表的错误

解决办法:检查mysql的 max_upload_packet值。默认max_upload_packet=1 改为max_upload_packet=16.

 

 

博客分类: 

Drupal覆写模板规则

 

node-[type].tpl.php

基模板: node.tpl.php

节点类型,例如"node-story.tpl.php", "node-blog.tpl.php",等等.

 

page-[front|internal/path].tpl.php

基模板: page.tpl.php

可以有无数个建议.具有优先级的为首页(front page).剩下的都是基于当前页面的内部路径。不要将内部路径和路径别名混淆了,这里不能使用路径别名。记住,通常使用pathauto.module来设置路径别名。

可通过"Administrator > Site configuration > Site information"来设置首页。对于设置好的首页,将会为其使用"page-front.tpl.php"模板。

下面为模板建议文件,根据内部路径,越特殊的次序越靠前。如果系统为当前页面找到了一个模板建议的话,就不会再调用位于它后面的模板建议了。例如,对于http://www.example.com/node/1/edit,将会有下面的建议可用:

博客分类: 

PHP5魔术方法和魔术变量

PHP5魔术方法魔术函数:    1、__construct()    构造函数 : 实例化对象时被调用,    当__construct和以类名为函数名的构造函数同时存在时,__construct将被调用,另一个不被调用、2、__destruct()析构函数 : 当删除一个对象或对象操作终止时被调用(程序结束后对象就摧毁)、永远都是最后执行的、3、__call()    对象调用某个方法,    若方法存在,则直接调用;若不存在,则会去调用__call函数、4、__get()    读取一个对象的属性时,若属性存在,则直接返回属性值;若不存在,则会调用__get函数、5、__set()设置一个对象的属性时,若属性存在,则直接赋值;若不存在,则会调用__set函数、 6、__toString()打印一个对象的时被调用、如echo $obj;或print $obj;7、__clone()克隆对象时被调用、如:$t=new Test();$t1=clone $t;8、__sleep()serialize之前被调用、若对象比较大,想删减一点东东再序列化,可考虑一下此函数、9、__wakeup()unserialize时被调用,做些对象的初始化工作、10、__isset()检测一个对象的属性是否存在时被调用、如:isset($c->name)、11、__unset()unset

如何成为“10倍效率”的开发者

如何成为“10倍效率”的开发者作为一名程序开发者,除了要求更好的代码质量以外,开发效率也是不可忽略的。从Brad Feld的一篇文章The Rise of Developeronomics中提到的“10倍效率开发者”的概念!下面文章将给出如何去提高这么诱人的开发效率的答案。 Brad Feld的一篇文章The Rise of Developeronomics中提到了“10倍效率的开发者(10x developer)”的概念(伟大的开发者的效率往往比一般的开发者高很多,而不只是一点点),Adam Loving在读了之后受到启发,并向多位大牛(Ben Sharpe、Collin Watson和Jonathan Locke)询问如何成为“10倍效率的开发者”,最后得到了以下的答案。

1、只做需要做的工作

◆  使用敏捷方法;

◆ 全心全意做UX设计;

◆ 沟通第一;

◆ 编码也许不是解决问题的办法;

◆ 过早的优化是一切罪恶的根源;

◆ 选择最简单的解决方案。

Drupal Theme 学习心得

theme的一组可覆写列表参考:
http://api.drupal.org/api/drupal/includes--theme.inc/group/themeable/6

page.tpl.php

node.tpl.php

block.tpl.php
For example:
block-modulename-delta.tpl.php
block-modulename.tpl.php
block-region.tpl.php
block.tpl.php

block-user-1.tpl.php
block-user.tpl.php
block-left.tpl.php
block.tpl.php

block-user-3.tpl.php // Target just the Who's online block.
block-user.tpl.php // Target all block output by user module.
block-footer.tpl.php // Target all blocks in the footer region.
block.tpl.php // Target all blocks on any page.

comment.tpl.php

博客分类: 

页面