Domanda

Ho una situazione interessante in cui su una pagina CMS, sto definendo alcuni nuovi blocchi nella sezione update_layout_xml - che hanno bisogno di essere applicata all'interno del contenuto di CMS stesso utilizzando la sintassi shortcode {{block ...}}

So che è possibile definire nuovi blocchi per essere istanziati da una textarea CMS -. Ma è possibile fare riferimento a un blocco esistente per definire l'esatta posizione che ha bisogno di essere inserito

update_layout_xml Utilizzando solo consente di posizionare con before= o after= - che devo controllo più granulare per posizionare l'elemento all'interno del blocco content stessa. Se questo dovesse essere fatto tramite un file phtml - Sarebbe solo un caso di utilizzo di getChildHtml -., Ma non sembra essere un equivalente per CMS

So di poter estendere Mage_Widget_Model_Template_Filter e aggiungere una nuova funzione - ma c'è già un metodo fondamentale per fare questo

?
È stato utile?

Soluzione

I esteso Mage_Widget_Model_Template_Filter di aggiungere questa funzione e si fa il trucco, ma mi chiedevo se ci fosse un nativo modo per farlo.

public function getchildDirective($construction)
{
    $layout = Mage::app()->getLayout();
    $blockParameters = $this->_getIncludeParameters($construction[2]);

    return $layout->getBlock('root')->getChildHtml($blockParameters['id']);

}

Altri suggerimenti

A seconda delle modalità di azione, si dovrebbe essere in grado di aggiungere funzionalità al metodo _construct del blocco (come definito dal tipo di blocco)

Ma se i vostri metodi d'azione sono semplicemente impostando alcune variabili come

<action method="setCategoryId"><category_id>17</category_id></action>

quindi è possibile aggiungere questi params per la sintassi smiley in questo modo:

{{block type="cms/block" block_id="your_block_id" category_id="17"}}

So che è possibile includere blocchi statici in un contenuto di CMS utilizzando qualcosa di simile:

{{block type="cms/block" block_id="your_block_id"}}

non vedo il motivo per cui questo metodo non avrebbe funzionato per blocchi personalizzati. Hai provato almeno?

E non risolvere il problema quando lo shortcode è in una variabile da un modulo.

Esempio: Ho un modulo di scorrimento, e quando entro {{store direct_url="customer-service"}} come attributo di collegamento, che non venga sostituito

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top