News:

SMF 2.1.4 has been released! Take it for a spin! Read more.

Main Menu

Agregar botones al menu en 2.0RC3, RC4

Started by mirahalo, February 16, 2009, 11:02:18 AM

Previous topic - Next topic

dario_rey_musico

hola soy medio nuevo en esto,, y instale un tema que tiene esto..index al principio dice:// Version: 2.0 RC1.2; index

y el tema no me trajo ningun boton en la portada,,
y la verdad que no se donde esta Subs.php e index.tuidioma.php.
yo entro en el tema:


Analysis (2.0 RC1.2)

Examinar los archivos y plantillas de este tema.
Editar la hoja de estilos de este tema.
Copiar una plantilla del tema en el que éste está basado.


y voy a examinar los archivos , y no encuentro los 2 archivos del tutorial.. que hago mal.

los archivos que me muestra el nuevo tema que instale son:

Nombre del archivo Última modificación Tamaño
css   
images   
languages   
index.php  Hoy a las 04:40:02  217 B
index.template.php  Hoy a las 05:41:47  15.45 KB
logo.psd  Hoy a las 04:40:02  198.91 KB
style.css  Hoy a las 04:40:01  17.08 KB
theme_info.xml  Hoy a las 04:40:02  913 B


mirahalo

eso es por que existen diferencias entre las dos versones de smf:

en 1.1.x   los botones se editan en tu archivo /Themes/tu theme/index.template.php

sin embargo, en la version 2.0  el menu ahora se encunetra en:

Sources/Subs.php

esto hace que cada vez que agregas un boton, este aparecera en todos tus themes y ya no tendras que modificar cada theme que tengas, si deseas agrgar un boton en la version 2.0, entonces sigue este tutorial.


saludos!

dario_rey_musico

Quote from: 130860 on August 31, 2009, 08:40:35 PM
eso es por que existen diferencias entre las dos versones de smf:

en 1.1.x   los botones se editan en tu archivo /Themes/tu theme/index.template.php

sin embargo, en la version 2.0  el menu ahora se encunetra en:

Sources/Subs.php

esto hace que cada vez que agregas un boton, este aparecera en todos tus themes y ya no tendras que modificar cada theme que tengas, si deseas agrgar un boton en la version 2.0, entonces sigue este tutorial.


saludos!



que me recomendas,, yo quiero que en todos mis temas tener los botones ...
yo uso smf 1.1.10

