Postez aici pentru alte persoane care vor o solutie rapida, iar cei care se pricep mai bine pot veni cu sugestii.
Cum am procedat eu:
1. Am creat un controller in catalog/controller/account/bnro.php, o functie php care preia XML-ul de pe bnro cu toate monezile
Code: Select all
class ControllerAccountBnro extends Controller {
public function index() {
$this->load->model('account/bnro');
// url bnro
$url="http://www.bnro.ro/nbrfxrates.xml";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
// data
$data = curl_exec($ch);
curl_close($ch);
$rates = array();
// xml
$xml = simplexml_load_string($data);
//echo '<pre>'.var_export($xml->Body->Cube->Rate->attributes()['currency'],1);
foreach($xml->Body->Cube->Rate as $rate){
$final = array();
foreach($rate->attributes() as $att=>$value){
if(strcmp($att, 'currency') == 0) $final['currency'] = (string) $value;
if(strcmp($att, 'multiplier') == 0) $final['multiplier'] = (string) $value;
}
if(empty($final['multiplier'])) $final['multiplier'] = 1;
$final['rate'] = (string) $rate;
$final['date'] = (string) $xml->Body->Cube->attributes()[0];
array_push($rates, $final);
}
//echo '<pre>'.var_export($rates,1);
// introducem in db
foreach($rates as $curs){
// daca e euro
if($curs['currency'] == "EUR"){
// insert
$this->model_account_bnro->add_currency($curs['rate']);
//$this->users->add_currency($curs);
//echo '<pre>'.var_export($curs['rate'],1);
}
}
}
}
Code: Select all
class ModelAccountBnro extends Model {
public function add_currency($val) {
$this->db->query("UPDATE `" . DB_PREFIX . "currency` SET `value` = '" . $this->db->escape($val) . "', `date_modified` = NOW() WHERE currency_id = 4 ");
}
}
Acest cod face update pentru moneda LEI in raport cu Euro.
Va poate ajuta daca aveti un magazin care afiseaza preturile si in euro si in lei, ceea ce am avut eu nevoie.
Acum aveti nevoie de un cronjob:
Code: Select all
/usr/local/bin/php /home/user_gazduire/public_html/index.php account bnro>/dev/null 2>&1
https://numesite.ro/index.php?route=account/bnro