BlueSnow,动物界-脊索动物门-脊椎动物亚门-哺乳动物纲-灵长目-类人猿亚目-狭鼻猴次目-人猿超科-人科-人属-智人种、雄性、昼伏夜出、喜独居、杂食,1996年至今一直作为程序员生活,恋过爱、失过恋、结了婚、有了儿子。

Drupal常用开发工具(一)——Devel模块

BlueSnow 提交于 周五, 03/04/2016 - 14:56

进行 Drupal 开发时有许多模块和工具可供使用,其中最常用的两项便是 Devel 及 Drupal for Firebug。本文和《Drupal常用开发工具(二)——Drupal for Firebug》将分别对它们进行介绍。

  与本文相关的很多内容可以通过 Devel Demo 模块进行查看,如有纠正或补充可以在官方问题队列中发帖,也可以在本文后进行留言。

 

Devel模块

  Devel 集合了多个开发辅助模块,除了作为核心的 Devel 模块外,Devel 模块包中还包含了其它子模块,如 Devel Generate 可用于生成测试内容、术语和用户等。(注意Theme Developer 模块已经从Devel 模块中分离出来成为单独的模块)

  Devel 的子模块并不在本文中进行介绍,如有兴趣可到项目页面阅读相关的说明文档。

 

dpm()

Drupal开发时如何使用远端图片减轻工作量

BlueSnow 提交于 周五, 03/04/2016 - 14:55

如果你有遇到过较大规模的 Drupal 项目,便可能已经发现了当 files 目录过大对开发所带来的巨大挑战。如何让开发服务器(或者你的个人电脑)与这些文件保持同步是件非常痛苦的事情,但如果不这样做,往往又会因为无法使用用 户上传的文件或附件,使网站开发过程中的很多重要的问题无法被发现。

  要解决这个问题有非常多的办法,但要么非常慢,要么非常复杂。例如使用Drush命令或者使用脚本程序将网站的文件下载后再上传到本地开发环 境,甚至有人会考虑使用FTP执行这样的操作(请千万不要这样做)。尽管这些办法都能达到效果,但我还是希望能够节约宝贵时间和硬盘空间。

  最开始我们找到了 Stage File Proxy 模块,它能够让 Drupal 将所有的文件请求都定向到线上服务器,即使网站是在本地运行时也可以有效工作。但是要让这个模块正常工作,需要对网站进行一些调整并安装额外的模块。所以,尽管这个模块可以解决问题,但我还是希望能有其它的方案。

这些优化 Drupal 网站速度的超简单办法,你忽略了多少?

BlueSnow 提交于 周五, 03/04/2016 - 14:54

  “怎么样能让我的 Drupal 网站更快一些?”是我们最常遇到的一个问题。站点速度确实非常重要,因为它会影响你的 SEO排名效果、访客是否停留以及你自己管理网站所需要的时间。

  今天我们就来看看那些通过 Drupal 自带界面便能够实现的提速操作。

启用缓存

  通过访问“管理>配置>开发>性能”( admin/config/development/performance)页面可进行 Drupal 内置的性能优化设置页面。

通过REST服务器实现Drupal认证请求

BlueSnow 提交于 周五, 03/04/2016 - 14:50

通过使用 Drupal 的 Session 认证方式,可以很轻松地基于 REST 服务器实现用户认证。这种方式通过管理会话cookie得以实现。不过在通过代码(例如使用 drupal_http_request() 或 curl)实现这项操作时,还需要进行一些额外的工作并手动设置请求头的cookie信息。cookie头看起来是这样的:

Cookie: SESS5913ad7ed2adf92cab1103dad2f5596c=213d28535c6972e16430a4e1e03ce7ea

  以上信息由三部分组成:头部标识('Cookie'),会话名称 ('SESS5913ad7ed2adf92cab1103dad2f5596c'),以及会话 ID('213d28535c6972e16430a4e1e03ce7ea')。值得庆幸的是,当你请求 Services 模块提供的 user/login 资源时,会话名和会话ID都会作为响应对象的一部分返回,所以把它组合起来和下一个请求一起发出去非常简单。一旦这样做了,下一个请求将会以授权用户的会 话来执行。

使用 AngularJS 将 Drupal 功能移植到前端

BlueSnow 提交于 周五, 03/04/2016 - 14:49

在Lullabot,让网站追求更高性能和维护性是我们一直的目标。最近,我们开始解耦Drupal中的一些业务逻辑 ,并使用 JavaScript 将其移动到客户端浏览器。

  例如,我们希望在网站上显示给定城市的天气,涉及以下事项:

  1. 调用一些的公共API(可带参数)。 本例中我们选择   OpenWeatherMap
  2. 从返回结果中提取相应的气象数据。
  3. 将数据显示在浏览器中。

  其结果将如下图所示:

 使用AngulaJS在Drupal中实现的天气显示区块

Ubuntu14.04虚拟机安装VMware tools时无法找到kernel header path的问题

BlueSnow 提交于 周二, 02/02/2016 - 02:28

Ubuntu 13.04安装VMware Tools,解决无法找到kernel header path的问题
 
Ubuntu 13.04 安装 VMware Tools,运行vmware-config-tools.pl 时,总是提示
The path "" is not valid.
What is the location of the directory of C header files that match your running
kernel?
输入 /usr/src/linux-headers-3.8.0-26-generic/include 或 /lib/modules/3.8.0-26-generic/build/include 都提示“The path ...  is not valid.”。
 
用了半天时间才找到解决方案 555....分享一下。
 
1. 更新或安装linux headers
sudo apt-get update && sudo apt-get install build-essential linux-headers-$(uname -r)

【Drupal法】模块介绍 – Art Dialog

BlueSnow 提交于 周三, 10/21/2015 - 11:29

ArtDialog 是一个比较漂亮的对话框javascript库,已经有很长的历史,笔者打算使用artDialog作为drupal站点的对话框,因此开发了一个简单的模块来使用artDialog库,现在就简单的介绍一下artDialog模块。

首先,我们看一下artDialog的显示界面,如下图所示:

artDialog模块

 

安装了artDialog模块之后,我们就可以使用artDialog的javascript库了。

【Drupal】模块目录组织方式总结

BlueSnow 提交于 周三, 10/21/2015 - 11:28

我们都知道在drupal系 统目录下模块可以放在很多目录下,Drupal会按照一定的次序扫描所有的符合规范的目录下的模块。但是并不意味着我们可以随意放置模块,比如系统的 modules目录下放的都是核心自带的模块,为了以后的升级方便,我们不应该将模块放在/modules目录里面,那么Drupal的模块应该怎样放置 呢?

 

多站点模式

如果你的网站是以Drupal多站点方式运作的,意思是多个网站共享一套Drupal代码,这时我们的第三方模块一般都放在/sites/all /modules目录。而其他模块则分网站放到/sites/网站名/modules目录下,如果你的自定义模块想要跨多站共享的话,也需要放到 /sites/all/modules里,这时为了区分,你需要在/sites/all/modules目录里建子目录,例如contrib代表第三方模 块目录,custom代表自定义共享模块目录。

Drupal多站点其实还有一种不共享代码,只共享数据库的情况,但这与本文要讨论的主题无关,就不做过多说明了。

【Drupal】开发教程之模块Multiselect使用

BlueSnow 提交于 周三, 10/21/2015 - 11:25

  Drupal (link is external)二次开发的时候,我们经常要使用到多选列表,但是官方默认的多选下拉列表,如下图:

 

    视觉效果不堪入目,经过努力,找到了一款相貌不错的module。下面请看使用方法:

    第一:去官网下载(https://www.drupal.org/project/multiselect)模块,安装。