Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

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

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Здравствуйте, уважаемые форумчане!

Интересует вот такой вопрос, возможно ли сделать регистрацию пользователей не через компонент Joomla.

Регистрация будет производиться совсем из другой программы, реально ли только записать в БД данные о пользователе, логин, пароль, почту, чтобы пользователь смог спокойно зайти на сайт.

Как генерируется пароль в Joomla, проблемы с занесением остальных полей нет, а вот пароль занести в БД не знаю как.

Возможно ли данной функцией зашифровать и расшифровать пароль?

Код
static const Codes64[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"

public Encode64(s[])
{
new i=0,a=0,x=0,b=0,Result
  for (i=1;i<strlen(s);i++) {
    x = str_to_num(s[i])
    b = b * 256 + x
    a = a + 8
    while (a >= 6) {
      a = a - 6
      x = b / (1 << a)
      b = b % (1 << a)
      Result += Codes64[x + 1]
   }
  }
  if (a > 0) {
    x = b << (6 - a);
    Result += Codes64[x + 1];
 }
 return Result;
}

public Decode64(s[])
{
  new i=0,a=0,x=0,b=0,Result,ch[1]
  for (i = 1; i< strlen(s);i++) {
      for (new index = 0; Codes64[index]; index++)
    if (s[i]==Codes64[index]) {
    x=index-1
    break
    }
    if (x >= 0) {
      b = b * 64 + x
      a = a + 6
      if (a >= 8) {
        a = a - 8
        x = b >> a
        b = b % (1 << a)
        x = x % 256
        Result += num_to_word(x,ch,1)
     }
    }
    else exit;
}
return Result;
}
*

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Расскажите хотя бы как устроена генерация пароля?
*

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Если использовать http://joomlaforum.ru/index.php/topic,54062.0.html внесение данных в БД с использованием md5, будет работать или нет, пробую на хостинге не канает.
*

mohax

  • Давно я тут
  • 901
  • 66 / 3
Если использовать http://joomlaforum.ru/index.php/topic,54062.0.html внесение данных в БД с использованием md5, будет работать или нет, пробую на хостинге не канает.
md5 у меня работал. Скрипт на php парсил данные из Xls-файла и вбивал их в БД. Код предоставить не смогу, осталось на старой работе...
*

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Вот нашел, что отвечает за генерацию пароля, помогите разобрать все по полочкам!

Код
	/**
* Formats a password using the current encryption.
*
* @param   string   $plaintext     The plaintext password to encrypt.
* @param   string   $salt          The salt to use to encrypt the password. []
*                                  If not present, a new salt will be
*                                  generated.
* @param   string   $encryption    The kind of pasword encryption to use.
*                                  Defaults to md5-hex.
* @param   boolean  $show_encrypt  Some password systems prepend the kind of
*                                  encryption to the crypted password ({SHA},
*                                  etc). Defaults to false.
*
* @return  string  The encrypted password.
*
* @since   11.1
*/
public static function getCryptedPassword($plaintext, $salt = '', $encryption = 'md5-hex', $show_encrypt = false)
{
// Get the salt to use.
$salt = JUserHelper::getSalt($encryption, $salt, $plaintext);

// Encrypt the password.
switch ($encryption)
{
case 'plain' :
return $plaintext;

case 'sha' :
$encrypted = base64_encode(mhash(MHASH_SHA1, $plaintext));
return ($show_encrypt)? '{SHA}'.$encrypted : $encrypted;

case 'crypt' :
case 'crypt-des' :
case 'crypt-md5' :
case 'crypt-blowfish' :
return ($show_encrypt ? '{crypt}' : '').crypt($plaintext, $salt);

case 'md5-base64' :
$encrypted = base64_encode(mhash(MHASH_MD5, $plaintext));
return ($show_encrypt)? '{MD5}'.$encrypted : $encrypted;

case 'ssha' :
$encrypted = base64_encode(mhash(MHASH_SHA1, $plaintext.$salt).$salt);
return ($show_encrypt)? '{SSHA}'.$encrypted : $encrypted;

case 'smd5' :
$encrypted = base64_encode(mhash(MHASH_MD5, $plaintext.$salt).$salt);
return ($show_encrypt)? '{SMD5}'.$encrypted : $encrypted;

case 'aprmd5' :
$length = strlen($plaintext);
$context = $plaintext.'$apr1$'.$salt;
$binary = JUserHelper::_bin(md5($plaintext.$salt.$plaintext));

for ($i = $length; $i > 0; $i -= 16) {
$context .= substr($binary, 0, ($i > 16 ? 16 : $i));
}
for ($i = $length; $i > 0; $i >>= 1) {
$context .= ($i & 1)? chr(0) : $plaintext[0];
}

$binary = JUserHelper::_bin(md5($context));

for ($i = 0; $i < 1000; $i ++) {
$new = ($i & 1)? $plaintext : substr($binary, 0, 16);
if ($i % 3) {
$new .= $salt;
}
if ($i % 7) {
$new .= $plaintext;
}
$new .= ($i & 1)? substr($binary, 0, 16) : $plaintext;
$binary = JUserHelper::_bin(md5($new));
}

$p = array ();
for ($i = 0; $i < 5; $i ++) {
$k = $i +6;
$j = $i +12;
if ($j == 16) {
$j = 5;
}
$p[] = JUserHelper::_toAPRMD5((ord($binary[$i]) << 16) | (ord($binary[$k]) << 8) | (ord($binary[$j])), 5);
}

return '$apr1$'.$salt.'$'.implode('', $p).JUserHelper::_toAPRMD5(ord($binary[11]), 3);

case 'md5-hex' :
default :
$encrypted = ($salt)? md5($plaintext.$salt) : md5($plaintext);
return ($show_encrypt)? '{MD5}'.$encrypted : $encrypted;
}
}

Я так понимаю мне нужна строчка

Код
			default :
$encrypted = ($salt)? md5($plaintext.$salt) : md5($plaintext);
return ($show_encrypt)? '{MD5}'.$encrypted : $encrypted;
*

Artemeey

  • Новичок
  • 3
  • 0 / 0
Спасибо, помог и мне разобраться.
Пароль генерируется вот такой функцией: md5($plaintext.$salt).

В БД запись выглядет слудущем образом:
XXXXXXXXXXXXXX:YYYYYYYYYYYY
Где:
XXX - md5
YYY - sault.

plaintext - то что вводится в поле пароля при авторизации.
*

AstFreelancer

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Для базы Joomla 1.5 по крайней мере работает такой код:
Код
$salt = $plaintext;
$encrypted = md5($plaintext.$salt);
$password = $encrypted.':'.$salt;
И не забываем, что кроме таблицы jos_users нужно заполнять еще jos_core_acl_aro и jos_core_acl_groups_aro_map!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как редактировать отдельную страницу Joomla 2.5?

Автор mrporter

Ответов: 0
Просмотров: 14168
Последний ответ 14.09.2023, 22:16:47
от mrporter
Joomla 2.5.28, Safari под маком и сессии session

Автор beliyadm

Ответов: 19
Просмотров: 16970
Последний ответ 29.03.2023, 12:17:19
от Sawell
Joomla 2.5.28 как скачать все файлы через панель управления

Автор Sergei41984

Ответов: 7
Просмотров: 14708
Последний ответ 27.12.2022, 23:30:38
от Sergei41984
Расширения для Joomla! 1.6 (коллекция полезных ссылок)

Автор Sulpher

Ответов: 124
Просмотров: 146023
Последний ответ 03.12.2022, 16:15:19
от besttechoff
Почему в админке Joomla 2.58 - у меня 16 админов показывает?

Автор dyalex

Ответов: 7
Просмотров: 15567
Последний ответ 27.10.2022, 19:03:45
от marksetter