Drupal 7 开发内部培训资料, 分头诗人

Drupal 页面请求的处理过程

1. Someone fires a request to your webserver. They might get a cookie if they've already logged into the site.
2. The server gets the request. It goes to .htaccess which says everything should go to index.php
3. index.php loads the APIs and gets them ready to handle the request
4. The Menu API which was loaded looks up the paths that different modules have registered that they handle.
5. The module gets the request and fires hooks to see whether any module wants to help while it's building the page.
6. The module returns some info back to the menu system.
7. If the everything looks good, it figures out which theme is active and hands off the raw data to the theme layer.
8. That gets kicked back to Drupal.
9. That gets kicked back to the web server, which kicks it back to the user.

通过 render 渲染drupal 的字段格式。

例如:node里面有一个field_image的字段,读取他的默认显示样式:

方法1:

$node = node_load($nid);
$content = node_view($node, 'full');
$row['image'] = drupal_render($content['field_image']);

方法2:

$node = node_load($nid);
$content = field_view_field('node', $node, 'field_image');
$row['image'] = render($content);

如果你想应用后台内容类型的设置显示格式,就需要改写代码:

$node = node_load($nid);
// Must load field content for entity before using field_view_value()
$fields = field_get_items('node', $node, 'field_image');
// $index corresponds to the value you want to render. First value = 0.
$index = 0;
$content = field_view_value('node', $node, 'field_image', $fields[$index]);
$row['image'] = render($content);

如果想自定义样式,可以

$display = array('type' => 'my_formatter');
$content = field_view_field('node', $node, 'field_image', $display);
$row['image'] = render($content)'

如何在Drupal当中获取node id?

第一种方法:

 //get node id
  global $node;
  print_r($node);
  $nid = $node->nid;
  dsm(strval($nid));

 

第二种方法:使用url ''node/{nid}'  :

