0

addons/default/themes に「uni」という名前のカスタム テーマを作成します。私はCPでそれを見ることができるので、この仕事をOK.

次に、コードを使用してカスタム モジュールを作成します。

class Server extends Public_Controller
{
public function __construct()
{
parent::__construct();

}
public function index()
{
$this->template->title($this->module_details['name'])->set_theme('uni')->build('test');

}
}

しかし、このモジュールをブラウズすると、テーマはまだ CP でアクティブなテーマなので、モジュール コントローラーの set_theme は機能しません。

CP でアクティブなテーマを変更する代わりに、カスタム テーマを使用してモジュールを作成する方法はありますか?

4

2 に答える 2

0

私があなたの質問を理解していれば、この質問はPyroCMS に似ています - カスタムモジュールの設計、デフォルトの設計からの CSS フォーマットのクリア、そこで解決策を見つけることができます。

編集 済み 説明を読んで、同じモジュールに 2 つの異なるレイアウトを使用したいと思います。私は実際にコントローラーでそれを行う方法を知りませんが、ハードコーディングできます。実際にはレイアウトが読み込まれて/system/appname/libraries/Template.phpいるので、ここでハードコーディングすることで解決できます。これは、pyroCMS 1.3.2 で作成したソリューションです。バージョン 2.1 に似ているか、問題を解決するためのヒントを得ることができます。

変更するファイル/system/appname/libraries/Template.phpビルド関数を見つけて、条件を見つけて置き換えます。

if ($this->_layout)
{
    // Added to $this->_data['template'] by refference
    $template['body'] = $this->_body;
            $CI = &get_instance();

            if($CI->uri->segment(2) == 'backend'){
                    $this->_body =  self::_load_view('layouts/backend.html', $this->_data, TRUE, self::_find_view_folder());
            }
            else{
                    $this->_body =  self::_load_view('layouts/frontend.html', $this->_data, TRUE, self::_find_view_folder());
            }
    }
于 2012-05-22T02:56:09.287 に答える
0

フロントエンドの「テーマ」を変更するには、set_theme ではなく、カスタム ページ レイアウトを使用する必要があると思います

于 2012-05-21T08:12:11.130 に答える