Новости Joomla

👩‍💻 SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений.

👩‍💻 SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений.

Компонент позволяет сделать свой мини-Joomla Extensions Directory - каталог расширений для CMS (не только для Joomla) или файлов. Есть возможность скачивания по лицензионным ключам создания кастомных схем данных для сервера обновлений.

👩‍💻 v.2.6.1. Что нового?
- Правки наследования схем серверов обновлений. Улучшена логика наследования схем серверов обновлений для проектов компонент - категория - проект.
- Не стабильные релизы в сервере обновлений. Теперь в данные сервера обновлений попадают все версии (alpha, beta и т.д.), а не только stable.
- Косметические изменения. В шаблоне по умолчанию сделаны замены некоторых CSS-классов, уточнено присвоение атрибутов loading=lazy и fetchpriority.
- Рефакторинг и правки кода. Текущее обновление кодовой базы.
- Исправление ошибок.

👩‍💻 Больше спасибо за помощь в тестировании участникам нашего сообщества Александру Новикову (@pro_portal) и Александру Судьбинову (@alexrevo).

- Страница расширения
- GitHub расширения
- Joomla Extensions Directory

@joomlafeed

Событие Pizza, Bugs & Fun - 29-30 января 2026 года.

Событие Pizza, Bugs & Fun  - 29-30  января 2026 года.

Уже несколько лет в мире Joomla проводятся мероприятия "Pizza, Bugs & Fun" (#PBF), где каждый может посвятить несколько часов своего мозгового времени тому, чтобы наша любимая CMS стала ближе к идеалу.

Ссылки на видео и статьи из этого поста рассказывает об организационных вопросах, которые пригодятся для участия в PBF, а так же что и как делать.

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

Каждый помогает тем, что он умеет:

  • кто-то пишет недостающую документацию,
  • кто-то пишет код,
  • кто-то тестирует как исправлены ошибки или сделан новый функционал.

На сайте события есть карта, можно "захостить" свою локацию. Практически все движки в мире развиваются за счёт спонсирующих их компаний. Joomla одна из немногих, где развитие идёт только усилиями международного сообщества энтузиастов.

https://www.youtube.com/watch?v=a-FuVKXg_Uw 

На момент написания данного поста в репозитории Joomla 810 открытых Issue (как правило это баги) и 236 Pull request (PR, исправление багов и новый функционал). Все PR обязательно тестируются минимум двумя участниками сообщества, дабы в конечный код движка не проскочила ошибка.

Если каждый из участников только нашего сообщества сделает даже одно тестирование, то, боюсь, PR и Issue на всех не хватит 😀 И ничего не останется нашим коллегам из международных Joomla-чатов.

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

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Общий привет!
Есть такая необходимость, чтобы при регистрации нового пользователя (joomla 2.5) в таблицу #__users добавить еще один столбец и внести туда запись.
Добавить еще столбец особых проблем не вызывает, выполнить sql-запрос тоже, только вот куда именно надо прописать этот самый sql-запрос? Пожалуйста, подскажите, как мне добавить еще одну запись для нового юзера?
Кстати, необходимые уточнения.
Название нового столбца принципиального значения не имеет, для примера можно обозвать example, а вот значение, вносимое в этот столбец - это
Код
base64_encode($password)
Причем, $password - это не хеш, а чистое значение пароля, которое юзер вбивает в поле регистрации.
Ну здесь понятно, что после проверки
Код
if (jform[password1] == jform[password2]){
$passw = base64_encode($password);
sql = "INSERT INTO `#__users` (`example`) VALUES (`$passw`)"; // здесь выполняется вставка значение в столбец
}
Только где все это дело прописать?
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Решается на самом деле просто, но с этической точки зрения и с точки зрения безопасности не надо бы этого делать.

Или вы хотите сделать клон одноклассников и заняться фишингом паролей? ;)

Да и без клонов - с учётом того что более 70% юзеров используют одни и те же пароли, в том числе и для email, на всех подряд сайтах - как-то неприлично.

*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Дело в том, что на одном домене с joomla2.5 на поддомене установлен другой скрипт (е-мейл рассылок). При регистрации нового пользователя на Joomla, мне необходимо, чтобы этот пользователь смог зайти в свой аккаунт в скрипте рассылок под этими же самыми логином и паролем. Причем, новая запись в таблицу #__users должна вводиться автоматически.
Я думаю, что эта необходимость вполне этически выглядит.
Что касается безопасности. Здесь просто нет выбора. После некоторых раздумий, я пришел к выводу, что по идее можно как-то вытащить пароль вновь созданного юзера из базы, но так ведь там хэш!.  Но мне ведь нужен именно пароль, вводимый в поле при регистрации. Необходимость заставляет использовать base64_encode.
Дальнейший ход этих действий такой - я извлекаю из базы запись, пропускаю ее через
Код
base64_decode
и получаю пароль в чистом виде. А затем уже вношу этот пароль, после некоторых преобразований, в соответствии с требованиями скрипта почтовых рассылок, в базу, в таблицу пользователей этого самого скрипта.
Вот!
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Вообще корректнее бы было реализовать этот ваш скрипт как компонент Joomla и не разводить субдомены с посторонними скриптами.
А что касается пароля при регистрации - он же не по пути от браузера пользователя до сайта хешируется )

Смотрите в сторону плагина группы user - на некоторые события при регистрации он передаётся в плагин в незашифрованном виде.
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Что касается того, чтобы сделать этот скрипт как компонент, то там 20 МБ кода (там кода чем у Joomla более, чем в три раза).
А что касается плагина группы  user
то я нашел там функции onUserAfterDelete, onUserAfterSave, onUserLogin и onUserLogout
а куда именно там вставлять, мозгов не хватает.
В общем я представляю так.
Где-то надо перехватить пост-запрос, переопределить переменную пароля и добавить параметр для вставки в таблицу базы.
Но, е-мое, башка не варит, в какой именно функции там это можно сделать.
Пожалуйста, разжуйте слегка!
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Плагин user/joomla посмотрите и найдёте всё что вам нужно
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Кстати, можно бы было и другим путём пойти - нафига перехватывать пароли и писать их в базу в практически открытом виде, когда можно было бы в том скрипте реализовать такой же алгоритм хеширования и проверки хеша как в Joomla

И тогда вам остаётся просто копировать логины и хеши из базы Joomla в ту базу.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Гораздо проще проверять наличие ид и по его присутствию делать запрос. Исключив тем самым двойную идентификацию
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Юзера естественно. Если есть значит пользователь зарегистрирован в системе и делать запрос в другую базу или таблицу
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Юзера естественно. Если есть значит пользователь зарегистрирован в системе и делать запрос в другую базу или таблицу

А откуда этот ID взять?
У ТС задача чтобы юзер логинился на субдомене. Вот он идёт на субдомен и пытается там логиниться.
Что дальше?
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Цитировать
Кстати, можно бы было и другим путём пойти - нафига перехватывать пароли и писать их в базу в практически открытом виде, когда можно было бы в том скрипте реализовать такой же алгоритм хеширования и проверки хеша как в Joomla

И тогда вам остаётся просто копировать логины и хеши из базы Joomla в ту базу.
очень мудрое решение...!
...
Но я не смог найти (или не хотел), (хотя я искал) этот механизм в Joomla.
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
plugins\authentication\joomla\joomla.php
libraries\joomla\user\helper.php
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Копируете данный код в файл register.php файл записываете в корень сайта. (Тестовое решение, проблемы с безопасностью)
Теперь, чтобы пользователь был авторизован, достаточно вызвать ваш домен/register.php?userid=837 где 837 ид авторизованного пользователя
Спойлер
[свернуть]
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Теперь, чтобы пользователь был авторизован, достаточно вызвать ваш домен/register.php?userid=837 где 837 ид авторизованного пользователя

1) у ТС на субдомене не Joomla
2) а если бы была - таким образом любой посторонний или бот может подбирать id и авторизовываться

