Новости Joomla

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

Новый способ добавления и рендера полей в 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.
// В Controller/View добавляем поля$this->form  ->addControlField('task', '')  ->addControlField('return', $input->getBase64('return', ''))  ->addControlField('forcedLanguage', $forcedLanguage);
А в layout'е просто используем метод
renderControlFields()
// В layout формыecho $this->form->renderControlFields();
Многие компоненты ядра уже используют этот подход. Соответствующий PR был принят в Joomla 5.3 осенью 2024г.Смотреть
Pull Request@joomlafeed#joomla #разработка #php

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

AlexGTS

  • Новичок
  • 5
  • 0 / 0
Вступление: любая статья на сайте представлена как основной текст (leader text) + текст вступления (intro text). Если открыть страницу со статьей, то отображается полный текст, если разместить новость или статью на главной, то отображается её краткое содержание (intro) оба поля можно редактировать из админки.
В mysql базе это поля introtext,fulltext из таблицы $prefix_content.

У меня такой вопрос, можно ли сделать, чтобы на главной публиковалась главная часть статьи (fulltext), а не сокращенная (introtext) ?

Мои личные догадки по данному вопросу: надо найти кусок кода (наверное в шаблоне), где обрабатывается массив с данными, полученными из базы, и выводится на печать. То есть, что-то вроде замены
print $row[introtext]
на
print $row[fulltext]

---
Надеюсь, что есть спецы, которые помогут мне разобраться с этим вопросом, Спасибо!
« Последнее редактирование: 14.02.2008, 19:15:23 от AlexGTS »
*

iT)ZevS(

  • Захожу иногда
  • 177
  • 31 / 2
все намного проще. заходите в mainmenu - главная. и справа ставите - полностью = 10 кратко = 0
*

AlexGTS

  • Новичок
  • 5
  • 0 / 0
Я тоже так думал, но полностью или кратко будет показан Short text, то есть полного текста я все равно не увижу
*

iT)ZevS(

  • Захожу иногда
  • 177
  • 31 / 2
согласен, я ошибся.
тогда копаем файлы
/components/com_content/content.php

на предмет строк
Код
if ( $params->get( 'introtext'  ) ) {
$row->text = $row->introtext. ( $params->get( 'intro_only' ) ? '' : chr(13) . chr(13) . $row->fulltext . chr(13) . chr(13) . $row->notetext);
} else {
$row->text = $row->fulltext;
}

и файл /components/com_content/content.html.php
на предмет
Код
echo ampReplace( $row->text );
*

AlexGTS

  • Новичок
  • 5
  • 0 / 0
большое спасибо, буду тестировать! =)
*

AlexGTS

  • Новичок
  • 5
  • 0 / 0
Резюме по теме:
Редактируем content.php (добавляем 1 строку)
Код
// show/hides the intro text
if ( $params->get( 'introtext'  ) ) {
$row->text = $row->introtext. ( $params->get( 'intro_only' ) ? '' : chr(13) . chr(13) . $row->fulltext);
// Эту строку добавили:
$row->text = $row->fulltext;
} else {
$row->text = $row->fulltext;
}
Однако переменная $row->fulltext пустая по умолчанию, надо найти все sql-запросы в этом же файле вида
Код
$query = "SELECT a.id, a.title, a.title_alias, a.introtext, ......
и заменить на
Код
$query = "SELECT a.id, a.title, a.title_alias, a.introtext, a.fulltext, ......

Далее вопрос уже не по этой теме, но из нее вытекающий: На главной после текста появляется ссылка  Read more... , ее можно как-нибудь убрать?
--Спасибо
*

iT)ZevS(

  • Захожу иногда
  • 177
  • 31 / 2
меню - mainmenu - главная. справа Подробнее... = скрыть
*

AlexGTS

  • Новичок
  • 5
  • 0 / 0
Спасибо большое! А то я чайник совсем, пока носом не ткнешь - не найду=(
*

iT)ZevS(

  • Захожу иногда
  • 177
  • 31 / 2
ну скажем так что чайники com_content сразу не хакнут
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не выводится Google Adsense на главной странице сайта

Автор lodyr

Ответов: 0
Просмотров: 4123
Последний ответ 11.11.2014, 17:29:58
от lodyr
Как автоматом вставить в контент определенный текст?

Автор wcas

Ответов: 0
Просмотров: 5347
Последний ответ 09.08.2013, 19:37:46
от wcas
Настройка главной страницы

Автор Alexey2013

Ответов: 6
Просмотров: 3435
Последний ответ 15.04.2013, 14:43:36
от Alexey2013
Не могу разобраться с редактированием главной страницы

Автор P!T

Ответов: 1
Просмотров: 3155
Последний ответ 15.04.2013, 10:51:54
от Werber
Пропал текст на сайте

Автор Жанна Дзотова

Ответов: 2
Просмотров: 3588
Последний ответ 15.04.2013, 10:11:32
от Werber