Drop-Down navigation menu Drop-Down navigation menu
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Drop-Down navigation menu

Started by andreyua, August 18, 2004, 12:02:22 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

andreyua

Drop-Down navigation menu

I need a drop down navigation menu to browse through the albums and categories.
If you could help, it would be awesome.

Thanks in ADVANCE

mstralka

Are you looking for a horizontal menu like in a brower (File, Edit, etc) that drops down, or a tree menu?
Main
---Sub 1
       -- Photo 1
---Sub 2
       -- Photo 2

The tree menu has been done - read the MODs board
http://forum.coppermine-gallery.net/index.php?topic=8827.0
GO IRISH

andreyua

#2
All i need is a simple HTML drop down menu.

Joachim Müller

where should it appear on the page? Should it replace the existing stuff. Is it supposed to replace the navigation, the admin menu, the category/albums list? Post more details...

GauGau

andreyua

It needs to be on the top (above the thumbnails). Replacing nothing.

It needs to be something like the language select.

mstralka

I'll take a look at this.  I should be able to modify my tree menu to work like this since it's based on the PHP Layers Menu System
GO IRISH

mstralka

GO IRISH

Tarique Sani

Quote from: mstralka on August 20, 2004, 12:34:28 PM
Here's the start - I haven't integrated into CPG yet
http://www.photo-junky.com/gallery/hor_menu.php
We had also done some thing similar BUT gave up becuase if the number of galleries are more than what you can fit in the screen hieght then it does not work - also it is a pain to work with the positioning of the phpLayersMenu....

This is not to discourage you BUT just a heads up - I suggest a theme where the menu is stuck right at the top!
SANIsoft PHP applications for E Biz

mstralka

I see what you mean Tarique.  I got it working but I can't position it anywhere except along the top of the screen.  I won't be using this mod on my site because of these limitations, and won't make further changes to it, but if you really want it, here it is. 

Andreyua, if you're still interested, even with the limitations, here the instructions.

1.  Download phplayersmenu, unzip the contents into folder called phplayersmenu, and upload it to your coppermine directory on your server.

2.  Create a file called hor_menu.php in your coppermine directory.

3.  Paste this code into that file

<?php
// ------------------------------------------------------------------------- //
// Coppermine Photo Gallery - Tree Menu                                      //
// ------------------------------------------------------------------------- //
// Based on Browser Sidebar, which is                                        //
// Copyright (C) Dr. Tarique Sani                                            //
// http://tariquesani.net/                                                   //
// --------------------------------------- --------------------------------- //
// This program is free software; you can redistribute it and/or modify      //
// it under the terms of the GNU General Public License as published by      //
// the Free Software Foundation; either version 2 of the License, or         //
// (at your option) any later version.                                       //
// ------------------------------------------------------------------------- //
// Just put into the same directory as your coppermine installation          //
// ------------------------------------------------------------------------- //

if (!defined('IN_COPPERMINE')) {
define('IN_COPPERMINE'true);
}
require_once(
'include/init.inc.php');

global 
$CONFIG//NEW

if (isset($HTTP_COOKIE_VARS[$CONFIG['cookie_name'] . '_sidebar'])) {
    
$sidePrefs = @unserialize(@base64_decode($HTTP_COOKIE_VARS[$CONFIG['cookie_name'] . '_sidebar']));
//Read prefs from cookie
$theme $sidePrefs['theme'];
$thumb_count $sidePrefs['thumbs'];
$thumb_per_page $sidePrefs['thumbs'];
}else{
$theme "kde";
$thumb_count 1;
$thumb_per_page 1;
}

//Change these variables to reflect your choices if you don't want lastup
$album 'lastup';
$album_name "";
$lower_limit 0;


$link_url "displayimage.php?album=lastup&cat=0&pos=";
$image_url "albums/";

get_private_album_set();

$data get_pic_data($album$thumb_count$album_name$lower_limit$thumb_per_page);

require_once(
"hor_menu_funcs.php");
//$startTime = microtime();
//Start building the string needed for php Tree Menu
//$catStr = ".|".$CONFIG['gallery_name']."|index.php\n";
//if (empty($_COOKIE["tree_menu"])) {
$catStr ".|Home|index.php\n";
if (!empty($_SERVER['QUERY_STRING'])) {
$catStr get_tree_subcat_data(0,".");
} else {
$catStr get_tree_subcat_data(0,".");
}
//$_COOKIE["tree_menu"] = gzcompress($catStr);
// setcookie("tree_menu",$catStr,time() + 600,"/",".photo-junky.com");
//} else {
// $catStr = gzuncompress($_COOKIE["tree_menu"]);
//}
//$endTime = microtime();
// benchmark timing

//print timediff($startTime,$endTime);
//starttable("100%", "Site Tree");

/* TO USE RELATIVE PATHS: */
$myDirPath 'phplayersmenu/';
$myWwwPath 'phplayersmenu/';
/* TO USE ABSOLUTE PATHS: */
//$myDirPath = '/home/pratesi/public_html/phplayersmenu/';
//$myWwwPath = '/~pratesi/phplayersmenu/';

?>

<tr>
<td class="tableb" >


<?php
/* TO USE RELATIVE PATHS: */
$myDirPath 'phplayersmenu/';
$myWwwPath './phplayersmenu/';
/* TO USE ABSOLUTE PATHS: */
//$myDirPath = '/home/pratesi/public_html/phplayersmenu/';
//$myWwwPath = '/~pratesi/phplayersmenu/';
?>


<link rel="stylesheet" href="<?php print $myWwwPath?>layersmenu-demo.css" type="text/css"></link>
<link rel="stylesheet" href="<?php print $myWwwPath?>layersmenu-gtk2.css" type="text/css"></link>
<link rel="shortcut icon" href="<?php print $myWwwPath?>LOGOS/shortcut_icon_phplm.png"></link>

<script language="JavaScript" type="text/javascript">
<!--
<?php require_once $myDirPath 'libjs/layersmenu-browser_detection.js'?>
// -->
</script>
<script language="JavaScript" type="text/javascript" src="<?php print $myWwwPath?>libjs/layersmenu-library.js"></script>
<script language="JavaScript" type="text/javascript" src="<?php print $myWwwPath?>libjs/layersmenu.js"></script>

<?php
require_once $myDirPath 'lib/PHPLIB.php';
require_once 
$myDirPath 'lib/layersmenu-common.inc.php';
require_once 
$myDirPath 'lib/layersmenu.inc.php';

//$mid = new LayersMenu(6, 7, 2, 5, 140);
//$mid = new LayersMenu(6, 7, 2, 1); // Gtk2-like
//$mid = new LayersMenu(3, 8, 1, 1); // Keramik-like
$mid = new LayersMenu(3921); // Galaxy-like
//$mid = new LayersMenu(-12, 10, 6, 5); // "Traditional" PHPLM look

/* TO USE RELATIVE PATHS: */
$mid->setDirroot('./phplayersmenu/');
$mid->setLibjsdir('./phplayersmenu/libjs/');
$mid->setImgdir('./phplayersmenu/menuimages/');
$mid->setImgwww('./phplayersmenu/menuimages/');
$mid->setIcondir('./phplayersmenu/menuicons/');
$mid->setIconwww('./phplayersmenu/menuicons/');
/* either: */
$mid->setTpldir('./templates/');
$mid->setHorizontalMenuTpl('layersmenu-horizontal_menu.ihtml');
$mid->setSubMenuTpl('layersmenu-sub_menu.ihtml');
/* or: (disregarding the tpldir) */
//$mid->setHorizontalMenuTpl('templates/layersmenu-horizontal_menu.ihtml');
//$mid->setSubMenuTpl('templates/layersmenu-sub_menu.ihtml');

/* TO USE ABSOLUTE PATHS: */
//$mid->setDirroot($myDirPath);
////$mid->setLibjsdir($myDirPath . 'libjs/');
////$mid->setImgdir($myDirPath . 'menuimages/');
//$mid->setImgwww($myWwwPath . 'menuimages/');
////$mid->setIcondir($myDirPath . 'menuicons/');
//$mid->setIconwww($myWwwPath . 'menuicons/');
////$mid->setTpldir($myDirPath . 'templates/');
//$mid->setHorizontalMenuTpl('layersmenu-horizontal_menu.ihtml');
//$mid->setSubMenuTpl('layersmenu-sub_menu.ihtml');

////$mid->setHorizontalMenuTpl('layersmenu-horizontal_menu-old.ihtml');
////$mid->setSubMenuTpl('layersmenu-sub_menu-old.ihtml');
//$mid->setDownArrowImg('down-arrow.png');
//$mid->setForwardArrowImg('forward-arrow.png');
//$mid->setMenuStructureFile($myDirPath . 'layersmenu-horizontal-1.txt');
$mid->setMenuStructureString($catStr);
$mid->setIconsize(1616);
$mid->parseStructureForMenu('hormenu1');
$mid->newHorizontalMenu('hormenu1');

$mid->printHeader();
/* alternatively:
$header = $mid->getHeader();
print $header;
*/
?>


<?php
$mid
->printMenu('hormenu1');
/* alternatively:
$hormenu1 = $mid->getMenu('hormenu1');
print $hormenu1;
*/
?>


