Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

0 Пользователей и 1 Гость просматривают эту тему.
  • 15 Ответов
  • 3444 Просмотров
*

festLethal

  • Захожу иногда
  • 64
  • 1 / 0
Курсы валют с ЦБР
« : 23.10.2012, 12:25:32 »
Обыскал уже пол интернета, не могу найти решения для ВМ2. Не верю, что никто не делал ещё подобное. Нужно, чтобы все цены на сайте пересчитывались в соответствии с курсом ЦБР, а не как щас с европейского.

Очень надеюсь на помощь форума.
*

mogutov666

  • Осваиваюсь на форуме
  • 29
  • 2 / 3
Re: Курсы валют с ЦБР
« Ответ #1 : 23.10.2012, 16:31:07 »
делал кто или не делал, но у меня на одном из сайтов есть информер курса валют который берёт их с РБК.
*

festLethal

  • Захожу иногда
  • 64
  • 1 / 0
Re: Курсы валют с ЦБР
« Ответ #2 : 24.10.2012, 03:23:32 »
делал кто или не делал, но у меня на одном из сайтов есть информер курса валют который берёт их с РБК.
Информер валют это ожно,а  чтобы курс валют пересчитывался для всех цен виртуа марта - это немного другое
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Курсы валют с ЦБР
« Ответ #3 : 24.10.2012, 03:26:21 »
Нужно, чтобы все цены на сайте пересчитывались в соответствии с курсом ЦБР
Эт просто, поправить путь к считываемому файлу XML и просмотреть формат, если он другой
Смотрим administrator\components\com_virtuemart\classes\currency\convertECB.php
Он берет данные с http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
сравнить формат, поправить и в путь
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

festLethal

  • Захожу иногда
  • 64
  • 1 / 0
Re: Курсы валют с ЦБР
« Ответ #4 : 24.10.2012, 05:17:45 »
Эт просто, поправить путь к считываемому файлу XML и просмотреть формат, если он другой
Смотрим administrator\components\com_virtuemart\classes\currency\convertECB.php
Он берет данные с http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
сравнить формат, поправить и в путь

Если можете подскажите как сделать правильно, буду очень благодарен, сижу 5ый день над этой проблемой. Нашел в интернете сервис http://ce-rates.info/cbr2ecbformat.cgi с аналогичной структурой файла.

Поменял:
var $document_address = 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml';
На:
var $document_address = 'http://ce-rates.info/cbr2ecbformat.cgi';

Я не слишком силен в php, знаю только основы. Расширение разное у файлов, но структура одна. будет ли так работать? Сейчас магазин находится ан локал хосте, не знаю будет ли он обновлять с  этого сайта, если мой сайт пока ещё не в сети.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Курсы валют с ЦБР
« Ответ #5 : 24.10.2012, 05:51:51 »
Минуту, я последний раз с ним (виртом 1.9) работал неделю назад, читал файл daily_rcb.xml по умолчанию
Принцип был прост
Код: php
	jimport('joomla.filesystem.file');
     jimport('joomla.application.application');
$dailyxml_url = JPATH_CACHE . DS .'daily_rcb.xml';
        if (JFile::exists($dailyxml_url)) {
$usd = dailyxml_parser($dailyxml_url, 'USD');
$eur = dailyxml_parser($dailyxml_url, 'EUR');
        } else {
         echo 'not exist daily_rcb.xml';
        }
Что - в 2.0 по дефолту теперь курс евробанка, не нашего РЦБ?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

festLethal

  • Захожу иногда
  • 64
  • 1 / 0
Re: Курсы валют с ЦБР
« Ответ #6 : 24.10.2012, 06:55:29 »
Минуту, я последний раз с ним (виртом 1.9) работал неделю назад, читал файл daily_rcb.xml по умолчанию
Принцип был прост
Код: php
	jimport('joomla.filesystem.file');
     jimport('joomla.application.application');
$dailyxml_url = JPATH_CACHE . DS .'daily_rcb.xml';
        if (JFile::exists($dailyxml_url)) {
$usd = dailyxml_parser($dailyxml_url, 'USD');
$eur = dailyxml_parser($dailyxml_url, 'EUR');
        } else {
         echo 'not exist daily_rcb.xml';
        }
Что - в 2.0 по дефолту теперь курс евробанка, не нашего РЦБ?

Да в 2.0 теперь берет с европейского банка
код файла convertECB.php теперь выглядит следующим образом:

Код
<?php
if( !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );

/**
 * This class uses the currency rates provided by an XML file from the European Central Bank
 * Requires [url=http://ru.wikipedia.org/wiki/CURL]cURL[/url] or allow_url_fopen
 */
class convertECB {

// var $archive = true;
// var $last_updated = '';

var $document_address = 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml';

var $info_address = 'http://www.ecb.int/stats/eurofxref/';
var $supplier = 'European Central Bank';

/**
* Converts an amount from one currency into another using
* the rate conversion table from the European Central Bank
*
* @param float $amountA
* @param string $currA defaults to $vendor_currency
* @param string $currB defaults to
* @return mixed The converted amount when successful, false on failure
*/
// function convert( $amountA, $currA='', $currB='', $a2b = true ) {
function convert( $amountA, $currA='', $currB='', $a2rC = true, $relatedCurrency = 'EUR') {

// cache subfolder(group) 'convertECB', cache method: callback
$cache= JFactory::getCache('convertECB','callback');

// save configured lifetime
@$lifetime=$cache->lifetime;

$cache->setLifeTime(86400/4); // check 4 time per day

// save cache conf

$conf = JFactory::getConfig();

// check if cache is enabled in configuration

$cacheactive = $conf->getValue('config.caching');

$cache->setCaching(1); //enable caching

$globalCurrencyConverter = $cache->call( array( 'convertECB', 'getSetExchangeRates' ),$this->document_address );

// revert configuration

$cache->setCaching($cacheactive);


if(!$globalCurrencyConverter ){
//vmdebug('convert convert No $globalCurrencyConverter convert '.$amountA);
return $amountA;
} else {
$valA = isset( $globalCurrencyConverter[$currA] )? $globalCurrencyConverter[$currA] : 1.0;
$valB = isset( $globalCurrencyConverter[$currB] )? $globalCurrencyConverter[$currB] : 1.0;

$val = (float)$amountA * (float)$valB / (float)$valA;
//vmdebug('convertECB with '.$currA.' '.$amountA.' * '.$valB.' / '.$valA.' = '.$val,$globalCurrencyConverter[$currA]);

return $val;
}
}

static function getSetExchangeRates($ecb_filename){

$archive = true;
setlocale(LC_TIME, "en-GB");
$now = time() + 3600; // Time in ECB (Germany) is GMT + 1 hour (3600 seconds)
if (date("I")) {
$now += 3600; // Adjust for daylight saving time
}
$weekday_now_local = gmdate('w', $now); // week day, important: week starts with sunday (= 0)!!
$date_now_local = gmdate('Ymd', $now);
$time_now_local = gmdate('Hi', $now);
$time_ecb_update = '1415';
if( is_writable(JPATH_BASE.DS.'cache') ) {
$store_path = JPATH_BASE.DS.'cache';
}
else {
$store_path = JPATH_SITE.DS.'media';
}

$archivefile_name = $store_path.'/daily.xml';

$val = '';


if(file_exists($archivefile_name) && filesize( $archivefile_name ) > 0 ) {
// timestamp for the Filename
$file_datestamp = date('Ymd', filemtime($archivefile_name));

// check if today is a weekday - no updates on weekends
if( date( 'w' ) > 0 && date( 'w' ) < 6
// compare filedate and actual date
&& $file_datestamp != $date_now_local
// if localtime is greater then ecb-update-time go on to update and write files
&& $time_now_local > $time_ecb_update) {
$curr_filename = $ecb_filename;
}
else {
$curr_filename = $archivefile_name;
$last_updated = $file_datestamp;
$archive = false;
}
}
else {
$curr_filename = $ecb_filename;
}

if( !is_writable( $store_path )) {
$archive = false;
vmError( "The file $archivefile_name can't be created. The directory $store_path is not writable" );
}
// JError::raiseNotice(1, "The file $archivefile_name should be in the directory $store_path " );
if( $curr_filename == $ecb_filename ) {
// Fetch the file from the internet
if(!class_exists('VmConnector')) require(JPATH_VM_ADMINISTRATOR.DS.'helpers'.DS.'connection.php');
// JError::raiseNotice(1, "Updating currency " );
if (!$contents = VmConnector::handleCommunication( $curr_filename )) {
if (isset($file_datestamp)) {
$contents = @file_get_contents( $curr_filename );
}
} else $last_updated = date('Ymd');

}
else {
$contents = @file_get_contents( $curr_filename );
}
if( $contents ) {
// if archivefile does not exist
if( $archive ) {
// now write new file
file_put_contents( $archivefile_name, $contents );
}

$contents = str_replace ("<Cube currency='USD'", " <Cube currency='EUR' rate='1'/> <Cube currency='USD'", $contents);

/* XML Parsing */
$xmlDoc = new DomDocument();

if( !$xmlDoc->loadXML($contents) ) {
//todo
vmError('Failed to parse the Currency Converter XML document.');
vmError('The content: '.$contents);
// $GLOBALS['product_currency'] = $vendor_currency;
return false;
}

$currency_list = $xmlDoc->getElementsByTagName( "Cube" );
// Loop through the Currency List
$length = $currency_list->length;
for ($i = 0; $i < $length; $i++) {
$currNode = $currency_list->item($i);
if(!empty($currNode) && !empty($currNode->attributes->getNamedItem("currency")->nodeValue)){
$currency[$currNode->attributes->getNamedItem("currency")->nodeValue] = $currNode->attributes->getNamedItem("rate")->nodeValue;
unset( $currNode );
}

}
$globalCurrencyConverter = $currency;
}
else {
$globalCurrencyConverter = false;
vmError( 'Failed to retrieve the Currency Converter XML document.');
// return false;
}

return $globalCurrencyConverter;
}

}
// pure php no closing tag

