Новости Joomla

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

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

Sorbon

  • Захожу иногда
  • 80
  • 1 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #180 : 15.11.2009, 01:06:44 »
Цитировать
Форматирование даты выполняется в файле /administrator/components/com_virtuemart/classes/currency/class_currency_display.php
Не мучаясь лукаво, предлагаю следующее решение:
1. закомментировать строки с 259 по 445 (форматирование суммы и обработка отрицательных сумм по образцу, установленному в настройках);
2. В строке 447 вставить:

Код:

$res = round($nb,2);

3. Строку 455 привести к виду:

Код:

$res = $res." грн.";

После этих изменений все начинает работать правильно.

Не понял где тут такие строки? там максимум 235 ?  даже и VM 1.1.3 также и в 1.1.4
*

jaath

  • Новичок
  • 7
  • 0 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #181 : 07.12.2009, 07:37:44 »
Доброго времени суток.

Столкнулся с такой проблемой.

1) существует поставщик его курс доллара статический допустим 31р
2) существует поставщик его курс доллара = доллар+3%
3) как мне решить данную проблему?

Ндс не предлогать.

Первичнее ответ про курс+3%
*

Dobreff

  • Захожу иногда
  • 214
  • 10 / 4
Re: Цены на товары в VirtueMart 1.1
« Ответ #182 : 18.12.2009, 21:30:21 »
а можно поменять, вместо европейского банка НБУ впихнуть?
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #183 : 06.01.2010, 05:30:14 »
Не понял где тут такие строки? там максимум 235 ?  даже и VM 1.1.3 также и в 1.1.4

Я тоже не могу понять, чего где добавить ?

в VirtueMart_1.1.4 в файле class_currency_display.php ровно 244 строчки
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #184 : 06.01.2010, 11:09:25 »
Не понял где тут такие строки? там максимум 235 ?  даже и VM 1.1.3 также и в 1.1.4

Закомментировать нужно вот этот кускок:

Код
if ($nb == abs($nb)){
$res=$this->getValue($nb, $decimals);
// Positive number
switch ($this->positivePos){
case 0:
// 0 = ‘00Symb’
$res=$res.$this->symbol;
break;
case 2:
// 2 = ‘Symb00′
$res=$this->symbol.$res;
break;
case 3:
// 3 = ‘Symb 00′
$res=$this->symbol.’ ‘.$res;
break;
case 1:
default :
// 1 = ‘00 Symb’
$res=$res.’ ‘.$this->symbol;
break;
}
} else {
// Negative number
$res=$this->getValue(abs($nb), $decimals);
switch ($this->negativePos){
case 0:
// 0 = ‘(Symb00)’
$res=’(‘.$this->symbol.$res.’)';
break;
case 1:
// 1 = ‘-Symb00′
$res=’-’.$this->symbol.$res;
break;
case 2:
// 2 = ‘Symb-00′
$res=$this->symbol.’-’.$res;
break;
case 3:
// 3 = ‘Symb00-’
$res=$this->symbol.$res.’-';
break;
case 4:
// 4 = ‘(00Symb)’
$res=’(‘.$res.$this->symbol.’)';
break;
case 5:
// 5 = ‘-00Symb’
$res=’-’.$res.$this->symbol;
break;
case 6:
// 6 = ‘00-Symb’
$res=$res.’-’.$this->symbol;
break;
case 7:
// 7 = ‘00Symb-’
$res=$res.$this->symbol.’-';
break;
case 9:
// 9 = ‘-Symb 00′
$res=’-’.$this->symbol.’ ‘.$res;
break;
case 10:
// 10 = ‘00 Symb-’
$res=$res.’ ‘.$this->symbol.’-';
break;
case 11:
// 11 = ‘Symb 00-’
$res=$this->symbol.’ ‘.$res.’-';
break;
case 12:
// 12 = ‘Symb -00′
$res=$this->symbol.’ -’.$res;
break;
case 13:
// 13 = ‘00- Symb’
$res=$res.’- ‘.$this->symbol;
break;
case 14:
// 14 = ‘(Symb 00)’
$res=’(‘.$this->symbol.’ ‘.$res.’)';
break;
case 15:
// 15 = ‘(00 Symb)’
$res=’(‘.$res.’ ‘.$this->symbol.’)';
break;
case 8:
default :
// 8 = ‘-00 Symb’
$res=’-’.$res.’ ‘.$this->symbol;
break;
}
}
а следующий после этого кусок привести к следующему виду:

