世界時計
| UK | |
| USA ET | |
| USA PT | |
| Japan |
Drupal関連記事
ダウンロード (1)
テーマ (8)
ヒント/メモ (8)
モジュール (9)
レビュー/ガイド (7)
最近の投稿
最近のブログ投稿
ユーザログイン
- user warning: Table 'pixture_jpn.dp_cache_similarterms' doesn't exist query: SELECT data, created, headers, expire, serialized FROM dp_cache_similarterms WHERE cid = '0:7' in /www/pixture/html/drupal/includes/cache.inc on line 26.
- user warning: Table 'pixture_jpn.dp_cache_similarterms' doesn't exist query: UPDATE dp_cache_similarterms SET data = 'a:8:{i:0;O:8:\"stdClass\":29:{s:3:\"nid\";s:2:\"14\";s:4:\"type\";s:4:\"blog\";s:8:\"language\";s:2:\"ja\";s:3:\"uid\";s:1:\"1\";s:6:\"status\";s:1:\"1\";s:7:\"created\";s:10:\"1231344885\";s:7:\"changed\";s:10:\"1232207978\";s:7:\"comment\";s:1:\"0\";s:7:\"promote\";s:1:\"1\";s:8:\"moderate\";s:1:\"0\";s:6:\"sticky\";s:1:\"0\";s:4:\"tnid\";s:1:\"0\";s:9:\"translate\";s:1:\"0\";s:3:\"vid\";s:2:\"14\";s:12:\"revision_uid\";s:1:\"1\";s:5:\"title\";s:57:\"「続きを読む(Read More)」リンクを分離する \";s:4:\"body\";s:1149:\"記事のティーザー表示時にリンクリストの最後に表示される「続きを読む」をもっと目立つように記事の直後に表示するように改良します。\r\n\r\n参考記事:How to display \"Read more\" after $content\r\nhttp://drupal.org/node/225525\r\n\r\n<code language=\"php\">\r\n<?php\r\n if(preg_match(\'!<a[^>]+>\' . t(\'Read more\') . \'</a>!\', $links, $match)) {\r\n // アンカーを除去\r\n $links = preg_replace(\'/<a.+?href.+?>\' . t(\'Read more\') . \'<\\/a>/i\', \'\', $links);\r\n // liタグを除去\r\n $links = preg_replace(\'/<li class=\"node_read_more.*?\">.*?<\\/li>/i\', \'\', $links);\r\n // $moreを作成\r\n $more = \'<div class=\"more\">\' . $match[0] . \'</div>\';\r\n // コンテンツの最後 </p>の直前にリンクを挿入する\r\n $content = preg_replace(\'/<\\/p$/\', $more.\'</p>\', $content); \r\n }\r\n?>\r\n</code>\r\n\r\nをnode.tpl.phpのはじめの方に追加し、そして、$moreを$contentの直後にprintするようにした。尚、この例では、$moreは<div class=\"more\">というSPANタグで囲みましたたが、ここは各自の都合に合わせて変更してください。\r\n\r\n\";s:6:\"teaser\";s:736:\"記事のティーザー表示時にリンクリストの最後に表示される「続きを読む」をもっと目立つように記事の直後に表示するように改良します。\r\n\r\n参考記事:How to display \"Read more\" after $content\r\nhttp://drupal.org/node/225525\r\n\r\n<code language=\"php\">\r\n<?php\r\n if(preg_match(\'!<a[^>]+>\' . t(\'Read more\') . \'</a>!\', $links, $match)) {\r\n // アンカーを除去\r\n $links = preg_replace(\'/<a.+?href.+?>\' . t(\'Read more\') . \'<\\/a>/i\', \'\', $links);\r\n // liタグを除去\r\n $links = preg_replace(\'/<li class=\"node_read_more.*?\">.*?<\\/li>/i\', \'\', $links);\r\n // $moreを作成\r\n $more = \'<div class=\"more\">\' . $match[0] . \'</div>\';\r\n // コンテンツの最後 </p>\";s:3:\"log\";s:0:\"\";s:18:\"revision_timestamp\";s:10:\"1232207978\";s:6:\"format\";s:1:\"2\";s:4:\"name\";s:7:\"pixture\";s:7:\"picture\";s:0:\"\";s:4:\"data\";s:36:\"a:1:{s:18:\"admin_compact_mode\";b:1;}\";s:22:\"last_comment_timestamp\";s:10:\"1231344885\";s:17:\"last_comment_name\";N;s:13:\"comment_count\";s:1:\"0\";s:8:\"taxonomy\";a:3:{i:8;O:8:\"stdClass\":5:{s:3:\"tid\";s:1:\"8\";s:3:\"vid\";s:1:\"3\";s:4:\"name\";s:6:\"Drupal\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"2\";}i:35;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"35\";s:3:\"vid\";s:1:\"5\";s:4:\"name\";s:5:\"Theme\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}i:26;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"26\";s:3:\"vid\";s:1:\"4\";s:4:\"name\";s:16:\"ヒント/メモ\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}}s:5:\"files\";a:0:{}}i:1;O:8:\"stdClass\":29:{s:3:\"nid\";s:2:\"13\";s:4:\"type\";s:4:\"blog\";s:8:\"language\";s:2:\"ja\";s:3:\"uid\";s:1:\"1\";s:6:\"status\";s:1:\"1\";s:7:\"created\";s:10:\"1231337654\";s:7:\"changed\";s:10:\"1231647674\";s:7:\"comment\";s:1:\"2\";s:7:\"promote\";s:1:\"1\";s:8:\"moderate\";s:1:\"0\";s:6:\"sticky\";s:1:\"0\";s:4:\"tnid\";s:1:\"0\";s:9:\"translate\";s:1:\"0\";s:3:\"vid\";s:2:\"13\";s:12:\"revision_uid\";s:1:\"1\";s:5:\"title\";s:47:\"module.installが実行されない時の対処\";s:4:\"body\";s:3743:\"自作モジュールを開発する場合に、はじめにデータベースアクセス以外のインターフェイス部などを実装し、あとからデータベース関連のコードを実装する場合に作成したmodule.installファイルが実行されない状態になることがあります。同様にmodule.installを変更した場合にも新しいmodule.installはそのままでは実行されません。この記事ではこの対処方法を説明します。\r\n\r\n例として、sample.moduleというモジュールを作成し、これをテストして、後からデータベースにテーブルを追加するsample.installを作成した場合に、このsample.installがモジュールを無効にして再度有効にしても実行されないのです。\r\n\r\nこれは、Drupalのシステムがそのモジュールを一度でも実行すると、そのモジュールが現在有効か無効かにかかわらずにそのモジュールを過去に実行したことを記憶していているためです。つまりデータベースにテーブルを作成するsample.installは1度だけ実行すれば良いので、有効・無効を切り替えるだけでは再度実行をしてくれないのです。では、後からsample.installを作成したり、sample.installを修正した場合にはどうすればいいかというと以下の3つの方法があります。\r\n\r\n<ul>\r\n<li>直接データベースを操作して新規テーブルを作成(CREATE)したり、修正(ALTER)したりする</li>\r\n<li>Drupalのsystemテーブルから対象モジュールのレコードを削除する</li>\r\n<li>開発者向けのdevelモジュールをインストールして、そこからreinstall moduleを実行する</li>\r\n</ul>\r\n\r\nここでは、直接データベースを操作する方法についての説明は省略いたします。\r\n\r\n<h3>Drupalのsystemテーブルから対象モジュールのレコードを削除する方法</h3>\r\n\r\nこの方法をおこなう場合には、まずそのモジュールを無効にして、systemテーブルから対象モジュールのレコードを削除します。仮にsampleモジュールがsample.infoにおいてSampleという名前で登録されている場合に、MySQLでは以下のようなQueryになります。\r\n<code language=\"mysql\">\r\nmysql> DROP FROM system WHERE name = \'Sample\';\r\n</code>\r\nこれで、sampleモジュールを再び有効にすると、sample.installが実行されることになります。sample.installを変更した場合にもこの方法は使えます。\r\n\r\ndrupal.orgの以下の記事の一番最後にこのことがちょっとだけ書かれています(英語)\r\nhttp://drupal.org/node/51220\r\n\r\n\r\n<h3>開発者向けのDevelモジュールを使用する方法</h3>\r\n\r\n一番簡単なのはDevelモジュールをインストールしておき、Reinstall module機能を選択してそこから対象となるモジュールを選択してreinstallをおこなう方法です。この操作により選択したモジュールのhook_uninstallとhook_install(共にmodule.installに通常含まれるフック関数)が実行されますので、直接データベースをさわったりする必要もなくDrupalの中から行えるのでとても簡単です。\r\n\r\nDevelモジュールはこれ以外にも開発者向けの便利な機能が満載ですので、Drupal開発者には必須のモジュールと言えます。Develモジュールのダウンロードは以下のプロジェクトページからどうぞ\r\nhttp://drupal.org/project/devel\r\n\r\nDevelモジュールの便利な利用方法は当サイトでも今後紹介していきたいと思います。\";s:6:\"teaser\";s:1432:\"自作モジュールを開発する場合に、はじめにデータベースアクセス以外のインターフェイス部などを実装し、あとからデータベース関連のコードを実装する場合に作成したmodule.installファイルが実行されない状態になることがあります。同様にmodule.installを変更した場合にも新しいmodule.installはそのままでは実行されません。この記事ではこの対処方法を説明します。\r\n\r\n例として、sample.moduleというモジュールを作成し、これをテストして、後からデータベースにテーブルを追加するsample.installを作成した場合に、このsample.installがモジュールを無効にして再度有効にしても実行されないのです。\r\n\r\nこれは、Drupalのシステムがそのモジュールを一度でも実行すると、そのモジュールが現在有効か無効かにかかわらずにそのモジュールを過去に実行したことを記憶していているためです。つまりデータベースにテーブルを作成するsample.installは1度だけ実行すれば良いので、有効・無効を切り替えるだけでは再度実行をしてくれないのです。では、後からsample.installを作成したり、sample.installを修正した場合にはどうすればいいかというと以下の3つの方法があります。\";s:3:\"log\";s:0:\"\";s:18:\"revision_timestamp\";s:10:\"1231647674\";s:6:\"format\";s:1:\"2\";s:4:\"name\";s:7:\"pixture\";s:7:\"picture\";s:0:\"\";s:4:\"data\";s:36:\"a:1:{s:18:\"admin_compact_mode\";b:1;}\";s:22:\"last_comment_timestamp\";s:10:\"1231337654\";s:17:\"last_comment_name\";N;s:13:\"comment_count\";s:1:\"0\";s:8:\"taxonomy\";a:4:{i:8;O:8:\"stdClass\":5:{s:3:\"tid\";s:1:\"8\";s:3:\"vid\";s:1:\"3\";s:4:\"name\";s:6:\"Drupal\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"2\";}i:36;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"36\";s:3:\"vid\";s:1:\"5\";s:4:\"name\";s:6:\"Module\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}i:26;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"26\";s:3:\"vid\";s:1:\"4\";s:4:\"name\";s:16:\"ヒント/メモ\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}i:28;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"28\";s:3:\"vid\";s:1:\"4\";s:4:\"name\";s:15:\"モジュール\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}}s:5:\"files\";a:0:{}}i:2;O:8:\"stdClass\":29:{s:3:\"nid\";s:2:\"12\";s:4:\"type\";s:4:\"blog\";s:8:\"language\";s:2:\"ja\";s:3:\"uid\";s:1:\"1\";s:6:\"status\";s:1:\"1\";s:7:\"created\";s:10:\"1231337462\";s:7:\"changed\";s:10:\"1231337565\";s:7:\"comment\";s:1:\"2\";s:7:\"promote\";s:1:\"1\";s:8:\"moderate\";s:1:\"0\";s:6:\"sticky\";s:1:\"0\";s:4:\"tnid\";s:1:\"0\";s:9:\"translate\";s:1:\"0\";s:3:\"vid\";s:2:\"12\";s:12:\"revision_uid\";s:1:\"1\";s:5:\"title\";s:60:\"カラーモジュール対応テーマのカストマイズ\";s:4:\"body\";s:3496:\"当サイトで配布しているテーマやDrupalのデフォルトテーマであるGarlandのようにカラーモジュールに対応したテーマをカストマイズする上で知っておくべき点を紹介します。\r\n\r\nカストマイズにも色々なレベルや方法がありますが、ここではスタイルシート(style.css)を一部変更するだけの簡単なカストマイズを前提にし、その際の注意点を解説します。\r\n\r\n<img src=\"/drupal/sites/jpn.pixture.com/files/images/color-module.jpg\" width=\"480\" height=\"393\" alt=\"color-module.jpg\" />\r\n\r\nまず知っておかなければいけないのは、カラーモジュール対応のテーマのstyle.cssを変更する場合にはカラースキーム(あらかじめ準備された色の組み合わせ)のうち一番最初のカラーセット(つまりデフォルトのスキーム)を選択しておくということです。もしデフォルトでないカラースキーム(カスタムカラーを含む)が選択されている場合には、テーマファイルのディレクトリにあるstyle.cssを変更してもその変更がブラウザーの表示をリロードするだけでは反映されません。\r\n\r\nこれは、デフォルトのカラースキーム以外のカラースキームがテーマディレクトリにあるstyle.cssや画像データを使用しないからです。つまり、デフォルトのカラースキームを選択した場合にのみ、テーマディレクトリーにあるstyle.cssにした変更が即時有効になります。\r\n\r\nデフォルト以外のカラースキームやカスタムカラーを選択し設定を保存した場合、files/colorディレクトリーの下に「テーマ名-xxxxxx」というディレクトリがカラーモジュールにより作成され、このディレクトリの中にイメージデータとstyle.cssが生成されます。(xxxxxはランダムな数値)\r\n\r\nで、この「テーマ名-xxxxxx」ディレクトリのstyle.cssが使用されますので、いくらテーマディレクトリのstyle.cssに変更を加えてもその変更はそのままでは有効にならないのです。では、どうすれば良いかというと、テーマディレクトリのstyle.cssに変更を加えたら、テーマの設定ページで「設定を保存」すれば良いのです。こうすると、files/colorの下の「テーマ名-xxxxx」が一度削除され、新たに「テーマ名-yyyyy」ディレクトリが作られ、その中に今変更したstyle.cssに基づいて生成されたstyle.cssが作成されます。これで、style.cssの変更が有効になるわけです。\r\n\r\nただ、スタイルシートをカストマイズするのに毎回テーマ設定ページで「設定を保存」をおこなうのは面倒なので、デフォルトのカラースキームを選択しておいてstyle.cssを変更→表示のリロード、を繰り返す方が楽なので、デフォルトのカラースキームを使用することをお勧めします。\r\n\r\n尚、files/colorディレクトリ以下のテーマ設定が保存される度に削除されて新たに作り直されますので、このディレクトリ以下のファイルに手を加えるのは意味がありません。デフォルトのカラースキームが選択された場合、この「テーマ名-xxxxxx」ディレクトリは無くなります。\";s:6:\"teaser\";s:1243:\"当サイトで配布しているテーマやDrupalのデフォルトテーマであるGarlandのようにカラーモジュールに対応したテーマをカストマイズする上で知っておくべき点を紹介します。\r\n\r\nカストマイズにも色々なレベルや方法がありますが、ここではスタイルシート(style.css)を一部変更するだけの簡単なカストマイズを前提にし、その際の注意点を解説します。\r\n\r\n<img src=\"/drupal/sites/jpn.pixture.com/files/images/color-module.jpg\" width=\"480\" height=\"393\" alt=\"color-module.jpg\" />\r\n\r\nまず知っておかなければいけないのは、カラーモジュール対応のテーマのstyle.cssを変更する場合にはカラースキーム(あらかじめ準備された色の組み合わせ)のうち一番最初のカラーセット(つまりデフォルトのスキーム)を選択しておくということです。もしデフォルトでないカラースキーム(カスタムカラーを含む)が選択されている場合には、テーマファイルのディレクトリにあるstyle.cssを変更してもその変更がブラウザーの表示をリロードするだけでは反映されません。\";s:3:\"log\";s:0:\"\";s:18:\"revision_timestamp\";s:10:\"1231337565\";s:6:\"format\";s:1:\"2\";s:4:\"name\";s:7:\"pixture\";s:7:\"picture\";s:0:\"\";s:4:\"data\";s:36:\"a:1:{s:18:\"admin_compact_mode\";b:1;}\";s:22:\"last_comment_timestamp\";s:10:\"1231337462\";s:17:\"last_comment_name\";N;s:13:\"comment_count\";s:1:\"0\";s:8:\"taxonomy\";a:4:{i:8;O:8:\"stdClass\":5:{s:3:\"tid\";s:1:\"8\";s:3:\"vid\";s:1:\"3\";s:4:\"name\";s:6:\"Drupal\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"2\";}i:35;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"35\";s:3:\"vid\";s:1:\"5\";s:4:\"name\";s:5:\"Theme\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}i:30;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"30\";s:3:\"vid\";s:1:\"4\";s:4:\"name\";s:9:\"テーマ\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}i:26;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"26\";s:3:\"vid\";s:1:\"4\";s:4:\"name\";s:16:\"ヒント/メモ\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}}s:5:\"files\";a:0:{}}i:3;O:8:\"stdClass\":29:{s:3:\"nid\";s:2:\"10\";s:4:\"type\";s:4:\"blog\";s:8:\"language\";s:2:\"ja\";s:3:\"uid\";s:1:\"1\";s:6:\"status\";s:1:\"1\";s:7:\"created\";s:10:\"1231168797\";s:7:\"changed\";s:10:\"1232559903\";s:7:\"comment\";s:1:\"2\";s:7:\"promote\";s:1:\"1\";s:8:\"moderate\";s:1:\"0\";s:6:\"sticky\";s:1:\"0\";s:4:\"tnid\";s:1:\"0\";s:9:\"translate\";s:1:\"0\";s:3:\"vid\";s:2:\"10\";s:12:\"revision_uid\";s:1:\"1\";s:5:\"title\";s:40:\"Drupal 5.xのテーマを6.x用に変更\";s:4:\"body\";s:4942:\"Drupalの5.x用のテーマを6.x用に更新する場合について実例を使用しつつ主要なポイントを説明します。ここでは6.xでテーマに新たに導入された新機能については省き、既存の5.xテーマを6.x対応にすることに焦点をあてます。\r\n\r\n尚、この記事はdrupal.orgの以下の記事をベースにしています。\r\n\r\nConverting 5.x themes to 6.x - http://drupal.org/node/132442\r\n\r\n\r\n概要としては、CSSスタイルシートは特に変更しなくてもまず大丈夫だと思います。変更するべきファイルは、page.tpl.php、comment.tpl.phpです。(template.phpを使用しているテーマの場合はこれも変更する必要があるかと思います)更に.infoファイルのような新しいファイルが必要になります。\r\n\r\n尚、以下の実例に含まれる<div>などのHTMLタグはお使いのテーマに合わせて適当に変更してください。あくまで参考として出しているだけですのでそのままコピペで使わないようにしてください。\r\n\r\n<h3>1.Infoファイルの作成</h3>\r\n\r\nDrupal 6.x以降、テーマも.infoファイルが必要になります。以下は当サイトで配布しているテーマでの例です。\r\n<code>\r\nname = Twilight\r\ndescription = Multi column, liquid/fixed layout recolorable theme\r\nversion = VERSION\r\ncore = 6.x\r\nengine = phptemplate\r\nstylesheets[all][] = style.css\r\nstylesheets[print][] = print.css\r\n</code>\r\nこの中で必須なキーは、<b>name</b>と<b>core</b>の2つです。nameはテーマの名称、descriptionはテーマリストで表示されるテーマの説明、coreはテーマの対応しているDrupal Coreのバージョンになります。このcoreキーの値が使用しているDrupal Coreのバージョンと合わない場合にはそのテーマは無効になり、テーマ一覧にも表示されません。\r\n\r\nテーマ用.infoファイルの詳細については以下の記事を参照ください。\r\nWriting .info files for themes - http://drupal.org/node/171205\r\n\r\n\r\n<h3>2. comment.tpl.phpの修正</h3>\r\n\r\ncomment.tpl.phpの修正箇所は以下の1カ所だけです。署名がコメントから独立して$signatureという変数になりましたので、これを表示する部分をコメントの中身の表示の後に追加します。\r\n\r\n変更前\r\n<code language=\"php\">\r\n<div class=\"content\"><?php print $content; ?></div>\r\n</code>\r\n変更後\r\n<code language=\"php\">\r\n<div class=\"content\"><?php print $content; ?></div>\r\n<?php if($signature) { ?>\r\n <div class=\"clear-block\">\r\n <?php print $signature; ?>\r\n </div>\r\n<?php } ?>\r\n</code>\r\n\r\n<h3>3. page.tpl.phpの修正</h3>\r\n\r\nまず、先頭のhtmlタグで使用されていた$languageも変数からオブジェクトに変更になったため以下の変更が必要になります。\r\n\r\n変更前\r\n<code language=\"html4strict\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"<?php print $language ?>\" xml:lang=\"<?php print $language ?>\">;\r\n</code>\r\n変更後\r\n<code language=\"html4strict\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"<?php print $language->language ?>\" xml:lang=\"<?php print $language->language ?>\">\r\n</code>\r\n\r\n$layout変数を使用している場合には、$body_classes変数に置き換えることで、更に詳しい情報を得ることができるようになります。従来の$layoutをそのまま使用することもできますので、これは必須な変更ではありません。\r\n\r\n$layoutと$body_classesの詳細については以下の記事を参照ください。\r\nhttp://drupal.org/node/171906\r\n\r\n\r\n$sidebar_left、$sidebar_rightといったリージョン名がデフォルトで$left、$rightに変更になりました。\r\n\r\n変更前\r\n<code language=\"php\">\r\nif ($sidebar_left) {\r\n print $sidebar_left;\r\n}\r\n</code>\r\n変更後\r\n<code language=\"php\">\r\nif ($left) { \r\n print $left;\r\n}\r\n</code>\r\n\r\n$sidebar_rightについても、上記と同様に$rightとなります。\r\n\r\nまた、$footer_messageが $footer_message と $footer に分割されたので、その対応が必要になります。\r\n\r\n変更前\r\n<code language=\"php\">\r\nprint $footer_message;\r\n</code>\r\n変更後\r\n<code language=\"php\">\r\nprint $footer_message . $footer;\r\n</code>\r\n\r\n<h3>4. その他</h3>\r\n\r\nこれ以外には、template.phpを使っているテーマの場合には、_phptemplate_callback()や_phptemplate_variables()が使えなくなるなど6.xでの仕様変更に合わせた変更が必要になってきますが、ここでの説明は省略いたします。\r\n\r\nCSS(style.css)は基本的に何も変更しないでOKですが、ページャ(Pager)など一部のタグ出力が変わっていますので、現在使用しているstyle.cssの記述によってはそれに合わせて変更する必要があるかもしれません。要になります。\r\n\";s:6:\"teaser\";s:1295:\"Drupalの5.x用のテーマを6.x用に更新する場合について実例を使用しつつ主要なポイントを説明します。ここでは6.xでテーマに新たに導入された新機能については省き、既存の5.xテーマを6.x対応にすることに焦点をあてます。\r\n\r\n尚、この記事はdrupal.orgの以下の記事をベースにしています。\r\n\r\nConverting 5.x themes to 6.x - http://drupal.org/node/132442\r\n\r\n\r\n概要としては、CSSスタイルシートは特に変更しなくてもまず大丈夫だと思います。変更するべきファイルは、page.tpl.php、comment.tpl.phpです。(template.phpを使用しているテーマの場合はこれも変更する必要があるかと思います)更に.infoファイルのような新しいファイルが必要になります。\r\n\r\n尚、以下の実例に含まれる<div>などのHTMLタグはお使いのテーマに合わせて適当に変更してください。あくまで参考として出しているだけですのでそのままコピペで使わないようにしてください。\r\n\r\n<h3>1.Infoファイルの作成</h3>\r\n\r\nDrupal 6.x以降、テーマも.infoファイルが必要になります。以下は当サイトで配布しているテーマでの例です。\";s:3:\"log\";s:0:\"\";s:18:\"revision_timestamp\";s:10:\"1232559903\";s:6:\"format\";s:1:\"2\";s:4:\"name\";s:7:\"pixture\";s:7:\"picture\";s:0:\"\";s:4:\"data\";s:36:\"a:1:{s:18:\"admin_compact_mode\";b:1;}\";s:22:\"last_comment_timestamp\";s:10:\"1231168797\";s:17:\"last_comment_name\";N;s:13:\"comment_count\";s:1:\"0\";s:8:\"taxonomy\";a:3:{i:8;O:8:\"stdClass\":5:{s:3:\"tid\";s:1:\"8\";s:3:\"vid\";s:1:\"3\";s:4:\"name\";s:6:\"Drupal\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"2\";}i:30;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"30\";s:3:\"vid\";s:1:\"4\";s:4:\"name\";s:9:\"テーマ\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}i:26;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"26\";s:3:\"vid\";s:1:\"4\";s:4:\"name\";s:16:\"ヒント/メモ\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}}s:5:\"files\";a:0:{}}i:4;O:8:\"stdClass\":29:{s:3:\"nid\";s:1:\"6\";s:4:\"type\";s:4:\"blog\";s:8:\"language\";s:2:\"ja\";s:3:\"uid\";s:1:\"1\";s:6:\"status\";s:1:\"1\";s:7:\"created\";s:10:\"1230389052\";s:7:\"changed\";s:10:\"1231653332\";s:7:\"comment\";s:1:\"2\";s:7:\"promote\";s:1:\"1\";s:8:\"moderate\";s:1:\"0\";s:6:\"sticky\";s:1:\"0\";s:4:\"tnid\";s:1:\"0\";s:9:\"translate\";s:1:\"0\";s:3:\"vid\";s:1:\"6\";s:12:\"revision_uid\";s:1:\"1\";s:5:\"title\";s:60:\"パンくずリスト(breadcrumb)をカストマイズする\";s:4:\"body\";s:4412:\"当サイトではパンくずリストをDrupal標準のものから多少カストマイズをしていますが、ここではその方法を紹介します。\r\n\r\n変更前\r\n<img src=\"/drupal/sites/jpn.pixture.com/files/images/ss-breadcrumb-1.jpg\" width=\"340\" height=\"29\" alt=\"ss-breadcrumb-1.jpg\" />\r\n\r\n変更後\r\n<img src=\"/drupal/sites/jpn.pixture.com/files/images/ss-breadcrumb-2.jpg\" width=\"340\" height=\"31\" alt=\"ss-breadcrumb-2.jpg\" />\r\n\r\nまず、各ページのタイトルをリストの最後にアンカー無しで表示するようにしました。これは色々方法がありますがDrupal.orgで公開されている<a href=\"http://drupal.org/project/menu_breadcrumb\">Menu Breadcrumb</a>という小さなモジュールにその機能がありますのでこのモジュールを使用しました。\r\n\r\n次にパンくずリストの見た目を良くするために「ホーム(Home)」を文字でなくアイコン表示にし、リストのセパレータを「»」から不等号「>」に似たアイコンに変更しました。これはテーマファイルにtemplate.phpというファイルを追加し、この中でテーマ用のbreadcrumb関数を定義しておこなっています。以下はその関数です。\r\n\r\nはじめに「ホーム(Home)」と「»」を置き換える2種類の小さいイメージ<b>home.png</b>「<img src=\"/drupal/sites/jpn.pixture.com/files/images/home.png\" width=\"14\" height=\"12\" alt=\"home.png\" />」と<b>raquo.png</b>「<img src=\"/drupal/sites/jpn.pixture.com/files/images/raquo.png\" width=\"7\" height=\"12\" alt=\"raquo.png\" />」を用意しこれをテーマファイルのディレクトリの下のimagesというディレクトリに設置しておきます。\r\n<code language=\"php\">\r\n<?php\r\nfunction phptemplate_breadcrumb($breadcrumb) {\r\n $sep = \' <img src=\"\' . base_path() \r\n . path_to_theme() \r\n . \'/images/raquo.png\" alt=\"»\"> \';\r\n\r\n if(count($breadcrumb) > 1) {\r\n $breadcrumb[0] = \'<a href=\"\' . base_path() . \'\"><img src=\"\' . base_path() . path_to_theme() . \'/images/home.png\" alt=\"Home\"></a>\';\r\n return \'<div class=\"breadcrumb\">\'. implode($sep, $breadcrumb) . \'</div>\';\r\n }\r\n} \r\n?>\r\n</code>\r\nまず、セパレータの»の代わりに使うraquo.png用の<img>タグを定義します。\r\n\r\n次に、if(count($breadcrumb) > 1)でパンくずリストが「ホーム(Home)」だけでないかどうか確認し、パンくずリストの配列$breadcrumbの最初の配列要素をホームページへのアンカーとhome.pngへの<img>タグに置き換えています。そして最後に配列を文字列に変換したものを全体を<div class=\"breadcrumb\">で囲んだものを戻しています。\r\n\r\nあとは、<div class=\"breadcrumb\">用の背景画像を用意してこれをCSSで定義して完成です。\r\n\r\n<font style=\"font-size: 16px;\"><b>Blog記事の表示時のパンくずリストを一部修正する</b></font>\r\n\r\n\r\nBlogの記事のページが表示される場合に、パンくずリストは「ブログ » XXXさんのブログ」と表示され、記事のタイトルが上記のMenu Breadcrumbでも追加されません。また、サイトでブログが1つだけの場合など、「XXXさんのブログ」の部分は不要なのでこれも削除します。\r\n\r\n上記のphptemplate_breadcrumbをこのために以下のように修正します。\r\n<code language=\"php\">\r\n<?php\r\nfunction phptemplate_breadcrumb($breadcrumb) {\r\n $sep = \' <img src=\"\' . base_path() \r\n . path_to_theme() \r\n . \'/images/raquo.png\" alt=\"»\"> \';\r\n\r\n if(count($breadcrumb) > 1) {\r\n $breadcrumb[0] = \'<a href=\"\' . base_path() . \'\"><img src=\"\' . base_path() . path_to_theme() . \'/images/home.png\" alt=\"Home\"></a>\';\r\n\r\n if($breadcrumb[1] == l(\'Blogs\', t(\'blog\'))) {\r\n $breadcrumb[2] = drupal_get_title();\r\n }\r\n\r\n return \'<div class=\"breadcrumb\">\'. implode($sep, $breadcrumb) . \'</div>\';\r\n }\r\n}\r\n?>\r\n</code>\r\nこれでOKです。尚、このブログのタイトルにアンカーをつける場合には、\r\n\r\n変更前\r\n<code language=\"php\">\r\n$breadcrumb[2] = drupal_get_title();\r\n</code>\r\n変更後\r\n<code language=\"php\">\r\n$breadcrumb[2] = \'a href=\"\' . request_uri() . \'\">\' . drupal_get_title() . \'</a>\';\r\n</code>\r\nとすれば大丈夫です。\r\n\";s:6:\"teaser\";s:823:\"当サイトではパンくずリストをDrupal標準のものから多少カストマイズをしていますが、ここではその方法を紹介します。\r\n\r\n変更前\r\n<img src=\"/drupal/sites/jpn.pixture.com/files/images/ss-breadcrumb-1.jpg\" width=\"340\" height=\"29\" alt=\"ss-breadcrumb-1.jpg\" />\r\n\r\n変更後\r\n<img src=\"/drupal/sites/jpn.pixture.com/files/images/ss-breadcrumb-2.jpg\" width=\"340\" height=\"31\" alt=\"ss-breadcrumb-2.jpg\" />\r\n\r\nまず、各ページのタイトルをリストの最後にアンカー無しで表示するようにしました。これは色々方法がありますがDrupal.orgで公開されている<a href=\"http://drupal.org/project/menu_breadcrumb\">Menu Breadcrumb</a>という小さなモジュールにその機能がありますのでこのモジュールを使用しました。\";s:3:\"log\";s:0:\"\";s:18:\"revision_timestamp\";s:10:\"1231653332\";s:6:\"format\";s:1:\"2\";s:4:\"name\";s:7:\"pixture\";s:7:\"picture\";s:0:\"\";s:4:\"data\";s:36:\"a:1:{s:18:\"admin_compact_mode\";b:1;}\";s:22:\"last_comment_timestamp\";s:10:\"1230389052\";s:17:\"last_comment_name\";N;s:13:\"comment_count\";s:1:\"0\";s:8:\"taxonomy\";a:3:{i:8;O:8:\"stdClass\":5:{s:3:\"tid\";s:1:\"8\";s:3:\"vid\";s:1:\"3\";s:4:\"name\";s:6:\"Drupal\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"2\";}i:30;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"30\";s:3:\"vid\";s:1:\"4\";s:4:\"name\";s:9:\"テーマ\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}i:26;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"26\";s:3:\"vid\";s:1:\"4\";s:4:\"name\";s:16:\"ヒント/メモ\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}}s:5:\"files\";a:0:{}}i:5;O:8:\"stdClass\":29:{s:3:\"nid\";s:1:\"5\";s:4:\"type\";s:4:\"blog\";s:8:\"language\";s:2:\"ja\";s:3:\"uid\";s:1:\"1\";s:6:\"status\";s:1:\"1\";s:7:\"created\";s:10:\"1229700294\";s:7:\"changed\";s:10:\"1231647734\";s:7:\"comment\";s:1:\"2\";s:7:\"promote\";s:1:\"1\";s:8:\"moderate\";s:1:\"0\";s:6:\"sticky\";s:1:\"0\";s:4:\"tnid\";s:1:\"0\";s:9:\"translate\";s:1:\"0\";s:3:\"vid\";s:1:\"5\";s:12:\"revision_uid\";s:1:\"1\";s:5:\"title\";s:37:\"IMCEをちょっとカストマイズ\";s:4:\"body\";s:1330:\"IMCEではimage(画像)とlink(リンク)のどちらかの挿入ができるようになっているが、lightbox2などで自動的にイメージが表示されるように<a></a><img></img>の両方が一度に挿入できるようにする。\r\n\r\n変更するのはmodules/imce/js/imce_inline.jsファイルにあるimceInline.insert関数。\r\n\r\n変更前\r\n<code language=\"javascript\">\r\n var html = type == \'image\' ? \r\n (\'<img src=\"\' + file.url\r\n + \'\" width=\" + file.width\r\n + \'\" height=\"\' + file.height \r\n + \'\" alt=\"\' + file.name \r\n +\'\" />\'\r\n ) : \r\n (\'<a href=\"\' + file.url + \'\">\'\r\n + file.name + \' (\' + file.size + \')</a>\'\r\n );\r\n</code>\r\n変更後\r\n<code language=\"javascript\">\r\n var html = type == \'image\' ? \r\n (\'<img src=\"\' + file.url\r\n + \'\" width=\" + file.width\r\n + \'\" height=\"\' + file.height \r\n + \'\" alt=\"\' + file.name \r\n + \'\" rel=\"lightbox\" />\'\r\n ) : \r\n (\'<a href=\"\' + file.url \r\n + \'\"><img src=\"\' + file.url \r\n + \'\" width=\"\' + file.width \r\n + \'\" height=\"\' + file.height \r\n + \'\" alt=\"\' + file.name \r\n + \'\" /></a>\'\r\n );\r\n</code>\r\n変更後の<a></a>にrel=\"lightbox\"を追加したのはlightbox2が自動的に動作するようにするため。\r\n\";s:6:\"teaser\";s:446:\"IMCEではimage(画像)とlink(リンク)のどちらかの挿入ができるようになっているが、lightbox2などで自動的にイメージが表示されるように<a></a><img></img>の両方が一度に挿入できるようにする。\r\n\r\n変更するのはmodules/imce/js/imce_inline.jsファイルにあるimceInline.insert関数。\r\n\r\n変更前\r\n<code language=\"javascript\">\r\n var html = type == \'image\' ?\";s:3:\"log\";s:0:\"\";s:18:\"revision_timestamp\";s:10:\"1231647734\";s:6:\"format\";s:1:\"2\";s:4:\"name\";s:7:\"pixture\";s:7:\"picture\";s:0:\"\";s:4:\"data\";s:36:\"a:1:{s:18:\"admin_compact_mode\";b:1;}\";s:22:\"last_comment_timestamp\";s:10:\"1229700294\";s:17:\"last_comment_name\";N;s:13:\"comment_count\";s:1:\"0\";s:8:\"taxonomy\";a:3:{i:8;O:8:\"stdClass\":5:{s:3:\"tid\";s:1:\"8\";s:3:\"vid\";s:1:\"3\";s:4:\"name\";s:6:\"Drupal\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"2\";}i:26;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"26\";s:3:\"vid\";s:1:\"4\";s:4:\"name\";s:16:\"ヒント/メモ\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}i:28;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"28\";s:3:\"vid\";s:1:\"4\";s:4:\"name\";s:15:\"モジュール\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}}s:5:\"files\";a:0:{}}i:6;O:8:\"stdClass\":29:{s:3:\"nid\";s:1:\"3\";s:4:\"type\";s:4:\"blog\";s:8:\"language\";s:2:\"ja\";s:3:\"uid\";s:1:\"1\";s:6:\"status\";s:1:\"1\";s:7:\"created\";s:10:\"1229178833\";s:7:\"changed\";s:10:\"1231653056\";s:7:\"comment\";s:1:\"2\";s:7:\"promote\";s:1:\"1\";s:8:\"moderate\";s:1:\"0\";s:6:\"sticky\";s:1:\"0\";s:4:\"tnid\";s:1:\"0\";s:9:\"translate\";s:1:\"0\";s:3:\"vid\";s:1:\"3\";s:12:\"revision_uid\";s:1:\"1\";s:5:\"title\";s:48:\"「最近の投稿」ブロック用のコード\";s:4:\"body\";s:477:\"以下のコードで、最近の投稿(最大8個まで)のタイトルのみをリスト表示します。\r\n<code language=\"php\">\r\n<?php\r\n/**\r\nThe following code displays a list of the 8 most recent post titles as links to the full post. \r\n*/\r\n\r\n$num_posts = \"8\";\r\n\r\n$output = node_title_list(db_query_range(db_rewrite_sql(\"SELECT n.nid, n.title, n.created FROM {node} n WHERE n.status = 1 ORDER BY n.created DESC\"), $nodetype, 0, $num_posts));\r\n\r\nprint $output;\r\n?>\r\n</code>\";s:6:\"teaser\";s:477:\"以下のコードで、最近の投稿(最大8個まで)のタイトルのみをリスト表示します。\r\n<code language=\"php\">\r\n<?php\r\n/**\r\nThe following code displays a list of the 8 most recent post titles as links to the full post. \r\n*/\r\n\r\n$num_posts = \"8\";\r\n\r\n$output = node_title_list(db_query_range(db_rewrite_sql(\"SELECT n.nid, n.title, n.created FROM {node} n WHERE n.status = 1 ORDER BY n.created DESC\"), $nodetype, 0, $num_posts));\r\n\r\nprint $output;\r\n?>\r\n</code>\";s:3:\"log\";s:0:\"\";s:18:\"revision_timestamp\";s:10:\"1231653056\";s:6:\"format\";s:1:\"2\";s:4:\"name\";s:7:\"pixture\";s:7:\"picture\";s:0:\"\";s:4:\"data\";s:36:\"a:1:{s:18:\"admin_compact_mode\";b:1;}\";s:22:\"last_comment_timestamp\";s:10:\"1229178833\";s:17:\"last_comment_name\";N;s:13:\"comment_count\";s:1:\"0\";s:8:\"taxonomy\";a:2:{i:8;O:8:\"stdClass\":5:{s:3:\"tid\";s:1:\"8\";s:3:\"vid\";s:1:\"3\";s:4:\"name\";s:6:\"Drupal\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"2\";}i:26;O:8:\"stdClass\":5:{s:3:\"tid\";s:2:\"26\";s:3:\"vid\";s:1:\"4\";s:4:\"name\";s:16:\"ヒント/メモ\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"0\";}}s:5:\"files\";a:0:{}}i:7;O:8:\"stdClass\":29:{s:3:\"nid\";s:2:\"44\";s:4:\"type\";s:4:\"blog\";s:8:\"language\";s:2:\"ja\";s:3:\"uid\";s:1:\"1\";s:6:\"status\";s:1:\"1\";s:7:\"created\";s:10:\"1233603685\";s:7:\"changed\";s:10:\"1233603795\";s:7:\"comment\";s:1:\"2\";s:7:\"promote\";s:1:\"1\";s:8:\"moderate\";s:1:\"0\";s:6:\"sticky\";s:1:\"0\";s:4:\"tnid\";s:1:\"0\";s:9:\"translate\";s:1:\"0\";s:3:\"vid\";s:2:\"44\";s:12:\"revision_uid\";s:1:\"1\";s:5:\"title\";s:11:\"jQuery test\";s:4:\"body\";s:206:\"<?php\r\n drupal_add_js(\r\n \'$(document).ready(function(){\r\n $(\"p\").fadeIn(\"slow\");\r\n });\',\r\n \'inline\'\r\n );\r\n?>\r\n\r\n<p id=\"one\">Paragraph one</p>\r\n\r\n<p>Paragraph two</p>\r\n\r\n<p>Paragraph three</p>\r\n\r\nEnd\r\n\";s:6:\"teaser\";s:206:\"<?php\r\n drupal_add_js(\r\n \'$(document).ready(function(){\r\n $(\"p\").fadeIn(\"slow\");\r\n });\',\r\n \'inline\'\r\n );\r\n?>\r\n\r\n<p id=\"one\">Paragraph one</p>\r\n\r\n<p>Paragraph two</p>\r\n\r\n<p>Paragraph three</p>\r\n\r\nEnd\r\n\";s:3:\"log\";s:0:\"\";s:18:\"revision_timestamp\";s:10:\"1233603795\";s:6:\"format\";s:1:\"3\";s:4:\"name\";s:7:\"pixture\";s:7:\"picture\";s:0:\"\";s:4:\"data\";s:36:\"a:1:{s:18:\"admin_compact_mode\";b:1;}\";s:22:\"last_comment_timestamp\";s:10:\"1233603685\";s:17:\"last_comment_name\";N;s:13:\"comment_count\";s:1:\"0\";s:8:\"taxonomy\";a:1:{i:8;O:8:\"stdClass\":5:{s:3:\"tid\";s:1:\"8\";s:3:\"vid\";s:1:\"3\";s:4:\"name\";s:6:\"Drupal\";s:11:\"description\";s:0:\"\";s:6:\"weight\";s:1:\"2\";}}s:5:\"files\";a:0:{}}}', created = 1246717582, expire = 1246721182, headers = '', serialized = 1 WHERE cid = '0:7' in /www/pixture/html/drupal/includes/cache.inc on line 109.
アニメーションするRSSフィードアイコンを設置
投稿者:pixture 投稿日時:火, 12/30/2008 - 13:25
|
||||
|
サイトの見た目にアクセントをつけるためにサイドバーに設置するRSSフィードアイコンをFlashで作成して設置しました。 <?php $flashfile = base_path() . path_to_theme() . "/images/rss-icon.swf"; ?> <a href="/drupal/rss.xml" id="rss-icon-animated"> <embed src="<?php print $flashfile ?>" menu=false quality=high wmode=transparent bgcolor=#FFFFFF width="48" height="48" name="rss-icon" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed> </a> オリジナルサイズは128x128。使いたい方はご自由にどうぞ
|

