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

drupal自定汉化

drupal汉化的方式教程已经说过了,说下自定义汉化,但是仍然有很多没有汉化的字符,这些可能是来自第三方的,也有可能是不需要汉化的。这时候需要我们自己汉化了

例如我在编辑页面加了个保存草稿,和保存对于客户来说概念上不好区分,因为他们发表文章需要审核,所以要改为提交,还有列表页的新建提示的红字不好看,改回原来的new

新建一个后缀名为.po的文件例如drupal-tying.zh-hans.po

然后里面添加代码 

msgid "Save configuration"
msgstr "保存"
msgid "Save"
msgstr "提交"
msgid "Participants"
msgstr "发信人"
msgid "Last Updated"
msgstr "发送时间"
msgid "new"
msgstr "new"
msgid "Actions..."
msgstr "操作"

msgid "英文需要翻译字符“
msgstr   ”翻译后字符“

在dupal中只有t()函数里面的字符可以翻译

drupal与普通编程的相同之处

说说drupal的开发的一些想法。

可以吧drupal看做一个集成了大量api的框架

当然有很多东西必须是必须要用的,例如hook_memu,drupal表单、数据库操作函数、权限处理

很多东西不是必须要用,可以直接使用我们常用的php文件,例如自定义模板,当然对已这个框架来说需要记住的api太多了

这么说可能不是很直观,举个例子吧

/*
 *hook_menu
 *这个函数对于有一些需要自定义的页面的人来说是必须的,例如我想做一个提供接口的api给其他程序
 *
 *user_is_logged_in() 这个是判断用户是否为登陆,drupal定义函数,登陆返回true,否则为ffalse,
 *通过这里我们可以根据需求自定义访问的权限,当然不是drupal的方式,但是他可以实现一些需求,drupal的方式通过hook_permission()
 */
function hook_menu(){
    $items['test']=array(
        'title'=>t('_test_hello'),
        'page callback' => '_test',//页面调用函数
        'access callback' => user_is_logged_in(),//如果全部用户可以反问可以为true
    );
    return $items;
}
function _test_hello(){
  $output = "hello word!";
  return $output;
}
?>

访问localhost/drupal/test, 发现hello word! 出现在了前台的内容页面,当然这个只是最简单的例子,但是对于编程来说这是一种方式,假设当views没有开发出来的的时候,我需要在_test_hello()中操作数据库,这是最原始的解决方法,对于views出现之后,对drupaler来说这也是不推荐的,随便在数据库里面新建个表article吧,然后字段随便建几个和node相同吧,多个nid和node以便关联,既可以修改了

Drupal获取保存外部图片文件的方法

Drupal获取保存外部图片文件的方法

function get_external_image($url) { 
    $external_image = file_get_contents($url);
    $parsed_url = parse_url($url);
    $name_dest = rand(1000,9999)."_". basename($parsed_url["path"]);
    $file = file_save_data($external_image, 'public://'.$name_dest , FILE_EXISTS_REPLACE);
    if (is_object($file) && file_exists($file->uri)) {
        $file->status = 1;
        $file = file_save($file);
        drupal_write_record('file_usage', $file);
        return (array) $file;
    }
    return null;
}

get_external_image("http://www.drupalla.com/logo.gif");

drupal8初探,d8和d7关于模块通用的方式

drupal8的bate版本出来了,据说d8手册已经出来了,在百度上面搜了下没有找到 ,T-T,唉,只能自己没事瞎琢磨了

这些只是自己瞎猜测的没有进行实践

发现目录结构变化了很多,网站的theme和module该到了根目录themes和modules里面。 同时兼容d7的方式sites/all/的方式

在sites下的readme 是这么说的,大意差不多

This directory structure contains the settings and configuration files specific
to your site or sites and is an integral part of multisite configurations.

It is now recommended to place your custom and downloaded extensions in the
/modules, /themes, and /profiles directories located in the Drupal root. The
sites/all/ subdirectory structure, which was recommended in previous versions
of Drupal, is still supported.

See core/INSTALL.txt for information about single-site installation or
multisite configuration.

关于模块

然后看了下d8的模块目录,看了下dblog模块,发现这个就是watchdog的记录插入数据库方式

name.module文件最醒目,和d7差不多

Drupal中inc文件的理解和用法

Drupal中inc文件是可以调用的php文件。

Drupal中Inc文件作用是用来定义函数

Drupal中Inc文件的用法:

1、导入的方法module_load_include();

1
2
3
4
5
6
<?php
// Load node.admin.inc from the node module.
  module_load_include('inc', 'node', 'node.admin');
  // Load content_types.inc from the node module.
  module_load_include('inc', 'node', 'content_types');
?>

2、菜单调用的方法

Drupal 8 分享,9月6日下午2点 广州drupal聚会。

本次交流会将邀请诗人来给大家谈谈他使用drupal8的经验和感受,与大家一齐讨论下还在测试期的drupal8。视频是Drupal 8的分享录像,大家可以打开来看。

链接:http://pan.baidu.com/s/1ntslavJ 密码:7q0s

9月6日下午2点 广州drupal聚会,诚邀您参加。

各位Drupaler,我们将在9月6日下午2点 在广州组织drupal聚会,本次聚会主题是从d7到d8,地点:广州市天河区五山路263~265号 瑞华大厦505室,届时Boz Hogan(Drupal7权威指南英文版的组织者之一)将会给大家介绍Drupal 8,这次Boz Hogan 从(美国) 远道而来,对我们而言意义重大。各位热爱Drupal的朋友们,别错过了这么难得的机会。

 

主题:从Drupal7 到 Drupal8

时间:2014年9月6 日(周六)下午2:00 - 5:30

地点:会议地点:广州市天河区五山路263~265号 瑞华大厦505室(地铁3号线到华师站E出口出站,看到有七天连锁酒店招牌那栋楼即是)

通过Form Api 建立图片上传预览效果。

我们都知道Form API 可以通过managed_file进行增加文件上传字段。但默认的managed_file却没有图片预览功能。那么如果我们需要上传的是图片。如何做到上传图片后有预览图呢?看看下面的代码你就明白了

1,建立form:

6月22日,Drupal 广州交流研讨会

6月22日,广州地区举办了Drupal 交流研讨会,广州、东莞、深圳以及上海等各地的Drupaller如期聚集到了一起。特别是龙马以及希望之翼千里迢迢的从上海过来,并在聚会时候跟大家分享了宝贵的经验。很多大神都参加了,特别需要感谢民健组织了这次聚会,期待广东地区Drupal 交流聚会越办越好!

七节课掌握DRUPAL7应用之四:drupal站点的日常技术维护

我们这节课将重点讲下drupal网站的日常技术运维工作。事实上稍大的网站都会有运维组(更大的会叫运维中心或运维部),专门负责网站技术维护升级,排障恢复等事宜,负责这事的人叫做运维工程师(虽然他们经常被叫做修电脑或者看机子的,但他们真不是干这些的)。额,听起来挺技术挺复杂的。不过不用担心,drupal已经为大家提供了相当自助化的技术维护功能,操作简单容易上手。话说回来,你如果自己搭建网站也建议多了解这方面知识,认识一个运维工程师的好基友就最好了。
PS:本节课只讲drupal站点本身日常的技术维护,不会涉及太多服务器维护的内容。
好的!我们就从网站日常的检测报告开始吧。

查看站点状态报告

正如人们会定期体检,并收到医生的一份体检报告。而对于网站来说也是需要一份说明当前站点状态的报告。使用drupal本身自带的系统状态报告功能,你能很方便地查看站点当前状态及时发现问题进行维护。

如何进入站点状态报告(status reports)?
点击进入管理界面(admin),再点进报告界面(reports)就能看到站点状态报告(Status reports)这一项。
你就能看到如下图的站点状态报告,对应路径(/admin/reports/status)。

从上面可以看到,正常的情况是只看到绿色和蓝色的状态条.如果出现红色的标记,则意味着你的
drupal站点有某些问题需要处理了.

通常来说,drupal官方站点会自动提示需要更新模块版本的,特别是安全性更新的时候
会有红色的警告提示用户.下边就来说下怎样进更新操作。

如何进行更新

首先要学会区分更新(Updating)和升级(Upgrading),在drupal的世界里这是两个不同的行为。

更新是指将你站点的drupal程序进行小版本更替,比如从drupal核心的7.26更替到7.28.

升级,相对而言就是将整个drupal站的主版本升级到另外一个新的主版本,比如从drupal6升级到drupal7。


而在本文里,我们只是说明怎么进行drupal站的更新。至于要将drupal站点进行大版本的升级,那就是一项相当复杂的工作了,必须要有drupal专家级的人才能搞定。

好了,先看下如何知道那些模块需要更新吧

页面

订阅 RSS - 博客