2017-11-14 14 views
1

PSのドキュメントには、モジュールを開発するときに/themes/[theme_name]/modulesサブフォルダを作成して、それがために使用されることができることを言う:モジュールの「テーマ」フォルダとは何ですか?

「サブフォルダ、必要であれば、の.tplファイルや言語ファイルを上書きするために。」

、それはその:「現在のテーマに応じて、さまざまな方法でをモジュールのテンプレートファイルを処理することができます」

しかし、実際の使用方法はわかりません。それのユースケースは何ですか?

おかげ

答えて

2

あなたがコア・ファイルを変更することはありませんPrestaShopのウェブサイトを開発します。つまり、新しいモジュールは/modules/フォルダにのみ作成できますが、既存のモジュールは変更できません。変更したモジュールを更新すると、すべての変更が失われるためです。

Prestashopはモジュールテンプレートファイルをロードする必要があるたびに、このテンプレートの上書きが存在する場合は、まず現在のテーマ/themes/your_theme/modules/the_module/path_to_tpl.tplを探します。そうでなければ、/modulesディレクトリからテンプレートをロードします。

この推奨は.css.jsファイルに対しても有効です。


documentation you mentioned in the comment belowは間違っており、更新する必要があります。モジュール内にthemesフォルダを置くことはできません。あなたは、このコードで見ることができるようにテンプレートをロードするとき、PrestaShopのは、あなたのモジュール内themesフォルダに見えることはありません

/* 
** Template management (display, overload, cache) 
*/ 
protected static function _isTemplateOverloadedStatic($module_name, $template) 
{ 
    if (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$module_name.'/'.$template)) { 
     return _PS_THEME_DIR_.'modules/'.$module_name.'/'.$template; 
    } elseif (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$module_name.'/views/templates/hook/'.$template)) { 
     return _PS_THEME_DIR_.'modules/'.$module_name.'/views/templates/hook/'.$template; 
    } elseif (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$module_name.'/views/templates/front/'.$template)) { 
     return _PS_THEME_DIR_.'modules/'.$module_name.'/views/templates/front/'.$template; 
    } elseif (Tools::file_exists_cache(_PS_MODULE_DIR_.$module_name.'/views/templates/hook/'.$template)) { 
     return false; 
    } elseif (Tools::file_exists_cache(_PS_MODULE_DIR_.$module_name.'/views/templates/front/'.$template)) { 
     return false; 
    } elseif (Tools::file_exists_cache(_PS_MODULE_DIR_.$module_name.'/'.$template)) { 
     return false; 
    } 
    return null; 
} 

:ここ

たちは、モジュールテンプレートを必要と毎回呼ばModuleクラスから_isTemplateOverloadedStatic()方法であり、 。

+0

私はこの動作を断言していますが、モジュールのルートフォルダにあるサブフォルダについては、PSドキュメンテーションのhttp://doc.prestashopで説明されている '/ modules/mymodule/themes/[theme_name]/modules'としています。 com/display/PS16/+ a + first +モジュールの作成。多分私はその情報を誤解していますか? –

+0

これはドキュメントのエラーですので、私はそれに応じて私の答えを更新します。 –

関連する問題