Jump to content

Edit History

Prestafan33

Prestafan33

Bueno, me contesto a mí mismo, por si le sirve a alguien más:

Para introducir un mensaje en la parte superior del formulario de configuración tan sólo hay que añadir un índice 'description' en el array de formularios de la página, dentro del array donde se define el contenido del formulario, es decir, algo así como esto:

$fields_form[] = array(
      'form' => array(
        'legend' => array(
          'title' => $this->l('Ajustes generales'),
          'icon' => 'icon-cogs'
        ),
        'description' => $this->l('Descripción del formulario'),
        'input' => array(
		....

Si queremos que los mensajes tengan estilo de aviso, éxito o error, se pueden usar los índices "warning", "success" o "error", en vez de "description".

Luego está la otra solución es la que comentaba en el último párrafo, extender la vista del formulario para añadir la definición de un tipo nuevo de campo. Es decir, crear un archivo en esta ruta: /modules/nombre_del_modulo/views/templates/admin/_configure/helpers/form/form.tpl

A continuación, en dicho archivo, indicar que extiende la vista helpers/form/form.tpl , y definir ahí el HTML que debe generar nuestro nuevo tipo de campo. Por ejemplo:

{extends file="helpers/form/form.tpl"}

{block name="input"}
    {if $input.type == 'info-block'}
      <div class="info-block" style="margin-bottom:20px;">
      {if $input.title}
        <h4 class="info-block-title" style="text-align:center;font-size:15px;">{$input.title}</h4>
      {/if}
      {if $input.contents}
        <div class="info-block-contents" style="background-color:#e0ffe0;color:#000;border:1px solid green;padding:10px 15px;">
          <p>{$input.contents}</p>
        </div>
      {/if}
      </div>
    {else}
        {$smarty.block.parent}
    {/if}
{/block}

Finalmente, para poder usar el nuevo campo desde el archivo principal de nuestro módulo, en donde definimos los campos input para el formulario de configuración, añadiríamos un campo input más tal que así:

array(
    'type' => 'info-block',
    'title' => $this->l('Título para mi bloque'),
    'contents' => $this->l('Texto para el contenido del bloque informativo')
    );

Esta solución es bastante más laboriosa, pero tiene la ventaja de que se pueden colocar varios bloques de texto en cualquier posición del formulario.

Prestafan33

Prestafan33

Bueno, me contesto a mí mismo, por si le sirve a alguien más:

Para introducir un mensaje en la parte superior del formulario de configuración tan sólo hay que añadir un índice 'description' en el array de campos del formulario, dentro del array con el índice "form", es decir, algo así como esto:

$fields_form[] = array(
      'form' => array(
        'legend' => array(
          'title' => $this->l('Ajustes generales'),
          'icon' => 'icon-cogs'
        ),
        'description' => $this->l('Descripción del formulario'),
        'input' => array(
		....

Si queremos que los mensajes tengan estilo de aviso, éxito o error, se pueden usar los índices "warning", "success" o "error", en vez de "description".

Luego está la otra solución es la que comentaba en el último párrafo, extender la vista del formulario para añadir la definición de un tipo nuevo de campo. Es decir, crear un archivo en esta ruta: /modules/nombre_del_modulo/views/templates/admin/_configure/helpers/form/form.tpl

A continuación, en dicho archivo, indicar que extiende la vista helpers/form/form.tpl , y definir ahí el HTML que debe generar nuestro nuevo tipo de campo. Por ejemplo:

{extends file="helpers/form/form.tpl"}

{block name="input"}
    {if $input.type == 'info-block'}
      <div class="info-block" style="margin-bottom:20px;">
      {if $input.title}
        <h4 class="info-block-title" style="text-align:center;font-size:15px;">{$input.title}</h4>
      {/if}
      {if $input.contents}
        <div class="info-block-contents" style="background-color:#e0ffe0;color:#000;border:1px solid green;padding:10px 15px;">
          <p>{$input.contents}</p>
        </div>
      {/if}
      </div>
    {else}
        {$smarty.block.parent}
    {/if}
{/block}

Finalmente, para poder usar el nuevo campo desde el archivo principal de nuestro módulo, en donde definimos los campos input para el formulario de configuración, añadiríamos un campo input más tal que así:

array(
    'type' => 'info-block',
    'title' => $this->l('Título para mi bloque'),
    'contents' => $this->l('Texto para el contenido del bloque informativo')
    );

Esta solución es bastante más laboriosa, pero tiene la ventaja de que se pueden colocar varios bloques de texto en cualquier posición del formulario.

Prestafan33

Prestafan33

Bueno, me contesto a mí mismo, por si le sirve a alguien más:

Para introducir un mensaje en la parte superior del formulario de configuración tan sólo hay que añadir un índice 'description' en el array de campos del formulario, dentro del índice "form", es decir, algo así como esto:

$fields_form[] = array(
      'form' => array(
        'legend' => array(
          'title' => $this->l('Ajustes generales'),
          'icon' => 'icon-cogs'
        ),
        'description' => $this->l('Descripción del formulario'),
        'input' => array(
		....

Si queremos que los mensajes tengan estilo de aviso, éxito o error, se pueden usar los índices "warning", "success" o "error", en vez de "description".

Luego está la otra solución es la que comentaba en el último párrafo, extender la vista del formulario para añadir la definición de un tipo nuevo de campo. Es decir, crear un archivo en esta ruta: /modules/nombre_del_modulo/views/templates/admin/_configure/helpers/form/form.tpl

A continuación, en dicho archivo, indicar que extiende la vista helpers/form/form.tpl , y definir ahí el HTML que debe generar nuestro nuevo tipo de campo. Por ejemplo:

{extends file="helpers/form/form.tpl"}

{block name="input"}
    {if $input.type == 'info-block'}
      <div class="info-block" style="margin-bottom:20px;">
      {if $input.title}
        <h4 class="info-block-title" style="text-align:center;font-size:15px;">{$input.title}</h4>
      {/if}
      {if $input.contents}
        <div class="info-block-contents" style="background-color:#e0ffe0;color:#000;border:1px solid green;padding:10px 15px;">
          <p>{$input.contents}</p>
        </div>
      {/if}
      </div>
    {else}
        {$smarty.block.parent}
    {/if}
{/block}

Finalmente, para poder usar el nuevo campo desde el archivo principal de nuestro módulo, en donde definimos los campos input para el formulario de configuración, añadiríamos un campo input más tal que así:

array(
    'type' => 'info-block',
    'title' => $this->l('Título para mi bloque'),
    'contents' => $this->l('Texto para el contenido del bloque informativo')
    );

Esta solución es bastante más laboriosa, pero tiene la ventaja de que se pueden colocar varios bloques de texto en cualquier posición del formulario.

×
×
  • Create New...