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

creative3d

  • Захожу иногда
  • 189
  • 6 / 0
Этот код работал на Joomla 3, на Joomla 5 не работает. Кто-нибудь знает можно ли исправить, чтобы работал?
Код
<script type="text/javascript">//<![CDATA[
(function($)
{
$(document).ready(function() {
var ans = ['4', '7', '6', '3', '2', '1', '2', '1', '2', '1', '1', '3', '2', '3', '2', '1', '3', '3', '1', '2', '8', '4', '1', '5', '2', '6', '3', '7', '3', '2', '5', '6', '1', '3', '4', '4', '2', '1', '2', '3', '1', '1', '1', '1', '1', '1', '1', 'reduction', '1', '1', '1', '1', '1', '2', '4', '4', '1', '3', '2', '4', '1'];
$('#test').on('submit', function(e) {
var thisform = $(this);
    var questionCount = thisform.find('.answer').length;
    var countRight = 0;
    var resultText = '';
    var inputClass = '';
    var percent = 0;
    var resultTextClass = '';
    $('.result').removeClass('good bad');
thisform.find('.answer').each(function() {
      $(this).removeClass('good bad');
      var answerid = $(this).attr('data-id');
      var answerval = $(this).val();
      var rightAnswer = ans[answerid];

      if (answerval == rightAnswer) {
        countRight = ++countRight;
        inputClass = 'good';
      } else {
  inputClass = 'bad';
if (answerid == 41) {
        if (answerval == ans[60]) {
countRight = ++countRight;
inputClass = 'good';
}
}
      }
      $(this).addClass(inputClass);
    });
percent = Math.floor((countRight / questionCount) * 100);
    if (percent > 24) {
      resultTextClass = 'good';
    } else {
      resultTextClass = 'bad';
    }
resultText = 'Вы набрали ' + countRight + ' из ' + questionCount + '';
    $('.result .result_text').text(resultText);
    $('.result').addClass(resultTextClass);
    return false;
  });
});
})(jQuery);
</script>
<form name="test" action="#" method="post" id="test" class="tcheck">

здесь задания и поля ввода, удалены.

<p>Ответ: <input class="answer inputbox" name="38" type="text" data-id="59" size="3" maxlength="1">.</p>
<p class="tac"><input type="submit" class="btn" value="Проверить тест" /></p>
<div class="result tac">
Ваш результат: <span class="result_text">пока 0</span>.
</div>
</form>
« Последнее редактирование: 28.01.2024, 19:52:55 от creative3d »
*

fsv

  • Живу я здесь
  • 2781
  • 410 / 2
Вопрос по js задается со ссылкой на страницу со скриптом в сети. Иначе часто ни о чем.
Погадаю: ждем сабмит формы с ID egetest, а у формы ID test.
Веб-разработка: заказ. Только новая разработка.
*

creative3d

  • Захожу иногда
  • 189
  • 6 / 0
Нет, изменения связанные J3 -> J5 влияют. Возможно, Jquery - в этом направлении есть мысли?
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Возможно стоит подгрузить jQuery.
Смотрите на ошибки в консоли браузера
*

creative3d

  • Захожу иногда
  • 189
  • 6 / 0
Возможно стоит подгрузить jQuery.
Объясните мне, Joomla 5 избавляется же от jQuery? Это мне надо плагин какой-нибудь устанавливать? (не очень тогда охота) Если нет, то можно ли в этот мой код его подгрузить как-нибудь? Как именно? В коде плохо соображаю.
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Можно просто проверить в шаблоне наличия:


Код
HTMLHelper::_('jquery.framework');
*

creative3d

  • Захожу иногда
  • 189
  • 6 / 0
Код
<script src="/media/vendor/jquery/js/jquery.min.js?3.7.1"></script>
<script src="/media/legacy/js/jquery-noconflict.min.js?504da4"></script>
У меня вот такое в коде подключается. Этого же достаточно? На нажатию кнопки перезагружается страница.
*

fsv

  • Живу я здесь
  • 2781
  • 410 / 2
Этого же достаточно?
Может да, может нет. Зависит от подключения.
Вы, наверное, поговорить, а не решить? Ни страницы, ни текста ошибок из консоли.

На нажатию кнопки перезагружается страница.
e.preventDefault();
после
$('#test').on('submit', function(e) {
Веб-разработка: заказ. Только новая разработка.
*

creative3d

  • Захожу иногда
  • 189
  • 6 / 0
e.preventDefault();
Точно так же перезагружается.
Вы, наверное, поговорить, а не решить?
Да, одиноко чет...
Ни страницы, ни текста ошибок из консоли.
Ну, как смогу предоставить страницу в открытый доступ, тогда сообщу.
*

creative3d

  • Захожу иногда
  • 189
  • 6 / 0
Ну, ok, guys, вот тестовая ссылка
Спойлер
[свернуть]
Дизайн там сломался, кнопку искать над текстом:
"Ваш результат: пока"
« Последнее редактирование: 30.01.2024, 07:53:12 от creative3d »
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Код
<script src="/media/vendor/jquery/js/jquery.min.js?3.7.1"></script>
<script src="/media/legacy/js/jquery-noconflict.min.js?504da4"></script>
У меня вот такое в коде подключается. Этого же достаточно? На нажатию кнопки перезагружается страница.
У вас ошибка test:102 Uncaught ReferenceError: jQuery is not defined
Ошибка, потому что ваше подключение jquery находится после вызываемого скрипта.
Или перемещайте скрипт ниже или выносите в head jquery
*

creative3d

  • Захожу иногда
  • 189
  • 6 / 0
Ок, вас понял, но не могу найти кто его туда вниз закинул. Потом позже поэкспериментирую.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сделал шаблон для Joomla 5

Автор fbr

Ответов: 8
Просмотров: 1165
Последний ответ 11.07.2025, 18:00:52
от cronk
Получение объектов из материала(статьи) по ее id

Автор muzzy76

Ответов: 2
Просмотров: 271
Последний ответ 05.07.2025, 10:33:26
от muzzy76
Joomla 5 и MySQL 5.7

Автор n_nickon

Ответов: 7
Просмотров: 890
Последний ответ 05.07.2025, 07:56:15
от b2z
Дубли Joomla 5

Автор bormir

Ответов: 15
Просмотров: 1826
Последний ответ 25.05.2025, 09:16:03
от bormir
Сломался сайт Joomla 4 после обновления одного модуля

Автор androv77

Ответов: 4
Просмотров: 767
Последний ответ 17.05.2025, 06:12:07
от azm1n