Drupal入門

トップ > Drupal入門 > モジュール > モジュールを作る

Drupal関数一覧

ごく一部ですが、Drupal のモジュール開発でよく利用される関数について説明します。

◆t($string, $args = array(), $langcode = NULL)

翻訳対象の文字列を指定します。.po ファイルがアップロードされ、$msg で指定された文字列に対応する翻訳があれば翻訳後の文字列を返します。

  $output = '<p> . t('This is Japan.') . '</p>';

文章中の @変数名 を引数で置換することも可能です。

  $output = t('This is @contry.', array(
    '@contry' => 'Japan',
  ));
◆user_access($string, $account = NULL, $reset = FALSE)

ユーザが権限を持っているかどうかを調べます。$account にはチェックしたいユーザ名を指定します。省略すると現在ログインしているユーザになります。$reset に TRUE を指定すると、ユーザーの権限情報のキャッシュをリセットします。

  if (user_access('administer users')) {
    :
  }
◆variable_set($name, $value)

Drupal の持続変数 $name に値 $value を設定します。持続変数はデータベースの variable テーブルに保存されます。

  variable_set('my_test_counter', '1234');
◆variable_get($name, $default)

Drupal の持続変数 $name を参照します。値が存在しない場合は $default を返します。

  $count = variable_get('my_test_counter', 0);
◆db_query($sql, $args...)

データベースに問い合わせます。%d や %s は引数に置き換えられます。

  $output = "";
  $result = db_query("SELECT uid, name FROM {users} WHERE status = %d", 1);
  while ($data = db_fetch_object($result)) {
    if ($data->uid != 0) {
      $output .= "<div>{$data->name}(uid={$data->uid})</div>\n";
    }
  }
◆db_query_range($sql, $arg..., $n, $m)

db_query() とほぼ同様ですが、実行結果の中から $n 番目から $m 個のデータのみを取り出します。

  $output = "";
  $result = db_query("SELECT name FROM {users} ORDER BY created DESC", 0, 5);
  while ($data = db_fetch_object($result)) {
    if ($data->uid != 0) {
      $output .= "<div>{$data->name}</div>\n";
    }
  }
◆db_fetch_object($result)

db_query()db_query_range() の実行結果として得られたデータリストをひとつずつ処理します。使い方は db_query() を参照してください。

◆drupal_get_form($form_id)

Drupal のポリシーに従ったフォームを表示します。$form_id にはフォームIDと呼ばれるフォーム関数名を指定します。フォーム関数では、フォーム情報の配列を返却します。

function test_menu() {
  $item['test'] = array(
    'title' => 'TEST',
    'page callback' => 'test_main',
    'access arguments' => array('do test'),
    'description' => 'Test module',
  );
  return $item;
}

function test_main() {
  return drupal_get_form('test_myform');
}

function test_myform() {
  $form = array();
  $form['name'] = array(
    '#title' => 'Name',
    '#type' => 'textfield',
    '#default_value' => 'Yamada Tarou',
    '#description' => 'Your name. (ex. Yamada Tarou)',
  );
  $form['age'] = array(
    '#title' => 'Age',
    '#type' => 'textfield',
    '#default_value' => '26',
    '#description' => 'Your age. (ex. 26)',
  );
  $form['sex'] = array(
    '#title' => 'Sex',
    '#type' => 'radios',
    '#options' => array('Male', 'Female'),
    '#default_value' => 0,
    '#description' => 'Your sex. (ex. Male)',
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => 'OK',
    '#submit' => array('test_myform_submit'),
  );
  return $form;
}

function test_myform_submit($form, &$form_state) {
  drupal_set_message(
    "<div>name:{$form_state['values']['name']}</div>\n" .
    "<div>age:{$form_state['values']['age']}</div>\n" .
    "<div>sex:{$form_state['values']['sex']}</div>\n"
  );
}
◆drupal_set_message($message = NULL, $type = 'status', $repeat = TRUE)

画面上にメッセージ $msg を表示します。$type には 'status'、'warning'、'error' のいずれかを指定します。$repeat を FALSE にすると、すでに同じメッセージが表示されていた場合に繰り返しメッセージの表示を抑制します。利用方法は drupal_get_form() を参照してください。

◆その他のDrupal関数

その他のDrupal関数については下記を参照してください。


Copyright (C) 2008 杜甫々
初版:2008年9月21日
http://www.tohoho-web.com/drupal/