News:

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

Main Menu

Adding buttons problem

Started by Molo153, September 17, 2012, 09:32:30 AM

Previous topic - Next topic

Molo153

Hello,

Im custimising a theme. The index.template.php file for the special theme.

I've added some buttons, working good.

Example:
echo '
                <li ' , $current_action=='forum' ? ' class="chosen"' : '' , '><a href="', $scripturl, '?action=forum">Forum<span>Forumet</span></a>';


But now i want to add a page, not a action. How do i do that. I'm kinda noob so xD

I we're trying like:
echo '
                <li ' , $current_page=='forum' ? ' class="chosen"' : '' , '><a href="', $scripturl, '?page=forum">Forum<span>Forumet</span></a>';


As you can se i replaced action with page. Can't get it to work, and no, im not trying to link to forum, im trying to link to a special map in my www directory.

Example:

mywebsite.com/directory

I'm trying to link it to the directory

Thanks!
/Molo

Kays

Hi, what version SMF is that for? It looks like a 1.x theme. ???

Have you created that page yet? If so and it's outside of the SMF directory, remove the $scripturl variable and hard code in the full link.


echo '
                <li ' , $current_page=='directory' ? ' class="chosen"' : '' , '><a href="http://mywebsite.com/directory"><span>Directory</span></a>';

If at first you don't succeed, use a bigger hammer. If that fails, read the manual.
My Mods

Molo153

Thanks!

The code works good :)

Im using 2.0.2, latest. Didn't complain when i installed the theme so i guess it's good.

But, new problem, i want it to open in the same window like the forum do etc :)

Thanks for helping me :)
/Molo

Kays

For 2.x, the menu is now an array in Subs.php and that's what's typically used the show the menu on most themes now. But whatever works. :)

For that add target="_blank"

echo '
                <li ' , $current_page=='directory' ? ' class="chosen"' : '' , '><a href="http://mywebsite.com/directory" target="_blank"><span>Directory</span></a>';

If at first you don't succeed, use a bigger hammer. If that fails, read the manual.
My Mods

Molo153

That didnt seem to work, still opening in a new tab :/

I'm not sure but i think it has something with <iframe src to do.

Kays

It could be but I don't have any experience in that area to answer correctly.

But normally, target="_blank" should open a link in a new window. ???

If at first you don't succeed, use a bigger hammer. If that fails, read the manual.
My Mods

Molo153

No, i don't want it in a new window, i want it to in the same tab, same window, but like Forum do, like Home do.

Same window, but like minimized in the middle, idk if you understand :/

Kays

Sorry, missread. This page contains the options. See which one works.

http://www.w3schools.com/TAgs/att_a_target.asp

If at first you don't succeed, use a bigger hammer. If that fails, read the manual.
My Mods

Molo153

I got i working, idk how really, did something with Dreamportal.

But now I want to make the button marked when it's pressed, like the others.
This one is working: It's a action, as normal with SMF.

    if (in_array($context['current_action'], array('moderate', 'admin')))
$current_action = 'moderate';


But, my new one, is a page, how to i make it work? :/

    if (in_array($context['current_page'], array('bans')))
$current_page = 'bans';

Kays

In what I first posted it was checking $current_page to mark that tab as active.

So if that's the case, this should work. (change the "xxx" to the name of that page)


if (isset($_REQUEST['page']) && $_REQUEST['page'] == 'xxx')
$current_page = 'directory';

If at first you don't succeed, use a bigger hammer. If that fails, read the manual.
My Mods

Molo153

#10
Hello

If my page is mywebsite.com/index.php?page=bans [nofollow]

Then i should replace xxx with bans?

Like this?

    if (isset($_REQUEST['page']) && $_REQUEST['page'] == 'bans')
$current_page = 'directory';


If so, it doesn't work :/

Managed to get it working, but it also marks the Home page, any fix?

Kays

What did you do to get it working?

For each link, the "$current_page==" value needs to be unique.

If at first you don't succeed, use a bigger hammer. If that fails, read the manual.
My Mods

Molo153

            echo '
                <li ' , $current_page=='walla' ? ' class="chosen"' : '' , '><a href="http://193.11.112.174/index.php?page=bans" target="">Bans<span>Server bans</span></a>';


That's the button

    if (isset($_REQUEST['page']) && $_REQUEST['page'] == 'bans')
$current_page = 'walla';


That's the marking stuff, that makes the button marked. In the beginning i didn't se same $current_page, my bad.

But it's still marking both Home and Bans, i only wan't Bans marked.

Kays

The "Home" button. Is that using $current_page or $current_action. It should be the same for all tabs.

If at first you don't succeed, use a bigger hammer. If that fails, read the manual.
My Mods

Molo153

Quote from: Kays on September 17, 2012, 02:08:53 PM
The "Home" button. Is that using $current_page or $current_action. It should be the same for all tabs.

$current_action = 'home';

That's the home button mark thing.

If I remove that the home button never get's marked. But, i want it marked if it's pressed xD

echo '
<li ' , $current_action=='home' ? ' class="chosen"' : '' , '><a href="', $scripturl, '">Hem<span>Förstasidan</span></a>';
               


That's the homebutton button.

Kays

That's the problem. The home button is checking for $current_action while your button is checking for $current_page.

In the code for your button and the check, change $current_page to $current_action.

If at first you don't succeed, use a bigger hammer. If that fails, read the manual.
My Mods

Molo153

It's working!

Thank you so much! :)

To others:

My button, the one you press:

            echo '
                <li ' , $current_action=='walla' ? ' class="chosen"' : '' , '><a href="http://mywebsite.com/index.php?page=bans" target="">Bans<span>Server bans</span></a>';
               


And the one that marks the button:

    if (isset($_REQUEST['page']) && $_REQUEST['page'] == 'bans')
$current_action = 'walla';


Once again, Thanks!
/Molo

Kays


If at first you don't succeed, use a bigger hammer. If that fails, read the manual.
My Mods

Advertisement: