J'ai développé un module sur mesure qui répertorie une série de personnes sur le site. Chaque personne a sa propre URL (un contrôleur Magento sur mesure, qui fait CRUD de base sur les modèles Personne) et je dois alimenter ces URL publiques dans un fichier XML Google Sitemap.
Je veux utiliser la propre génération de sitemap de Magento et le cron si je le peux.
Le Mage_Sitemap_Model_Observertire déjà tous les enregistrements Sitemap de la sitemapstable et un par un appelle leurs generateXml()méthodes.
$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();
}
}
Je pense que je dois ajouter mon nouveau plan Sitemap dans le sitemapstableau qui sera ensuite appelé pour générer mon fichier XML (séparé) pour mes enregistrements de modèles personnalisés. Cependant, je ne sais pas comment dire à Magento d'utiliser mon extension My_Module_Model_Sitemapau lieu de juste Mage_Sitemap_Model_Sitemap, ce dernier me donnera simplement un fichier XML répertoriant toutes les mêmes catégories, produits et pages CMS que les plans de site principaux.
Le sitemapstableau a une sitemap_typecolonne, mais cela n'est jamais référencé dans la base de code Magento pour autant que je sache.
Comment puis-je utiliser le moteur de sitemap intégré de Magento tout en écrasant le Mage_Sitemap_Model_Sitemappour avoir ma propre generateXml()méthode? Ou dois-je créer un autre système de plan de site juste pour mes propres besoins ici?
Mage_Sitemap_Model_Sitemapet me donne un autre plan du site contenant les produits, les catégories, les pages CMS - il n'utilise pas ma version étendue. Je ne sais pas comment lui dire comment faire.
Mage_Sitemap_Model_Sitemapsite et ajouter mon propre modèle dans la catégorie et les appels de produits. Mettra à jour bientôt avec les progrès.
Mage_Sitemap_Model_Sitemapclasse et écraser àgenerateXml()droite? qu'as-tu essayé?