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

profitural

  • Захожу иногда
  • 50
  • 2 / 0
Доброго времени суток!
Возник вопрос, как сделать красивое горизонтальное меню со скругленными углами пунктов?
Вариант со скруглением в CSS не подходит, т.к. фон пунктов меню должен быть картинкой с градиентом, можно конечно сделать одинаковую ширину пунктов и зафигачить один и тот же фон, но не вариант, некоторые заголовки длинные и все попросту не влезут в ширину шаблона отведенную под меню. Хочется что бы фон каждого пункта меню подстраивался под длину заголовка.
Нашел готовые решения тут http://webmastermix.ru/css-blanks/91-gorizontalnoe-menyu-dlya-saita.html
вот код меню:
Код
<div id="menu">
<ul>
<li><a href="#" class="current"><span>Главная</span></a></li>
<li><a href="#"><span>Вторая ссылка</span></a></li>
<li><a href="#"><span>Третья</span></a></li>
<li><a href="#"><span>И еще вот</span></a></li>
</ul>
</div>
Но на деле оказалось все сложнее, ведь стандартный mod_menu в Joomla 2.5 генерирует HTML код таким образом:
Код
<div id="menu">
<ul class="menu">
<li class="item-101 current active"><a href="#" >Главная</a></li>
<li class="item-108"><a href="#" >Вторая ссылка</a></li>
<li class="item-109"><a href="#" >Третья</a></li>
<li class="item-110"><a href="#" >И еще вот</a></li>
</ul>
</div>
И получается что <span> отвечающие за красоту попросту теряются. Подозреваю что нужно копаться в файле default.php в \modules\mod_menu\tmpl, но к сожалению в php не силен, ума не приложу как там этот span добавить, чтоб он отображался.

Ну и думается мне что есть и другие решения проще и с помощью одного CSS (хотя Google в этом мне не помог)

У кого какие соображения по этому поводу? Посоветуйте?

П.С. Сторонние модули ставить не хочется, с ними тоже много проблем возникает как правило...
« Последнее редактирование: 19.04.2013, 13:02:30 от profitural »
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
если бы еще видеть исходный код вот этого файла default.php ---- \modules\mod_menu\tmpl было бы совсем хорошо
по идеи, в этом файле нужно отыскать строку, которая отвечает за вывод
<li class="item-101 current active"><a href="#" >Главная</a></li>
и в нее добавить <span>

или такой вариант - добавить (переместить) настройку отображения <span> к стилям <li> класса меню
насчет этого варианта не знаю, может сработает, а может и нет, но попробовать можно
*

profitural

  • Захожу иногда
  • 50
  • 2 / 0
Цитировать
если бы еще видеть исходный код вот этого файла default.php ---- \modules\mod_menu\tmpl было бы совсем хорошо
Вот этот код
Код
<?php
/**
 * @package Joomla.Site
 * @subpackage mod_menu
 * @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license GNU General Public License version 2 or later; see LICENSE.txt
 */

// No direct access.
defined('_JEXEC') or die;

// Note. It is important to remove spaces between elements.
?>

<ul class="menu<?php echo $class_sfx;?>"<?php
$tag = '';
if ($params->get('tag_id')!=NULL) {
$tag = $params->get('tag_id').'';
echo ' id="'.$tag.'"';
}
?>>
<?php
foreach ($list as $i => &$item) :
$class = 'item-'.$item->id;
if ($item->id == $active_id) {
$class .= ' current';
}

if (in_array($item->id, $path)) {
$class .= ' active';
}
elseif ($item->type == 'alias') {
$aliasToId = $item->params->get('aliasoptions');
if (count($path) > 0 && $aliasToId == $path[count($path)-1]) {
$class .= ' active';
}
elseif (in_array($aliasToId, $path)) {
$class .= ' alias-parent-active';
}
}

if ($item->deeper) {
$class .= ' deeper';
}

if ($item->parent) {
$class .= ' parent';
}

if (!empty($class)) {
$class = ' class="'.trim($class).'"';
}

echo '<li'.$class.'>';

// Render the menu item.

switch ($item->type) :
case 'separator':
case 'url':
case 'component':
require JModuleHelper::getLayoutPath('mod_menu', 'default_'.$item->type);
break;

default:
require JModuleHelper::getLayoutPath('mod_menu', 'default_url');
break;
endswitch;


// The next item is deeper.
if ($item->deeper) {
echo '<ul>';
}
// The next item is shallower.
elseif ($item->shallower) {
echo '</li>';
echo str_repeat('</ul></li>', $item->level_diff);
}
// The next item is on the same level.
else {
echo '</li>';
}
endforeach;
?></ul>

Цитировать
или такой вариант - добавить (переместить) настройку отображения <span> к стилям <li> класса меню
насчет этого варианта не знаю, может сработает, а может и нет, но попробовать можно

Дело  в том, что фон пункта динамический (растягивающийся по длине автоматически) и состоит из двух картинок, левая - фон класса <li>, и правая - фон классов <spsn>
Код
#menu{
width:800px;
height:66px;

}
.menu ul{
list-style:none;
padding:0 25px;
}
.menu li{
list-style:none;
display:block;
float:left;
height:66px;
line-height:66px;
vertical-align:middle;
margin-top: 0;
margin-right: 2px;
margin-bottom: 0;
margin-left: 2px;
}
.menu li a{
display:block;
float:left;
color:#FFFFFF;
text-transform:uppercase;
font-size:16px;
padding:0 0 0 15px;
text-decoration:none;
cursor:pointer;
}
.menu li a span{
display:block;
float:left;
color:#333333;
padding:0 30px 0 15px;
}
.menu li a:hover{
display:block;
float:left;
background-image: url(../images/1menu-bg_l.png);
background-repeat: no-repeat;
}
.menu li a:hover span{
display:block;
float:left;
color:#FFFFFF;
background:url(../images/1menu-bg_r.png) no-repeat right;
}
.menu li a.current{
display:block;
float:left;
color:#FFFFFF;
text-transform:uppercase;
font-size:16px;
padding:0 0 0 15px;
text-decoration:none;
background-image: url(../images/1menu-bg_l.png);
background-repeat: no-repeat;
}
.menu li a.current span{
display:block;
float:left;
background:url(../images/1menu-bg_r.png) no-repeat right;
color:#FFFFFF;
padding:0 38px 0 18px;
}


*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Создание сайтов, шаблонов, помощь в решении проблем.
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
не уверен, но попробовать/поиграться со строками можно
в строку --- echo '<li'.$class.'>'; добавляем span --- echo '<li'.$class.'><span>';
и его же закрываем/добавляем в строках, где есть </li>
*

profitural

  • Захожу иногда
  • 50
  • 2 / 0
не уверен, но попробовать/поиграться со строками можно
в строку --- echo '<li'.$class.'>'; добавляем span --- echo '<li'.$class.'><span>';
и его же закрываем/добавляем в строках, где есть </li>
Не могли бы в коде продемонстрировать? я пробую добавлять, сайт вообще выключается и жалуется на строки в этом файле

Нужен default_component php
Вот он
Код
<?php
/**
 * @package Joomla.Site
 * @subpackage mod_menu
 * @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license GNU General Public License version 2 or later; see LICENSE.txt
 */

// No direct access.
defined('_JEXEC') or die;

// Note. It is important to remove spaces between elements.
$class = $item->anchor_css ? 'class="'.$item->anchor_css.'" ' : '';
$title = $item->anchor_title ? 'title="'.$item->anchor_title.'" ' : '';
if ($item->menu_image) {
$item->params->get('menu_text', 1 )?
$linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" /><span class="image-title">'.$item->title.'</span> ' :
$linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" />';
}
else { $linktype = $item->title;
}

switch ($item->browserNav) :
default:
case 0:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 1:
// _blank
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" target="_blank" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 2:
// window.open
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title; ?>><?php echo $linktype; ?></a>
<?php
break;
endswitch;
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Ну, вот он ;)
Код
// Note. It is important to remove spaces between elements.
$class = $item->anchor_css ? 'class="'.$item->anchor_css.'" ' : '';
$title = $item->anchor_title ? 'title="'.$item->anchor_title.'" ' : '';
if ($item->menu_image) {
$item->params->get('menu_text', 1 )?
$linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" /><span class="image-title">'.$item->title.'</span> ' :
$linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" />';
}
else { $linktype = $item->title;
}

switch ($item->browserNav) :
default:
case 0:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><span><?php echo $linktype; ?></span></a><?php
break;
case 1:
// _blank
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" target="_blank" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 2:
// window.open
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title; ?>><?php echo $linktype; ?></a>
<?php
break;
endswitch;
Создание сайтов, шаблонов, помощь в решении проблем.
*

profitural

  • Захожу иногда
  • 50
  • 2 / 0
Ну, вот он ;)
Код
// Note. It is important to remove spaces between elements.
....

Ура! Заработало, спасибо!

Сейчас можно и мануал небольшой запилить, думаю многие начинающие шаблоноделы с такой проблемкой сталкиваются.
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Ура! Заработало, спасибо!
Сейчас можно и мануал небольшой запилить, думаю многие начинающие шаблоноделы с такой проблемкой сталкиваются.
Да какой там мануал. Это не PHP а HTML.
Разметка, которую вы видите в исходном коде на фронтенд, где-то формируется. Обычно её стараются вынести в шаблоны. (не index.php, а шаблоны компонентов, модулей...)
Было
Цитировать
<a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a>
Если убрать всё "непонятное пхп", между <?php...?> - получится обычная разметка
<a href=""></a>
Зачем писать мануал, как сюда span вставить? Таких мануалов навалом
Создание сайтов, шаблонов, помощь в решении проблем.
*

Гринвич

  • Захожу иногда
  • 213
  • 0 / 0
Ребята расскажите пожалуйста чайнику, куда нужно вставлять коды (или сами файлы CSS) из менюшек.
Для примера хотя бы таких http://webmastermix.ru/css-blanks/91-gorizontalnoe-menyu-dlya-saita.html
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Кликабельность псевдоэлемента в пункте меню

Автор vasilii.pupkov

Ответов: 4
Просмотров: 3606
Последний ответ 29.12.2021, 23:15:38
от v42bis
Выпадающее меню

Автор DrShepard

Ответов: 10
Просмотров: 3037
Последний ответ 20.10.2021, 12:36:16
от DrShepard
Как закруглить края выпадающего меню?

Автор coliandra

Ответов: 1
Просмотров: 1510
Последний ответ 11.12.2020, 21:15:57
от effrit
При прокрутке страницы виджет залезает на меню

Автор coliandra

Ответов: 2
Просмотров: 1433
Последний ответ 27.11.2020, 11:33:58
от coliandra
Как поставить такой курсор на сайт Joomla?

Автор Romanych

Ответов: 0
Просмотров: 1065
Последний ответ 05.11.2020, 21:45:29
от Romanych