aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/AMenuManager
diff options
context:
space:
mode:
authorgrum <grum@piwigo.org>2008-08-03 07:48:39 +0000
committergrum <grum@piwigo.org>2008-08-03 07:48:39 +0000
commit7ebed797262c7f3371ae1b16ed455f7e9879caf0 (patch)
tree7abef8d2994ae2efa66f38e3027369c7ac0e3926 /plugins/AMenuManager
parentee0af5d43d607ffb969a10e6a21e9df923651d52 (diff)
Asked by rvelices on this topic
http://forum.phpwebgallery.net/viewtopic.php?pid=92097#p92097 A plugin to integrate the menu class see test_menu directory A plugin to show how to use the menu class see AMenuManager directory And common classes needed for the AMenuManager plugin see grum_plugins_classes-2 directory See topic http://forum.phpwebgallery.net/viewtopic.php?pid=92637#p92637 for more informations git-svn-id: http://piwigo.org/svn/trunk@2466 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'plugins/AMenuManager')
-rwxr-xr-xplugins/AMenuManager/admin/amm_admin.tpl13
-rw-r--r--plugins/AMenuManager/admin/amm_linksconfig.tpl108
-rw-r--r--plugins/AMenuManager/admin/amm_linkslist.tpl56
-rw-r--r--plugins/AMenuManager/admin/amm_linkslist_detail.tpl28
-rw-r--r--plugins/AMenuManager/admin/amm_linkslist_edit.tpl97
-rw-r--r--plugins/AMenuManager/admin/amm_sectionslist.tpl47
-rw-r--r--plugins/AMenuManager/admin/amm_sectionslist_detail.tpl24
-rw-r--r--plugins/AMenuManager/admin/go-down.pngbin0 -> 720 bytes
-rw-r--r--plugins/AMenuManager/admin/go-up.pngbin0 -> 630 bytes
-rwxr-xr-xplugins/AMenuManager/admin/index.php33
-rwxr-xr-xplugins/AMenuManager/admin/plugin_admin.php28
-rw-r--r--plugins/AMenuManager/amm.css4
-rw-r--r--plugins/AMenuManager/amm.sql25
-rwxr-xr-xplugins/AMenuManager/amm_aim.class.inc.php39
-rwxr-xr-xplugins/AMenuManager/amm_aip.class.inc.php642
-rw-r--r--plugins/AMenuManager/amm_install.class.inc.php84
-rw-r--r--plugins/AMenuManager/amm_pip.class.inc.php92
-rw-r--r--plugins/AMenuManager/amm_root.class.inc.php113
-rwxr-xr-xplugins/AMenuManager/index.php33
-rwxr-xr-xplugins/AMenuManager/language/en_UK/index.php33
-rwxr-xr-xplugins/AMenuManager/language/en_UK/plugin.lang.php58
-rwxr-xr-xplugins/AMenuManager/language/fr_FR/index.php33
-rwxr-xr-xplugins/AMenuManager/language/fr_FR/plugin.lang.php58
-rwxr-xr-xplugins/AMenuManager/language/index.php33
-rw-r--r--plugins/AMenuManager/links_pictures/internet-url.pngbin0 -> 828 bytes
-rw-r--r--plugins/AMenuManager/links_pictures/internet.pngbin0 -> 844 bytes
-rwxr-xr-xplugins/AMenuManager/main.inc.php66
-rwxr-xr-xplugins/AMenuManager/maintain.inc.php66
-rw-r--r--plugins/AMenuManager/menu_templates/menubar_links.tpl16
29 files changed, 1829 insertions, 0 deletions
diff --git a/plugins/AMenuManager/admin/amm_admin.tpl b/plugins/AMenuManager/admin/amm_admin.tpl
new file mode 100755
index 000000000..313937722
--- /dev/null
+++ b/plugins/AMenuManager/admin/amm_admin.tpl
@@ -0,0 +1,13 @@
+<div class="titrePage">
+ <h2 style="position:absolute;right:0px;top:32px;height:auto;font-size:12px;font-weight:normal;">:: {$plugin.AMM_VERSION} ::</h2>
+ <h2>{'g002_title_page'|@translate} <span style="font-size:-1;font-weight:normal;">{$TABSHEET_TITLE}</span></h2>
+
+ {$tabsheet}
+</div>
+
+{if isset($page_nfo)}
+<p>{$page_nfo}</p>
+{/if}
+
+{$AMM_BODY_PAGE}
+
diff --git a/plugins/AMenuManager/admin/amm_linksconfig.tpl b/plugins/AMenuManager/admin/amm_linksconfig.tpl
new file mode 100644
index 000000000..55ee8b6a0
--- /dev/null
+++ b/plugins/AMenuManager/admin/amm_linksconfig.tpl
@@ -0,0 +1,108 @@
+{literal}
+<script type="text/javascript">
+
+ //global var ; need to not have to initialize them every time a value is changed
+ var objlang;
+ var objnames = new Array('iamm_links_title');
+ var objinput = new Array(); //input text from form => objinput[name]
+ var objhidden = new Array(); //input hidden from form => objhidden[name][lang]
+
+ function init()
+ {
+ objlang = document.getElementById('islang');
+ for(i=0;i<objnames.length;i++)
+ {
+ objinput[i] = document.getElementById(objnames[i]);
+ objhidden[i] = new Array();
+ for(j=0;j<objlang.options.length;j++)
+ {
+ objhidden[i][j] = document.getElementById(objnames[i]+'_'+objlang.options[j].value);
+ }
+ }
+ }
+
+ function change_lang()
+ {
+ for(i=0;i<objnames.length;i++)
+ {
+ objinput[i].value = objhidden[i][objlang.options.selectedIndex].value;
+ }
+ }
+
+ function apply_changes(input_id)
+ {
+ var obj=document.getElementById(input_id);
+ objhidden[objnames.indexOf(input_id)][objlang.options.selectedIndex].value = obj.value;
+ }
+
+</script>
+{/literal}
+
+
+
+<h3><span style="font-weight:normal"><a href="{$datas.lnk_list}" title="{'g002_configlinks'|@translate}">{'g002_linkslist'|@translate} </span></a> / {'g002_configlinks'|@translate}
+</h3>
+
+
+<form method="post" action="" class="general">
+ <fieldset>
+ <legend>{'g002_setting_link_block_menu'|@translate}</legend>
+
+ {if isset($datas.language_list) and count($datas.language_list)}
+ {foreach from=$datas.language_list key=name item=language_row}
+ <input type="hidden" name="famm_links_title_{$language_row.LANG}"
+ id="iamm_links_title_{$language_row.LANG}" value="{$language_row.MENUBARTIT}">
+ {/foreach}
+ {/if}
+
+ <table class="formtable">
+ <tr>
+ <td>{'g002_setting_link_block_active'|@translate}</td>
+ <td>
+ <select name="famm_links_active" id="iamm_links_active">
+ {html_options values=$datas.yesno_values output=$datas.yesno_labels selected=$datas.active_selected}
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'g002_setting_link_block_title'|@translate}</td>
+ <td>
+ <input type="text" id="iamm_links_title" value="" maxlength="50" onkeyup="apply_changes('iamm_links_title');" />
+ <select onchange="change_lang();" id="islang">
+ {html_options values=$datas.language_list_values output=$datas.language_list_labels selected=$datas.lang_selected}
+ </select>
+ </td>
+ </tr>
+
+ </table>
+
+
+ </fieldset>
+
+ <fieldset>
+ <legend>{'g002_setting_link_links'|@translate}</legend>
+ <table class="formtable">
+ <tr>
+ <td>{'g002_setting_link_show_icon'|@translate}</td>
+ <td>
+ <select name="famm_links_show_icons" id="iamm_links_show_icons">
+ {html_options values=$datas.yesno_values output=$datas.yesno_labels selected=$datas.show_icons_selected}
+ </select>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+
+ <p>
+ <input type="submit" name="famm_submit_apply" id="iamm_submit_apply" value="{'g002_apply'|@translate}" >
+ </p>
+
+ <input type="hidden" name="famm_modeedit" value="config">
+
+</form>
+
+<script type="text/javascript">
+ init();
+ change_lang();
+</script> \ No newline at end of file
diff --git a/plugins/AMenuManager/admin/amm_linkslist.tpl b/plugins/AMenuManager/admin/amm_linkslist.tpl
new file mode 100644
index 000000000..1b197c8b4
--- /dev/null
+++ b/plugins/AMenuManager/admin/amm_linkslist.tpl
@@ -0,0 +1,56 @@
+{literal}
+<script type="text/javascript">
+
+ function load_list(do_action, item, permut)
+ {
+ /*
+ do_action
+ 'list' : just load list
+ 'permut' : permut items in list
+ 'delete' : delete the item in list
+ */
+ var doc = document.getElementById("iurls");
+
+ action_todo='';
+ if(do_action=='permut')
+ {
+ action_todo='links_permut&fItem='+item+'&fPermut='+permut;
+ }
+ else if(do_action=='delete')
+ {
+ if(confirm('{/literal}{'g002_confirm_delete_link'|@translate}{literal}'))
+ {
+ action_todo='links_delete&fItem='+item;
+ }
+ }
+ else
+ {
+ action_todo='links_list';
+ }
+
+ if(action_todo!='')
+ {
+ http_request=create_httpobject('get', '', '{/literal}{$datas.AMM_AJAX_URL_LIST}{literal}'+action_todo, false);
+ http_request.send(null);
+ doc.innerHTML=http_request.responseText;
+ }
+ }
+
+</script>
+{/literal}
+
+
+<h3>{'g002_linkslist'|@translate} / <span style="font-weight:normal"><a href="{$datas.lnk_config}" title="{'g002_configlinks'|@translate}">{'g002_configlinks'|@translate}</a></span>
+</h3>
+
+[{$datas.nburl}]<br/>
+<a href="{$datas.lnk_create}" title="{'g002_addlink'|@translate}">{'g002_addlink'|@translate}</a>
+
+<br/>
+
+<div id="iurls"></div>
+
+
+<script type="text/javascript">
+ load_list('list', 0, 0);
+</script> \ No newline at end of file
diff --git a/plugins/AMenuManager/admin/amm_linkslist_detail.tpl b/plugins/AMenuManager/admin/amm_linkslist_detail.tpl
new file mode 100644
index 000000000..e97c0ff07
--- /dev/null
+++ b/plugins/AMenuManager/admin/amm_linkslist_detail.tpl
@@ -0,0 +1,28 @@
+
+{if isset($datas.urls) and count($datas.urls)}
+ <table class="table2 littlefont">
+ <tr class="throw">
+ <th width='15'>&nbsp;</th>
+ <th>{'g002_label'|@translate}</th>
+ <th>{'g002_url'|@translate}</th>
+ <th>{'g002_mode'|@translate}</th>
+ <th>{'g002_visible'|@translate}</th>
+ <th colspan=4>&nbsp;</th>
+ </tr>
+
+ {foreach from=$datas.urls key=name item=url}
+ <tr>
+ <td>{if $url.img!=""}<img src='{$url.img}'/>{else}&nbsp;{/if}</td>
+ <td>{$url.label}</td>
+ <td>{$url.url}</td>
+ <td>{$url.mode}</td>
+ <td style="text-align:center;">{$url.visible}</td>
+ <td width="15px">{if $url.up}<a style="cursor:pointer;" onclick="load_list('permut', {$url.ID}, {$url.IDPREV})"><img src='{$plugin.PATH}/admin/go-up.png'/></a>{else}&nbsp;{/if}</td>
+ <td width="15px">{if $url.down}<a style="cursor:pointer;" onclick="load_list('permut', {$url.ID}, {$url.IDNEXT})"><img src='{$plugin.PATH}/admin/go-down.png'/></a>{else}&nbsp;{/if}</td>
+ <td width="15px"><a href="{$url.edit}"><img src='{$themeconf.icon_dir}/category_edit.png'/></a></td>
+ <td width="15px"><a style="cursor:pointer;" onclick="load_list('delete', {$url.ID}, 0)"><img src='{$themeconf.icon_dir}/delete.png'/></a></td>
+ </tr>
+ {/foreach}
+
+ </table>
+{/if}
diff --git a/plugins/AMenuManager/admin/amm_linkslist_edit.tpl b/plugins/AMenuManager/admin/amm_linkslist_edit.tpl
new file mode 100644
index 000000000..0cf874dc2
--- /dev/null
+++ b/plugins/AMenuManager/admin/amm_linkslist_edit.tpl
@@ -0,0 +1,97 @@
+{literal}
+<script type="text/javascript">
+
+ function change_selected_icon()
+ {
+ var doc = document.getElementById("iamm_icon");
+
+ var icon_list = Array();
+
+ {/literal}
+ {foreach from=$datas.icons_values key=name item=icon}
+ icon_list.push('{$icon.img}');
+ {/foreach}
+ {literal}
+
+ doc.style.backgroundImage='url('+icon_list[doc.options.selectedIndex]+')';
+ }
+
+</script>
+{/literal}
+
+
+{if isset($datas.modeedit)}
+
+ <h3>
+ {if $datas.modeedit=='create'}
+ {'g002_createoflink'|@translate}
+ {else}
+ {'g002_editoflink'|@translate}
+ {/if}
+ / <span style="font-weight:normal"><a href="{$datas.lnk_list}">{'g002_linkslist'|@translate}</a></span></h3>
+ </h3>
+
+ <form method="post" action="" class="general">
+ <fieldset>
+ <table class="formtable">
+ <tr>
+ <td>{'g002_label'|@translate}<td>
+ <td><input type='text' name="famm_label" id='iamm_label' value='{$datas.label}' maxlength=50 size=50></td>
+ </tr>
+
+ <tr>
+ <td>{'g002_url'|@translate}<td>
+ <td><input type='text' name="famm_url" id='iamm_url' value='{$datas.url}' maxlength=255 size=50></td>
+ </tr>
+
+ <tr>
+ <td>{'g002_icon'|@translate}<td>
+ <td>
+ <select name="famm_icon" id="iamm_icon" onchange="change_selected_icon();" style="background-image:url('{$datas.icons_img}');background-position:2px 1px;background-repeat:no-repeat;padding-left:18px;">
+ {foreach from=$datas.icons_values key=name item=icon}
+ <option value="{$icon.value}" style="background: transparent url('{$icon.img}') no-repeat scroll 0px 0px;padding-left:20px;" {if $icon.value==$datas.icons_selected}selected{/if}>{$icon.label}</option>
+ {/foreach}
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'g002_mode'|@translate}<td>
+ <td>
+ <select name="famm_mode" id="iamm_mode">
+ {html_options values=$datas.mode_values output=$datas.mode_labels selected=$datas.mode_selected}
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'g002_visible'|@translate}<td>
+ <td>
+ <select name="famm_visible" id="iamm_visible">
+ {html_options values=$datas.visible_values output=$datas.visible_labels selected=$datas.visible_selected}
+ </select>
+ </td>
+ </tr>
+
+ </table>
+ </fieldset>
+
+
+ {if $datas.modeedit=='create'}
+ <p>
+ <input type="submit" name="famm_submit_create" id="iamm_submit_create" value="{'g002_createthelink'|@translate}" >
+ </p>
+ {/if}
+
+ {if $datas.modeedit=='modify'}
+ <p>
+ <input type="submit" name="famm_submit_modify" id="iamm_submit_modify" value="{'g002_editthelink'|@translate}" >
+ </p>
+ {/if}
+
+ <input type="hidden" name="famm_modeedit" value="{$datas.modeedit}">
+ <input type="hidden" name="famm_id" value="{$datas.id}">
+
+ </form>
+
+{/if} \ No newline at end of file
diff --git a/plugins/AMenuManager/admin/amm_sectionslist.tpl b/plugins/AMenuManager/admin/amm_sectionslist.tpl
new file mode 100644
index 000000000..b9b49b074
--- /dev/null
+++ b/plugins/AMenuManager/admin/amm_sectionslist.tpl
@@ -0,0 +1,47 @@
+{literal}
+<script type="text/javascript">
+
+ function load_list(do_action, item, position)
+ {
+ /*
+ do_action
+ 'list' : just load list
+ 'permut' : permut items in list
+ 'delete' : delete the item in list
+ */
+ var doc = document.getElementById("isections");
+
+ action_todo='';
+ if(do_action=='position')
+ {
+ action_todo='sections_position&fItem='+item+'&fPosition='+position;
+ }
+ else if(do_action=='showhide')
+ {
+ action_todo='sections_showhide&fItem='+item;
+ }
+ else
+ {
+ action_todo='sections_list';
+ }
+
+ if(action_todo!='')
+ {
+ http_request=create_httpobject('get', '', '{/literal}{$datas.AMM_AJAX_URL_LIST}{literal}'+action_todo, false);
+ http_request.send(null);
+ doc.innerHTML=http_request.responseText;
+ }
+ }
+
+</script>
+{/literal}
+
+
+<h3>{'g002_sectionslist'|@translate}</h3>
+
+<div id="isections"></div>
+
+
+<script type="text/javascript">
+ load_list('list', 0, 0);
+</script> \ No newline at end of file
diff --git a/plugins/AMenuManager/admin/amm_sectionslist_detail.tpl b/plugins/AMenuManager/admin/amm_sectionslist_detail.tpl
new file mode 100644
index 000000000..b94258119
--- /dev/null
+++ b/plugins/AMenuManager/admin/amm_sectionslist_detail.tpl
@@ -0,0 +1,24 @@
+
+{if isset($datas.sections) and count($datas.sections)}
+ <table class="table2 littlefont">
+ <tr class="throw">
+ <th>{'g002_owner'|@translate}</th>
+ <th>{'g002_sectionid'|@translate}</th>
+ <th>{'g002_name'|@translate}</th>
+ <th>{'g002_visible'|@translate}</th>
+ <th colspan=2>&nbsp;</th>
+ </tr>
+
+ {foreach from=$datas.sections key=name item=section}
+ <tr>
+ <td>{$section.OWNER}</td>
+ <td>{$section.ID}</td>
+ <td>{$section.NAME}</td>
+ <td style="text-align:center;"><a style="cursor:pointer;" onclick="load_list('showhide', '{$section.ID}', '')">{$section.VISIBLE}</a></td>
+ <td width="15px">{if $section.up}<a style="cursor:pointer;" onclick="load_list('position', '{$section.ID}', '{$section.PREVPOS}')"><img src='{$plugin.PATH}/admin/go-up.png'/></a>{else}&nbsp;{/if}</td>
+ <td width="15px">{if $section.down}<a style="cursor:pointer;" onclick="load_list('position', '{$section.ID}', '{$section.NEXTPOS}')"><img src='{$plugin.PATH}/admin/go-down.png'/></a>{else}&nbsp;{/if}</td>
+ </tr>
+ {/foreach}
+
+ </table>
+{/if}
diff --git a/plugins/AMenuManager/admin/go-down.png b/plugins/AMenuManager/admin/go-down.png
new file mode 100644
index 000000000..7eeb16d2e
--- /dev/null
+++ b/plugins/AMenuManager/admin/go-down.png
Binary files differ
diff --git a/plugins/AMenuManager/admin/go-up.png b/plugins/AMenuManager/admin/go-up.png
new file mode 100644
index 000000000..bd84e76ad
--- /dev/null
+++ b/plugins/AMenuManager/admin/go-up.png
Binary files differ
diff --git a/plugins/AMenuManager/admin/index.php b/plugins/AMenuManager/admin/index.php
new file mode 100755
index 000000000..db1eae0d9
--- /dev/null
+++ b/plugins/AMenuManager/admin/index.php
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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 |
+// | |
+// | This program is distributed in the hope that it will be useful, but |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with this program; if not, write to the Free Software |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA. |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
diff --git a/plugins/AMenuManager/admin/plugin_admin.php b/plugins/AMenuManager/admin/plugin_admin.php
new file mode 100755
index 000000000..4669ac5b2
--- /dev/null
+++ b/plugins/AMenuManager/admin/plugin_admin.php
@@ -0,0 +1,28 @@
+<?php
+/* -----------------------------------------------------------------------------
+ Plugin : Advanced Menu Manager
+ Author : Grum
+ email : grum@grum.dnsalias.com
+ website : http://photos.grum.dnsalias.com
+ PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
+
+ << May the Little SpaceFrog be with you ! >>
+ ------------------------------------------------------------------------------
+ See main.inc.php for release information
+
+ --------------------------------------------------------------------------- */
+
+if (!defined('PHPWG_ROOT_PATH')) { die('Hacking attempt!'); }
+
+include(AMM_PATH."amm_aip.class.inc.php");
+
+global $prefixeTable;
+
+load_language('plugin.lang', AMM_PATH);
+
+$main_plugin_object = get_plugin_data($plugin_id);
+
+$plugin_ai = new AMM_AIP($prefixeTable, $main_plugin_object->get_filelocation());
+$plugin_ai->manage();
+
+?> \ No newline at end of file
diff --git a/plugins/AMenuManager/amm.css b/plugins/AMenuManager/amm.css
new file mode 100644
index 000000000..1293d87ca
--- /dev/null
+++ b/plugins/AMenuManager/amm.css
@@ -0,0 +1,4 @@
+
+.littlefont { font-size:90%; }
+table.littlefont th { text-align:center; padding:3px;padding-left:9px;padding-right:9px; }
+table.littlefont td { text-align:left; padding:0px;padding-left:3px;padding-right:3px; }
diff --git a/plugins/AMenuManager/amm.sql b/plugins/AMenuManager/amm.sql
new file mode 100644
index 000000000..ab9c2f2b1
--- /dev/null
+++ b/plugins/AMenuManager/amm.sql
@@ -0,0 +1,25 @@
+
+-- *************************************************************** -- EOQ
+-- * SQL export made with Grum Plugins Classes (Export tool r1.3) -- EOQ
+-- * Export date :2008-08-02 02:51:37 -- EOQ
+-- * Export options : [drop] [create] [insert] -- EOQ
+-- *************************************************************** -- EOQ
+
+
+
+-- *************************************************************** -- EOQ
+-- * Statements for piwigo_amm_urls table -- EOQ
+-- *************************************************************** -- EOQ
+DROP TABLE `piwigo_amm_urls`; -- EOQ
+CREATE TABLE `piwigo_amm_urls` (
+ `id` int(11) NOT NULL auto_increment,
+ `label` varchar(50) NOT NULL default '',
+ `url` varchar(255) NOT NULL default '',
+ `mode` int(11) NOT NULL default '0',
+ `icon` varchar(50) NOT NULL default '',
+ `position` int(11) NOT NULL default '0',
+ `visible` char(1) NOT NULL default 'y',
+ PRIMARY KEY (`id`),
+ KEY `order_key` (`position`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- EOQ
+INSERT INTO `piwigo_amm_urls` VALUES('1', 'Test', 'http://192.168.1.1', '0', 'internet.png', '0', 'y'); -- EOQ
diff --git a/plugins/AMenuManager/amm_aim.class.inc.php b/plugins/AMenuManager/amm_aim.class.inc.php
new file mode 100755
index 000000000..0556fd6b1
--- /dev/null
+++ b/plugins/AMenuManager/amm_aim.class.inc.php
@@ -0,0 +1,39 @@
+<?php
+/* -----------------------------------------------------------------------------
+ Plugin : Advanced Menu Manager
+ Author : Grum
+ email : grum@grum.dnsalias.com
+ website : http://photos.grum.dnsalias.com
+ PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
+
+ << May the Little SpaceFrog be with you ! >>
+ ------------------------------------------------------------------------------
+ See main.inc.php for release information
+
+ AMM_AIM : classe to manage plugin integration into plugin menu
+
+ --------------------------------------------------------------------------- */
+
+if (!defined('PHPWG_ROOT_PATH')) { die('Hacking attempt!'); }
+
+include_once('amm_root.class.inc.php');
+
+class AMM_AIM extends AMM_root
+{
+ function AMM_AIM($prefixeTable, $filelocation)
+ {
+ parent::__construct($prefixeTable, $filelocation);
+ }
+
+ /*
+ initialize events call for the plugin
+ */
+ function init_events()
+ {
+ add_event_handler('get_admin_plugin_menu_links', array(&$this, 'plugin_admin_menu') );
+ }
+
+} // amm_aim class
+
+
+?>
diff --git a/plugins/AMenuManager/amm_aip.class.inc.php b/plugins/AMenuManager/amm_aip.class.inc.php
new file mode 100755
index 000000000..de0901eac
--- /dev/null
+++ b/plugins/AMenuManager/amm_aip.class.inc.php
@@ -0,0 +1,642 @@
+<?php
+/* -----------------------------------------------------------------------------
+ Plugin : Advanced Menu Manager
+ Author : Grum
+ email : grum@grum.dnsalias.com
+ website : http://photos.grum.dnsalias.com
+ PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
+
+ << May the Little SpaceFrog be with you ! >>
+ ------------------------------------------------------------------------------
+ See main.inc.php for release information
+
+ AIP classe => manage integration in administration interface
+
+ --------------------------------------------------------------------------- */
+if (!defined('PHPWG_ROOT_PATH')) { die('Hacking attempt!'); }
+
+include_once(PHPWG_PLUGINS_PATH.'AMenuManager/amm_root.class.inc.php');
+include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
+include_once(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/css.class.inc.php');
+include_once(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/ajax.class.inc.php');
+include_once(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/genericjs.class.inc.php');
+
+class AMM_AIP extends AMM_root
+{
+ protected $tabsheet;
+ protected $css; //the css object
+ protected $ajax;
+
+ protected $urls_modes=array(0 => 'new_window', 1 => 'current_window');
+
+ function AMM_AIP($prefixeTable, $filelocation)
+ {
+ parent::__construct($prefixeTable, $filelocation);
+
+ $this->load_config();
+ $this->init_events();
+
+ $this->tabsheet = new tabsheet();
+ $this->tabsheet->add('setmenu',
+ l10n('g002_setmenu'),
+ $this->page_link.'&amp;fAMM_tabsheet=setmenu');
+ $this->tabsheet->add('links',
+ l10n('g002_addlinks'),
+ $this->page_link.'&amp;fAMM_tabsheet=links');
+ $this->tabsheet->add('randompict',
+ l10n('g002_randompict'),
+ $this->page_link.'&amp;fAMM_tabsheet=randompict');
+ $this->tabsheet->add('personnalblock',
+ l10n('g002_personnalblock'),
+ $this->page_link.'&amp;fAMM_tabsheet=personnalblock');
+ $this->css = new css(dirname($this->filelocation).'/'.$this->plugin_name_files.".css");
+ $this->ajax = new Ajax();
+ }
+
+
+ /* ---------------------------------------------------------------------------
+ Public classe functions
+ --------------------------------------------------------------------------- */
+
+ /*
+ manage plugin integration into piwigo's admin interface
+ */
+ public function manage()
+ {
+ global $template;
+
+
+ $template->set_filename('plugin_admin_content', dirname(__FILE__)."/admin/amm_admin.tpl");
+
+ $this->return_ajax_content();
+
+ $this->init_request();
+
+ $this->tabsheet->select($_REQUEST['fAMM_tabsheet']);
+ $this->tabsheet->assign();
+ $selected_tab=$this->tabsheet->get_selected();
+ $template->assign($this->tabsheet->get_titlename(), "[".$selected_tab['caption']."]");
+
+ $template_plugin["AMM_VERSION"] = "<i>".$this->plugin_name."</i> ".l10n('g002_version').AMM_VERSION;
+ $template_plugin["AMM_PAGE"] = $_REQUEST['fAMM_tabsheet'];
+ $template_plugin["PATH"] = AMM_PATH;
+
+ $template->assign('plugin', $template_plugin);
+
+
+ if(isset($_POST['famm_modeedit']))
+ {
+ $post_action=$_POST['famm_modeedit'];
+ }
+ else
+ {
+ $post_action="";
+ }
+
+ $page_nfo="";
+ if($_REQUEST['fAMM_tabsheet']=='links')
+ {
+ $page_nfo=l10n('g002_addlinks_nfo');
+
+ switch($_REQUEST['action'])
+ {
+ case 'list':
+ $this->display_links_list_page();
+ break;
+ case 'create':
+ case 'modify':
+ if($post_action==$_REQUEST['action'])
+ {
+ if(!$this->adviser_abort())
+ {
+ $this->action_create_modify_url();
+ }
+ $this->display_links_list_page();
+ }
+ else
+ {
+ $this->display_links_manage_page($_REQUEST['action']);
+ }
+ break;
+ case 'config':
+ if($post_action==$_REQUEST['action'])
+ {
+ if(!$this->adviser_abort())
+ {
+ $this->action_modify_config();
+ }
+ }
+ $this->display_links_config_page();
+ break;
+ }
+ }
+ elseif($_REQUEST['fAMM_tabsheet']=='randompict')
+ {
+ $page_nfo=l10n('g002_randompict_nfo');
+ }
+ elseif($_REQUEST['fAMM_tabsheet']=='personnalblock')
+ {
+ $page_nfo=l10n('g002_personnalblock_nfo');
+ }
+ elseif($_REQUEST['fAMM_tabsheet']=='setmenu')
+ {
+ $page_nfo=l10n('g002_setmenu_nfo');
+ $this->display_sections_list_page();
+ }
+
+ $template->assign('page_nfo', $page_nfo);
+
+ $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
+ }
+
+ /*
+ initialize events call for the plugin
+ */
+ public function init_events()
+ {
+ add_event_handler('menubar_file', array(&$this, 'plugin_public_menu') );
+ add_event_handler('loc_end_page_header', array(&$this->css, 'apply_CSS'));
+ }
+
+ /* ---------------------------------------------------------------------------
+ Private classe functions
+ --------------------------------------------------------------------------- */
+
+ /*
+ return ajax content
+ */
+ protected function return_ajax_content()
+ {
+ global $ajax, $template;
+
+ if(isset($_REQUEST['ajaxfct']))
+ {
+ //$this->debug("AJAXFCT:".$_REQUEST['ajaxfct']);
+ $result="<p class='errors'>".l10n('g002_error_invalid_ajax_call')."</p>";
+ switch($_REQUEST['ajaxfct'])
+ {
+ case 'links_list':
+ $result=$this->ajax_amm_links_list();
+ break;
+ case 'links_permut':
+ $result=$this->ajax_amm_links_permut($_REQUEST['fItem'], $_REQUEST['fPermut']);
+ break;
+ case 'links_delete':
+ $result=$this->ajax_amm_links_delete($_REQUEST['fItem']);
+ break;
+ case 'sections_list':
+ $result=$this->ajax_amm_section_list();
+ break;
+ case 'sections_position':
+ $result=$this->ajax_amm_section_position($_REQUEST['fItem'], $_REQUEST['fPosition']);
+ break;
+ case 'sections_showhide':
+ $result=$this->ajax_amm_section_showhide($_REQUEST['fItem']);
+ break;
+ }
+ //$template->
+ $this->ajax->return_result($result);
+ }
+ }
+
+ /*
+ if empty, initialize $_request
+ */
+ private function init_request()
+ {
+ //initialise $REQUEST values if not defined
+ if(!array_key_exists('fAMM_tabsheet', $_REQUEST))
+ {
+ $_REQUEST['fAMM_tabsheet']='setmenu';
+ }
+
+ if(($_REQUEST['fAMM_tabsheet']=='links') and !isset($_REQUEST['action']))
+ {
+ $_REQUEST['action']='list';
+ }
+
+
+ } //init_request
+
+
+ /*
+ manage display for urls table page
+ */
+ private function display_links_list_page()
+ {
+ global $template, $user;
+ $template->set_filename('body_page',
+ dirname($this->filelocation).'/admin/amm_linkslist.tpl');
+
+ $tmp=$this->get_count_url();
+ if($tmp==0)
+ {
+ $tmp=l10n("g002_nolinks");
+ }
+ elseif($tmp==1)
+ {
+ $tmp="1 ".l10n("g002_link");
+ }
+ else
+ {
+ $tmp=$tmp." ".l10n("g002_links");
+ }
+
+
+ $template_datas=array(
+ 'lnk_create' => $this->page_link.'&amp;fAMM_tabsheet=links&amp;action=create',
+ 'lnk_config' => $this->page_link.'&amp;fAMM_tabsheet=links&amp;action=config',
+ 'AMM_AJAX_URL_LIST' => $this->page_link."&ajaxfct=",
+ 'nburl' => $tmp
+ );
+
+ $template->assign("datas", $template_datas);
+ $template->assign_var_from_handle('AMM_BODY_PAGE', 'body_page');
+ }
+
+ /*
+ manage display for urls config page
+ */
+ private function display_links_config_page()
+ {
+ global $template, $user;
+ $template->set_filename('body_page',
+ dirname($this->filelocation).'/admin/amm_linksconfig.tpl');
+
+ $template_datas=array(
+ 'lnk_list' => $this->page_link.'&amp;fAMM_tabsheet=links',
+ 'AMM_AJAX_URL_LIST' => $this->page_link."&ajaxfct=",
+ 'show_icons_selected' => $this->my_config['amm_links_show_icons'],
+ 'active_selected' => $this->my_config['amm_links_active'],
+ 'lang_selected' => $user['language']
+ );
+
+ $template_datas['language_list'] = array();
+ foreach($this->my_config['amm_links_title'] as $key => $val)
+ {
+ $template_datas['language_list'][] = array(
+ 'LANG' => $key,
+ 'MENUBARTIT' => base64_decode($val)
+ );
+ }
+
+
+
+ $lang=get_languages();
+ foreach($lang as $key => $val)
+ {
+ $template_datas['language_list_values'][] = $key;
+ $template_datas['language_list_labels'][] = $val;
+ }
+
+
+ $template_datas['yesno_values'] = array('y','n');
+ $template_datas['yesno_labels'][] = l10n('g002_yesno_y');
+ $template_datas['yesno_labels'][] = l10n('g002_yesno_n');
+
+
+ $template->assign("datas", $template_datas);
+ $template->assign_var_from_handle('AMM_BODY_PAGE', 'body_page');
+ }
+
+ /*
+ manage display for urls create/modify page
+ */
+ private function display_links_manage_page($modeedit = 'create', $urlid=0)
+ {
+ global $template, $user;
+ $template->set_filename('body_page',
+ dirname($this->filelocation).'/admin/amm_linkslist_edit.tpl');
+
+ $extensions_list=array('jpg'=>0,'jpeg'=>0,'gif'=>0,'png'=>0);
+ $template_icons_list=array();
+ $directory=dir(dirname($this->filelocation).'/links_pictures/');
+ while($file=$directory->read())
+ {
+ if(isset($extensions_list[get_extension(strtolower($file))]))
+ {
+ $template_icons_list[]=$file;
+ }
+ }
+
+
+ if($modeedit=='modify')
+ {
+ $url=$this->get_url($urlid);
+
+ $template_datas=array(
+ 'id' => $urlid,
+ 'modeedit' => 'modify',
+ 'label' => $url['label'],
+ 'url' => $url['url'],
+ 'icons_selected' => $url['icon'],
+ 'mode_selected' => $url['mode'],
+ 'visible_selected' => $url['visible']
+ );
+ }
+ else
+ {
+ $template_datas=array(
+ 'id' => '',
+ 'modeedit' => 'create',
+ 'label' => '',
+ 'url' => '',
+ 'icons_selected' => $template_icons_list[0],
+ 'mode_selected' => 0,
+ 'visible_selected' => 'y'
+ );
+ }
+
+ $template_datas['lnk_list'] = $this->page_link.'&amp;fAMM_tabsheet=links';
+ $template_datas['icons_img'] = AMM_PATH."links_pictures/".$template_datas['icons_selected'];
+ $template_datas['icons_values'] = array();
+ foreach($template_icons_list as $key => $val)
+ {
+ $template_datas['icons_values'][] = array(
+ 'img' => AMM_PATH."links_pictures/".$val,
+ 'value' => $val,
+ 'label' => $val
+ );
+ }
+ $template_datas['mode_values'] = array(0,1);
+ $template_datas['mode_labels'][] = l10n("g002_mode_".$this->urls_modes[0]);
+ $template_datas['mode_labels'][] = l10n("g002_mode_".$this->urls_modes[1]);
+ $template_datas['visible_values'] = array('y','n');
+ $template_datas['visible_labels'][] = l10n('g002_yesno_y');
+ $template_datas['visible_labels'][] = l10n('g002_yesno_n');
+
+ $template->assign("datas", $template_datas);
+ $template->assign_var_from_handle('AMM_BODY_PAGE', 'body_page');
+ }
+
+ /*
+ manage create/modify url into database and display result
+ */
+ protected function action_create_modify_url()
+ {
+ $datas=array(
+ 'id' => $_POST['famm_id'],
+ 'label' => $_POST['famm_label'],
+ 'url' => $_POST['famm_url'],
+ 'mode' => $_POST['famm_mode'],
+ 'icon' => $_POST['famm_icon'],
+ 'position' => 0,
+ 'visible' => $_POST['famm_visible']
+ );
+
+ switch($_POST['famm_modeedit'])
+ {
+ case 'create':
+ $this->add_url($datas);
+ break;
+ case 'modify':
+ $this->modify_url($datas);
+ }
+ }
+
+ /*
+ manage urls config save into database
+ */
+ protected function action_modify_config()
+ {
+ $this->my_config['amm_links_show_icons']=$_POST['famm_links_show_icons'];
+ $this->my_config['amm_links_active']=$_POST['famm_links_active'];
+ $languages=get_languages();
+ foreach($languages as $key => $val)
+ {
+ $this->my_config['amm_links_title'][$key]=base64_encode(stripslashes($_POST['famm_links_title_'.$key]));
+ }
+ $this->save_config();
+ }
+
+ /*
+ manage display for sections table page
+ */
+ private function display_sections_list_page()
+ {
+ global $template, $user;
+ $template->set_filename('body_page',
+ dirname($this->filelocation).'/admin/amm_sectionslist.tpl');
+
+ $template_datas=array(
+ 'AMM_AJAX_URL_LIST' => $this->page_link."&ajaxfct=",
+ );
+
+ $template->assign("datas", $template_datas);
+ $template->assign_var_from_handle('AMM_BODY_PAGE', 'body_page');
+ }
+
+
+
+
+
+ /*
+ manage adviser profile
+ return true if user is adviser
+ */
+ protected function adviser_abort()
+ {
+ if(is_adviser())
+ {
+ $this->display_result(l10n("g002_adviser_not_allowed"), false);
+ return(true);
+ }
+ return(false);
+ }
+
+ /* ---------------------------------------------------------------------------
+ functions to manage urls tables
+ --------------------------------------------------------------------------- */
+ // protected function get_urls()
+ // protected function get_count_url()
+ // => defined in root class
+
+ // return properties of an given url
+ private function get_url($url_id)
+ {
+ $returned=array();
+ $sql="SELECT * FROM ".$this->tables['urls']." WHERE id = '".$url_id."'";
+ $result=pwg_query($sql);
+ if($result)
+ {
+ $returned=mysql_fetch_array($result);
+ }
+ return($returned);
+ }
+
+ // permut position of two 2 urls
+ private function permut_url($url_id, $url_permut)
+ {
+ $sql="SELECT id, position FROM ".$this->tables['urls']." WHERE id IN ('".$url_id."','".$url_permut."')";
+ $result=pwg_query($sql);
+ if($result)
+ {
+ $tmp=array();
+ while($row=mysql_fetch_array($result))
+ {
+ $tmp[$row['id']]=$row['position'];
+ }
+ $sql="UPDATE ".$this->tables['urls']." SET position = ".$tmp[$url_id]." WHERE id = '".$url_permut."'";
+ pwg_query($sql);
+ $sql="UPDATE ".$this->tables['urls']." SET position = ".$tmp[$url_permut]." WHERE id = '".$url_id."'";
+ pwg_query($sql);
+ }
+ }
+
+ // delete an url
+ private function delete_url($url_id)
+ {
+ $sql="DELETE FROM ".$this->tables['urls']." WHERE id = '".$url_id."' ";
+ return(pwg_query($sql));
+ }
+
+ // add an url
+ private function add_url($datas)
+ {
+ $numurl=$this->get_count_url();
+ $sql="INSERT INTO ".$this->tables['urls']." (id, label, url, mode, icon, position, visible)
+ VALUES ('', '".addslashes($datas['label'])."', '".$datas['url']."', '".$datas['mode']."',
+ '".$datas['icon']."', '".$numurl."', '".$datas['visible']."')";
+ return(pwg_query($sql));
+ }
+
+ // modify an url
+ private function modify_url($datas)
+ {
+ $sql="UPDATE ".$this->tables['urls']." SET label = '".addslashes($datas['label'])."',
+ url = '".$datas['url']."', mode = '".$datas['mode']."', icon = '".$datas['icon']."',
+ visible = '".$datas['visible']."'
+ WHERE id = '".$datas['id']."'";
+ return(pwg_query($sql));
+ }
+
+ // just modify url visibility
+ private function set_url_visibility($urlid, $visible)
+ {
+ $sql="UPDATE ".$this->tables['urls']." SET visible = '".$visible."'
+ WHERE id = '".$urlid."'";
+ return(pwg_query($sql));
+ }
+
+
+ /* ---------------------------------------------------------------------------
+ ajax functions
+ --------------------------------------------------------------------------- */
+
+ // return a html formatted list of urls
+ private function ajax_amm_links_list()
+ {
+ global $template, $user;
+ $local_tpl = new Template(AMM_PATH."admin/", "");
+ $local_tpl->set_filename('body_page',
+ dirname($this->filelocation).'/admin/amm_linkslist_detail.tpl');
+
+ $template_datas['urls']=array();
+ $urls=$this->get_urls();
+ for($i=0;$i<count($urls);$i++)
+ {
+ $template_datas['urls'][]=array(
+ 'img' => AMM_PATH."links_pictures/".$urls[$i]['icon'],
+ 'label' => $urls[$i]['label'],
+ 'url' => $urls[$i]['url'],
+ 'mode' => l10n("g002_mode_".$this->urls_modes[$urls[$i]['mode']]),
+ 'up' => ($i==0)?false:true,
+ 'down' => ($i<(count($urls)-1))?true:false,
+ 'edit' => $this->page_link.'&amp;fAMM_tabsheet=links&amp;action=modify&amp;fItem='.$urls[$i]['id'],
+ 'ID' => $urls[$i]['id'],
+ 'IDPREV' => ($i==0)?0:$urls[$i-1]['id'],
+ 'IDNEXT' => ($i<(count($urls)-1))?$urls[$i+1]['id']:0,
+ 'visible' => l10n('g002_yesno_'.$urls[$i]['visible'])
+ );
+ }
+
+ $themeconf=array(
+ 'icon_dir' => $template->get_themeconf('icon_dir')
+ );
+
+ $local_tpl->assign('themeconf', $themeconf);
+ $local_tpl->assign('datas', $template_datas);
+ $local_tpl->assign('plugin', array('PATH' => AMM_PATH));
+
+ return($local_tpl->parse('body_page', true));
+ }
+
+ // permut position of 2 urls and returns a html formatted list of urls
+ private function ajax_amm_links_permut($urlid, $urlpermut)
+ {
+ $this->permut_url($urlid, $urlpermut);
+ return($this->ajax_amm_links_list());
+ }
+
+ // delete an url and returns a html formatted list of urls
+ private function ajax_amm_links_delete($urlid)
+ {
+ if(!$this->adviser_abort())
+ {
+ $this->delete_url($urlid);
+ }
+ return($this->ajax_amm_links_list());
+ }
+
+
+
+
+ // return a html formatted list of menu's sections
+ private function ajax_amm_section_list()
+ {
+ global $menu;
+ $local_tpl = new Template(AMM_PATH."admin/", "");
+ $local_tpl->set_filename('body_page',
+ dirname($this->filelocation).'/admin/amm_sectionslist_detail.tpl');
+
+ $sections=$menu->registered();
+ $i=0;
+ foreach($sections as $key => $val)
+ {
+ $template_datas['sections'][]=array(
+ 'OWNER' => $val['OWNER'],
+ 'NAME' => l10n($val['NAME']),
+ 'ID' => $key,
+ 'VISIBLE' => l10n('g002_yesno_'.$this->my_config['amm_sections_visible'][$key]),
+ 'POSITION' => $val['POSITION'],
+ 'NEXTPOS' => $val['POSITION']+2,
+ 'PREVPOS' => $val['POSITION']-1,
+ 'up' => ($i==0)?false:true,
+ 'down' => ($i<(count($sections)-1))?true:false
+ );
+ $i++;
+ }
+
+ $local_tpl->assign('datas', $template_datas);
+ $local_tpl->assign('plugin', array('PATH' => AMM_PATH));
+
+ return($local_tpl->parse('body_page', true));
+ }
+
+ // move item to the specified position
+ private function ajax_amm_section_position($urlid, $position)
+ {
+ global $menu;
+
+ $menu->register_position($urlid, $position);
+ return($this->ajax_amm_section_list());
+ }
+
+ // move item to the specified position
+ private function ajax_amm_section_showhide($urlid)
+ {
+ global $menu;
+
+ $switchvisible=array('y'=>'n', 'n'=>'y');
+
+ $this->my_config['amm_sections_visible'][$urlid]=$switchvisible[$this->my_config['amm_sections_visible'][$urlid]];
+ $this->save_config();
+
+ return($this->ajax_amm_section_list());
+ }
+
+
+} // AMM_AIP class
+
+
+?>
diff --git a/plugins/AMenuManager/amm_install.class.inc.php b/plugins/AMenuManager/amm_install.class.inc.php
new file mode 100644
index 000000000..4a71d1b14
--- /dev/null
+++ b/plugins/AMenuManager/amm_install.class.inc.php
@@ -0,0 +1,84 @@
+<?php
+/* -----------------------------------------------------------------------------
+ Plugin : Advanced Menu Manager
+ Author : Grum
+ email : grum@grum.dnsalias.com
+ website : http://photos.grum.dnsalias.com
+ PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
+
+ << May the Little SpaceFrog be with you ! >>
+ ------------------------------------------------------------------------------
+ See main.inc.php for release information
+
+ MyPolls_Install : classe to manage plugin install
+
+ --------------------------------------------------------------------------- */
+ @include_once('amm_root.class.inc.php');
+ include_once(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/tables.class.inc.php');
+
+
+ class AMM_install extends AMM_root
+ {
+ private $tablef;
+ private $exportfile;
+
+ public function AMM_install($prefixeTable, $filelocation)
+ {
+ parent::__construct($prefixeTable, $filelocation);
+ $this->tablef= new manage_tables($this->tables);
+ $this->exportfile=dirname($this->filelocation).'/'.$this->plugin_name_files.'.sql';
+ }
+
+ /*
+ function for installation process
+ return true if install process is ok, otherwise false
+ */
+ public function install()
+ {
+
+ $tables_def=array(
+"CREATE TABLE `".$this->tables['urls']."` (
+ `id` int(11) NOT NULL auto_increment,
+ `label` varchar(50) NOT NULL default '',
+ `url` varchar(255) NOT NULL default '',
+ `mode` int(11) NOT NULL default '0',
+ `icon` varchar(50) NOT NULL default '',
+ `position` int(11) NOT NULL default '0',
+ `visible` char(1) NOT NULL default 'y',
+ PRIMARY KEY (`id`),
+ KEY `order_key` (`position`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1"
+ );
+ //$table_def array
+
+ $result=$this->tablef->create_tables($tables_def);
+ return($result);
+ }
+
+
+ /*
+ function for uninstall process
+ */
+ public function uninstall()
+ {
+ $this->tablef->export($this->exportfile);
+ $this->delete_config();
+ $this->tablef->drop_tables();
+ }
+
+ public function activate()
+ {
+ global $template;
+
+ $this->init_config();
+ $this->load_config();
+ $this->save_config();
+ }
+
+ public function deactivate()
+ {
+ }
+
+ } //class
+
+?>
diff --git a/plugins/AMenuManager/amm_pip.class.inc.php b/plugins/AMenuManager/amm_pip.class.inc.php
new file mode 100644
index 000000000..57ba0db78
--- /dev/null
+++ b/plugins/AMenuManager/amm_pip.class.inc.php
@@ -0,0 +1,92 @@
+<?php
+/* -----------------------------------------------------------------------------
+ Plugin : Advanced Menu Manager
+ Author : Grum
+ email : grum@grum.dnsalias.com
+ website : http://photos.grum.dnsalias.com
+ PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
+
+ << May the Little SpaceFrog be with you ! >>
+ ------------------------------------------------------------------------------
+ See main.inc.php for release information
+
+ PIP classe => manage integration in public interface
+
+ --------------------------------------------------------------------------- */
+if (!defined('PHPWG_ROOT_PATH')) { die('Hacking attempt!'); }
+
+include_once(PHPWG_PLUGINS_PATH.'AMenuManager/amm_root.class.inc.php');
+
+class AMM_PIP extends AMM_root
+{
+ function AMM_PIP($prefixeTable, $filelocation)
+ {
+ parent::__construct($prefixeTable, $filelocation);
+
+ $this->load_config();
+ $this->init_events();
+ }
+
+
+ /* ---------------------------------------------------------------------------
+ Public classe functions
+ --------------------------------------------------------------------------- */
+
+
+ /*
+ initialize events call for the plugin
+ */
+ public function init_events()
+ {
+ add_event_handler('loc_begin_menubar', array(&$this, 'modify_menu') );
+ }
+
+ /* ---------------------------------------------------------------------------
+ protected classe functions
+ --------------------------------------------------------------------------- */
+ public function modify_menu()
+ {
+ global $menu, $user;
+
+
+
+ /*
+ Add a new section (links)
+ */
+ $urls=$this->get_urls(true);
+ if(($this->my_config['amm_links_active']=='y')and(count($urls)>0))
+ {
+ if($this->my_config['amm_links_show_icons']=='y')
+ {
+ for($i=0;$i<count($urls);$i++)
+ {
+ $urls[$i]['icon']=AMM_PATH."links_pictures/".$urls[$i]['icon'];
+ }
+ }
+
+ $section = new Section('mbAMM_links', base64_decode($this->my_config['amm_links_title'][$user['language']]), dirname(__FILE__).'/menu_templates/menubar_links.tpl');
+ $section->set_items(array(
+ 'LINKS' => $urls,
+ 'icons' => 'y'
+ ));
+ $menu->add($section->get());
+ }
+
+ /*
+ Hide sections
+ */
+ foreach($this->my_config['amm_sections_visible'] as $key => $val)
+ {
+ if($val=='n')
+ {
+ $menu->remove($key);
+ }
+ }
+
+ }
+
+
+} // AMM_PIP class
+
+
+?>
diff --git a/plugins/AMenuManager/amm_root.class.inc.php b/plugins/AMenuManager/amm_root.class.inc.php
new file mode 100644
index 000000000..50d9742e2
--- /dev/null
+++ b/plugins/AMenuManager/amm_root.class.inc.php
@@ -0,0 +1,113 @@
+<?php
+/* -----------------------------------------------------------------------------
+ Plugin : Advanced Menu Manager
+ Author : Grum
+ email : grum@grum.dnsalias.com
+ website : http://photos.grum.dnsalias.com
+ PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
+
+ << May the Little SpaceFrog be with you ! >>
+ ------------------------------------------------------------------------------
+ See main.inc.php for release information
+
+ AMM_root : root classe for plugin
+
+ --------------------------------------------------------------------------- */
+
+if (!defined('PHPWG_ROOT_PATH')) { die('Hacking attempt!'); }
+
+include_once(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/common_plugin.class.inc.php');
+
+class AMM_root extends common_plugin
+{
+ function AMM_root($prefixeTable, $filelocation)
+ {
+ $this->plugin_name="Advanced Menu Manager";
+ $this->plugin_name_files="amm";
+ parent::__construct($prefixeTable, $filelocation);
+
+ $list=array('urls');
+ $this->set_tables_list($list);
+ }
+
+ /* ---------------------------------------------------------------------------
+ common AIP & PIP functions
+ --------------------------------------------------------------------------- */
+
+ /* this function initialize var $my_config with default values */
+ public function init_config()
+ {
+ global $menu;
+
+ $this->my_config=array(
+ 'amm_links_show_icons' => 'y',
+ 'amm_links_active' => 'y',
+ 'amm_links_title' => array(),
+ 'amm_sections_visible' => array()
+ );
+
+ $languages=get_languages();
+ foreach($languages as $key => $val)
+ {
+ if($key=='fr_FR')
+ {
+ $this->my_config['amm_links_title'][$key]='Liens';
+ }
+ else
+ {
+ $this->my_config['amm_links_title'][$key]='Links';
+ }
+ }
+
+ $sections=$menu->registered();
+ foreach($sections as $key => $val)
+ {
+ $this->my_config['amm_sections_visible'][$key]='y';
+ }
+ }
+
+
+ // return an array of urls (each url is an array)
+ protected function get_urls($only_visible=false)
+ {
+ $returned=array();
+ $sql="SELECT * FROM ".$this->tables['urls'];
+ if($only_visible)
+ {
+ $sql.=" WHERE visible = 'y' ";
+ }
+ $sql.=" ORDER BY position";
+ $result=pwg_query($sql);
+ if($result)
+ {
+ while($row=mysql_fetch_array($result))
+ {
+ $returned[]=$row;
+ }
+ }
+ return($returned);
+ }
+
+ //return number of url
+ protected function get_count_url($only_visible=false)
+ {
+ $returned=0;
+ $sql="SELECT count(id) FROM ".$this->tables['urls'];
+ if($only_visible)
+ {
+ $sql.=" WHERE visible = 'y' ";
+ }
+ $result=pwg_query($sql);
+ if($result)
+ {
+ $tmp=mysql_fetch_row($result);
+ $returned=$tmp[0];
+ }
+ return($returned);
+ }
+
+
+} // amm_root class
+
+
+?>
diff --git a/plugins/AMenuManager/index.php b/plugins/AMenuManager/index.php
new file mode 100755
index 000000000..db1eae0d9
--- /dev/null
+++ b/plugins/AMenuManager/index.php
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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 |
+// | |
+// | This program is distributed in the hope that it will be useful, but |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with this program; if not, write to the Free Software |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA. |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
diff --git a/plugins/AMenuManager/language/en_UK/index.php b/plugins/AMenuManager/language/en_UK/index.php
new file mode 100755
index 000000000..db1eae0d9
--- /dev/null
+++ b/plugins/AMenuManager/language/en_UK/index.php
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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 |
+// | |
+// | This program is distributed in the hope that it will be useful, but |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with this program; if not, write to the Free Software |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA. |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
diff --git a/plugins/AMenuManager/language/en_UK/plugin.lang.php b/plugins/AMenuManager/language/en_UK/plugin.lang.php
new file mode 100755
index 000000000..79b1bdd11
--- /dev/null
+++ b/plugins/AMenuManager/language/en_UK/plugin.lang.php
@@ -0,0 +1,58 @@
+<?php
+
+$lang['Grum Plugin Classes is not installed'] = 'Plugin <b>Grum Plugin Classes</b> in not installed';
+
+$lang['g002_title_page'] = 'Advanced Menu Management';
+$lang['g002_version'] = 'r';
+
+$lang['g002_error_invalid_ajax_call'] = "Invalid function call !";
+
+$lang['g002_setmenu'] = 'Menu management';
+$lang['g002_addlinks'] = 'Links';
+$lang['g002_randompict'] = 'Random picture';
+$lang['g002_personnalblock'] = 'Personalised menu';
+
+$lang['g002_setmenu_nfo'] = 'Management of displayed menu\'s blocks';
+$lang['g002_addlinks_nfo'] = 'Menu\'s block allowing to display a list of hyperlink';
+$lang['g002_randompict_nfo'] = 'Menu\'s block allowing to display a random picture from the gallery';
+$lang['g002_personnalblock_nfo'] = 'Display personalised blocks into menu';
+
+
+$lang['g002_mode_new_window'] = 'New window';
+$lang['g002_mode_current_window'] = 'Current window';
+$lang['g002_addlink'] = 'Add a link';
+$lang['g002_label'] = 'Label';
+$lang['g002_url'] = 'URL';
+$lang['g002_mode'] = 'Mode';
+$lang['g002_icon'] = 'Representative picture';
+$lang['g002_visible'] = 'Visible';
+$lang['g002_linkslist'] = "Links list";
+$lang['g002_confirm_delete_link'] = "Delete link ?";
+$lang['g002_nolinks'] = 'No links';
+$lang['g002_link'] = 'link';
+$lang['g002_links'] = 'links';
+
+$lang['g002_createoflink'] = 'Add link';
+$lang['g002_editoflink'] = 'Edit link';
+$lang['g002_createthelink'] = 'Add link';
+$lang['g002_editthelink'] = 'Edit link';
+
+$lang['g002_configlinks'] = 'Links settings';
+$lang['g002_setting_link_block_menu'] = 'Menu integration';
+$lang['g002_setting_link_links']='Links';
+$lang['g002_setting_link_show_icon'] = 'Display links representative picture';
+$lang['g002_setting_link_block_active'] = 'Display block in menu';
+$lang['g002_setting_link_block_title'] = 'Block title';
+$lang['g002_apply'] = 'Apply';
+
+$lang['g002_sectionslist'] = 'Menu\'s blocks';
+
+$lang['g002_yesno_y'] = 'Yes';
+$lang['g002_yesno_n'] = 'No';
+
+$lang['g002_owner'] = 'Owner';
+$lang['g002_sectionid'] = 'Identifier';
+$lang['g002_name'] = 'Label';
+
+
+?>
diff --git a/plugins/AMenuManager/language/fr_FR/index.php b/plugins/AMenuManager/language/fr_FR/index.php
new file mode 100755
index 000000000..db1eae0d9
--- /dev/null
+++ b/plugins/AMenuManager/language/fr_FR/index.php
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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 |
+// | |
+// | This program is distributed in the hope that it will be useful, but |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with this program; if not, write to the Free Software |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA. |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
diff --git a/plugins/AMenuManager/language/fr_FR/plugin.lang.php b/plugins/AMenuManager/language/fr_FR/plugin.lang.php
new file mode 100755
index 000000000..828bf9d98
--- /dev/null
+++ b/plugins/AMenuManager/language/fr_FR/plugin.lang.php
@@ -0,0 +1,58 @@
+<?php
+
+$lang['Grum Plugin Classes is not installed'] = 'Le plugin <b>Grum Plugin Classes</b> n\'est pas installé';
+
+$lang['g002_title_page'] = 'Gestion avancée du menu';
+$lang['g002_version'] = 'v';
+
+$lang['g002_error_invalid_ajax_call'] = "Appel de fonction invalide !";
+
+$lang['g002_setmenu'] = 'Gestion du menu';
+$lang['g002_addlinks'] = 'Liens';
+$lang['g002_randompict'] = 'Image aléatoire';
+$lang['g002_personnalblock'] = 'Menu personnalisé';
+
+$lang['g002_setmenu_nfo'] = 'Gestion de l\'affichage des sections affichées dans le menu';
+$lang['g002_addlinks_nfo'] = 'Section permettant d\'afficher dans le menu une liste d\'hyperliens vers d\'autres sites internet';
+$lang['g002_randompict_nfo'] = 'Section permettant d\'afficher dans le menu une image prise au hasard dans la gallerie';
+$lang['g002_personnalblock_nfo'] = 'Afficher dans le menu des sections au contenu personnalisés';
+
+
+$lang['g002_mode_new_window'] = 'Nouvelle fenêtre';
+$lang['g002_mode_current_window'] = 'Fenêtre courante';
+$lang['g002_addlink'] = 'Ajouter un lien';
+$lang['g002_label'] = 'Libellé';
+$lang['g002_url'] = 'URL';
+$lang['g002_mode'] = 'Mode';
+$lang['g002_icon'] = 'Image';
+$lang['g002_visible'] = 'Visible';
+$lang['g002_linkslist'] = "Liste des liens";
+$lang['g002_confirm_delete_link'] = "Supprimer le lien ?";
+$lang['g002_nolinks'] = 'Pas de liens';
+$lang['g002_link'] = 'lien';
+$lang['g002_links'] = 'liens';
+
+$lang['g002_createoflink'] = 'Ajout d\'un lien';
+$lang['g002_editoflink'] = 'Modification d\'un lien';
+$lang['g002_createthelink'] = 'Ajouter le lien';
+$lang['g002_editthelink'] = 'Modifier le lien';
+
+$lang['g002_configlinks'] = 'Configuration des liens';
+$lang['g002_setting_link_block_menu'] = 'Intégration dans le menu';
+$lang['g002_setting_link_links']='Liens';
+$lang['g002_setting_link_show_icon'] = 'Afficher les icônes de liens';
+$lang['g002_setting_link_block_active'] = 'Afficher la section dans le menu';
+$lang['g002_setting_link_block_title'] = 'Titre de la section dans le menu';
+$lang['g002_apply'] = 'Appliquer';
+
+$lang['g002_sectionslist'] = 'Sections du menu';
+
+$lang['g002_yesno_y'] = 'Oui';
+$lang['g002_yesno_n'] = 'Non';
+
+$lang['g002_owner'] = 'Propriétaire';
+$lang['g002_sectionid'] = 'Identifiant';
+$lang['g002_name'] = 'Libellé';
+
+
+?>
diff --git a/plugins/AMenuManager/language/index.php b/plugins/AMenuManager/language/index.php
new file mode 100755
index 000000000..db1eae0d9
--- /dev/null
+++ b/plugins/AMenuManager/language/index.php
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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 |
+// | |
+// | This program is distributed in the hope that it will be useful, but |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with this program; if not, write to the Free Software |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA. |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
diff --git a/plugins/AMenuManager/links_pictures/internet-url.png b/plugins/AMenuManager/links_pictures/internet-url.png
new file mode 100644
index 000000000..4796da70d
--- /dev/null
+++ b/plugins/AMenuManager/links_pictures/internet-url.png
Binary files differ
diff --git a/plugins/AMenuManager/links_pictures/internet.png b/plugins/AMenuManager/links_pictures/internet.png
new file mode 100644
index 000000000..e5d80c172
--- /dev/null
+++ b/plugins/AMenuManager/links_pictures/internet.png
Binary files differ
diff --git a/plugins/AMenuManager/main.inc.php b/plugins/AMenuManager/main.inc.php
new file mode 100755
index 000000000..766b478e8
--- /dev/null
+++ b/plugins/AMenuManager/main.inc.php
@@ -0,0 +1,66 @@
+<?php
+/*
+Plugin Name: Advanced Menu Manager
+Version: 1.0.0
+Description: Gestion avancée du menu / Advanced management of menu
+Plugin URI: http://phpwebgallery.net/ext/extension_view.php?eid=
+*/
+
+/*
+--------------------------------------------------------------------------------
+ Author : Grum
+ email : grum@grum.dnsalias.com
+ website : http://photos.grum.dnsalias.com
+ PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
+
+ << May the Little SpaceFrog be with you ! >>
+--------------------------------------------------------------------------------
+
+:: HISTORY
+
+1.0.0 - 27/07/08 -
+
+:: TO DO
+
+--------------------------------------------------------------------------------
+
+:: NFO
+ AMM_AIM : classe to manage plugin integration into plugin menu
+ AMM_AIP : classe to manage plugin admin pages
+ AMM_PIP : classe to manage plugin public integration
+
+--------------------------------------------------------------------------------
+*/
+
+// pour faciliter le debug :o)
+ini_set('error_reporting', E_ALL);
+ini_set('display_errors', true);
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+define('AMM_DIR' , basename(dirname(__FILE__)));
+define('AMM_PATH' , PHPWG_PLUGINS_PATH . AMM_DIR . '/');
+
+define('AMM_VERSION' , '1.0.0'); // => ne pas oublier la version dans l'entête !!
+
+global $prefixeTable, $menu;
+
+if(basename($_SERVER["PHP_SELF"])=='admin.php')
+{
+ //AMM admin part loaded and active only if in admin page
+ include_once("amm_aim.class.inc.php");
+
+ $obj = new AMM_AIM($prefixeTable, __FILE__);
+ $obj->init_events();
+ set_plugin_data($plugin['id'], $obj);
+}
+else
+{
+ //AMM public part loaded and active only if in admin page
+ include_once("amm_pip.class.inc.php");
+
+ $obj = new AMM_PIP($prefixeTable, __FILE__);
+ set_plugin_data($plugin['id'], $obj);
+}
+
+?>
diff --git a/plugins/AMenuManager/maintain.inc.php b/plugins/AMenuManager/maintain.inc.php
new file mode 100755
index 000000000..543ec5c1f
--- /dev/null
+++ b/plugins/AMenuManager/maintain.inc.php
@@ -0,0 +1,66 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) { die('Hacking attempt!'); }
+
+ini_set('error_reporting', E_ALL);
+ini_set('display_errors', true);
+
+define('AMM_DIR' , basename(dirname(__FILE__)));
+define('AMM_PATH' , PHPWG_PLUGINS_PATH . AMM_DIR . '/');
+@include_once(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/tables.class.inc.php');
+
+
+global $gpc_installed, $lang; //needed for plugin manager compatibility
+
+$gpc_installed=false;
+if(file_exists(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/common_plugin.class.inc.php'))
+{
+ @include_once("amm_install.class.inc.php");
+ $gpc_installed=true;
+}
+
+load_language('plugin.lang', AMM_PATH);
+
+function plugin_install($plugin_id, $plugin_version, &$errors)
+{
+ global $prefixeTable, $gpc_installed, $menu;
+ if($gpc_installed)
+ {
+ $menu->register('mbAMM_links', 'Links', 0, 'AMM');
+ $menu->register('mbAMM_randompict', 'Random pictures', 0, 'AMM');
+ $amm=new AMM_install($prefixeTable, __FILE__);
+ $result=$amm->install();
+ }
+ else
+ {
+ array_push($errors, l10n('Grum Plugin Classes is not installed'));
+ }
+}
+
+function plugin_activate($plugin_id, $plugin_version, &$errors)
+{
+}
+
+function plugin_deactivate($plugin_id)
+{
+}
+
+function plugin_uninstall($plugin_id)
+{
+ global $prefixeTable, $gpc_installed, $menu;
+ if($gpc_installed)
+ {
+ $menu->unregister('mbAMM_links');
+ $menu->unregister('mbAMM_randompict');
+ $amm=new AMM_install($prefixeTable, __FILE__);
+ $result=$amm->uninstall();
+ }
+ else
+ {
+ array_push($errors, l10n('Grum Plugin Classes is not installed'));
+ }
+}
+
+
+
+?>
diff --git a/plugins/AMenuManager/menu_templates/menubar_links.tpl b/plugins/AMenuManager/menu_templates/menubar_links.tpl
new file mode 100644
index 000000000..7d9360c5a
--- /dev/null
+++ b/plugins/AMenuManager/menu_templates/menubar_links.tpl
@@ -0,0 +1,16 @@
+
+<!-- links menu bar -->
+{if $section.NAME!=""}
+ <dt>{$section.NAME|@translate}</dt>
+{/if}
+<dd>
+ <ul>
+ {foreach from=$section.ITEMS.LINKS item=link}
+ <li>
+ {if $section.ITEMS.icons=='y'}<img src='{$link.icon}' style="position:relative;top:3px;"/>{/if}
+ <a href="{$link.url}"
+ {if $link.mode == 0} target = '_blank' {/if}>{$link.label}</a>
+ </li>
+ {/foreach}
+ </ul>
+</dd> \ No newline at end of file