Новости Joomla

Вышел плагин социальных кнопок для Joomla - JL Like 5.1.0

Вышел плагин социальных кнопок для Joomla - JL Like 5.1.0

Вышел плагин социальных кнопок для Joomla - JL Like 5.1.0.JL Like — современный плагин для Joomla, который добавляет стильные кнопки "Поделиться" и счетчики лайков популярных соцсетей. Не использует внешние скрипты, что обеспечивает максимальную скорость и безопасность.👩‍💻 v.5.1.0. Что нового?Виджет предварительного просмотра- Добавлен интерактивный предпросмотр социальных кнопок в админ панели- Живое обновление настроек в реальном времени- Переключение между мобильным и десктопным видомУлучшенная мобильная поддержка- Оптимизированные размеры кнопок для мобильных устройств- Адаптивные стили для лучшего отображения на смартфонах- Touch-friendly интерфейсСовременная архитектура- Внедрена система Web Assets для Joomla 4/5- Оптимизированная загрузка ресурсов с атрибутом defer- Улучшенная производительностьТехнические улучшения- Добавлен новый метод getBaseUri() для лучшей обработки URL- Обновлена поддержка JoomShopping и ZOO компонентов- Улучшена совместимость с Joomla 5.xСкачать релиз с GitHubСтраница расширения@joomlafeed#расширения

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

При отображении форм компонента в админке раньше разработчикам нужно было описывать скрытые поля в лейаутах. И выглядело это так:

<?php // Это файл в /layouts/components/com_component/your_layout.php ?> <input type="hidden" name="task" value=""> <input type="hidden" name="return" value="<?php echo $input->getBase64('return'); ?>"> <input type="hidden" name="forcedLanguage" value="<?php echo $input->get('forcedLanguage', '', 'cmd'); ?>"> <?php echo HTMLHelper::_('form.token'); ?>

Начиная с Joomla 5.3 добавлен новый способ добавления таких полей (их называют control fields) - программно. И теперь это можно сделать просто в Controller / View.

<?php // В Controller/View добавляем поля $this->form ->addControlField('task', '') ->addControlField('return', $input->getBase64('return', '')) ->addControlField('forcedLanguage', $forcedLanguage);

А в layout'е просто используем метод

renderControlFields()

<?php // В layout формы echo $this->form->renderControlFields();

Многие компоненты ядра уже используют этот подход. Соответствующий PR был принят в Joomla 5.3 осенью 2024г.

Смотреть Pull Request

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

Новая итерация компонента продолжает развиваться, ведь с v.4.x компонент был переписан практически с нуля.

v.4.1.0. Что нового?

Редактирование метаданных изображений. Теперь метаданные можно не только читать, но и напрямую редактировать и записывать обратно в изображение JPG. Поддерживаются данные EXIF ​​и IPTC.

Полная совместимость с Joomla! 4.x, 5.x и 6.x. Компонент почистили от устаревших методов в коде.

Заметно ускорили загрузку больших галерей. Списки в админке, особенно для очень больших галерей ( >30 000 изображений), теперь загружаются значительно быстрее.

Несколько сеток lightGallery на одной странице. Будь то плагины контента или модули изображений: теперь вы можете отображать несколько галерей или категорий на одной странице без каких-либо ограничений.

Множество мелких исправлений ошибок и оптимизаций.

Сайт проекта

GitHub расширения

Скачать

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

tora312

  • Захожу иногда
  • 110
  • 2 / 2
Добрый день. Прошу помощи, тапки прошу не кидать, вопрос наверняка простой, я туповат, знаю. Просто помогите, коли можете.))) Спасиб.

Задача: сделать вывод новостей из заданных в админке категорий, сортировка от самых ранних к более поздним по умолчанию.

PHP

Код
// Принимаем переменные из админки - тут в массиве категории
$categs = $params->get('parent', array());
// Чистим ответ от скрипта
$id_parent = preg_replace('/[^0-9]/','', $_GET['id_parent']);

foreach ($categs as $categ)
{
// тут тупплю совсем, берёт последнюю выбранную категорию из массива
}

$db =& JFactory::getDbo();

// url к категории
$db->setQuery('SELECT path FROM #__categories WHERE id=\''.$categ.'\'');
$list = $db->loadObjectList();

foreach($list as $comp)
{
$path = $comp->path;
}

function expl_date ($date)
{
$date = explode(' ', $date); // В БД дата представлена в корявом виде. Сначала делим через пробел
$date = explode('-', $date[0]); // Потом делим через -
return $date = $date[2].'.'.$date[1].'.'.$date[0]; // Выставляем в привычном нам формате
}

function intro_text ($text)
{
// Уберём теги и оставим не более 175 символов
$text = strip_tags($text);
$text = trim ($text); // Удаляет из начала и конца оставшийся мусор
$text = mb_substr($text, 0, 175).'...';
return $text;
}

$query = 'SELECT id, title, alias, introtext, created FROM #__content WHERE catid=\''.$categ.'\' AND state=\'1\'';

// Рабочая часть

if($_GET['ajax'] == 'right') // Если придёт сообщение от js, что пользователь нажал вправо
{
$db->setQuery($query.'AND id<\''.$id_parent.'\' ORDER BY id DESC LIMIT 1');
$list = $db->loadObjectList();
foreach($list as $comp)
{
$id = $comp->id;
$date_aj = expl_date ($comp->created);
$title = $comp->title;
$alias = $comp->alias;
$introtext = intro_text ($comp->introtext);
preg_match_all('/<img[^>]*?src=\"(.*)\"/iU', $comp->introtext, $images); // Картинка
$trigger = 'da'; // Этот триггер нужен, чтобы когда дойдём до конца статей, начали сначала. Короче, всё по кругу.
}
if($trigger != 'da')
{
$db->setQuery($query.'ORDER BY id DESC LIMIT 1');
$list = $db->loadObjectList();
foreach($list as $comp)
{
$id = $comp->id;
$date_aj = expl_date ($comp->created);
$title = $comp->title;
$alias = $comp->alias;
$introtext = intro_text ($comp->introtext);
preg_match_all('/<img[^>]*?src=\"(.*)\"/iU', $comp->introtext, $images);
}
}
}
elseif($_GET['ajax'] == 'left') // Если придёт сообщение от js, что пользователь нажал влево
{
$db->setQuery($query.' AND id>\''.$id_parent.'\'ORDER BY id LIMIT 1');
$list = $db->loadObjectList();
foreach($list as $comp)
{
$id = $comp->id;
$date_aj = expl_date ($comp->created);
$title = $comp->title;
$alias = $comp->alias;
$introtext = intro_text ($comp->introtext);
preg_match_all('/<img[^>]*?src=\"(.*)\"/iU', $comp->introtext, $images); // Картинка
$trigger = 'da'; // Этот триггер нужен, чтобы когда дойдём до конца статей, начали сначала. Короче, всё по кругу.
}
if($trigger != 'da')
{
$db->setQuery($query.'ORDER BY id LIMIT 1'); // Открываем первый по списку материал
$list = $db->loadObjectList();
foreach($list as $comp)
{
$id = $comp->id;
$date_aj = expl_date ($comp->created);
$title = $comp->title;
$alias = $comp->alias;
$introtext = intro_text ($comp->introtext);
preg_match_all('/<img[^>]*?src=\"(.*)\"/iU', $comp->introtext, $images);
}
}
}
else // Если страница просто загружается впервые
{
$db->setQuery($query.'ORDER BY id LIMIT 1'); // Открываем первый по списку материал
$list = $db->loadObjectList();
foreach($list as $comp)
{
$id = $comp->id;
$date_aj = expl_date ($comp->created);
$title = $comp->title;
$alias = $comp->alias;
$introtext = intro_text ($comp->introtext);
preg_match_all('/<img[^>]*?src=\"(.*)\"/iU', $comp->introtext, $images); // Картинка
}
}

Нормально работает, НО на одну категорию. Помогите... если сможете, как сделать, чтобы работало на любое количество ЗАДАННЫХ ПОЛЬЗОВАТЕЛЕМ В parent категорий. Устал, моск ничё не видит уже. Может вообще всё коряво.((( Может проще можно.(((
« Последнее редактирование: 04.11.2015, 12:05:58 от tora312 »
*

tora312

  • Захожу иногда
  • 110
  • 2 / 2
Код
$query = 'SELECT id, title, alias, introtext, created FROM #__content WHERE catid=\''.$categ.'\' AND state=\'1\'';
- вот тут выборка по категории $categ - а нужно, чтобы не одна категория была, а несколько. Не идёт чёт.
*

tora312

  • Захожу иногда
  • 110
  • 2 / 2
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
WHERE catid IN (10, 12, 13)
*

tora312

  • Захожу иногда
  • 110
  • 2 / 2
$categs = $params->get('parent', array()); - берём из админки Joomla перечень категорий, которые использовать для вывода. Тут пользователь задает желаемый диапазон.

из этой таблицы __content нужно взять информацию по нескольким строкам сразу, данные из столбцов `id`, `title`, `alias`, `introtext`, `created`, `catid`, `ordering` одним запросом.) но не переменные - а получить массивы... или как это сделать я не пойму, чтобы потом при формировании страницы вывести на странице запрошенную информацию, которая вот задаётся пользователем в $categs.

Например... отсортируем по id для $categs = [12, 2]
Потом надо взять первые например 4 статьи (строки) и получить из них данные

`id`! `title`! `alias`! `introtext`! `created`1 `catid`    !    `ordering`
1 !      имя1 ! алиас1 ! текст1 !        дата 1 ! категория 12   ! порядок 2
2 !      имя2 ! алиас2 ! текст2 !        дата 2 ! категория 2     ! порядок 3
3 !      имя3 ! алиас3 ! текст3 !        дата 3 ! категория 2     ! порядок 1
4 !      имя4 ! алиас4 ! текст4 !        дата 4 ! категория 12   ! порядок 4

Чтобы потом можно вывести например echo $title[1]; echo $catid[4];

Выведется имя2 категория 12

Дико туплю всегда в php и запросы в БД
« Последнее редактирование: 06.11.2015, 17:11:35 от tora312 »
*

fbr

  • Завсегдатай
  • 1670
  • 206 / 7
Не увидел разницы с функционалом стандартного модуля Материалы-новости ...

В любом случае, посмотрите как там сделано :
modules/mod_articles_news/helper.php
modules/mod_articles_news/mod_articles_news.xml
*

tora312

  • Захожу иногда
  • 110
  • 2 / 2
Разница - в дальнейшей обработке. Я Хорошо знаю СSS, но плохо php. оч плохо. потому хочу получить данные, чтобы потом самой обработать.
*

fbr

  • Завсегдатай
  • 1670
  • 206 / 7
Не понял логики.

Ставите стандартный модуль и обрабатываете его стилями как хотите!
Он выводит все указанные вами данные, и не нужно их добывать, тем более что php не очень

Или я что-то упустил?
*

tora312

  • Захожу иногда
  • 110
  • 2 / 2
Не всё так просто.) Мне не нравится его функционал. Я хочу сама поставить нужный отбор и обработку... чтобы, например, при порядке -1 была ссылка не на материал, а на категорию, где материал всегда будет вверху. Потом картинки... дело не только в стилях.))) Много там.))) Например, привязать Jquery, и сделать анимацию со сменяемыми блоками запросом гет - $_GET['ajax'] == 'left'.))) Я это умею, не умею сделать запрос к БД, чтобы получить данные, причём запрос с наименьшей нагрузкой на хост. Как-то так.) Не знаю как наиболее оптимально получить данные: `id`, `title`, `alias`, `introtext`, `created`, `catid`, `ordering для заданного диапазона категорий в порядке убывания или возрастания даты или id, скажем первые 5 или 10 статей (количество задаётся из админки). Мне для полного счастья вот этой малости не хватает.))) Ну... ещё кое-где вообще рандомную выборку сделать... это тож не знаю. Наверное, много хочу, да?))) Вот как сделать рандомную выборку? Наверняка, это оч. просто делается, печёнкой чую.))) Блина... проще слайдер на кверти сделать мне.))) Только с готовыми картинками, из БД я их тож не умею скопом получать.(((

Можно было б взять стандартный и перекроить... но мне моска не хватит.(((
*

fbr

  • Завсегдатай
  • 1670
  • 206 / 7

Можно было б взять стандартный и перекроить... но мне моска не хватит.(((
:)
Берете стандартный модуль,
открываете файл mod_articles_news.xml
переименовываете все mod_articles_news -> mod_mymodule
соответственно переименовываете файлы
mod_articles_news.php -> mod_mymodule.php
mod_articles_news.xml -> mod_mymodule.xml

и стандартно через менеджер расширений устанавливаете!

Все. Делайте с ним что хотите!
- добавляйте поля
- подключайте скрипты
- выводите картинки (на форуме обсуждалось)
....

Почти все данные которые вам нужны - уже есть)
*

tora312

  • Захожу иногда
  • 110
  • 2 / 2
Крайний вопрос... если есть... есть где описание... или разбор mod_articles_news.php и helper.php

понимаю, глуп вопрос, а вдруг? это намного мне всё облегчит.)))
*

fbr

  • Завсегдатай
  • 1670
  • 206 / 7
Почитайте здесь
и посмотрите остальные модули, они тоже на базе стандартного сделаны
Можно даже скачать и посмотреть как устроено
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отправка файлов через ajax в модуль Joomla

Автор hemicide

Ответов: 19
Просмотров: 1859
Последний ответ 11.04.2022, 08:44:33
от sivers
Избранное для меню и/или категорий

Автор platonische

Ответов: 3
Просмотров: 609
Последний ответ 19.10.2020, 12:34:12
от platonische
Переменная для вывода ссылки

Автор rubinded

Ответов: 3
Просмотров: 717
Последний ответ 03.03.2020, 08:28:13
от sivers
Модуль обратной связи. Как использовать свойство context в ajax запросе

Автор ushangi

Ответов: 0
Просмотров: 661
Последний ответ 15.02.2020, 22:08:12
от ushangi
Связать две таблицы с БД для дальнейшего вывода данных с них

Автор golinejj

Ответов: 16
Просмотров: 1066
Последний ответ 06.02.2020, 15:40:58
от golinejj