Перейти к содержанию
MATPOCKuH

[Решено] Модернизация sitemap. Работа с базой в контексте движка

Рекомендуемые сообщения

Добрый день, уважаемые!

Если вкратце, есть модуль, который генерирует много старничек. Адреса и прочее хранится в базе. Вопрос - как можно поменять вывод стандартного sitemap, чтобы в него заливать автоматом адреса сгенереных страничек?

Посмотрел контролер sitemap.php - не понял, как и откуда он берет инфу по категориям и другим ссылкам. Скорее всего это все зарыто внутри класса, разбираться уже бошка не варит.

Мне надо подключится к базе данных, в рамках контекста движка, выкачать ссылки из таблицы (в массив) и после этого вставить их на страницу (в sitemap.tpl скорее всего). Как это лучше сделать? Можно прсото ткнуть рукой в похожие решения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>> Можно прсото ткнуть рукой в похожие решения.

родные категории/статьи в том же sitemap.

только ж вы не осилили...

>> Посмотрел контролер sitemap.php - не понял, как и откуда он берет инфу по категориям и другим ссылкам.

- - -

какой модуль? какие адреса? как хранит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Файл sitemap.php(обработка данных):

//подгрузка модели (model/catalog/manufacturer.php)
$this->load->model('catalog/manufacturer');
//Вызов функции подгруженной модели
$manufacturers = $this->model_catalog_manufacturer->getManufacturers();
//обработка данных и добавление в вывод
foreach ($manufacturers as $manufacturer) {
	$output .= '<url>';
	$output .= '<loc>' . str_replace('&', '&', str_replace('&', '&', $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $manufacturer['manufacturer_id']))) . '</loc>';
	$output .= '<changefreq>weekly</changefreq>';
	$output .= '<priority>0.7</priority>';
	$output .= '</url>';
}

Файл model/catalog/manufacturer.php(запрос данных):

public function getManufacturers() {
	$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer ...");
	return $query-rows;
} 

По аналогии создаете или изменяете модель, где запрашиваете данные, и создаете или меняете контроллер, который обработает ссылки и создаст структуру XML файла sitemap, в нем же передаете все на вывод(напрямую или же в шаблон).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
halfhope

 - большое спасибо! Да, то что нужно, похоже. Вчера поздно ночью сел разбираться и уже голова не варила, и по этому решил спросить у уважаемого сообщества.      

afwollis

- неосилил, каюсь. :) Сегодня буду разбираться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемые, вопрос вам. Поразбирался с MVClСделал свой тестовый модуль fplinks. Поместил его в папку information рядом с контактами и сайтмапом, по структуре из документации, создал к нему контроллер, шаблон, модель, все дела (языковый файлы там пока не нужны). Пытаюсь обратиться к нему по адресу вида site.ru/index.php?route=information/fplinks - пишет, что  "Запрашиваемая страница не найдена!"

site.ru/index.php?route=information/sitemap - в то же время работает нормально. Что я делаю не так? SeoPro включено. ocStore Версия 1.5.5.1.2

 

И могу ли я выводить своим модулем в другой шаблон? Например своим модулем my_module в шаблон sitemap.tpl. Для этого я должен его подключить в контроллере и все?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

показать заголовок метода index

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемые, большое спасибо, разобрался с контроллерами и допилил стандартный сайтмап - контроллер и шаблон со своей моделью, которая дергает данные из базы. Теперь все ок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.