Я разработал специальный модуль, который перечисляет ряд людей на сайте. У каждого человека есть свой собственный URL (заказной контроллер Magento, который выполняет базовое CRUD для моделей Person), и мне нужно вставить эти общедоступные URL-адреса в XML-файл Google Sitemap.
Я хочу использовать собственную генерацию карты сайта Magento и cron, если смогу.
Mage_Sitemap_Model_Observer
Уже тянет все Sitemap записи из sitemaps
таблицы и один за другим называет свои generateXml()
методы.
$collection = Mage::getModel('sitemap/sitemap')->getCollection();
/* @var $collection Mage_Sitemap_Model_Mysql4_Sitemap_Collection */
foreach ($collection as $sitemap) {
/* @var $sitemap Mage_Sitemap_Model_Sitemap */
try {
$sitemap->generateXml();
}
catch (Exception $e) {
$errors[] = $e->getMessage();
}
}
Я думаю, что мне нужно добавить мой новый файл Sitemap в sitemaps
таблицу, которая затем будет вызываться для создания моего (отдельного) XML-файла для моих записей пользовательских моделей. Тем не менее, я не знаю, как сказать Magento, чтобы использовать мой расширенный My_Module_Model_Sitemap
вместо просто Mage_Sitemap_Model_Sitemap
, последний из которых просто даст мне XML-файл, перечисляющий все те же категории, продукты и страницы CMS в качестве основных карт сайта.
В sitemaps
таблице есть sitemap_type
столбец, но, насколько я могу судить, на кодовую базу Magento на него никогда не ссылаются.
Как я могу использовать встроенный движок карты сайта Magento при перезаписи, Mage_Sitemap_Model_Sitemap
чтобы иметь свой собственный generateXml()
метод? Или я должен создать альтернативную систему Sitemap только для своих собственных целей?
Mage_Sitemap_Model_Sitemap
и дает мне другую карту сайта, содержащую продукты, категории, страницы CMS - он не использует мою расширенную версию. Я не уверен, как сказать, как это сделать.
Mage_Sitemap_Model_Sitemap
сайта в целом, и добавляю в мою собственную модель категорию и вызовы продуктов. Скоро обновлю с прогрессом.
Mage_Sitemap_Model_Sitemap
класс и переписатьgenerateXml()
правильно? что ты пробовал?