Код
$res = round($nb,2);
if( $symbol != » ) {
$this->symbol = $old_symbol;
}
$res = $res.» грн.»;
return($res);

<!-- не забывайте, что для реального использования скриптов необходимо установить защиту от несанкционированного доступа Joomla!//-->
Может кто то разъяснить эту фразу в файлах архива ? А лучше конкретно написать, что и где надо вписать в эти файлы ?
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #185 : 06.01.2010, 14:54:07 »
За convertHARD.zip спасибо
я, кстати , подсмотрел в другой теме идею
http://joomlaforum.ru/index.php/topic,2509.0.html

и добавил в конвертер возможность смены курса из админки (для вер. 1.5.7)
1. Создать новый материал (я назвал Курс Евро) и в тексте написать только цифру (например 43,8)
2. Посмотреть какой ID у этого материала
3. В модуль convertHARD добавить подсмотренный код (Там где стоит 6 - это и есть ID материала)

      $sql = "SELECT * FROM f_content WHERE id=6";
      $res = mysql_query($sql);
      $res = mysql_fetch_array($res);
4. А там где определяются курсы валют поменять
      /* currency difinition */
         $currency['EUR'] = $res['introtext'];
Всё

Для новых сайтов нужно будет только создавать заново материал и в конвертор прописывать его ID
Ну конечно решение грубовато, но лучше чем файлик править руками, а если кто напишет нормальный модуль - буду очень рад.

                         
Код
$sql = "SELECT * FROM f_content WHERE id=6";
$res = mysql_query($sql);
$res = mysql_fetch_array($res);

Куда именно дописать это код, а то что не работает ?

Можешь готовый файлик прикрепить ?
« Последнее редактирование: 06.01.2010, 15:00:13 от palexa »
*

Horton

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #186 : 07.01.2010, 14:56:20 »
Помогите разобраться.
В настройках выставлена одна страна -Ukraine , одна валюта -гривна с кодом грн. При вводе цены 15 отображается - UAH16.46 .
Что за хрень ? Почему умножается на 1,1 ? Как сделать чтобы отображалось 15 грн а не UAH16.46 ?
Помогите пожалуйста...
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #187 : 07.01.2010, 15:53:44 »
добавляешь "украинская гривна и код ставишь UAN,  а  в разделе "информации о магазине" выбираешь валюта "Украинская гривна" симфол валюты ставишь грн. Формат положительного значения:  выбираешь 00 Sumb и будет тебе счастье

Курс считаеться автоматом из European Central Bank, и реально там гривны нет, нужно ручками жёстко прописывать, решение в этом топике на первой странице
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #188 : 10.01.2010, 01:00:36 »
Подтверждаю!
Сделал у себя всё так, как написано.
Даже с моей начальной квалификацией - получилось!

Получилось, потому что работает только в PHP5, а для PHP4 Вы даже не пробывали, потому что не работает

Файл изменения валюты доступен прямым доступом, лучше папку запоролить, чтобы кто то не изменил Вам валюту

При этом в шаблон админки Joomla должен быть вставлен код, реализующий открытие Highslide окон, иначе нужный интерфейс будет открыт просто в том же окне, что есть некрасиво.

Помогите пожалуйста, как это реализовать ? если не трудно приатачте эту библиотеку и напишите код который надо вставить в шаблон админки
*

tall

  • Осваиваюсь на форуме
  • 15
  • 4 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #189 : 25.01.2010, 18:13:49 »
Ребята выручайте, перепробовал все, все варианты конверторов с ручной настройкой получились на ура, и казалось что вопрос с канвертором уже решен, но все рухнуло заявлением заказщика что валюта прыгает и каждый день настраивать ее никто не будет.

Ребята, может кто сможет помочь настроить convertECB файл, или создать свой, с PHP не знаком, нашел XML файл Израильского банка http://www.bankisrael.gov.il/currency.xml, главная валюта на сайте USD все товары в USD, но с опцией чтоб юзеры могли посмотреть цены и в ILS (Израильский шекель).
*

zukoz

  • Захожу иногда
  • 107
  • 2 / 0
  • Результат поиска халявы
Re: Цены на товары в VirtueMart 1.1
« Ответ #190 : 28.01.2010, 10:47:43 »
разобрался
« Последнее редактирование: 29.01.2010, 13:15:27 от zukoz »
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
Re: Цены на товары в VirtueMart 1.1
« Ответ #191 : 29.01.2010, 12:20:19 »
Цитировать
В папке components/com_virtuemart/themes/default/templates/product_details в используемом flypage-шаблоне нужно просто убрать вывод переменной $ask_seller

