Simple Machines Community Forum

SMF Support => Português (Portuguese) => Language Specific Support => Tutoriais => Topic started by: TaijovuNeji on November 25, 2010, 03:23:01 PM

Title: Adicionando novas opções ao menu SMF 2.0
Post by: TaijovuNeji 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:
// 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:

         '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:
         '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 (http://www.simplemachines.org/community/index.php?topic=327375).

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:

'is_last' => true,

Você também precisa adicionar isso à nova opção depois de:

'sub_buttons' => array(
            ),


Deve ficar algo assim:


'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:


'title' => 'Facebook',


Você precisará fazer algo assim:


'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:


$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:


'show' => true,


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


'show' => $user_info['is_guest'],


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


'show' => !$user_info['is_guest'],


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


'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:


         '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:


'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 (http://www.simplemachines.org/community/index.php?action=profile;u=24172)
Tradução e edição: TaijovuNeji (http://www.simplemachines.org/community/index.php?action=profile;u=197130)
Title: Re: Adicionando novas opções ao menu SMF 2.0
Post by: Spectrum..!! 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,
Title: Re: Adicionando novas opções ao menu SMF 2.0
Post by: Costa 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
Title: Re: Adicionando novas opções ao menu SMF 2.0
Post by: Spectrum..!! 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......

Quote from: Spectrum..!!☻ on November 25, 2010, 05:04:07 PM
..... vai para o índice (que aliás estará entrando em fase de edição)....

abçs,
Title: Re: Adicionando novas opções ao menu SMF 2.0
Post by: TaijovuNeji on November 26, 2010, 05:45:23 AM
Costa, veja esse tópico: http://www.simplemachines.org/community/index.php?topic=409578.0 (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.
Title: Re: Adicionando novas opções ao menu SMF 2.0
Post by: Costa on November 26, 2010, 10:12:46 AM
Tranquilo fera. :)
Foi só para evitar conteúdo duplicado.

-Costa
Title: Re: Adicionando novas opções ao menu SMF 2.0
Post by: edu_fmc 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?