drupal7 blockでサイト構築しよう@drupal cafe

24
$this->company = “ KDDI ウウウウウウウウウウウウウ $this->name = “ ウウ ウウ { We Drupal } Drupal Cafe UMEDA

Upload: masayuki-abe

Post on 18-Aug-2015

96 views

Category:

Technology


1 download

TRANSCRIPT

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

$this->company = “ KDDI ウェブコミュニケーションズ ”

$this->name = “ 阿部 正幸 ”

{ We ♥︎ Drupal }

Drupal Cafe   UMEDA

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

● ACE01 / SmartRelease プロダクトマネージャー● CPI エバンジェリスト 統括● KDDI ウェブ 公認 CPI スタッフブログ 編集長● Drupal(g.d.o Japan) 日本コミュニティー● 日本ディレクション協会 講演部● HTML5 Fun 理事

OSS を広げる活動、 Web 制作に関する情報発信を行う

神戸生まれ、横浜育ち、 7 月 31 日生まれ

阿部 正幸(あべ まさゆき)

ディレクタープログラマー プ ロ マ ネ Evangelist

Page 3: Drupal7 Blockでサイト構築しよう@Drupal cafe
Page 4: Drupal7 Blockでサイト構築しよう@Drupal cafe

私の構築スタイル

『 BLOCK 』で構築

- 当日話した内容 –

Drupal の構築は様々な手法があります。昨今は Panels を使い構築することが多いですが、 Block を使い構築する方法も根強い人気です。

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

- 当日話した内容 –

Block ごとにパーツを作成し、各ページにブロックを配置しページを作成していきます。

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

BLOCK の作り方

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

Views から BLOCK を生成- Views に取り込めたら勝ち -

- 当日話した内容 –

Views という最も有名なモジュールを使い、 Block を生成します。Views を使った例をいくつか紹介します。

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

Views ( 使用例 )

登録件数付きのタグ一覧

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

Step .1

Create a taxonomy view

Step .2

Add term group in relationship

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

Step .3

Add term name , content nid filds for display

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

Step .4

Use aggregation: Yes

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

Step .5

Aggregation type : Count DISTINCT

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

Views ( 使用例 )

ユーザー情報ページにユーザーが投稿記事を出力

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

Step .1

Create a node view

Step .2

Add コンテンツ投稿者 in relationship

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

Step .3

Contextual filter : ユーザー ID 追加

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

Step .3

パス設定 : my_url/%

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

;;;;;;;;;;;;;;;;;;;;;;; Regions;;;;;;;;;;;;;;;;;;;;;regions[content] = 'Content'regions[sidebar1] = 'Sidebar1'regions[sidebar2] = 'Sidebar2'

.info ファイルに追記

- 当日話した内容 –

Views を使いブロックを生成し、ブロック領域を作成します。ブロック領域の登録はテーマ内の、 .info ファイルに記述します。

Page 18: Drupal7 Blockでサイト構築しよう@Drupal cafe
Page 19: Drupal7 Blockでサイト構築しよう@Drupal cafe

ブロックに要素を追加する

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

// 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);

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

- 当日話した内容 –

ブロックを CMS から登録したあとに、テーマに反映します。反映は『 THEMENAME_preprocess_xxxx 』を使い、ブロックを読み込みます。

例)$variables['sidebar1'] = block_get_blocks_by_region('sidebar1');

Sidebar1 ブロックに登録されたコンテンツを、変数: sidevar1 にセットしています。

テンプレート側では「 print render($sidebar1); 」の用に出力を行います。

Page 22: Drupal7 Blockでサイト構築しよう@Drupal cafe
Page 23: Drupal7 Blockでサイト構築しよう@Drupal cafe

- 当日話した内容 –

テーマ落とし込みは、 Views 画面を開き、 Advanced >> Theme: information より、使っているテンプレートや、コードが確認できます。

細かい HTML 出力の設定が可能です。

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

ありがとうございました

ID : chiyo.abe阿部 正幸

cpi-line