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

spyky

  • Осваиваюсь на форуме
  • 23
  • 2 / 0
Xmap Plugin for Adsmanager
« : 09.03.2010, 20:00:37 »
Здравствуйте
Joomla 1.5.14 Adsmanager 2.5RC2 Xmap 1.2
Нашел плагин для подключения adsmanager к xmap:

Код
<?php
/**
* @author Guillermo Vargas, http://joomla.vargas.co.cr
* @email guille@vargas.co.cr
* @version $Id: com_adsmanager.php 106 2008-02-15 21:46:56Z root $
* @package Xmap
* @license GNU/GPL
* @description Xmap plugin for AdsManager Component
*/

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

/** Add support for AdsManager categories and ads to Xmap */
class xmap_com_adsmanager {

/** Get the content tree for this kind of content */
function &getTree( &$xmap, &$parent, &$params ) {
global $database;
$catid=0;
if ( strpos($parent->link, 'page=show_category') ) {
$link_query = parse_url( $parent->link );
parse_str( html_entity_decode($link_query['query']), $link_vars );
$catid = intval(mosGetParam($link_vars,'catid',0));
}


$include_ads = mosGetParam($params,'include_ads',1);
$include_ads = ( $include_ads == 1
                                  || ( $include_ads == 2 && $xmap->view == 'xml')
                                  || ( $include_ads == 3 && $xmap->view == 'html'));
$params['include_ads'] = $include_ads;

$priority = mosGetParam($params,'cat_priority',$parent->priority);
$changefreq = mosGetParam($params,'cat_changefreq',$parent->changefreq);
if ($priority  == '-1')
$priority = $parent->priority;
if ($changefreq  == '-1')
$changefreq = $parent->changefreq;

$params['cat_priority'] = $priority;
$params['cat_changefreq'] = $changefreq;

$priority = mosGetParam($params,'ad_priority',$parent->priority);
$changefreq = mosGetParam($params,'ad_changefreq',$parent->changefreq);
if ($priority  == '-1')
$priority = $parent->priority;

if ($changefreq  == '-1')
$changefreq = $parent->changefreq;

$params['ad_priority'] = $priority;
$params['ad_changefreq'] = $changefreq;

xmap_com_adsmanager::getCategories($xmap,$parent,$catid,$params);
}

function getCategories ( &$xmap, &$parent, $catid=0,&$params ) {
global $database,$mosConfig_absolute_path,$mosConfig_lang,$my;


$query = "SELECT * FROM #__adsmanager_categories WHERE `published`=1 and parent=$catid ORDER BY ordering";
$database->setQuery($query);
$rows = $database->loadAssocList();

$xmap->changeLevel(1);
foreach($rows as $row) {
$node = new stdclass;
$node->id = $parent->id;
$node->uid = $parent->uid . 'c' .$row['id'];
$node->browserNav = $parent->browserNav;
$node->name = $row['name'];
$node->modified = $xmap->now;
$node->link = 'index.php?option=com_adsmanager&amp;page=show_category&amp;catid='.$row['id'].'&amp;text_search=&amp;order=0&amp;expand=0&amp;Itemid='.$parent->id;
$node->pid = $row['parent']; // parent id
$node->priority = $params['ad_priority'];
$node->changefreq = $params['ad_changefreq'];
$xmap->printNode($node);
xmap_com_adsmanager::getCategories ( $xmap, $parent, $row['id'],$params);
    }

if ( $params['include_ads'] ) {
$query = "SELECT id,name,ad_headline FROM #__adsmanager_ads WHERE `published`=1 and category = $catid";
$database->setQuery($query);
$rows = $database->loadAssocList();

foreach ( $rows as $row ) {
$node = new stdclass;
$node->id = $parent->id;
$node->uid = $parent->uid . 'a' .$row['id'];
$node->browserNav = $parent->browserNav;
$node->name = $row['ad_headline'];
$node->modified = $xmap->now;
$node->link = 'index.php?option=com_adsmanager&amp;page=show_ad&amp;adid='.$row['id'].'&amp;catid='.$catid.'&amp;Itemid='.$parent->id;
$node->priority = $params['ad_priority'];
$node->changefreq = $params['ad_changefreq'];
$node->tree = array();
$xmap->printNode($node);
    }
}
$xmap->changeLevel(-1);
}
}

Проблема заключается в том, что номер категории берется из таблицы "_adsmanager_ads":

Код
$query = "SELECT id,name,ad_headline FROM #__adsmanager_ads WHERE `published`=1 and category = $catid";

но почему то значение параметра "category" таблицы "_adsmanager_ads" всегда равно 0, т.е. не передается номер категории в которую добавляется объявление...
Поэтому ссылка в Xmap имеет вид

...index.php?option=com_adsmanager&page=show_ad&adid=4&catid=0&Itemid=27

и объявления в карте сайта находятся на одном уровне с категориями, а не подчиняются иерархически категориям, к которым относятся..

Есть вариант брать "catid" вместо "category"  из таблицы _adsmanager_adcat, но я мало смыслю в php и у меня не получается грамотно построить такой запрос..

Так вот, почему не передается номер категории в "category" в таблицу "_adsmanager_ads" базы данных при добавлении объявления?
*

Grendy

  • Захожу иногда
  • 247
  • 26 / 0
Re: Xmap Plugin for Adsmanager
« Ответ #1 : 05.06.2010, 02:26:10 »
Взял плагин в теме http://joomlaforum.ru/index.php/topic,107576.0.html

Работает всё на ура, замечаний пока что нет... Ссылки все отображаются нормально, подобно вашему примеру не заметил при просмотре карты...  :D
Плюс в репутацию больше говорит о благодарности, чем слово "Спасибо" в теме, которую повторно, возможно, никогда уже не посетишь.
*

spyky

  • Осваиваюсь на форуме
  • 23
  • 2 / 0
Re: Xmap Plugin for Adsmanager
« Ответ #2 : 05.06.2010, 03:53:20 »
Да я тоже все решил простым откатом то есть переустановкой стабильной русской версии с этого форума плюс редактированием остальных файлов. Вобчем кто ищет найдет. Выражаю респект всем людям толковым с этого форума ибо информация бесценна, адъес амигос!!
*

grinat

  • Захожу иногда
  • 356
  • 34 / 2
Re: Xmap Plugin for AdsManager
« Ответ #3 : 08.04.2013, 00:25:18 »
Проблема заключается в том, что номер категории берется из таблицы "_adsmanager_ads":

Код
$query = "SELECT id,name,ad_headline FROM #__adsmanager_ads WHERE `published`=1 and category = $catid";

но почему то значение параметра "category" таблицы "_adsmanager_ads" всегда равно 0, т.е. не передается номер категории в которую добавляется объявление...
Поэтому ссылка в Xmap имеет вид

...index.php?option=com_adsmanager&page=show_ad&adid=4&catid=0&Itemid=27

и объявления в карте сайта находятся на одном уровне с категориями, а не подчиняются иерархически категориям, к которым относятся..

Есть вариант брать "catid" вместо "category"  из таблицы _adsmanager_adcat, но я мало смыслю в php и у меня не получается грамотно построить такой запрос..

Так вот, почему не передается номер категории в "category" в таблицу "_adsmanager_ads" базы данных при добавлении объявления?
Можно поменять с:
Код
$query = "SELECT id,name,ad_headline FROM #__adsmanager_ads WHERE `published`=1 and category = $catid";
на:
Код
$query = "SELECT id,name,ad_headline FROM #__adsmanager_ads LEFT JOIN #__adsmanager_adcat ON #__adsmanager_adcat.adid=#__adsmanager_ads.id WHERE `published`=1 and #__adsmanager_adcat.catid = $catid";
Но тогда вероятно вообще никаких ссылок не будет, поскольку полагаю что еще есть проблема в:
Цитировать
      if ( strpos($parent->link, 'page=show_category') ) {
         $link_query = parse_url( $parent->link );
         parse_str( html_entity_decode($link_query['query']), $link_vars );
         $catid = intval(mosGetParam($link_vars,'catid',0));
      }
считаю что нужно заменить:
Код
if ( strpos($parent->link, 'page=show_category') ) {
на:
Код
if ( strpos($parent->link, 'page=show_category')===true ) {
либо если не поможет на:
Код
if ( strpos($parent->link, 'page=show_category')!==false ) {
Поскольку не знаю почему, но strpos довольно капризная штука, и в некоторых случаях может работать ===true, но не работать !==false и наоборот.

p.s. код не проверял, зашел сюда случайно
*

spyky

  • Осваиваюсь на форуме
  • 23
  • 2 / 0
Re: Xmap Plugin for AdsManager
« Ответ #4 : 08.04.2013, 00:36:46 »
думаю для индексации лучше настроить связку фидбернер+твиттер чем карту сайта мутить. сейчас так сделал не парюсь
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

После обновления не работает Xmap

Автор jess

Ответов: 15
Просмотров: 1168
Последний ответ 17.01.2019, 14:43:56
от palexa
Xmap не загружает.xml карту с включенным кэшированием!

Автор Dim

Ответов: 12
Просмотров: 466
Последний ответ 17.12.2018, 19:53:13
от lexxbry
Xmap и OSmap

Автор kreativ

Ответов: 3
Просмотров: 901
Последний ответ 18.09.2018, 10:43:29
от almika
[Решено] При включеннии плагина Xmap - Content Plugin - ошибка 1054

Автор maiak

Ответов: 10
Просмотров: 3318
Последний ответ 07.09.2018, 10:26:29
от k-redactor
Здравствуйте! Xmap установил, но карта сайта не отображается

Автор vitalkun

Ответов: 2
Просмотров: 1195
Последний ответ 09.05.2018, 15:10:27
от ddenov