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

AlexSF

  • Давно я тут
  • 678
  • 68 / 0
  • В споре истина рождается
Всем доброго времени суток.
 Есть  некий модуль (на пример: mod_mainmenu), в стандартных настройках  доступ  ограничивается группами  ВСЕ, ЗАРЕГИСТРИРОВАННЫЕ, СПЕЦИАЛЬНЫЙ.  Необходимо чтобы к данному модулю имели доступ  только люди группы  АВТОР или УПРОВЛЯЮЩИЙ
 Как  реализовать  такую  задумку?
Задаёте вопрос - не забудьте приложить ссылку на проблемный сайт
При проблеме с CSS рекомендую использовать Mozilla Firefox и её плагин FireBug
И по максимуму изучите, или поставьте в закладки - http://htmlbook.ru/css
Notepad++ поможет почти в любом деле
*

AlexSF

  • Давно я тут
  • 678
  • 68 / 0
  • В споре истина рождается
Re: Ограничения прав доступа к модулю
« Ответ #1 : 07.08.2009, 20:38:54 »
Спасибо, но этот вариант я уже попробовал безрезультатно.
Однако возможно изменив что либо в ядре, это снимет необходимость в изменении кода в пяти модулях. Но где искать .....?
Задаёте вопрос - не забудьте приложить ссылку на проблемный сайт
При проблеме с CSS рекомендую использовать Mozilla Firefox и её плагин FireBug
И по максимуму изучите, или поставьте в закладки - http://htmlbook.ru/css
Notepad++ поможет почти в любом деле
*

chtec

  • Захожу иногда
  • 230
  • 100 / 1
Re: Ограничения прав доступа к модулю
« Ответ #2 : 07.08.2009, 21:26:47 »
В модулях код менять не нужно, то условие, что привел kbar, ставите в шаблон и выводите под ним позицию модуля. А уже в эту позицию ставите нужные модули. То есть - одно условие в шаблоне, и все остальное правится через админку.
А в ядро лезть не стоит, тем более тому, у кого простое условие прошло "безрезультатно". Чтоб Joomla потом не переустанавливать.
Осень тоже хорошо.
*

AlexSF

  • Давно я тут
  • 678
  • 68 / 0
  • В споре истина рождается
Re: Ограничения прав доступа к модулю
« Ответ #3 : 07.08.2009, 23:30:00 »
Попробовал комбинировать в щаблоне
   
Цитировать
</div>       
        <?php $user =& JFactory::getUser(); ?>
        <?php if($user->get(‘usertype’) == ‘Author’) {?>
      <?php if ($this->countModules('right')): ?>
      <!-- BEGIN: RIGHT COLUMN -->
      <div id="ja-col2">       
         <jdoc:include type="modules" name="right" style="jarounded" />      
        </div><br />
      <!-- END: RIGHT COLUMN -->
      <?php endif; ?>
        <?php }?>
Вариант 2
Цитировать
<?php if ($this->countModules('right')): ?>
      <!-- BEGIN: RIGHT COLUMN -->
      <div id="ja-col2">
        <?php $user =& JFactory::getUser(); ?>
        <?php if($user->get(‘usertype’) == ‘Author’) {?>
         <jdoc:include type="modules" name="right" style="jarounded" />
      <?php }?>
        </div><br />
      <!-- END: RIGHT COLUMN -->
      <?php endif; ?>
Оба варианта убивают позицию модуля.  В чем ошибся?
 Ещё покопался в ядре и отыскал вроде бы логичную связь с настройками модулей:
administrator\components\com_modules\ controller.php  в районе 40 строки имеем код:

Цитировать
$this->registerTask( 'accesspublic',    'access' );
$this->registerTask( 'accessregistered','access' );
$this->registerTask( 'accessspecial',   'access' );
в районе 750 строки имеем код:

Цитировать
switch ( $task )
      {
         case 'accesspublic':
            $access = 0;
            break;

         case 'accessregistered':
            $access = 1;
            break;

         case 'accessspecial':
            $access = 2;
            break;
      }
Но как сюда ввести АВТОР и УПРОВЛЯЮЩИЙ ?
Задаёте вопрос - не забудьте приложить ссылку на проблемный сайт
При проблеме с CSS рекомендую использовать Mozilla Firefox и её плагин FireBug
И по максимуму изучите, или поставьте в закладки - http://htmlbook.ru/css
Notepad++ поможет почти в любом деле
*

AlexSF

  • Давно я тут
  • 678
  • 68 / 0
  • В споре истина рождается
Re: Ограничения прав доступа к модулю
« Ответ #4 : 09.08.2009, 14:48:56 »
Всем спасибо за помощь.
Взяв шаблон который не был стандартно предустановлен и, введя в него предложенный  Вами код все заработало.
Цитировать
</div>
                <div class="clear"></div>
                <div id="modules_l"><jdoc:include type="modules" name="left" style="xhtml" /></div>
                <div id="modules_la"><?php $user =& JFactory::getUser (); ?>
                 <?php $userType = $user->get ('usertype');?>
                 <? if ($user->get ('usertype') == 'Author'):?>
                    <jdoc:include type="modules" name="left-2" style="xhtml" /></div>
                 <?php endif; ?>
                <div id="modules_la"><?php $user =& JFactory::getUser (); ?>
                 <?php $userType = $user->get ('usertype');?>
                 <? if ($user->get ('usertype') == 'Editor'):?>
                    <jdoc:include type="modules" name="left-3" style="xhtml" /></div>
                 <?php endif; ?>
                <div id="modules_la"><?php $user =& JFactory::getUser (); ?>
                 <?php $userType = $user->get ('usertype');?>
                 <? if ($user->get ('usertype') == 'Publisher'):?>
                    <jdoc:include type="modules" name="left-4" style="xhtml" /></div>
                 <?php endif; ?>
                <div class="clear"></div>
        </td>
« Последнее редактирование: 17.08.2009, 18:38:42 от AlexSF »
Задаёте вопрос - не забудьте приложить ссылку на проблемный сайт
При проблеме с CSS рекомендую использовать Mozilla Firefox и её плагин FireBug
И по максимуму изучите, или поставьте в закладки - http://htmlbook.ru/css
Notepad++ поможет почти в любом деле

Re: Ограничения прав доступа к модулю
« Ответ #5 : 24.08.2009, 01:07:02 »
у меня подобная проблема! дело в том, что у меня на сайте две регистрации...для рожениц и для клиник...и нужно сделать так, что когда пользователь входит как будущая мать (группа registred) для нее скрывалось в шапке сайта "регистрация для клиник" и  в меню добавлялся пунк меню "Подать заявку".....тоже самое когда входят на сайт как клиника (группа "author")...убиралась в шапке регистрация для будущих мам...и  в меню появлились два новых пункта! напиши пожалуйста подробно как это сделать!

вот HTML моего шаблона со всеми позициями:

Код
<?php
/**
* @copyright Copyright (C) 2009 JoomlaPraise. All rights reserved.
*/

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
<head>
<?php // Detecting Home
$menu = & JSite::getMenu();
if ($menu->getActive() == $menu->getDefault()) {
$siteHome = 1;
}

// Detecting Active Component
$pageOption = JRequest::getVar('option', '');

// set custom template theme for user
$user = &JFactory::getUser();
if( !is_null( JRequest::getCmd('templateTheme', NULL) ) ) {
$user->setParam($this->template.'_theme', JRequest::getCmd('templateTheme'));
$user->save(true);
}

if($user->getParam($this->template.'_theme')) {
$this->params->set('templateTheme', $user->getParam($this->template.'_theme'));
}
?>
<jdoc:include type="head" />
<script type="text/javascript" src="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/js/reflection.js"></script>
<link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/system/css/general.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/css/<?php echo $this->params->get('templateTheme'); ?>.css" type="text/css" />
<!--[if IE 6]>
<link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/css/ie6.css" type="text/css" />
<![endif]-->
<!-- PNG FIX -->
<!--[if IE 6]>
<style type="text/css"> img { behavior: url(<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/css/iepngfix.htc); } </style>
<![endif]-->
<style type="text/css">
<?php if($this->params->get('fontFamily') == "times") { ?>
body{font-family:"Times New Roman", Times, serif;}
<?php } elseif($this->params->get('fontFamily') == "courier") { ?>
body{font-family:"Courier New", Courier, monospace;}
<?php } elseif($this->params->get('fontFamily') == "georgia") { ?>
body{font-family:Georgia,"Times New Roman", Times, serif;}
<?php } ?>
<?php if($this->params->get('headingFontFamily') == "arial") { ?>
h1, h2, h3, h4, h5, h6, .componentheading, .contentheading{font-family:Arial, Helvetica, sans-serif;}
<?php } elseif($this->params->get('headingFontFamily') == "times") { ?>
h1, h2, h3, h4, h5, h6, .componentheading, .contentheading{font-family:"Times New Roman", Times, serif;}
<?php } elseif($this->params->get('headingFontFamily') == "courier") { ?>
h1, h2, h3, h4, h5, h6, .componentheading, .contentheading{font-family:"Courier New", Courier, monospace;}
<?php } ?>
<?php if(($this->countModules('left') == 0) && ($this->countModules('right') == 0)) { ?>
#mainbody {width:100%;} #content {width:100%;}
#container-inner {background:transparent url(<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/images/<?php echo $this->params->get('templateTheme'); ?>/container-inner.png) repeat-y scroll 0 0;}
#container-inner3 {background:transparent url(<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/images/<?php echo $this->params->get('templateTheme'); ?>/mainbody.png) no-repeat scroll 0 0;}
<?php } ?>

<?php if(($this->countModules('left') >= 1) && ($this->countModules('right') == 0)) { ?>
#mainbody {width:100%;} #content{width:78.125%;} #sidebar{width:20.6%;}
#container-inner {background:transparent url(<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/images/<?php echo $this->params->get('templateTheme'); ?>/container-inner-2cl.png) repeat-y scroll 0 0;}
#container-inner3 {background:transparent url(<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/images/<?php echo $this->params->get('templateTheme'); ?>/mainbody-2cl.png) no-repeat scroll 0 0;}
<?php } ?>

<?php if(($this->countModules('left') == 0) && ($this->countModules('right') >= 1)) { ?>
#content {width:100%;}
#container-inner {background:transparent url(<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/images/<?php echo $this->params->get('templateTheme'); ?>/container-inner-2cr.png) repeat-y scroll 0 0;}
#container-inner3 {background:transparent url(<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/images/<?php echo $this->params->get('templateTheme'); ?>/mainbody-2cr.png) no-repeat scroll 0 0;}
<?php } ?>
<?php if($this->params->get('fontColor')){ ?>
body{color:<?php echo $this->params->get('fontColor'); ?>}
<?php } ?>
<?php if($this->params->get('headingColor')){ ?>
h1, h2, h3, h4, h5, h6, .componentheading, .contentheading{color:<?php echo $this->params->get('headingColor'); ?>}
<?php } ?>
<?php if($this->params->get('linkColor')){ ?>
a:link, a:active, a:visited{color:<?php echo $this->params->get('linkColor'); ?>}
<?php } ?>
<?php if($this->params->get('linkHoverColor')){ ?>
a:hover{color:<?php echo $this->params->get('linkHoverColor'); ?>}
<?php } ?>
<?php if($this->params->get('elementsHeight')){ ?>
.elements .module div div div,
.elements .module_menu div div div,
.elements .module_text div div div,
.elements .module-ms1 div div div,
.elements .module-ms2 div div div,
.elements .module-ms3 div div div,
.elements .module-ms4 div div div
{height:<?php echo $this->params->get('elementsHeight'); ?>}
<?php } ?>
</style>
</head>
<body>
<div id="bar"></div>
<div id="wrapper">
  <?php if (($this->countModules('user1')) || ($this->countModules('user2'))) { ?>
  <div id="toolbar">
    <div class="inside">
      <?php if ($this->countModules('user1')) { ?>
      <div id="navigation">
        <jdoc:include type="modules" name="user1" />
        <div class="clr"></div>
      </div>
      <?php } ?>
      <?php if ($this->countModules('user2')) { ?>
      <div id="search">
        <jdoc:include type="modules" name="user2" />
        <div class="clr"></div>
      </div>
      <?php } ?>
      <div class="clr"></div>
    </div>
  </div>
  <?php } ?>
  <?php if (($this->countModules('banner1')) || ($this->countModules('banner2'))) { ?>
  <div id="banner">
    <?php if ($this->countModules('banner1')) { ?>
    <div id="banner-left">
      <jdoc:include type="modules" name="banner1" />
    </div>
    <?php } ?>
    <?php if ($this->countModules('banner2')) { ?>
    <div id="banner-right">
      <jdoc:include type="modules" name="banner2" style="rounded" />
    </div>
    <?php } ?>
    <div class="clr"></div>
  </div>
  <?php } ?>
  <div id="header">
    <div class="inside"> <a href="<?php echo $mainframe->getCfg('live_site'); ?>" id="logo" title="<?php echo $mainframe->getCfg('sitename'); ?>"></a>
      <?php if ($this->countModules('inset') || $this->params->get('tagLine')) { ?>
      <div id="tagline">
        <jdoc:include type="modules" name="inset" />
      <?php if ($this->countModules('inset') || $this->params->get('tagLine')) {
        echo "<h2>" . $this->params->get('tagLine'). "</h2>";
      } ?>
      </div>
      <?php } ?>
      <div class="clr"></div>
    </div>
  </div>
  <div id="container">
    <div class="inside">
      <div id="container-inner">
        <div id="container-inner2">
          <div id="container-inner3">
            <div id="mainbody">
              <div id="content">
                <div class="inside">
                  <?php if (($this->countModules('user3')) || ($this->countModules('user4')) || ($this->countModules('user5'))) { ?>
                  <table width="100%" border="0" class="elements">
                    <tr>
                      <?php if ($this->countModules('user3')) { ?>
                      <td align="left" valign="top" class="elements-left"><jdoc:include type="modules" name="user3" style="rounded" />
                      </td>
                      <?php } ?>
                      <?php if ($this->countModules('user4')) { ?>
                      <td align="left" valign="top" class="elements-mid"><jdoc:include type="modules" name="user4" style="rounded" />
                      </td>
                      <?php } ?>
                      <?php if ($this->countModules('user5')) { ?>
                      <td align="left" valign="top" class="elements-right"><jdoc:include type="modules" name="user5" style="rounded" />
                      </td>
                      <?php } ?>
                    </tr>
                  </table>
                  <?php } ?>
                  <?php if ($this->countModules('top')) { ?>
                  <div id="top">
                    <jdoc:include type="modules" name="top" style="rounded" />
                  </div>
                  <?php } ?>
                  <jdoc:include type="message" />
                  <jdoc:include type="component" />
                  <?php if ($this->countModules('bottom')) { ?>
                  <div id="bottom">
                    <jdoc:include type="modules" name="bottom" style="rounded" />
                  </div>
                  <?php } ?>
                  <?php if (($this->countModules('user6')) || ($this->countModules('user7')) || ($this->countModules('user8'))) { ?>
                  <table width="100%" border="0" class="elements">
                    <tr>
                      <?php if ($this->countModules('user6')) { ?>
                      <td align="left" valign="top" class="elements-left"><jdoc:include type="modules" name="user6" style="rounded" />
                      </td>
                      <?php } ?>
                      <?php if ($this->countModules('user7')) { ?>
                      <td align="left" valign="top" class="elements-mid"><jdoc:include type="modules" name="user7" style="rounded" />
                      </td>
                      <?php } ?>
                      <?php if ($this->countModules('user8')) { ?>
                      <td align="left" valign="top" class="elements-right"><jdoc:include type="modules" name="user8" style="rounded" />
                      </td>
                      <?php } ?>
                    </tr>
                  </table>
                  <?php } ?>
                </div>
              </div>
             




