Custom menu items
From Documentation of ABK-Soft Products
| Languages: |
English Русский |
Contents |
[edit] Main Menu In the Template
[edit] Example of a file
The main menu of the dating software can be found in the file
_themes/main/template_name/_header.html
For the template "new_age":
<div class="menu">
<ul>
<!-- begin_menu_home --><li><a href="{url_main}home.php">{l_menu_home}</a></li><!-- end_menu_home -->
<!-- begin_menu_home_active --><li class="active"><a href="{url_main}home.php">{l_menu_home}</a></li><!-- end_menu_home_active -->
<!-- begin_menu_users --><li><a href="{url_main}users_online.php">{l_menu_whos_online}</a></li><!-- end_menu_users -->
<!-- begin_menu_users_active --><li class="active"><a href="{url_main}users_online.php">{l_menu_whos_online}</a></li><!-- end_menu_users_active -->
<!-- begin_menu_search --><li><a href="{url_main}search.php">{l_menu_search}</a></li><!-- end_menu_search -->
<!-- begin_menu_search_active --><li class="active"><a href="{url_main}search.php">{l_menu_search}</a></li><!-- end_menu_search_active -->
<!-- begin_menu_users_hon --><li><a href="{url_main}users_hon.php">{l_menu_rating}</a></li><!-- end_menu_users_hon -->
<!-- begin_menu_users_hon_active --><li class="active"><a href="{url_main}users_hon.php">{l_menu_rating}</a></li><!-- end_menu_users_hon_active -->
<!-- begin_menu_top5 --><li><a href="{url_main}top5.php">{l_menu_top5}</a></li><!-- end_menu_top5 -->
<!-- begin_menu_top5_active --><li class="active"><a href="{url_main}top5.php">{l_menu_top5}</a></li><!-- end_menu_top5_active -->
<!-- begin_menu_gallery --><li><a href="{url_main}gallery_index.php">{l_menu_gallery}</a></li><!-- end_menu_gallery -->
<!-- begin_menu_gallery_active --><li class="active"><a href="{url_main}gallery_index.php">{l_menu_gallery}</a></li><!-- end_menu_gallery_active -->
<!-- begin_menu_videogallery --><li><a href="{url_main}videogallery_video_view.php">{l_menu_videogallery}</a></li><!-- end_menu_videogallery -->
<!-- begin_menu_videogallery_active --><li class="active"><a href="{url_main}videogallery_video_view.php">{l_menu_videogallery}</a></li><!-- end_menu_videogallery_active -->
<!-- begin_menu_my --><li><a href="{url_main}my_friends.php">{l_menu_my}</a></li><!-- end_menu_my -->
<!-- begin_menu_my_active --><li class="active"><a href="{url_main}my_friends.php">{l_menu_my}</a></li><!-- end_menu_my_active -->
<!-- begin_menu_mail --><li><a href="{url_main}mail.php">{l_menu_messages}</a></li><!-- end_menu_mail -->
<!-- begin_menu_mail_active --><li class="active"><a href="{url_main}mail.php">{l_menu_messages}</a></li><!-- end_menu_mail_active -->
<!-- begin_menu_chat --><li><a href="{url_main}chat.php">{l_menu_chat}</a></li><!-- end_menu_chat -->
<!-- begin_menu_chat_active --><li class="active"><a href="{url_main}chat.php">{l_menu_chat}</a></li><!-- end_menu_chat_active -->
<!-- begin_menu_flashchat --><li><a href="{url_main}flashchat.php">{l_menu_flashchat}</a></li><!-- end_menu_flashchat -->
<!-- begin_menu_flashchat_active --><li class="active"><a href="{url_main}flashchat.php">{l_menu_flashchat}</a></li><!-- end_menu_flashchat_active -->
<!-- begin_menu_blogs --><li><a href="{url_main}blogs.php">{l_menu_blogs}</a></li><!-- end_menu_blogs -->
<!-- begin_menu_blogs_active --><li class="active"><a href="{url_main}blogs.php">{l_menu_blogs}</a></li><!-- end_menu_blogs_active -->
<!-- begin_menu_forum --><li><a href="{url_main}forum.php">{l_menu_forum}</a></li><!-- end_menu_forum -->
<!-- begin_menu_forum_active --><li class="active"><a href="{url_main}forum.php">{l_menu_forum}</a></li><!-- end_menu_forum_active -->
<!-- begin_menu_vacations --><li><a href="{url_main}vacations.php">{l_menu_vacations}</a></li><!-- end_menu_vacations -->
<!-- begin_menu_vacations_active --><li class="active"><a href="{url_main}vacations.php">{l_menu_vacations}</a></li><!-- end_menu_vacations_active -->
<!-- begin_menu_adv --><li><a href="{url_main}adv.php">{l_menu_adv_dating}</a></li><!-- end_menu_adv -->
<!-- begin_menu_adv_active --><li class="active"><a href="{url_main}adv.php">{l_menu_adv_dating}</a></li><!-- end_menu_adv_active -->
<!-- begin_menu_upgrade --><li><a href="{url_main}upgrade.php">{l_menu_upgrade}</a></li><!-- end_menu_upgrade -->
<!-- begin_menu_upgrade_active --><li class="active"><a href="{url_main}upgrade.php">{l_menu_upgrade}</a></li><!-- end_menu_upgrade_active -->
<!-- begin_menu_profile --><li><a href="{url_main}profile.php">{l_menu_my_account}</a></li><!-- end_menu_profile -->
<!-- begin_menu_profile_active --><li class="active"><a href="{url_main}profile.php">{l_menu_my_account}</a></li><!-- end_menu_profile_active -->
</ul>
</div>
[edit] Description of one item in the template
Lets look closer at on of the items, for example for Search:
<!-- begin_menu_search --><li><a href="{url_main}search.php">{l_menu_search}</a></li><!-- end_menu_search -->
<!-- begin_menu_search_active --><li class="active"><a href="{url_main}search.php">{l_menu_search}</a></li><!-- end_menu_search_active -->
It is divided into 2 blocks, menu_search and menu_search_active. The first of the two is parsed when you are on pages different from Search, the second is parsed when you are on these pages, it means on search.php, or on pages beginning with the prefix 'search_' - search_*.php (search_advaced.php, search_results.php etc.)
About the variables {url_main}, {l_menu_search} you can look in the Templates and Languages
[edit] The class of the handler
The code for handling of the main menu can be found in the class CHeader in the file _include/current/common.php. This is the class for handling the template _header.html. For generation of the menu this code is responsible in the method parseBlock(&$html) of this class:
$pages = array("index", "adv", "home", "users_hon", "top5", "users", "search", "mail", "profile", "blogs", "forum", "chat", "flashchat", "news", "gallery", "videogallery", "my", "vacations");
foreach ($pages as $v)
{
$next = false;
if ($v == "chat" and $g['options']['chat'] == "N") $next = true;
elseif ($v == "flashchat" and $g['options']['flashchat'] == "N") $next = true;
elseif ($v == "top5" and isset($g['options']['top5']) and $g['options']['top5'] == "N") $next = true;
elseif ($v == "forum" and isset($g['options']['forum']) and $g['options']['forum'] == "N") $next = true;
elseif ($v == "blogs" and isset($g['options']['blogs']) and $g['options']['blogs'] == "N") $next = true;
elseif ($v == "gallery" and isset($g['options']['gallery']) and $g['options']['gallery'] == "N") $next = true;
elseif ($v == "users_hon" and isset($g['options']['rating']) and $g['options']['rating'] == "N") $next = true;
elseif ($v == "vacations" and isset($g['options']['vacations']) and $g['options']['vacations'] == "N") $next = true;
elseif ($v == "videogallery" and isset($g['options']['videogallery']) and $g['options']['videogallery'] == "N") $next = true;
if (!$next)
{
if ($p == "users_hon.php") $pa[0] = "users_hon";
elseif ($p == "bookmark_friends.php") $pa[0] = "my";
else
{
$tmp = explode(".", $p);
$pa = explode("_", $tmp[0]);
}
if ($v == $pa[0]) $html->parse("menu_" . $v . "_active");
else $html->parse("menu_" . $v . "");
}
}
[edit] Adding new item
Here the array $pages with the menu items is defined. You can create your item just adding it to the array, like "custom". After this you need to add the block to _header.html, it will be responsible for this menu item:
<!-- begin_menu_custom --><li><a href="{url_main}custom.php">{l_menu_search}</a></li><!-- end_menu_custom -->
<!-- begin_menu_custom_active --><li class="active"><a href="{url_main}custom.php">{l_menu_search}</a></li><!-- end_menu_custom_active -->
Now on the page custom.php and all other pages beginning with the prefix custom_ (like custom_my_page.php) the block menu_custom_active will be parsed, on all other pages menu_custom.