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

Bowa

  • Захожу иногда
  • 363
  • 5 / 0
Сам вопрос в заголовке...
Связка 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

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = 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 / 0
но на сколько я понял, самом модуле переменная $currencies выводит и название и символ валюты.
*

gartes

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

Bowa

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

gartes

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

Bowa

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

gartes

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

Bowa

  • Захожу иногда
  • 363
  • 5 / 0
вот что я получил:
Код
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

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Во ну это другое дело...
И как вы хотите вывести
Код: html
<div>$</div><div>€</div><div>Rub</div>

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

Bowa

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

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

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = 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 / 0
Шикарно!
Даже можно сказать больше.... так как мечтал о меньшем ))
Огромное спасибо! Решено! Не помешало бы модератору это зачислить в хаки! Дабы людям было!
Плюс второй и железный!
*

Nykolay

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


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

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

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

gartes

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

Товар в модуле корзины по умолчанию VirtueMart 3

Автор vladsklyar

Ответов: 1
Просмотров: 916
Последний ответ 02.03.2018, 21:10:30
от vladsklyar
Вывод описания категории товаров модуле VirtueMart Товары

Автор Marcello

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

Автор Toha_L

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

Автор Bowa

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

Автор Bowa

Ответов: 1
Просмотров: 824
Последний ответ 07.04.2016, 09:06:27
от gartes