ということでユーザ登録の前にナビ用のパンくずリストを作ります。
■ パンくずリスト( Breadcrumb )
まずパンくずHTMLを返すメソッドをヘルパーに作成。
extension/helpers/html_helpers.php
<?php function breadcrumb($array) { $count = count($array); $i = 1; $html = '<div id="breadcrumb"><ul>'; foreach($array as $k=>$v) { $class = (empty($v)) ? ' class="home"' : ''; if($i != $count) $html .= '<li><a href="'.base_url($v).'"'.$class.'>'.$k.'</a></li>'; else // no link for the last one $html .= '<li class="last"><span>'.$k.'</span></li>'; $i++; } $html .= '</ul></div>'; return $html; }
コントローラーにパンくず用の配列を作成。
admin/application/controllers/users.php
<?php class User extends Controller { function __construct() { parent::__construct(); if( ! _s('admin')) redirect(); } function index() { $this->accounts(); } function accounts($page=0) { $data['breadcrumbs'] = array(_l('HOME')=>'', _l('USERLIST')=>'admin/user'); $this->layout->view('user/accounts', $data); } }
レイアウトにパンくず表示ラインを追加
admin/application/views/_layouts/main.php
<?php if(isset($breadcrumbs) && is_array($breadcrumbs)) echo breadcrumb($breadcrumbs); ?>
見た目はAppleのようなパンくずリストにしてみました。
■ 最後に
この方法だとパンくずを表示するなら全てのメソッド内に$data['breadcrumbs']を追加しなければいけないんですよね。
他に良いやり方を思いつかなかったのですが、正直このパンくずリストあまりいい方法ではないと思います。
「こうしたほうが良いよ~」とアイデアのある方は是非アドバイスください。
0 件のコメント:
コメントを投稿