Jump to content

Edit History

Prestafan33

Prestafan33

No se pueden usar variables Smarty dentro del contenido de una página CMS. Por tanto, no creo que sea fácil utilizar variables ahí dentro.

No sé si hay otra forma más sencilla de hacerlo, a mí se me ocurre una. Hacerla bien implica un poco de trabajo,  aunque también se puede hacer de forma más chapucera y rápida (que explico al final).

Se trataría de usar una serie de shortcodes. Cuando hablo de shortcodes me refiero a replicar de una forma simple cómo funcionan en WordPress. Es decir, se pueden elegir varios shortcode para insertar cosas como el nombre de la tienda, o el nombre del usuario, por ejemplo : [shopname], [username]. A estos shortcodes se les puede dar el formato que se quiera, aunque es conveniente utilizar algún carácter "especial", para evitar que haya texto normal que se pueda confundir con ellos. Luego se meterían en donde se quiera que aparezcan, dentro del contenido normal de la página CMS, y al mostrar la página los sustituiríamos por el contenido de las variables correspondientes.

SOLUCIÓN LABORIOSA

1.- Editar la plantilla /cms/page.tpl, y añadir un hook dentro del bloque cms_content. Y pasarle a ese hook el contenido de la variable $cms.content, que tiene el contenido de la página, para poder modificarlo. Es decir, algo así:

{block name='cms_content'}
  {if Module::isEnabled('shortcodes_in_cms')}
    {hook h='displayCMSWithShortcodes' cms_content=$cms.content}
  {else}
    {$cms.content nofilter}
  {/if}
{/block}

De este modo que lo he puesto el hook sólo se va a ejecutar si está activo mi módulo (al que he llamado "shortcodes_in_cms"). Si no está activo, pues se muestra el contenido normal.

2.- Crear el módulo que se ejecuta en ese hook, que revise el contenido de $cms.content, busque ciertos "shortcodes" y los sustituya por las variables que nosotros queramos.

Lo que haría el módulo que comento sería recibir todo el contenido de la página en una variable (que se la pasa el hook), hacer una búsqueda de los shortcodes que hemos diseñado y sustituirlos por el contenido de las variables correspondientes. Y tras haber hecho eso "escupir" el contenido de la página CMS ya modificado.

SOLUCIÓN RÁPIDA

Decir que todo este proceso también se puede hacer de forma más chapucera sin tener que añadir un hook ni crear un módulo, haciendo la búsqueda y sustitución de los shortcodes sobre la variables $cms.content, directamente dentro de la vista (page.tpl). Por ejemplo:

{block name='cms_content'}
  {$content_modified = $cms.content|replace:'[shopname]':$shop.name|replace:'[username]':$customer.firstname}
  {$content_modified nofilter}
{/block}

 

Prestafan33

Prestafan33

No se pueden usar variables Smarty dentro del contenido de una página CMS. Por tanto, no creo que sea fácil utilizar variables ahí dentro.

No sé si hay otra forma más sencilla de hacerlo, a mí se me ocurre una. Hacerla bien implica un poco de trabajo,  aunque también se puede hacer de forma más chapucera y rápida (que explico al final).

Se trataría de usar una serie de shortcodes. Cuando hablo de shortcodes me refiero a replicar de una forma simple cómo funcionan en WordPress. Es decir, se pueden elegir varios shortcode para insertar cosas como el nombre de la tienda, o el nombre del usuario: [shopname], [username]. Esos shortcodes se meterían en donde se quiera que aparezcan, dentro del contenido normal de la página CMS, y luego los sustituiríamos por el contenido de las variables correspondientes.

SOLUCIÓN LABORIOSA

1.- Editar la plantilla /cms/page.tpl, y añadir un hook dentro del bloque cms_content. Y pasarle a ese hook el contenido de la variable $cms.content, que tiene el contenido de la página, para poder modificarlo. Es decir, algo así:

{block name='cms_content'}
  {if Module::isEnabled('shortcodes_in_cms')}
    {hook h='displayCMSWithShortcodes' cms_content=$cms.content}
  {else}
    {$cms.content nofilter}
  {/if}
{/block}

De este modo que lo he puesto el hook sólo se va a ejecutar si está activo mi módulo (al que he llamado "shortcodes_in_cms"). Si no está activo, pues se muestra el contenido normal.

2.- Crear el módulo que se ejecuta en ese hook, que revise el contenido de $cms.content, busque ciertos "shortcodes" y los sustituya por las variables que nosotros queramos.

