Drupal 7

By admin, 14 十二月, 2021

默认情况下1小时内50次登录失败会封IP。下面SQL可改修改该次数:

update variable set value='i:60000;' where name='user_failed_login_ip_limit';

标签

By admin, 10 十一月, 2020

默认情况下,Drupal7输错5次口令/密码会锁定账号21600秒。以下语句可改写这个规则:

update variable set value='i:5;' where name='user_failed_login_user_limit';

标签

By admin, 13 九月, 2017

1. 注册theme

function weike_course_evaluate_theme() {

  return array(

    'weike_course_evaluate_all'  => array(

      'render element' => 'form',

    ),

  );

}

2. 生成form,数据以value类型form元素传递。

function weike_course_evaluate_all($form, &$form_state) {

  $result = db_query('…');

  $form['data'] = array();

标签

By admin, 12 四月, 2017

1. 通过db_query执行原生SQL语句

$ret = db_query('SELECT * FROM test_table  WHERE tid = :tid', array(':tid' => $tid);

db_query语句返回的是一个对象,但是这个对象可以通过foreach遍历,就好像$ret是一个数组一样遍历。其成员是对象。

 

foreach ($ret as $row) {

  echo $row->tid;

}

要注意的是,db_query语句返回的结果虽然可以项数组一样遍历,但只能遍历一次。其内部的实际逻辑是遍历的时候向数据库获取新一行数据,当数据获取完之后并不会重头再获取。

标签

By admin, 28 二月, 2017

要学习Drupal 7作为PHP框架的应用首先要学习怎样写模块,我们以创建一个最简单的hello模块为例。

先创建模块目录:sites/default/modules/hello

一个最简单的Drupal 7模块至少包含两个文件:hello.info, hello.module

hello.info是对模块信息的描述:

 

name = "Hello"
description = "Hello World"
package = "Other"
core = "7.x"
version = "7.x-1.0"

hello.module的内容如下:

标签

By admin, 24 二月, 2017

一般的PHP框架并没有一套机制去定义数据库表,通常是自己通过phpMyAdmin直接创建,或者把创建的语句写成SQL保存下来并执行。这个方式对于只维护一个网站问题不大。但如果要做成一个通用的插件,或者说这件事要在成千上万的网站上做就有问题了。

Drupal 7里,我们自己的模块如果要新增数据表,可以先在phpMyAdmin里创建。然后通过结构->schema->inspect来查看这个表在Drupal里的表示方式,如下图:

Drupal查看数据表结构

我们新增的表会出现在Unknown区域,复制代码。

标签

By admin, 28 十二月, 2016

首先,我们需要用db_select,而不是db_query来写表格的查询语句。

其次,我们需要调用 ->extend('PagerDefault')

最后,我们调用theme('pager')显示页码控件,就是这么简单!

下面是代码例子:

 

$query = db_select('node', 'n')

      ->extend('PagerDefault')

      ->fields('n', array('nid', 'title'))

      ->distinct()

      ->limit(10);

 

标签

By admin, 2 十二月, 2016

本教程将以最小的篇幅解释Drupal 7里最核心的两个概念:怎样创建自己的模块和怎样操作表单。

首先下载examples模块,启用其中的form_example子模块。我们将分析form_example的代码。examples模块是学习Drupal的很好资料,读者可以自行学习其它子模块。

1. 模块文件结构

Drupal 7的模块以模块名作为文件夹的名称,放在Drupal代码目录树里的某个modules文件夹内。系统模块放在Drupal根目录的modules下。Drupal官网上可以下载的模块可以放在sites/all/modules下。而自己创建的模块可以放在sites/default/modules下。这不是绝对的,不按这样的规则去放,模块也能被识别出来。如果在不同modules里放有同名的模块,会产生冲突。

一个模块的的文件夹里至少包含两个文件:foo.info和foo.module。这里的foo是指模块名,对于form_example来说就是form_example.info和form_example.module。

标签