Нету нигде етой переменной как убрать Задайте вопрос по этому товару ((
*

altyn

  • Захожу иногда
  • 310
  • 7 / 0
  • Бог придумал смех для того чтоб над собой смеялись
Re: Цены на товары в VirtueMart 1.1
« Ответ #192 : 02.02.2010, 21:36:05 »
Информация о магазине, там символ валюты. Вставь    ""&#1088;&#1091;&#1073;""  , только без кавычек и у тебя будет руб.

Втавил ""&#1088;&#1091;&#1073;"" без кавычек блин работает!Спасибо +1
*

chupaodessa

  • Осваиваюсь на форуме
  • 14
  • 5 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #193 : 04.02.2010, 23:22:29 »
Просьба знающих объяснить значение данного кода.

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

Это из файла convertECB.php  строка - 107
Мне нужно понять что здесь задаётся и зачем эта срока в коде.
Предполагаю, что как раз здесь мне нужно сделать изменения, но не знаю смысл этого кода.
Почему в этом файле только 2-е валюты и что значит rate='1'

Буду очень признателен за помощь.


*

Majestic

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #194 : 07.02.2010, 22:41:54 »
есть разные цены в зависимости от ШТУК заказываемого товара и групп пользователей.когда заходите в редактирование товара вверху справа кнопка "Цены"

Кто-нибудь подскажите как сделать цену в зависимости от количества товара:
1-99                 500 руб.
100-выше          400 руб.

У меня максимальное количество товара только цифру воспринимает, хочу написать "и выше" или на край ">"
*

chupaodessa

  • Осваиваюсь на форуме
  • 14
  • 5 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #195 : 09.02.2010, 16:29:13 »
Кто-нибудь подскажите как сделать цену в зависимости от количества товара:
1-99                 500 руб.
100-выше          400 руб.

У меня максимальное количество товара только цифру воспринимает, хочу написать "и выше" или на край ">"


Зайти в товары, выбрать товар, а в нём выбрать кнопку цена
  


нажать кнопку новый  



И добавить цены и колличество




Вот и всё

« Последнее редактирование: 09.02.2010, 16:35:37 от chupaodessa »
*

Magnum

  • Захожу иногда
  • 269
  • 14 / 0
  • magnumblog.space
Re: Цены на товары в VirtueMart 1.1
« Ответ #196 : 11.02.2010, 17:40:48 »
Люди пожалучта помогите....а то уже заело шутдировать тему и копатся в коде....
суть проблемы следующая! Наоснове этого поста: http://joomlaforum.ru/index.php/topic,26078.msg329714.html#msg329714
так как он наиболее вразумителен и дает возможность сделать то что нужно! был составлен файлик eurofxref-daily.xml со следующим содержимым:
Код
<?xml version="1.0" encoding="UTF-8"?>
<gesmes:Envelope xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01" xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref">
<gesmes:subject>Reference rates</gesmes:subject>
<gesmes:Sender>
<gesmes:name>European Central Bank</gesmes:name>
</gesmes:Sender>
<Cube>
<Cube time='2119-12-31'>
<Cube currency='USD' rate='8.0100'/>
<Cube currency='UAH' rate='1.0000'/>
<Cube currency='EUR' rate='11.0000'/>
</Cube>
</Cube>
</gesmes:Envelope>
Как видно основная валюта UAH - она же гривна.. будь она неладна!
Далее.. все валюты прописаны сдесь сомнений нет! Вроде бы казалось на этом все! Ну не щитая того что был поправлен файлик convertECB.php тоже соглано инструкции:
Код
var $document_address = 'http://mytest.ua/eurofxref-daily.xml';

var $info_address = 'http://mytest.ua/';
Ну вот.. можна было бы ити курить.. и пить кофе со спокойной душой и быть уверенным что все работает как нада! Но не тут то дело было!
Курс то оно перещитывает не так как нужно. Ну вот к прмеру у нас есть некий товар стоимостью 6000 грн., если выбираеш любую другую валюту например долар (курс долара по отношению к гривне 8.01 за долар) то должен быть ращет согласно следующей формулы:
Цитировать
Стоимать товара в уе = 6000 грн. / 8.01 уе
Что давало бы нам реальную стоимость данного товара на территории Украины 746.06 зеленых призидентов =)
А щитает оно блин согласно основной валюты ака "зеленые призиденты".. тобиш
Цитировать
Стоимать товара в уе = 6000 грн. * 8.01 уе
и как следствие мы получаем не то что залотую.. а платиновую стоимость товара в размере 48060 уе о_О
Может кто подсказать как заставить это недоделаный буржуйский скрипт щитать прапвильно.... а то так сами понимаете... стремные цены выходят!! =(
Я не волшебник. Я всего лишь учусь!
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #197 : 11.02.2010, 17:59:47 »
Самый подобный вразумительный способ по моему этот

Но я сделал по другому. Работает супер. И самое главное, что если магазин делаеться на заказ, то валюту можно менять прямо в админке. То есть не править файлик руками.

решение здесь
*

Magnum

  • Захожу иногда
  • 269
  • 14 / 0
  • magnumblog.space
Re: Цены на товары в VirtueMart 1.1
« Ответ #198 : 11.02.2010, 19:31:25 »
РРРРРР я все таки это сделал!  *DRINK*
Доблся правлиьного ращета формулы велюты (читайте мой пост выше)...
Решиние как всегда генильное и простое.. как в сказке "Колобок" по сусеам поскреб и нашол выход!
Собственно для нормально ращета нужна заменить все содержимое приславутого файла convertECB.php на следующее:
Код
<?php

if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );


class convertECB {



var $archive = true;

var $last_updated = '';



var $document_address = 'http://mytest.ua/eurofxref-daily.xml';



var $info_address = 'http://mytest.ua/';

function convert( $amountA, $currA='', $currB='' ) {

global $mosConfig_cachepath, $mosConfig_live_site, $mosConfig_absolute_path,

$mosConfig_offset, $vendor_currency, $vmLogger;


// global $vendor_currency is DEFAULT!

if( !$currA ) {

$currA = $vendor_currency;

}

if( !$currB ) {

$currB = $GLOBALS['product_currency'];

}

// If both currency codes match, do nothing

if( $currA == $currB ) {

return $amountA;

}

if( $GLOBALS['converter_array'] == '') {

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($mosConfig_cachepath) ) {

$store_path = $mosConfig_cachepath;

}

else {

$store_path = $mosConfig_absolute_path."/media";

}



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

$ecb_filename = $this->document_address;

$val = '';





if(file_exists($archivefile_name) && filesize( $archivefile_name ) > 0 ) {

  // timestamp for the Filename

  $file_datestamp = date('Ymd', filemtime($archivefile_name));

                $curr_filename = $archivefile_name;

    $this->last_updated = $file_datestamp;

$this->archive = false;
}

else {

$curr_filename = $ecb_filename;

}



if( !is_writable( $store_path )) {

  $this->archive = false;

  $vmLogger->debug( "The file $archivefile_name can't be created. The directory $store_path is not writable" );

}

if( $curr_filename == $ecb_filename ) {

// Fetch the file from the internet

require_once( CLASSPATH.'connectionTools.class.php');

$contents = vmConnector::handleCommunication( $curr_filename );


$this->last_updated = date('Ymd');

}

else {

$contents = @file_get_contents( $curr_filename );

}

if( $contents ) {

// if archivefile does not exist

if( $this->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 */
require_once( $mosConfig_absolute_path. '/includes/domit/xml_domit_lite_include.php' );
$xmlDoc = new DOMIT_Lite_Document();
if( !$xmlDoc->parseXML( $contents, false, true ) ) {

$vmLogger->err( 'Failed to parse the Currency Converter XML document.');

$GLOBALS['product_currency'] = $vendor_currency;

                    return $amountA;

}



$currency_list = $xmlDoc->getElementsByTagName( "Cube" );

// Loop through the Currency List

for ($i = 0; $i < $currency_list->getLength(); $i++) {

$currNode =& $currency_list->item($i);

$currency[$currNode->getAttribute("currency")] = $currNode->getAttribute("rate");

unset( $currNode );

}

$GLOBALS['converter_array'] = $currency;

}

else {

$GLOBALS['converter_array'] = -1;

$vmLogger->err( 'Failed to retrieve the Currency Converter XML document.');

$GLOBALS['product_currency'] = $vendor_currency;

return $amountA;

}

}

$valA = isset( $GLOBALS['converter_array'][$currA] )? $GLOBALS['converter_array'][$currA] : 1;

$valB = isset( $GLOBALS['converter_array'][$currB] )? $GLOBALS['converter_array'][$currB] : 1;

$val = $amountA *  $valA/ $valB;

return $val;

} // end function convertecb

}

?>


К сожалению к аминке прирутить сие чудо у меня не получилось.. =( ибо там выдает тьму тараканью ошибок нефельтруемых переменных и прочего хлама =)
Возможно из за того что не прописаны какие то вещи в самом шаблонизаторе админки (я просто не нашо да и не понял чего там нуна присобачить)
Цитировать
При этом в шаблон админки Joomla должен быть вставлен код, реализующий открытие Highslide окон, иначе нужный интерфейс будет открыт просто в том же окне, что есть некрасиво.
Но пока полет нормальный! Посмотрим, что будет дальше =)

