1

私はopencartを初めて使用しますが、これは簡単で最良の解決策だと思います。テンプレートで遊ぶのは楽しいことではありませんが...

追加のテンプレートページを作成するのに苦労しています。たとえば、2種類の商品とカテゴリページがあります。製品ごとにテンプレートを変えたい。opencartでは、製品のレイアウトは1つだけです。

私がやろうと思ったのは、製品のレイアウトを複製することです。オンラインで助けを得ましたが、それ以上何が必要かわかりません。これは私がこれまでにやったことです...

1-catalog / controller / product / product.phpのコントローラーファイルをコピーし、catalog / controller / product/product-2.phpに変更します。次に、コントローラーでこれを変更しました。

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product-2.tpl')) {
    $this->template = $this->config->get('config_template') . '/template/product/product-2.tpl';
    } else {
        $this->template = 'default/template/product/product-2.tpl';
        }

2-次に、製品言語ファイルをコピーして、product-2として保存しました。

3-その後、実際のtplファイルをコピーして、product-2として保存しました。

見た目は良かったのですが、product-2.tplに変更を加えようとしても、何も変わりません。完了するには、さらにいくつかのファイルをコピーする必要がありますか?

4

2 に答える 2

1

検索してたくさんの調査と気が遠くなるようなことをした後、私は自分がやりたいことをするのに非常に便利な方法を見つけました。このようにして、私はopencartテーマシステムを完全に制御できます。好きなだけレイアウトを作ることができます。私はVQmodを使用する必要はなく、コントローラーを作成する必要もありませんが、独自のコントローラーを作成している場合でも、製品、カテゴリなどの既存のコントローラーを使用する必要があります。

カテゴリ、製品、一般的なページごとに異なるテンプレートを作成するための手順は次のとおりです。

私はここで製品の例をやっています。1-テーマの製品フォルダに製品のカスタムテンプレートを作成します。例:customproduct.tpl 2-必要に応じてカスタマイズします。製品を作成し、そのIDを取得します。ここではidが非常に重要です。3-コントローラーcatalog/controller / product/product.phpに移動します4-このコードを見つけます

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product.tpl')) {
  $this->template = $this->config->get('config_template') . '/template/product/customproduct.tpl';
            } else {
    $this->template = 'default/template/product/product.tpl';
            }

5-ここで、単純なifelse条件を使用する必要があります。例えば

//42 is the id of the product 
 if($this->request->get['product_id'] == 42){
            if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/customproduct.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/product/customproduct.tpl';
            } else {
                $this->template = 'default/template/product/customproduct.tpl';
            }
        }
        else{
            if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/product/product.tpl';
            } else {
                $this->template = 'default/template/product/customproduct.tpl';
            }
        }

それが仕事です;)他のコントローラーに対しても同じことができます。

于 2012-07-06T16:30:51.830 に答える
0

ここでわかるように;

http://pranshuarya.com/jaal/Development/opencart-creating-a-new-viewtemplate.html

これは、「完全に新しいレイアウト」要求に対する本当の解決策の 2 番目のオプションでした。どちらも使用できます。新しいコントローラ ルーチンが必要ない場合、解決策は時間の節約になりますが、その方法はより柔軟です。

手順は次のとおりです。

  • 新しいコントローラ ファイルを /catalog/controller に追加します。同様のコントローラーが既にある場合は、new_layout.php... copy のようなものを呼び出します。以下のコメントで述べたように、コントローラー名を必ず変更してください。

  • テーマ フォルダに新しいビュー ファイルを追加します。必要に応じてコントローラのように、同様のビュー ファイルのコンテンツをコピーして、必要に応じて変更できます。

  • 上記のリンクで説明されているように、管理パネルのシステム/デザイン/レイアウトから、または MYSQL テーブルから直接新しいレイアウトを追加します。

  • 今は大丈夫です。このレイアウト ビューにいくつかのモジュールを追加するだけでお楽しみいただけます。

于 2012-10-15T21:59:37.137 に答える