Advertisement:

Author Topic: Adicionando novas opções ao menu SMF 2.0  (Read 12567 times)

Offline TaijovuNeji

  • SMF Hero
  • ******
  • Posts: 1,542
Adicionando novas opções ao menu SMF 2.0
« on: November 25, 2010, 03:23:01 PM »
Neste tutorial, você vai aprender como adicionar novas opções no menu do SMF 2.0
Diferente das versões 1.0.x e 1.1.x, o menu foi movido dos templates para um dos arquivos fonte do SMF, podendo assim ser compartilhado entre eles.
Isso torna mais fácil a tarefa de adicionar uma nova opção no menu para todos os templates de uma vez, ou seja, haverá menos trabalho à fazer quando for instalar manualmente mods em temas personalizados.

Primeiramente, você deve abrir o arquivo Sources/Subs.php

Procure por:
Code: [Select]
// All the buttons we can possible want and then some, try pulling the final list of buttons from cache first.
Isto é onde as opções do menu são definidas.

Cada opção, é uma entrada em um grande array, esta é a primeira opção:
Code: [Select]
         'home' => array(
            'title' => $txt['home'],
            'href' => $scripturl,
            'show' => true,
            'sub_buttons' => array(
            ),
         ),

Para adicionar uma nova opção, copie e cole este código entre as opções onde você quer que mostre esta nova opção.
Mude 'home' para algo simples e único
Mude $txt['home'] para o nome da nova opção em apóstrofes
Mude $scripturl para o localização da nova opção em apóstrofes
Mude show to true (com isso você pode fazer coisas mais avançadas, que serão explicadas mais tarde neste tutorial)
Por enquanto ignore os sub-buttons. Isto pode criar um menu drop-down, o que também será explicado posteriormente neste tutorial.

Como exemplo, veja a nova opção que coloquei entre as opções Início e Ajuda:
Code: [Select]
         'home' => array(
            'title' => $txt['home'],
            'href' => $scripturl,
            'show' => true,
            'sub_buttons' => array(
            ),
         ),
         'facebook' => array(
            'title' => 'Facebook',
            'href' => 'http://www.facebook.com/',
            'show' => true,
            'sub_buttons' => array(
            ),
         ),
         'help' => array(
            'title' => $txt['help'],
            'href' => $scripturl . '?action=help',
            'show' => true,
            'sub_buttons' => array(
            ),
         ),

Agora você só precisa salvar o arquivo e fazer upload via FTP se for necessário. Se quiser saber mais sobre FTP leia este tutorial: O que é FTP / Como usar o FTP.

Se você quer somente um simples botão, você já pode parar por aqui, caso contrário, continue lendo.

Repare que se você deseja adicionar um botão no fim do menu, ele deve ser colocado depois do botão de logout e você precisará mudar a opção is_last para false no login e registro:

Code: [Select]
'is_last' => true,
Você também precisa adicionar isso à nova opção depois de:

Code: [Select]
'sub_buttons' => array(
            ),

Deve ficar algo assim:

Code: [Select]
'facebook' => array(
            'title' => 'Facebook',
            'href' => 'http://www.facebook.com/',
            'show' => true,
            'sub_buttons' => array(
            ),
            'is_last' => true,

         ),



Adicionando um novo botão em um forum multi linguagem

Ao adicionar uma nova opção no menu, eu sugeri que você substituisse $txt['home'] com o nome que você queria para o novo botão. Isso funciona bem, até você ter um forum com mais de uma linguagem. Então você terá que usar os arquivos de linguagens para que assim o texto possa ser traduzido.

Ao invés de fazer isso:

Code: [Select]
'title' => 'Facebook',

Você precisará fazer algo assim:

Code: [Select]
'title' => $txt['facebook_button'],

Certifique-se de usar um nome único e original, assim irá garantir que não é o mesmo texto que já está em uso pelo SMF. Então você precisará abrir cada arquivo index.idioma.php em Themes/default/languages (obiviamente, substitua idioma pelo nome do seu idioma). No fim do arquivo adicione:

Code: [Select]
$txt['facebook_button'] = 'Facebook';

Certifique-se de fazer o mesmo no arquivo de cada idioma.



Mostrando botões somente para usuários registrados

Talvez você queira ter um botão que somente é exibido para usuários registrados. Você pode fazer isso mudando:

Code: [Select]
'show' => true,

Se você quiser um botão que só é exibido para visitantes, mude para:

Code: [Select]
'show' => $user_info['is_guest'],

Se você quiser um botão que só é exibido para usuários registrados, mude para:

Code: [Select]
'show' => !$user_info['is_guest'],

Se você quiser um botão que só é exibido para os administradores, mude para:

Code: [Select]
'show' => $context['user']['is_admin']



Sub-opções

Por favor, note que nem todos os temas suportam sub-opções.

Você pode definir sub-opções que serão exibidas no drop-down menu. Veja o código usado para o menu do calendário:

Code: [Select]
         'calendar' => array(
            'title' => $txt['calendar'],
            'href' => $scripturl . '?action=calendar',
            'show' => $context['allow_calendar'],
            'sub_buttons' => array(
               'view' => array(
                  'title' => $txt['calendar_menu'],
                  'href' => $scripturl . '?action=calendar',
                  'show' => allowedTo('calendar_post'),
               ),
               'post' => array(
                  'title' => $txt['calendar_post_event'],
                  'href' => $scripturl . '?action=calendar;sa=post',
                  'show' => allowedTo('calendar_post'),
               ),
            ),
         ),

