2011-03-23 18 views
6

मैं अपने स्थिर ब्लॉक में एक सीएमएस पृष्ठ की सामग्री खींचना चाहता हूं, अगर आपको ऐसा करने का कोई तरीका पता है तो मैं आभारी रहूंगा।मैं एक सीएमएस पृष्ठ की सामग्री को स्थिर ब्लॉक में कैसे खींचूं?

उत्तर

18

इसका परीक्षण नहीं किया है, लेकिन इसे काम करना चाहिए। आप सेमी पेज (नहीं पहचानकर्ता) की अनूठी ID है, तो:

$page = Mage::getModel('cms/page'); 
$page->setStoreId(Mage::app()->getStore()->getId()); 
$page->load($pageId); 

नहीं तो आप पृष्ठ के पहचानकर्ता (यानी यूआरएल कुंजी) है, कुछ इस तरह का उपयोग करें:

$page->load($pageIdentifier,'identifier'); 

तब खत्म साथ:

$helper = Mage::helper('cms'); 
$processor = $helper->getPageTemplateProcessor(); 
$html = $processor->filter($page->getContent()); 
return $html; 

== संपादित करें ==

एलन

+2

के माध्यम से सीएमएस पृष्ठों में खींचने वाले स्टेटिक ब्लॉक होना चाहिए। यह कोड प्रसंस्करण कक्षा के माध्यम से सामग्री को चलाने के लिए नहीं जा रहा है जो निर्देश टैग सामग्री में स्वैप करता है (ऊपर मेरा उत्तर/नीचे देखें) –

+0

अच्छा बिंदु, धन्यवाद एलन। पृष्ठ प्रस्तुत करने के लिए सीएमएस सहायक का उपयोग करना मुझे लगता है, तो यह कदम उठाना संभव होना चाहिए ... –

+0

यह वास्तव में मुझे जो कुछ हासिल करने की आवश्यकता है, उसे पाने में मेरी मदद करता है, बहुत बहुत धन्यवाद! – Chris

3

इसे दूसरी तरफ गोल करें। एक स्थिर ब्लॉक और include it in a page, या अन्य स्थिर ब्लॉक में अपनी सामग्री बनाएं।

+0

यही नहीं है कि मैं क्या कहा और वास्तव में नहीं करता है सवाल का जवाब नहीं है। – Chris

+0

मूल पोस्टर का जवाब नहीं था, लेकिन उपयोगी जानकारी के लिए +1। स्क्रैच की दुनिया से शुरूआत में आपकी सभी सामग्री सीएमएस स्टैटिक ब्लॉक विगेट्स –

3

द्वारा सुझाए गए टेम्पलेट पार्सिंग चरणों को जोड़ा गया बॉक्स के बाहर ऐसा करने का कोई तरीका नहीं है (मुझे पता है)।

हालांकि, स्थिर ब्लॉक संपादन इंटरफ़ेस आपको स्थिर ब्लॉक में विजेट डालने की अनुमति देता है, मैं एक विजेट लागू करता हूं जो एक सीएमएस पृष्ठ की सामग्री प्रस्तुत करता है। मेरे पास a basic implementation है जिसके साथ मैं खेल रहा हूं, लेकिन मांस से बाहर निकलने में बहुत व्यस्त हूं। यह कार्यात्मक है, लेकिन यदि आप किसी भी http अनुरोध के दौरान बड़ी संख्या में विजेट डालने का प्रयास करते हैं तो सुपर प्रदर्शन नहीं होगा। इसे आज़माने के लिए स्वतंत्र महसूस करें; किसी भी प्रतिक्रिया की सराहना की है।

यदि आप सीएमएस पृष्ठ को प्रोग्रामेटिक रूप से प्रस्तुत करने में रुचि रखते हैं, तो Mage_Cms_Block_Page::_toHtml() विधि चेकआउट करें।

$helper = Mage::helper('cms'); 
    $processor = $helper->getPageTemplateProcessor(); 
    $html = $processor->filter($this->getPage()->getContent()); 
    $html = $this->getMessagesBlock()->getGroupedHtml() . $html; 
    return $html; 

$this->getPage() करने के लिए कॉल एक cms/page मॉडल देता है। अतिरिक्त कोड से ऊपर, के लिए आवश्यक है के रूप में यह फिल्टर कि निर्देश टैग की जगह के माध्यम से पेज गुजरता ({{...}})

-3
 $model =Mage::getModel('cms/page')->load('welcome','identifier'); 
     echo '<h2>'.$model->getContentHeading().'<h2>'; 
     echo $model->getContent(); 

Magento सीएमएस पृष्ठ सामग्री के प्रदर्शन कोड खालिद सैफुल्लाह