News:

Bored?  Looking to kill some time?  Want to chat with other SMF users?  Join us in IRC chat or Discord

Main Menu

[TUTORIAL] Como acrescentar botões ao menu[SMF 1.1.X]

Started by Costa, October 18, 2008, 01:39:21 PM

Previous topic - Next topic

Costa

QiTeam - Qualidade ao seu serviço!
Soluções de hospedagem! Contacte-nos..

Aqui vou apenas falar do Tema Default do SMF, os outros temas são ligeiramente diferentes e cada um é como cada qual.

Começando

Vão na pasta do vosso tema e abram o index.template.php
Nesse ficheiro vão ter que procurar o menu, procurem pelo seguinte código:
// Show the [home] button.
    echo ($current_action=='home' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '">&nbsp;</td>' : '' , '
                <td valign="top" class="maintab_' , $current_action == 'home' ? 'active_back' : 'back' , '">
                    <a href="', $scripturl, '">' , $txt[103] , '[/url]
                </td>' , $current_action == 'home' ? '<td class="maintab_active_' . $last . '">&nbsp;</td>' : '';


Este é o código do botão HOME(ex www.teusite.com/index.php)



Vamos colocar um botão para o pai dos burros, o Google.

Para abrir na mesma aba:
     // Um botão novo, para o Google
    echo'
             <td valign="top" class="maintab_back">
                <a href="http://google.com" >Google</a>             
             </td>';


Para abrir em uma nova aba
    //  Um botão novo, para o Google
    echo'
             <td valign="top" class="maintab_back">
                <a href="http://google.com" target="_blank">Google</a>             
             </td>';


O resultado abaixo


Se vocês definirem um link DENTRO do fórum (algo que que seja uma ação do tipo ?action=qualquer_coisa_que_queiram ) vocês vão ter que adicionar a ação na chamada abaixo.

    if (in_array($context['current_action'], array('search', 'admin', 'calendar', 'profile', 'mlist', 'register', 'login', 'help', 'pm', 'links')))
        $current_action = $context['current_action'];


No entanto isto apenas serve se fizerem um botão para um endereço dentro do vosso fórum agregado a uma ação

Espero que seja util.

Farebem
-Costa
Hugo "Costa" Fernandes - PT SMF
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."

jossanaijr

Apenas para complementar que é possível dividir  os botões em 2 linhas ou mais quando já tiverem muitos, inclusive personalizando onde "quebrar" se for convidado, administrador, ou de determinado grupo.
A postagem está em inglês mas acho que dá para entender que o código deve ser colocado onde se quer que ocorra a divisão:
http://www.simplemachines.org/community/index.php?topic=131924.msg1303723#msg1303723

Jumper™

#2
Como faço para alinhar o botão à esquerda?

coloquei o código como indica o amigo Costa, mas o botão aparece à direita do monitor, e os outros que já lá estavam estão à esquerda.

Cumps



PS: excelente poste, deveria ser colocado no indice.

Costa

Jumper, os botões aparecem em ordem, para botar o botão há esquerda basta colocálo na ordem

Anexa aí o teu index.template.php que eu dou uma olhada e depois posto explicando como fazer e anexo o arquivo já modificado
Hugo "Costa" Fernandes - PT SMF
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."

Jumper™

Eu já adicionei (quase no fim do ficheiro) Tópicos recentes, só que aparece do lado direito e eu queria que aparecesse junto aos outros botões para que depois eu pudesse fazer um botão identico, não sei se me fiz entender lol.

Costa

Vê se agora dá, e me adiciona no msn

hugomf[a]live.com.pt
Se estiver certo agora eu explico todo o processo
Hugo "Costa" Fernandes - PT SMF
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."

Costa

Resolviddo, hehe

é simples
Code (encontra) Select

// Edit Profile... [profile]
    if ($context['allow_edit_profile'])
        echo '
                <a href="', $scripturl, '?action=profile">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/profile.gif" alt="' . $txt[79] . '" border="0" />' : $txt[467]), '</a>', $context['menu_separator'];


Code (Acrescenta a seguir) Select

    // Here we go some new button, new mensages.
    echo '
                <a href="', $scripturl, '?action=unread;all;start=0">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/topico.gif" alt="' . $txt['Tópicos não lidos'] . '" border="0" />' : $txt['Tópicos não lidos']), '</a>', $context['menu_separator'];



Tens que fazer uma imagem para ficar tudo em harmonia, e depois voilá!
fica como a imagem em anexo
OBS: editei o botão com o paint, precisas de alguém que manje de PS  :P
Hugo "Costa" Fernandes - PT SMF
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."

Jumper™

Obrigado amigo Costa, já resolvi o problema do botão, tá 5*****.

Um abraço
jumper

margarett

Bom tópico ;) Vai já a caminho do indíce ;)
Se forem conduzir, não bebam. Se forem beber... CHAMEM-ME!!!! :D

QuoteOver 90% of all computer problems can be traced back to the interface between the keyboard and the chair

migueldefender

#9
Costa, diz-me uma coisa. Eu consegui perfeitamente instalar o botão (tendo em conta a minha cultura informatica, acho que foi uma grande proeza lol), mas, aconteceu-me outra coisa.

De facto o botão ficou instalado, mas ficou a destoar da barra. Olha a seguinte imagem:
http://img152.imageshack.us/img152/6898/probox7.jpg


Há alguma coisa que se possa fazer? :)


Um abraço,

migueldefender

ahh, já agora, o meu texto não está igual ao teu, será por causa disso?

// Show the [home] and [help] buttons.
   echo $tab1, $ca== 'home' ? '1' : '2' , '"><a href="', $scripturl, '">'.$txt[103]. '</a></td>';
   echo $tab1, $ca== 'help' ? '1' : '2' , '"><a href="', $scripturl, '?action=help" >'.$txt[119]. '</a></td>';

   // How about the [search] button?
   if ($context['allow_search'])
      echo $tab1, $ca== 'search' ? '1' : '2' , '"><a href="', $scripturl, '?action=search">'.$txt[182]. '</a></td>';

   // Is the user allowed to administrate at all? ([admin])
   if ($context['allow_admin'])
      echo $tab1, $ca== 'admin' ? '1' : '2' , '"><a href="', $scripturl, '?action=admin">'.$txt[2]. '</a></td>';


   // Edit Profile... [profile]
   if ($context['allow_edit_profile'])
      echo $tab1, $ca== 'profile' ? '1' : '2' , '"><a href="', $scripturl, '?action=profile">'.$txt[467]. '</a></td>';

   // Go to PM center... [pm]
   if ($context['user']['is_logged'] && $context['allow_pm'])
      echo $tab1, $ca== 'pm' ? '1' : '2' , '"><a href="', $scripturl, '?action=pm">' , $txt['pm_short'] , ' ', $context['user']['unread_messages'] > 0 ? '[<strong>'. $context['user']['unread_messages'] . '</strong>]' : '' , '</a></td>';

        // Here we go some new button.
    echo'
             <td valign="top" class="maintab_' , $current_action == 'Google' ? 'active_back' : 'back' , '">
                <a href="http://google.pt" target="_blank">' , 'GOOGLE' , '</a>             
             </td>';

   // The [calendar]!
   if ($context['allow_calendar'])
      echo $tab1, $ca== 'calendar' ? '1' : '2' , '"><a href="', $scripturl, '?action=calendar">'.$txt['calendar24']. '</a></td>';

   // If the user is a guest, show [login] and [register] buttons.
   if ($context['user']['is_guest'])
   {
      echo $tab1, $ca== 'login' ? '1' : '2' , '"><a href="', $scripturl, '?action=login">'.$txt[34]. '</a></td>';
      echo $tab1, $ca== 'register' ? '1' : '2' , '"><a href="', $scripturl, '?action=register">'.$txt[97]. '</a></td>';
   }
   // Otherwise, they might want to [logout]...
   else
      echo $tab1, $ca== 'logout' ? '1' : '2' , '"><a href="', $scripturl, '?action=logout;sesc='.$context['session_id'].'">'.$txt[108]. '</a></td>';


   echo '<td><img src="'.$settings['images_url'].'/img/tab_last.jpg" alt="" style="margin: 0;" /></td></tr></table>';
}


Um abraço,

margarett

#11
Isso acontece-te porque o código que o Costa colocou é para o tema default, e usa classes de CSS diferentes do teu (naturalmente).

Experimenta assim:

echo $tab1, $ca== 'home' ? '1' : '2' , '"><a href="http://google.pt" target="_blank">' , 'GOOGLE' , '</a></td>';


Miguel, vou remover o outro tópico, OK? ;) Entretanto já fico de olho neste

