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

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Не могу создать условие выполняемое при переключении опций атрибута...

Подробнее: У товара есть один атрибут (зависимый, типа селект) у него несколько опций, нужно скрыть кнопку "Купить" при выборе определенной опции.

Бьюсь этой проблемой, но условие никак не хочет работать...

Пробовал так (вопрос как получить - id значения):
Код
reloadAttribEvents[reloadAttribEvents.length] = function(json){
if (id значения == 1){
jQuery('.productfull #product-buy').show();
}else{
jQuery('.productfull #product-buy').hide();
}
}

И так:
Код
jQuery(document).ready(function($) {
$( '#jshop_attr_id1' ).on('change', function() {
if ($(this).val() == 1){
$('.productfull #product-buy').show();
}else{
$('.productfull #product-buy').hide();
}
});
});

Но срабатывает только один раз и то не всегда. Помогите разобраться...
« Последнее редактирование: 07.04.2020, 15:31:23 от kit2m2 »
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
а кнопка купить вроде скрывается когда кол-во 0, если настройка задана.
может тудой попробовать ? просто подкидывать кол-во 0 ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
а кнопка купить вроде скрывается когда кол-во 0, если настройка задана.
может тудой попробовать ? просто подкидывать кол-во 0 ?

Нет это не подойдет, дело в том, что по условию у всех опций атрибута положительное кол-во (>0), а скрыть кнопку "Купить" нужно у всех, кроме одной опции (id=1 или value=1)
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
ссылки на посмотреть нет?
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
ссылки на посмотреть нет?
Вот, но вряд ли это поможет  - Ссылка (удалено)
« Последнее редактирование: 07.04.2020, 14:53:27 от kit2m2 »
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
Не вижу там кнопку купить. И какой из селектов? Скрипт-обработчик в каком файле?
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Не вижу там кнопку купить.
Потому что этот блок изначально скрыт -
Код
#product-buy{
    display: none;
}

И какой из селектов?
Выбор опции атрибута - "Магазин"

Скрипт-обработчик в каком файле?
В плагине
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
У вас в том селекте через атрибут подвешен обработчик:
Код
onchange="setAttrValue('1', this.value);"
который после срабатывания отменяет прочие обработчики, подвешенные с помощью вашего кода из первого поста. поэтому срабатывает только 1 раз
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
Вам надо или проверь зачем тот обработчик это делает и, может быть, подправить. Либо отменить его вовсе добавлением 1 строчки перед навешиванием своего обработчика:
Код
jQuery(document).ready(function($) {
  $( '#jshop_attr_id1' ).removeAttr('onchange').unbind('change'); // Отмена имеющихся обработчиков события onchange
$( '#jshop_attr_id1' ).on('change', function() {
if ($(this).val() == 1){
$('.productfull #product-buy').show();
}else{
$('.productfull #product-buy').hide();
}
});
});
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Спасибо, я предполагал, подобное... Но во-первых, это функционал JoomShopping (я про обработчик), не удалять же его. Во-вторых, как решить чтобы была возможность скрыть кнопку "Купить", этот вопрос остался.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
c джумшопингом не знаком. для начала неплохо бы найти эту функцию setAttrValue('1', this.value); и посмотреть что там в ней написано.
Насчет удаления - а почему нет? или эта функция что-то важное делает там? к тому же, удалять из файла ее не нужно, просто отмените конкретно для этого селекта - в пред. посте написал как.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Я и имел ввиду отключить - нельзя вот вся функция в файле functions.js
Код
function setAttrValue(id, value){
    attr_value[id] = value;
    reloadAttribSelectAndPrice(id);
    reloadAttribImg(id, value);
}

Важна для смены цены товара и вывода изображения опции атрибута в зависимости от выбранной опции атрибута в селекте
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Наверное придется мутить что-то с количеством товара в опции атрибута... Пока не вижу другого решения. Буду пробовать.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
Пока не вижу другого решения. Буду пробовать.
Разобрался. Та функция из ЖШ сносит начисто селект и создает заново. Поэтому обработчик отваливается. Надо вешать обработчик на обертку, которая не удаляется - вот так:
Код
jQuery(document).ready(function($) {
    $( '#block_attr_sel_1' ).on('change', '#jshop_attr_id1', function() {
        if ($(this).val() == 1){
            $('.productfull #product-buy').show();
        }else{
            $('.productfull #product-buy').hide();
        }
    });
});
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Спасибо огромное! Заработало  *DRINK*. Еще раз спасибо за помощь... Если нужна будет моя, обращайтесь  ;)
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
На здоровье )
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться