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

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

Вы не зашли.

#1 2012-11-29 02: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 02:14:37)

Не в сети

#2 2012-12-02 14: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 14:29:17)

Не в сети

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

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

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

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

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

Не в сети

#4 2012-12-02 18: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 19:07:15)

Не в сети

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

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

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 запросов к БД.

Не в сети

Подвал раздела

Работает на FluxBB