Новости Joomla

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

Google Summer of Code (GSoC) - программа компании Google, которая позволяет участникам программы под руководством опытных наставников писать код для организаций, занимающейся открытым исходным кодом. Joomla принимает участие в этой программе не в первый раз и в 2026 году снова включена в список GSoC. Для программы утверждается список "идей", воплотить которые должны участники под руководством наставников.

Проекты Joomla в рамках программы GSoC 2026.

Проект I: Ajax-бэкенд.
- Действия в административной панели без необходимости обновлять страницу.
- Автоматическое сохранение содержимого во время редактирования.
- Расширенный фильтр - поиск и фильтрация по пользовательским полям.

Проект II: Автоматизация рабочих процессов (workflow + task scheduler).
Joomla имеет функцию процессов и планировщика задач. Теперь эти две функции следует объединить, чтобы пользователь мог настраивать назначенные рабочие процессы таким образом, чтобы переходы выполнялись автоматически, с возможностью точного определения времени. Должна быть возможность создавать циклы или прямые запланированные рабочие процессы. Предполагается, что интерфейс должен учитывать хороший пользовательский опыт, удобство использования и современные стандарты доступности. Ожидается, что будет добавлен интерфейс для управления процессами и их расписанием на страницах категорий и материалов. Так же ожидается, что сторонние компоненты также смогут воспользоваться этим функционалом.

Проект III: Мультикатегории.
В настоящее время Joomla! не позволяет назначать один элемент нескольким категориям. Хотя система тегов часто используется в качестве замены, существует острая потребность в нативной поддержке нескольких категорий, чтобы привести Joomla! в соответствие с другими современными системами управления контентом.

Проект IV: Обучение с подкреплением на основе отзывов переводчиков.
Joomla собирается использовать автоматический перевод документации. В каждом языке есть свои специфические слова, характерные для Joomla. Предполагается обучать языковые модели, используя обратную связь от переводчиков, чтобы постоянно улучшать качество переводов и учитывать специфические языковые особенности Joomla.

Принять участие GSoC 2026
Подробнее о проектах Joomla GSoC 2026
Чат GSoC в Mattermost (международное сообщество Joomla)

Вышли релизы Joomla 6.0.3 и Joomla 5.4.3

Релиз Joomla 6.0.3 и Joomla 5.4.3

Проект Joomla рад сообщить о выпуске Joomla 6.0.3 и Joomla 5.4.3. Это релиз исправлений ошибок и улучшений для серии Joomla 6.0 и Joomla 5.4.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

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

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Здравствуйте!
Как при копировании информации из одного <select id="one"> ....</select> в новый <select id="two">...</select> создать в новом селекте  поле (chosen) для быстрой выборки из селекта?

Функция копирования:
Код
function CloneSelect(){
var first = document.getElementById('SelectOne');
var options = first.innerHTML;

var second = document.getElementById('SelectTwo');
var options2 = second.innerHTML + options;
second.innerHTML = options2;
}
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Здравствуйте!

Ну :
1.
Что у Вас тут ?
Код
var first = document.getElementById('SelectOne');
var options = first.innerHTML;
// >>>
console.log( options );
// >>>

100% - Эйнштейном клянусь - что var first - не совсем то что нужно ! )


*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Есть возможность посмотреть - то где Вы решаете задачи  ?
Тогда все просто ! - а так - то это как этот фильм

Дальше продолжим !
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Как при копировании информации из одного <select id="one"> ....</select> в новый <select id="two">...</select> создать в новом селекте  поле (chosen) для быстрой выборки из селекта?
Из <select id="SelectOne"> ....</select> в новый <select id="SelectTwo">...</select>
Код
function CloneSelect(){
var first = document.getElementById('SelectOne');
var options = first.innerHTML;

var second = document.getElementById('SelectTwo');
var options2 = second.innerHTML + options;
second.innerHTML = options2;
}
Из <select id="SelectOne"> ....</select> в новый <select id="SelectTwo">...</select>
Код
function CloneSelect(){
var first = document.getElementById('SelectOne');
var options = first.innerHTML;

var second = document.getElementById('SelectTwo');
var options2 = second.innerHTML + options;
second.innerHTML = options2;
}
Из <select id="SelectOne"> ....</select> в новый <select id="SelectTwo">...</select>
Код
function CloneSelect(){
var first = document.getElementById('SelectOne');
var options = first.innerHTML;

var second = document.getElementById('SelectTwo');
var options2 = second.innerHTML + options;
second.innerHTML = options2;
}
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Что-то троекратная вставка получилась, Эйнштейн бы это не одобрил
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
*

