• ¡Bienvenido a XenFácil!

    Estás viendo el sitio como Invitado. Para poder participar en este sitio

    y obtendrás privilegios adicionales, acceso a otras áreas y mucho mas.

    ¡Es gratis!


    ¿Ya eres miembro? Inicia sesión
Añadir pestañas de navegación

Tutorial Añadir pestañas de navegación

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Es un tutorial MUY BÁSICO sobre cómo añadir tus propias pestañas.
Mira el php para más info
1. Crea tu archivo php de clase en el directorio de XenForo. Lo he llamado lmsTab
PHP:
<?php
class XenForo_lmsTab
{
 /**
  * añade la pestaña "lms" a la barra de navegación (navbar)
 * @param array $extraTabs
 * @param string $selectedTabId
 */
 public static function addNavbarTab(array &$extraTabs, $selectedTabId)
 {
  $extraTabs['lms'] = array(
  'title' => new XenForo_Phrase('lms_paginainformacion_navbartitle'),//frase con el título del enlace
  'href' => XenForo_Link::buildPublicLink('lms'),
  'linksTemplate' => 'lms_paginainformacion_navbar', //Si quieres tener un "sub menú" puedes crear una plantilla para esto
  'position' => 'middle' //desde la beta 5, puedes elegir la posición donde se coloca el enlace. Posibles posiciones: middle, end y home
 );
 }
}

Plantilla para los enlaces del sub-menú de pestaña
PHP:
<ul class="secondaryContent blockLinksList">
 <xen:if is="{$visitor.user_id}"><li><a href="{xen:link 'watched/threads'}">{xen:phrase watched_threads}</a></li></xen:if>
 <li><a href="{xen:link 'recent-activity'}">{xen:phrase recent_activity}</a></li>
 <li><a href="{xen:link 'find-new/threads'}">{xen:phrase whats_new}</a></li>
 <li><a href="{xen:link 'help'}">{xen:phrase help}</a></li>
 <xen:if is="{$perms.admin}">
  <li><a href="{xen:link 'pagina/quequieras'}">{xen:phrase pagina_que_quieras}</a></li>
 </xen:if>
</ul>

Necesitas una clase con un método estático.
El método tiene unos parámetros (como se dice en la documentación^^)

2. Crea un detector de eventos de código (Code Event Listener) con "detectores" a las pestañas de navegación.
Llamado cuando se preparan las pestañas y enlaces que se colocan en la página principal de navegación. Puedes usar este evento para añadir tus propias pestañas.
Argumentos:
array &$extraTabs - puedes colocar pestañas adicionales en esta matríz. Cada pestaña debe identificarse con una única clave (mira $selectedTabId) y contener en la matríz las siguientes claves:
title - título de la pestaña principal
href - enlace a la raíz de la pestaña
selected - booleano que determina qué pestaña está seleccionada actualmente
linksTemplate - nombre de la plantilla que contiene los enlaces a mostrar en la segunda fila. El comienzo del HTML de esta plantilla debe ser una cadena <ul class="secondaryContent blockLinksList">.
$selectedTabId - nombre de la pestaña seleccionada. Selecciona tu pestaña si coincide.

Sólo queda configurar el nombre de la clase y método:
Devolución de llamada a ejecutar (Execute Callback): xenforo_lmsTab :: addNavbarTab

Si usas una frase para el título de la pestaña DEBES poner en caché la frase.
!Te ahorrará una consulta global a la base de datos!

Artículo original (en inglés): http://xenforo.com/community/threads/add-own-navigation-tabs.5265/
Autor: ragtek

Salud2
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Primero creas el archivo php y lo colocas en su ruta adecuada (en este caso en library/xenforo/lmsTab.php) y ahora mira las imágenes:

23.png24.png25.png26.png

Salud2
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Bueno, es otra forma pero si quieres hacer un complemento deberás hacerlo como te indico.

Salud2
 

Iluso

Miembro
Mensajes
45
Puntuación de reacciones
8
Puntos
8
esto seria como as añadido por ejemplo la pestaña de traducciones? si es asi porque en mi panel de foro no tengo la opcion de desarrolldor? como la puedo conseguir?
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Ahora hay un complemento que hace esto bastante sencillo y coloca el/los foros que elijas en pestañas. Busca en el foro de complementos "nodos como pestañas". Lo otro te lo pongo esta tarde ya que hay que editar el archivo library/config.php y añadir una línea cuyo texto no recuerdo aunque puedes buscar en el foro por "modo debug".

