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

vic1379

  • Новичок
  • 6
  • 0 / 0
Здравствуйте. Как вывести количество материалов в блоге категорий?
Вот пример:
Бизнес идеи(37)
То есть, чтоб в скобках показывало количество метериалов в блоге категорий.
Joomla 2.5.9, шаблон JA Purity II
*

midav

  • Давно я тут
  • 926
  • 115 / 1
Количество материалов где ? В каждой категории ?
Ответы на вопросы по CSS . Откройте для себя Firebug
*

vic1379

  • Новичок
  • 6
  • 0 / 0
Вот так примерно:
Меню
Блог категории например один (и в скобках нужно вывести количество материалов, например в этой категории 20 материалов )
Блог категории например два (здесь 100)
Блог категории например три (здесь 5)
*

midav

  • Давно я тут
  • 926
  • 115 / 1
Так где Вы хотите выводить количество материалов ? В модуле меню ?
Если хотите получить ответ, а тем более получить его побыстрее, учитесь корректно и правильно задавать вопросы .
Ответы на вопросы по CSS . Откройте для себя Firebug
*

vic1379

  • Новичок
  • 6
  • 0 / 0
В модуле меню конечно, в котором нужно в каждом блоге категорий, вывести количество материалов в скобках.
*

midav

  • Давно я тут
  • 926
  • 115 / 1
В модуле меню конечно, в котором нужно в каждом блоге категорий, вывести количество материалов в скобках.

Из вопроса в первом посте это никак не понятно .

В файле \templates\шаблон\html\mod_menu\default_component.php вставьте :
Код: php
$count = '';
if ($item->query['view'] == 'category') {
$db = JFactory::getDbo();
$query = $db->getQuery(true);

$query->select('COUNT(*)');
$query->from('#__content');
$query->where("`catid`= '".$item->query['id']."' AND `state` = '1'");

$db->setQuery($query);
$count = ' ( '.$db->loadResult().' )';
}

И потом выведите эту полученную переменную в нужном месте :
Код: php
switch ($item->browserNav) :
default:
case 0:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; echo $count; ?></a>
Ответы на вопросы по CSS . Откройте для себя Firebug
*

vic1379

  • Новичок
  • 6
  • 0 / 0
Спасибо за помощь, ваш вариант работает, но в моем шаблоне нет папки mod_menu, я взял скопировал ее из другого шаблона и вставил вами написанный код все выводиться вроде нормально, и уточню что в скопированной папке mod_menu оставил только default_component.php. Вот впрочем и все мои подвиги. Возможный такой вариант или нет?
*

midav

  • Давно я тут
  • 926
  • 115 / 1
Ну если работает, значит возможен :)
Ответы на вопросы по CSS . Откройте для себя Firebug
*

tkm

  • Захожу иногда
  • 69
  • 0 / 0
Спасибо за ваше решение, Но вот есть проблема. Выводит нормально если нет вложенности пунктов меню. А как можно вывести суммарное количество статей в пункте меню верхнего уровня
http://c2n.me/j41rWn
*

midav

  • Давно я тут
  • 926
  • 115 / 1
Можно попробовать вот так . Чтобы не портить оригинальные файлы, можно создать для нужных типов меню отдельный макет в своем шаблоне . Ну или с дефолтным шаблоном вывода меню эксперементировать, но обязательно в своем шаблоне. Как описано в постах выше .
Если работать с дефолтным, то будут затронуты все модули меню. Если это не актуально, то работайте с дефолтным.
В начале файла default.php вставляем код :
Код: php
$db = JFactory::getDbo();

$query = $db->getQuery(true);
$query->select('`id`, `parent_id`, `lft`, `rgt`');
$query->from('#__categories');
$query->where('`extension` = "com_content" AND `published` = 1 ');
$db->setQuery($query);
$cat_tmp = $db->loadAssocList() ;

foreach($cat_tmp as $v){
$cat[$v['id']]['id'] = $v['id'];
$cat[$v['id']]['parent_id'] = $v['parent_id'];
$cat[$v['id']]['lft'] = $v['lft'];
$cat[$v['id']]['rgt'] = $v['rgt']; 
}

Потом в файле default_component.php , опять же в начале,  добавляем код :
Код: php
$db = JFactory::getDbo();

$count = '';

if($item->query['view'] == 'category'){

$query = $db->getQuery(TRUE); 
$query->select('`id`, `title` ');
$query->from('#__categories as c');
$query->where('`published` = 1 and `extension` = "com_content" and `lft` BETWEEN '.$cat[$item->query['id']]['lft'].' AND '.$cat[$item->query['id']]['rgt'].' ');
$db->setQuery($query);
$res = $db->loadAssocList(); //jbdump($res);

$in_value = '';
$count_res = count($res);
$i = 1;
foreach($res as $v){
if($i!=$count_res){
$in_value .= $v['id'].',';
}
else{
$in_value .= $v['id'].'';
}
$i++;

}

$where = "`state` = '1' AND `catid` IN(".$in_value.")" ;

$query = $db->getQuery(true);
$query->select('COUNT(`id`)');
$query->from('#__content');
$query->where( $where );
$db->setQuery($query);
$count = ' ( '.$db->loadResult().' )';

}

Ну и естесственно потом выводим переменную $count в нужном месте .
Это будет работать . Но добавит по два запроса в базу данных на каждый пункт меню, в котором выводится количество материалов . Хотя запросы простые и не должны особо затормозить сайт :)
Ответы на вопросы по CSS . Откройте для себя Firebug
*

midav

  • Давно я тут
  • 926
  • 115 / 1
Классно  ^-^

Благодаря решению от Fedor Vlasenko , код для товарища tkm сильно упрощается :) В файл default_component.php  надо добавить :
Код: php
$count = '';

if($item->query['view'] == 'category'){

$count = JCategories::getInstance('Content', array('countItems'=>true))->get($item->query['id'])->getNumItems(true);

}
И Joomla сама все посчитает .
Ответы на вопросы по CSS . Откройте для себя Firebug
*

tkm

  • Захожу иногда
  • 69
  • 0 / 0
А в какое конкретно место файла добавлять эту конструкцию?
*

midav

  • Давно я тут
  • 926
  • 115 / 1
А в какое конкретно место файла добавлять эту конструкцию?

В начале файла, после проверки
Код
defined('_JEXEC') or die;
А саму переменную $count выводите там где нужно и оформляете её вывод, так как нравится . Тегами, классами и т.п.
Ответы на вопросы по CSS . Откройте для себя Firebug
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с редактированием материалов

Автор olesya

Ответов: 15
Просмотров: 3417
Последний ответ 12.07.2020, 12:46:06
от NataliS
Как вывести все категории VirtueMart 3 второго уровня списком?

Автор Damarkuzz

Ответов: 0
Просмотров: 1262
Последний ответ 06.07.2020, 18:58:23
от Damarkuzz
Как вывести путь материала на страницу?

Автор Gromz

Ответов: 6
Просмотров: 2105
Последний ответ 14.12.2019, 20:19:21
от Gromz
Как вывести данные из stdClass Object в Joomla?

Автор specialist-web

Ответов: 7
Просмотров: 2831
Последний ответ 06.05.2019, 18:24:37
от specialist-web
Код вывести название страницы

Автор qvaro

Ответов: 1
Просмотров: 1470
Последний ответ 24.11.2018, 18:33:07
от beliyadm