首页 / 帖子
如何快速完成美工HTML和DRUPAL数据的整合?

项目现在是前端美工把静态页面全部都做好了,包括各种浏览器的测试、JS效果、多平台的兼容性,剩下的就是把静态页面中的测试数据变成动态的。这时程序员用DRUPAL整合的时候完全用VIEWS、PANELS再去重新生成页面,复写第三方模块的模板,这个效率我不知道如何评定?

一般用ZF、CI、THINKPHP等都是这样开发的,美工把静态页面做好,我们只写方法调数据动态显示,分工非常的明确,出现了问题也比较容易锁定。

但在DRUPAL中真心不知道如何去沿用这一开发模式,请求大神指导。谢谢……


我在DRUPAL大学中看到一些帖子说是用DRUPAL api,能否有一些资料。

8个答案
陈蹊
发布于:2014-09-18 12:56

感觉Drupal跟ZF、CI不太一样,前端程序员还是套不进去,因为views、panel会生成HTML结构和代码还有自带的class,这个你让后端搞,会疯掉的,还是需要交给前端工程师搞,但是前端工程师需要懂一点drupal,这也是Drupal比较麻烦的地方。。

所以Drupal开发不好找啊!

刘伯彪
发布于:2014-09-19 09:11

纯API/Services的方式也可以,但是工作量比较大,并且很多Drupal的模块不能用。

前台只能用angularjs、backbone这类MVC控制,基本就完全脱离Drupal了,所以一般情况下,不推荐这种做法,除非你要做一个webapp之类。

Drupal的前端/美工还是单独需要一个,一般的前端,如果懂点PHP之类的,学习学习至少可以上手,至于views\panels之类,还得高级一点的前端工程师,比如大漠 ^_^

王斌
发布于:2014-09-19 10:22

总的来说,drupal的开发模式比较特别,前端单纯的去切页面然后后端去套数据是不太合适的,有点浪费时间的感觉。

目前的drupal主题程序员其实大概分为两种,第一种呢偏程序,对css部分不是很好,所以很多问题想到的解决方法就是程序的思维,如覆写模板,模块化;第二种呢偏css部分,对drupal或js不太了解,想到的解决办法就是后端做好了我来样式化就可以了。当然所有的不管黑猫白猫,能抓到老鼠的就是好猫,最终不论以哪种方法解决了问题,就ok了,但最好的主题程序员应该是两者兼得,知道哪种方法是最合适,最有效的。

你的疑惑其实是很多小公司的疑惑,最好的解决办法是让你们的美工了解drupal,当然一开始不必要了解其运行机制什么的,而是其生成好的结构,然后针对这些目前已经拥有的结构去美化。当然如果css本来就半桶水的话,drupal这么庞大的html结构体系,要想熟悉还是需要一段时间的,当然如果你们目前有程序员对css很感兴趣,那也可以让他转向主题程序员试试,多学习css。这两种办法都能砍掉你现在的先出页面再套数据的方案,也是开发drupal主题的最优方案。

发布于:2014-09-19 10:35




我为什么要对drupal模块panels说不? --这是我刚写的,所以加在前面。

--------------

既然zf,ci都可以配合好,那dp不可以?比较dp和ci,yii之间的区别,优势是 panels这块,答案明显不是。

说来说去,还是dp程序员 不愿意在主题开发上花时间。而用java,ci,yii,那程序员必须在主题上和前端配合。

 一个是必须,没得选了,
而dp因为有了panels,就变得可选了。把问题丢给前端。这是本质 。

 一旦事情有了可选项,扯皮的事就来了
就好比,坐公交,要是座位一多,就得选 了,要是只有一个,估计也不会多想吧!


最后总结,这还得具体到项目的要求,要是psd效果很细致的话,用panels对前端来说是非常没道理的,那么多嵌套的div大大提高前端制作时间成本,另外也会有情绪,把简单的搞复杂。


如果psd要求不高,或是不需要太多css效果,这时为了方便程序员,可以用panels.


-------------

解决方案:

前面提了要不要用panels。

接下来谈drupal主题开发的解决方案。

第一种,就是用panels,display suit这样的模块,在前端产生大量不需要的div。这样前端就没有办法事先做好静态效果。


第二种,就是前端事先做好静态效果。然后程序员像ci,yii一样,配合前端一起来套。还有一种办法,就是前端学点php,用drupal人工桥。这也是tvdrupal视频教程的重点,让前端独立的去套主题。

--------

结束!


闻涛
发布于:2014-09-19 16:28

Drupal本身是很灵活的,包容任何开发模式,但不代表任何开发模式都能将所有的Drupal特性,优点用起来,用好。这里存在一个取舍的问题。


所以,如果你一定要使用美工先写好的静态页面,意味着你把Drupal当成和Yii, ZF类似的东西来用,这意味着你只能从数据结构和API的角度去使用Drupal,或者说你把Drupal当成了开发框架。


但Drupal不仅仅是个开发框架,TA是CMF,是准系统,许多优秀的模块不仅有API,还有可以帮你生成前端界面或者区块的能力,比如Views, Panels, Display Suite等等,如果你看上的是Drupal的这些优点,那你最好还是先构建页面,然后让前端根据页面结构来写样式。


更进一步的,你可以把Views, Panels输出的结构和CSS类做简化,但这意味者你的团队要特别精通Drupal以及这些重量级模块,你需要花额外的时间精力就优化输出,这里存在风险和是否值得的问题。


所以,我觉得除非不差人,不差钱的项目,否则最后这种精益求精的模式基本不现实,要是我,要么抛弃那些重量级模块,用ZF, Yii的思路用Drupal。要么就走经典Drupal开发的路子,这需要前端工程师做一点点改变来适应Drupal。


最后,不用Views, Panels做出来的网站,也可以很漂亮,很快,例如一个朋友开发的站点:http://www.dailyvitamin.cn

刘伯彪
发布于:2014-12-05 09:37

Drupal的html是按块拆分的,并不是一个页面一个html。所以前端设计html的时候就需要考虑。这样Drupal后端就比较好操作。

老葛
发布于:2015-01-30 00:46

我用durpal 做的 lol.garena.com cm.garena.com 效果咋样?

王斌
发布于:2015-02-02 17:17

我觉得让你们的前端学会 if switch foreach print就好了,接下来在页面用 dpm() 把变量打印出来让他去套就好了。ps:我没试过这招,如果可行请告诉我。