2017-01-18 8 views
1

ファイルdefine.inc.phpには複数のグローバル変数が含まれていますが、新しい変数を定義するにはファイルが最適ですか?Prestashopで新しいグローバル変数を定義する場所

Prestashopを更新すると、ファイルdefine.inc.phpがリセットされ、グローバル変数が失われます。

多分settings.inc.phpにありますが、このファイルはバージョン管理されていません。

答えて

2

あなたが作成することができますファイルconfig/defines_custom.inc.phpconfig/defines.inc.phpの横にあります。起動時に、Prestashopはこのファイルが存在するかどうかをチェックします。存在する場合は、デフォルトのものの前に含まれます。

あなたはconfig/config.inc.phpに関連するコードを見つけることができます。

$currentDir = dirname(__FILE__); 

/* Custom defines made by users */ 
if (is_file($currentDir.'/defines_custom.inc.php')) { 
    include_once($currentDir.'/defines_custom.inc.php'); 
} 
require_once($currentDir.'/defines.inc.php'); 

あなたはたとえば、デフォルトのファイル触れずにモードDEVを設定することができますこの方法:

define('_PS_MODE_DEV_', true); 

、デフォルトのファイルの中をこの定義は発生しません。

if (!defined('_PS_MODE_DEV_')) { 
    define('_PS_MODE_DEV_', false); 
} 
+0

ありがとうございますが、Prestashop(1.6.1.X)の私のバージョンでは、次のコードは含まれていません:include_once($ currentDir。 '/ define_custom.inc.php'); –

+2

@alexandrebruそれで、あなたは何かが存在するために何かを修正したに違いありません。 https://github.com/PrestaShop/PrestaShop/blob/1.6.1.x/config/config.inc.php#L30 – TheDrot

+0

@TheDrotはい私はコミットを見つける:https://github.com/PrestaShop/PrestaShop/コミット/ 146f0676d5e1fc51d7edcdf46b192988ccbe4660 –

0

あなた自身のモジュール(多分 'ダミー'モジュール:)を作成し、そこにグローバル変数を宣言することをお勧めします。 「のmymodule」と呼ばれるモジュールを作成し、メインファイルmymodule.phpがあるべき例えば

// Here you can define your global vars 
define('MY_CUSTOM_VAR', 100); 

class MyModule extends MyModule 
{ 
    public function __construct() 
    { 
     // See documentation 
    } 

    public function install(){ return parent::install(); } 
} 

ですから、問題はあなたのグローバルVARSを失うことなく、あなたのPrestaShopのバージョンを更新することができます;)

関連する問題