Drupal5のサイトにinline+imagecacheを入れたら、inlineの管理画面が表示されない現象が発生。
imagecacheのすでに存在しない関数を呼んでいたので、修正した。
--- inline/inline.module 2007-04-18 20:22:27.000000000 +0900
+++ inline.custom/inline.module 2009-12-04 13:27:07.000000000 +0900
@@ -83,9 +83,9 @@
if (module_exists('imagecache')) {
$options = array();
$options[''] = 'No Imagecache processing';
- $presets = _imagecache_get_presets();
+ $presets = imagecache_presets();
foreach ($presets as $id => $name) {
- $options[$name] = $name;
+ $options[$name['presetname']] = $name['presetname'];
}
$form['inline']['upload']['image_scaling']['inline_teaser_preset'] = array(
'#title' => t('Teaser preset'),
hook_initでページにアクセスがある度にcssを追加します。
/**
* Implementation of hook_init()
*/
function mymodule_init() {
drupal_add_css(drupal_get_path('module', 'mymodule') . '/mymodule.css');
}
drupal_add_css
hook_init
httpv://www.youtube.com/watch?v=F11jzTBkC7Y
Zen themeをベースにsubthemeを作成するチュートリアル動画です。
ZenにはStartar kitがあり、それをコピーしてsubthemeを作成します。
自作モジュールでviewsのデフォルトviewを使用する方法を簡単にですが、まとめてみました。
viewを作成する
viewsでviewを作成します。作成方法については省略します。
viewをエクスポートする
作成したviewを書き出すために、views_exportモジュールを利用します。views_exportモジュールを有効にしたら、Administer>>Views>>Tools>>Bulk exportにアクセスします。先ほどviewをチェックしてテキストフィールドにこのviewを利用するモジュール名を入力します。exportをクリックするとモジュールに追加する関数とデフォルトviewのコードが表示されます。
モジュールにコードを追加する
例としてmymodule用にexportすると以下の関数が得られます。
/**
* Implementation of hook_views_api().
*/
function mymodule_views_api() {
return array(
'api' => 2,
'path' => drupal_get_path('module', 'mymodule'),
//'path' => drupal_get_path('module', 'mymodule') . '/includes',
);
}
これをmymodule.moduleに追加します。
モジュールのサブディレクトリにviews関連のファイルを配置する場合は、ファンクション内のpath記述をコメントアウトされているものに変更します。
views_defaultファイルを作成する
先ほどpathで指定したディレクトリにmymodule.views_default.incファイルを作成します。PHP開始タグを入力して、さらにexportして得られたコードをそのファイルにコピペします。
Viewsのキャッシュを削除
すでにモジュールをインストールしてあれば、Viewsのキャッシュを削除しなければいけません。Administer>>Views>>Toolsにアクセスして、Clear Views’s cacheボタンをクリックしてキャッシュを削除します。
これで、このモジュールを他のDrupalにインストールすると、自動的にviewが追加されます。
とあるNPOからの依頼で、Drupalでグループウェアを作ってます。
グループウェアシステムなら他にいろいろあるんですが、それらのシステムでは必要な機能がなかったり、機能拡張がしづらかったり、今回の案件はDrupalで組むのが良いということになりました。
Drupalではグループウェアに関してはモジュールを自作する必要はありません。ので、既存モジュールの翻訳とセットアップといった作業が主です。さらにカスタマイズしたり機能追加したい場合でも、強力なモジュールはすでにいろいろありますし、新しいモジュールの開発もしやすいですね。
というわけで、グループウェアが欲しい場合は作りますんでよろしくです。
DrupalでTaxonomyのVocabularyとTermを作成するコード。
$vocabulary = array(
'name' => 'Tags',
'description' => 'My Tags',
'help' => '',
'nodes' => array('story'=>1), // 対象ノードタイプの指定
'multiple' => 1, // 複数選択ON
'required' => 0, // 必須OFF
'hierarchy' => 0, // 階層OFF
'relations' => 0, // 関連TermOFF
'tags' => 1, // タグON
'module' => 'taxonomy',
'weight' => -1, // Weightを-1で指定
);
taxonomy_save_vocabulary($vocabulary);
$terms = array('tag1','tag2','tag3');
$vid = $vocabulary['vid'];
foreach($terms as $term){
$edit = array('vid'=>$vid, 'name'=>$term);
taxonomy_save_term($edit);
};
Drupalでthemeやmoduleのパスを取得するにはdrupal_get_pathを使用する。
たとえばmoduleから外部ファイルをインクルードするときは
include_once('./'. drupal_get_path('module', 'mymodule') .'/extfile.inc');
というようにする。