Такой вопрос: если карта сайта генерится по запросу 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 = уникальный идентификатор существующей записи

Вход
Регистрация
Помощь