Lo que haría el módulo que comento sería recibir todo el contenido de la página en una variable (que se la pasa el hook), hacer una búsqueda de los shortcodes que hemos diseñado y sustituirlos por el contenido de las variables correspondientes. Y tras haber hecho eso "escupir" el contenido de la página CMS ya modificado.

SOLUCIÓN RÁPIDA

Decir que todo este proceso también se puede hacer de forma más chapucera sin tener que añadir un hook ni crear un módulo, haciendo la búsqueda y sustitución de los shortcodes sobre la variables $cms.content, directamente dentro de la vista (page.tpl). Por ejemplo:

{block name='cms_content'}
  {$content_modified = $cms.content|replace:'[shopname]':$shop.name|replace:'[username]':$customer.firstname}
  {$content_modified nofilter}
{/block}

 

Prestafan33

Prestafan33

No se pueden usar variables Smarty dentro del contenido de una página CMS. Por tanto, no creo que sea fácil utilizar variables ahí dentro.

No sé si hay otra forma más sencilla de hacerlo, a mí se me ocurre una. Hacerla bien implica un poco de trabajo,  aunque también se puede hacer de forma más chapucera y rápida (que explico al final):

SOLUCIÓN LABORIOSA

1.- Editar la plantilla /cms/page.tpl, y añadir un hook dentro del bloque cms_content. Y pasarle a ese hook el contenido de la variable $cms.content, que tiene el contenido de la página, para poder modificarlo. Es decir, algo así:

{block name='cms_content'}
  {if Module::isEnabled('shortcodes_in_cms')}
    {hook h='displayCMSWithShortcodes' cms_content=$cms.content}
  {else}
    {$cms.content nofilter}
  {/if}
{/block}

De este modo que lo he puesto el hook sólo se va a ejecutar si está activo mi módulo (al que he llamado "shortcodes_in_cms"). Si no está activo, pues se muestra el contenido normal.

2.- Crear el módulo que se ejecuta en ese hook, que revise el contenido de $cms.content, busque ciertos "shortcodes" y los sustituya por las variables que nosotros queramos.

Cuando hablo de shortcodes me refiero a replicar de una forma simple cómo funcionan en WordPress. Es decir, por ejemplo, se pueden elegir varios shortcode para insertar cosas como el nombre de la tienda, o el nombre del usuario: [shopname], [username]. Esos shortcodes se meterían en donde se quiera que aparezcan, dentro del contenido normal de la página CMS.

Lo que haría el módulo que comento sería recibir todo el contenido de la página en una variable (que se la pasa el hook), hacer una búsqueda de los shortcodes que hemos diseñado y sustituirlos por el contenido de las variables correspondientes. Y tras haber hecho eso "escupir" el contenido de la página CMS ya modificado.

SOLUCIÓN RÁPIDA

Decir que todo este proceso también se puede hacer de forma más chapucera sin tener que añadir un hook ni crear un módulo, haciendo la búsqueda y sustitución de los shortcodes sobre la variables $cms.content, directamente dentro de la vista (page.tpl). Por ejemplo:

{block name='cms_content'}
  {$content_modified = $cms.content|replace:'[shopname]':$shop.name|replace:'[username]':$customer.firstname}
  {$content_modified nofilter}
{/block}

 

Prestafan33

Prestafan33

No se pueden usar variables Smarty dentro del contenido de una página CMS. Por tanto, no creo que sea fácil utilizar variables ahí dentro.

No sé si hay otra forma más sencilla de hacerlo, a mí se me ocurre una, aunque es un poco laboriosa e implica desarrollar un módulo (sencillo, pero módulo). La explico esquemáticamente:

1.- Editar la plantilla /cms/page.tpl, y añadir un hook dentro del bloque cms_content. Y pasarle a ese hook el contenido de la variable $cms.content, que tiene el contenido de la página, para poder modificarlo. Es decir, algo así:

{block name='cms_content'}
  {if Module::isEnabled('shortcodes_in_cms')}
    {hook h='displayCMSWithShortcodes' cms_content=$cms.content}
  {else}
    {$cms.content nofilter}
  {/if}
{/block}

De este modo que lo he puesto el hook sólo se va a ejecutar si está activo mi módulo (al que he llamado "shortcodes_in_cms"). Si no está activo, pues se muestra el contenido normal.

2.- Crear el módulo que se ejecuta en ese hook, que revise el contenido de $cms.content, busque ciertos "shortcodes" y los sustituya por las variables que nosotros queramos.

Cuando hablo de shortcodes me refiero a replicar de una forma simple cómo funcionan en WordPress. Es decir, por ejemplo, se pueden elegir varios shortcode para insertar cosas como el nombre de la tienda, o el nombre del usuario: [shopname], [username]. Esos shortcodes se meterían en donde se quiera que aparezcan, dentro del contenido normal de la página CMS.

Lo que haría el módulo que comento sería recibir todo el contenido de la página en una variable (que se la pasa el hook), hacer una búsqueda de los shortcodes que hemos diseñado y sustituirlos por el contenido de las variables correspondientes. Y tras haber hecho eso "escupir" el contenido de la página CMS ya modificado.

Decir que todo este proceso también se puede hacer de forma más chapucera sin tener que añadir un hook ni crear un módulo, haciendo la búsqueda y sustitución de los shortcodes sobre la variables $cms.content, directamente dentro de la vista (page.tpl).

Prestafan33

Prestafan33

No se pueden usar variables Smarty dentro del contenido de una página CMS. Por tanto, no creo que sea fácil utilizar variables ahí dentro.

No sé si hay otra forma más sencilla de hacerlo, a mí se me ocurre una, aunque es un poco laboriosa e implica desarrollar un módulo (sencillo, pero módulo). La explico esquemáticamente:

1.- Editar la plantilla /cms/page.tpl, y añadir un hook dentro del bloque cms_content. Y pasarle a ese hook el contenido de la variable $cms.content, que tiene el contenido de la página, para poder modificarlo. Es decir, algo así:

{block name='cms_content'}
  {if Module::isEnabled('shortcodes_in_cms')}
    {hook h='displayCMSWithShortcodes' cms_content=$cms.content}
  {else}
    {$cms.content nofilter}
  {/if}
{/block}

De este modo que lo he puesto el hook sólo se va a ejecutar si está activo mi módulo (al que he llamado "shortcodes_in_cms"). Si no está activo, pues se muestra el contenido normal.

2.- Crear el módulo que se ejecuta en ese hook, que revise el contenido de $cms.content, busque ciertos "shortcodes" y los sustituya por las variables que nosotros queramos.

Cuando hablo de shortcodes me refiero a replicar de una forma simple cómo funcionan en WordPress. Es decir, por ejemplo, se pueden elegir varios shortcode para insertar cosas como el nombre de la tienda, o el nombre del usuario: [shopname], [username]. Esos shortcodes se meterían en donde se quiera que aparezcan, dentro del contenido normal de la página CMS.

Lo que haría el módulo que comento sería recibir todo el contenido de la página en una variable (que se la pasa el hook), hacer una búsqueda de los shortcodes que hemos diseñado y sustituirlos por el contenido de las variables correspondientes. Y tras haber hecho eso "escupir" el contenido de la página CMS ya modificado.

Decir que todo este proceso también se puede hacer de forma más chapucera sin tener que crear un módulo, haciendo la búsqueda y sustitución de los shortcodes sobre la variables $cms.content, directamente dentro de la vista (page.tpl).

Prestafan33

Prestafan33

No se pueden usar variables Smarty dentro del contenido de una página CMS. Por tanto, no creo que sea fácil utilizar variables ahí dentro.

No sé si hay otra forma más sencilla de hacerlo, a mí se me ocurre una, aunque es un poco laboriosa e implica desarrollar un módulo (sencillo, pero módulo). La explico esquemáticamente:

1.- Editar la plantilla /cms/page.tpl, y añadir un hook dentro del bloque cms_content. Y pasarle a ese hook el contenido de la variable $cms.content, que tiene el contenido de la página, para poder modificarlo. Es decir, algo así:

{block name='cms_content'}
  {if Module::isEnabled('shortcodes_in_cms')}
    {hook h='displayCMSWithShortcodes' cms_content=$cms.content}
  {else}
    {$cms.content nofilter}
  {/if}
{/block}

De este modo que lo he puesto el hook sólo se va a ejecutar si está activo mi módulo (al que he llamado "shortcodes_in_cms"). Si no está activo, pues se muestra el contenido normal.

2.- Crear el módulo que se ejecuta en ese hook, que revise el contenido de $cms.content, busque ciertos "shortcodes" y los sustituya por las variables que nosotros queramos.

Cuando hablo de shortcodes me refiero a replicar de una forma simple cómo funcionan en WordPress. Es decir, por ejemplo, se pueden elegir varios shortcode para insertar cosas como el nombre de la tienda, o el nombre del usuario: [shopname], [username]. Esos shortcodes se meterían en donde se quiera que aparezcan, dentro del contenido normal de la página CMS.

Lo que haría el módulo que comento sería recibir todo el contenido de la página en una variable (que se la pasa el hook), hacer una búsqueda de los shortcodes que hemos diseñado y sustituirlos por el contenido de las variables correspondientes. Y tras haber hecho eso "escupir" el contenido de la página CMS ya modificado.

Prestafan33

Prestafan33

No se pueden usar variables Smarty dentro del contenido de una página CMS. Por tanto, no creo que sea fácil utilizar variables ahí dentro.

No sé si hay otra forma más sencilla de hacerlo, a mí se me ocurre una, aunque es un poco laboriosa e implica desarrollar un módulo (sencillo, pero módulo). La desarrollo esquemáticamente:

1.- Editar la plantilla /cms/page.tpl, y añadir un hook dentro del bloque cms_content. Y pasarle a ese hook el contenido de la variable $cms.content, que tiene el contenido de la página, para poder modificarlo. Es decir, algo así:

{block name='cms_content'}
  {if Module::isEnabled('shortcodes_in_cms')}
    {hook h='displayCMSWithShortcodes' cms_content=$cms.content}
  {else}
    {$cms.content nofilter}
  {/if}
{/block}

De este modo que lo he puesto el hook sólo se va a ejecutar si está activo mi módulo (al que he llamado "shortcodes_in_cms"). Si no está activo, pues se muestra el contenido normal.

2.- Crear el módulo que se ejecuta en ese hook, que revise el contenido de $cms.content, busque ciertos "shortcodes" y los sustituya por las variables que nosotros queramos.

Cuando hablo de shortcodes me refiero a replicar de una forma simple cómo funcionan en WordPress. Es decir, por ejemplo, se pueden elegir varios shortcode para insertar cosas como el nombre de la tienda, o el nombre del usuario: [shopname], [username]. Esos shortcodes se meterían en donde se quiera que aparezcan, dentro del contenido normal de la página CMS.

Lo que haría el módulo que comento sería recibir todo el contenido de la página en una variable (que se la pasa el hook), hacer una búsqueda de los shortcodes que hemos diseñado y sustituirlos por el contenido de las variables correspondientes. Y tras haber hecho eso "escupir" el contenido de la página CMS ya modificado.

Prestafan33

Prestafan33

No se pueden usar variables Smarty dentro del contenido de una página. Por tanto, no creo que sea fácil utilizarlas ahí dentro.

No sé si hay otra forma más sencilla de hacerlo, a mí se me ocurre una, aunque es un poco laboriosa e implica desarrollar un módulo (sencillo, pero módulo). La desarrollo esquemáticamente:

1.- Editar la plantilla /cms/page.tpl, y añadir un hook dentro del bloque cms_content. Y pasarle a ese hook el contenido de la variable $cms.content, que tiene el contenido de la página, para poder modificarlo. Es decir, algo así:

{block name='cms_content'}
  {if Module::isEnabled('shortcodes_in_cms')}
    {hook h='displayCMSWithShortcodes' cms_content=$cms.content}
  {else}
    {$cms.content nofilter}
  {/if}
{/block}

De este modo que lo he puesto el hook sólo se va a ejecutar si está activo mi módulo (al que he llamado "shortcodes_in_cms"). Si no está activo, pues se muestra el contenido normal.

2.- Crear el módulo que se ejecuta en ese hook, que revise el contenido de $cms.content, busque ciertos "shortcodes" y los sustituya por las variables que nosotros queramos.

Cuando hablo de shortcodes me refiero a replicar de una forma simple cómo funcionan en WordPress. Es decir, por ejemplo, se pueden elegir varios shortcode para insertar cosas como el nombre de la tienda, o el nombre del usuario: [shopname], [username]. Esos shortcodes se meterían en donde se quiera que aparezcan, dentro del contenido normal de la página CMS.

Lo que haría el módulo que comento sería recibir todo el contenido de la página en una variable (que se la pasa el hook), hacer una búsqueda de los shortcodes que hemos diseñado y sustituirlos por el contenido de las variables correspondientes. Y tras haber hecho eso "escupir" el contenido de la página CMS ya modificado.

×
×
  • Create New...