Tudo que você precisa fazer, é copiar o código da sub-opção no sub_buttons array() e então editar o nome, títulol, e show. Por exemplo, para adicionar uma sub-opção para o Facebook:

Code: [Select]
'facebook' => array(
            'title' => 'Facebook',
            'href' => 'http://www.facebook.com/',
            'show' => true,
            'sub_buttons' => array(
               'esquecisenha' => array(
                  'title' => 'Esqueci Minha senha',
                  'href' => 'http://www.facebook.com/reset.php',
                  'show' => true,
               ),
            ),
         ),



Créditos
Tópico original por: H
Tradução e edição: TaijovuNeji
Hospedagem 20GB, Cpanel, Windows ou Linux, com suporte a PHP ou ASP, R$ 30,00 por mes ou 290 por ano

meu site: http://www.dungeonmakers.com.br/forum
Não atendo PM para pedidos de suporte/ajuda. Para isso existe o forum!!!

Offline Spectrum..!!

  • SMF Hero
  • ******
  • Posts: 5,567
  • Gender: Male
  • No to Bullying !!
Re: Adicionando novas opções ao menu SMF 2.0
« Reply #1 on: November 25, 2010, 05:04:07 PM »
Parabéns pelo Tuto, vai para o índice (que aliás estará entrando em fase de edição)....

abçs,

Existem pessoas que deixam de buscar algo que dura a vida toda, para somente conquistar algo que dura alguns momentos...
Ser humilde; não é ser menos que alguém. É saber que não somos mais que ninguém!
SMF 2.0.4 | Meu site -->
Dell Vostro 3560 + AMD Radeon™ HD 7670M 1GB| Windows 8 Pro | Fedora 18 | IE10 | Google Chrome
Não atendo PM para pedidos de suporte/ajuda

Offline Costa

  • SMF Hero
  • ******
  • Posts: 3,045
  • Gender: Male
  • Do NOT feed the trolls...
Re: Adicionando novas opções ao menu SMF 2.0
« Reply #2 on: November 25, 2010, 05:57:20 PM »
Faz mais de um ano que traduzi isso, e está algures por aqui assim como na In4tek SMF
http://www.in4tek.com.br/smf/index.php?topic=13

EDIT

Aqui ó
http://www.simplemachines.org/community/index.php?topic=324675.0

-Costa
Hugo "Costa" Fernandes
Todas as MP's a pedir ajuda são sujeitas a radioactividade, microondas, queimadas e atiradas borda fora.

"At least someone appreciates the fact that I am doing and not thinking..."
"Laziness is counter-revolutionary."

Offline Spectrum..!!

  • SMF Hero
  • ******
  • Posts: 5,567
  • Gender: Male
  • No to Bullying !!
Re: Adicionando novas opções ao menu SMF 2.0
« Reply #3 on: November 26, 2010, 03:34:48 AM »
Obrigado por informar amigo Costa, foi acrescido também em tópico de pedido de ajuda.

Conforme informei anteriormente, neste mesmo......

..... vai para o índice (que aliás estará entrando em fase de edição)....

abçs,

Existem pessoas que deixam de buscar algo que dura a vida toda, para somente conquistar algo que dura alguns momentos...
Ser humilde; não é ser menos que alguém. É saber que não somos mais que ninguém!
SMF 2.0.4 | Meu site -->
Dell Vostro 3560 + AMD Radeon™ HD 7670M 1GB| Windows 8 Pro | Fedora 18 | IE10 | Google Chrome
Não atendo PM para pedidos de suporte/ajuda

Offline TaijovuNeji

  • SMF Hero
  • ******
  • Posts: 1,542
Re: Adicionando novas opções ao menu SMF 2.0
« Reply #4 on: November 26, 2010, 05:45:23 AM »
Costa, veja esse tópico: http://www.simplemachines.org/community/index.php?topic=409578.0
Você colocou um link para o tuto no seu forum e não o link do tutorial aqui na comunidade, então achei que o mesmo não existia aqui, por isso eu fiz este tuto.
« Last Edit: November 26, 2010, 07:15:49 AM by TaijovuNeji »
Hospedagem 20GB, Cpanel, Windows ou Linux, com suporte a PHP ou ASP, R$ 30,00 por mes ou 290 por ano

meu site: http://www.dungeonmakers.com.br/forum
Não atendo PM para pedidos de suporte/ajuda. Para isso existe o forum!!!

Offline Costa

  • SMF Hero
  • ******
  • Posts: 3,045
  • Gender: Male
  • Do NOT feed the trolls...
Re: Adicionando novas opções ao menu SMF 2.0
« Reply #5 on: November 26, 2010, 10:12:46 AM »
Tranquilo fera. :)
Foi só para evitar conteúdo duplicado.

-Costa
Hugo "Costa" Fernandes
Todas as MP's a pedir ajuda são sujeitas a radioactividade, microondas, queimadas e atiradas borda fora.

"At least someone appreciates the fact that I am doing and not thinking..."
"Laziness is counter-revolutionary."

Offline edu_fmc

  • Jr. Member
  • **
  • Posts: 331
    • Fórum Música
Re: Adicionando novas opções ao menu SMF 2.0
« Reply #6 on: June 15, 2012, 07:46:25 PM »
Olá,

acrescentei o botão, mas o mesmo não fica selecionado quando pressiono nele.
Ou seja, pressiono e o botão que fica seleccionado é o "Inicio"...

Vejam:
http://forum-musica.net/index.php?action=resources


Têm alguma ideia como alterar?