lo cambio por el 2.0?
igual yo estoy armando un foro de prueba hasta que no este bien instruido de todo , no lo largo a la calle :(

mirahalo

mira, en mi opinion personal, yo uso 2.0RC1.2 en mi pagina, y hasta ahora no he tenido ningun problema, empece a usar smf cuando iban en la version 1.1.2  y lo use hasta la version 1.1.7, de ahi lo actualice a 2.0 y la verdad son muchos los cambios y mejoras que trae, por ejemplo los botones, solo tienes que modificar una vez y listo, todos tus botones apareceran en cualquier theme sin hacer mas cambios, tambien trae el editor WYSIYG por default y bastantes mejoras mas.

si decides seguir con 1.1.10, entonces cada vez que quieras agragar un boton, lo tendras que agregar en todos tus themes (el mod esta obligado a instalarlo solo en el default)

saludos!

Cygnux

Salu2  ;D

Podrias ayudarme, no encuentro como hacer que el link que agrego al menu abra un popup ya que al agregar el javascript todo el foro se daña y da error.

Este es el codigo que agrego al Subs.php
Quote'chat' => array(
             'title' => $txt['chat'],
             'href' => 'javascript:popUp('chat.php')',
             'show' => true,
             'sub_buttons' => array(
        ),
   ),

Y este es el script que agrego al <Head> con el Mod "Global Headers and Footers":
Quote<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = hxxp:window.open [nonactive](URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=950,height=250');");
}
// End -->
</script>

mirahalo

ok, trata utilizando comillas dobles " " en lugar de comillas simples asi:

'href' => 'javascript:popUp("chat.php")',

saludos!

Cygnux

Quote from: 130860 on September 10, 2009, 09:58:41 AM
ok, trata utilizando comillas dobles " " en lugar de comillas simples asi:

'href' => 'javascript:popUp("chat.php")',

saludos!

El problema se soluciono, pero aun no funciona el popup, parece que el javascript no funciona agregandolo en el <head> con el mod Global Header and Footer asi que lo agregue manualmente al index.template.php y ahora me da este error:

QuoteParse error: syntax error, unexpected T_STRING, expecting ',' or ';' in .../Themes/Pixel_Perfect_v1d/index.template.php on line 177
168:    // ]]></script>';
169:
170:    echo '
171:
172: <SCRIPT LANGUAGE="JavaScript">
173: <!-- Begin
174: function popUp(URL) {
175: day = new Date();
176: id = day.getTime();
177: eval("page" + id + " = hxxp:window.open [nonactive](URL, '+ id +', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=950,height=250');");
178: }
179: // End -->
180: </script>
181:

Intente cambiar esta linea:
Quote177: eval("page" + id + " = hxxp:window.open [nonactive](URL, '+ id +', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=950,height=250');");

Por esta:
Quote177: eval("page" + id + " = hxxp:window.open [nonactive](URL, "+ id +", 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=950,height=250');");
Y ya no me da el error pero sigue sin funcionar el popup.  >:(

mirahalo

puede ser que el array no esta pasando los datos como se debe, lo que puedes hacer es meter tu boton a la fuerza dentro del index.template.php de tu theme, aunque quedara hasta el final o hasta el procipio, dpende donde lo pongas:

en tu archivo index.template.php busca esto:


// Show the menu up top. Something like [home] [help] [profile] [logout]...
function template_menu()
{
   global $context, $settings, $options, $scripturl, $txt;

   echo '
   <div id="main_menu">
      <ul class="clearfix">';

   foreach ($context['menu_buttons'] as $act => $button)
   {
      $classes = array();
      if (!empty($button['active_button']))
         $classes[] = 'active';
      if (!empty($button['is_last']))
         $classes[] = 'last';
      $classes = implode(' ', $classes);
      
      echo '
         <li id="button_', $act, '"', !empty($classes) ? ' class="' . $classes . '"' : '', '>
            <a title="', $act, '" href="', $button['href'], '">
               <span>', ($button['active_button'] ? '<em>' : ''), $button['title'], ($button['active_button'] ? '</em>' : ''), '</span>
            </a>
         </li>';
   }

   echo '
      </ul>
   </div>';
}


y ahi agrega tu boton quedari algo asi:

<li><a href="tu direccion" ></li>

ponlo antes de </ul> o despues del <ul>

saludos!

distante

Hola 130860,  espero puedas darme una mano,

Seguí el tutorial paso a paso.

agregue esto en mi archivo subs.

'recientes' => array(
             'title' => $txt['recientes'],
             'href' => $scripturl . '?action=recent',
             'show' => true,
             'sub_buttons' => array(
                ),


y en index.spanish_es.php esto:

$txt['recientes'] = 'Recientes';

El espacio del botón aparece y hasta funciona!, pero no sale el texto, algo así como lo que le paso al otro usuario



Ademas revisando el LOG de errores (que ya lo tenia limpio) vi esto :

Quotehttp://www.lanuevacuadra.com/index.php?

8: Undefined index: recientes

Archivo: lanuevacuadra.com/Sources/Subs.php
Línea: 3841

La linea 3841 es justamente : 'title' => $txt['recientes'],

:-\ alguna idea? mi foro es www.lanuevacuadra.com, se puede ver ahí el botón vació.

Gracias

mirahalo

ok, para evitar conflictos innecesarios con lenguajes de texto, puedes hacer esto:

'recientes' => array(
             'title' => 'Recientes',
             'href' => $scripturl . '?action=recent',
             'show' => true,
             'sub_buttons' => array(
                ),



simplemente cambié el string de texto por esto:    'Recientes',   ahora aparecerá sin tener que llamar a ningún archivo de texto.


saludos!

distante

hehe, muy tarde! lo arregle de la mejor forma... prueba y error >_>

Agregue esto :
$txt['recientes'] = 'Recientes';
A mi archivo index.english.php

Pero igual gracias, al menos la experiencia le servirá a alguien más  :D

Saludozz!

distante

Ah lo olvide, también quite esta parte que del archivo subs.php:

'sub_buttons' => array(
                ),



Es decir quedo más o menos así :

'recientes' => array(
             'title' => $txt['recientes'],
             'href' => $scripturl . '?action=recent',
             'show' => true,


Y ahora no me bota ningún tipo de error en el log tampoco  :)

Ianelgroso

Quote from: waren on April 03, 2009, 01:36:44 PM
hola 130860, estoy siguiendo este manual y me encuentro con un pequeño problema, antes de nada aclarar que he seguido el manual como lo explicas.....
el problema es que el botón no se ve....


bueno ya me diréis si falta algo y gracias.....
Salu2

Edit: solucionado todo perfecto, no se por que los cambios que voy realizando no se aplican al momento o casi al momento....



gracias 130860 muy buen manual.....
Salu2

Pero ... no entendi el manual! yo no tengo una configuracion en un bloque de hojas !! como hago??
No soy un newbie , necesito introducir la informacion unicamente!

Cygnux

Quote from: 130860 on September 11, 2009, 10:44:52 AM
puede ser que el array no esta pasando los datos como se debe, lo que puedes hacer es meter tu boton a la fuerza dentro del index.template.php de tu theme, aunque quedara hasta el final o hasta el procipio, dpende donde lo pongas:

en tu archivo index.template.php busca esto:


// Show the menu up top. Something like [home] [help] [profile] [logout]...
function template_menu()
{
   global $context, $settings, $options, $scripturl, $txt;

   echo '
   <div id="main_menu">
      <ul class="clearfix">';

   foreach ($context['menu_buttons'] as $act => $button)
   {
      $classes = array();
      if (!empty($button['active_button']))
         $classes[] = 'active';
      if (!empty($button['is_last']))
         $classes[] = 'last';
      $classes = implode(' ', $classes);
      
      echo '
         <li id="button_', $act, '"', !empty($classes) ? ' class="' . $classes . '"' : '', '>
            <a title="', $act, '" href="', $button['href'], '">
               <span>', ($button['active_button'] ? '<em>' : ''), $button['title'], ($button['active_button'] ? '</em>' : ''), '</span>
            </a>
         </li>';
   }

   echo '
      </ul>
   </div>';
}


y ahi agrega tu boton quedari algo asi:

<li><a href="tu direccion" ></li>

ponlo antes de </ul> o despues del <ul>

saludos!

Aun sigue sin funcionarme porque el problema es cuando agrego el javascript para que funcione el popup en el <head> de index.templete.php, hay alguna forma de agregarle el parametro target="_blank" a la direccion del boton?

Quote from: Subs.php'chat' => array(
             'title' => 'chat',
             'href' => 'Chat.php', // Como agrego aqui target"_blank"?
             'show' => true,
             'sub_buttons' => array(
                ),

Gracias por tu ayuda...  ;)

mirahalo

ok, para agregar un target, si es posible, sin embargo es complicado y afectará a todos los botones, y no solo a uno ya que smf toma el array que se creo para los botones y los muestra con un unico formato para todos, es decir, que si le agregas un target se veran afectados todos los botones, miera este es elcodigo que se usa para mostrar todos los botones:

<li id="button_', $act, '"', !empty($classes) ? ' class="' . $classes . '"' : '', '>
            <a title="', $act, '" href="', $button['href'], '">
               <span>', ($button['active_button'] ? '<em>' : ''), $button['title'], ($button['active_button'] ? '</em>' : ''), '</span>
            </a>
         </li>';


si te das cuenta, puedes agregar otro campo mas a el array e incluirlo aqui, pero se modificaran todos los botones al mismo tiempo.

lameto no poder ayudarte, post atras otro usuario tambien queria hacer lo mismo, seria una buena idea el incluir el target de un link.

The Mx

sirve pa un foro Powered by SMF 2.0 RC1.2?

distante


anabelen

#57
Gracias, mi botón no se ve, que hago mal?
Tengo instalado;

Powered by SMF 2.0 RC1.2
SimplePortal 2.3 [nofollow]       

Video embedding by Aeva
Newton_RC1






      $buttons = array(
         'home' => array(
            'title' => $txt['home'],
            'href' => $modSettings['sp_portal_mode'] == 3 ? $modSettings['sp_standalone_url'] : $scripturl,
            'show' => true,
            'sub_buttons' => array(
            ),
         ),
         'Galeria' => array(
             'title' => $txt['Galeria'],
             'href' => 'http://www.cordobacf-posadas.es/Galeria/main.php',
             'show' => true,
             'sub_buttons' => array(
        ),
   ),


$txt['news'] = 'Noticias';
$txt['home'] = 'Inicio';
$txt['Galeria'] = 'Galeria';


Saludos.

mirahalo

no encontre ningun error en tu codigo

a veces el foro se tarda en mostrar los cambios, lo que puedes hacer es borrar el cache de tu foro en admin/mantenimiento/rutina/Vaciar la caché de ficheros   para ver si solo es cuestion de el cache.


oh! acabo de entrar a tu web y yo puedo ver el boton con normalidad!

solo es cuestion de esperar un poco o hacer como te he dicho, borrar el cache.


saludos!

anabelen

    Ahora si se ve, debía de ser eso, porque yo no he tocado nada mas, muchas gracias ;)

Saludos. 

Advertisement: