Как программно запустить генерацию Sitemap без cron?

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Хыиуду
  • Группа: Пользователь
  • Сообщений: 56
  • Регистрация: 05.07.2012

18.10.2012 11:26

Такой вопрос: если карта сайта генерится по запросу domain.ru/index.php/admin/sitemap/generate/sitemap_id/1/key/{некоторый ключ}/, а сама процедура генерации хранится в классе Mage_Adminhtml_SitemapController в методе generateAction - можно ли как-то программным путем инициировать эту генерацию? Запуск по расписанию не подходит по некоторым причинам, а если сделать просто file_get_contents на вышеуказанный url - он вернет страницу с полями логина и пароля.

#2 Сергей Остапчик
  • Группа: Пользователь
  • Сообщений: 6
  • Регистрация: 29.11.2011

23.10.2012 12:21

Как быстрый вариант, можно создать файл и положить его в корень магенто. Например generate.php
Код файла:
<?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 = уникальный идентификатор существующей записи

#3 Хыиуду
  • Группа: Пользователь
  • Сообщений: 56
  • Регистрация: 05.07.2012

26.10.2012 09:35

Dvim, спасибо огромное, именно то, что надо!

Поделиться темой: