Seleccionar idioma:
Realizar Donación - Mods Premium - Portfolio



Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.
SMFPersonal  MSN Messenger - heracles@smfpersonal.net 
*

Mensajes: 13978


Agregar campos en la configuracion de themes

Con este pequeño tutorial pretendo explicar la forma de agregarle opciones a la configuracion de nuestros themes en la administracion.

Que lograremos con esto?
Que nuestros usuarios puedan modificar desde la administracion ciertas cosas del theme, Pudiendo modificar links, activar o desactivar opciones y muchas otras cosas...

Para ello vamos a necesitar editar el archivo Settings.template.php

Los campos que le podemos agregar son:
Caja de texto
Checkbox
Select



Empecemos

Dentro del archivo Settings.template.php nos vamos a encontrar con dos funciones:
template_options()
template_settings()


A nosotros nos interesa la segunda: template_settings()

Dentro de esta funcion nos encontramos con que hay una variable con contenido array.
$context['theme_settings']

Es en ella donde nosotros vamos a agregar nuestros campos.
De que forma?

De la siguiente manera:

Agregar una Caja de texto:
Código: [Seleccionar]
array(
'id' => 'Nombre ID',
'label' => 'Titulo del campo',
'description' => 'Descripcion (Opcional)',
'type' => 'text',
'size' => 18 (Opcional),
),
Vamos a detallar un poco que es cada cosa:
  • ID: Es campo de la base de datos donde se va a guardar
  • label: Es el texto que va a tener antes de la caja de texto
  • description: Es una descripcion que aparecera abajo del label
  • type: Es el tipo de la caja
  • size: Es el tamaño que va a tener la caja. (No la capacidad de datos)

Esto nos quedaria algo asi:
*



Agregar un Checkbox:
Código: [Seleccionar]
array(
'id' => 'Id del Checkbox',
'label' => 'Titulo del Checkbox',
'description' => 'Descripcion (Opcional)',
),

La descripcion es la misma que la anterior, por lo que la vamos a obviar.
Esto nos quedaria algo asi:
*



Agregar un Select:
Código: [Seleccionar]
array(
'id' => 'Id del select',
'label' => 'Titulo del select',
'description' => 'Descripcion (Opcional)',
'options' => array(
0 => 'Opcion 1',
1 => 'Opcion 2',
2 => 'Opcion 3',
),
'type' => 'number',
),

Aca solo faltaria por explicar dos cosas:
  • options: Es el array donde estaran las opciones
  • 0, 1, 2: Son las opciones que tendra el select. (Pueden ser las que quieras)

Esto nos quedaria algo asi:
*



Hay una opcion mas que se puede agregar y es la de poner una linea separadora, para eso solo ponemos lo siguiente:
Código: [Seleccionar]
'',

Uniendo todos los codigos nos quedaria algo como esto:
Código: [Seleccionar]
$context['theme_settings'] = array(
array(
'id' => 'Nombre ID',
'label' => 'Titulo del campo',
'description' => 'Descripcion (Opcional)',
'type' => 'text',
'size' => 18 (Opcional),
),
array(
'id' => 'Id del Checkbox',
'label' => 'Titulo del Checkbox',
'description' => 'Descripcion (Opcional)',
),
array(
'id' => 'Id del select',
'label' => 'Titulo del select',
'description' => 'Descripcion (Opcional)',
'options' => array(
0 => 'Opcion 1',
1 => 'Opcion 2',
2 => 'Opcion 3',
),
'type' => 'number',
),
'',

Aca una imagen de como quedaria todo junto:
*




Eso seria todo para modificar el Settings.template.php y agregarle nuestras propias opciones, pero ahora la pregunta seria ¿Y como uso eso en el theme?

De la siguiente forma:
En el archivo donde queramos usar nuestras opciones, ya sea el index.template, el display.template, etc...
la forma de implementarlo es la misma.

Lo primero que tenemos que hacer es poner la variable $settings como global.
Código: [Seleccionar]
global $settings;

Una ves que tenemos eso ya podemos empezar con el codigo.

Lo primero que tenemos que hacer es fijarnos si existe algun dato o si el usuario lo dejo en blanco.
Si el usuario lleno los datos tiene que mostrar lo que el usuario puso, sino, tiene que mostrar algo para que no haya errores.

Entonces vamos a crear un if, el cual se va a fijar si el usuario lleno los datos o no.
Código: [Seleccionar]
if(!empty($settings['Nombre ID']))
{
echo 'El valor es'.$settings['Nombre ID'].'';
}
else
{
echo 'No existe valor, por lo tanto lo pongo yo';
}

En el codigo anterior nos estamos fijando si el id esta vacio o no: !empty($settings['Nombre ID'])
Si no esta vacio nos va a mostrar el valor del id.
Si esta vacio nos va a mostrar lo que nosotros pongamos.


Esto es un simple ejemplo de todo lo que se puede llegar a hacer con esto, ya que se podrian lograr grandes cosas con esto.




Espero que les sirva para poder mejorar sus themes a la hora de crearlos.




Usuario:
Contraseña:
Sesión: