Página 1 de 1

Tutorial para Campos Personalizados en phpBB 3.0  Tema Solucionado

Publicado: 15 Oct 2014, 19:41
por Megabyte
Nombre Tutorial: Tutorial para campos personalizados
Autor: Megabyte
Url del Autor: http://www.bosquesdecorazon.skn1.com
Basado en: PROSILVER
Descripción y uso:
Con este tutorial, crearas campos personalizados de selección desplegable, para luego mostrar imágenes.

Primero nos vamos al ACP:
Clic en Campos Personalizados y llenamos lo que requiera nuestro campo:
Imagen

Nos enviara a esta ventana y haz lo que dicen las notas según tu criterio:
Imagen

Bien, lo he llenado según lo que explicaré en esta guía:
Al terminar de llenarlas, clic en "opciones especificas de tipo de perfil"
Imagen

Nos aparece esta imagen, y le damos "opciones especificas de idioma"
Imagen

Como todo esta normal, le damos "Guardar"
Imagen

Nos aparece que todo salió bien:
Imagen

Ahora ya tenemos nuestro campo personalizado:
Imagen

Explicación de algunos fragmentos de nuestro código:

Sentencia que indica el inicio de tus campos personalizados:

Código: Seleccionar todo

<!-- BEGIN custom_fields -->
Sentencia que indica el fin de tus campos personalizados:

Código: Seleccionar todo

<!-- END custom_fields -->
Sentencia que representa el nombre del campo personalizado:

Código: Seleccionar todo

{postrow.custom_fields.PROFILE_FIELD_NAME}
Sentencia que representa el valor del campo personalizado:

Código: Seleccionar todo

{postrow.custom_fields.PROFILE_FIELD_VALUE}
operadores utilizados aca:

eq es sinonimo de "igual", tambien representado asi: ==
neq es sinonimo de "no igual", tambien representado asi: !=
&& es sinonimo de "y", tambien representado asi: and

NOTA: cuando agregues campos personalizados, lo mejor es que nos los cambies de posicion y/o modifiques,
en algunos casos ya no muestra el resultado deseado.


Ahora veremos como modificar nuestro archivo
POr lo tanto, en el archivo styles/prosilver/template/viewtopic_body.html
encontraras esto:

Código: Seleccionar todo

<!-- BEGIN custom_fields -->
             <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
          <!-- END custom_fields -->
Y puedes personalizar todo lo que vaya dentro de esas "etiquetas".

Código: Seleccionar todo

<!-- BEGIN custom_fields -->
             Aqui puedes personalizar la manera de mostrar tus campos personalizados.
          <!-- END custom_fields -->
Ahora que hemos creado un campo personalizado llamado nivel, con permisos para que le usuario elija, y deseamos que el usuario
seleccione un "tipo de nivel", pero nosotros deseamos mostrarlo con una imagen, entonces
lo mostrariamos asi en cualquier parte de nuestro archivo:

Código: Seleccionar todo

<!-- BEGIN custom_fields -->

        <!-- IF postrow.custom_fields.PROFILE_FIELD_NAME eq "nivel" -->
              <img src="{T_THEME_PATH}/images/{postrow.custom_fields.PROFILE_FIELD_VALUE}.png" alt="" />
              <br />
        <!-- ENDIF -->

	<!-- END custom_fields -->

NOTA:
1. Tomando en cuenta que tenemos en la carpeta ../styles/prosilver/theme/images
las imagenes con los siguentes nombres: Principiante, Normal, Intermedio, Alto, Vip, todas en formato png
2. Puedes cambiar el tipo de imagen a jpg o gif, pero tendrias que cambiar en el codigo: png por el tipo de imagen que desees.

Pero como deseamos mostrar el resto de campos personalizados, si los tienes o si en el futuro tendras, entonces
agregariamos lo siguiente (sin mostrar nuestro campo "nivel"):

Código: Seleccionar todo

<!-- BEGIN custom_fields -->
                   <!-- IF postrow.custom_fields.PROFILE_FIELD_NAME neq "nivel" --> 
                                 <strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong>{postrow.custom_fields.PROFILE_FIELD_VALUE}<br />
                   <!-- ENDIF -->
                <!-- END custom_fields -->
con esto decimos que si el nombre de su campo personalizado no es "nivel" entonces mostrara el resto de campos de manera normal.

Y para agregar las dos sentencias juntas quedarian asi (mostrando nuestro campo nivel y los demas campos):

Código: Seleccionar todo

<!-- BEGIN custom_fields -->

        <!-- IF postrow.custom_fields.PROFILE_FIELD_NAME eq "nivel" -->
              <img src="{T_THEME_PATH}/images/{postrow.custom_fields.PROFILE_FIELD_VALUE}.png" alt="" />
              <br />
        <!-- ELSE -->
           <strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong>{postrow.custom_fields.PROFILE_FIELD_VALUE}<br />
        <!-- ENDIF -->

	<!-- END custom_fields -->
Si por ejemplo crearamos otro campo igual que nivel, digamos "equipoweb", y deseamos mostrar solo los campos normales, la sentencia seria asi:

Código: Seleccionar todo

<!-- BEGIN custom_fields -->
                   <!-- IF postrow.custom_fields.PROFILE_FIELD_NAME neq "nivel" && postrow.custom_fields.PROFILE_FIELD_NAME neq "equipoweb" --> 
                                 <strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong>{postrow.custom_fields.PROFILE_FIELD_VALUE}<br />
                   <!-- ENDIF -->
                <!-- END custom_fields -->
otra forma de mostrarlo seria asi, con el mismo resultado de arriba:

Código: Seleccionar todo

<!-- BEGIN custom_fields -->

        <!-- IF postrow.custom_fields.PROFILE_FIELD_NAME eq "nivel" -->
       <!-- ELSEIF postrow.custom_fields.PROFILE_FIELD_NAME eq "equipoweb" -->
        <!-- ELSE -->
               <strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong>{postrow.custom_fields.PROFILE_FIELD_VALUE}<br />
        <!-- ENDIF -->

	<!-- END custom_fields -->
y para solo mostrar los dos campos personalizados:

Código: Seleccionar todo

<!-- BEGIN custom_fields -->

        <!-- IF postrow.custom_fields.PROFILE_FIELD_NAME eq "nivel" -->
              <img src="{T_THEME_PATH}/images/{postrow.custom_fields.PROFILE_FIELD_VALUE}.png" alt="" />
              <br />
        <!-- ENDIF -->
       <!-- IF postrow.custom_fields.PROFILE_FIELD_NAME eq "equipoweb" -->
              <br />
              <img src="{T_THEME_PATH}/images/{postrow.custom_fields.PROFILE_FIELD_VALUE}.gif" alt="" />
              <br />
        <!-- ENDIF -->

	<!-- END custom_fields -->
Tambien podriamos mediante los campos personalizados mostrar una imagen de diferentes carpetas:

Código: Seleccionar todo

<img src="{T_THEME_PATH}/{postrow.custom_fields.PROFILE_FIELD_VALUE}/miimagen.gif" alt="" />
Estos son algunos ejemplos, espero poder ir agregando mas, aunque con esto creo que podremos ir manejando nuestros campos personalizados de una mejor manera.

Saludos.
:lee