Adding navigational links to your MOD (breadcrumbs)
An easy way to add navigational links to your MOD is to use an inbuilt feature of phpBB3 called “breadcrumbs” (named because it leaves a trail back to the forum index). It only requires a few extra lines of PHP code to add a breadcrumb to your own MOD (or to your website if you are [...]

An easy way to add navigational links to your MOD is to use an inbuilt feature of phpBB3 called “breadcrumbs” (named because it leaves a trail back to the forum index).

It only requires a few extra lines of PHP code to add a breadcrumb to your own MOD (or to your website if you are doing personal customisations). This article explains how to do so.

To understand how this works, open styles/prosilver/template/overall_header.html and find this code:

Code: Select all
<!-- BEGIN navlinks --> <strong>‹</strong> <a href="/{navlinks.U_VIEW_FORUM}">{navlinks.FORUM_NAME}</a><!-- END navlinks -->

This section of templating code is responsible for the creation of the breadcrumbs your see at the top of your forum.

Breadcrumbs

As you can see from the code, “{navlinks.U_VIEW_FORUM}” is the actual web address of the page and “{navlinks.FORUM_NAME}” is the name of the page you are linking to.

To add a breadcrumb of your own in your MOD, open the main .php file for your MOD. Then find the page_header function call in your script (you may have several of these, so you can do this to some or all of them if you wish).

Before the page_header call, add this code:

Code: Select all
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $user->lang['MOD_INDEX'],
'U_VIEW_FORUM' => append_sid('my_mod.'.$phpEx),
));

As you can see, this templating code corresponds to the “navlinks” loop shown above in overall_header.html

It would give an output like this:

Breadcrumbs

$user->lang['MOD_INDEX'] is only an example language variable, you can set this to any language variable you like (or if it is for personal use and not a MOD, a hard coded string). In the append_sid call, you also need to replace “my_mod” with whatever the name of your .php page is called. If for whatever reason you wanted to link off-site, you could do this also by hard-coding a string. (ie. ‘U_VIEW_FORUM’ => ‘http://www.example.com’,)

Another feature of the breadcrumbs is that as it is using a template loop, you can include the code repeatedly to get more links. You could also include the code inside a loop to good effect (a foreach loop would be very useful).

For instance, you could use this code:

Code: Select all
$navlinks_array = array(
array(
'FORUM_NAME' => $user->lang['MOD_INDEX'],
'U_VIEW_FORUM' => append_sid('my_mod.'.$phpEx),
),

array(
'FORUM_NAME' => $user->lang['MOD_SUBPAGE'],
'U_VIEW_FORUM' => append_sid('my_mod.'.$phpEx, 's=1'),
),

array(
'FORUM_NAME' => $user->lang['MOD_SUBPAGE_2'],
'U_VIEW_FORUM' => append_sid('my_mod.'.$phpEx, 's=2'),
),
);

foreach( $navlinks_array as $name )
{
$template->assign_block_vars('navlinks', array(
'FORUM_NAME' => $name['FORUM_NAME'],
'U_VIEW_FORUM' => $name['U_VIEW_FORUM'],
));
}

To generate an output like this:

Breadcrumbs

As these examples only require PHP changes and no template changes, there is no need to purge the cache once the changes have been applied.

I hope this article has been useful.


Read Full Article