2010-08-11 4 views
1

나는 젠토에서 별도의 PHP 파일의 일부 환율을 얻으려고 노력하고 절약 해요 :Magento 맞춤 통화 절약?

<?php 
// Initiate application 
$mageFilename = 'app/Mage.php'; 
require_once $mageFilename; 
Mage::app(); 


// Code to create my $rates array 
/** CODE **/ 

foreach ($rates as $currencyCode => $currencyRates) { 
     Mage::getModel('directory/currency') 
     ->setId($currencyCode) 
     ->setRates($currencyRates) 
     ->save(); 
     } 

오류 :

<br /> 
<b>Fatal error</b>: Uncaught exception 'Mage_Core_Exception' with message 'Cannot retrieve entity config: directory/currency' in /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/Mage.php:550 
Stack trace: 
#0 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Resource.php(161): Mage::throwException('Cannot retrieve...') 
#1 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(265): Mage_Core_Model_Resource-&gt;getTableName('directory/curre...') 
#2 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(247): Mage_Core_Model_Mysql4_Abstract-&gt;getTable('currency') 
#3 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(402): Mage_Core_Model_Mysql4_Abstract-&gt;getMainTable() 
#4 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Abstract.php(306): Mage_Core_Model_Mysql4_Abstract-&gt;save(in <b>/home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/Mage.php</b> on line <b>550</b><br /> 

나는이 (가) 막아로 밝혀() - 메서드 이것이 어디에서 발생하는지.

생각하십니까? 디버깅을 시작할 위치가 확실하지 않습니다. 내가 아는 경우 요금이

는 ... 내가 손을 삽입 할 수 것 때문에도 괜찮을 것 저장되고 있었다 곳

(나는 Mage_Directory_Model_Currency_Import_Abstract 클래스의 코드를했다, 마 젠토 인터페이스를 통해 정상 절약 잘 작동)

답변

0

Magento가 다른 PHP 파일의 컨텍스트에서 시작되지만 Magento가 자체적으로 부트 스트래핑 할 때 제공하는 모든 수정 사항이없는 것은 위험한 것처럼 보입니다.

최소한의 저항을주는 경로는 Magento를 Magento로 만들고 해킹을 줄이는 것이 좋습니다. 이를 염두에두고 Magento 컨트롤러/동작을 설정하고 거기에서이 데이터를 호출하거나 심지어 원격으로 소비 할 수 있습니까 (예 : file_get_contents 사용)?

+0

나는 알고있다. 그러나 나는 많은 시간 동안 아약스와 함께 모든 것을 완벽하게 수행했다. 내 통화 배열을 핵심 통화 모듈의 webservicex 서브 모듈에 던지려한다고 생각합니다. 나는 modifing 코드가 좋은 생각이 아니라는 것을 알고 있지만, 내가하고있는이 프로젝트는 이런 종류의 물건들로 가득 차있다. 그리고 기존 코드를 어 기지 않는 한 아무 문제가 없어야합니다. 회신 해 주셔서 감사합니다. – Rakward

1

/currency_rate 디렉토리를 저장해야 할 때 디렉토리/통화를 저장하려고하는 것 같습니다. 가장 간단한 방법은 작성한 디렉토리/통화 모델에서 saveRates 메소드를 사용하는 것입니다. 즉

Array 
(
    [USD] => Array 
     (
      [CAD] => 1.07 
      [GBP] => .63 
      [EUR] => .71 
     ) 

) 
$currency = Mage::getModel('directory/currency')->saveRates($currencies); 
+0

이것은 나를 위해 일했습니다. 이것이 수동 통화 가져 오기 페이지에서 CurrencyController에 의해 수행되는 방법입니다. – Tspoon

관련 문제