but1head

but1head

С нами с 01 апреля 2014; Место в рейтинге пользователей: #19
but1head
26 июня 2017, 17:37
+1
что сверху не читал, как делал я:
у товара цены в $

файл для получения валют и запись значений в опции контекста (сажать на крон):
<?php
define('MODX_API_MODE', true);
require 'www/index.php';
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');

$currency = array(
	'rub' => convertCurrency(1, 'USD', 'RUB'),
	'thb' => convertCurrency(1, 'USD', 'THB'),
);

foreach($currency as $key => $value) {
	$tmp = $modx->getObject('modContextSetting', array('context_key' => 'web', 'key' => $key));
	$tmp->set('value', $value);
	$tmp->save();
}

function convertCurrency($amount, $from, $to){
    $url  = "https://www.google.com/finance/converter?a=$amount&from=$from&to=$to";
    $data = file_get_contents($url);
    preg_match("/<span class=bld>(.*)<\/span>/",$data, $converted);
    $converted = preg_replace("/[^0-9.]/", "", $converted[1]);
    return round($converted, 3);
}

Плагин на msOnGetProductPrice
switch($modx->event->name) {
    case 'msOnGetProductPrice':
        $values = & $modx->event->returnedValues;
        
        if($_REQUEST['currency'] == 'THB') {
            $values['price'] = round($price * $modx->getOption('thb'));
        } else if($_REQUEST['currency'] == 'RUB') {
            $values['price'] = round($price * $modx->getOption('rub'));
        } else {
            $values['price'] = $price;
        }
        
        break;
}
Смена валюты нужна была только при ручном выборе этой валюты, можно хранить в кэше выбранную.

p.s. в моем примере в каждый товар заводить доп.поле не вижу смысла, ибо выводится 5-9 карточек товара.
but1head
23 июня 2017, 19:37
+1
Нет, но чуть-чуть магии и плагинов решат любую задачу
but1head
21 июня 2017, 22:01
0
Интересно если бюджет не для «сайтик на джумле».
trade-leader.com (fenom, файловые элементы, localizator). Про локализатор ты уже вкурсе :)
Контакты в профиле, лучше в телеграм.
but1head
20 июня 2017, 17:06
0
Поправил ссылочку, s9732.h8.modhost.pro/ в треде она давно есть
but1head
20 июня 2017, 14:41
+11
Огонь! Закрытие админки в свичюзер очень бесило
but1head
20 июня 2017, 12:24
+3
А я про localizator, ибо выпустил его я. В треде вся инструкция разжевана.
but1head
20 июня 2017, 12:04
+5
Демо работает, использую на боевом проекте.
Можно пхп 4 поставить, он точно не сломается, зачем эти новые технологии? И modx evo заодно.
but1head
19 июня 2017, 18:25
+1
Написать мини сниппет который распарсит json из tv и покажет то что надо.
but1head
19 июня 2017, 17:15
+1
Господи иисусе. Локализатор замена контекстам, вы еще babel поставьте, чтоб наверняка.
but1head
19 июня 2017, 14:11
0
От 30, контакты в профиле.
but1head
17 июня 2017, 16:31
0
Как-то так
&leftJoin = `{
		"localizator" : {
			"class" : "localizatorContent",
			"alias" : "localizator",
			"on" : "localizator.resource_id = modResource.id"
		}
	}`
	&select = `{ "localizator" : "modResource.*, localizator.*, modResource.id" }`
        &where' = `{ "localizator.key" : "[[++localizator_key]]"}`
]}
but1head
17 июня 2017, 14:48
0
В вашем случае надо:
2 «контекста», ru и en. localizator_default_language = ru. У ресурса заполняется ru, нажимаете авто-перевод — получаете en. Смотрите в лог ошибок, там все должно быть написано. Возможно ключ заблокирован (не дает больше 1кк переводить в сутки). Если уж совсем все плохо контакты в профиле.
but1head
17 июня 2017, 14:46
0
В шапке указан пример, переписать все на родной синтаксис, ('localizator_key' | option) заменить на [[++localizator_key]], должно сработать. А лучше включить феном.
but1head
17 июня 2017, 06:51
+1
1.0.3-pl
вывел из беты, у меня на 10 магазинах проблем не возникло, тестовые сайты на modhost тоже проблем не вызвали. Добавил грид истории транзакий (сколько кто потратил и получил), + грид счетов пользователй (можно подкинуть бонусов с админки).

but1head
15 июня 2017, 01:31
0
от 30 т.р., сильно зависит от api. Контакты в профиле.

p.s. всегда хотелось поковыряться на сайте кинотеатра
but1head
14 июня 2017, 20:57
0
как вариант ставить куку lang=en, писать плагин на onhandlerequest где переключать язык на язык из куки. пока что локализатор под msearch2 не подстраивал.

логика такая, только тут еще запрос именно msearch2 бы выловить.
<?php
if($modx->event->name != 'OnHandleRequest') return;
$lang = $_COOKIE['lang'];
if(!$lang) return;
$modx->setOption('cultureKey', $lang);