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

Bowa

  • Давно я тут
  • 363
  • 5
Сам вопрос в заголовке...
Связка Joomla 3.5 + VirtueMart 3.0.14
Есть стандартный модуль вывода валюты магазина. Хочется убрать из него вывод названия валюты и оставить только символ.
Хотел обрамит в div или span, но в модуле это не возможно, стал копать, нашел файл, currency.php
в котором есть строка
Код
$q = 'SELECT `virtuemart_currency_id`,CONCAT_WS(" ",`currency_name`,`currency_symbol`) as currency_txt
которая и выводит имя валюты и символ....!
Но вот как правильно обрамить их отдельно в span или div не представляю (( что не попробовал, все выдает в итоге ошибки на сайте.
Помогите пожалуйста.
*

gartes

  • Живу я здесь
  • 951
  • 71
  • Е = mс²
Тут многое от шаблона зависит. Вам бы ссылку дать на Ваш сайт можно было бы посмотреть.
Смотрите тут.
/modules/mod_virtuemart_currencies/tmpl/default.php
в переменной $currencies
Посмотреть можно так.
Код: php
echo '<pre>'; print_r ( $currencies ); echo '</pre>'.__FILE__.' Строка '.__LINE__ ;
« Последнее редактирование: 05.04.2016, 21:19:09 от gartes »
*

Bowa

  • Давно я тут
  • 363
  • 5
но на сколько я понял, самом модуле переменная $currencies выводит и название и символ валюты.
*

gartes

  • Живу я здесь
  • 951
  • 71
  • Е = mс²
Ну да только там у Вас это Массив..
Его можно немного подправить..
Если файл default.php скопировать в папку /[ВАШ ШАБЛОН]/html/mod_virtuemart_currencies/
То при обновлении изменения не будут утеряны.
*

Bowa

  • Давно я тут
  • 363
  • 5
Ну да только там у Вас это Массив..
Его можно немного подправить..
Если файл default.php скопировать в папку /[ВАШ ШАБЛОН]/html/mod_virtuemart_currencies/
То при обновлении изменения не будут утеряны.
Про шаблон я понимаю... не могу понять как этот код
Код
echo '<pre>'; print_r ( $currencies ); echo '</pre>'.__FILE__.' Строка '.__LINE__ ;
может обрамить название валюты или символ валюты, что бы в последствии можно было манипулировать ими отдельно через CSS
*

gartes

  • Живу я здесь
  • 951
  • 71
  • Е = mс²
Цитировать
не могу понять как этот код
Да не ... То я просто написал что бы Вы посмотрели что у Вас в переменной $currencies находиться...
Вы можете скопировать то что print_r () выводит.? Тогда я смогу сказать как обрамить то что нужно ))
*

Bowa

  • Давно я тут
  • 363
  • 5
в файле currency.php
вот этот код:
Код
$q = 'SELECT `virtuemart_currency_id`,CONCAT_WS(" ",`currency_name`,`currency_symbol`) as currency_txt
имя и символ но как их заключить в отдельные span или div... не знаю.... пробовал разные варианты.... ошибка (((
*

gartes

  • Живу я здесь
  • 951
  • 71
  • Е = mс²
Цитировать
в файле currency.php
вот этот код:
))) Это простите в обще не причем...
Это sql запрос.. Причем тут символ... и валюта. ))
Сделайте так как я вам написал.. то что вылезет на месте модуля скопируйте сюда..
*

Bowa

  • Давно я тут
  • 363
  • 5
вот что я получил:
Код
Array
(
    [0] => stdClass Object
        (
            [virtuemart_currency_id] => 47
            [currency_txt] => Euro €
        )

    [1] => stdClass Object
        (
            [virtuemart_currency_id] => 144
            [currency_txt] => United States dollar $
        )

    [2] => stdClass Object
        (
            [virtuemart_currency_id] => 131
            [currency_txt] => Российские Рубли ₽
        )

)
*

gartes

  • Живу я здесь
  • 951
  • 71
  • Е = mс²
Во ну это другое дело...
И как вы хотите вывести
Код: html
<div>$</div><div>€</div><div>Rub</div>

Так к примеру ? Или все же в виде select-а. ??
« Последнее редактирование: 06.04.2016, 19:13:58 от gartes »
*

Bowa

  • Давно я тут
  • 363
  • 5
Во ну это другое дело...
И как вы хотите вывести
Код: html
<div>$</div><div>€</div><div>Rub</div>

Так к примеру ? Или все же в виде select-а. ??
именно так
Код
<div>$</div><div>€</div><div>Rub</div>
так былобы совсем шикарно, если бы просто символы от валюты в отдельных дивах
*

gartes

  • Живу я здесь
  • 951
  • 71
  • Е = mс²
Цитировать
так былобы совсем шикарно
))
Ну вот и готово...
в файле модуля default.php
Находим строчку
Код: php
<?php echo $text_before ?>
После нее все затираем и ставим следующие..
Код

<form action="<?php echo vmURI::getCleanUrl()?>" method="post">


    <input id="ch_curr" class="button" type="submit" name="submit" value="<?php echo vmText::_('MOD_VIRTUEMART_CURRENCIES_CHANGE_CURRENCIES')?>" />

       <?php 
$html ='';
foreach (  $currencies as  $currency ){
$len = mb_strlen($currency->currency_txt, 'utf-8');
$symbol= mb_substr($currency->currency_txt , $len-1,1);

if($symbol=='Р'){$symbol= '<del><span style="font-family: Arial;">P</span></del>';} // end if
$html .= '<div title="Сменить валюту на '.$currency->currency_txt.'" currency_id="'.$currency->virtuemart_currency_id.'">'.JText::_($symbol).'</div>';
}//foreach
?>
    <div id="currencySelector" style="">
    <?= $html ?>
    </div><!-- /#currencySelector-->
    <script>
    ;jQuery( function($) {
$(document).ready(function(){
var selectedCurr = $("#virtuemart_currency_id :selected"),
form = $(selectedCurr).closest('form');
$('form').find('[currency_id="'+$(selectedCurr).val()+'"]').addClass('currSelect');
$('#currencySelector').on('click', 'div', function  (){
$(this).parent().find('div').removeClass('currSelect');
$(this).addClass('currSelect');
$(selectedCurr).removeAttr('selected');
$("#virtuemart_currency_id  [value='"+$(this).attr('currency_id')+"']").attr("selected", "selected");
$( '#ch_curr' ).trigger('click');
});
});
});jQuery.noConflict();
    </script>
    <style type="text/css">
    #currencySelector div {border: 1px solid;display: inline-block;font-size: 2em;margin: 5px;padding: 5px;cursor: pointer;}
#ch_curr, #virtuemart_currency_id{display:none !important;}/*скрыть стандартный селект и кнопку изменить валюту*/
.currSelect {border-color: red !important;}/*Для выбранной валюты*/
    </style>
    <?php echo JHTML::_('select.genericlist', $currencies, 'virtuemart_currency_id', 'class="inputbox vm-chzn-select"', 'virtuemart_currency_id', 'currency_txt', $virtuemart_currency_id) ; ?>
</form>
ВАЖНО: Для валюты российский рубль  Символ валюты ставим Р (большая буква Р (русский))

Вот и все. Сбылась Ваша Фантазия..
Наверно это еще 1 + от Вас. Да ?
ps (рабочий пример можно глянуть тут. (это так что то вроде полигона )) ) )
*

Bowa

  • Давно я тут
  • 363
  • 5
Шикарно!
Даже можно сказать больше.... так как мечтал о меньшем ))
Огромное спасибо! Решено! Не помешало бы модератору это зачислить в хаки! Дабы людям было!
Плюс второй и железный!
*

Nykolay

  • Новичок
  • 2
  • 0
;D Спасибо...


СПАСИБО ЗА ПРЕДЫДУЩИЕ ОТВЕТЫ и РЕШЕНИЕ
Помогите разобраться, как понять чего меня перекидывает на главную при клике на символ валюты и не меняет валюту на сайте. Потом когда на главной я повторно кликаю на символ валюты — происходит смена валют. Думаю у меня ошибка с переадрисацией после отправки формы — а я такие файлы вообще не правил.

Много текста(( вот видео с ошибкой — http://www.ex.ua/529351221804 или https://vk.com/video86634594_456239024

Ещё по Вашему коду, обратите внимание на VirtueMart 3 — там есть #virtuemart_currency_id_chzn.
*

gartes

  • Живу я здесь
  • 951
  • 71
  • Е = mс²
Такое может быть из за включенного SEF404 ...
Попробуйте отключить весь кеш ..
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод описания категории товаров модуле VirtueMart Товары

Автор Marcello

Ответов: 1
Просмотров: 97
Последний ответ 09.07.2017, 14:08:26
от Marcello
Вставить название категории в описание товара

Автор Toha_L

Ответов: 0
Просмотров: 142
Последний ответ 19.10.2016, 14:43:41
от Toha_L
Как вывести рейтинг товара в стандартном модуле VirtueMart 3?

Автор Bowa

Ответов: 1
Просмотров: 523
Последний ответ 21.05.2016, 14:40:26
от Bowa
Как в модуле выбора валюты сменить список на кнопки?

Автор Bowa

Ответов: 1
Просмотров: 292
Последний ответ 07.04.2016, 09:06:27
от gartes
Переключатель валюты в карточке товара VirtueMart

Автор face2005

Ответов: 1
Просмотров: 317
Последний ответ 06.09.2015, 10:12:01
от gartes