Новости Joomla

Перевод и публикация интервью на греческом портале Joomla Утро, просматриваешь входящие письма и...

Перевод и публикация интервью на греческом портале Joomla 🇬🇷Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции.Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью. Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент. 🇬🇷 Интервью на греческом портале (joomla.gr)🌐 Оригинальное интервью (на английском)Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5

👩‍💻 Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5.В Joomla для выполнения внешних запросов из PHP к сторонним API используется класс Joomla\Http\Http напрямую или же Joomla\Http\HttpFactory, который возвращает для работы преднастроенный по умолчанию класс Http. О работе с HTTP-запросами подробно рассказывалось в статье 2021 года Создание внешних запросов с использованием HttpFactory (Joomla). Некоторые изменения касаются работы с ответами на запросы. Например, наш запрос:
use Joomla\Http\HttpFactory;$http = (new HttpFactory)->getHttp($options, ['curl', 'stream']);$response = $http->get('https://any-url.ru/api/any/endpoint');
Раньше можно было получить код ответа или тело ответа как свойство $response - $response->code или $response->body. Однако, Joomla, начиная с Joomla 4 во многом переходит на стандарты PSR. В частности для работы с HTTP-ответами - на PSR-7. Также хорошая статья на Хабре о PSR-7: PSR-7 в примерах.
Прямое обращение к свойствам code, headers, body объявлено устаревшим в Joomla 6.0.0 и обещают удалить в Joomla 7.0.0.
Вместо этого нужно работать с HTTP-ответом по стандартам PSR-7. Код ответа.Было $response->code. Стало $response->getStatusCode().Заголовки ответа.Было $response->headers. Стало $response->getHeaders().Тело ответа.Было $response->body. Стало (string)$response->getContents().В тело ответа теперь приходит не строка, а поток - объект класса Laminas\Diactoros\Stream. Поэтому его нужно привести к строке (если это json, к примеру): (string)$response->getContents(). Чаще всего в коде Joomla встречается именно такой вариант. Однако, есть и вариант с перемещением указателя чтения на начало потока:
// Получили ответ в виде потока$stream = $response->getBody();// "перемотали" на начало$stream->rewind();// Получили строковый ответ$json = $stream->getContents();
В итоге результат одинаковый.@joomlafeed#joomla #разработка #php

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

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
Просмотров: 1152
Последний ответ 02.03.2018, 21:10:30
от vladsklyar
Вывод описания категории товаров модуле VirtueMart Товары

Автор Marcello

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

Автор Toha_L

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

Автор Bowa

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

Автор Bowa

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