Drupal建站过程思考——不识庐山真面目,只缘身在此山中

使用drupal与没有使用drupal,在网站的设计过程上本质是一样的!所以,我们在使用drupal建一个新网站时,要时刻联想自己在没有drupal时是如何设计开发的。

不使用drupal时,我们通常按如下步骤设计开发一个网站:

1.静态页面设计。主要包括主页、二级列表页、二级内容页三类页面,制作过程一般是:PS效果图->切图->HTML/CSS/JS静态页。通常一个优秀的美工/前端工程师,可以搞定这一切,比如我们的XiaoLu童鞋。

2.静态页面整理/页面布局整理——对代码进行切块、拆分。在自己开发时(如使用PHP或ASP.NET MVC技术开发),我们通常会将共享的代码拆分为小文件(或称PartialView、用户控件等),如banner、footer等html代码或共享的css、js代码拆分为一个个小文件,可供其它页面include使用。

在使用ASP.NET MVC技术开发时,我们会在视图中设计一个或多个_Layout页面,使得后续开发的页面可以套用这些_Layout页面。Layout-“布局”也,“框架”也,“母板”也,“模板”也!通常我们至少需要一个主页Layout、一个二级Layout。

备注:在纯静态页环境下,我们可以在页面中借助jquery技术(如$(”#divID”).load(”footer.html”))载入那些共享的html代码页。

一个理想的前端工程师也应该搞定本步骤中的一切,所以XiaoLu童鞋加油哦!

3.数据库表设计。将要动态发布的信息设计为数据表,比如新闻、图书信息、企业信息等,并先手工录入一些测试数据。(这里暂不考虑具有复杂业务流程的数据)

4.动态内容展示页面的编程。结合数据表,编程呈现新闻列表、新闻内容等动态内容展示页面。通常这些动态页都自动套用相应的_Layout“布局模板页”。

5.后台管理功能的编程。不是本文重点,在此不再赘述。

~~~~~~~~~~~~~~~~~~~~~~~~~

Drupal的优势即是高度抽象替代了编程部分,不需要编程了!这与一些代码自动生成工具本质上没有区别,只不过它比那些工具在建网站这方面更全面、更出色!

从这个角度看,使用drupal建网站时,前面的第1、2、3步骤应是一样的(无限相近的),第4、5步骤则是在drupal后台配置即可实现的。

当然,结合drupal自身特点,我们归纳总结一下使用drupal建网站时的步骤:

1.静态页面设计。(同上)

2.静态页面整理/页面布局整理。(同上)

3.静态页面布局转化为drupal主题。通常基于zen主题制作子主题。如果第2步做得好,这一步会相对轻松!这一步实际上是drupal中的区域/区块的划分与设计过程,其与第2步是何其相似!

4.内容类型设计(实质等同于数据库表设计)。添加相应的内容类型,同时添加一些内容,等同于录入一些测试数据。

5.视图设计。Drupal中“视图”的概念与数据库中“视图”的概念是相似的,可以理解为对数据表中数据的List呈现。针对已添加的内容类型(数据表),分别添加相应的视图(数据视图),视图最终以区块的形式呈现到页面中。

6.区块设置。将视图区块,或者一些静态区块放置到合适的区域。

7.后台管理功能设置。配置并开放合适的账号给客户,用于管理发布内容。Drupal后台也有很多漂亮的第三方主题可供下载使用。后台管理功能暂不深入研究了。

备注:Drupal建网站详细过程参见《如何将普通网站转为Drupal网站》。

 

综上:

(1)第5、6、7步是替代人工编程的部分,特别是第5、6步其实质可以理解为代码自动生成工具。

(2)特别注意第2步一定要做到位,不要省略!不要有了静态页面就急着向drupal主题转化!

~~~~~~~~~~~~~~~~~~~~~~~~~

总结:

(1)拆分大问题。我们往往会忽略了第2步“静态页面整理”,然后觉得将一个静态网站转换为drupal主题太复杂了——问题之所以复杂,往往是因为实现过程的耦合度太高,步骤粒度太大,步子迈得太大,感觉上一团乱麻。如果把过程梳理得更清晰一些、更细致一些,步骤粒度小一些,可能问题就没有那么难以解决了。大问题总可以拆分为更小的两个问题,总可以这样拆分下去。如果面对问题感觉没有头绪,就去拆分问题吧!

(2)抽身看问题。钻进问题里,有时会看不清问题的本质,就象我们总想用drupal解决所有问题一样,被drupal强大、繁多的功能所迷惑,不可自拔。放下drupal,想一想没有它我们怎么做,然后有它我们该怎么做。诗云“不识庐山真面目,只缘身在此山中”,诗又云“不畏浮云遮望眼,只缘身在最高层”。如果能够抽身并站在庐山之上看庐山,自然能够看个清清楚楚、明明白白。

 

 

 

夏春涛  

2014-07-31

原文地址:https://www.cnblogs.com/huazeming/p/3879712.html