Новости 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

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

Rexton

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Доброго времени суток, форумчане.


Столкнулся с такой вот проблемкой...

Нужно было сделать дополнительное поле в форме регистрации (Joomla 1.5)
Прописал это поле здесь components/com_user/views/registration/tmpl/default.php

Потом поставил плагин, который пишет значения из дополнительного поля в jos_users -> params
Params перед записью шифруются в MD5
Код
class plgUserExtUsData extends JPlugin {

    function onAfterStoreUser($user, $isnew, $success, $msg)
    {
   
        if ($isnew) {
            $db =& JFactory::getDBO();
            $registry = new JRegistry();
            $registry->loadArray md5(($_POST['params']));
            $params = $registry->toString();
            $db->setQuery("UPDATE #__users SET params = '" .  $db->getEscaped($params). "' WHERE id = " . $user['id']);
            $db->query();           

}


Нужно сделать проверку веденного значения, если искомое найдено в базе, то заносить юзера в опеределенную группу, если нет то делать просто Registered.

Код
$query = "SELECT kod FROM Any_Table WHERE act = '".$params."'";
$db =& JFactory::getDBO(); ///Соединение с базой
$db->setQuery($query); // Выполнение запроса
$db->getError(); //Если запрос не выполнен, выводим ошибку
$key = $db->loadResult(); //Загружаем результат запроса


Собственно, смысл этой проверки:

Код
//Если такой ключ есть, прописываем пользователя в группу легальных 
if ($key = $params ) //Сравниваем результат из БД и введенный юзером ключ
{
$query = "INSERT INTO 'jos_usergroups' ('id' ,  'user_id' ,  'group_id'  ) VALUES ( '.$user['id'].', '.$user['id'].', 11 ";
$db =& JFactory::getDBO();
$db->setQuery($query);
$db->getError();



Может кто поможет решить?
*

Rexton

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Переписанный код:
Код
<?php

defined('_JEXEC') or die( 'Restricted access' );

jimport('joomla.plugin.plugin');

class plgUserExtUsData extends JPlugin {

    function onAfterStoreUser($user, $isnew, $success, $msg)
    {
        if ($isnew) {
            $db =& JFactory::getDBO();
$kod = JRequest::getString('kod', '', 'post', JREQUEST_ALLOWRAW);
            $db->setQuery("UPDATE #__users SET kod = '" .  md5($db->getEscaped($kod)). "' WHERE id = " . $user['id']);
            $db->query();            
        }
$userid = $user['id'];
$legal_group = 11;
$not_legal = 9;
$user=& JFactory::getUser();
$user_key = $user->get('kod');
$username = $user->get('username');
$db->setQuery("SELECT * FROM My_Table WHERE kod = '".$user_key."'");
$main_key = $db->loadResult();


if ($user_key == $main_key){
$query = "INSERT INTO #__fua_userindex SET id='$userid' , user_id='$userid' , group_id='$legal_group'";
$db->setQuery($query);
if(!$db->query()) {
die("SQL error".$db->stderr(true));
}

$db->setQuery("UPDATE My_Table SET username='$username' WHERE kod='$user_key'");
if(!$db->query()) {
die("SQL error".$db->stderr(true));
}

}
else{


$query = "INSERT INTO #__fua_userindex SET id='$userid' , user_id='$userid' , group_id='$not_legal'";
$db->setQuery($query);
if(!$db->query()) {
die("SQL error".$db->stderr(true));
}

}






    }

}

?>

Проблема тоже изменилась....

Теперь всех пользователей прописывает как $legal_group .... то есть не сравнивает...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Защита от ботов при регистрации

Автор shaverma

Ответов: 11
Просмотров: 8651
Последний ответ 23.03.2015, 14:12:04
от AdmbVlad
В админке нет поля ввода логина/пароля

Автор menar

Ответов: 4
Просмотров: 2009
Последний ответ 25.02.2015, 21:51:37
от menar
Нету поля "Lightbox Rel параметр"

Автор slavikrovno

Ответов: 0
Просмотров: 1261
Последний ответ 22.01.2014, 02:16:40
от slavikrovno
Добавление материала без регистрации

Автор zosimov

Ответов: 8
Просмотров: 1652
Последний ответ 21.10.2013, 12:45:59
от smart
После отключения регистрации в CommunityBuilder сбились размеры материалов

Автор piquick

Ответов: 2
Просмотров: 1250
Последний ответ 17.10.2013, 14:55:35
от piquick