2011-03-23 6 views

Respuesta

18

No lo he probado, pero debería funcionar. Si usted tiene el identificador único de la página cms (no el identificador):

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

De lo contrario, si usted tiene identificador (es decir, clave URL) de la página, usar algo como esto:

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

luego terminar con:

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

EDITAR == ==

Se agregaron los pasos de análisis de la plantilla sugeridos por Alan

+2

Este código no ejecutará el contenido a través de la clase de procesamiento que intercambia contenidos de etiquetas de directivas (vea mi respuesta arriba/abajo) –

+0

buen punto, gracias Alan. Usar el cms helper para renderizar la página haría eso, supongo, así que debería ser posible elegir ese paso ... –

+0

Esto realmente me ayudó a obtener lo que necesitaba, ¡muchas gracias! – Chris

3

Hazlo al revés. Cree su contenido en un bloque estático y include it in a page u otros bloques estáticos.

+0

Eso no es lo que pedí y en realidad doesn Responde la pregunta. – Chris

+0

No es la respuesta que el cartel original quería, pero +1 para información útil. En un comienzo desde cero, todo su contenido debe ser bloques estáticos ingresados ​​en las páginas CMS a través de widgets de bloque estático de CMS –

3

No hay forma (que yo sepa) de hacerlo de la caja.

Sin embargo, como la interfaz de edición de bloques estáticos le permite insertar widgets en bloques estáticos, implementaría un widget que representa los contenidos de una página CMS. Tengo a basic implementation con los que he estado jugando, pero he estado demasiado ocupado para darme forma. Es funcional, pero no sería un gran rendimiento si intentara insertar una gran cantidad de widgets durante cualquier solicitud HTTP. Siéntete libre de intentarlo; cualquier comentario es apreciado

Si está interesado en cómo renderizar una página CMS mediante programación, consulte el método 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; 

La llamada a $this->getPage() devuelve un modelo cms/page. El código adicional anterior es necesario, a medida que pasa la página a través de los filtros que reemplazan las etiquetas directiva ({{...}})

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

Magento CMS página de códigos conten Display Khaled saifullah

Cuestiones relacionadas