Новости Joomla

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

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

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

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

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

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

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

ERTQ

  • Захожу иногда
  • 61
  • 0 / 0
Здравствуйте. Сбой подтверждения запроса сброса пароля по причине: неправильный символ (знак). Вот такая проблема. Помогите решить, пожалуйста.
P.S. На форуме нашел несколько тем по этому поводу, но все описанные решения проблем не помогают - по причине, что все строки в файлах присутствуют, при переходе с почты два поля (логин, код подтверждения) и т.д. Может подскажите где еще посмотреть? Если делать запрос на сброс логина - все работает (Joomla 1.5.21). Благодарю.
*

orioncrew

  • Новичок
  • 2
  • 0 / 0
Та же самая проблема. Все строчки присутствуют в шаблоне.
Версия 1.5.17 обновил до 1.5.22, результата нет.

Есть предположения где копать?
*

orioncrew

  • Новичок
  • 2
  • 0 / 0
Вобщем закинул удочку в /components/com_user/models/reset.php :
Код
function confirmReset($token, $username)
{
global $mainframe;

jimport('joomla.user.helper');

if(strlen($token)!= 32) {
$this->setError(JText::_('INVALID_TOKEN1'));
return false;
}

$db = &JFactory::getDBO();
$db->setQuery('SELECT id, activation FROM #__users WHERE block = 0 AND username = '.$db->Quote($username));

$row = $db->loadObject();

// Verify the token
if (!($row = $db->loadObject()))
{
$this->setError(JText::_('INVALID_TOKEN2'));
return false;
}

$parts = explode( ':', $row->activation );
$crypt = $parts[0];
if (!isset($parts[1])) {
$this->setError(JText::_('INVALID_TOKEN3'));
return false;
}
$salt = $parts[1];
$testcrypt = JUserHelper::getCryptedPassword($token, $salt);

// Verify the token
if (!($crypt == $testcrypt))
{
$this->setError(JText::_('INVALID_TOKEN4'));
return false;
}

// Push the token and user id into the session
$mainframe->setUserState($this->_namespace.'token', $crypt.':'.$salt);
$mainframe->setUserState($this->_namespace.'id', $row->id);

return true;
}
а так же /language/ru-RU/ru-RU.com_user.ini :
Код
INVALID_TOKEN=неправильный символ (знак).
INVALID_TOKEN1=неправильный символ (знак)1
INVALID_TOKEN2=неправильный символ (знак)2
INVALID_TOKEN3=неправильный символ (знак)3
INVALID_TOKEN4=неправильный символ (знак)4

После ввода пришедшего по мылу кода получаем ответ:
Цитировать
Сбой подтверждения запроса сброса пароля по причине: неправильный символ (знак)2.

В PHP слабо разбираюсь, подскажите, какой вывод можно из этого сделать?
*

step-di

  • Захожу иногда
  • 91
  • 5 / 0
способ решения проблемы
открыть файл / компоненты / com_user / модели / reset.php найти строку 126
закомментировать следующие строчки
 // Verify the token
 if (!($row = $db->loadObject()))
  {
   $this->setError(JText::_('INVALID_TOKEN'));
   return false;
  }
или вообще нахрен их удалить
*

kronda

  • Новичок
  • 3
  • 0 / 0
У меня эти строчки есть......Как еще можно бороться?
*

allydawn

  • Захожу иногда
  • 132
  • 13 / 0
  • falling from the sky - day seven
kronda, они у всех есть, сказали же, удалить нужно.
step-di, огромное спасибо, именно это решение мне помогло. мегареспект и жирный плюс.
*

timson

  • Осваиваюсь на форуме
  • 44
  • 3 / 0
Не пашет способ.
Уже от отчаяния удалял все цыклы, гда есть вывод INVALID_TOKEN.
Беспонту. Как отключить сервис восстановления паролей?
*

SolopoV

  • Давно я тут
  • 577
  • 16 / 0
  • зеленею...
У меня трабла в следующем:
Если на странице index.php?option=com_user&view=reset&layout=confirm при вводе, e-mail содержит нечто подобное: xxxx.xxxxxx2014@yandex.ru - тогда вылетает подобная ошибка. То есть, если длинный адрес ещё и с точкой.

Думаю, копать нужно проверку e-mail адресов.
« Последнее редактирование: 07.09.2013, 07:55:34 от SolopoV »
*

Timofey

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
100% работает.
В Joomla в компоненте com_user есть возможность востановить пароль, но иногда возникает ситация когда вроде и делаем все правильно, но сбросить пароль не можем. И получаем сообщение: «Сбой подтверждения запроса сброса пароля по причине: неправильный символ (знак)».

Недавно, и мне пришлось столкнуться с данной проблей, и решение не заставило себя ждать. В одной из версий Joomla изменилась «форма подтверждения учетной записи». Если раньше Вам достаточно было ввести «Код подтверждения», то сейчас необходимо еще и ввести логин. В этом фактически и кроется суть проблемы.
Устанавливая шаблон он «перекрывает» стандартный вывод компонентов, в частности практически все шаблоны перекрывают стандартный вывод компонента com_user. Но, шаблоны не всегда обновленны до последней, актуальной версии. Либо возможен вариант, когда шаблон установлен давно, а Joomla переодически обновляется. Вот здесь мы и получаем проблему: модуль требует передачи двух параметров, а в шаблоне предусмотрен ввод только одного.
Решение проблемы очень простое. В файле «components/com_user/views/reset/tmpl/confirm.php» ищем HTML код отвественный за вывод поля «username»
<tr>
   <td height="40">
      <label for="username" class="hasTip"
         title="
         ::">
         :
      </label>
   </td>
   <td>
      <input id="username" name="username" type="text" class="required" size="36" />
   </td>
</tr>

и вставляем его в Ваш шаблон, находиться он «templates/название_шаблона/html/com_user/reset/confirm.php».
А дальше наслаждаемся работой востановления пароля.
Ссылка на источник: http://webcomme.ru/item/oshibka-joomla-1522-pri-smene-parolya.html
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться