Новости 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 Гость просматривают эту тему.
  • 3 Ответов
  • 1834 Просмотров
*

jana

  • Захожу иногда
  • 63
  • 2 / 0
  • Яна
Стоит Joomla 1.5.22 поставила компонент Account Expiration Control версия 0.14.2 везде выводит где дата окончания аккаунта сам месяц непонятными символами на русском языке, если переключить на английский то отображает нормально, примерно выглядит дело это так 26.###.2011 вместо ### там какие то квадратики, должно быть ,,Мар,, т.е март просто в сокращённом ввиде выводит, языковые файлы компонента и Joomla в utf-8 и непонятно с какого файла он берёт перевод месяца, кто-нибудь сталкивался с такой проблемой?  !
*

hoock

  • Захожу иногда
  • 378
  • 42 / 0
А вы попробуйте найти шаблон вывод и тоже попробуйте перекодировать в UTF-8
В случае что помог - спасибо слишком много, пиво и + будет в самый раз *DRINK*
*

jana

  • Захожу иногда
  • 63
  • 2 / 0
  • Яна
Если бы я знала где этот шаблон  8)

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

( defined('_JEXEC') || defined( '_VALID_MOS' ) ) or die( 'Direct Access to this location is not allowed.' );

global $mainframe;

require_once( $mainframe->getPath( 'class', 'com_acctexp' ) );

$class_sfx            = $params->get( 'moduleclass_sfx', "");
$pretext             = $params->get( 'pretext' );
$posttext             = $params->get( 'posttext' );
$showExpiration       = $params->def( 'show_expiration', 0 );
$displaypipeline      = $params->get( 'displaypipeline', 0 );
$extended            = $params->get( 'extended', 0 );

$user = &JFactory::getUser();

if ( $user->id ) {

   echo '<div class="aec_module_inner' . $class_sfx . '">';

   if ( !empty( $pretext ) ) {
      echo $pretext;
   }

   if ( $showExpiration ) {
      $langPath = JPATH_SITE . '/modules/' . ( aecJoomla15check()? 'mod_acctexp/' : '' ). 'mod_acctexp_language/';
      if ( file_exists( $langPath . $GLOBALS['mosConfig_lang'] . '.php' )) {
            include_once( $langPath . $GLOBALS['mosConfig_lang'] . '.php' );
      } else {
            include_once( $langPath. 'english.php' );
      }

      if ( !$extended ) {
         echo AECModuleHelper::getExpirationSimple( $user );
      } else {
         $metaUser = new metaUser( $user->id );

         $subscriptions = $metaUser->getAllCurrentSubscriptionsInfo();

         foreach ( $subscriptions as $subscription ) {
            echo '<div class="aec_module_subscription aec_module_subscriptionid_' . $subscription->plan  . '">';

            echo "<h4>" . $subscription->name . "</h4>";

            echo AECModuleHelper::textExpiration( $user, $subscription->expiration, $subscription->lifetime, $subscription->recurring );

            echo '</div>';
         }
      }

   }

   if ( $displaypipeline ) {
      $dph = new displayPipelineHandler;
      echo $dph->getUserPipelineEvents( $user->id );
   }

   if ( !empty( $posttext ) ) {
      echo $posttext;
   }

   echo '</div>';
}

class AECModuleHelper
{
   function getExpirationSimple( $user )
   {
      $database = &JFactory::getDBO();

      $expiration = null;
      $query = 'SELECT `id`, `expiration`, `lifetime`, `recurring`'
            . ' FROM #__acctexp_subscr'
            . ' WHERE `userid` = \'' . $user->id . '\''
            . ' AND `primary` = \'1\''
            . ' AND `status` != \'Excluded\'';
      $database->setQuery($query);
      $entry = $database->loadObject();

      if ( !empty( $entry->lifetime ) ) {
         return AECModuleHelper::textExpiration( $user, $entry->expiration, $entry->lifetime, $entry->recurring );
      }

      if ( empty( $entry->expiration ) ) {
         $query = 'SELECT `id`, `expiration`, `recurring`'
               . ' FROM #__acctexp_subscr'
               . ' WHERE `userid` = \'' . $user->id . '\''
                   . ' AND `status` != \'Excluded\'';
         $database->setQuery($query);
         $entry = $database->loadObject();
      }

      if ( empty( $entry->id ) ) {
         return null;
      } else {
         return AECModuleHelper::textExpiration( $user, $entry->expiration, $entry->lifetime, $entry->recurring );
      }
   }

   function textExpiration( $user, $expiration, $lifetime=null, $recurring=false )
   {
      if ( empty( $expiration ) || $lifetime ) {
         return AECModuleHelper::textUnlimited();
      } else {
         return AECModuleHelper::textExpirationDate( $expiration, $recurring );
      }
   }

   function textUnlimited()
   {
      return "<p>" . _ACCOUNT_UNLIMIT . "</p>";
   }

   function textExpirationDate( $expiration, $recurring )
   {
      global $mainframe, $aecConfig;

      $ou = $mainframe->getCfg( 'offset_user' );

      // compatibility with Mambo
      if ( !empty( $ou ) ) {
         $timeOffset = $ou;
      } else {
         $timeOffset = $mainframe->getCfg( 'offset' );
      }

      $retVal = strftime( $aecConfig->cfg['display_date_frontend'], ( strtotime( $expiration ) + $timeOffset*3600 ) );

      if ( $recurring ) {
         return "<p>" . _ACCOUNT_RENEWAL . ": " . $retVal . "</p>";
      } else {
         return "<p>" . _ACCOUNT_EXPIRES . ": " . $retVal . "</p>";
      }
   }
}

?>
*

jana

  • Захожу иногда
  • 63
  • 2 / 0
  • Яна
Проблему сама решила  8) оказывается в самом компоненте в настройках параметры можно менять даты я еще и время прописала, так что всё чики-пуки  ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Компонент Search в Joomla 5

Автор hensler

Ответов: 4
Просмотров: 1960
Последний ответ 28.03.2025, 17:27:24
от azm1n
DJ-Classifieds - компонент доска объявлений. Как скрыть системные сообщения

Автор user2008june

Ответов: 2
Просмотров: 1091
Последний ответ 03.02.2022, 08:53:49
от user2008june
REreplacer 2.10.3 (Рус.) Компонент замены любых значений.

Автор ЗЛОЙ на всех

Ответов: 80
Просмотров: 26523
Последний ответ 28.12.2021, 23:06:04
от Vlad1
Компонент тестов Guru от iJoomla.com

Автор Фей

Ответов: 3
Просмотров: 1173
Последний ответ 31.05.2021, 00:51:00
от AdWeb
Компонент Joomla для больших каталогов

Автор powerful888

Ответов: 15
Просмотров: 2133
Последний ответ 09.07.2020, 23:03:47
от voland