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

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
Добрый день.
Можно ли реализовать в адс 2.6.5 вывод похожих объявлений.Объявления, которые из одной категории или с похожим названием или просто случайные объявления в развернутом виде.
« Последнее редактирование: 24.06.2012, 11:44:09 от lovivolnu »
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Re: Похожие объявления
« Ответ #1 : 07.05.2012, 18:40:35 »
Можно. Просто считывайте определенное количество объявлений из той категорий, в которой находится объявление, и выводите их
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
Re: Похожие объявления
« Ответ #2 : 07.05.2012, 19:15:52 »
если бы я только знал как это сделать)))
*

Grendy

  • Захожу иногда
  • 247
  • 26 / 0
Re: Похожие объявления
« Ответ #3 : 13.05.2012, 13:55:17 »
если бы я только знал как это сделать)))
По аналогии с "Последними объявлениями". Практически готовый код есть, стоит только поискать ;)
Плюс в репутацию больше говорит о благодарности, чем слово "Спасибо" в теме, которую повторно, возможно, никогда уже не посетишь.
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
Re: Похожие объявления
« Ответ #4 : 24.06.2012, 10:49:07 »
Помогите,кто реализовал себе такой модуль.
*

pavel555ru

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Всем привет. Мне тоже нужен модуль похожих объявлений, который будет располагаться под текущим просматриваемым объявлением. Давайте начнем хоть с чего-то. Можно взять за основу модуль вывода последних/популярных/случайных объявлений, который в комплекте - mod_adsmanager_ads. Установить в настройках категорий "-1" и Latest и вставить модуль в специально созданную позицию под объявлением. В принципе, это будет почти то, что нужно, за исключением того, что в блоке будет выводиться в том числе и то объявление, которое показано в данный момент. Оно в блоке ни к чему, надо убрать. Плюс, хотелось бы добавить критерий похожести, например, в блоке должны выводиться объявления только по тому же городу, что и текущее. Таким образом, нам надо:
1) сделать проверку, попало ли в блок текущее объявление, если да - удалить его;
2) добавить критерий похожести. Т.е. добавлять в блок только объявления, у которых поле city в таблице #__adsmanager_ads совпадает с полем city текущего объявления (таким образом можно реализовать и другие критерии, не только по городу).

Далее одной логики становится недостаточно, нужны еще знания php, с которыми не очень, так что пожалуйста помогите, кто разбирается. Говорим о AdsManager 2.7 Stable. Итак, берем модуль mod_adsmanager_ads. Код вывода блока объявлений находится в файле vertical.php (horizontal.php):
Код: php
foreach($contents as $row) {
?>
<li class="mostread">
<?php
$linkTarget = TRoute::_("index.php?option=com_adsmanager&view=details&id=".$row->id."&catid=".$row->catid);
echo "<a href='$linkTarget'>".$row->ad_headline."</a>";
if ($displaycategory == 1)
echo "&nbsp;<span class=\"adsmanager_cat\">(".$row->parent." / ".$row->cat.")";
if ($displaydate == 1)
echo "&nbsp;".reorderDate($row->date_created)."</span>";
?>
</li>
<?php
}

$contents для этого отрезка определяется в файле mod_adsmanager_ads.php:
Код: php
$contents = $contentmodel->getLatestContents($nb_ads,$sort_sql,$catselect);

Функция getLatestContents, непосредственно формирующая $contents, находится в файле \administrator_com_adsmanager\models\content.php:
Код: php
function getLatestContents($nbcontents,$sort_type=0,$catselect="no")
    {
switch($sort_type)
{
/* Popular */
case 2:
$order_sql = "ORDER BY a.views DESC,a.date_created DESC ,a.id DESC ";
break;

/* Random */
case 1:
$order_sql = "ORDER BY RAND() ";
break;

/* Latest */
case 0:
default:
$order_sql = "ORDER BY a.date_created DESC ,a.id DESC ";
break;
}

$cat_query = "";
switch($catselect)
{
case "no";
break;

case "-1":
$catid = JRequest::getInt('catid', 0 );
$this->_db->setQuery( "SELECT c.id, c.name,c.parent ".
" FROM #__adsmanager_categories as c ".
" WHERE c.published = 1 ORDER BY c.parent,c.ordering");
$listcats = $this->_db->loadObjectList();
//List
$list = array();
$list[] = $catid;
$this->_recurseSearch($listcats,$list,$catid);
$listids = implode(',', $list);
if (($catid != 0)&&($catid != -1))
{
$cat_query = "adcat.catid IN ($listids) AND ";
}
break;
default:
$cat_query = "adcat.catid = $catselect AND ";
break;
}

if (ADSMANAGER_SPECIAL == 'newspaper') {
$cat_query .= " (a.ad_publishtype = 'both' OR a.ad_publishtype = 'online') AND ";
}

$sql =  " SELECT a.*,p.id as parentid,p.name as parent,c.id as catid, c.name as cat,u.username as user ".
   " FROM #__adsmanager_ads as a ".
" INNER JOIN #__adsmanager_adcat as adcat ON adcat.adid = a.id ".
" LEFT JOIN #__users as u ON a.userid = u.id ".
" INNER JOIN #__adsmanager_categories as c ON adcat.catid = c.id ".
" LEFT JOIN #__adsmanager_categories as p ON c.parent = p.id ".
" WHERE 1 AND $cat_query c.published = 1 and a.published = 1 GROUP BY a.id $order_sql LIMIT 0, $nbcontents";

if (function_exists("updateQuery"))
     updateQuery($sql);
    
     $this->_db->setQuery($sql);
    
$contents = $this->_db->loadObjectList();

foreach($contents as &$content) {
$content->images = @json_decode($content->images);
$content->cat = JText::_($content->cat);
if ($content->parent != "")
$content->parent = JText::_($content->parent);
if (!is_array($content->images))
$content->images = array();
}

return $contents;
    }

Вопрос к спецам, куда и что добавить, чтобы сделать пункты 1) и 2)?
« Последнее редактирование: 07.11.2012, 19:03:40 от pavel555ru »
*

pavel555ru

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Ау, гуру php, дайте совет!
*

Миша_М

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Да, действительно - задачка.
В К2 это хорошо реализовано по тегам, а джумловские модули не хотят замечать AdsManager.
И чё делать? Где гуру?  :D
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Редактировать все объявления

Автор den_ko

Ответов: 32
Просмотров: 12746
Последний ответ 25.11.2021, 10:43:38
от FlexNL
Слетают категории объявления

Автор guardnext

Ответов: 1
Просмотров: 3498
Последний ответ 09.07.2019, 10:10:59
от guardnext
Привязать модуль mod_paidsystem_feat поиску

Автор efimov777

Ответов: 5
Просмотров: 1286
Последний ответ 27.02.2018, 18:57:55
от efimov777
AdsManger не удаляет объявления

Автор kozhenevsky

Ответов: 0
Просмотров: 1530
Последний ответ 15.02.2018, 12:08:29
от kozhenevsky
Привязать модуль mod_adsmanager_ads к категории

Автор efimov777

Ответов: 2
Просмотров: 16168
Последний ответ 01.02.2018, 14:01:16
от efimov777