2

私は codeigniter に取り組んでいますが、タイトルを動的に変更する最良の方法は何でしょうか。例えば。ホームページ、単発投稿ページ、カテゴリーページなどでタイトルが変わります。

私が考えることができる唯一の解決策は、別の機能を作成し、現在のURL(アドレスバーから)を単一の投稿ページ、カテゴリページ、ホームページの構造と比較することです

このようなもの:

public function current_title() { 
   if($this->uri->segment(2) == 'post') { 
      // will return post title 
    }

   if($this->uri->segment(2) == 'category') { 
      // will return archive title 
    }

    if(current_url() == base_url()) { 
      // this is home page 
    }

誰かが以前にこれを使用していた場合、アドバイスをいただければ幸いです

4

4 に答える 4

2

これには uri を使用しませんが、代わりにコントローラーとアクション名と言語クラスを使用します。

public function current_title() 
{
    $this->lang->load('titles.php', 'en');

    return $this->lang->line(
        $this->router->fetch_class().'.'.$this->router->fetch_method()
    );
}

翻訳用のようなキーがありMyClass.myMethodます。titles.phpファイルにタイトルを追加するだけです:

$lang['MyClass.myMethod'] = "The title";
$lang['MyOtherClass.myOtherMethod'] = "The other title";

翻訳についてもっと読む:
http://ellislab.com/codeigniter/user-guide/libraries/language.html
http://ellislab.com/codeigniter/user-guide/helpers/language_helper.html

于 2013-07-03T15:53:42.653 に答える
2

//コントローラーでは、次のようにする必要があります。

 class Home extends your_Controller {
      public function __construct() {
          parent:: __construct();
         }
       function index()
       { 
       $this->data['pageTitle'] = 'Your page title';
        $data['main_content'] = 'home';
        $this->load->view('includefolder/viewname', $data);
       }
    }
于 2013-07-03T15:54:07.030 に答える
0

ビューごとにコントローラー関数があるため、URLから関数名を簡単に取得できます

$this -> router -> fetch_module();

あなたはそれを扱うことができます。

于 2013-07-03T16:06:52.207 に答える