2011-12-20 14 views
16

Pracuję nad modułem wysyłkowym. W system.xml Ustawiam pewne pola na backend_encrypted. Oto węzeł:Odszyfruj/użyj wartości konfiguracyjnych zapisanych jako config_backend_encrypted w magento

<client_id translate="label"> 
    <label>Client ID</label> 
    <frontend_type>obscure</frontend_type> 
    <backend_model>adminhtml/system_config_backend_encrypted</backend_model> 
    <sort_order>10</sort_order> 
    <show_in_default>1</show_in_default> 
    <show_in_website>1</show_in_website> 
    <show_in_store>0</show_in_store> 
</client_id> 

muszę przekazać tę wartość za pomocą cURL do wysyłki API, ale gdy próbuję pobrać go za pomocą $this->getConfigData('client_id');, to wyjdzie szyfrowane.

Szukałem w innych modułach i widzę wartości przechowywane tak samo, ale w jakiś sposób udaje im się uzyskać odpowiednią wartość.

Każdy pomysł, jak go zdobyć?

Odpowiedz

21

Wystarczy użyć Mage::helper('core')->decrypt($this->getConfigData('client_id'));

+0

działa, dziękuję. ale dlaczego nie widzę żadnego odniesienia do odszyfrowania w żadnym innym module? A jeśli możesz pomóc, używam go źle, gdzie to nie powinno być? – Ovidiu

+0

Robisz wszystko dobrze. Jeśli przeszukasz kod Magento w celu "odszyfrowania", otrzymasz wiele odnośników. –

+0

Jeszcze raz dziękuję Laurent. – Ovidiu

23

Aby skorzystać $this->getConfigData('client_id'); bez odszyfrowywania go ręcznie, trzeba zaktualizować config.xml dodając <client_id backend_model="adminhtml/system_config_backend_encrypted" />, patrz przykład poniżej

W swojej config.xml

... 
    <default> 
     <carriers> 
      <magepal> 
       ...... 
       <client_id backend_model="adminhtml/system_config_backend_encrypted" /> 
      </magepal> 
     </carriers> 
    </default> 
</config> 
+0

Dodanie tego spowoduje odszyfrowanie wartości konfiguracyjnych w sposób przezroczysty, co, jak przypuszczam, w 9 na 10 przypadków jest tym, co jest faktycznie potrzebne. Podczas gdy rozwiązanie Tima działa, myślę, że jest to poprawniejsza odpowiedź. – nnevala

+0

^^ Chociaż przyjęta odpowiedź "działa", to z pewnością wydaje się bardziej "poprawne". –

Powiązane problemy