<?php if ($this->countModules('left')) { ?>
              <div id="sidebar">
                <div class="inside">
                  <jdoc:include type="modules" name="left" style="rounded" />
                </div>
              </div>
              <?php } ?>





               






















              <div class="clr"></div>
            </div>
            <?php if ($this->countModules('right')) { ?>
            <div id="sidebar2">
              <div class="inside">
                <jdoc:include type="modules" name="right" style="rounded" />
              </div>
            </div>
            <?php } ?>
            <div class="clr"></div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <?php if (($this->countModules('footer')) || ($this->countModules('user2'))) { ?>
  <div id="footer">
    <?php if ($this->countModules('user9')) { ?>
    <div id="link">
      <jdoc:include type="modules" name="user9"/>
    </div>
    <?php } ?>
    <?php if ($this->countModules('footer')) { ?>
    <div id="copy">
      <jdoc:include type="modules" name="footer"/>
      <?php /* You are free to remove or edit the following */ print "<a href=\"http://qsstudio.ru\" title=\"Быстрая поддержка сайтов\" target=\"_blank\">Создание и поддержка сайта от QSStudio</a>"; ?>
    </div>
    <?php } ?>
    <div class="clr"><!--LiveInternet counter--><script type="text/javascript"><!--
document.write("<a href='http://www.liveinternet.ru/click' "+
"target=_blank><img src='http://counter.yadro.ru/hit?t44.12;r"+
escape(document.referrer)+((typeof(screen)=="undefined")?"":
";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
";"+Math.random()+
"' alt='' title='LiveInternet' "+
"border='0' width='31' height='31'><\/a>")
//--></script><!--/LiveInternet-->
</div>
  </div>
  <?php } ?>
</div>
</body>
</html>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Превышение процессом ограничения на использование процессора

Автор Zyklonss

Ответов: 6
Просмотров: 2673
Последний ответ 07.04.2016, 21:29:09
от Zyklonss
кэш, права доступа

Автор jomz

Ответов: 3
Просмотров: 1692
Последний ответ 14.03.2016, 16:18:50
от flyingspook
Права доступа в коде

Автор Vitalik36rus

Ответов: 2
Просмотров: 1642
Последний ответ 04.11.2014, 13:23:20
от Vitalik36rus
права доступа на хостинге

Автор Andrew1110

Ответов: 6
Просмотров: 2831
Последний ответ 28.09.2013, 03:28:24
от IceBerg
Нужно сделать слайдер с помощью скрипта. Нет доступа к файлам

Автор Viktoriia

Ответов: 4
Просмотров: 1647
Последний ответ 26.09.2013, 14:13:10
от kreker92