Новости Joomla

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

Joker

  • Захожу иногда
  • 235
  • 3 / 0
Добрый день, подскажите как решить проблему :
1) есть написаный компонент
2) написал extensions для xmap (Joostina 1.2)
вод код
Код
      function getTree( &$xmap, &$parent, &$params )
{              $include_entries = ( $include_entries == 1
                   || ( $include_entries == 2 && )
   || ( $include_entries == 3 && $xmap->view == 'html'));
$params['include_entries'] = $include_entries;

global $database;
$list = array();
$query = "SELECT * FROM #__antijob_categ
 WHERE published=1  ORDER BY id_parent";
$database->setQuery($query);
$cats = $database->loadObjectList();
//get list of categories
$xmap->changeLevel(1);
$node = new stdclass;
$node->id   = $parent->id;
$node->browserNav = $parent->browserNav;
foreach ( $cats as $cat ) {

$node->name = $cat->name;
$node->link = $parent->link.'&task=view_cat&cat_id='.$cat->id;
//$xmap->printNode($node);
if ( $xmap->printNode($node) !== FALSE ) {
xmap_com_antijob::getCategoryFirm($xmap,&$parent,$cat->id);
}
}

      $xmap->changeLevel(-1);
}


// Возвращает ФИРМЫ в категории


  function getCategoryFirm (&$xmap,&$parent, $id ) {
  global $database;

// содержимое категории
$query = "SELECT a.* FROM #__antijob_firm AS a"
         . "\nWHERE a.published='1' AND id_categ='{$id}' ";

$database->setQuery($query);
$firms = $database->loadObjectList();
//get list of categories
$xmap->changeLevel(2);
$node = new stdclass;
$node->id   = $parent->id;
$node->browserNav = $parent->browserNav;
foreach ( $firms as $firm ) {

$node->name = $firm->name_firm;
$node->link = $parent->link.'&task=view_firm&firm_id='.$firm->id;
//echo  $node->name. $node->link;
$xmap->printNode($node);
       }
        $xmap->changeLevel(-2);
     }
}
В нем все просто : 1я ф-я выводит род. категории
                           2я со сдвигом фирмы в каждой из категории
вот тут можно посмотреть, что  для компонента во фронтенде все построилось на ура.



4) проблема возникает при формирование XML там данных нет об компоненте и о той инф. что выводилась выше,


КАК добавить в extensions данные чтобы добовлялись в XML. что за это отвечает ? !!!???!!! !!!???!!!

Пробовал разобрать другие extensions но ненашел ответа. прошу помощи у сообщества
« Последнее редактирование: 21.05.2009, 16:29:39 от boston »
*

boston

  • Захожу иногда
  • 495
  • 222 / 3
Re: Xmap и собственный компоненет
« Ответ #1 : 16.05.2009, 15:40:58 »
Надо добавить pid в каждом проходе, что бы получилось типа:
$node->pid = $parent->id;

Самая новая Joostina 1.3.0.5 UTF-8 stable | О найденных ошибках сообщаем | Расширения Joostina
*

Joker

  • Захожу иногда
  • 235
  • 3 / 0
Re: Xmap и собственный компоненет
« Ответ #2 : 16.05.2009, 16:19:43 »
вот например хочу просто  в xml добавить категории
в foreach как ты и сказал добавляю:

$node->pid = $firm->id;


Код
	// Возвращает ФИРМЫ в категории        

  function getCategoryFirm (&$xmap,&$parent, $id ) {
  global $database;

// содержимое категории
$query = "SELECT a.* FROM #__antijob_firm AS a"
         . "\nWHERE a.published='1' AND id_categ='{$id}' ";

$database->setQuery($query);
$firms = $database->loadObjectList();
//get list of categories
$xmap->changeLevel(2);
$node = new stdclass;
$node->id = $parent->id;
$node->browserNav = $parent->browserNav;
foreach ( $firms as $firm ) {

$node->name = $firm->name_firm;
[b]  $node->pid = $parent->id;//  пробовал $node->pid = $firm->id; и  др. переменные[/b]
$node->link = $parent->link.'&task=view_firm&firm_id='.$firm->id;
//echo  $node->name. $node->link;
$xmap->printNode($node);
      }
        $xmap->changeLevel(-2);
     }

поясни пож-та что  это за команда
$node->pid = $firm->id;

и для чего она нужна.

Я так подразумеваю чтобы для генерации XML файла  нужны несколько команд, может я не все перечислил
*

boston

  • Захожу иногда
  • 495
  • 222 / 3
Re: Xmap и собственный компоненет
« Ответ #3 : 18.05.2009, 19:34:13 »
Дополнение сработало?
Если нет - поставь выше цикла.
Сам если честно не знаю что это за зверь, думаю что идентификатор родителя, типа парент_ид.

Стукни в асю днём, посмотрю где можно пример найти.
Самая новая Joostina 1.3.0.5 UTF-8 stable | О найденных ошибках сообщаем | Расширения Joostina
*

Joker

  • Захожу иногда
  • 235
  • 3 / 0
Re: Xmap и собственный компоненет
« Ответ #4 : 18.05.2009, 19:43:16 »
дополнение firebird да работает на ура а вот мое все так же не может в XML добавить записи
*

boston

  • Захожу иногда
  • 495
  • 222 / 3
Re: Xmap и собственный компоненет
« Ответ #5 : 18.05.2009, 20:31:47 »
Поставь pid выше.
Самая новая Joostina 1.3.0.5 UTF-8 stable | О найденных ошибках сообщаем | Расширения Joostina
*

Joker

  • Захожу иногда
  • 235
  • 3 / 0
Re: Xmap и собственный компоненет
« Ответ #6 : 18.05.2009, 20:43:43 »
Поставь pid выше.

но ведь $node->pid = $firm->id;  береться только в теле foreach;

я пробовал и выше его ставить безрезультатно -(
*

boston

  • Захожу иногда
  • 495
  • 222 / 3
Re: Xmap и собственный компоненет
« Ответ #7 : 18.05.2009, 21:35:23 »
Давай в асе пообщаемся, у меня на работе есть сторонний рабочий плагин.
Самая новая Joostina 1.3.0.5 UTF-8 stable | О найденных ошибках сообщаем | Расширения Joostina
*

Joker

  • Захожу иногда
  • 235
  • 3 / 0
Re: Xmap и собственный компоненет
« Ответ #8 : 19.05.2009, 12:04:00 »
Признателен Boston? очень помог.

Вот выкладываю пример с комментариями -)
Код: php
// запрет прямого доступа
defined('_VALID_MOS') or die();

class xmap_com_имякомпонента{  // класс должен совпадать с именем компонента
function &getTree( &$xmap, &$parent ){
global $database, $mosConfig_absolute_path;   // запраш. глоб переменные
$list = array();

         // формируем SQL запрос , например вывод всех глабальных категорий в компоненте, или категориий которые не имеют род.категорий, т.е родители

        $sql = 'SELECT id,title FROM `#__нужная таблица` WHERE  categorie_id='0' ORDER BY id DESC';
 

$objResults = $database->setQuery($sql);
$rows = $database->loadObjectList();
$modified = time();  // отолслали  к Joomla и вернули результат, дальше работаем с ним


$xmap->changeLevel(1); // уровень вложенности в данном случие 1, если былаюбы подкатегория род.категории то стояло бы
                                 // $xmap->changeLevel(2);

foreach($rows as $row){  //  пробегаем по массиву и формируем карту
$node = new stdclass;

$node->id = $parent->id;         // id нужно для XML
                        $node->uid = $parent->uid . 'a' . $row->id;
$node->browserNav = $parent->browserNav;
$node->name = $row->title;      // заголовок в карте сайта (фронтенд)
$node->modified = $modified;
$node->link = "index.php?option=com_имякомпонента_&task=".$task."&id=".$row->id;     // формируем cskre
$node->pid = $parent->id;      // id hjlbntkz нужно для XML   

$xmap->printNode($node);     // ф-я выводит содержимое
                     
                       /*ЗДЕСЬ можно сделать вывод дочерних категорий, сделав вывыод ф-и и передав в нее id родителя или что угодно*/


}
$xmap->changeLevel(-1);                  // закрыли нашу вложенность которая была вверху
return $list;                                     // сделали return
}
};
может кому то поможет
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор jess

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

Автор Dim

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

Автор kreativ

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

Автор maiak

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

Автор vitalkun

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