memo.xight.org

日々のメモ

定番そうなDrupalモジュール一覧

Summary

定番のDrupalモジュールを探してみた。

CCK

Content Construction Kit (CCK) | drupal.org
http://drupal.org/project/cck

Content Construction Kit (CCK) 日本語翻訳 | DRUPAL*DRUPAL
http://drupalxdrupal.com/project/194

Views

Views | drupal.org
http://drupal.org/project/views

Views 日本語翻訳 | DRUPAL*DRUPAL
http://drupalxdrupal.com/project/196

Taxonomy Menu

Taxonomy Menu | drupal.org
http://drupal.org/project/taxonomy_menu

Pathauto

指定したルールを基に URL エイリアスを自動生成するためのモジュール
Pathauto | drupal.org
http://drupal.org/project/pathauto

Pathauto 日本語翻訳 | DRUPAL*DRUPAL
http://drupalxdrupal.com/project/38

Token

Token | drupal.org
http://drupal.org/project/token

Token 日本語翻訳 | DRUPAL*DRUPAL
http://drupalxdrupal.com/project/43

AdSense /AdSense Injector

AdSense | drupal.org
http://drupal.org/project/adsense

Adsense Injector | drupal.org
http://drupal.org/project/adsense_Injector

Meta tags

Meta tags | drupal.org
http://drupal.org/project/nodewords

XML Sitemap

XML Sitemap | drupal.org
http://drupal.org/project/xmlsitemap

XML Sitemap 日本語翻訳 | DRUPAL*DRUPAL
http://drupalxdrupal.com/project/51

FileField

FileField | drupal.org
http://drupal.org/project/filefield

FileField 日本語訳 | drupal.pineray.jp
http://drupal.pineray.jp/node/80

ImageField

ImageField | drupal.org
http://drupal.org/project/imagefield

ImageField 日本語訳 | drupal.pineray.jp

http://drupal.pineray.jp/node/78

ImageCache

ImageCache | drupal.org
http://drupal.org/project/imagecache

ImageCache 日本語訳 | drupal.pineray.jp
http://drupal.pineray.jp/node/57

Lightbox2

Lightbox2 | drupal.org
http://drupal.org/project/lightbox2

Devel

Devel | drupal.org
http://drupal.org/project/devel

Devel 日本語訳 | drupal.pineray.jp
http://drupal.pineray.jp/node/68

Reference

役に立ちそうなDrupalモジュールの一覧
http://www.marusankakusikaku.jp/archives/2007/05/22-drupal.html

Google Analyticsのコードを変更

Summary

Google Analyticsのコードが変更になっている。

新JavaScriptのソースコード

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ?
"https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost +
"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try{
  var pageTracker = _gat._getTracker("UA-xxxxxx-x");
  pageTracker._trackPageview();
} catch(err) {}
</script>


旧JavaScriptのソースコード

<script src="http://www.google-analytics.com/urchin.js"
type="text/javascript">
</script>
<script type="text/javascript">
_uacct="UA-xxxxxx-x";
urchinTracker();
</script>


Reference

トラッキング コードがページに正しく設定されているかどうかを確認するにはどうすればよいですか? - Analytics ヘルプ
http://www.google.com/support/analytics/bin/answer.py?answer=74947

トラッキング コードがページに正しく設定されているかどうかを確認するにはどうすればよいですか? - Analytics ヘルプ
http://www.google.com/support/analytics/bin/answer.py?hl=ja_JP&answer=55480&utm_id=ad

サイトのソース コードを確認するにはどうすればよいですか? - Analytics ヘルプ
http://www.google.com/support/analytics/bin/answer.py?answer=75129

DrupalのTextileモジュールのインストール

Summary

Textileモジュールのインストールと有効化について。
対象ファイルを展開して、インストールだけでは有効にならない。

Textileモジュールの配置

% tar xzvf textile-x.x.x.tar.gz
% mv textile /path/to/drupal/modules

classTextile.php をダウンロードして配置

INSTALL.txtに書いているURLに当該ファイルが存在しなかったので、
以下URLから入手。
http://textpattern.googlecode.com/svn/releases/4.0.8/source/textpattern/lib/classTextile.php

/path/to/drupal/modules/textile/classTextile.php に配置

入力書式の追加

http://example.com/path/to/drupal/admin/settings/filters/add
Textileフィルタのみ有効にする。

コンテンツへの適用

入力書式から Textileを指定する。

Reference

Textile | drupal.org
http://drupal.org/project/textile

Textile
http://textile.thresholdstate.com/

textpattern - Google Code
http://code.google.com/p/textpattern/

EmojiPrint - Thunderbirdで絵文字を表示するアドオン

Summary

Thunderbirdで、携帯から送られてきた絵文字を、
正しく表示することができるようになるアドオン。
DoCoMo、au、Softbank、Willcomに対応。

Reference

EmojiPrint
http://www.takaaki.info/addon/emojiprint/

Thunderbirdで携帯メールの絵文字を表示するアドオンを作りました - mizuno_takaakiの日記
http://d.hatena.ne.jp/mizuno_takaaki/20090426/1240756028

