2012-01-17 5 views
0

十分に長い間、私はcodeignterを使用しています。そのクラスは本当に使いやすく、便利で便利です。
私のカスタムのPHPフレームワークでページ分割クラスを統合しようとしています.Frmeworkにphpデータを含む動的テーブルを作成する前に、CIセットアップの/ base/system/librariesフォルダにあります。
ここで私は/base/system/libraries/Pagination.phpの$CI =& get_instance();の問題に直面しています。これはcontroller.phpでインスタンス化されます。 コントローラ全体を使用しているわけではなく、そのクラスだけを使用しているので、投げエラーです。
get_instance()を使用せずに、ページネーションクラスを使用できるソリューションはありますか。CoreignでCodeigniterクラスを使用する必要があります

+2

あなたは逆さまCodeIgniterのライブラリを使用しての全体のコンセプトを持っているようです。あなたがしようとしていることのいくつかのコードを投稿できますか? –

+0

これがあなたの_modus operandi_だと、Zend Frameworkを使った方が良いでしょう。「私はどこでもコントローラを使用していません」という意味ですか?だから、フレームワークの残りの部分を使わずに、あなたのパーソナルプロジェクトでCIのページネーションクラスを取っただけですか? –

+0

@JosephSilber、はい、私はそれを使用するその奇妙な方法を知っています;-)、しかし、私はクラスfile.Andを作成してオブジェクトを作成して使用しています。私はCIのテーブルクラスを次のように使っています: 'include_once(LIB_DIR。 '/ Table $ table-> generate_heading($ dataHeader); $ table-> generate(); $ table-> generate(); 'etc – Debugger

答えて

0

ページネーションクラスは、CIにあまり依存しません。単純にそれを書き直して、「外部」へのすべての参照を見つけ出し、割り当てようとする正しいデータに置き換えることができます。そうすれば、PaginationはCIとのやりとりなしで動作し、フレームワークで使用することができます。

if(isset($_GET['cur_page'])){ 
     $this->cur_page = $_GET['cur_page']; 
    }else{ 
     $this->cur_page = 1; 
    } 

&

if ($CI->config->item('enable_query_strings') === TRUE OR $this->page_query_string === TRUE) 
     { 
      $this->base_url = rtrim($this->base_url).'&'.$this->query_string_segment.'='; 
     } 
     else 
     { 
      $this->base_url = rtrim($this->base_url, '/') .'/'; 
     } 

+0

完了..すべてのCIインスタンスを削除しました。 – Debugger

+0

そして?それは問題を解決しましたか? – Ranty

+0

はい。私は答えとしてほとんどの解決策を持っています。 – Debugger

1
$CI =& get_instance(); 

    if ($CI->config->item('enable_query_strings') === TRUE OR $this->page_query_string === TRUE) 
    { 
     if ($CI->input->get($this->query_string_segment) != $base_page) 
     { 
      $this->cur_page = $CI->input->get($this->query_string_segment); 

      // Prep the current page - no funny business! 
      $this->cur_page = (int) $this->cur_page; 
     } 
    } 
    else 
    { 
     if ($CI->uri->segment($this->uri_segment) != $base_page) 
     { 
      $this->cur_page = $CI->uri->segment($this->uri_segment); 

      // Prep the current page - no funny business! 
      $this->cur_page = (int) $this->cur_page; 
     } 
    } 

これを削除します。

コールそれを好きでは、

include_once(LIB_DIR.'/pagination.class.php'); 
$pagination = new Pagination(); 

$config['base_url'] = 'http://testme.com/stats.php?cur_page='; 
$config['total_rows'] = 200; 
$config['per_page'] = 20; 

$pagination->initialize($config); 

echo $pagination->create_links(); 
関連する問題