Русский English Deutsch Українська Қазақша

Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не вошли.

#1 2012-11-29 01:04:19

nevermind
Участник
Здесь с 2010-03-25
Сообщений: 37
Рейтинг :   

Вывод стоимости товара в нескольких валютах

конвертация на стороне клиента http://josscrowcroft.github.com/money.js
в принципе устраивает и js, просто не хочется лезть каждый раз в код для смены курса,
ну и некоторые пользователи любят сёрфить с откл. js.

может можно решить средствами CMS? (предоставить возможность ввода 2-3 курсов валют в админке, регистрировать в main.tpl  переменные, содержащие эти курсы и делать пересчет с помощью того же money.js )





Вопрос когда-нибудь будет актуален, ведь появился плагин basket

Отредактировано nevermind (2012-11-29 01:14:37)

Вне форума

#2 2012-12-02 13:27:23

nevermind
Участник
Здесь с 2010-03-25
Сообщений: 37
Рейтинг :   

Re: Вывод стоимости товара в нескольких валютах

Как получить ID новости ($newsID) в short_news, для  full_news.tpl работает $SYSTEM_FLAGS['news']['db.id'].
Нужно для модификации значения поля xfields для соотв. новости.

Отредактировано nevermind (2012-12-02 13:29:17)

Вне форума

#3 2012-12-02 17:47:24

vitaly
Администратор
Откуда: Россия
Здесь с 2008-10-08
Сообщений: 2,788
Рейтинг :   115 

Re: Вывод стоимости товара в нескольких валютах

nevermind, какая версия?
В последних SVN версиях в шаблонах news.short.tpl / news.full.tpl (см. документацию) можно использовать TWIG переменную news.id

[TWIG] {{ news.id }}[/TWIG]

Вне форума

#4 2012-12-02 17:53:14

nevermind
Участник
Здесь с 2010-03-25
Сообщений: 37
Рейтинг :   

Re: Вывод стоимости товара в нескольких валютах

vitaly пишет:

nevermind, какая версия?
В последних SVN версиях в шаблонах news.short.tpl / news.full.tpl (см. документацию) можно использовать TWIG переменную news.id

[TWIG] {{ news.id }}[/TWIG]

извини, неправильно описал ситуацию, эта переменная нужна в коде плагина ,
и отдельно прошу простить за код:

if (!defined('NGCMS')) die ('HAL');
 
add_act('index', 'price');

function price() {
	global $template, $mysql, $tpl, $SYSTEM_FLAGS;

		$price_field = extra_get_param('price','main_price');
		$euro_exchange_rate = intval(extra_get_param('price','euro_exch'));
		$uah_exchange_rate = intval(extra_get_param('price','uah_exch'));	
		if ($SYSTEM_FLAGS['news']['db.id']) {
			$usd_price = $mysql->select("select $price_field  from ".prefix."_news where id =".$SYSTEM_FLAGS['news']['db.id']);
			}
		$usd = $usd_price[0][$price_field];
		$uah = $uah_exchange_rate*$usd;
		$euro = $usd/$euro_exchange_rate;
		$tvars['vars'] = array(
			'euro'		=>	$euro,
			'uah'		=>	$uah
		);

                $tpath = locatePluginTemplates(array('price', 'entries'), 'price');
		$tpl -> template('entries', $tpath['entries']);
		$tpl -> vars('entries', $tvars);
		$v .= $tpl -> show('entries');
		$tvars['vars'] = array ( 'entries' => $v);
		$tpl -> template('price', $tpath['price']);
		$tpl -> vars('price', $tvars);
		$output .= $tpl -> show('price');
		$template['vars']['price'] = $output;
  }

?>

в полной новости эта переменная есть, вопрос в том как получить её в краткой новости.

Отредактировано nevermind (2012-12-02 18:07:15)

Вне форума

#5 2012-12-03 01:12:23

vitaly
Администратор
Откуда: Россия
Здесь с 2008-10-08
Сообщений: 2,788
Рейтинг :   115 

Re: Вывод стоимости товара в нескольких валютах

Тихий ужас smile

Тебе ведь нужно делать модификацию только для news.short/full.tpl, верно?
Тогда прямая дорога к использованию новостных фильтров:

class XXXNewsFilter extends NewsFilter {
	function showNews($newsID, $SQLnews, &$tvars, $mode = array()) {
...
register_filter('news','XXX', new XXXNewsFilter);

Пример кода можно подсмотреть в плагине xfields.
Но более показателен будет плагин basket, т.к. он уже использует данные из xfields.

Внутри функции showNews() ты сможешь сделать:

$xf = xf_decode($SQLnews['xfields']);
...

и создать свои собственные переменные, которые будут доступны в news.short/full.tpl
Кроме того, тебе не потребуется делать лишних SQL запросов к БД.

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB 1.5.11
Модифицировал Visman

[ Сгенерировано за 0.013 сек, 7 запросов выполнено - Использовано памяти: 529.71 Кбайт (Пик: 550.18 Кбайт) ]