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',
|
'ogImage',
|
||||||
'free_currencyconverterapi_key',
|
'free_currencyconverterapi_key',
|
||||||
'enabled_currencies',
|
'enabled_currencies',
|
||||||
|
'tcmb_exchange_url'
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'ads' => [
|
'ads' => [
|
||||||
@ -48,7 +49,7 @@ return [
|
|||||||
'filter' => [
|
'filter' => [
|
||||||
'title' => 'visiosoft.module.advs::section.filter',
|
'title' => 'visiosoft.module.advs::section.filter',
|
||||||
'fields' => [
|
'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,
|
'default_value' => 6,
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
'tcmb_exchange_url' => [
|
||||||
|
'type' => 'anomaly.field_type.url',
|
||||||
|
'config' => [
|
||||||
|
'default_value' => 'http://www.tcmb.gov.tr/kurlar',
|
||||||
|
],
|
||||||
|
],
|
||||||
'default_published_time' => [
|
'default_published_time' => [
|
||||||
'type' => 'anomaly.field_type.integer',
|
'type' => 'anomaly.field_type.integer',
|
||||||
'bind' => 'adv.default_published_time',
|
'bind' => 'adv.default_published_time',
|
||||||
|
|||||||
@ -0,0 +1,6 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'USD' => 'Dolar',
|
||||||
|
'EUR' => 'Euro',
|
||||||
|
];
|
||||||
@ -152,4 +152,7 @@ return [
|
|||||||
'show_lang_url' => [
|
'show_lang_url' => [
|
||||||
'name' => 'Show Lang Parameter For 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\AdvModel;
|
||||||
use Visiosoft\AdvsModule\Adv\Command\appendRequestURL;
|
use Visiosoft\AdvsModule\Adv\Command\appendRequestURL;
|
||||||
use Visiosoft\AdvsModule\Adv\Command\GetAd;
|
use Visiosoft\AdvsModule\Adv\Command\GetAd;
|
||||||
|
use Visiosoft\AdvsModule\Adv\Command\getExchange;
|
||||||
use Visiosoft\AdvsModule\Adv\Command\isActive;
|
use Visiosoft\AdvsModule\Adv\Command\isActive;
|
||||||
use Visiosoft\AdvsModule\Adv\Command\LatestAds;
|
use Visiosoft\AdvsModule\Adv\Command\LatestAds;
|
||||||
use Visiosoft\AdvsModule\Currency\Currency;
|
use Visiosoft\AdvsModule\Currency\Currency;
|
||||||
@ -98,6 +99,16 @@ class AdvsModulePlugin extends Plugin
|
|||||||
|
|
||||||
return $fn->getCallable()(...$args);
|
return $fn->getCallable()(...$args);
|
||||||
}, ['needs_environment' => true]
|
}, ['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