if ( arg(0) == 'node' && is_numeric(arg(1)) && ! arg(2) ) {
  $node = node_load(arg(1));
  print_r($node);
  // Do something with $node
  // If all you need is the nid you can use
  // $nid = arg(1)

 

 

第三种方法:

$node = menu_get_object();
$nid=$node->nid;
dsm(strval($nid));

参考资料:

http://drupal.stackexchange.com/questions/6638/get-a-node-id-from-the-url

通过node.tpl.php复写,分页显示node。

如果不使用view,一个node.tpl.php复写,怎么在node.tpl.php中分页显示node

在Windows 下安装drush。

Drush是一个在命令行使用的php脚本库,在服务器本地通过php解释器调用执行,可以用命令行操作的形式管理Drupal站点,功能包括几乎所有的常用操作,比如下载安装模块和主题,管理数据库,管理用户等等。

在过往,windows 安装drush 挺麻烦的。这里有介绍了drush在windows的安装步骤,需要安装一系列的小工具软件。而现在,在windows 下安装变得非常容易,因为现在又了一个新的套件工具叫:Drush Windows Installer

它是把一些必须用到的工具整合起来一起安装并且配置好环境,使用方法:

Drush Windows Installer 安装完后,你会在桌面上发现一个图标,

直接双击它就进入了命令行窗口,cd到你的某个网站文件夹根目录下(index.php所在目录),比如我的是:

D:\wamp\www

然后就可以通过这个进行命令行操作了

最常用的命令有:

drush help (查看命令帮助)

drush cc (清缓存)

drush cron (运行cron)

 

drush dl 模块名 (下载模块,如果你有modules/contrib,那么默认就下载到这里,直接是已经解压缩的文件夹哦!)

drush en 模块名 (启用模块)

drush dis 模块名 (卸载模块)

drush fl (列出所有feature,如果启用了features模块)

drush fr feature名 (revert feature)

 

 

这里以安装drupal 为一个简单例子:

在d:\wamp\www 命令提示符下输入:

如何才能学好Drupal?

一眨眼接触Drupal已经三个多月了,这3个月来,看了一些Drupal资料,中文的有清华大学出版社的《Drupal7宝典》,英文的有《Drupal 7 first look》、《Drupal Views Coolbook》、《Drupal 7 Themes》,目前正在看《The Definitive Guide to Drupal 7》,接下来准备看《Drupal 7 Module Development》和《Pro Drupal 7 Development》。在学习过程中搭建了10几个网站,都是一些实验性的,还没搭建过正式的站点。改过别人的主题和模块,自己没写过,所以远不能算入门,最多只算初窥门径,a little而已。

学习过程中每天必看的是猪跑啦和myDrupal(诗人,你把老梁的链接地址搞错了吧?),知道了国内的一些Drupal大牛,如老葛、Lugir袁、方医生、分头诗人、上海的戴文、香港的老梁等等,对这些人相当敬仰(戴文是公司,不是个人),最大的梦想就是N年后水平能与他们比肩。

接下来学习的路还很长,学习过程中最大的体会就是Drupal太难,不是一般的难,学好它可能需要以下的知识储备:

一、PHP
Drupal是PHP开发的,因此这个是基础。要精通字符型和数组型数据结构,Drupal程序里经常看到"=>"运算符,还有嵌套数组。要学会OOP编程方法,在Drupal里也会经常看到运算符:"->"和"::"。


二、CSS(2.1和3)、HTML(DHTML、HTML5)
HTML5和CSS3是以后的趋势,一定要掌握。Drupal里响应式的主题渐成趋势,Zen、Omega、AT等都支持响应式布局,所以要了解Bootstrap之类的目前比较流行的网页架构。

三、Javascript
主要是jQuery库,以及AJAX方法

四、服务器操作系统
Windows、Linux、Unix是目前常用的服务器操作系统,要精通一个熟悉另2个。

五、WEB服务器
IIS、Apache,Nginx,其中Apache一定要精通

六、数据库
起码得懂MySQL,以及MySQL的Master/Slave配置。最好知道点NoSQL数据库,以后肯定用得着。

七节课掌握DRUPAL7应用之二:了解DRUPAL的基本功能

上一节课我们讲了DRUPAL安装,这节课我们主要了解几个DRUPAL的基础功能和设定。

1、媒体站点的主布局和基本元素

    区域一:头部 (header)

  •     标志(logo)
  •     菜单(menu)

   区域二:顶部(top)

   幻灯片(Slideshow

  

   区域三:内容区(content)

   博客列表(blog post)

  

   区域四:边栏区(sidebar)

   搜索(search)

   导航 (navigation)

   用户登陆(user login)

   投票 (poll)

   最近评论(recent comments)

  

   区域五:后记(postscript)

   自定义区块1

   自定义区块2

   自定义区块3

   自定义区块4

  

    区域六:脚注 (footer)

   底部logo(footer logo)

   底部菜单 (footer menu)

 

 

 

 


区块的管理与配置

正如你上面看到的,这是发行版本专门定制的一个主页页面,它的布局区域划分为六块。

不同区域放置了不同的区块,比如:最近评论、登录、投票等。你可以将不同的内容区块,

放在需要展示的区域中。

区块设置

你可以按照以下步骤进行区块设置:

1、进入后台管理界面——结构——区块管理(英文路径:Admin/structure/blocks),可以看到各区块列表。

七节课掌握DRUPAL7应用之一:让我们轻松进入DRUPAL

不知道各位怎么开始接触DRUPAL,你可能是看了某站上的介绍文,听了某位不怀好意朋友的推荐,又或是某个大虾在某文中提过
,甚至是你们老板要求你用的。嗯,我想你刚从drupal官网下载原生版本之后的数天,可能会像这个暴漫的。
坑爹呀,根本不像人家说的那么好用!还有那些说好的功能都在哪里呢?
呃,你要么选择放弃,又或者选择以下这个方式:
你可以通过下来这7节课去掌握drupal的基本应用,
配合一个专门为入门设计的drupal发行版本(所谓的发行版就是封装了一些特定的模块和功能,安装就可以搭建一个可以直接使用的平台。)
相信你会熟悉怎么使用drupal,更有兴趣去探索drupal之国的,
那么我们现在开始第一节课,轻松进入drupal吧

在block中利用Token + Token Filter,把Drupal中可变的参数(如%user)读出来。

假使我新建一个block,并且block 要输出当前用户的一个链接。如

您好! <a href="user/3">猪跑啦</a> 欢迎光临。

以前一直不知道如何实现。现在终于找到方法了,就是利用Token + Token Filter组合。

 

在block内容中输入

 

 

您好! <a href="user/[useruid]">[username]</a> 欢迎光临。

 

高薪聘请Drupal magento tester。工作地点:上海徐汇 。

Woger is a rapidly expanding Dutch e-commerce company dealing with “life-style” products on the European market. They are currently active in 8 countries. Their selling channels are various European webshops, ebay and b-to-b.

页面

订阅 RSS - 博客