Drupal7 Blockでサイト構築しよう@Drupal cafe

Post on 18-Aug-2015

96 views 1 download

Transcript of Drupal7 Blockでサイト構築しよう@Drupal cafe

$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