Такой вопрос: если карта сайта генерится по запросу domain.ru/index.php/admin/sitemap/generate/sitemap_id/1/key/{некоторый ключ}/, а сама процедура генерации хранится в классе Mage_Adminhtml_SitemapController в методе generateAction - можно ли как-то программным путем инициировать эту генерацию? Запуск по расписанию не подходит по некоторым причинам, а если сделать просто file_get_contents на вышеуказанный url - он вернет страницу с полями логина и пароля.
Как программно запустить генерацию Sitemap без cron?
23.10.2012 12:21
Как быстрый вариант, можно создать файл и положить его в корень магенто. Например generate.php
Код файла:
Способ вызова mystore.com/generate.php?id=1
Где id = уникальный идентификатор существующей записи
Код файла:
<?php if(isset($_GET['id'])) { $id=(int) $_GET['id']; require 'app/Mage.php'; $app = Mage::app('default'); $sitemap = Mage::getModel('sitemap/sitemap'); $sitemap->load($id); // if sitemap record exists if ($sitemap->getId()) { try { $sitemap->generateXml(); echo "The sitemap '{$sitemap->getSitemapFilename()}' has been generated."; } catch (Exception $e) { echo 'Unable to generate the sitemap.'; } } else { echo 'Unable to find a sitemap to generate.'; } } else { echo 'Sitemap ID not defined'; }
Способ вызова mystore.com/generate.php?id=1
Где id = уникальный идентификатор существующей записи