बॉक्स से बाहर, नहीं, मैगेंटो की Catalog -> Google Sitemap
सुविधा द्वारा उत्पन्न साइटमैप से कुछ उत्पादों को बाहर करने का कोई तरीका नहीं है ।
अगर मैं इस प्रोग्राम को आधुनिक रूप से करने जा रहा हूँ, तो Magento के आधुनिक संस्करण (1.7.x शाखा में जांचे गए, यह पहले / EE संस्करणों में हो सकता है) निम्नलिखित संसाधन मॉडल वर्ग का उपयोग करें
Mage_Sitemap_Model_Resource_Catalog_Product
उत्पादों की एक सूची लाने के लिए।
#File: app/code/core/Mage/Sitemap/Model/Sitemap.php
$collection = Mage::getResourceModel('sitemap/catalog_product')->getCollection($storeId);
यह एक मानक Magento CRUD मॉडल नहीं है, और getCollection
एक संग्रह वस्तु वापस नहीं करता है। इसके बजाय, getCollection
मैन्युअल रूप से इन उत्पादों के लिए डेटाबेस पर सवाल उठाता है।
यदि मैं कार्यक्षमता को लागू करने जा रहा था जो कुछ उत्पादों को साइट मानचित्र में दिखाने से रोकता था, तो मैं या तो कोशिश करूंगा
एक वर्ग उस getCollection
विधि को फिर से लिखता है जो कॉल करता है parent::getCollection
, और फिर मैन्युअल रूप से किसी भी उत्पाद को सरणी से फ़िल्टर करता है
एक वर्ग फिर से _addFilter
लिखता है जिस पर अभिभावक :: _ addFilter पद्धति को कॉल करता है, और फिर _select
विशिष्ट उत्पाद को बाहर करने के लिए एक अतिरिक्त WHERE क्लॉज (s) जोड़ता है । एक हैक की तरह, लेकिन यह एकमात्र तरीका है जहां आपके पास _select
डेटाबेस को क्वेरी करने के लिए उपयोग की जाने वाली वस्तु तक पहुंच है । आदर्श रूप से आप किसी प्रकार का वैश्विक / स्थिर ध्वज रखना चाहते हैं, इसलिए आपने केवल एक बार अपना नया WHERE क्लॉज (s) जोड़ा है।