私は既存のWebサイトを再編集して、codeigniterを使用します。現在のシステムは、この形式でXMLを使用して、単一のテーブルセル内のナビゲーションの設定を格納します。
<NAVIGATION>
<item1>
<id>1</id>
<name>Home</name>
<link></link>
<parent>0</parent>
<target>_self</target>
<rel>follow</rel>
<menu>main</menu>
</item1>
<item2>
<id>2</id>
<name>Some Page</name>
<link>some-page</link>
<parent>0</parent>
<target></target>
<rel>follow</rel>
<menu>main</menu>
</item2>
</NAVIGATION>
私は、元の開発者が念頭に置いていたが、原因不明のままの理由で、私は維持したいかわからないんだけど今のところこのフォーマット。
私は、このXMLをdbからプルするナビゲーションモデルを作成し、それを配列に変換しました。私がやろうとしている何
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class Navigation_model extends CI_Model
{
function __construct()
{
parent::__construct();
}
function get_navigation()
{
$this->db->select('pages.block');
$this->db->from('pages');
$this->db->join('style','style.styleID = pages.styleID','left');
$this->db->where('style.name','data');
$this->db->where('pages.locID',$this->config->item('splitID'));
$this->db->like('pages.block','<NAVIGATION>');
$navigation_query = $this->db->get();
$navigation_row = $navigation_query->row_array();
return xml2array($navigation_row['block']);
}
}
/* End of file navigation_model.php */
/* Location: ./application/model/navigation_model.php */
、navigation.phpと呼ばれる設定ファイルにこのモデルをロードし、グローバル$コンフィグ配列にナビゲーション配列をロードすることです。私はモデルのオートロードとnavigation.phpの読み込みの両方を試みたが役に立たなかった。
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
$this->load->model('Navigation_model');
var_dump($this->Navigation_model->get_navigation());
/* End of file navigation.php */
/* Location: ./application/config/navigation.php */
私は、次のエラーを取得しておいてください。
Severity: Notice
Message: Undefined property: CI_Config::$load
Filename: config/navigation.php
Line Number: 3
どのように私は最高の私がやろうとしています何を成し遂げることができますか?
興味深い解決策。最初の問題の私の問題は、すべてのコントローラがナビゲーションにアクセスする必要はないということです。そのように設定するのはちょっと奇妙なようです。ナビゲーションヘルパーが動作する可能性がありますが、それは非常に直感的なのかどうかはわかりません。私が試みたようにナビゲーション設定ファイルをナビゲーションモデルから引き出すように設定することは可能でしょうか? – Yev
私はわかりませんが、設定とヘルパーを比較すると、私はヘルパーがはるかに直感的だと思います。 –
すべてのコントローラにアクセスする必要がない場合は、関数を作成することができます。 'MY_Controller'の' set_navigation() 'を呼び出し、必要なコントローラだけを読み込みます。 –