<!--<div class="normalbox">
<div class="normal" align="center">
<b>A file-based example with a Horizontal Layers Menu</b>
<div style="height: 5px"></div>
<a href="http://phplayersmenu.sourceforge.net/"><img border="0"
src="<?php print $myWwwPath?>LOGOS/powered_by_phplm.png" alt="Powered by PHP Layers Menu"
height="31" width="88" /></a>&nbsp;<a
href="http://validator.w3.org/check/referer"><img border="0"
src="<?php print $myWwwPath?>images/valid-xhtml10.png" alt="Valid XHTML 1.0!"
height="31" width="88" /></a>&nbsp;<a
href="http://jigsaw.w3.org/css-validator/"><img border="0"
src="<?php print $myWwwPath?>images/vcss.png" alt="Valid CSS!" height="31" width="88" /></a>
</div>
</div>

<div class="normalbox">
<div class="normal">
<?php //require_once $myDirPath . 'README.ihtml'; ?>
</div>
</div>-->

<?php
$mid
->printFooter();
/* alternatively:
$footer = $mid->getFooter();
print $footer;
*/
?>


</td>
</tr>
<?php
endtable
();


4. Create another file called tree_menu_functions.php in the same folder.  Put this in it:

<?php
function get_tree_subcat_data($parent$ident '') {
global $CONFIG$catStr;
    
if ($parent == 0) {
get_tree_album_data($parent,$ident );
}
$sql "SELECT cid, name, description " "FROM {$CONFIG['TABLE_CATEGORIES']} " "WHERE parent = '$parent' " " ORDER BY pos";
$result db_query($sql);
if (($cat_count mysql_num_rows($result)) > 0) {
        
$rowset db_fetch_rowset($result);
        
$pos 0;
        foreach (
$rowset as $subcat) {
$catStr .= $ident."|".$subcat['name']."|index.php?cat=".$subcat['cid']." \n";
get_tree_album_data($subcat['cid'], $ident '.');
get_tree_subcat_data($subcat['cid'], $ident '.');
        }
    }
return $catStr;
}

function 
get_tree_album_data($category,$ident) {
global $catStr,$ALBUM_SET;
global $CONFIG$HIDE_USER_CAT$FORBIDDEN_SET,$cpg_show_private_album;
    
$album_filter='';
    
$pic_filter='';
    if (!empty(
$FORBIDDEN_SET) && !$cpg_show_private_album) {
        
$album_filter ' and '.str_replace('p.','a.',$FORBIDDEN_SET);
        
$pic_filter ' and '.str_replace('p.',$CONFIG['TABLE_PICTURES'].'.',$FORBIDDEN_SET);
    }
if ($category == 1) {
$sql "SELECT DISTINCT user_id, user_fullname FROM {$CONFIG['TABLE_USERS']}{$CONFIG['TABLE_ALBUMS']} WHERE  10000 + {$CONFIG['TABLE_USERS']}.user_id = {$CONFIG['TABLE_ALBUMS']}.category ORDER BY user_fullname ASC";
$result db_query($sql);
if (($cat_count mysql_num_rows($result)) > 0) {
$rowset db_fetch_rowset($result);
foreach ($rowset as $subcat) {
$catStr .= $ident."|".$subcat['user_fullname']."|index.php?cat=". (FIRST_USER_CAT + (int) $subcat['user_id']) ."\n";
get_tree_album_data(FIRST_USER_CAT + (int) $subcat['user_id'],$ident '.');
}
}
} else {
if ($category == USER_GAL_CAT) {
$sql "SELECT aid,title FROM {$CONFIG['TABLE_ALBUMS']} WHERE category = $category ".$album_filter." ORDER BY pos";
} else {
$unaliased_album_filter str_replace('a.','',$album_filter);
$sql "SELECT aid,title FROM {$CONFIG['TABLE_ALBUMS']} WHERE category = $category " .$unaliased_album_filter ." ORDER BY pos";
}
$result db_query($sql);
if (($cat_count mysql_num_rows($result)) > 0) {
$rowset db_fetch_rowset($result);
foreach ($rowset as $subcat) {
$catStr .= $ident."|".htmlentities($subcat['title'])."|thumbnails.php?album=".$subcat['aid']."\n";
}
}
}
}
?>



5.  Open yourtheme/template.html, put this somewhere:

{HOR_MENU}


6.  Open yourtheme/theme.php, add this function:

function theme_hor_menu() {
require_once("hor_menu.php");
}


7.  Find:

        '{MAIN_MENU}' => theme_main_menu(),
        '{ADMIN_MENU}' => theme_admin_mode_menu(),

Add:

'{HOR_MENU}' => theme_hor_menu(),


GO IRISH