mirror of
https://github.com/openclassify/openclassify.git
synced 2026-01-11 18:01:10 -06:00
added Exchange function
This commit is contained in:
parent
680ca11f77
commit
6b6ddbb5f3
@ -14,6 +14,7 @@ return [
|
||||
'ogImage',
|
||||
'free_currencyconverterapi_key',
|
||||
'enabled_currencies',
|
||||
'tcmb_exchange_url'
|
||||
],
|
||||
],
|
||||
'ads' => [
|
||||
@ -48,7 +49,7 @@ return [
|
||||
'filter' => [
|
||||
'title' => 'visiosoft.module.advs::section.filter',
|
||||
'fields' => [
|
||||
'hide_price_filter','hide_date_filter','hide_photo_filter','hide_map_filter'
|
||||
'hide_price_filter', 'hide_date_filter', 'hide_photo_filter', 'hide_map_filter'
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
@ -41,6 +41,12 @@ return [
|
||||
'default_value' => 6,
|
||||
],
|
||||
],
|
||||
'tcmb_exchange_url' => [
|
||||
'type' => 'anomaly.field_type.url',
|
||||
'config' => [
|
||||
'default_value' => 'http://www.tcmb.gov.tr/kurlar',
|
||||
],
|
||||
],
|
||||
'default_published_time' => [
|
||||
'type' => 'anomaly.field_type.integer',
|
||||
'bind' => 'adv.default_published_time',
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'USD' => 'Dolar',
|
||||
'EUR' => 'Euro',
|
||||
];
|
||||
@ -152,4 +152,7 @@ return [
|
||||
'show_lang_url' => [
|
||||
'name' => 'Show Lang Parameter For URL',
|
||||
],
|
||||
'tcmb_exchange_url' => [
|
||||
'name' => 'TCMB Exchange URL',
|
||||
],
|
||||
];
|
||||
|
||||
@ -0,0 +1,72 @@
|
||||
<?php namespace Visiosoft\AdvsModule\Adv\Command;
|
||||
|
||||
class getExchange
|
||||
{
|
||||
public $currency;
|
||||
|
||||
public function __construct($currency = null)
|
||||
{
|
||||
$this->currency = $currency;
|
||||
}
|
||||
|
||||
public function handle($currency = null)
|
||||
{
|
||||
$exchange_xml = simplexml_load_file(setting_value('visiosoft.module.advs::tcmb_exchange_url') . '/today.xml');
|
||||
$exchange_xml = json_decode(json_encode($exchange_xml), TRUE);
|
||||
$exchange = [
|
||||
'USD' => 0,
|
||||
'EUR' => 3,
|
||||
];
|
||||
|
||||
foreach ($exchange as $key => $exchange_key) {
|
||||
|
||||
$buy = $exchange_xml['Currency'][$exchange_key]['BanknoteSelling'];
|
||||
$exchange[$key] = [
|
||||
'sell' => $exchange_xml['Currency'][$exchange_key]['BanknoteBuying'],
|
||||
'buy' => $buy,
|
||||
'status' => $this->getStatus($buy, $exchange_key)
|
||||
];
|
||||
}
|
||||
|
||||
if ($this->currency) {
|
||||
if (array_key_exists($this->currency, $exchange)) {
|
||||
return $exchange[$this->currency];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return $exchange;
|
||||
}
|
||||
|
||||
public function getStatus($today_buy, $exchange_key)
|
||||
{
|
||||
$today = now();
|
||||
|
||||
$number_of_days_to_be_reduced = 1;
|
||||
if ($today->format('D') == 'Mon') {
|
||||
$number_of_days_to_be_reduced = 3;
|
||||
} else if ($today->format('D') == 'Sun') {
|
||||
$number_of_days_to_be_reduced = 2;
|
||||
}
|
||||
|
||||
|
||||
$date = $today->addDays('-' . $number_of_days_to_be_reduced);
|
||||
|
||||
$year_and_month = $date->format('Ym');
|
||||
$date = $date->format('dmY');
|
||||
|
||||
|
||||
$exchange_xml = simplexml_load_file(setting_value('visiosoft.module.advs::tcmb_exchange_url') . '/' . $year_and_month . '/' . $date . '.xml');
|
||||
$exchange_xml = json_decode(json_encode($exchange_xml), TRUE);
|
||||
|
||||
$old_buy = $exchange_xml['Currency'][$exchange_key]['BanknoteSelling'];
|
||||
|
||||
$difference = ($today_buy * 10000) - ($old_buy * 10000);
|
||||
|
||||
if ($difference > 0) {
|
||||
return 'increased';
|
||||
} elseif ($difference < 0) {
|
||||
return 'decreased';
|
||||
}
|
||||
return 'equal';
|
||||
}
|
||||
}
|
||||
@ -5,6 +5,7 @@ use Twig_Environment;
|
||||
use Visiosoft\AdvsModule\Adv\AdvModel;
|
||||
use Visiosoft\AdvsModule\Adv\Command\appendRequestURL;
|
||||
use Visiosoft\AdvsModule\Adv\Command\GetAd;
|
||||
use Visiosoft\AdvsModule\Adv\Command\getExchange;
|
||||
use Visiosoft\AdvsModule\Adv\Command\isActive;
|
||||
use Visiosoft\AdvsModule\Adv\Command\LatestAds;
|
||||
use Visiosoft\AdvsModule\Currency\Currency;
|
||||
@ -98,6 +99,16 @@ class AdvsModulePlugin extends Plugin
|
||||
|
||||
return $fn->getCallable()(...$args);
|
||||
}, ['needs_environment' => true]
|
||||
),
|
||||
new \Twig_SimpleFunction(
|
||||
'getExchange',
|
||||
function ($currency = null) {
|
||||
|
||||
if (!$exchange = $this->dispatch(new getExchange($currency))) {
|
||||
return null;
|
||||
}
|
||||
return $exchange;
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user