2010-12-14 3 views
1

이미 프론트 엔드 스킨 파일에서 jQuery를 사용하고 있습니다. 이제 jQuery를 사용해야하는 admin phtml 파일에 몇 가지 추가 기능을 추가했습니다. 두 번 포함시켜야하는 것을 원하지 않지만, 프론트 엔드에서 어떤 테마 패키지 이름이 사용되는지 알지 못한다고 가정하면 (기존의 jQuery 파일이 동적으로 변경 될 수 있기 때문에 어떻게하면 기존의 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의 사진으로 사이트에서 일했습니다! 약간의 자바 스크립트가 그렇게 나쁘지는 않습니다. 또는 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); 
관련 문제