warning: Creating default object from empty value in /var/www/drupal-5.23/modules/taxonomy/taxonomy.module on line 1418.

Drupal で、古くなったノードを hook_cron で削除する方法

Drupal のドキュメントは、すっごく整備されているようでいて内容を見ると実はよくわからないのがほとんどである。この hook_cron についても、https://drupal.org の過去ログからやっと探し出したものだ。 ポイントは、node_delete を呼び出す前に必ず
<?php

global $user;
$user = user_load(array('uid' => $node->uid));

?>
と、global $user を $node のもの($node が持つ uid)にしてあげるということである。 Win32 プログラミングで CreateProcessAsUser の前に hTokenImpersonateUser が必要なのと同じようなノリなのだろう。以下の例は、30日以上前のノードを hook_cron (この例では example_cron) で処理する方法。
Drupal のドキュメントは、すっごく整備されているようでいて内容を見ると実はよくわからないのがほとんどである。この hook_cron についても、https://drupal.org の過去ログからやっと探し出したものだ。 ポイントは、node_delete を呼び出す前に必ず
<?php

global $user;
$user = user_load(array('uid' => $node->uid));

?>
と、global $user を $node のもの($node が持つ uid)にしてあげるということである。 Win32 プログラミングで CreateProcessAsUser の前に hTokenImpersonateUser が必要なのと同じようなノリなのだろう。以下の例は、30日以上前のノードを hook_cron (この例では example_cron) で処理する方法。

Drupal で、すべてのユーザー名を取得する方法

以下の関数は、Drupal が管理する users テーブルをすべて読み込んで $users ハッシュテーブルに $users[uid] = name のように uid と name をマップし、その $users ハッシュテーブルを返す。
以下の関数は、Drupal が管理する users テーブルをすべて読み込んで $users ハッシュテーブルに $users[uid] = name のように uid と name をマップし、その $users ハッシュテーブルを返す。

Drupal をインスールする。

オープンソース CMS(Contents Management System)である Drupal を Fedora Core 6 にイントールする方法のメモ。ブログ=Movable Type の次は CMS、その中でも今のところ Drupal で決まりだろう。この波はこっそりやってくるのだ。だから本音としてはあまり言いたくはないが、有益な情報はできるだけオープンにすることが私のスタンスなのだ。きれいなアーキテクチャの手本のような造り、それが Drupal。 ちなみにカタカナ英語でどんな風に読むのかいろいろと議論があって日本の公式サイトでは「ドルーパル」になったというのをみたことがあるが……………より英語に近い表記は「ドゥルパル」だろう。私が発音するとしたら出だしは「ドゥ」と「デュ」を混ぜたものに近いかも。ゆえにデュルパル。要は「D」だ(笑) ※Drupal のリード Dries Buytaert 君と話したら、「英語圏でさえも Drupal はなんて読むのかわからないと議論になることがある」といっていた。 環境としては主に LAMP 環境(Linux + Apache + MySQL + PHP)で動く。Drupal 自体は PHP で書かれているし、MySQL のほか PostgreSQL でも動く。ちなみに当然 PHP から MySQL を呼び出す「MySQL extension for PHP」も入ってないといけない。 以下は Fedora Core 6 上でインストール手順。
オープンソース CMS(Contents Management System)である Drupal を Fedora Core 6 にイントールする方法のメモ。ブログ=Movable Type の次は CMS、その中でも今のところ Drupal で決まりだろう。この波はこっそりやってくるのだ。だから本音としてはあまり言いたくはないが、有益な情報はできるだけオープンにすることが私のスタンスなのだ。きれいなアーキテクチャの手本のような造り、それが Drupal。 ちなみにカタカナ英語でどんな風に読むのかいろいろと議論があって日本の公式サイトでは「ドルーパル」になったというのをみたことがあるが……………より英語に近い表記は「ドゥルパル」だろう。私が発音するとしたら出だしは「ドゥ」と「デュ」を混ぜたものに近いかも。ゆえにデュルパル。要は「D」だ(笑) ※Drupal のリード Dries Buytaert 君と話したら、「英語圏でさえも Drupal はなんて読むのかわからないと議論になることがある」といっていた。 環境としては主に LAMP 環境(Linux + Apache + MySQL + PHP)で動く。Drupal 自体は PHP で書かれているし、MySQL のほか PostgreSQL でも動く。ちなみに当然 PHP から MySQL を呼び出す「MySQL extension for PHP」も入ってないといけない。 以下は Fedora Core 6 上でインストール手順。