Для тех кому нетерсно! в посте http://joomlaforum.ru/index.php/topic,26078.msg533727.html#msg533727
допущена ошибка в коде
Код
$res = round($nb,2);
if( $symbol != » ) {
$this->symbol = $old_symbol;
}
$res = $res.» грн.»;
return($res);
Должен иметь вид:
Код
$res = round($nb,2);
if( $symbol != '' ) {
$this->symbol = $old_symbol;
}
$res = $res.' грн.';
return($res);
Иначе попросут вам выдаст ошибку и админка ляже.. вместе с сатом =)
Так же есть недостаток.. после проделавания оных вещей =) (а это закоментить строки начиня со 142 по 200 там какую то и замены кода...) все цены перещитываются, но знак валюты пишет только "грн."

P.S: сори ели об этом где писали уже =)
« Последнее редактирование: 12.02.2010, 00:09:46 от Magnum »
Я не волшебник. Я всего лишь учусь!
*

Majestic

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #199 : 15.02.2010, 19:19:09 »

Зайти в товары, выбрать товар, а в нём выбрать кнопку цена
 


нажать кнопку новый 



И добавить цены и колличество




Вот и всё



верхний предел мне нужен размытым, не конкретное число, нужна "размытая фраза" типа 100 шт - И ВЫШЕ или хотя бы 100 шт. - >100 шт.
с этим так и не разобрался
*