GmailのSMTPでメールを送信した際のFromヘッダ上書き対策

Summary

GmailのSMTPを利用してメールを送信した際、
Fromを指定していても、Gmailのアカウント名で上書きされる。

対策方法 その1

Gmailの設定から「アカウントの設定」にて、「他のメールアドレスを追加」として登録
Fromが一致すればよい。

対策方法 その2

Google Appsで当該ドメインのアカウントを作成。

Reference

Google Apps
http://www.google.com/a/help/intl/ja/

Postfix で、Gmail にメールをリレーする - 私の二次記憶
http://d.hatena.ne.jp/ayokoyama/20061207/p1

PostfixからGmail経由でメールを送る方法

Summary

OB25P (Outbound Port 25 Blocking) 対策でメールの送信設定が必要。
手動でPOP before SMTPに対応するのも手間。
MTAを設定して、GmailのSMTPを利用することにする。

/etc/postfix/main.cf

# GmailのSMTPサーバを指定
relayhost = [smtp.gmail.com]:587

# TLSにより暗号化
smtp_use_tls = yes

# plain方式の SMTP AUTH認証を有効にする
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain

# GmailのTLS証明書の妥当性確認のための設定
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt

/etc/postfix/sasl_passwdを作成

[smtp.gmail.com]:587 username@gmail.com:password

/etc/postfix/sasl_passwdの権限変更

# chown root:root /etc/postfix/sasl_passwd
# chmod 600 /etc/postfix/sasl_passwd

hash形式の /etc/postfix/sasl_passwd.dbを作成

# postmap /etc/postfix/sasl_passwd


postfixの再起動

# /etc/init.d/postfix restart


Gmail SMTP サーバーの証明書を正しく検証する

Gmail SMTP サーバーが持っている証明書から、ルート CA を調べる。
上記の openssl s_client セッションから、Thawte Premium Server CA がルート CA だと分かる。

ルート CA のインターネットドメイン thawte.com のルート証明書をダウンロード。
http://www.thawte.com/roots/ からダウンロード
/usr/share/ca-certificates/thawte.com/ 内に展開。

/etc/postfix/main.cf を編集

/usr/share/ca-certificates/thawte.com/Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem

注意点

From が自分のGmailアカウントで上書きされる。
送信メールが"送信済みメール"フォルダに配置される。

Reference

linux.matchy.net - 2008-07-24 - Postfix から Gmail 経由でメールを送る
http://linux.matchy.net/archives/35

Postfix で、Gmail にメールをリレーする - 私の二次記憶
http://d.hatena.ne.jp/ayokoyama/20061207/p1

PHPMailerでGmailのSMTPを利用する

Summary

PHPMailerでGmailのSMTPを利用してメールを送信する。
ポート465からSMTP over SSLを利用する。

Source

<?php
mb_language("japanese");
mb_internal_encoding("UTF-8");

require("class.phpmailer.php");
$mailer = new PHPMailer();
$mailer->IsSMTP();
$mailer->Host = 'ssl://smtp.gmail.com:465';
$mailer->SMTPAuth = TRUE;
$mailer->Username = 'user@gmail.com';  // Gmailのアカウント名
$mailer->Password = 'gmail_password';  // Gmailのパスワード
$mailer->From     = 'from@gmail.com';  // Fromのメールアドレス
$mailer->FromName = mb_encode_mimeheader(mb_convert_encoding("Fromの名前","JIS","UTF-8"));
$mailer->Subject  = mb_encode_mimeheader(mb_convert_encoding("メールのタイトル","JIS","UTF-8"));
$mailer->Body     = mb_convert_encoding("メールの内容","JIS","UTF-8");
$mailer->AddAddress('friend@example.com'); // 宛先
// $mailer->AddReplyTo($email, $from);

if(!$mailer->Send()) {
   echo "Message was not sent<br/ >";
   echo "Mailer Error: " . $mailer->ErrorInfo;
} else {
   echo "Message has been sent";
}
?>


Reference

tishon.net - Using PHPMailer with Gmail
http://www.tishon.net/index.php/2008/03/21/phpmailer-gmail/

さぼてん - 2009-02-14 - メールフォーム - PHPmailer+xajax
http://saboten009.blogspot.com/2009/02/phpmailerxajax.html

PEAR::MailでGmailのSMTPを利用する

Summary

Pear::MailでGmailのSMTPを利用してメールを送信する。
ポート587からSTARTTLSを利用する。

Source

<?php
mb_language("japanese");
mb_internal_encoding("UTF-8");

require_once 'Mail.php';

$params = array(
  'host'     => 'smtp.gmail.com',
  'port'     => 587,
  'auth'     => true,
  'username' => 'example@gmail.com',
  'password' => 'password',
  'debug'    => true,
);

$headers = array(
  'From'    => 'example@gmail.com',
  'To'      => 'example@gmail.com',
  'Subject' => mb_encode_mimeheader(mb_convert_encoding("メールのタイトル","JIS","UTF-8"))
);

$recipients = 'example@gmail.com';
$body = mb_convert_encoding("メールの内容","JIS","UTF-8");

$smtp = Mail::factory('smtp', $params);
$e = $smtp->send($recipients, $headers, $body);

if ( PEAR::isError($e) ) echo $e->getMessage() . "\n";
?>


追記 [2010-06-15]

http://ap.atmarkit.co.jp/bbs/core/flinux/15247 より

$params = array(
	'host'     => 'tls://smtp.gmail.com',
	'port'     => 465,
	'auth'     => true,
	'username' => 'account', // @より左部分のみ
	'password' => 'password',
	'debug'    => false,
	'protocol'=>'SMTP_AUTH'
);


ぷららの場合
$params = array(
	'host'     => 'secure.plala.or.jp',
	'port'     => 25,
	'auth'     => true,
	'username' => 'account@subdomain.plala.or.jp',
	'password' => 'password',
	'debug'    => true, // false
	'protocol'=>'SMTP_AUTH'
);


Reference

たら風呂 - 2007-04-04 - PEAR::MailでGmailのSMTPを使う
http://d.hatena.ne.jp/taraburo/20070404/1175694545

MSOCache という名のディレクトリ

Summary

いつの間にか、 C:\MSOCache というディレクトリが作成されていた。
Officeのローカルインストールソースというモノらしい。
以下の作業中にメディアを用意する必要がなくなるとのこと。

  - 検出と修復
  - デマンド インストール
  - メンテナンス モード セットアップ
  - Service Pack および修正プログラムのインストール

Reference

MIcrosoft サポートオンライン - [OFF2003] ローカル インストール ソース (Msocache)
http://support.microsoft.com/default.aspx?scid=kb;ja;825933

Drupalのインストール

Summary

Drupalをインストールしてみる。
モジュールは cck と views を追加。

ファイルの移動と権限付与

# mv drupal-x.x/* drupal-x.x/.htaccess /var/www/html
# cp sites/default/default.settings.php sites/default/settings.php

データベースの作成

% mysqladmin -uroot -p create drupal

mysqlのテーブルの作成

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON drupal.* TO drupal@localhost IDENTIFIED BY 'XXXXXXXX';
FLUSH PRIVILEGES;
quit;

Clean URLの有効化

Clean URLは http://example.com/index.php?q=hogehttp://example.com/hoge のようにアクセスする可能にする機能。
Clean URLの動作にはmod_rewriteが必要。

/path/to/drupal/.htaccess を有効にする。

<Directory /path/to/drupal/>
AllowOverride All
</Directory>

インストール時にClean URLを有効に設定できなかった場合

  mod_rewriteの有効化、.htaccessのOverrideの設定確認をして apache再起動。
  http://example.com/drupal/?q=admin/settings/clean-urls にアクセスし、
  Clean URLを有効化する。

PHPのGDライブラリのインストール

# aptitude install php5-gd


php.iniの編集

extension=gd.so

php5-mysql のインストール

# aptitude install php5-mysql


ブラウザから drupal をインストール

http://example.com/install.php にアクセス

モジュール翻訳ディレクトリを作成 (日本語プロファイル版)

% mkdir /path/to/drupal/profiles/Japanese/translations/modules


cck, viewsモジュールのファイルを配置 (日本語プロファイル版)

% tar xzvf views-6.x-x.x.tar.gz
% mv views /path/to/drupal/sites/all/modules
% unzip ja-cck-6.x-x.x.zip
% cp ja-cck-6.x/cck.ja.po /path/to/drupal/profiles/Japanese/translations/modules/cck.ja.po

% tar xzvf cck-6.x-x.x.tar.gz
% mv cck /path/to/drupal/modules
% unzip ja-views-6.x-x.x.zip
% cp ja-views-6.x/cck.ja.po /path/to/drupal/profiles/Japanese/translations/modules/view.ja.po

2009-05-28 追記

Drupal 日本語プロジェクトの日本語プロフィールを利用している場合
以下の優先順位でインポートされる。
プロフィール毎の翻訳を提供することが可能。

  1. profiles/japanese/translations/ja/modules/モジュールディレクトリ名.po
  2. モジュールディレクトリ/po/ja.po

Drupal 日本語プロジェクトの日本語プロフィールを利用していない、
または、以前のバージョンからアップグレードしたなどの場合

  1. モジュールディレクトリ/po/ja.po

Reference

Drupal.org
http://drupal.org/

Drupal Japan
http://drupal.jp/

Content Construction Kit (CCK) | drupal.org
http://drupal.org/project/cck

Content Construction Kit (CCK) 日本語翻訳 | DRUPAL*DRUPAL
http://drupalxdrupal.com/project/194

Views | drupal.org
http://drupal.org/project/views

Views 日本語翻訳 | DRUPAL*DRUPAL
http://drupalxdrupal.com/project/196

Perl Tips - 2007-04-6
http://perltips.twinkle.cc/drupal/clean_urls.php