https://www.google.com/wallet/ - как вариант
https://pay.amazon.com/us/
https://www.dwolla.com/
UserControl, ну я не вижу никаких проблем, кроме того, что загружаемые svg шрифты тяжелые. Надо посмотреть, как он их рендерить будет.
UserControl, Нет. Я лет 5 назад долго пытался эту штуку выпилить. так и не получилось. может сейчас что-то и появилось, но маловероятно
дело не в файрфоксе.
Он использует системное сглаживание, емнип. То-есть если система настроена на производительность в ущерб качеству картинки, то в фф тоже будет всё зубастое, а в хроме - нет, так как он применяет собственные механизмы сглаживания.
Тарасов Роман, могли-бы зарубиться на хороший коньяк с тем комментатором, что он напишет сайт на голых сях именно чтоб с выводом в браузер )))
так-то собсно движок можно хоть на дельфи сделать )) (я делал, лет 10 назад, ради спортивного интереса)
несколько более сложный вариант, чем вышеприведенный
состоит из двух частей. серверной и клиентской.
Клиентская получает местоположение браузера - страну и запрашивает у серверной параметры валюты.
Та заходит на сайт ЦБРФ, забирает xmlку, парсит ее. перевариват и возвращает json с валютой, курсом к рублю, префиксом и суффиксом.
после чего JS-ка пробегает весь контент и меняет все элементы с классом .priceValue
живой пример http://pcalc.dep2.ru/
аврхив: http://pcalc.dep2.ru/pcalc.zip
Важно: Я не старался сделать код красивым. главное. чтоб он заработал
PHP filename getCurrecy.php
<?php header('Content-Type: application/json'); /* ** Список стран для которых будет производиться преборазование ** поддерживаются варианты #скопипастил из XML Поэтому с павдежов проблема Австралийский доллар Азербайджанский манат Фунт стерлингов Соединенного королевства Армянских драмов Белорусский рубль Болгарский лев Бразильский реал Венгерских форинтов Гонконгских долларов Датских крон Доллар США Евро Индийских рупий Казахстанских тенге Канадский доллар Киргизских сомов Китайских юаней Молдавских леев Норвежских крон Польский злотый Румынский лей СДР (специальные права заимствования) Сингапурский доллар Таджикских сомони Турецкая лира Новый туркменский манат Узбекских сумов Украинских гривен Чешских крон Шведских крон Швейцарский франк Южноафриканских рэндов Вон Республики Корея Японских иен */ $currency_by_country = array( 'Germany' => array('code' => 'EUR', 'prefix' => '', 'suffix' => '€'), 'Japan' => array('code' => 'JPY', 'prefix' => '円', 'suffix' => ''), 'Russia' => array('code' => 'RUB', 'prefix' => '', 'suffix' => '₽'), 'USA' => array('code' => 'USD', 'prefix' => '$', 'suffix' => ''), ); /* ** величины экспорта по умолчанию */ $content = array( 'baseCountry' => 'Russia', 'baseCurrency' => 1, 'outputCurrency' => 1, 'code' => $currency_by_country['Russia']['code'], 'prefix' => $currency_by_country['Russia']['prefix'], 'suffix' => $currency_by_country['Russia']['suffix'], 'hasError' => 0, 'errorDescription' => '' ); /* ** проверяем get запрс на наличие страны, если ее нет - выводим ошибку и дохнем ** */ if (!empty($_GET['country'])) { $content['outputCountry'] = $_GET['country']; } else { $content['outputCountry'] = ''; $content['hasError'] = 1; $content['errorDescription'] = 'Не указана страна'; print json_encode($content); die(); } /* ** загружаем XML с данным с сайта ЦБРФ ** todo: чтобы не зависитть от приватностей стороннего сайта надо будет сделать кэширование */ $currency = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp'); /* ** если заданая страна отсутствует в массиве выше - дохнем с описанием ошибки */ if (!array_key_exists($content['outputCountry'],$currency_by_country)){ $content['hasError'] = 1; $content['errorDescription'] = 'страна не найдена в базе'; print json_encode($content); die(); } /* ** разбираем XML и формируем массив для конвертации в json */ foreach($currency->Valute as $item) { $vl = str_replace(',','.',$item->Value); if (isset($currency_by_country[$content['baseCountry']]['code']) && $item->CharCode == $currency_by_country[$content['baseCountry']]['code']) { $content['baseCurrency'] = (string) $vl / $item->Nominal; } if (isset($currency_by_country[$content['outputCountry']]['code']) && $item->CharCode == $currency_by_country[$content['outputCountry']]['code']) { $content['outputCurrency'] = (string) $vl /$item->Nominal; $content['code'] = $currency_by_country[$content['outputCountry']]['code']; $content['prefix'] = $currency_by_country[$content['outputCountry']]['prefix']; $content['suffix'] = $currency_by_country[$content['outputCountry']]['suffix']; } } /* ** выводим данные клиенту */ print json_encode($content);
JS
<!-- load yandex.maps --> <script src="https://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=en" type="text/javascript"></script> <script type="text/javascript"> // получаем нахождение клиента function getUserAgentCoutry(){ var userLocation = ymaps.geolocation; return userLocation.country ; } // берем актуальные курсы с сайта яху финанс // без серверной части будет весьма и весьма геморно делать, поэтому воспользуемся простым php скриптиком function setCurrecy(country){ $.ajax({ //url: 'getCurrecy.php?country='+country, //<-- URL запроса в параметре country передается текущая страна. url: 'getCurrecy.php?country=USA', // для теста success: function(d) { if (d.hasError == 0){ var course = d.outputCurrency; $('body .priceValue').each(function(index, element) { var price = ($(element).html() / d.outputCurrency).toFixed(2); var priceTXT = '~ ' + d.prefix + price + ' '+d.suffix ; $(element).css('color','red').attr('title',priceTXT); }); } else { console.log (d.errorDescription); } } }); } $(document).ready(function(){ ymaps.ready(function(){ var country = getUserAgentCoutry(); setCurrecy(country); }); }); </script>
пример HTML
<div> В нашем бюро работают переводчики и редакторы с лингвистическим, техническим, медицинским, юридическим образованием, которые могут не только выполнить перевод соответствующей специализации, но и отредактировать текст всего за <span class="priceValue">500</span> рублей<br> Редактирование текста подразумевает наличие исходного текста и готового перевода. Редактор проверяет грамотность перевода на адекватность, соответствие оригиналу и исправляет допущенные неточности и ошибки. за <span class="priceValue">3900</span> рублей </div>
Почти написал. добью дома, запощу пример
я про такие не слышал, но в теории можно написать на js. или js+серверная часть.
webliberty, АПИ как и большинство апишек яши просты и понятны. Написать виджет, хоть на пхп хоть на джиэске вообще проблем не составляет.
Готовых скриптов нет, так как апи открыли меньше недели назад
А в чем вообще вопрос?
из бесплатных OcStore хорош,
Из платных, что я пользовал shopScript 7 (webassist) на нем сейчас собран магазин с 6000+ товаров. Из коробки - беден, но быстр. нужный функционал добирается модулями - платными и не очень. Но есть одно но. многие модули написаны криворукими
Umi-cms, После внедрения php шаблонизатора стала очень приятной, для разработчика, цмс-иной с большим функционалом из коробки