Новости Joomla

Перевод и публикация интервью с 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 Гость просматривают эту тему.
  • 21 Ответов
  • 6422 Просмотров
*

Nibiru

  • Захожу иногда
  • 158
  • 0 / 0
  • lepnina.info
Вроде форма должна открываться во всплывающем окне, а у меня заменяет страницу. В чём может быть проблема?
« Последнее редактирование: 02.10.2013, 22:33:54 от Nibiru »
*

Максим Пишняк

  • Давно я тут
  • 837
  • 35 / 0
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #1 : 21.09.2013, 21:18:04 »
Ссылка?
*

Nibiru

  • Захожу иногда
  • 158
  • 0 / 0
  • lepnina.info
*

Максим Пишняк

  • Давно я тут
  • 837
  • 35 / 0
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #3 : 22.09.2013, 13:50:38 »
Исчезает ли ошибка после переключения на стандартный шаблон?
*

Nibiru

  • Захожу иногда
  • 158
  • 0 / 0
  • lepnina.info
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #4 : 22.09.2013, 15:31:11 »
да
« Последнее редактирование: 25.09.2013, 19:10:00 от Nibiru »
*

Максим Пишняк

  • Давно я тут
  • 837
  • 35 / 0
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #5 : 22.09.2013, 17:14:41 »
Какие еще расширения у вас установлены?
*

Nibiru

  • Захожу иногда
  • 158
  • 0 / 0
  • lepnina.info
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #6 : 22.09.2013, 18:24:24 »
Какие еще расширения у вас установлены?
Вообще на сайте? Компоненты или модули, или плагины?
*

Максим Пишняк

  • Давно я тут
  • 837
  • 35 / 0
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #7 : 22.09.2013, 20:57:59 »
Да. Какие у вас сторонние расширения?
*

Nibiru

  • Захожу иногда
  • 158
  • 0 / 0
  • lepnina.info
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #8 : 25.09.2013, 06:51:30 »
на стандартном  шаблоне ссылка открывается в всплывающем окне, на моём шаблоне не открывает всплывающе.
*

Максим Пишняк

  • Давно я тут
  • 837
  • 35 / 0
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #9 : 26.09.2013, 20:52:53 »
да
Спасибо, что признались что проблема все-таки в вашем шаблоне. А то этот ваш ответ запутывает процесс решения.

Для какой версии VM создавался ваш шаблон?
*

Nibiru

  • Захожу иногда
  • 158
  • 0 / 0
  • lepnina.info
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #10 : 28.09.2013, 02:48:57 »
Для какой версии VM создавался ваш шаблон?
сложно сказать, но, наверное 2.0.20
*

Максим Пишняк

  • Давно я тут
  • 837
  • 35 / 0
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #11 : 30.09.2013, 09:58:49 »
Да. Какие у вас сторонние расширения?
*

Nibiru

  • Захожу иногда
  • 158
  • 0 / 0
  • lepnina.info
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #12 : 01.10.2013, 19:21:56 »
Да. Какие у вас сторонние расширения?
Спойлер
[свернуть]
*

Nibiru

  • Захожу иногда
  • 158
  • 0 / 0
  • lepnina.info
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #13 : 02.10.2013, 09:03:39 »
при просмотре исходного кода
Код
    		    		<div class="ask-a-question">
        <a class="ask-a-question" href="/[i]ссылка[/i]-detail/askquestion?tmpl=component" >Задайте вопрос по этому товару</a>
        <!--<a class="ask-a-question modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}" href="/[i]ссылка[/i]-detail/askquestion?tmpl=component">Задайте вопрос по этому товару</a>-->
    </div>

<div class="manufacturer">
            <span class="bold">Производитель: </span><a class="modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}" href="/[i]ссылка[/i]/manufacturer-details?tmpl=component">Herbalife</a>
    </div>
видно, что задать вопрос повторяется 2 раза; первый без открытия в сплывающем окне, вторая с открытием. У производителя 1 раз с открытием в окне и открывается нормально. Может надо убрать в коде 1??
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #14 : 02.10.2013, 12:43:53 »
У тебя в админке стоит юзать ФЕНСИБОКС.А в шаблоне твоем скрипт написан для фейсбокса. тебе надо заменить
Код
$document = JFactory::getDocument();
$document->addScriptDeclaration("
jQuery(document).ready(function($) {
$('a.ask-a-question').click( function(){
$.facebox({
iframe: '" . $this->askquestion_url . "',
rev: 'iframe|550|800'
});
return false ;
});
/* $('.additional-images a').mouseover(function() {
var himg = this.href ;
var extension=himg.substring(himg.lastIndexOf('.')+1);
if (extension =='png' || extension =='jpg' || extension =='gif') {
$('.main-image img').attr('src',himg );
}
console.log(extension)
});*/
});
");
на новый из последних версий который поддерживает фенсибокс
Код
if(VmConfig::get('usefancy',0)){
vmJsApi::js( 'fancybox/jquery.fancybox-1.3.4.pack');
vmJsApi::css('jquery.fancybox-1.3.4');
$box = "$.fancybox({
href: '" . $this->askquestion_url . "',
type: 'iframe',
height: '550'
});";
} else {
vmJsApi::js( 'facebox' );
vmJsApi::css( 'facebox' );
$box = "$.facebox({
iframe: '" . $this->askquestion_url . "',
rev: 'iframe|550|550'
});";
}
$document = JFactory::getDocument();
$document->addScriptDeclaration("
//<![CDATA[
jQuery(document).ready(function($) {
$('a.ask-a-question').click( function(){
".$box."
return false ;
});
/* $('.additional-images a').mouseover(function() {
var himg = this.href ;
var extension=himg.substring(himg.lastIndexOf('.')+1);
if (extension =='png' || extension =='jpg' || extension =='gif') {
$('.main-image img').attr('src',himg );
}
console.log(extension)
});*/
});
//]]>
");
Для начала можешь в админке отклюить юзать фенсибокс, и проверить.Если все будет норм, то сделать замену
*

Nibiru

  • Захожу иногда
  • 158
  • 0 / 0
  • lepnina.info
Re: Форма "Задать вопрос" -"Ask question"
« Ответ #15 : 02.10.2013, 22:08:21 »
У тебя в админке стоит юзать ФЕНСИБОКС.А в шаблоне твоем скрипт написан для фейсбокса. тебе надо заменить
... на новый из последних версий который поддерживает фенсибокс
... Для начала можешь в админке отклюить юзать фенсибокс, и проверить.Если все будет норм, то сделать замену
Да! Вы правы! А где этот код поменять? Я всё сделал templates/ШАБЛОН/html/com_virtuemart/productdetails/default.php . Всё работает, благодарю.
« Последнее редактирование: 02.10.2013, 22:35:45 от Nibiru »
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Да! Вы правы! А где этот код поменять? Я всё сделал templates/ШАБЛОН/html/com_virtuemart/productdetails/default.php . Всё работает, благодарю.
Именно там и надо.Рад что помог)
*

toooll

  • Новичок
  • 3
  • 0 / 0
Новую тему создавать не стал, у меня точно такая же проблема как у автора.
Замена кода в файле templates/ШАБЛОН/html/com_virtuemart/productdetails/default.php не помогла.
Когда меняю шаблон на стандартный то все нормально
« Последнее редактирование: 21.11.2013, 08:42:01 от toooll »
*

toooll

  • Новичок
  • 3
  • 0 / 0
Загрузил еще пару шаблонов, по умолчанию в них так же "задать вопрос..." загружался в новой странице а не в сплывающем окне, но заменив указанный выше код все заработало как нужно. Пока оставлю шаблон в котором все работает, потом постараюсь разобраться почему в одних шаблонах работает этот способ на другие никак не влияет.
Если есть какие предположения рад буду прочитать и попробовать.
*

toooll

  • Новичок
  • 3
  • 0 / 0
Разобрался.
В файле templates/ШАБЛОН/html/com_virtuemart/productdetails/default.php
находим место
Код
// Ask a question about this product
if (VmConfig::get('ask_question', 1) == '1') {
    ?>
<div class="ask-a-question">
<a class="btn btn-info" href="<?php echo $url ?>" ><?php echo JText::_('COM_VIRTUEMART_PRODUCT_ENQUIRY_LBL')?></a>
<!--<a class="ask-a-question modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}" href="<?php echo $url ?>"><?php echo JText:('COM_VIRTUEMART_PRODUCT_ENQUIRY_LBL')?></a>-->
    </div>
<?php }
?>
</div>
</div>
<div class="clear"></div>
</div>
меняем его на
Код
// Ask a question about this product?>
<div class="ask-a-question">
    <a class="ask-a-question" href="<?php echo $url ?>" ><?php echo JText::_('COM_VIRTUEMART_PRODUCT_ENQUIRY_LBL')?></a>
<!--<a class="ask-a-question modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}" href="<?php echo $url ?>"><?php echo JText::_('COM_VIRTUEMART_PRODUCT_ENQUIRY_LBL')?></a>-->
</div>
</div>
</div>
<div class="clear"></div>
</div>

Так же не забываем поменять код написанный выше без него не заработал
*

Kiparus

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Ребята, помогите с этим же вопросом, форма всплывала до установки какого-то расширения, а теперь открывается в новом окне.
Пробовал вставлять код из этой темы, но результата нет.
Вот страница для примера http://mezonavto.ru/parts/parts_kamaz/nasos_masljanyj_prostoj_kamaz_740-1011011-detail
*

Spirz

  • Новичок
  • 7
  • 0 / 0
ЕщЁ такая проблема.
Когда стоит перенаправление из одной категории в другую, то форма запускается, но не отсылает вопрос. При нажатии отправить, грузит в окне запроса страницу товара.
Пример:
http://site.ru/shop/cat1/cat2/tovar-detail - форма работает
http://site.ru/shop/cat2/tovar-detail - форма не работает, на тот же товар
Редирект стоит такой через .httaccess:
RedirectMatch /shop/cat1/cat2/(tovar.*)$       /shop/cat2/$1
Без редиректа все работает. Есть идеи?
Joomla 2.5.28
VirtueMart 2.6.0
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Блокировка спама в форме &quot;Задать вопрос по товару&quot; VirtueMart 3-4 средствами PHP

Автор aleks_yug

Ответов: 2
Просмотров: 2274
Последний ответ 30.08.2023, 11:37:41
от aleks_yug
[Решено] Если товар уже есть вкорзине изменить кнопку "Добавить в корзину"

Автор x-render

Ответов: 26
Просмотров: 12439
Последний ответ 26.11.2022, 22:38:11
от SolopoV
[Решено] Список товаров на главной VirtueMart

Автор vitoxa_ya

Ответов: 6
Просмотров: 10612
Последний ответ 21.10.2020, 23:27:08
от alfa212
Вопрос по скриптам VirtueMart

Автор Viclingvolive

Ответов: 0
Просмотров: 769
Последний ответ 03.11.2019, 22:08:25
от Viclingvolive
[Решено] VM2 Метод доставки "по умолчанию"

Автор d0ublezer0

Ответов: 17
Просмотров: 16296
Последний ответ 15.11.2017, 20:14:22
от nden