« Последнее редактирование: 24.10.2012, 06:59:54 от festLethal »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Курсы валют с ЦБР
« Ответ #7 : 24.10.2012, 07:21:12 »
Не знаю как там было, но вот вам рабочий код, самопал, но для небольших сайтов потянет
Код: php
        
        /*
        Сохранить http://www.cbr.ru/scripts/XML_daily.asp локально в modules\mod_course\cache
        С именем текущей даты. При загрузке модуля проверить совпадение даты, если нет - прочитать с ЦБ заново, удалить старый, сохранить новый
        Потом парсер
        */

        $dailyxml = date('dmY');
        $dailyxml_url = JPATH_CACHE . DS . $dailyxml.'_daily.xml';
        if (JFile::exists($dailyxml_url)) {
        // файл уже есть, значит парсим, функция
        $usd = dailyxml_parser($dailyxml_url, 'USD');
        $eur = dailyxml_parser($dailyxml_url, 'EUR');
        } else {
        // файла нет, значит удалим файл за вчера, создадим и функция парсим
            $dailyxml_url_old = JPATH_CACHE . DS . date('dmY', time()-86400).'_daily.xml';
        JFile::delete($dailyxml_url_old);
        // новый файл
        $date = date('d/m/Y');
        $link = 'http://www.cbr.ru/scripts/XML_daily.asp?date_req='.$date;
        $fd = fopen($link, 'r');
    $dailyxml_text = '';
    if (!$fd) {
    echo 'error page www.cbr.ru/scripts/XML_daily.asp';
    } else {
        while (!feof ($fd)) $dailyxml_text .= fgets($fd, 4096);
    }
    fclose ($fd);
    // грабим текст в файл
    $dailyxml_url = JPATH_CACHE . DS . $dailyxml.'_daily.xml';
    JFile::write($dailyxml_url, $dailyxml_text);
    // получаем курс
    $usd = dailyxml_parser($dailyxml_url, 'USD');
            $eur = dailyxml_parser($dailyxml_url, 'EUR');
    }

Но мне кажется, что у вирта 2.0 есть проще пути, тут я с нуля граблю ХМЛ с центробанка, храню данные сутки, проверяю при заходе в фронта (неоптимально при больших нагрузках)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

festLethal

  • Захожу иногда
  • 64
  • 1 / 0
Re: Курсы валют с ЦБР
« Ответ #8 : 24.10.2012, 07:31:43 »
Не знаю как там было, но вот вам рабочий код, самопал, но для небольших сайтов потянет
Код: php
        
        /*
        Сохранить http://www.cbr.ru/scripts/XML_daily.asp локально в modules\mod_course\cache
        С именем текущей даты. При загрузке модуля проверить совпадение даты, если нет - прочитать с ЦБ заново, удалить старый, сохранить новый
        Потом парсер
        */

        $dailyxml = date('dmY');
        $dailyxml_url = JPATH_CACHE . DS . $dailyxml.'_daily.xml';
        if (JFile::exists($dailyxml_url)) {
        // файл уже есть, значит парсим, функция
        $usd = dailyxml_parser($dailyxml_url, 'USD');
        $eur = dailyxml_parser($dailyxml_url, 'EUR');
        } else {
        // файла нет, значит удалим файл за вчера, создадим и функция парсим
            $dailyxml_url_old = JPATH_CACHE . DS . date('dmY', time()-86400).'_daily.xml';
        JFile::delete($dailyxml_url_old);
        // новый файл
        $date = date('d/m/Y');
        $link = 'http://www.cbr.ru/scripts/XML_daily.asp?date_req='.$date;
        $fd = fopen($link, 'r');
    $dailyxml_text = '';
    if (!$fd) {
    echo 'error page www.cbr.ru/scripts/XML_daily.asp';
    } else {
        while (!feof ($fd)) $dailyxml_text .= fgets($fd, 4096);
    }
    fclose ($fd);
    // грабим текст в файл
    $dailyxml_url = JPATH_CACHE . DS . $dailyxml.'_daily.xml';
    JFile::write($dailyxml_url, $dailyxml_text);
    // получаем курс
    $usd = dailyxml_parser($dailyxml_url, 'USD');
            $eur = dailyxml_parser($dailyxml_url, 'EUR');
    }

Но мне кажется, что у вирта 2.0 есть проще пути, тут я с нуля граблю ХМЛ с центробанка, храню данные сутки, проверяю при заходе в фронта (неоптимально при больших нагрузках)


Пишет 8(
Fatal error: Call to undefined function dailyxml_parser() in X:\home\localhost\www\Kond\administrator\components\com_virtuemart\plugins\currency_converter\convertECB.php on line 12
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Курсы валют с ЦБР
« Ответ #9 : 24.10.2012, 07:36:13 »
Прошу простить, вот функция
Код: php
function dailyxml_parser($url, $charcode)
{
    $file = simplexml_load_file($url);
    $valutes = array();
foreach ($file AS $el){
    $valutes[strval($el->CharCode)] = strval($el->Value);
}
return str_replace(',', '.', $valutes[$charcode]);
}
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

festLethal

  • Захожу иногда
  • 64
  • 1 / 0
Re: Курсы валют с ЦБР
« Ответ #10 : 24.10.2012, 07:48:54 »
Прошу простить, вот функция
Код: php
function dailyxml_parser($url, $charcode)
{
     $file = simplexml_load_file($url);
     $valutes = array();
foreach ($file AS $el){
   $valutes[strval($el->CharCode)] = strval($el->Value);
}
return str_replace(',', '.', $valutes[$charcode]);
}

Сейчас файл convertECB.php у меня выглядит так:
Код
<?php
        /*
        Сохранить http://www.cbr.ru/scripts/XML_daily.asp локально в modules\mod_course\cache
        С именем текущей даты. При загрузке модуля проверить совпадение даты, если нет - прочитать с ЦБ заново, удалить старый, сохранить новый
        Потом парсер
        */
function dailyxml_parser($url, $charcode)
{
     $file = simplexml_load_file($url);
     $valutes = array();
foreach ($file AS $el){
   $valutes[strval($el->CharCode)] = strval($el->Value);
}
return str_replace(',', '.', $valutes[$charcode]);
}
        $dailyxml = date('dmY');
        $dailyxml_url = JPATH_CACHE . DS . $dailyxml.'_daily.xml';
        if (JFile::exists($dailyxml_url)) {
         // файл уже есть, значит парсим, функция
         $usd = dailyxml_parser($dailyxml_url, 'USD');
         $eur = dailyxml_parser($dailyxml_url, 'EUR');
        } else {
         // файла нет, значит удалим файл за вчера, создадим и функция парсим
            $dailyxml_url_old = JPATH_CACHE . DS . date('dmY', time()-86400).'_daily.xml';
         JFile::delete($dailyxml_url_old);
         // новый файл
         $date = date('d/m/Y');
         $link = 'http://www.cbr.ru/scripts/XML_daily.asp?date_req='.$date;
         $fd = fopen($link, 'r');
   $dailyxml_text = '';
   if (!$fd) {
    echo 'error page www.cbr.ru/scripts/XML_daily.asp';
   } else {
       while (!feof ($fd)) $dailyxml_text .= fgets($fd, 4096);
   }
   fclose ($fd);
   // грабим текст в файл
   $dailyxml_url = JPATH_CACHE . DS . $dailyxml.'_daily.xml';
   JFile::write($dailyxml_url, $dailyxml_text);
   // получаем курс
   $usd = dailyxml_parser($dailyxml_url, 'USD');
            $eur = dailyxml_parser($dailyxml_url, 'EUR');
   }

?>
Но выдает ошибку 8/

Fatal error: Call to a member function convert() on a non-object in X:\home\localhost\www\Kond\administrator\components\com_virtuemart\helpers\currencydisplay.php on line 465

« Последнее редактирование: 24.10.2012, 07:59:59 от festLethal »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Курсы валют с ЦБР
« Ответ #11 : 24.10.2012, 07:52:28 »
в моем коде я ни слова не говорил про convertECB, это совершенно автономный код, не связанный ни с чем
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

festLethal

  • Захожу иногда
  • 64
  • 1 / 0
Re: Курсы валют с ЦБР
« Ответ #12 : 24.10.2012, 08:18:13 »
в моем коде я ни слова не говорил про convertECB, это совершенно автономный код, не связанный ни с чем

Сейчас я создал абсолютно новый файл под именем ConvertForum.php, вставил туда ваш код
Код
<?php
        /*
        Сохранить http://www.cbr.ru/scripts/XML_daily.asp локально в modules\mod_course\cache
        С именем текущей даты. При загрузке модуля проверить совпадение даты, если нет - прочитать с ЦБ заново, удалить старый, сохранить новый
        Потом парсер
        */
function dailyxml_parser($url, $charcode)
{
    $file = simplexml_load_file($url);
    $valutes = array();
foreach ($file AS $el){
    $valutes[strval($el->CharCode)] = strval($el->Value);
}
return str_replace(',', '.', $valutes[$charcode]);
}
        $dailyxml = date('dmY');
        $dailyxml_url = JPATH_CACHE . DS . $dailyxml.'_daily.xml';
        if (JFile::exists($dailyxml_url)) {
        // файл уже есть, значит парсим, функция
        $usd = dailyxml_parser($dailyxml_url, 'USD');
        $eur = dailyxml_parser($dailyxml_url, 'EUR');
        } else {
        // файла нет, значит удалим файл за вчера, создадим и функция парсим
            $dailyxml_url_old = JPATH_CACHE . DS . date('dmY', time()-86400).'_daily.xml';
        JFile::delete($dailyxml_url_old);
        // новый файл
        $date = date('d/m/Y');
        $link = 'http://www.cbr.ru/scripts/XML_daily.asp?date_req='.$date;
        $fd = fopen($link, 'r');
    $dailyxml_text = '';
    if (!$fd) {
    echo 'error page www.cbr.ru/scripts/XML_daily.asp';
    } else {
        while (!feof ($fd)) $dailyxml_text .= fgets($fd, 4096);
    }
    fclose ($fd);
    // грабим текст в файл
    $dailyxml_url = JPATH_CACHE . DS . $dailyxml.'_daily.xml';
    JFile::write($dailyxml_url, $dailyxml_text);
    // получаем курс
    $usd = dailyxml_parser($dailyxml_url, 'USD');
            $eur = dailyxml_parser($dailyxml_url, 'EUR');
    }

?>

Далее в настройках виртуамарта выбрал "Модуль валюты" , где выбрал файл convertForum.php
Теперь на вкладках сайта и вкладках админки, где цена товара указа не в рублях. а к примеру в евро вылазиет эта ошибка
Fatal error: Call to a member function convert() on a non-object in X:\home\localhost\www\Kond\administrator\components\com_virtuemart\helpers\currencydisplay.php on line 465
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Курсы валют с ЦБР
« Ответ #13 : 24.10.2012, 08:32:13 »
ну и еще раз - не будет этот код работать в том месте, куда вы его вставляете
я дал просто пример, как брать данные с ХМЛ центробанка, сохранять раз в день и читать его, не более
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

festLethal

  • Захожу иногда
  • 64
  • 1 / 0
Re: Курсы валют с ЦБР
« Ответ #14 : 24.10.2012, 08:40:25 »
ну и еще раз - не будет этот код работать в том месте, куда вы его вставляете
я дал просто пример, как брать данные с ХМЛ центробанка, сохранять раз в день и читать его, не более

Ну и на этом спасибо, к сожалению я не смогу это применить к ВМ2, пока слишком слаб в PHP
*

festLethal

  • Захожу иногда
  • 64
  • 1 / 0
Re: Курсы валют с ЦБР
« Ответ #15 : 24.10.2012, 09:42:14 »
ну и еще раз - не будет этот код работать в том месте, куда вы его вставляете
я дал просто пример, как брать данные с ХМЛ центробанка, сохранять раз в день и читать его, не более
готов заплатить в пределах разумного за рабочий данный парсер, если вам это интересно, то напишите в ЛС. Очень нужно.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Конвертер валют и PayPal

Автор Sheff14

Ответов: 1
Просмотров: 1308
Последний ответ 12.12.2015, 13:49:51
от Sheff14