Если уж делать синхронизацию "залогиненного" состояния - то при авторизации и не http запросами, а работая непосредственно с базой.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
При регистрации нового пользователя на Joomla, мне необходимо, чтобы этот пользователь смог зайти в свой аккаунт в скрипте рассылок под этими же самыми логином и паролем.
Т. есть я как понимаю регистрация на субдомене произведена. Тогда почему к регистрации на субдомене не прикрепить автоматическую регистрацию пользователя Joomla в основном домене
2)Тестовое решение, проблемы с безопасностью
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Изначально же в условии - первичная регистрация на основном домене где Joomla
Параллельно - синхронизация базы пользователей субдомена, где самописное что-то.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Ух тогда так.
Пишем плагин регистрации. При регистрации:
1. получаем e-mail зарегистрированного
2. Делаем запрос на субдомен с выборкой логина пароля
3. Записываем юзера
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Fedor Vlasenko
Цитировать
Ух тогда так.
Пишем плагин регистрации. При регистрации:
1. получаем e-mail зарегистрированного
2. Делаем запрос на субдомен с выборкой логина пароля
3. Записываем юзера
Большое спасибо, конечно, за помощь, но, действительно, здесь задачка немного другая.
На поддомене установлен совершенно другой скрипт (не joomla), но основоном домене стоит Joomla.
Мои клиенты регистрируются на основном сайте (joomla) и после этого, могут войти в аккаунт того - другого скрипта, под тем же логином и паролем.

Г-н SDKiller все правильно понял.

Только вот дело за малым осталось. Не ложиться спать, пока не допилю плагин user/joomla
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Цитировать
могут войти в аккаунт того - другого скрипта
вот откуда там данные(логин и пароль) в другом скрипте?
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
логин вытаскивается из базы #__users и вставляется в базу того - другого скрипта.
Вот с паролем здесь посложней.
Хеш, сохраненный в базе #__users обратно расшифровать - большая проблема, поэтому мне необходимо, где-то перехватить этот пароль, пока он не превратился в хэш, переопределить переменную и выполнить вставку этого пароля в базу того скрипта (другого).
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
пишите плагин группы user обрабатывайте событие
public function onUserAfterSave($user, $isnew, $success, $msg){}
в $user будет ваш пароль не зашифрованный
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Я никогда в жизни не писал плагинов........
Но... видимо, когда то надо начинать пробовать.
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Простыми словами, на существующем плагине внутри функции onUserAfterSave
есть то, что мне нужно?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
вставьте там строку и зарегистрируйтесь
var_dump($user); //или
die (var_dump($user));
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
я попозже отвечу.... дела возникли
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Fedor Vlasenko !
Спасибо за реальную помощь!
Все-таки я поймал мышку за хвост.
А мышка пряталась в
[password_clear] =>
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Тут новый арбуз выкатился!
В силу сложившихся обстоятельств я пошел на такое решение, что добавил еще один столбец в таблицу #__users и сохраняю там необходимые данные.
В момент активации / деактивации в дополнительном столбце таблицы #__users удаляются сохраненные там данные.

Как то можно сделать так, чтобы
при активации / деактивации юзера
не удалялись данные из этого столбца?



Все, проблема решилась перестановкой столбца в самый конец!
« Последнее редактирование: 20.06.2013, 23:06:14 от rafaello9 »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
пиши в params, он в json, пример you_data
Код: php-brief
 $user = JFactory::getUser();
        $params = json_decode($user->params, true);
        $params['you_data'] = 'NeW data';
        $db = JFactory::getDBO();
        $query = $db->getQuery(true);
        $query->update('#__users')->set('params=' . $db->Quote(json_encode($params)))->where('id=' . $user->id);
        $db->setQuery($query)->query();
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как добавить много меток сразу?

Автор Sergeyy

Ответов: 1
Просмотров: 1166
Последний ответ 10.12.2018, 16:49:03
от Sergeyy
Выбор пользователя в модальном окне в админке

Автор orexov_m

Ответов: 0
Просмотров: 1220
Последний ответ 11.04.2017, 11:35:43
от orexov_m
Добавить проверку в форму регистрации

Автор apsorry

Ответов: 3
Просмотров: 1480
Последний ответ 08.01.2016, 15:40:02
от apsorry
Добавить класс каждому li

Автор xenos

Ответов: 6
Просмотров: 1797
Последний ответ 15.04.2015, 09:14:47
от xenos
Как понять в каком случае плагин производит запись в бд?

Автор maxis

Ответов: 34
Просмотров: 3246
Последний ответ 27.01.2015, 08:23:51
от maxis