blocco Posizione nel contenuto Homepage CMS
-
16-10-2019 - |
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
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