Majestic

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #200 : 15.02.2010, 20:54:36 »
еще вопрос:
при использовании разных цен в зависимости от количества продаваемого товара в brouse_1.php отображается всплывающее окно рядом с ценой, а в flypage.tpl.php нормальная HTML <table> таблица....хочу сделать чтобы в brouse_1.php тоже была таблица, а не тултип...где править? и там и там выводится через <?php echo $product_price ?>
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Цены на товары в VirtueMart 1.1
« Ответ #201 : 16.02.2010, 07:01:21 »
Дело в том, что за подготовку этой переменной отвечают разные файлы - для категорий она подготавливается в shop.browse.php а для флайпейджа в shop.product.details.php
*

Majestic

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #202 : 16.02.2010, 20:10:47 »
Дело в том, что за подготовку этой переменной отвечают разные файлы - для категорий она подготавливается в shop.browse.php а для флайпейджа в shop.product.details.php

За информацию спасибо, только файл называется shop.product_details.php
Что-то не получилось мне победить пока что.
Я пробовал заменять аналогичной функцией файла shop.product_details.php, но не выходит. Что нужно в файле shop.browse.php вот в этом месте заменить, чтобы показывалась таблица?

Код
		if (_SHOW_PRICES == '1' && $auth['show_prices']) {
$product_price = $ps_product->show_price( $db_browse->f("product_id") );
}
else {
$product_price = "";
}
// @var array $product_price_raw The raw unformatted Product Price in Float Format
$product_price_raw = $ps_product->get_adjusted_attribute_price($db_browse->f('product_id'));

// i is the index for the array holding all products, we need to show. to allow sorting by discounted price,
// we need to use the price as first part of the index name!
$i = $product_price_raw['product_price'] . '_' . ++$counter;
« Последнее редактирование: 19.02.2010, 14:07:06 от Majestic »
*

Spellscape

  • Новичок
  • 2
  • 0 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #203 : 19.02.2010, 04:39:16 »
Как я понял весь сайт должен иметь 1 исходную валюту например Евро и от нее он будет пересчитывать (с определенными ухищрениями) в ГРН РУБ и т/п

А можно ли вводить цену одних товаров в Евро вторых в Долларах   назначить курс пересчета этих валют в ГРН например  и чтоб не корректировать  каждый раз цену товара грн  просто менять курс пересчета из EUR и USD?

Если да то как?
*

Magnum

  • Захожу иногда
  • 269
  • 14 / 0
  • magnumblog.space
Re: Цены на товары в VirtueMart 1.1
« Ответ #204 : 19.02.2010, 12:12:02 »
Как я понял весь сайт должен иметь 1 исходную валюту например Евро и от нее он будет пересчитывать (с определенными ухищрениями) в ГРН РУБ и т/п

А можно ли вводить цену одних товаров в Евро вторых в Долларах   назначить курс пересчета этих валют в ГРН например  и чтоб не корректировать  каждый раз цену товара грн  просто менять курс пересчета из EUR и USD?

Если да то как?
К сожалению без знаний PHP и переписывания модуля мультивалютности не удастся! Потому как основной может быть по дефолту только одна валюта и от нее все отталкивается! Так что мой совет, выбери одну валюту которая тебе важнее и в которо ты закупаеш товар.. ее и поставь основной!
Я не волшебник. Я всего лишь учусь!
*

cosmos_ss

  • Новичок
  • 7
  • 0 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #205 : 19.02.2010, 14:04:07 »
Спасибо igoryk за модуль, работает супер :D

Такой вопрос. Поставил себе три валюты USD, EUR, руб. Прописал как положено в настройках магазина и в файле eurofxref-daily.xml

В Беларуси такая система, цены у нас кратны 10, например 150'450 руб; 127'230 руб, 44'670 руб, у нас нету ниже 10 рублей. А модуль при пересчете не округляет. Я впринципе додумался как сделать округление тысяч, в файле class_currency_display.php заменил строки 132 и 155
Код
$res=$this->getValue($nb, $decimals);
$res=$this->getValue(abs($nb), $decimals);

На эти:
Код
$res=$this->getValue((round($nb/10,0))*10, $decimals);
$res=$this->getValue(abs(round($nb/10,0))*10, $decimals);

Но после этого округляет все три валюты, что недопустимо. Подскажите пожалуйста как можно сделать чтобы округляло только рубли?

Re: Цены на товары в VirtueMart 1.1
« Ответ #206 : 19.02.2010, 14:47:19 »
а не скажете как изменить расположение элементов товара (название, цена, картинка)??
*

n4speed

  • Новичок
  • 5
  • 0 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #207 : 09.03.2010, 15:29:40 »
Подскажите как решит мою проблему. В настройках товара выбираю цену без НДС, а в магазине на странице все равно просчитывает это самое НДС. Т.е. цена товара фактически выше на 8.25%.
*

Magnum

  • Захожу иногда
  • 269
  • 14 / 0
  • magnumblog.space
Re: Цены на товары в VirtueMart 1.1
« Ответ #208 : 09.03.2010, 18:26:15 »
а не скажете как изменить расположение элементов товара (название, цена, картинка)??
Нужно отредактировать шаблон вывода товара. Если мне не изменят память то он лежит в "/components/com_virtuemart/themes/"
Как копать там. Но подобные вопросы по моему не в этой теме стоит обсуждать =)

Подскажите как решит мою проблему. В настройках товара выбираю цену без НДС, а в магазине на странице все равно просчитывает это самое НДС. Т.е. цена товара фактически выше на 8.25%.
Если налого обложение вам не нужно то по моему стоит его вообще отключить в настройках =)
Я не волшебник. Я всего лишь учусь!
*

n4speed

  • Новичок
  • 5
  • 0 / 0
Re: Цены на товары в VirtueMart 1.1
« Ответ #209 : 10.03.2010, 09:59:22 »
Если налого обложение вам не нужно то по моему стоит его вообще отключить в настройках =)
Так все дело в том, что в свойствах товара, я отключил налогообложение, но цену отображает все равно с учетом налога.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart - SMS уведомления о сделаном заказе.

Автор bork

Ответов: 42
Просмотров: 23302
Последний ответ 26.07.2021, 22:11:25
от Oleg91
Отчеты и статистика для VirtueMart

Автор 4kict

Ответов: 25
Просмотров: 10381
Последний ответ 14.01.2021, 00:09:53
от gartes
Как реализовать: товары, которых нет в наличии в конец списка категории?

Автор Girevik

Ответов: 1
Просмотров: 1498
Последний ответ 02.11.2017, 10:52:04
от P_B
[Решено] Чебокс "Показывать только товары, которые есть в наличии"

Автор artMelnikov

Ответов: 20
Просмотров: 7739
Последний ответ 28.06.2017, 11:19:51
от OutLaw1
IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 53932
Последний ответ 05.02.2017, 11:44:02
от Super_Panda