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

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
J! 3.4.8 переезд и проблемы
« : 17.02.2016, 23:23:16 »
J!3.4.8
10.1.11-MariaDB - MariaDB Server
CentOS 7 x64
12Гб ОЗУ
120 SSD
История такова.
Задумал хостер сменить винт. Ну ради бога... Слил бэкапы, сохранил конфиги(mysql, nginx, etc...), винт заменили, установили систему как была. Поставил тот же сервер БД.
Заливаю бэкапы, конфиги, всё завелось без проблем кроме сайта.... Главная страница не открывается у сайта(сам сайт работает, кроме главной) Долго-долго грузит... Загрузки я так и не дождался....
На главной 2 модуля RokSprocket и при их отключении главная открывается отлично.

А с ними MySQL грузит 4 ядра на 100% !

Дамп БД приличный, 1Гб, InnoDB таблицы.
И вот что я заметил, был в /var/lib/mysql файл ibdata1, который на старом сервере был 1.5Гб, а сейчас он ~120Мб. И это единственное отличие от предыдущего варианта сервера.
И что я только не пробовал с бд вытворять, ничего не добился....! Может я как-то неправильно импортирую дамп, или первоначальная настройка MySQL сервера не такая... Повторюсь, конфиги со старого сервера, который отличается только размером винта.

Есть идеи ?

PS. Импорт делаю так >mysql dbname < dump.sql, импорт идёт очень долго но без ошибок.
« Последнее редактирование: 18.02.2016, 19:09:40 от Wertos »
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: J! 3.4.8 переезд и проблемы
« Ответ #1 : 17.02.2016, 23:26:11 »
Включать дебаг надо для начала.
Проверить таблицы на целостность.
REPAIR вроде
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #2 : 17.02.2016, 23:30:28 »
Включать дебаг надо для начала.
Проверить таблицы на целостность.
REPAIR вроде
дебаг включен, а InnoDB не поддерживает REPAIN, OPTIMIZE и т.д.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #4 : 17.02.2016, 23:43:54 »
Хм. Да
Но http://stackoverflow.com/questions/226172/how-do-i-repair-an-innodb-table
Минутку, я сейчас попробую...
И вот ещё вопрос. У меня #__content = ~1Gb и у неё я добавлял FULLTEXT индек к полям title, introtext, fulltext. А это как я понял штука насосная... Может быть из за этого ?
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: J! 3.4.8 переезд и проблемы
« Ответ #5 : 17.02.2016, 23:44:33 »
Построение индекса? Да - может
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #6 : 18.02.2016, 00:05:35 »
Собственно всё заработало после того как я удалил fulltext индексы с j_content, потом сделал репайн по мануалу(на всякий случай).
Индексы сейчас пересоздал. Работает отлично, как и было.
Блин весь день убил на это дело... Про индексы забыл совсем :(
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
RE: J! 3.4.8 переезд и проблемы
« Ответ #7 : 18.02.2016, 12:55:33 »
Собственно решено было всё до очистки кеша, очистил... Главная не работает. Индексы удалил опять, оптимизацию сделал. Безрезультатно (
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #8 : 18.02.2016, 19:10:33 »
Висит на этом запросе из модуля roksprocket
Код: sql
SET timestamp=1455810781;
SELECT a.id, a.title, a.alias, a.introtext, a.`fulltext`, a.catid, a.state, a.access, a.created, a.created_by, a.created_by_alias, a.modified, a.featured, a.language, a.hits, a.publish_up, a.publish_down, a.images, a.urls, a.language, a.metakey, a.metadesc, a.metadata,c.title AS category_title, c.alias AS category_alias,ua.name AS author_name,vl.title AS access_title
FROM j_content as a
LEFT JOIN j_categories AS c ON c.id = a.catid
LEFT JOIN j_users AS ua ON ua.id = a.created_by
LEFT JOIN j_viewlevels AS vl ON a.access = vl.id
LEFT OUTER JOIN (select rsi.provider_id, rsi.order from j_roksprocket_items as rsi where module_id = 424) rsi on a.id = rsi.provider_id
WHERE ((a.access IN(1,1,2,3,6) AND (a.state != -2)) AND a.catid IN (151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203))
GROUP BY id
ORDER BY IF(ISNULL(rsi.order),1,0),rsi.order,a.created DESC LIMIT 120;
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: J! 3.4.8 переезд и проблемы
« Ответ #9 : 18.02.2016, 21:00:31 »
Удалите модуль, пересоздайте.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #10 : 18.02.2016, 21:49:02 »
Удалите модуль, пересоздайте.
Пробовал, тоже самое... :( Опять сегодня день убил безрезультатно...
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: J! 3.4.8 переезд и проблемы
« Ответ #11 : 18.02.2016, 22:28:53 »
Хм, SET timestamp? Похоже, они изначально уже знали об этом. А почему LIMIT 120? Что, если поставить меньше? Сразу скажу, что не знаю ничего об этих расширениях, пишу только то, что думаю об увиденном.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #12 : 18.02.2016, 22:42:19 »
Хм, SET timestamp? Похоже, они изначально уже знали об этом. А почему LIMIT 120? Что, если поставить меньше? Сразу скажу, что не знаю ничего об этих расширениях, пишу только то, что думаю об увиденном.
Если поставить меньше(10 например), то нормально работает !
Прикол в том, что отображаются только 40 ! Чтобы подгрузить ещё 40 нужно нажать кнопку, подгрузка на ajax(проверено) 120 это общее число подгружаемых материалов.
Дак вот я не пойму, если он уже выбрал 120, то зачем блин он AJAX запрос делает для подгрузки следующих 40, если они уже загружены !
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: J! 3.4.8 переезд и проблемы
« Ответ #13 : 18.02.2016, 22:43:16 »
Хм, SET timestamp? Похоже, они изначально уже знали об этом.
прикольные :) т.е. мало того, что запрос хз какой, так давайте его еще и из лога медленных запросов исключим чтобы хостер помучался над темой почему же SET timestamp вешает сервак :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: J! 3.4.8 переезд и проблемы
« Ответ #14 : 18.02.2016, 22:45:58 »
Погодите, а
Цитировать
SET timestamp=1455810781
меняет время выполнения запроса?

И кто разработчик?
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #15 : 18.02.2016, 22:47:04 »
прикольные :) т.е. мало того, что запрос хз какой, так давайте его еще и из лога медленных запросов исключим чтобы хостер помучался над темой почему же SET timestamp вешает сервак :)
Это далеко не весь запрос ! Я столько JOIN'ов оттуда выпилил... А вот это
Код
AND a.catid IN (151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203)
это уже моё, т.к. в фильтре материалов, мне нужны только эти категории...

