ということでユーザ登録の前にナビ用のパンくずリストを作ります。
■ パンくずリスト( 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 件のコメント:
コメントを投稿