Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision de763d70

Von Stephan Köhler vor mehr als 19 Jahren hinzugefügt

  • ID de763d70b4b2e0501565e579fb4726e033594589
  • Vorgänger 9a22f14c
  • Nachfolger dcebb8bc

Neues Menu von Holger L.
Wenn manuell eingespielt vorher makesymlinks und locales.pl ausführen!
-Auswahl über Programm
>Benutzereinstellungen "Setup Menu" New/Old,
dann ab- und neuanmelden.
-Die Auswahl im der Adminmaske funktioniert noch nicht!

Unterschiede anzeigen:

SL/Menu.pm
}
my $level = $form->escape($item);
my $str =
my $str =
qq|<a href=$module?path=$form->{path}&action=$action&level=$level&login=$form->{login}&password=$form->{password}|;
my @vars = qw(module action target href);
if ($self->{$item}{href}) {
......
return $str;
}
sub menuitemNew {
my ($self, $myconfig, $form, $item) = @_;
my $module = $form->{script};
my $action = "section_menu";
#if ($self->{$item}{module}) {
$module = $self->{$item}{module};
#}
if ($self->{$item}{action}) {
$action = $self->{$item}{action};
}
my $level = $form->escape($item);
my $str =
qq|$module?path=$form->{path}&action=$action&level=$level&login=$form->{login}&password=$form->{password}|;
my @vars = qw(module action target href);
if ($self->{$item}{href}) {
$str = qq|$self->{$item}{href}|;
@vars = qw(module target href);
}
map { delete $self->{$item}{$_} } @vars;
# add other params
foreach my $key (keys %{ $self->{$item} }) {
$str .= "&" . $form->escape($key, 1) . "=";
($value, $conf) = split /=/, $self->{$item}{$key}, 2;
$value = $myconfig->{$value} . "/$conf" if ($conf);
$str .= $form->escape($value, 1);
}
$str .= " ";
}
sub access_control {
$main::lxdebug->enter_sub();
SL/User.pm
currency dateformat dbconnect dbdriver dbhost dbport dboptions
dbname dbuser dbpasswd email fax name numberformat password
printer role sid signature stylesheet tel templates vclimit angebote bestellungen rechnungen
anfragen lieferantenbestellungen einkaufsrechnungen steuernummer ustid duns);
anfragen lieferantenbestellungen einkaufsrechnungen steuernummer ustid duns menustyle);
$main::lxdebug->leave_sub();
bin/mozilla/am.pl
<table>
<tr valign=top>
<td><input name=category type=radio class=radio value=A $checked{A_}>&nbsp;|
. $locale->text('Asset')
. qq|\n<br>
. $locale->text('Asset') . qq|\n<br>
<input name=category type=radio class=radio value=L $checked{L_}>&nbsp;|
. $locale->text('Liability')
. qq|\n<br>
. $locale->text('Liability') . qq|\n<br>
<input name=category type=radio class=radio value=Q $checked{Q_}>&nbsp;|
. $locale->text('Equity')
. qq|\n<br>
. $locale->text('Equity') . qq|\n<br>
<input name=category type=radio class=radio value=I $checked{I_}>&nbsp;|
. $locale->text('Revenue')
. qq|\n<br>
. $locale->text('Revenue') . qq|\n<br>
<input name=category type=radio class=radio value=E $checked{E_}>&nbsp;|
. $locale->text('Expense')
. qq|</td>
. $locale->text('Expense') . qq|</td>
<td width=50>&nbsp;</td>
<td>
<input name=charttype type=radio class=radio value="H" $checked{H}>&nbsp;|
. $locale->text('Heading') . qq|<br>
<input name=charttype type=radio class=radio value="A" $checked{A}>&nbsp;|
. $locale->text('Account')
. qq|</td>
. $locale->text('Account') . qq|</td>
</tr>
</table>
</td>
......
<table>
<tr>
<th align=left>|
. $locale->text('Is this a summary account to record')
. qq|</th>
. $locale->text('Is this a summary account to record') . qq|</th>
<td>
<input name=AR type=checkbox class=checkbox value=AR $form->{AR}>&nbsp;|
. $locale->text('AR')
......
<tr>
<td>
<input name=AR_amount type=checkbox class=checkbox value=AR_amount $form->{AR_amount}>&nbsp;|
. $locale->text('Revenue')
. qq|\n<br>
. $locale->text('Revenue') . qq|\n<br>
<input name=AR_paid type=checkbox class=checkbox value=AR_paid $form->{AR_paid}>&nbsp;|
. $locale->text('Receipt')
. qq|\n<br>
. $locale->text('Receipt') . qq|\n<br>
<input name=AR_tax type=checkbox class=checkbox value=AR_tax $form->{AR_tax}>&nbsp;|
. $locale->text('Tax') . qq|
</td>
<td>
<input name=AP_amount type=checkbox class=checkbox value=AP_amount $form->{AP_amount}>&nbsp;|
. $locale->text('Expense/Asset')
. qq|\n<br>
. $locale->text('Expense/Asset') . qq|\n<br>
<input name=AP_paid type=checkbox class=checkbox value=AP_paid $form->{AP_paid}>&nbsp;|
. $locale->text('Payment')
. qq|\n<br>
. $locale->text('Payment') . qq|\n<br>
<input name=AP_tax type=checkbox class=checkbox value=AP_tax $form->{AP_tax}>&nbsp;|
. $locale->text('Tax') . qq|
</td>
<td>
<input name=IC_sale type=checkbox class=checkbox value=IC_sale $form->{IC_sale}>&nbsp;|
. $locale->text('Revenue')
. qq|\n<br>
. $locale->text('Revenue') . qq|\n<br>
<input name=IC_cogs type=checkbox class=checkbox value=IC_cogs $form->{IC_cogs}>&nbsp;|
. $locale->text('COGS')
. qq|\n<br>
. $locale->text('COGS') . qq|\n<br>
<input name=IC_taxpart type=checkbox class=checkbox value=IC_taxpart $form->{IC_taxpart}>&nbsp;|
. $locale->text('Tax') . qq|
</td>
<td>
<input name=IC_income type=checkbox class=checkbox value=IC_income $form->{IC_income}>&nbsp;|
. $locale->text('Revenue')
. qq|\n<br>
. $locale->text('Revenue') . qq|\n<br>
<input name=IC_expense type=checkbox class=checkbox value=IC_expense $form->{IC_expense}>&nbsp;|
. $locale->text('Expense')
. qq|\n<br>
. $locale->text('Expense') . qq|\n<br>
<input name=IC_taxservice type=checkbox class=checkbox value=IC_taxservice $form->{IC_taxservice}>&nbsp;|
. $locale->text('Tax') . qq|
</td>
......
<tr>
<td></td>
<th align=left><input name=sictype type=checkbox style=checkbox value="H" $checked> |
. $locale->text('Heading')
. qq|</th>
. $locale->text('Heading') . qq|</th>
<tr>
<tr>
<th align=right>| . $locale->text('Description') . qq|</th>
......
%countrycodes = User->country_codes;
$countrycodes = '';
foreach $key (sort { $countrycodes{$a} cmp $countrycodes{$b} }
keys %countrycodes) {
keys %countrycodes
) {
$countrycodes .=
($myconfig{countrycode} eq $key)
? "<option selected value=$key>$countrycodes{$key}\n"
......
$form->header;
if ($myconfig{menustyle} eq "old") { $oldS = "checked"; }
else { $newS = "checked"; }
print qq|
<body>
......
<th align=right>| . $locale->text('Stylesheet') . qq|</th>
<td><select name=usestylesheet>$selectstylesheet</select></td>
</tr>
<tr>
<th align=right>| . $locale->text('Setup Menu') . qq|</th>
<td><input name=menustyle type=radio class=radio value=neu $newS>&nbsp;New
<input name=menustyle type=radio class=radio value=old $oldS>&nbsp;Old</td>
</tr>
<input name=printer type=hidden value="$myconfig{printer}">
<tr class=listheading>
<th colspan=2>&nbsp;</th>
......
</tr>
<tr class=listheading>
<th colspan=2>|
. $locale->text('Last Numbers & Default Accounts')
. qq|</th>
. $locale->text('Last Numbers & Default Accounts') . qq|</th>
</tr>
<tr>
<td colspan=2>
......
</tr>
<tr>
<td colspan=2>|
. $locale->text('Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies')
. $locale->text(
'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies'
)
. qq|<br><input name=curr size=40 value="$form->{defaults}{curr}"></td>
</tr>
</table>
......
<th align=right nowrap>| . $locale->text('Last Invoice Number') . qq|</th>
<td><input name=invnumber size=10 value=$form->{defaults}{invnumber}></td>
<th align=right nowrap>|
. $locale->text('Last Customer Number')
. qq|</th>
. $locale->text('Last Customer Number') . qq|</th>
<td><input name=customernumber size=10 value=$form->{defaults}{customernumber}></td>
</tr>
<tr>
<th align=right nowrap>|
. $locale->text('Last Sales Order Number')
. qq|</th>
. $locale->text('Last Sales Order Number') . qq|</th>
<td><input name=sonumber size=10 value=$form->{defaults}{sonumber}></td>
<th align=right nowrap>|
. $locale->text('Last Vendor Number')
. qq|</th>
. $locale->text('Last Vendor Number') . qq|</th>
<td><input name=vendornumber size=10 value=$form->{defaults}{vendornumber}></td>
</tr>
<tr>
<th align=right nowrap>|
. $locale->text('Last Purchase Order Number')
. qq|</th>
. $locale->text('Last Purchase Order Number') . qq|</th>
<td><input name=ponumber size=10 value=$form->{defaults}{ponumber}></td>
<th align=right nowrap>|
. $locale->text('Last Article Number')
. qq|</th>
. $locale->text('Last Article Number') . qq|</th>
<td><input name=articlenumber size=10 value=$form->{defaults}{articlenumber}></td>
</tr>
<tr>
<th align=right nowrap>|
. $locale->text('Last Sales Quotation Number')
. qq|</th>
. $locale->text('Last Sales Quotation Number') . qq|</th>
<td><input name=sqnumber size=10 value=$form->{defaults}{sqnumber}></td>
<th align=right nowrap>|
. $locale->text('Last Service Number')
. qq|</th>
. $locale->text('Last Service Number') . qq|</th>
<td><input name=servicenumber size=10 value=$form->{defaults}{servicenumber}></td>
</tr>
<tr>
......
<table>
<tr>
<td>|
. $locale->text('Enforce transaction reversal for all dates')
. qq|</th>
. $locale->text('Enforce transaction reversal for all dates') . qq|</th>
<td><input name=revtrans class=radio type=radio value="1" $checked{Y}> |
. $locale->text('Yes')
. qq| <input name=revtrans class=radio type=radio value="0" $checked{N}> |
bin/mozilla/login.pl
<tr>
<td class=login align=center><a href="http://www.lx-office.org" target=_top><img src="image/lx-office-erp.png" border=0></a>
<h1 class=login align=center>|
. $locale->text('Version')
. qq| $form->{version}
. $locale->text('Version') . qq| $form->{version}
</h1>
<p>
......
}
# made it this far, execute the menu
$form->{callback} =
"menu.pl?login=$form->{login}&password=$form->{password}&path=$form->{path}&action=display";
if ($user->{menustyle} eq "neu") {
$form->{callback} =
"menunew.pl?login=$form->{login}&password=$form->{password}&path=$form->{path}&action=display";
} else {
$form->{callback} =
"menu.pl?login=$form->{login}&password=$form->{password}&path=$form->{path}&action=display";
}
$form->redirect;
bin/mozilla/menunew.pl
#=====================================================================
# LX-Office ERP
# Copyright (C) 2004
# Based on SQL-Ledger Version 2.1.9
# Web http://www.lx-office.org
#
######################################################################
# SQL-Ledger Accounting
# Copyright (c) 1998-2002
#
# Author: Dieter Simader
# Email: dsimader@sql-ledger.org
# Web: http://www.sql-ledger.org
#
# Contributors: Christopher Browne
#
# 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.
#
# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
#######################################################################
#
# thre frame layout with refractured menu
#
# CHANGE LOG:
# DS. 2002-03-25 Created
# 2004-12-14 - New Optik - Marco Welter <mawe@linux-studio.de>
#######################################################################
$menufile = "menu.ini";
use SL::Menu;
use CGI::Carp qw(fatalsToBrowser);
1;
# end of main
sub display {
$form->header;
&clock_line;
&acc_menu;
print qq|
<iframe src="login.pl?login=$form->{login}&password=$form->{password}&action=company_logo&path=$form->{path}" width="100%" height="93%" name="main_window" style="position: absolute; border:0px;">
<p>Ihr Browser kann leider keine eingebetteten Frames anzeigen.
</p>
</iframe>
</body>
</html>
|;
}
sub clock_line {
$login = "["
. $form->{login}
. " - <a href=\"login.pl?path="
. $form->{"path"}
. "&password="
. $form->{"password"}
. "&action=logout\" target=\"_top\">"
. $locale->text('Logout')
. "</a>] ";
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,
$Jahr, $Wochentag, $Jahrestag, $Sommerzeit)
= localtime(time);
my $CTIME_String = localtime(time);
$Monat += 1;
$Jahrestag += 1;
$Monat = $Monat < 10 ? $Monat = "0" . $Monat : $Monat;
$Monatstag = $Monatstag < 10 ? $Monatstag = "0" . $Monatstag : $Monatstag;
$Jahr += 1900;
my @Wochentage = ("Sonntag", "Montag", "Dienstag", "Mittwoch",
"Donnerstag", "Freitag", "Samstag");
my @Monatsnamen = ("", "Januar", "Februar", "M&auml;rz",
"April", "Mai", "Juni", "Juli",
"August", "September", "Oktober", "November",
"Dezember");
$datum =
$Wochentage[$Wochentag] . ", der "
. $Monatstag . "."
. $Monat . "."
. $Jahr . " - ";
#$zeit="<div id='Uhr'>".$Stunden.":".$Minuten.":".$Sekunden."</div>";
$zeit = "<div id='Uhr'>" . $Stunden . ":" . $Minuten . "</div>";
print qq|
<script type="text/javascript">
<!--
var clockid=new Array()
var clockidoutside=new Array()
var i_clock=-1
var thistime= new Date()
var hours= | . $Stunden . qq|;
var minutes= | . $Minuten . qq|;
var seconds= | . $Sekunden . qq|;
if (eval(hours) <10) {hours="0"+hours}
if (eval(minutes) < 10) {minutes="0"+minutes}
if (seconds < 10) {seconds="0"+seconds}
//var thistime = hours+":"+minutes+":"+seconds
var thistime = hours+":"+minutes
function writeclock() {
i_clock++
if (document.all \|\| document.getElementById \|\| document.layers) {
clockid[i_clock]="clock"+i_clock
document.write("<font family=arial size=2><span id='"+clockid[i_clock]+"' style='position:relative'>"+thistime+"</span></font>")
}
}
function clockon() {
thistime= new Date()
hours=thistime.getHours()
minutes=thistime.getMinutes()
seconds=thistime.getSeconds()
if (eval(hours) <10) {hours="0"+hours}
if (eval(minutes) < 10) {minutes="0"+minutes}
if (seconds < 10) {seconds="0"+seconds}
//thistime = hours+":"+minutes+":"+seconds
thistime = hours+":"+minutes
if (document.all) {
for (i=0;i<=clockid.length-1;i++) {
var thisclock=eval(clockid[i])
thisclock.innerHTML=thistime
}
}
if (document.getElementById) {
for (i=0;i<=clockid.length-1;i++) {
document.getElementById(clockid[i]).innerHTML=thistime
}
}
var timer=setTimeout("clockon()",60000)
}
//window.onload=clockon
//-->
</script>
<table border="0" width="100%" background="image/bg_titel.gif" cellpadding="0" cellspacing="0">
<tr>
<td align="right" style="vertical-align:middle; color:white; font-family:verdana,arial,sans-serif; font-size: 12px;" nowrap>|
. $login
. $datum
. qq| <script>writeclock()</script>&nbsp;
</td>
</tr>
</table>
|;
}
sub acc_menu {
$mainlevel = $form->{level};
$mainlevel =~ s/$mainlevel--//g;
my $menu = new Menu "$menufile";
$menu = new Menu "custom_$menufile" if (-f "custom_$menufile");
$menu = new Menu "$form->{login}_$menufile"
if (-f "$form->{login}_$menufile");
$| = 1;
print qq|
<script type="text/javascript">
<!--
var isDOM = (document.getElementById ? true : false);
var isIE4 = ((document.all && !isDOM) ? true : false);
var isNS4 = (document.layers ? true : false);
function getRef(id) {
if (isDOM) return document.getElementById(id);
if (isIE4) return document.all[id];
if (isNS4) return document.layers[id];
}
function getSty(id) {
return (isNS4 ? getRef(id) : getRef(id).style);
}
var popTimer = 0;
var litNow = new Array();
function popOver(menuNum, itemNum) {
clearTimeout(popTimer);
hideAllBut(menuNum);
litNow = getTree(menuNum, itemNum);
changeCol(litNow, true);
targetNum = menu[menuNum][itemNum].target;
if (targetNum > 0) {
thisX = parseInt(menu[menuNum][0].ref.left) + parseInt(menu[menuNum][itemNum].ref.left);
thisY = parseInt(menu[menuNum][0].ref.top) + parseInt(menu[menuNum][itemNum].ref.top);
with (menu[targetNum][0].ref) {
left = parseInt(thisX + menu[targetNum][0].x);
top = parseInt(thisY + menu[targetNum][0].y);
visibility = 'visible';
}
}
}
function popOut(menuNum, itemNum) {
if ((menuNum == 0) && !menu[menuNum][itemNum].target)
hideAllBut(0)
else
popTimer = setTimeout('hideAllBut(0)', 500);
}
function getTree(menuNum, itemNum) {
itemArray = new Array(menu.length);
while(1) {
itemArray[menuNum] = itemNum;
if (menuNum == 0) return itemArray;
itemNum = menu[menuNum][0].parentItem;
menuNum = menu[menuNum][0].parentMenu;
}
}
function changeCol(changeArray, isOver) {
for (menuCount = 0; menuCount < changeArray.length; menuCount++) {
if (changeArray[menuCount]) {
newCol = isOver ? menu[menuCount][0].overCol : menu[menuCount][0].backCol;
with (menu[menuCount][changeArray[menuCount]].ref) {
if (isNS4) bgColor = newCol;
else backgroundColor = newCol;
}
}
}
}
function hideAllBut(menuNum) {
var keepMenus = getTree(menuNum, 1);
for (count = 0; count < menu.length; count++)
if (!keepMenus[count])
menu[count][0].ref.visibility = 'hidden';
changeCol(litNow, false);
}
function Menu(isVert, popInd, x, y, width, overCol, backCol, borderClass, textClass) {
this.isVert = isVert;
this.popInd = popInd
this.x = x;
this.y = y;
this.width = width;
this.overCol = overCol;
this.backCol = backCol;
this.borderClass = borderClass;
this.textClass = textClass;
this.parentMenu = null;
this.parentItem = null;
this.ref = null;
}
function Item(text, href, frame, length, spacing, target) {
this.text = text;
this.href = href;
this.frame = frame;
this.length = length;
this.spacing = spacing;
this.target = target;
this.ref = null;
}
function writeMenus() {
if (!isDOM && !isIE4 && !isNS4) return;
for (currMenu = 0; currMenu < menu.length; currMenu++) with (menu[currMenu][0]) {
var str = '', itemX = 0, itemY = 0;
for (currItem = 1; currItem < menu[currMenu].length; currItem++) with (menu[currMenu][currItem]) {
var itemID = 'menu' + currMenu + 'item' + currItem;
var w = (isVert ? width : length);
var h = (isVert ? length : width);
if (isDOM \|\| isIE4) {
str += '<div id="' + itemID + '" style="position: absolute; left: ' + itemX + '; top: ' + itemY + '; width: ' + w + '; height: ' + h + '; visibility: inherit; ';
if (backCol) str += 'background: ' + backCol + '; ';
str += '" ';
}
if (isNS4) {
str += '<layer id="' + itemID + '" left="' + itemX + '" top="' + itemY + '" width="' + w + '" height="' + h + '" visibility="inherit" ';
if (backCol) str += 'bgcolor="' + backCol + '" ';
}
if (borderClass) str += 'class="' + borderClass + '" ';
str += 'onMouseOver="popOver(' + currMenu + ',' + currItem + ')" onMouseOut="popOut(' + currMenu + ',' + currItem + ')">';
str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (!isNS4 && borderClass ? 3 : 0) + '"><tr><td align="left" height="' + (h - 7) + '">' + '<a class="' + textClass + '" href="' + href + '"' + (frame ? ' target="' + frame + '">' : '>') + text + '</a></td>';
if (target > 0) {
menu[target][0].parentMenu = currMenu;
menu[target][0].parentItem = currItem;
if (popInd) str += '<td class="' + textClass + '" align="right">' + popInd + '</td>';
}
str += '</tr></table>' + (isNS4 ? '</layer>' : '</div>');
if (isVert) itemY += length + spacing;
else itemX += length + spacing;
}
if (isDOM) {
var newDiv = document.createElement('div');
document.getElementsByTagName('body').item(0).appendChild(newDiv);
newDiv.innerHTML = str;
ref = newDiv.style;
ref.position = 'absolute';
ref.visibility = 'hidden';
}
if (isIE4) {
document.body.insertAdjacentHTML('beforeEnd', '<div id="menu' + currMenu + 'div" ' + 'style="position: absolute; visibility: hidden">' + str + '</div>');
ref = getSty('menu' + currMenu + 'div');
}
if (isNS4) {
ref = new Layer(0);
ref.document.write(str);
ref.document.close();
}
for (currItem = 1; currItem < menu[currMenu].length; currItem++) {
itemName = 'menu' + currMenu + 'item' + currItem;
if (isDOM \|\| isIE4) menu[currMenu][currItem].ref = getSty(itemName);
if (isNS4) menu[currMenu][currItem].ref = ref.document[itemName];
}
}
with(menu[0][0]) {
ref.left = x;
ref.top = y;
ref.visibility = 'visible';
}
}
var menu = new Array();
var defOver = '#AAAAFF', defBack = '#8888DD';
var defLength = 22;
menu[0] = new Array();
menu[0][0] = new Menu(false, '', 5, 18, 19, '#AAAAFF', '#AAAAFF', '', 'itemText');
|;
#
&section_menu($menu);
print qq|
var popOldWidth = window.innerWidth;
nsResizeHandler = new Function('if (popOldWidth != window.innerWidth) location.reload()');
if (isNS4) document.captureEvents(Event.CLICK);
document.onclick = clickHandle;
function clickHandle(evt) {
if (isNS4) document.routeEvent(evt);
hideAllBut(0);
}
function moveRoot() {
with(menu[0][0].ref) left = ((parseInt(left) < 100) ? 100 : 5);
}
// End -->
</script>
<style>
<!--
.itemBorder { border: 1px solid black }
.itemText { text-decoration: none; color: #FFFFFF; font: 12px Arial, Helvetica }
-->
</style>
<!--body bgcolor="#AAAAff" text="#ffffff" link="#ffffff" vlink="#ffffff" alink="#ffffff" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0"-->
<BODY scrolling="no" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" style="margin: 0" onLoad="writeMenus(); clockon();" onResize="if (isNS4) nsResizeHandler()">
<!--BODY marginwidth="0" marginheight="0" style="margin: 0" onLoad="writeMenus()" onResize="if (isNS4) nsResizeHandler()"-->
<table bgcolor="#AAAAFF" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td height="21"><font size="1"> </font></td></tr></table>
|;
print qq|
|;
}
sub section_menu {
my ($menu, $level) = @_;
# build tiered menus
my @menuorder = $menu->access_control(\%myconfig, $level);
$main = 0;
#$pm=0;
while (@menuorder) {
$item = shift @menuorder;
$label = $item;
$ml = $item;
$label =~ s/$level--//g;
$ml =~ s/--.*//;
$label = $locale->text($label);
$label =~ s/ /&nbsp;/g;
$menu->{$item}{target} = "main_window" unless $menu->{$item}{target};
if ($menu->{$item}{submenu}) {
$menu->{$item}{$item} = !$form->{$item};
# Untermenü
if ($mlz{"s$ml"} > 1) { $z = $mlz{"s$ml"}++; $sm = 1; }
else { $z = $sm; $mlz{"s$ml"}++; }
print
qq|menu[$mlz{$ml}][$z] = new Item('$label', '#', '', defLength, 0, |
. ++$pm
. qq|);\n|;
$sm = 1;
print qq|menu[$pm] = new Array();\n|;
print
qq|menu[$pm][0] = new Menu(true, '', 85, 0, 140, defOver, defBack, 'itemBorder', 'itemText');\n|;
map { shift @menuorder } grep /^$item/, @menuorder;
&section_menu($menu, $item);
map { shift @menuorder } grep /^$item/, @menuorder;
} else {
if ($menu->{$item}{module}) {
#Untermenüpunkte
$target = $menu->{$item}{target};
$uri = $menu->menuitemNew(\%myconfig, \%$form, $item, $level);
#print qq|<tr><td class="hover" height="13" >$spacer<img src="image/unterpunkt.png" style="vertical-align:text-top">|.$menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label</a></td></tr>\n|;
print
qq|menu[$pm][$sm] = new Item('$label', '$uri', '$target', defLength, 0, 0);\n|;
$sm++;
} else { # Hauptmenu
my $ml_ = $form->escape($ml);
$mm++;
$pm++;
%mlz = ($ml, $pm, "s$ml", 1);
$sm = 1;
$breit = 20 + length($label) * 5;
print
qq|menu[0][$mm] = new Item(' $label', '#', '', $breit, 10, $pm); \n|;
print qq|menu[$pm] = new Array();\n|;
print
qq|menu[$pm][0] = new Menu(true, '>', 0, 22, 160, defOver, defBack, 'itemBorder', 'itemText');\n|;
#print qq|<tr><td class="bg" height="22" align="left" valign="middle" ><img src="image/$item.png" style="vertical-align:middle">&nbsp;<a href="menu.pl?path=bin/mozilla&action=acc_menu&level=$ml_&login=$form->{login}&password=$form->{password}" class="nohover">$label</a>&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>\n|;
&section_menu($menu, $item);
#print qq|<br>\n|;
}
}
}
}
locale/de/all
'Edit Warehouse' => 'Lager bearbeiten',
'Employee' => 'Bearbeiter',
'Enforce transaction reversal for all dates' => 'Gegenbuchungen f?r jeden Zeitraum aktualisieren',
'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Durch Doppelpunkte getrennte W?hrungsk?rzel mit maximal 3 Buchstaben auff?hren; Ihre eigene LandesW?hrung zuerst (z.B. EUR:USD:CAD)',
'Equity' => 'Passiva',
'Exch' => 'Wechselkurs.',
'Exchangerate' => 'Wechselkurs',
......
'Service Items' => 'Dienstleistungen',
'Service Number missing!' => 'Dienstleistungsnummer fehlt!',
'Services' => 'Dienstleistungen',
'Setup Menu' => '',
'Setup Templates' => 'Vorlagen ausw?hlen',
'Ship' => 'Lagerausgang',
'Ship Merchandise' => 'Waren versenden',
locale/de/am
'Edit Template' => 'Vorlage bearbeiten',
'Edit Warehouse' => 'Lager bearbeiten',
'Enforce transaction reversal for all dates' => 'Gegenbuchungen f?r jeden Zeitraum aktualisieren',
'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Durch Doppelpunkte getrennte W?hrungsk?rzel mit maximal 3 Buchstaben auff?hren; Ihre eigene LandesW?hrung zuerst (z.B. EUR:USD:CAD)',
'Equity' => 'Passiva',
'Expense' => 'Aufwandskonto',
'Expense Account' => 'Aufwandskonto',
......
'Salesman' => 'Vertreter',
'Save' => 'Speichern',
'Service Items' => 'Dienstleistungen',
'Setup Menu' => 'Setup Menu',
'Signature' => 'Unterschrift',
'Standard Industrial Codes' => 'SIC',
'Steuersatz' => 'Steuersatz',
locale/de/locales.pl
&scanmenu("$basedir/$item");
}
}
if ($file eq 'menunew.pl') {
foreach $item (@menufiles) {
&scanmenu("$basedir/$item");
}
}
$file =~ s/\.pl//;
makesymlinks
# Erstellt die benotigten Symlinks
ln -vsf login.pl admin.pl
for i in ap ar bp ca cp ct gl ic ir is menu oe pe rc rp datev licenses fa ustva; do
for i in ap ar bp ca cp ct gl ic ir is menu oe pe rc rp datev licenses fa ustva menunew; do
ln -vsf am.pl $i.pl
done

Auch abrufbar als: Unified diff