edit: Esta nota fica para todos os que pretenderem usar a informação deste tutorial: O problema do migueldefender vai acontecer a toda a gente que não use o tema default (a larga maioria). Não basta copiar/colar, é sempre preciso alguma adaptação.
Se forem conduzir, não bebam. Se forem beber... CHAMEM-ME!!!! :D

QuoteOver 90% of all computer problems can be traced back to the interface between the keyboard and the chair

Costa

    // Aqui vai aparecer um novo botão, o pai dos burros, Google
   echo $tab1, $ca== 'home' ? '1' : '2' , '"><a href="http://google.com.br" target="_blank">' , 'GOOGLE' , '</a></td>';


Aí está teu código

Eu avisei no início, este código é para o tema default
Têm que olhar para o código dos vossos temas e adaptar

Para o teu é simples

    // Aqui vai aparecer um novo botão
   echo $tab1, $ca== 'home' ? '1' : '2' , '"><a href="http://google.com.br" target="_blank">' , 'GOOGLE' , '</a></td>';

O que está em vermelho é p link (este código é para abrir em uma nova aba)
O que está a verde a o nome que vai aparecer no menu
Hugo "Costa" Fernandes - PT SMF
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."

migueldefender

Já consigo!!!! :D :D :D :D :D  Eu bem andava a tentar interpretar os códigos, mas não estava a perceber onde é que colocava o link, pois não tinha outras referências dentro do que lá estava. :)


Um abraço,

Costa


Aleuluia irmão!!!

hueheuehueheuheu

qqer coisa posta de novo
Hugo "Costa" Fernandes - PT SMF
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."

migueldefender

Estou orgulhoso de mim próprio!!! :D Tinha de facto conseguido colocar os links que queria, mas a cor de fundo ficava mais escura (cor igual ao fundo do "home"). Andei a analisar e reparei que o vosso link tinha "home", substitui-o por outro (o "calendário") e voilá, fiquei com a cor igual. :D he he he Acreditem, para vós este pode ser uma coisa banalíssima, mas para mim é um feito enorme. he he

Um abraço e obrigado ;)

Costa

e é assim que se aprende, fuçar nos códigos, tentativa e erro

Isto deu errado umas vezes pra mim, só após algumas tentativas eu consegui acertar :P
Hugo "Costa" Fernandes - PT SMF
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."

migueldefender

Just in case agora faço uma coisa simples para proteger o fórum. Sempre que vou alterar códigos copio o ficheiro para duas pastas diferentes, assim tenho sempre uma como backup em caso de dar raia. :)

Um abraço,

Ederson Lima

Olá, não estou conseguindo adicionar os botões ao meu fórum, sei que esse tutorial é para o tema default, mas gostaria que me desse uma ajuda no meu tema!

TEMA: FS Pro Red

Vou deixar anexado para dárem uma olhada, e à propósito estava à querer adicionar um botão com a lista da Staff e outro com as Regras do meu fórum!!!

Cast08

#19
Para adicionar o botão da staff procuras por:

// Show the [home] button.
echo '<li><a' , $current_action=='home' ? ' class="current"' : '' , ' href="', $scripturl, '"><span>' , $txt[103] , '</span></a></li>';


Adicionas depois:

// Show the [staff] button.
echo '<li><a' , $current_action=='staff' ? ' class="current"' : '' , ' href="', $scripturl, '"><span>' , $txt['smfstaff_stafflist'] , '</span></a></li>';



E o de regras tem que ir ao ficheiro:

/public_html/forum/Themes/default/languages/modifications.sualingua.php e se não tiver feito essa parte da modificação que encontra na instalção de MOD vais ter que fazer :P, mas acho que antes de perguntar isto tu deve ter feito, espero eu :P

e encontras:

$txt['rules'] = 'Rules';

Trocas por:

$txt['rules'] = 'Regras';

E vais no ficheiro index.template.php novamente e encontras:

// Show the [staff] button.
echo '<li><a' , $current_action=='staff' ? ' class="current"' : '' , ' href="', $scripturl, '"><span>' , $txt['smfstaff_stafflist'] , '</span></a></li>';


Adiciona depois:

/ Show the [rules] button.
echo '<li><a' , $current_action=='rules ? ' class="current"' : '' , ' href="', $scripturl, '"><span>' , $txt['rules'] , '</span></a></li>';


E não te esqueças de fazer um backup do ficheiro original ;). E veja se consegues.

Advertisement: