Новости 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 Гость просматривают эту тему.
  • 8 Ответов
  • 1788 Просмотров
*

forzi

  • Захожу иногда
  • 81
  • 0 / 0
Уважаемые джумловоды и виртуемартеры=профи. Вопрос такой. В каких файлах заменить переменные для вывода в всплывающей подсказке (при наведении курсора на картинку товара). То есть вместо названия товара там вывести список ингредиентов из краткого описания... Или может каким новым полем делать?
*

forzi

  • Захожу иногда
  • 81
  • 0 / 0
И дабы не делать новую тему - как убрать вот такое (см фото) - то есть при нажатии на кнопки добавления в корзину чтобы не появлялось такое окошко а сразу все летело в корзину?
*

forzi

  • Захожу иногда
  • 81
  • 0 / 0
Второй вопрос решил самостоятельно. Если кому то пригодится - опишу суть решения. (актуально для VirtueMart 3.0.12 - на более ранних подверсиях троечки немного по другому)
Решается все в файле components\com_virtuemart\assets\js\vmprices.js
Но для начала в настройках VirtueMart снимаем галочку  использовать FancyBox, тем самым переводим магазин на работу с использованием facebox
Далее открываем указанный выше файл текстовым редактором и находим блок
Код
if(usefancy){
jQuery.fancybox({
"titlePosition" : "inside",
"transitionIn" : "fade",
"transitionOut" : "fade",
"changeFade"    :   "fast",
"type" : "html",
"autoCenter"    :   true,
"closeBtn"      :   false,
"closeClick"    :   false,
"content"       :   txt
}
);
} else {
jQuery.facebox( txt , 'my-groovy-style');
}

В этом блоке комментируем строку
Код
jQuery.facebox( txt , 'my-groovy-style');
У меня в итоге этот блок стал выглядеть так:
Код
if(usefancy){
jQuery.fancybox({
"titlePosition" : "inside",
"transitionIn" : "fade",
"transitionOut" : "fade",
"changeFade"    :   "fast",
"type" : "html",
"autoCenter"    :   true,
"closeBtn"      :   false,
"closeClick"    :   false,
"content"       :   txt
}
);
} else {
// jQuery.facebox( txt , 'my-groovy-style');
}
Вот и все решение.
*

Liss

  • Захожу иногда
  • 238
  • 10 / 0
странное решение... а теперь открой консоль браузера и смотри ошибки
а как человек теперь поймет, что добавление товара в корзину состоялось? если это убираешь, надо что-то взамен сделать - должна быть какая-то визуальная реакция интерфейса на нажатие кнопки "купить"
*

forzi

  • Захожу иногда
  • 81
  • 0 / 0
странное решение... а теперь открой консоль браузера и смотри ошибки
а как человек теперь поймет, что добавление товара в корзину состоялось? если это убираешь, надо что-то взамен сделать - должна быть какая-то визуальная реакция интерфейса на нажатие кнопки "купить"
Стоит модуль корзины сверху и при клике на кнопку "Купить" визуально не пропустишь добавления товара в корзину.
*

forzi

  • Захожу иногда
  • 81
  • 0 / 0
По основному вопросу никто не подскажет? "   Описание товара в всплывающей подсказке" - я что то все файлы перерыл - но пока не нашел...
*

forzi

  • Захожу иногда
  • 81
  • 0 / 0
Вопрос снимается. Нашел решение самостоятельно. Ни Google ни прочие яндексы мне так и не подсказали. Само решение ниже:
ВАЖНО! Решение работает для версии VirtueMart 3.0.12, на более ранних версиях несколько по другому все.
Итак, что же нам требуется - нам требуется вывести содержимое поля Краткое описание во всплывающей подсказке при наведение на изображение товара (туда, где по умолчанию выводится наименование товара). Я по своей простоте искал исходники для редактирования по пути .../components/com_virtuemart/views/ но был не прав. Такие вещи лежат на другой полке, а именно тут: .../components/com_virtuemart/sublayouts/
Так вот, по указанному пути ищем файл products.php, открываем его для редактирования и ищем такой вот блок:
Код
<div class="vm-product-media-container" >

<a title="<?php echo $product->product_name ?>" href="<?php echo $product->link.$ItemidStr; ?>">
<?php
echo $product->images[0]->displayMediaThumb('class="browseProductImage"', false);
?>
</a>

</div>
Именно этот блок отвечает за вывод изображения товара и его титла (всплывающей при наведении курсора подсказки) Далее небольшое отступление.
Можно пойти двумя путями.
1 путь - просто сменить текст и все, делается это так. В строке:
Код
<a title="<?php echo $product->product_name ?>" href="<?php echo $product->link.$ItemidStr; ?
Вместо product_name вставляем product_s_desc (то есть по сути заменяем название товара на его описание) В принципе тут бы и успокоится, так как после сохранения файла и его внедрения в ваш сайт (на нужное место) все и заработает. Но...
Мы же не ищем легких путей и хотим, что бы всплывающая подсказка была красивая... И идем по второму пути. А вот и он:
2 путь - свой стиль для подсказки.
Итак, начнем. Берем все тот же блок
Код
<div class="vm-product-media-container" >

<a title="<?php echo $product->product_name ?>" href="<?php echo $product->link.$ItemidStr; ?>">
<?php
echo $product->images[0]->displayMediaThumb('class="browseProductImage"', false);
?>
</a>

</div>

Но теперь не трогаем строку со ссылкой, нам она уже не нужна. Мы берем самую первую строку, ту, в которой открывается DIV
Код
<div class="vm-product-media-container" >
И вписывыем в эту строку еще одну конструкцию, а именно вот это:
Код
data-title="<?php echo $product->product_s_desc ?>"
В результате у нас получается вот такая вот ДИВооткрывашка:
Код
<div class="vm-product-media-container" data-title="<?php echo $product->product_s_desc ?>">
В принципе в этом файле и все... Можно пить чай... но не сразу. Файл сохраняем и заливаем его на нужное вам место. И идем далее...
Переходим по пути .../templates/вашстиль/css/ и вынимаем оттуда файл template.css, и далее вносим в него некоторые добавления.
В самом конце этого файла добавляем следующий блок
Код
.vm-product-media-container {
      position: relative; /* Относительное позиционирование */
   }
   .vm-product-media-container:hover::after { /* включает подсказки только при наведении курсора */
    content: attr(data-title); /* Выводим текст */
    position: absolute; /* Абсолютное позиционирование */
width: 190px !important; /* ширина блока подсказки */
    left: 20%; top: 30%; /* Положение подсказки */
    z-index: 1; /* Отображаем подсказку поверх других элементов */
    background: rgba(255,255,230,0.9); /* Полупрозрачный цвет фона */
    font-family: Arial, sans-serif; /* Гарнитура шрифта */
    font-size: 13px; /* Размер текста подсказки */
    padding: 5px 10px; /* Поля */
    border: 1px solid #333; /* Параметры рамки */
border-radius: 4px; /* Скругляем углы рамки */
   }

В принципе после всех этих манипуляций у вас уже должно все работать. Вот как это выглядит у меня:
*

fsv

  • Moderator
  • 2782
  • 411 / 2
Цитировать
По основному вопросу никто не подскажет?
Так вопроса то нет. Кроме вас никто не знает, о чем вы спрашиваете. А выяснять на 10 постов никому не надо.

ЕСЛИ в категории:
\components\com_virtuemart\sublayouts\products.php
Код: html4strict
<a title="<?php echo $product->/*product_name*/product_s_desc ?>" href="<?php echo $product->link.$ItemidStr; ?>">
Файл переопределить!

Цитировать
визуально не пропустишь
не верю. ссылка?

P.S. опередил, ну и молодец, спасение утопающих - дело рук...
Веб-разработка: заказ. Только новая разработка.
*

forzi

  • Захожу иногда
  • 81
  • 0 / 0

не верю. ссылка?

P.S. опередил, ну и молодец, спасение утопающих - дело рук...
1. Не люблю показывать неоконченные работы
2. .. самих утопающих))) Только я пошел дальше банального спасения а еще и рамочку спасенному нарисовал)))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Эффект добавления товара в корзину VM3

Автор bassez

Ответов: 0
Просмотров: 2871
Последний ответ 05.06.2020, 12:28:26
от bassez
Вывод краткого описания товара в корзине

Автор PavelK

Ответов: 2
Просмотров: 3189
Последний ответ 04.04.2020, 16:34:10
от PavelK
Редактирование карточки товара VirtueMart

Автор muserun

Ответов: 2
Просмотров: 5125
Последний ответ 31.10.2019, 12:53:51
от Sandruk1
Изменение количества товара в корзине

Автор 1AZ1

Ответов: 18
Просмотров: 3904
Последний ответ 23.09.2019, 15:41:49
от draff
Как добавить артикул в категориях и карточке товара?

Автор alexj69

Ответов: 22
Просмотров: 14558
Последний ответ 16.06.2019, 18:41:53
от AndTaran