Но смысл то в том, что даже с кривыми, как вы говорите, запросами, на предыдущем сервере(хотя они зеркальны) всё летало отлично !
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #16 : 18.02.2016, 22:47:34 »
Погодите, аменяет время выполнения запроса?

И кто разработчик?
Rocket Theme
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: J! 3.4.8 переезд и проблемы
« Ответ #17 : 18.02.2016, 22:58:25 »
мда, я был о них большего мнения
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: J! 3.4.8 переезд и проблемы
« Ответ #18 : 18.02.2016, 23:05:41 »
меняет время выполнения запроса?
ну я так понимаю это ради этого. хотя может я и ошибаюсь

P.S. там по сути наверное и решение указано я так понимаю - удалить SET timestamp
« Последнее редактирование: 18.02.2016, 23:09:44 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #19 : 18.02.2016, 23:16:44 »
SET timestamp в коде не могу никак найти (
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: J! 3.4.8 переезд и проблемы
« Ответ #20 : 18.02.2016, 23:36:32 »
покажите исходный текст запроса
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #21 : 18.02.2016, 23:38:08 »
Код: sql
LEFT OUTER JOIN (SELECT rsi.provider_id, rsi.ORDER FROM j_roksprocket_items AS rsi WHERE module_id = 424) rsi ON a.id = rsi.provider_id
Без этой строки работает нормально... Продолжаю тесты.
Запрос в отдельный файл засунут
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #22 : 18.02.2016, 23:40:04 »
покажите исходный текст запроса
Дык а там никак, он там в разных файлах, собирается по чуть-чуть... Вот часть его

Код: php
	protected function setBaseQuery()
{
$this->query->select('a.id, a.title, a.alias, a.introtext, a.`fulltext`, a.catid' . ', a.state, a.access, a.created, a.created_by, a.created_by_alias, a.modified, a.featured, a.language, a.hits' . ', a.publish_up, a.publish_down, a.images, a.urls, a.language, a.metakey, a.metadesc, a.metadata')->from('#__content as a');

$this->query->select('c.title AS category_title, c.alias AS category_alias');
$this->query->join('LEFT', '#__categories AS c ON c.id = a.catid');

$this->query->select('ua.name AS author_name');
$this->query->join('LEFT', '#__users AS ua ON ua.id = a.created_by');

// $this->query->select('um.name AS last_modified_by');
// $this->query->join('LEFT', '#__users AS um ON um.id = a.modified_by');

// $this->query->select('ROUND(v.rating_sum / v.rating_count, 0) AS rating, v.rating_count as rating_count');
// $this->query->join('LEFT', '#__content_rating AS v ON a.id = v.content_id');

$this->query->select('vl.title AS access_title');
$this->query->join('LEFT', '#__viewlevels AS vl ON a.access = vl.id');

// $this->query->select('l.title AS language_title');
// $this->query->join('LEFT', '#__languages AS l ON a.language = l.lang_code');
}
Закомментированные строки, это моё.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: J! 3.4.8 переезд и проблемы
« Ответ #23 : 18.02.2016, 23:51:04 »
Без этой строки работает нормально...
Вроде безобидный подзапрос. Что может быть в этой таблице j_roksprocket_items?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: J! 3.4.8 переезд и проблемы
« Ответ #24 : 18.02.2016, 23:54:00 »
ну так, чисто навскидку, если подзапрос отдельным запросом сначала сделать, а потом просто его результаты уже подставить в основной, что то поменяется? может там в принципе именно в нем затык, а не в основном запросе?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #25 : 18.02.2016, 23:54:09 »
Вроде безобидный подзапрос. Что может быть в этой таблице j_roksprocket_items?

Строк там столько-же, сколько и материалов... Короче там то, как должны сортироваться материалы.
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #26 : 18.02.2016, 23:58:29 »
В настройках включил автоматическую сортировку (дата - убывание) и раскоментировал строки. Запрос стал таким
Код: sql
SELECT a.id, a.title, a.alias, a.introtext, a.`fulltext`, a.catid, a.state, a.access, a.created, a.created_by, a.created_by_alias, a.modified, a.featured, a.language, a.hits, a.publish_up, a.publish_down, a.images, a.urls, a.language, a.metakey, a.metadesc, a.metadata,c.title AS category_title, c.alias AS category_alias,ua.name AS author_name,vl.title AS access_title FROM #__content as a LEFT JOIN #__categories AS c ON c.id = a.catid LEFT JOIN #__users AS ua ON ua.id = a.created_by LEFT JOIN #__viewlevels AS vl ON a.access = vl.id WHERE ((a.access IN(1,1,2,3,6) AND (a.state != -2)) AND a.catid IN (151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203)) GROUP BY id ORDER BY a.created DESC LIMIT 120

Всё начало работать.... ДО удаления кеша J!... Удалил и опять пздц :(
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #27 : 19.02.2016, 00:09:28 »
Где-то я промахнулся с тюнингом MySQL ((
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: J! 3.4.8 переезд и проблемы
« Ответ #28 : 19.02.2016, 00:17:08 »
Вот что я вижу:
-LIMIT 120 с учетом GROUP BY
-Длинный диапазон IN
-Множество JOIN
Но главный виновник, IMHO - п.1
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: J! 3.4.8 переезд и проблемы
« Ответ #29 : 19.02.2016, 00:26:22 »
Вот что я вижу:
-LIMIT 120 с учетом GROUP BY
-Длинный диапазон IN
-Множество JOIN
Но главный виновник, IMHO - п.1
Ну от IN длинного мне ну никак не избавиться....
GROUP BY id может удалить ? Он там просто строкой в конце
Код: php
$this->query->group('id');
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблемы с пагинацией, не выводит Вперед и Назад

Автор onniby

Ответов: 12
Просмотров: 1010
Последний ответ 04.05.2022, 15:29:22
от marksetter
Проблемы с Шорткодами (Shortcode Designer)

Автор polezniy

Ответов: 7
Просмотров: 1060
Последний ответ 20.10.2021, 16:17:56
от polezniy
Проблемы с пунктом меню типа - Метки/Список элементов

Автор ryocka

Ответов: 1
Просмотров: 964
Последний ответ 28.08.2020, 00:40:14
от Kon Dou
Проблемы с новым роутером

Автор d0ublezer0

Ответов: 1
Просмотров: 700
Последний ответ 21.08.2020, 10:27:34
от d0ublezer0
Проблемы с модулем Popular Articles

Автор LU5

Ответов: 0
Просмотров: 679
Последний ответ 28.01.2020, 21:48:18
от LU5