drupal7 blockでサイト構築しよう@drupal cafe
TRANSCRIPT
$this->company = “ KDDI ウェブコミュニケーションズ ”
$this->name = “ 阿部 正幸 ”
{ We ♥︎ Drupal }
Drupal Cafe UMEDA
● ACE01 / SmartRelease プロダクトマネージャー● CPI エバンジェリスト 統括● KDDI ウェブ 公認 CPI スタッフブログ 編集長● Drupal(g.d.o Japan) 日本コミュニティー● 日本ディレクション協会 講演部● HTML5 Fun 理事
OSS を広げる活動、 Web 制作に関する情報発信を行う
神戸生まれ、横浜育ち、 7 月 31 日生まれ
阿部 正幸(あべ まさゆき)
ディレクタープログラマー プ ロ マ ネ Evangelist
私の構築スタイル
『 BLOCK 』で構築
- 当日話した内容 –
Drupal の構築は様々な手法があります。昨今は Panels を使い構築することが多いですが、 Block を使い構築する方法も根強い人気です。
- 当日話した内容 –
Block ごとにパーツを作成し、各ページにブロックを配置しページを作成していきます。
BLOCK の作り方
Views から BLOCK を生成- Views に取り込めたら勝ち -
- 当日話した内容 –
Views という最も有名なモジュールを使い、 Block を生成します。Views を使った例をいくつか紹介します。
Views ( 使用例 )
登録件数付きのタグ一覧
Step .1
Create a taxonomy view
Step .2
Add term group in relationship
Step .3
Add term name , content nid filds for display
Step .4
Use aggregation: Yes
Step .5
Aggregation type : Count DISTINCT
Views ( 使用例 )
ユーザー情報ページにユーザーが投稿記事を出力
Step .1
Create a node view
Step .2
Add コンテンツ投稿者 in relationship
Step .3
Contextual filter : ユーザー ID 追加
Step .3
パス設定 : my_url/%
;;;;;;;;;;;;;;;;;;;;;;; Regions;;;;;;;;;;;;;;;;;;;;;regions[content] = 'Content'regions[sidebar1] = 'Sidebar1'regions[sidebar2] = 'Sidebar2'
.info ファイルに追記
- 当日話した内容 –
Views を使いブロックを生成し、ブロック領域を作成します。ブロック領域の登録はテーマ内の、 .info ファイルに記述します。
ブロックに要素を追加する
// template.php ファイル
function bootstrap_preprocess_html(&$variables){}
function bootstrap_preprocess_page( &$variables ) { // ブロック追加 // $variables['sidebar1'] = block_get_blocks_by_region('sidebar1');}
function bootstrap_preprocess_node( &$variables ) {}
// page.tpl.php ファイル
print render($sidebar1);
- 当日話した内容 –
ブロックを CMS から登録したあとに、テーマに反映します。反映は『 THEMENAME_preprocess_xxxx 』を使い、ブロックを読み込みます。
例)$variables['sidebar1'] = block_get_blocks_by_region('sidebar1');
Sidebar1 ブロックに登録されたコンテンツを、変数: sidevar1 にセットしています。
テンプレート側では「 print render($sidebar1); 」の用に出力を行います。
- 当日話した内容 –
テーマ落とし込みは、 Views 画面を開き、 Advanced >> Theme: information より、使っているテンプレートや、コードが確認できます。
細かい HTML 出力の設定が可能です。
ありがとうございました
ID : chiyo.abe阿部 正幸
cpi-line