Форум русской поддержки Joomla!® CMS
08.12.2016, 15:56:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как в модуле обрамить название валюты в span или div?

 (Прочитано 330 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Bowa
Давно я тут
****

Репутация: +5/-0
Offline Offline

Сообщений: 339



« : 05.04.2016, 14:51:15 »

Сам вопрос в заголовке...
Связка 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
Живу я здесь
******

Репутация: +63/-3
Offline Offline

Сообщений: 827


Е = mс²


« Ответ #1 : 05.04.2016, 22:15:17 »

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

Репутация: +5/-0
Offline Offline

Сообщений: 339



« Ответ #2 : 05.04.2016, 23:12:52 »

но на сколько я понял, самом модуле переменная $currencies выводит и название и символ валюты.
Записан
gartes
Живу я здесь
******

Репутация: +63/-3
Offline Offline

Сообщений: 827


Е = mс²


« Ответ #3 : 05.04.2016, 23:42:19 »

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

Репутация: +5/-0
Offline Offline

Сообщений: 339



« Ответ #4 : 06.04.2016, 17:41:03 »

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

Репутация: +63/-3
Offline Offline

Сообщений: 827


Е = mс²


« Ответ #5 : 06.04.2016, 17:44:45 »

Цитировать
не могу понять как этот код
Да не ... То я просто написал что бы Вы посмотрели что у Вас в переменной $currencies находиться...
Вы можете скопировать то что print_r () выводит.? Тогда я смогу сказать как обрамить то что нужно ))
Записан
Bowa
Давно я тут
****

Репутация: +5/-0
Offline Offline

Сообщений: 339



« Ответ #6 : 06.04.2016, 17:47:50 »

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

Репутация: +63/-3
Offline Offline

Сообщений: 827


Е = mс²


« Ответ #7 : 06.04.2016, 17:54:45 »

Цитировать
в файле currency.php
вот этот код:
))) Это простите в обще не причем...
Это sql запрос.. Причем тут символ... и валюта. ))
Сделайте так как я вам написал.. то что вылезет на месте модуля скопируйте сюда..
Записан
Bowa
Давно я тут
****

Репутация: +5/-0
Offline Offline

Сообщений: 339



« Ответ #8 : 06.04.2016, 19:21:53 »

вот что я получил:
Код:
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
Живу я здесь
******

Репутация: +63/-3
Offline Offline

Сообщений: 827


Е = mс²


« Ответ #9 : 06.04.2016, 19:51:01 »

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

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

Репутация: +5/-0
Offline Offline

Сообщений: 339



« Ответ #10 : 06.04.2016, 20:39:37 »

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

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

Репутация: +63/-3
Offline Offline

Сообщений: 827


Е = mс²


« Ответ #11 : 06.04.2016, 22:40:25 »

Цитировать
так былобы совсем шикарно
))
Ну вот и готово...
в файле модуля default.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
Давно я тут
****

Репутация: +5/-0
Offline Offline

Сообщений: 339



« Ответ #12 : 06.04.2016, 22:51:23 »

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

Репутация: +63/-3
Offline Offline

Сообщений: 827


Е = mс²


« Ответ #13 : 06.04.2016, 22:52:07 »

 Grin Спасибо...
Записан
Nykolay
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #14 : 22.06.2016, 22:33:31 »

Grin Спасибо...


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

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

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

Репутация: +63/-3
Offline Offline

Сообщений: 827


Е = mс²


« Ответ #15 : 23.06.2016, 03:30:17 »

Такое может быть из за включенного SEF404 ...
Попробуйте отключить весь кеш ..
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet