Новости 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

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Нижеприведенный код выводит последние посещенные страницы пользователем
Используем сессию
Спойлер
[свернуть]
Используем cookie
Спойлер
[свернуть]
Частный случай. Две первые и две последние ссылки
Спойлер
[свернуть]
*

mark1

  • Захожу иногда
  • 394
  • 39 / 2
благодарю, проверил навскидку - всё работает!
*

blondinka_x

  • Осваиваюсь на форуме
  • 14
  • 1 / 0
Нижеприведенный код выводит последние посещенные страницы пользователем
Код: php-brief
<?php
$session =& JFactory::getSession();
$mylink = $session->get("mylink", array());
if (count($mylink)>0){
echo '<ul id="lastlink">';
foreach ($mylink as $link){
echo '<li><a href="'.$link['url'].'" title="'.$link['title'].'">'.$link['title'].'</a></li>';
}
echo '</ul>';
}
$newlink['title'] = JFactory::getDocument()->getTitle();
$newlink['url'] = JFactory::getURI()->toString();
if (!in_array($newlink, $mylink)){
/* 5 - это колличество отображаемых последних ссылок */
if (count($mylink)==5) array_shift($mylink);
$mylink[] = $newlink;
$session->set("mylink",  $mylink);
}
?>
куда код прописывать?
*

mark1

  • Захожу иногда
  • 394
  • 39 / 2
куда код прописывать?
В модуль Custom HTML, например. При условии вставки его через плагин Sourcerer, или подобные.
*

blondinka_x

  • Осваиваюсь на форуме
  • 14
  • 1 / 0
Спасибо большое...но пробовала сделать чтобы эта навигация была  в строку (а не в столбик)...УДАЛИЛА ul, li...стало в строку, НО без пробелов..пытаюсь добавить пробелы-не отображается...как до идеала довести?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
blondinka_x вставьте в файл стилей CSS вашего сайта
Код: css
#lastlink li{
float:left;
margin-left:15px;
}
*

mark1

  • Захожу иногда
  • 394
  • 39 / 2
я , кстати поспешил с ответом.. Есть проблемка: у меня вывод получается вида
Код
<div>Link1Link2Link3</div>
Т.е. всё в одном диве, никаких списков с пунктами и классами и тайтлами..Всего этого нет.
Использую Joomla 2.5.7, код вставил через Sourcerer. Я где-то неправ?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Я не использую Sourcerer. Приведенный выше код работает там где обрабатывается php(в шаблонах сайта и вывода, модулях и плагинах...)
Добавил решение с использованием cookie(кук, печенья)
*

mark1

  • Захожу иногда
  • 394
  • 39 / 2
я , кстати поспешил с ответом.. Есть проблемка: у меня вывод получается вида
Код
<div>Link1Link2Link3</div>
Т.е. всё в одном диве, никаких списков с пунктами и классами и тайтлами..Всего этого нет.
Использую Joomla 2.5.7, код вставил через Sourcerer. Я где-то неправ?
Гм, был неправ, извиняюсь. А я же видел в коде список UL, и удивлялся.. Оказывается , Sourcerer вырезает форматирование по умолчанию.
А вот такой вариант с ключом 0 (оставляет форматирование) даёт отличный результат.
Код
{source 0}
<?php
код
?>
{/source}
*

akagloomy

  • Новичок
  • 3
  • 0 / 0
Всем доброго дня! Отличные решения! :D

Подскажите, а возможно ли вместо вывода title для браузера JFactory::getDocument()->getTitle(); вывести настоящий заголовок страницы, который в теги h1 заключается?
Спрашиваю в связи с тем, что используется автоматическая приписка названия сайта к каждому title, а еще есть заголовки для продвижения. В итоге список посещенных страниц выглядит некорректно.
Кому нужно видеть вместо заголовка "Проекторы", к примеру "Мультимедиа-проекторы, Аксессуары для проекторов, Продажа проекторов по доступным ценам" и т.п. 8) 
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Все возможно. Зависит только от вашей фантазии. От того где будете использовать код. В модуле, компоненте, плагине или шаблоне. Если вы изменяете заголовок, кто вам мешает сначала выполнить свой код а затем модифицировать заголовок
*

akagloomy

  • Новичок
  • 3
  • 0 / 0
А Вы можете подсказать конструкцию вызова типа JFactory::getDocument()->getTitle();
Рыл инет, пока не нашел ничего подходящего.
Если посмотреть, к примеру, как вызывает заголовок Блог категории - <?php echo $this->escape($this->item->title); ?>, то конструкция подобного типа не сработает.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
akagloomy задавайте вопрос более понятливее. Еще раз где и куда вы вставляете код. Кто вам мешает в переопределенном  макете блога категории вставить код
*

akagloomy

  • Новичок
  • 3
  • 0 / 0
Макет блога категории привел ради примера вызова заголовка.

У меня появилась такая задача. В сайдбаре нужен блок последних просмотренных страниц. Но отображаться он должен не везде, а только в определенных разделах.
Установил Sourcerer, создал HTML модуль, вывел его в сайдбар (использовал ваш второй пример для куки) и все без проблем заработало.
Но, как я писал ранее, заголовки выводились не совсем те, что нужны. Много лишнего из-за оптимизации сайта под поисковики.

Вот теперь интересуюсь, каким кодом можно вызвать заголовки, которые заключаются в теги h1!)
*

mark1

  • Захожу иногда
  • 394
  • 39 / 2
Федор, если по-русски: человек спрашивает, как получить список из N последних заголовков страниц, а не N последних заголовков меню. Ваш код дает второе: список заголовков меню. А человек задал в Page Display Options новые тайтлы для пунктов меню (SEO-тягомотина, чтоб её!), но хочет получать тайтлы статей, а не меню.
 Почитав ссылку http://blog.calebnance.com/joomla-2.5/how-to-get-a-joomla-2.5-article-title-in-template.html, осмелюсь посоветовать такое (у себя проверил, сработало при вставке в шаблоны вывода. Через модуль Custom HTML не пробовал):

Код: php-brief
<?php
$session = JFactory::getSession();
$mylink = $session->get("mylink", array());
if (count($mylink)>0){
echo '<ul id="lastlink">';
foreach ($mylink as $link){
echo '<li><a href="'.$link['url'].'" title="'.$link['title'].'">'.$link['title'].'</a></li>';
}
echo '</ul>';
}
    // Get option and view
    $option = JRequest::getVar('option');
    $view = JRequest::getVar('view');
    // Make sure it is a single article
    if ($option == 'com_content' && $view == 'article'):
    $id = JRequest::getInt('id');
    $article =& JTable::getInstance('content');
    $article->load($id);
    $article_title = $article->get('title');
    endif;


$newlink['title'] = $article_title;
$newlink['url'] = JFactory::getURI()->toString();
if (!in_array($newlink, $mylink)){
/* 5 - это колличество отображаемых последних ссылок */
if (count($mylink)==5) array_shift($mylink);
$mylink[] = $newlink;
$session->set("mylink",  $mylink);
}
?>
« Последнее редактирование: 29.07.2013, 16:56:05 от mark1 »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
опять же зачем делать лишние запросы. таким образом. или вы думаете вы Америку открыли
Вывод контента com_content материалов и категорий по id. Решение
Т.С. еще раз вы должны записывать данные в сессию, куки до обработки вашими SEO надстройками. Тогда не будет лишних запросов на примере приведенного выше
*

mark1

  • Захожу иногда
  • 394
  • 39 / 2
опять же зачем делать лишние запросы. таким образом. или вы думаете вы Америку открыли
Федор, не хотел ничем обидеть, и не планировал открыть Америку. Я на том уровне знаний, когда удалось, работает - уже хорошо. Я, например, не понимаю пока, как с вашей ссылкой откорректировать мой вариант, чтоб избавиться от лишних запросов. Не хватает знаний для разбора фразы : "записывать данные в сессию, куки до обработки вашими SEO надстройками". Видимо, в массив $_SESSION...
« Последнее редактирование: 29.07.2013, 18:50:00 от mark1 »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
опять вы не поняли меня. Есть плагин компонент или еще, что-то. Который из $title='a'; делает $title .='b'; //получаем ab
Так вот я предлагаю вставлять так
Код: php-brief
$title='a';
/*
код записывающий оригинальный title в сессию
далее код обрабатывает title
*/
$title .='b';
таким образом, не будет лишних запросов
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Нижеприведенный код выводит последние посещенные страницы пользователем
Используем сессию
Спойлер
[свернуть]
Используем cookie
Спойлер
[свернуть]
Частный случай. Две первые и две последние ссылки
Спойлер
[свернуть]


А можно как-то ограничить вывод этих последних посещенных страниц, чтобы они были только из конкретной категории, например, с id=35 ?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Передирект страницы панели управления

Автор aviyar

Ответов: 6
Просмотров: 12472
Последний ответ 09.04.2025, 11:53:35
от aviyar
Ошибка при сохранении страницы

Автор gaa001

Ответов: 3
Просмотров: 1888
Последний ответ 05.11.2019, 14:14:37
от gaa001
Код вывести название страницы

Автор qvaro

Ответов: 1
Просмотров: 1444
Последний ответ 24.11.2018, 18:33:07
от beliyadm
Смещаются элементы страницы при добавлении нового материала

Автор zare4nev_alexander

Ответов: 10
Просмотров: 1519
Последний ответ 01.06.2018, 06:58:16
от draff
Периодически пропадает модуль "HTML-код" с главной страницы (Joomla! 2.5.24)

Автор fave

Ответов: 1
Просмотров: 2263
Последний ответ 19.02.2018, 17:32:31
от arma