はてなの機能をDrupalに追加する、hatena_module for Drupalにはてなキーワードの機能を追加しました。
各ノードの文章にはてなキーワードにリストされている単語があれば、その単語から自動的にはてなキーワードに対するリンクを作成します。
はてなキーワードに対するリンク作成は、フィルタの機能として実装されています。このため、設定にはサイトの環境構築>>入力書式から、任意の書式の設定で、hatena_moduleを有効化する必要があります。
ダウンロードはココ (http://drupal.org/project/hatena_module)から、
設定についてはココ (http://iktaka.dyndns.org/node/46) をご覧ください。
「はてなモジュール」という固有名詞は、はてなさんの中で使用されているようなので、当面「hatena_module for Drupal」という名前で開発を進めていきます。
今後の機能追加として、すでにこのサイトでもテストで導入していますが、はてなキーワードリンクを組み込むところに取り組んでいます。
具体的にはDrupalのfilter機能と、はてなキーワード自動リンクAPI(XML-RPCのやつ)を使用して、キーワードにヒットした際には、自動的にリンク作成を行う機能を考えています。
その後ははてなウェブサービスの一覧に乗っているサービスで、面白そうなものから使用できるようにできればと思っています。
と、このモジュールはこんな方向性で。
そのほかにも、面白そうな・有用そうな機能を見つけて、新たなモジュールとして開発していきたいです。
簡単にはてなの機能をDrupalに組み込む、はてなモジュールを作りました!
それぞれのノードにはてなブックマークとはてなスターをつけることができます。
このページに表示されているように、はてなブックマーク、はてなスターをお使いのDrupal(6.X限定)に簡単に組み込むことができます。
本家Drupal.orgにも登録しておきました!
はてなスターの部分の組み込みがちょっと厄介でした。
Drupalはティザーとページビューでそれぞれ異なるタグを吐き出すのと、さらにテーマごとに異なるタグを吐き出します。
現状は初期導入時にくっついてくるテーマに対して、タイトル横にスターが表示されるように調整しています。
ほかに使いたい or よく使われているテーマがあれば、おしえてください?。
Drupal/Postgresqlの構成は初期状態では決して高速な組み合わせではない。
MySQLではクエリー結果をキャッシュする機構があるようだが、Postgresqlにはそのような機能はない模様。
またDrupalのPHPもmoduleによっては重たい処理も多々あり、高速化が重要となる。
PHPの処理を高速化するにはキャッシュの機構を導入するのが一般的なようで、Drupalの組み合わせで問題なく動く実績があるのがAPC(Alternative PHP Cache)(http://pecl.php.net/package/APC)である。またAPCにはDBクエリの結果もキャッシュする機能があるとのこと。
詳細な導入事例はここ(http://www.doyouphp.jp/tips/tips_apc.shtml)などが大変参考になる。
まずはCentOS、PHP-5.2.6環境での導入メモを記載しておく。
必要なパッケージ(yumで導入)
夫です。
先日に引き続きDrupalのモジュールネタです。
potgresqlを使ったDrupalでうまく動かないモジュールとしてbrowscap(http://drupal.org/project/browscap)モジュールがあります。
Browscapモジュールは、サイトを見てくれた人が、どんなブラウザを使っていたのか、統計情報を取得し、上位のモジュールと組み合わせると、ブラウザ、ユーザ環境に特化したHTMLを生成することができるとのことです。
Browscapモジュールは、Browser Capabilities Project(http://browsers.garykeith.com/downloads.asp)から、最新のブラウザ情報一覧を取り込み、基本データベースを生成するのですが、このデータベース生成にMySQL出しか使えない、"REPLACE INTO" 構文が使用されています。
このSQL構文を、普遍的なSQLである、SELECT文の結果を見て、INSERTもしくはUPDATEを行う処理に変更しないと、postgresqlではうまく動いてくれません。
Drupalは優れたCMSであり、DBとしてMySQLとPostgresqlの両者で動作できるようになっている。
しかし歴史的な経緯により、MySQLでの動作のほうが問題が少ない。
というのはDrupalでサイトを構築する場合、数多くのモジュールを使用して、機能追加を行っていくが、それでモジュールもDBへのアクセスを行う。
モジュールによっては、ロジックの中でMySQLでしか動作しないSQL処理を行っているものが多数あります。
残念ながら当初はそういった点を見切れず、このサイトではDrupal+Postgresqlを選択して稼動しています。
そのため、いくつかのモジュールで問題が出ることも多数。一度サイトが稼動すると、
なかなかデータベースの移行もままならず、当面はむしろ動かしたいモジュールをPostgresqlへ対応させていくこととします。
夫です。
このサイトはDrupal(http://drupal.org/)を使用して作成しています。
Drupalはオープンソース、PHPで作成されたCMSのフレームワークです。
DBにはMySQL,postgresqlのいずれでも動作可能です。
母体には基本的な機能のみがあり、モジュールというソフトウェアを追加することで、機能を拡充していくことができます。
そのモジュールの中に管理メニューを使いやすくする、YUIMENUモジュールというものがあります。
このYUIMENUモジュール(yuimenu-6.x-1.1-beta2.tar.gz)を追加したところ、イメージにあるような警告
warning: Invalid argument supplied for foreach() in /var/www/html/modules/yuimenu/yuimenu.module on line 355. warning: Invalid argument supplied for foreach() in /var/www/html/modules/yuimenu/yuimenu.module on line 232.
が出てしまいました。