Saludos
 

Iluso

Miembro
Mensajes
45
Puntuación de reacciones
8
Puntos
8
gracias fiera ya e puesto el modo debug y yo pensando que era una licencia diferente sereeeeee

Bueno te cuento lo que quiero hacer que sera mas facil, yo lo que pretendo es crear una pestaña con una categoria en la cual pueda insertar mis codigos html no un posts porque en ellos no puedo insertar los codes que necesito.

como lo podria hacer?
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Entonces sigue este tutorial, dando el nombre adecuado a cada cosa. Sobre todo, en el php, cambia lms por lo que quieres que aparezca como enlace. En el nombre de la plantilla da igual. Ahí puedes poner el código htmal (en formato plantilla) que desees. Si tienes problemas, díme lo que quieres poner y direcciones y lo hacemos.

Salud2
 

Iluso

Miembro
Mensajes
45
Puntuación de reacciones
8
Puntos
8
solo tengo un problema(por ahora) viendo tus capturas, primero debere crear un complemento no? como lo hago,? ya que he visto que has enlazada al cambio de estilo de lms,
 

Iluso

Miembro
Mensajes
45
Puntuación de reacciones
8
Puntos
8
Bien voy progresando, he creado el complemento yyyyyy e montado el tab solo un inciso cuidado con las mayuscula, ya que en el ejemplo que montas el nombre de la clase es:
<?phpclass XenForo_lmsTab

y en la captura pones: xenforo_lmsTab

cuidado con ello, la clase debe llevar esactamente el mismo nombre.

Un saludo y a currarrrrrrrr :D

 

Iluso

Miembro
Mensajes
45
Puntuación de reacciones
8
Puntos
8
Bueno ahora me falta saver como asocio mi codigo html a esta nueva pestaña?
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Es un tutorial MUY BÁSICO sobre cómo añadir tus propias pestañas.
Mira el php para más info
1. Crea tu archivo php de clase en el directorio de XenForo. Lo he llamado lmsTab
PHP:
<?php
class XenForo_lmsTab
{ ...
  $extraTabs['lms'] = array(
  'title' => new XenForo_Phrase('lms_paginainformacion_navbartitle'),//frase con el título del enlace
  'href' => XenForo_Link::buildPublicLink('lms'),
  'linksTemplate' => 'lms_paginainformacion_navbar', //Si quieres tener un "sub menú" puedes crear una plantilla para esto
  'position' => 'middle' //desde la beta 5, puedes elegir la posición donde se coloca el enlace. Posibles posiciones: middle, end y home
);
}
}

Plantilla para los enlaces del sub-menú de pestaña
PHP:
<ul class="secondaryContent blockLinksList">
<xen:if is="{$visitor.user_id}"><li><a href="{xen:link 'watched/threads'}">{xen:phrase watched_threads}</a></li></xen:if>
<li><a href="{xen:link 'recent-activity'}">{xen:phrase recent_activity}</a></li>
<li><a href="{xen:link 'find-new/threads'}">{xen:phrase whats_new}</a></li>
<li><a href="{xen:link 'help'}">{xen:phrase help}</a></li>
<xen:if is="{$perms.admin}">
  <li><a href="{xen:link 'pagina/quequieras'}">{xen:phrase pagina_que_quieras}</a></li>
</xen:if>
</ul>
2. Crea un detector de eventos de código (Code Event Listener) con "detectores" a las pestañas de navegación.
Sólo queda configurar el nombre de la clase y método:
Devolución de llamada a ejecutar (Execute Callback): XenForo_lmsTab :: addNavbarTab

Si usas una frase para el título de la pestaña DEBES poner en caché la frase.
!Te ahorrará una consulta global a la base de datos!
...
La clave la tienes aquí:
PHP:
  $extraTabs['lms'] = array(
  'title' => new XenForo_Phrase('lms_paginainformacion_navbartitle'),//frase con el título del enlace
  'href' => XenForo_Link::buildPublicLink('lms'),
  'linksTemplate' => 'lms_paginainformacion_navbar', //Si quieres tener un "sub menú" puedes crear una plantilla para esto
  'position' => 'middle'
Por partes:
$extraTabs['lms'] = array( => lms es el nombre o ID de la pestaña (único)
'title' => new XenForo_Phrase('lms_paginainformacion_navbartitle'), => frase con el título del enlace y que hará que pueda aparecer en más de un idioma.
'href' => XenForo_Link::buildPublicLink('lms'), => lms es el enlace que figurará en el navegador.
'linksTemplate' => 'lms_paginainformacion_navbar', => Para tener un "sub menú" y poder poner tu código html, puedes crear una plantilla para esto que se llama lms_paginainformacion_navbar
'position' => 'middle' => es la posición en que irá la pestaña (home para inicio, Middle para el medio y End para ir con la help-Ayuda.

Crea una plantilla: PCA -> Aspecto -> Plantillas -> Estilo maestro -> Crear plantilla -> Nombre lms_paginainformacion_navbartitle
Contenido -> (el puesto más arriba con las modificaciones pertinentes).
Para la plantilla tomo por ejemplo esta línea: <li><a href="{xen:link 'find-new/threads'}">{xen:phrase whats_new}</a></li>
Esta contiene un enlace de redirección de xenforo <a href="{xen:link 'find-new/threads'}"> que es para la búsqueda de nuevos temas. Puedes cambiarla (y el resto por ende) a <a href="http://www.TuDominio.com/">. La frase {xen:phrase whats_new} debes crearla antes y le pones el ID de la frase (que solo puede haber uno) y que suele ser como lms_NavTab_Videos (por ejemplo) y debe llevar el formato {xen:phrase lms_NavTab_Videos}.

Así debes seguir con todos los enlaces que te hagan falta pero ten en cuenta que la barra de abajo de las pestañas tiene una dimensión, que muchos enlaces hará que se pueda perder el css y que en navegadores antiguos puede verse limitado el ancho por la resolución de pantalla.

Salud2
 

Iluso

Miembro
Mensajes
45
Puntuación de reacciones
8
Puntos
8
graciiiiiiias fiera po no me queda naaaaaaaaaaa por dios jejejejejejejejejej
 

Iluso

Miembro
Mensajes
45
Puntuación de reacciones
8
Puntos
8
Bien yo la dejo con este nombre:

TDTtab.php

y en ella lo dejo asi:

HTML:
<?php
class XenForo_TDTtab
{
/**
  * añade la pestaña "TDT" a la barra de navegación (navbar)
* @param array $extraTabs
* @param string $selectedTabId
*/
public static function addNavbarTab(array &$extraTabs, $selectedTabId)
{
  $extraTabs['TDT'] = array(
  'title' => new XenForo_Phrase('Proyecto TDT'),//frase con el título del enlace
  'href' => XenForo_Link::buildPublicLink('TDT'),
  'linksTemplate' => 'TDT_paginainformacion_navbar', //Si quieres tener un "sub menú" puedes crear una plantilla para esto
  'position' => 'middle' //desde la beta 5, puedes elegir la posición donde se coloca el enlace. Posibles posiciones: middle, end y home
);
}
}

Bien y creo la plantilla TDT_paginainformacion_navbar con el code php y me da este error:
y la frase TDT_paginainformacion_navbartitle
- Error

No se encuentra el controlador en la ruta TDT/.
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Bien yo la dejo con este nombre:

TDTtab.php

y en ella lo dejo asi:

HTML:
<?php
class XenForo_TDTtab
{
/**
* añade la pestaña "TDT" a la barra de navegación (navbar)
* @param array $extraTabs
* @param string $selectedTabId
*/
public static function addNavbarTab(array &$extraTabs, $selectedTabId)
{
  $extraTabs['TDT'] = array(
  'title' => new XenForo_Phrase('Proyecto_TDT'),//frase con el título del enlace
  'href' => XenForo_Link::buildPublicLink('TDT'),
  'linksTemplate' => 'TDT_paginainformacion_navbar', //Si quieres tener un "sub menú" puedes crear una plantilla para esto
  'position' => 'middle' //desde la beta 5, puedes elegir la posición donde se coloca el enlace. Posibles posiciones: middle, end y home
);
}
}

Bien y creo la plantilla TDT_paginainformacion_navbar con el code php y me da este error:
y la frase TDT_paginainformacion_navbartitle
- Error

No se encuentra el controlador en la ruta TDT/.
¿Has creado el listener? Sigue las imágenes de más arriba.
2. Crea un detector de eventos de código (Code Event Listener) con "detectores" a las pestañas de navegación.
Sólo queda configurar el nombre de la clase y método:
Devolución de llamada a ejecutar (Execute Callback): XenForo_TDTtab::addNavbarTab

Salud2
 
Arriba