Новости Joomla

Обновление пакета плагинов JL Like 5.0

Обновление пакета плагинов  JL Like 5.0

Обновление пакета плагинов JL Like 5.0.0Команда JoomLine рада представить долгожданное обновление плагина социальных кнопок JL Like — версию 5.0.0! В этом релизе мы сделали акцент на совместимости с последними версиями Joomla, улучшении производительности и расширении функционала.👩‍💻 Что нового в JL Like 5.0.0?- Полная совместимость с Joomla 5 — теперь плагин работает на всех актуальных версиях Joomla, включая Joomla 5.- Рефакторинг и оптимизация кода — проведена масштабная чистка и обновление внутренних классов для повышения стабильности и скорости работы.- Удаление устаревших зависимостей — полностью отказались от использования jQuery, что ускорило загрузку страниц и повысило безопасность.- Обновление CSS и удаление неиспользуемых стилей — интерфейс стал еще легче и современнее.- Удалена поддержка устаревших виджетов — например, функциональность твиттер-виджета вынесена из плагина.- Поддержка twitter:card — улучшена интеграция с социальными сетями для красивого отображения ссылок.- Гибкая настройка счетчиков лайков — теперь можно включать и отключать рандомизацию количества лайков.- Улучшено подключение скриптов — переход на WebAssetManager для более корректной работы с ресурсами.- Обновлены языковые переменныеРасширения всё ещё наследуют старую архитектуру плагинов Joomla 3, но были протестированы на Joomla 5.3.Новость на сайте JoomlineСтраница расширенияGitHub расширения@joomlafeed#расширения

Совет по Joomla: $db->getQuery(true) стал устаревшим

Совет по Joomla: $db->getQuery(true) стал устаревшим

👩‍💻 Совет по Joomla: $db->getQuery(true) стал устаревшим.Раньше при создании запросов в базу данных мы всегда получали объект запроса с помощью метода

getQuery(). Если передавался параметр
$new =
true, то получали новый запрос. Если без - последний.

use Joomla\CMS\Factory;$db = Factory::getContainer()->get('DatabaseDriver');$query = $db->getQuery(new: true);// и строим запрос
Под капот Joomla 4 вошёл Joomla Framework (PHP фреймворк а-ля Laravel, Yii и т.д.), а для Joomla 5 он обновился - версия 3.4.1 вышла 6 октября 2023г. В методе фреймворка есть примечание о том, что параметр
$new, который передавался в метод
getQuery() помечен как устаревший и будет удалён в версии фреймворка 4.0.
The parameter $new is deprecated and will be removed in 4.0, use %s::createQuery() instead.В Joomla 4 версия Joomla Framework была 2.x., в Joomla 5 - 3.x. Поэтому есть предположение, что с выходом Joomla 6 обновится и версия фреймворка - станет 4.0. Поэтому для получения объекта для новых запросов следует использовать метод
createQuery(). Он уже представлен в ядре и широко используется. При этом метод
getQuery() останется, но, скорее всего, будет выполнять функцию только геттера - получения текущего запроса.
@joomlafeed#joomla #php #разработка

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

Wild Tiger

  • Захожу иногда
  • 179
  • 17 / 1
  • Сайты только на Joostina
Для одного материала надо сделать так, чтобы начало статьи (т.е. то, что до тега hr id=system-readmore) было видно всем, а то, что после - только зарегистрированным (чтобы гостю при открытии статьи (не раздела!) показывался только анонс, а зарегистрированному - полностью).
Это возможно?

Joomla 1.5.20 Stable. Материал с доступом "Для зарегистрированных", в материале тег hr id="system-readmore" есть. Модуль и меню на этот материал с доступом "для всех".
Результат: гости не видят даже вводной части материала. Проблема в том, что гостю такая статья вообще не отдается.
« Последнее редактирование: 15.11.2011, 01:53:21 от Aleks_El_Dia »
сушитель лампочек
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Элементарно, Ватсон
Выставляем везде в настройках контента и меню опцию "показывать вступительный текст"
Открываем components\com_content\models\article.php, находим примерно с 586 строки "// Are we showing introtext with the article" и заменяем на
Код: php
// Are we showing introtext with the article
$user =& JFactory::getUser();
if (!$params->get('show_intro') && !empty($this->_article->fulltext)) {
$this->_article->text = $this->_article->fulltext;
} else {
if($user->id) {
$this->_article->text = $this->_article->introtext . chr(13).chr(13). $this->_article->fulltext;
} else {
$this->_article->text = $this->_article->introtext. '<h3>please login first</h3>';
}
}

Теперь в режиме просмотра полной статьи если я не авторизован будет показываться только introtext и сообщение с просьбой авторизоваться
« Последнее редактирование: 15.11.2011, 01:50:32 от Aleks_El_Dia »
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wild Tiger

  • Захожу иногда
  • 179
  • 17 / 1
  • Сайты только на Joostina
ура, такая реализация работает! (что тогда выводит  \templates\ВашШаблон\html\com_content\article\default.php ?)

P.S. А как вместо сообщения (в примере в тегах <h3>) вывести текст из LOGIN_DESCRIPTION языкового файла?
замена $this->_article->text = $this->_article->introtext. '<h3>please login first</h3>';
на $this->_article->text = $this->_article->introtext. '<p>'.$LOGIN_DESCRIPTION;
не прокатила :)
сушитель лампочек
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
на $this->_article->text = $this->_article->introtext. '<p>'.$LOGIN_DESCRIPTION;
Ну что вы как маленькие :)
Код: php
$this->_article->text = $this->_article->introtext. JText::_("LOGIN_DESCRIPTION");
И вписать LOGIN_DESCRIPTION в файл языка контента (на мой взгляд ради одной фразы подключать весь ини com_user не очень хорошо
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wild Tiger

  • Захожу иногда
  • 179
  • 17 / 1
  • Сайты только на Joostina
Рано еще добавлять. Обнаружилась одна особенность: для незарегистрированных во всех статьях после текста материала теперь выводится приглашение зарегистрироваться (даже там, где кроме анонса ничего дальше нет, т.е. короткая статья "для всех"). Слишком назойливо получается.
Т.е. не хватает еще проверки "Если анонс есть, а продолжения нет, то приглашение не выводить".

(Каюсь, сам виноват, в описании исходной задачи не предвидел этого).
сушитель лампочек
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Т.е. не хватает еще проверки "Если анонс есть, а продолжения нет, то приглашение не выводить".
Код: php
$user =& JFactory::getUser();
if (!$params->get('show_intro') && !empty($this->_article->fulltext)) {
$this->_article->text = $this->_article->fulltext;
} else {
if($user->id) {
$this->_article->text = $this->_article->introtext . chr(13).chr(13). $this->_article->fulltext;
} else if(!$user->id && $this->_article->fulltext) {
$this->_article->text = $this->_article->introtext. JText::_("LOGIN_DESCRIPTION");
} else {
$this->_article->text = $this->_article->introtext;
}
}

Оно?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wild Tiger

  • Захожу иногда
  • 179
  • 17 / 1
  • Сайты только на Joostina
оно. Работает как и задумано.
Вот что значит настоящая техподдержка :)
сушитель лампочек
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль только на одной странице

Автор jackmc

Ответов: 17
Просмотров: 51585
Последний ответ 10.11.2009, 18:46:14
от ZHart
Как показать модуль только не зарегистрированным пользователям?

Автор jfsv

Ответов: 1
Просмотров: 19134
Последний ответ 13.11.2008, 14:18:13
от beliyadm