sivers

  • Живу я здесь
  • 2606
  • 361 / 0
А что мешает second.innerHTML += first.innerHTML если уж такая гулянка пошла?
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
 ;D Ну да - Так точнее - но я так думаю что оставили для какой то обработки перед вставкой !
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Код
Что-то троекратная вставка получилась
Работает ! 
 :D
Это я в своем первом вопросе   неправильно id's у селектов написала. У меня в программе всё работало. Вопрос был не в том, как клонировать информацию из одного селекта в другой, а в том, как сделать, чтобы  для второго селекта сохранить/создать возможность быстрого поиска (choosen?). У первого селеста есть такой быстый поиск:
class="sel_inputbox". И есть

Код
 JHtml::_('formbehavior.chosen', 'select.sel_inputbox', null, array('disable_search_threshold' => 0));
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
У второго селекта тоже указан class="sel_inputbox"
*

sivers

  • Живу я здесь
  • 2606
  • 361 / 0
Инициализацию chosen надо делать после изменения состава select:
Код
jQuery('#SelectTwo').chosen({"disable_search_threshold":0,"search_contains":true,"allow_single_deselect":true,"placeholder_text_multiple":"Введите или выберите несколько элементов","placeholder_text_single":"Выберите значение","no_results_text":"Ничего не найдено."});
Если делаете повторную инициализацию chosen (напр. при многократном динамическом изменении селекта), то перед инициализацией надо сперва отключить предыдущий chosen на этом select:
Код
jQuery('#SelectTwo').chosen('destroy');
« Последнее редактирование: 12.09.2021, 10:49:38 от sivers »
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Инициализацию chosen надо делать после изменения состава select:
Код
jQuery('#SelectTwo').chosen({"disable_search_threshold":0,"search_contains":true,"allow_single_deselect":true,"placeholder_text_multiple":"Введите или выберите несколько элементов","placeholder_text_single":"Выберите значение","no_results_text":"Ничего не найдено."});
Если делаете повторную инициализацию chosen (напр. при многократном динамическом изменении селекта), то перед инициализацией надо сперва отключить предыдущий chosen на этом select:
Код
jQuery('#SelectTwo').chosen('destroy');
Спасибо.
А где именно инициализацию надо делать (куда вставить jQuery('#SelectTwo').chosen...?
У меня по нажатию кнопки вызывается  function CloneSelect()
http://web.nioch.nsc.ru/proverka-textarea
*

sivers

  • Живу я здесь
  • 2606
  • 361 / 0
У меня по нажатию кнопки вызывается  function CloneSelect()
Вот в ту функцию и вставляйте. Сразу после строки second.innerHTML = options2;
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Вот в ту функцию и вставляйте. Сразу после строки second.innerHTML = options2;
Вот:
Код

function CloneSelect(){
var first = document.getElementById('SelectOne');
var options = first.innerHTML;

var second = document.getElementById('SelectTwo');
var options2 = second.innerHTML + options;

second.innerHTML = options2;
jQuery('#SelectTwo ').chosen('destroy');


jQuery('#SelectTwo ').chosen({"disable_search_threshold":0,"search_contains":true,"allow_single_deselect":true,"placeholder_text_multiple":"Введите или выберите несколько элементов","placeholder_text_single":"Выберите значение","no_results_text":"Ничего не найдено."});

//alert('after jQuery '); 

}
Но ничего не изменилось. Может библиотек не [хватает?
*

sivers

  • Живу я здесь
  • 2606
  • 361 / 0
jQuery('#SelectTwo ')
пробела перед кавычкой быть не должно.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
jQuery('#SelectTwo ')
пробела перед кавычкой быть не должно.
Огромное Вам спасибо!
*

sivers

  • Живу я здесь
  • 2606
  • 361 / 0
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться