Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

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

Если вкратце, есть модуль, который генерирует много старничек. Адреса и прочее хранится в базе. Вопрос - как можно поменять вывод стандартного 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. Для этого я должен его подключить в контроллере и все?

Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.