Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 2940 Просмотров
*

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
Просмотров: 10324
Последний ответ 25.11.2021, 10:43:38
от FlexNL
Слетают категории объявления

Автор guardnext

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

Автор efimov777

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

Автор kozhenevsky

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

Автор efimov777

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