2010-12-14 11 views
1

フロントエンドのスキンファイルですでにjQueryを使用しています。私はadminのphtmlファイルにいくつかの追加機能を追加しました。これもjQueryを使う必要があります。私はそれを2回含む必要はありませんが、フロントエンドでどのテーマパッケージ名が使用されているのかわからないと仮定して、既存のjQueryファイルに動的にリンクするにはどうすればいいのでしょうか?それはハードコーディングしたくないですか?)Magento - 管理ファイルからフロントエンドのスキンjsファイルへのリンク

例えば、私はこれを試してみましたが、それは私の管理テーマパッケージ名ではなく、フロントエンドのパッケージ提供します:

<?php 
    // Get the package name 
    $configData = Mage::getStoreConfig('design'); 
    $package = $configData['package']['name']; 
?> 

誰もが?

+0

「/ skin」ではなく「/ js」にjavascriptを入れましたか? – clockworkgeek

+0

テーマに固有なので、skin/frontend/themename/jsにあります。 –

+0

jQueryはライブラリであるため、ジェネリックの '/ js'フォルダに入れることに抵抗しません。さもなければ私はそれが必要と思った各テーマに入れました、結局は50KBだけです。私は約50GBの写真があるサイトで作業しました! JavaScriptのビットはそれほど悪くはないようです。あるいは、code.google.comから直接組み込むこともできます。 – clockworkgeek

答えて

1

これは機能しているようです。私は、直接DBにアクセスし、「デザイン/パッケージ/名前」を探しcore_config_data表にし、その使用してJSファイルへのURLを構築することができます。私のために

<?php // Get the current theme being used, so we can build the url link to our jQuery file 
$connection = Mage::getSingleton('core/resource')->getConnection('core_read'); 
$tablename = Mage::getSingleton('core/resource')->getTableName('core_config_data'); 
$results = $connection->fetchAll("SELECT * FROM $tablename WHERE path='design/package/name';"); 
foreach($results as $row) { $theme = $row['value']; }; 
?> 
<script type="text/javascript" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN).'frontend/'.$theme; ?>/default/js/jquery.min.js"></script> 
+0

このルートを使用する必要がある場合は、データベースに直接クエリを行わないでください。予期せず変更される可能性のある多くのものがあり、非効率的です。代わりに、$ theme = Mage :: getStoreConfig( 'design/package/name'、$ storeId) 'を使用してください。' $ storeId'は既知のストアです。 Magentoはおそらくすでにあなたのために多くの労力を節約する設定全体をキャッシュしています。 – clockworkgeek

+0

これは私が最初に試したものですが、私が言ったように、フロントエンドのスキンパッケージ名ではなく、デフォルトの管理者パッケージ名が常に返されます。 –

0

が1ないようstoreIdを$に設定するのに役立ちました0

$package = Mage::getStoreConfig('design/package/name', 1); 
$theme = Mage::getStoreConfig('design/theme/default', 1); 
関連する問題