Thread: [Linpha-cvs] SF.net SVN: linpha: [4811] trunk/misc/design
Status: Inactive
Brought to you by:
bzrudi
From: <fan...@us...> - 2008-01-15 22:22:17
|
Revision: 4811 http://linpha.svn.sourceforge.net/linpha/?rev=4811&view=rev Author: fangehrn Date: 2008-01-15 14:22:11 -0800 (Tue, 15 Jan 2008) Log Message: ----------- doing some tests with html strict and utf8 Added Paths: ----------- trunk/misc/design/1current/ trunk/misc/design/1current/colorsettings.php trunk/misc/design/1current/csshover.htc trunk/misc/design/1current/expand.gif trunk/misc/design/1current/func.watermark.php trunk/misc/design/1current/global.css trunk/misc/design/1current/home.css trunk/misc/design/1current/index.php trunk/misc/design/1current/roundcorners.php trunk/misc/design/2strictutf8/ trunk/misc/design/2strictutf8/Linpha2.html trunk/misc/design/2strictutf8/colorsettings.php trunk/misc/design/2strictutf8/csshover.htc trunk/misc/design/2strictutf8/expand.gif trunk/misc/design/2strictutf8/func.watermark.php trunk/misc/design/2strictutf8/global.css trunk/misc/design/2strictutf8/home.css trunk/misc/design/2strictutf8/index.php trunk/misc/design/2strictutf8/index2.php trunk/misc/design/2strictutf8/index3.php trunk/misc/design/2strictutf8/roundcorners.php trunk/misc/design/download.png trunk/misc/design/print.png trunk/misc/design/slideshow.png trunk/misc/design/thumb1.gif trunk/misc/design/thumb2.gif trunk/misc/design/thumb3.gif Added: trunk/misc/design/1current/colorsettings.php =================================================================== --- trunk/misc/design/1current/colorsettings.php (rev 0) +++ trunk/misc/design/1current/colorsettings.php 2008-01-15 22:22:11 UTC (rev 4811) @@ -0,0 +1,70 @@ +<?php +header("Content-Type: text/css"); + +/** + * force caching in browser + * works in firefox and internet explorer + */ +Header("Last-Modified: " . gmdate("D, d M Y H:i:s",mktime (0,0,0,1,1,2000)) . " GMT"); // Date in the past +Header("Expires: Mon, 26 Jul 2100 05:00:00 GMT"); // In other words... never expire the image +Header("Cache-Control: max-age=10000000, s-maxage=1000000, proxy-revalidate, must-revalidate"); + + +/* + * Created on 26.10.2006 + * + * To change the template for this generated file go to + * Window - Preferences - PHPeclipse - PHP - Code Templates + */ +?> + +/** + * background color + * #linDivThumbNavi amd #divSlideshowControlsInner used in view_img.html.php + */ + body { + background-color: #<?php echo $_GET['bodybg']; ?>; + } + + #linDivMainOuter, #linDivMetaStaticOuter, #linDivNavigationOuter, /*.linButton,*/ #linDivThumbnaviOuter, #linDivSlideshowControls, .roundAlphabottomInner, .linBackground { + background-color: #<?php echo $_GET['bg']; ?>; + } + +/** + * font color + */ + body, #linDivMenu ul a, #linDivMenu ul span, #linDivMenu ul div { + color: #<?php echo $_GET['font']; ?>; + } + +/** + * albums color + */ + .linDivFolder { + background-color: #<?php echo $_GET['albumsbg']; ?>; + } + +/** + * link/form colors + */ + a:link, a:visited /*, .linButton*/ { + color: #<?php echo $_GET['links']; ?>; + } + a:hover /*, .linButton:hover*/ { + color: #<?php echo $_GET['linkshover']; ?>; + } + + .linForms { + background-color: #<?php echo $_GET['fieldscolor']; ?>; + border: 1px solid grey; + } + +/** + * menu + */ + #linDivMenu ul a:hover, #linDivMenu ul span:hover { + background: #bbbbbb; + } + #linDivMenu ul ul, .linInputMenu { + background-color: #eeeeee; + } Added: trunk/misc/design/1current/csshover.htc =================================================================== --- trunk/misc/design/1current/csshover.htc (rev 0) +++ trunk/misc/design/1current/csshover.htc 2008-01-15 22:22:11 UTC (rev 4811) @@ -0,0 +1,120 @@ +<attach event="ondocumentready" handler="parseStylesheets" /> +<script> +/** + * Whatever:hover - V1.42.060206 - hover & active + * ------------------------------------------------------------ + * (c) 2005 - Peter Nederlof + * Peterned - http://www.xs4all.nl/~peterned/ + * License - http://creativecommons.org/licenses/LGPL/2.1/ + * + * Whatever:hover is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Whatever:hover 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 + * Lesser General Public License for more details. + * + * Credits and thanks to: + * Arnoud Berendsen, Martin Reurings, Robert Hanson + * + * howto: body { behavior:url("csshover.htc"); } + * ------------------------------------------------------------ + */ + +var csshoverReg = /(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i, +currentSheet, doc = window.document, hoverEvents = [], activators = { + onhover:{on:'onmouseover', off:'onmouseout'}, + onactive:{on:'onmousedown', off:'onmouseup'} +} + +function parseStylesheets() { + if(!/MSIE (5|6)/.test(navigator.userAgent)) return; + window.attachEvent('onunload', unhookHoverEvents); + var sheets = doc.styleSheets, l = sheets.length; + for(var i=0; i<l; i++) + parseStylesheet(sheets[i]); +} + function parseStylesheet(sheet) { + if(sheet.imports) { + try { + var imports = sheet.imports, l = imports.length; + for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]); + } catch(securityException){} + } + + try { + var rules = (currentSheet = sheet).rules, l = rules.length; + for(var j=0; j<l; j++) parseCSSRule(rules[j]); + } catch(securityException){} + } + + function parseCSSRule(rule) { + var select = rule.selectorText, style = rule.style.cssText; + if(!csshoverReg.test(select) || !style) return; + + var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1'); + var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo); + var className = (/\.([a-z0-9_-]*on(hover|active))/i).exec(newSelect)[1]; + var affected = select.replace(/:(hover|active).*$/, ''); + var elements = getElementsBySelect(affected); + if(elements.length == 0) return; + + currentSheet.addRule(newSelect, style); + for(var i=0; i<elements.length; i++) + new HoverElement(elements[i], className, activators[pseudo]); + } + +function HoverElement(node, className, events) { + if(!node.hovers) node.hovers = {}; + if(node.hovers[className]) return; + node.hovers[className] = true; + hookHoverEvent(node, events.on, function() { node.className += ' ' + className; }); + hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); }); +} + function hookHoverEvent(node, type, handler) { + node.attachEvent(type, handler); + hoverEvents[hoverEvents.length] = { + node:node, type:type, handler:handler + }; + } + + function unhookHoverEvents() { + for(var e,i=0; i<hoverEvents.length; i++) { + e = hoverEvents[i]; + e.node.detachEvent(e.type, e.handler); + } + } + +function getElementsBySelect(rule) { + var parts, nodes = [doc]; + parts = rule.split(' '); + for(var i=0; i<parts.length; i++) { + nodes = getSelectedNodes(parts[i], nodes); + } return nodes; +} + function getSelectedNodes(select, elements) { + var result, node, nodes = []; + var identify = (/\#([a-z0-9_-]+)/i).exec(select); + if(identify) { + var element = doc.getElementById(identify[1]); + return element? [element]:nodes; + } + + var classname = (/\.([a-z0-9_-]+)/i).exec(select); + var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, ''); + var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false; + for(var i=0; i<elements.length; i++) { + result = tagName? elements[i].all.tags(tagName):elements[i].all; + for(var j=0; j<result.length; j++) { + node = result[j]; + if(classReg && !classReg.test(node.className)) continue; + nodes[nodes.length] = node; + } + } + + return nodes; + } +</script> \ No newline at end of file Added: trunk/misc/design/1current/expand.gif =================================================================== (Binary files differ) Property changes on: trunk/misc/design/1current/expand.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/misc/design/1current/func.watermark.php =================================================================== --- trunk/misc/design/1current/func.watermark.php (rev 0) +++ trunk/misc/design/1current/func.watermark.php 2008-01-15 22:22:11 UTC (rev 4811) @@ -0,0 +1,547 @@ +<?php +/* +* Copyright (c) 2004 Heiko Rutenbeck <bz...@tu...> +* +* 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. +*/ + +if(!defined('LINPHA_DIR')) { exit(1); } + +class LinWatermark +{ + +/** +* @author flo +* @todo adapt from linpha1 +*/ +function needWatermark($imgid) +{ + if( $GLOBALS['linpha']->sql->config->value['plugins_active_wm'] + && $GLOBALS['linpha']->sql->config->value['plugins_wm_active'] + && !check_permissions('watermark',$imgid) ) + { + return true; + } else { + return false; + } +} + +/** + * returns array with all the configs and the default values, they are only defined here + */ +function getWatermarkArray() +{ + return array ( + 'wm_active' => "0", + 'wm_watermark' => "0", + 'wm_text' => "Copyright 2007", + 'wm_font' => "", + 'wm_fontsize' => "20", + 'wm_fontcolor' => "white", + 'wm_align' => "southwest", + 'wm_horizontal' => "0", + 'wm_vertical' => "0", + 'wm_enable_shadow' => "1", + 'wm_shadow_size' => "1", + 'wm_shadow_fontsize' => "20", + 'wm_shadow_color' => "black", + 'wm_enable_rectangle' => "1", + 'wm_rectangle_color' => "darkgrey", + 'wm_height' => "30", + 'wm_width' => "145", + 'wm_img_img' => "", + 'wm_dissolve' => "75%", + 'wm_resize' => "30" + ); +} + +function readWatermark() +{ + $arr_config = LinWatermark::getWatermarkArray(); + while(list($name,$value) = each($arr_config) ) + { + $arr_read[$name] = $GLOBALS['linpha']->sql->config->value['plugins_'.$name]; + } + return $arr_read; +} + +function updateWatermark() +{ + $arr_config = LinWatermark::getWatermarkArray(); + while(list($name,$value) = each($arr_config) ) + { + $GLOBALS['linpha']->sql->config->updateConfig($name,$_POST[$name]); + } +} + +/** + * restore watermark settings to initial settings or to examples + */ +function restoreWatermark() +{ + global $wm_restore_to; + + $arr_config = LinWatermark::getWatermarkArray(); + switch($_POST['setdefault']) + { + case 'initial': + break; + case 'settings1': + $arr_config['wm_watermark'] = 1; + $arr_config['wm_text'] = "(C) 2004 linpha.sf.net"; + $arr_config['wm_fontsize'] = "10"; + $arr_config['wm_fontcolor'] = "white"; + $arr_config['wm_align'] = "south"; + $arr_config['wm_horizontal'] = "0"; + $arr_config['wm_vertical'] = "0"; + $arr_config['wm_enable_rectangle'] = "1"; + $arr_config['wm_rectangle_color'] = "darkgrey"; + $arr_config['wm_enable_shadow'] = "2"; + $arr_config['wm_height'] = "20"; + $arr_config['wm_width'] = "2000"; + $arr_config['wm_resize'] = "no"; + break; + case 'settings2': + $arr_config['wm_watermark'] = 2; + $arr_config['wm_dissolve'] = "65%"; + $arr_config['wm_align'] = "southwest"; + $arr_config['wm_img_img'] = "linpha.png"; + $arr_config['wm_horizontal'] = "10"; + $arr_config['wm_vertical'] = "10"; + $arr_config['wm_resize'] = "30"; + + break; + case 'settings3': // maybe better for gd lib than for convert + $arr_config['wm_watermark'] = 1; + $arr_config['wm_dissolve'] = "100%"; + $arr_config['wm_align'] = "southwest"; + $arr_config['wm_text'] = "(C) 2004 linpha.sf.net"; + $arr_config['wm_fontsize'] = "20"; + $arr_config['wm_fontcolor'] = "white"; + $arr_config['wm_horizontal'] = "0"; + $arr_config['wm_vertical'] = "0"; + $arr_config['wm_enable_rectangle'] = "1"; + $arr_config['wm_rectangle_color'] = "darkgrey"; + $arr_config['wm_enable_shadow'] = "1"; + $arr_config['wm_shadow_size'] = "5"; + $arr_config['wm_shadow_fontsize'] = "2"; + $arr_config['wm_height'] = "30"; + $arr_config['wm_width'] = "260"; + $arr_config['wm_resize'] = "no"; + break; + } + while(list($name,$value) = each($arr_config) ) + { + $GLOBALS['linpha']->sql->config->updateConfig($name,$value); + } +} + +/** + * calcs the new height and width of the resized watermark + * $w, $h: size of the big image + * $org_width, $org_height: size of the watermark rectangle/image + * $resize: resize factor in percent + * + */ +function wmArrResized($w,$h,$org_width,$org_height,$resize) +{ + $arr_resized['w'] = round($w * $resize/100); + $arr_resized['h'] = round($h * $resize/100); + + $no_increase = 0; + $array = LinImage::scaleToFit($org_height,$org_width,$arr_resized['h'],$arr_resized['w'],$no_increase); + + //error_log('w: '.$w.' h: '.$h.' arr_resized_w: '.$arr_resized['w'].' arr_resized_h: '.$arr_resized['h']. + // ' org_w: '.$org_width.' org_h: '.$org_height.' scaleToFit w: '.$array['w'].' h: '.$array['h']); + + return $array; +} + +/** + * list with many available colors + * http://mail.gnu.org/archive/html/emacs-diffs/2002-06/msg00158.html + * @uses getRgbFromAll() + */ +static $Colors = array( + 'aliceblue'=>'#f0f8ff', + 'antiquewhite'=>'#faebd7', + 'aquamarine'=>'#7fffd4', + 'azure'=>'#f0ffff', + 'beige'=>'#f5f5dc', + 'bisque'=>'#ffe4c4', + 'black'=>'#000000', + 'blanchedalmond'=>'#ffebcd', + 'blue'=>'#0000ff', + 'blueviolet'=>'#8a2be2', + 'brown'=>'#a52a2a', + 'burlywood'=>'#deb887', + 'cadetblue'=>'#5f9ea0', + 'chartreuse'=>'#7fff00', + 'chocolate'=>'#d2691e', + 'coral'=>'#ff7f50', + 'cornflowerblue'=>'#6495ed', + 'cornsilk'=>'#fff8dc', + 'cyan'=>'#00ffff', + 'darkblue'=>'#00008b', + 'darkcyan'=>'#008b8b', + 'darkgoldenrod'=>'#b886011', + 'darkgray'=>'#a9a9a9', + 'darkgreen'=>'#006400', + 'darkgrey'=>'#a9a9a9', + 'darkkhaki'=>'#bdb76b', + 'darkmagenta'=>'#8b008b', + 'darkolivegreen'=>'#556b2f', + 'darkorange'=>'#ff8c00', + 'darkorchid'=>'#9932cc', + 'darkred'=>'#8b0000', + 'darksalmon'=>'#e9967a', + 'darkseagreen'=>'#8fbc8f', + 'darkslateblue'=>'#483d8b', + 'darkslategray'=>'#2f4f4f', + 'darkslategrey'=>'#2f4f4f', + 'darkturquoise'=>'#00ced1', + 'darkviolet'=>'#9400d3', + 'deeppink'=>'#ff1493', + 'deepskyblue'=>'#00bfff', + 'dimgray'=>'#696969', + 'dimgrey'=>'#696969', + 'dodgerblue'=>'#1e90ff', + 'firebrick'=>'#b22222', + 'floralwhite'=>'#fffaf0', + 'forestgreen'=>'#228b22', + 'gainsboro'=>'#dcdcdc', + 'ghostwhite'=>'#f8f8ff', + 'gold'=>'#ffd700', + 'goldenrod'=>'#daa520', + 'gray'=>'#bebebe', + 'green'=>'#00ff00', + 'greenyellow'=>'#adff2f', + 'honeydew'=>'#f0fff0', + 'hotpink'=>'#ff69b4', + 'indianred'=>'#cd5c5c', + 'ivory'=>'#fffff0', + 'khaki'=>'#f0e68c', + 'lavender'=>'#e6e6fa', + 'lavenderblush'=>'#fff0f5', + 'lawngreen'=>'#7cfc00', + 'lemonchiffon'=>'#fffacd', + 'lightblue'=>'#add8e6', + 'lightcoral'=>'#f08080', + 'lightcyan'=>'#e0ffff', + 'lightgoldenrod'=>'#eedd82', + 'lightgoldenrodyellow'=>'#fafad2', + 'lightgray'=>'#d3d3d3', + 'lightgreen'=>'#90ee90', + 'lightgrey'=>'#d3d3d3', + 'lightpink'=>'#ffb6c1', + 'lightred'=>'#ffc8c8', + 'lightsalmon'=>'#ffa07a', + 'lightseagreen'=>'#20b2aa', + 'lightskyblue'=>'#87cefa', + 'lightslateblue'=>'#8470ff', + 'lightslategray'=>'#778899', + 'lightsteelblue'=>'#b0c4de', + 'lightyellow'=>'#ffffe0', + 'limegreen'=>'#32cd32', + 'linen'=>'#faf0e6', + 'magenta'=>'#ff00ff', + 'maroon'=>'#b03060', + 'mediumaquamarine'=>'#66cdaa', + 'mediumblue'=>'#0000cd', + 'mediumorchid'=>'#ba55d3', + 'mediumpurple'=>'#9370db', + 'mediumseagreen'=>'#3cb371', + 'mediumslateblue'=>'#7b68ee', + 'mediumspringgreen'=>'#00fa9a', + 'mediumturquoise'=>'#48d1cc', + 'mediumvioletred'=>'#c71585', + 'midnightblue'=>'#191970', + 'mintcream'=>'#f5fffa', + 'mistyrose'=>'#ffe4e1', + 'moccasin'=>'#ffe4b5', + 'navajowhite'=>'#ffdead', + 'navy'=>'#000080', + 'navyblue'=>'#000080', + 'oldlace'=>'#fdf5e6', + 'olivedrab'=>'#6b8e23', + 'orange'=>'#ffa500', + 'orangered'=>'#ff4500', + 'orchid'=>'#da70d6', + 'palegoldenrod'=>'#eee8aa', + 'palegreen'=>'#98fb98', + 'paleturquoise'=>'#afeeee', + 'palevioletred'=>'#db7093', + 'papayawhip'=>'#ffefd5', + 'peachpuff'=>'#ffdab9', + 'peru'=>'#cd853f', + 'pink'=>'#ffc0cb', + 'plum'=>'#dda0dd', + 'powderblue'=>'#b0e0e6', + 'purple'=>'#a020f0', + 'red'=>'#ff0000', + 'rosybrown'=>'#bc8f8f', + 'royalblue'=>'#4169e1', + 'saddlebrown'=>'#8b4513', + 'salmon'=>'#fa8072', + 'sandybrown'=>'#f4a460', + 'seagreen'=>'#2e8b57', + 'seashell'=>'#fff5ee', + 'sienna'=>'#a0522d', + 'skyblue'=>'#87ceeb', + 'slateblue'=>'#6a5acd', + 'slategray'=>'#708090', + 'slategrey'=>'#708090', + 'snow'=>'#fffafa', + 'springgreen'=>'#00ff7f', + 'steelblue'=>'#4682b4', + 'tan'=>'#d2b48c', + 'thistle'=>'#d8bfd8', + 'tomato'=>'#ff6347', + 'turquoise'=>'#40e0d0', + 'violet'=>'#ee82ee', + 'violetred'=>'#d02090', + 'wheat'=>'#f5deb3', + 'white'=>'#ffffff', + 'yellow'=>'#ffff00', + 'yellowgreen'=>'#9acd32' +); + +/** + * not used anymore + */ +function getHtmlColorFromRgb($r,$g,$b) +{ + if(strlen(dechex($r))==1) { + $r = '0'.$r; + } else { + $r = dechex($r); + } + if(strlen(dechex($g))==1) { + $g = '0'.$g; + } else { + $g = dechex($g); + } + if(strlen(dechex($b))==1) { + $b = '0'.$b; + } else { + $b = dechex($b); + } + + return '#'.$r.$g.$b; +} + +/** + * used to check if it is a valid html color + * @uses isHtmlColor() + */ +function everyCharIsHex($string) +{ + for($i=0;$i<strlen($string);$i++) + { + $char = substr($string,$i,1); + $valid_color = false; + + if($char == "0") { // zero makes problems... '== 0' and '== "0"' is not the same... + $valid_color = true; + } + for($n=1;$n<=9;$n++) + { + if($char == $n) { + $valid_color = true; + } + } + + for($n='a';$n<='f';$n++) + { + if($char === $n) { + $valid_color = true; + } + } + + for($n='A';$n<='F';$n++) + { + if($char === $n) { + $valid_color = true; + } + } + if(!$valid_color) { + return 0; + } + } + return 1; +} + +/** + * used to check if it is a valid html color + * @uses getRgbFromAll() + */ +function isHtmlColor($string) +{ + switch(strlen($string)) + { + case 6: + if(LinWatermark::everyCharIsHex($string)) { + return 1; + } + break; + case 7: + if(substr($string,0,1)=="#") { + if(LinWatermark::everyCharIsHex(substr($string,1,6))) { + return 1; + } + } + break; + } + return 0; +} + +/** + * converts a html color to an array with the rgb values + * it doesn't matter if the html color is '#00FF00' or '00FF00' + * @uses getRgbFromAll() + */ +function getRgbFromHtml($string) +{ + switch(strlen($string)) + { + case 6: + break; + case 7: + $string = substr($string,1,6); + break; + } + $r_hex = substr($string,0,2); + $g_hex = substr($string,2,2); + $b_hex = substr($string,4,2); + $arr['r'] = hexdec($r_hex); + $arr['g'] = hexdec($g_hex); + $arr['b'] = hexdec($b_hex); + return $arr; +} + +/** + * returns an array with the rgb values + * it doesn't matter if the argument is 'darkblue', '#00FF55' or '00FF55' + * if it isn't a correct color, the color (0,0,0) is returned + * + * @uses watermark_gd() + */ +function getRgbFromAll($string) +{ + if( isset( LinWatermark::$Colors[$string]) ) + { + return LinWatermark::getRgbFromHtml( LinWatermark::$Colors[$string] ); + } + elseif(LinWatermark::isHtmlColor($string) ) + { + return LinWatermark::getRgbFromHtml( $string ); + } + else + { + array('r'=>0,'g'=>0,'b'=>0); + } +} + +/** + * return html color without '#' + * + * used in linpha2 - admin - settings_layout + */ +function getHtmlFromAll($string) +{ + if(LinWatermark::isHtmlColor($string)) + { + if(substr($string,0,1)=="#") + { + return substr($string,1,6); + } + else + { + return $string; + } + } + else + { + if( isset( LinWatermark::$Colors[$string]) ) + { + return substr(LinWatermark::$Colors[$string],1,6); + } + else + { + return 'ffffff'; + } + } +} + +/** + * @uses watermark_gd() + * calcs the position in pixel with a given align + * src_w, src_h: width and height from the textfield (or the small watermark image) + * dst_w, dst_h: width and height from the image + * pos_x, pos_y: additional adjust for the image + * + */ +function calcAlign($align, $src_w, $src_h, $dst_w, $dst_h, $pos_x, $pos_y) +{ + + switch($align) + { + case "center": + $arr_pos['x'] = ($dst_w-$src_w)/2+($pos_x); + $arr_pos['y'] = ($dst_h-$src_h)/2+($pos_y); + break; + case "east": + $arr_pos['x'] = $dst_w-$src_w+($pos_x); + $arr_pos['y'] = ($dst_h-$src_h)/2+($pos_y); + break; + case "west": + $arr_pos['x'] = $pos_x; + $arr_pos['y'] = ($dst_h-$src_h)/2+($pos_y); + break; + case "north": + $arr_pos['x'] = ($dst_w-$src_w)/2+($pos_x); + $arr_pos['y'] = $pos_y; + break; + case "south": + $arr_pos['x'] = ($dst_w-$src_w)/2+($pos_x); + $arr_pos['y'] = $dst_h-$src_h+($pos_y); + break; + case "northeast": + $arr_pos['x'] = $dst_w-$src_w+($pos_x); + $arr_pos['y'] = $pos_y; + break; + case "northwest": + $arr_pos['x'] = $pos_x; + $arr_pos['y'] = $pos_y; + break; + case "southwest": + $arr_pos['x'] = $pos_x; + $arr_pos['y'] = $dst_h-$src_h+($pos_y); + break; + case "southeast": + $arr_pos['x'] = $dst_w-$src_w+($pos_x); + $arr_pos['y'] = $dst_h-$src_h+($pos_y); + break; + default: + $arr_pos['x'] = $pos_x; + $arr_pos['y'] = $pos_y; + break; + + } + return $arr_pos; +} + +} +?> \ No newline at end of file Added: trunk/misc/design/1current/global.css =================================================================== --- trunk/misc/design/1current/global.css (rev 0) +++ trunk/misc/design/1current/global.css 2008-01-15 22:22:11 UTC (rev 4811) @@ -0,0 +1,343 @@ +<!-- +/** + * common definitions + * All 'em' calculations are based on 1 px = 0.0626em + */ + + #linBody { + font-family: arial, helvetica, sans-serif; + margin: 10px; + padding: 0px; + } + + + h1.linStyle { + font-size: 1.5em; + font-family: Verdana, Arial, Helvetica, sans-serif; + margin: 0px; + margin-top: 0px; + margin-bottom: 5px; + padding: 0px; + } + + h2.linStyle { + font-size: 1.2em; + font-family: Verdana, Arial, Helvetica, sans-serif; + margin: 0px; + margin-top: 0px; + margin-bottom: 5px; + padding: 0px; + } + + /** + * link button + */ + .linButton { + /*cursor: pointer; + border: 0; + font-size: 0.8em; + text-decoration: underline;*/ + } + + +/** + * title + */ + #linDivTitle + { + margin: 0; + margin-bottom: 20px; + margin-left: 90px; + + font-size: 2em; + } + #linDivTitle a:link, #linDivTitle a:visited, #linDivTitle a:hover + { + color: #444444; + text-decoration: none; + } + #linDivTitle a:hover + { + text-decoration: underline; + } + +/** + * navigation + */ + #linDivNavigationOuter { + margin: 0; + margin-bottom: 10px; + padding: 0; + } + #linDivNavigation + { + margin: 0; + padding: 5px; + } + +/** + * main + */ + #linDivMainOuter { + margin: 0; + padding: 0; + } + #linDivMain { + margin: 0; + padding: 0px; + padding-left: 10px; + padding-right: 10px; + } + +/** + * syslog + */ + #linDivSyslog { + position: absolute; + left: 15px; + top: 15px; + width: auto; + + z-index: 10; + + margin: 0; + padding: 5px; + + border: 1px solid #FFD500; + background-color: #FFFF81; + } + + #linDivSyslogClose { + position: absolute; + right: 0; + top: 0; + + z-index: 10; + + margin: 0; + padding: 0; + + background-color: #ffd5ee; + border: 1px solid #f09; + } + /** + * popup + */ + .linPopupWindow { + position: absolute; + top: 130px; + left: 40px; + width: 500px; + + background-color: #d4d0c8; + border: 2px outset grey; + + } + .linPopupTitleBar { + width: 100%; + height: 20px; + + background-color: #1e397b; + border-bottom: 1px solid black; + } + .linPopupClose { + position: absolute; + right: 0; + top: 0; + height: 20px; + width: 20px; + /*padding-left: 5px; + padding-right: 5px;*/ + + font-weight: bold; + /*background-color: #d4d0c8;*/ + + } + .linPopupCloseButton { + margin: 0; + padding: 0; + height: 20px; + width: 20px; + } + .linPopupText { + height: 350px; + + overflow: auto; + + padding: 5px; + } + +/** + * folder (used in home view, and maybe as subfolders) + * background-color and border-color are set in colorsettings.php + */ + .linDivFolder { + margin: 2px; + margin-left: 15px; + margin-bottom: 15px; + padding: 0; + + width: 700px; + } + + .linDivThumbnail { + height: 140px; + float: left; + } + + .linImgFolderThumbnail { + margin: 0; + margin-left: 20px; + margin-right: 30px; + margin-top: 5px; + padding: 0; + + width: 130px; + height: 130px; + + border: 0; + } + + .linDivFolderText { + margin: 0; + padding: 5px; + } + + .linDivFolderComment { + overflow: auto; + max-height: 300px; + + margin: 0; + margin-top: 10px; + margin-bottom: 10px; + padding: 0; + + /* word-wrap: break-word; fix ie to force width, but creates warnings in firefox !!! */ + } + + +/** + * menu + */ + #linDivMenu { + margin: 0; + padding: 0; + + width: 100%; + float: left; + } + + /** + * icons + */ + #linDivMenu div { + margin: 0; + margin-left: 5px; + margin-right: 5px; + padding: 0; + float: left; + } + #linDivMenu div a { + margin: 0; + padding: 0; + float: left; + } + + /** + * first level elements + */ + #linDivMenu ul { + list-style: none; + + margin: 0; + margin-left: 5px; + margin-right: 5px; + padding: 0; + + width: auto; + float: left; + + border-top: 1px solid #000000; + + white-space: nowrap; + } + #linDivMenu ul a, #linDivMenu ul span, #linDivMenu ul div { + display: block; + + margin: 0; + padding-left: 10px; + padding-right: 10px; + padding-top: 2px; + padding-bottom: 2px; + + text-align: center; + text-decoration: none; + + } + #linDivMenu ul span { + background: url(./expand.gif) no-repeat 100% 100%; + } + + + /** + * second and more level elements + */ + #linDivMenu ul ul { + position: absolute; + z-index: 500; + + border: 0; + + /** + * relativ to parent element! be careful + */ + margin: 0; + padding: 0; + font-size: 1em; + + } + #linDivMenu ul ul a, #linDivMenu ul ul span, #linDivMenu ul ul div { + margin: 0; + padding-left: 5px; + padding-right: 15px; + padding-top: 2px; + padding-bottom: 2px; + + border-width: 1px; + border-style: solid; + border-color: #ccc #888 #555 #bbb; + text-align: left; + } + + /** + * third stage, switch to horizontal menu entries + */ + #linDivMenu ul ul ul { + position: absolute; + top: 0; + left: 100%; + } + + + /** + * the most important thing + * enable/disable submenus + */ + #linDivMenu ul ul, + #linDivMenu ul li:hover ul ul, + #linDivMenu ul ul li:hover ul ul + {display: none;} + + #linDivMenu ul li:hover ul, + #linDivMenu ul ul li:hover ul, + #linDivMenu ul ul ul li:hover ul + {display: block;} + + #linDivMenu li {position: relative;} + + +/** + * end menu + */ + +--> \ No newline at end of file Added: trunk/misc/design/1current/home.css =================================================================== --- trunk/misc/design/1current/home.css (rev 0) +++ trunk/misc/design/1current/home.css 2008-01-15 22:22:11 UTC (rev 4811) @@ -0,0 +1,18 @@ + +hr.linStyle { + clear: both; +} + +.linDivRandomimg, .linDivNewimg { + float: left; + margin-left: 40px; +} + +.linImgRandomimg, .linImgNewimg { + border: 0; +} + +.linDivFolder a +{ + text-decoration: none; +} \ No newline at end of file Added: trunk/misc/design/1current/index.php =================================================================== --- trunk/misc/design/1current/index.php (rev 0) +++ trunk/misc/design/1current/index.php 2008-01-15 22:22:11 UTC (rev 4811) @@ -0,0 +1,242 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Linpha 2.0</title> + +<!-- css includes --> + +<link rel='stylesheet' href='./colorsettings.php?bg=87CEFA&bodybg=DDDDDD&font=000000&albumsbg=D5FCF4&links=005388&linkshover=666666&fieldscolor=CCCCCC' type='text/css'> +<link rel='stylesheet' href='./global.css' type='text/css'> +<link rel='stylesheet' href='./home.css' type='text/css'> + + <!--[if IE]> + <style type="text/css" media="screen"> + #menu ul { width: 1em; } /* this will be a *min* width */ + #menu ul ul { width: 12em; } + #menu ul li { float: left; width: 100%; } + body { behavior: url(./csshover.htc); font-size: 100%; } + #menu ul li a { height: 1%; } + #menu a, #menu span { font: bold 0.7em/1.4em arial, helvetica, sans-serif; } + </style> + <![endif]--> + +</head> + + +<body id="linBody"> + +<!-- syslog --> +<div id="linDivSyslog" style="display: none;"> + <div id="linDivSyslogClose"><a href="javascript:myLinGlobal.closeSyslog();">X</a></div> + <b>Linpha Syslog:</b><br /> + <div id="linDivSyslogText"></div> +</div> + + +<!-- title/navigation --> + +<div id="linDivTitle">Linpha 2.0 :: <a href="/linpha2/?&linCat=alb&linId=0">></a> </div> + + +<!-- menu --> +<div id="linDivMenu"> + <ul style="margin-left: 50px;"> + <li><a href="/linpha2/?&linCat=alb">Home</a></li> + </ul> + <ul> + <li><span>Suche </span> + <ul> + <li><a href="/linpha2/?&linCat=search">Extended Search</a></li> + <li> + <div> + <form method="GET" action="/linpha2/?&linCat=search"> + <input type="text" class="linForms" name="search_text" value="" /> + <input type="hidden" name="button[meta][all]" value="1" /> + + <input type="hidden" name="cmd" value="search" /> + <input type="hidden" name="linCat" value="search" /> + <input type="submit" name="submit" class="linButton linInputMenu" value="Suche" /> + </form> + </div> + </li> + </ul> + </li> + </ul> + <ul> + <li> + <span>Login </span> + <ul id="linMenuLogin"> + <li> + <div> + <form action="" method="POST" onsubmit="new Ajax.Updater('linDivMenu', LINPHA_CLIENT + '/?linCat=ajax&reloadmenu&linId='+IdCurrent, {method: 'post', asynchronous:true, parameters:Form.serialize(this), evalScripts:true}); return false;"> + <!-- login infos --> + <br /> + <label for="linFormUsername" style="display: block; float: left; width: 80px;">Username: </label><input style="width: 105px;" class="linForms" type="text" name="username" value="" id="linFormUsername" /><br /> + <label for="linFormPassword" style="display: block; float: left; width: 80px;">Password: </label><input style="width: 105px;" class="linForms" type="password" name="password" value="" id="linFormPassword" /><br /> + <input type="checkbox" name="rememberme" value="true" id="linFormCheckboxRemember" /><label for="linFormCheckboxRemember">Remember Me</label> <input type="hidden" name="cmd" value="login" /> + <input type="submit" name="submit" class="linButton linInputMenu" value="Login" /><br /><br /> + <div style="font-size: smaller; border: 0px;">Um sich anmelden zu können, müssen Cookies aktiviert sein.</div> + </form> + </div> + </li> + </ul> + </li> + </ul> + <ul> + <li><span>More </span> + <ul id="linMenuMore"> + <li><span>Basket </span> + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&admin_cmd=basket_add_all">Add All To Basket</a></li> + + <li><a href="/linpha2/?&linCat=alb&linId=4&view=basket">Switch To Basket View</a></li> + <li><a href="/linpha2/?&linCat=basket">Open Basket (0 Images)</a></li> + </ul> + </li> + <li><span>Ansicht </span> + <ul> + <li><span>Sort </span> + + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Name Asc">Name Asc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Name Desc">Name Desc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Date Asc">Date Asc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Date Desc">Date Desc</a></li> + </ul> + </li> + + <li><span>Ansicht </span> + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&view=thumb">Normal</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&view=thumbdetail">Detail</a></li> + </ul> + </li> + <li><span>Thumb Size </span> + + <ul> + <li><a href="javascript:myLinThumbnails.setTnSize(50)">50 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(75)">75 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(100)">100 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(150)">150 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(200)">200 Pixel</a></li> + + <li><a href="javascript:myLinThumbnails.setTnSize(250)">250 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(300)">300 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(400)">400 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(500)">500 Pixel</a></li> + </ul> + </li> + <li><span>Thumb Nr </span> + + <ul> + <li><a href="javascript:myLinThumbnails.setNrImages('auto')">auto</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('10')">10</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('25')">25</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('50')">50</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('100')">100</a></li> + + <li><a href="javascript:myLinThumbnails.setNrImages('200')">200</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('all')">all</a></li> + </ul> + </li> + </ul> + </li> + </ul> + </li> + </ul> + <!-- icons --> + <div> + <a href="javascript:myLinThumbnails.loadSlideshow()"><img src="../slideshow.png" border="0" title="Play Slideshow" /></a> + </div> +</div> + +<div style="clear: both;"></div> +<!-- end menu --> + + +<div id="linDivMainOuter"> + <div style="background: url(./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=tr) no-repeat top right;"> + <img src="./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=tl" alt="" width="15" height="15" /> + </div> + + <div id="linDivMain"> + + <h1 class="linStyle">Willkommen</h1>Hi, this is the home of "The PHP Photo Archive" <a href="http://linpha.sf.net">aka LinPHA</a>.<br /> <br /> + + + <!-- Random Images --> + + <!-- New Images --> + + <!-- Browse by Date --> + + <!-- Albums --> + <hr class="linStyle" /> + + <h2>Test Zeichenkodierung</h2> + \xC4\xD6\xDC \xE4\xF6\xFC \xE9\xE8\xE0 $\xA3\x80@\xA2\xB0\xA7 + + <br /><br /> + + <h1 class="linStyle">Alben</h1> + + <div class="linDivFolder"> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tr) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tl" alt="" width="15" height="15" /> + </div> + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb1.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2005.05.14-16 Barcelona</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=br) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=bl" alt="" width="15" height="15" /> + </div> + </div> + + <div class="linDivFolder"> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tr) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tl" alt="" width="15" height="15" /> + </div> + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb2.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.07-14-28 Fuerteventura</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=br) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=bl" alt="" width="15" height="15" /> + </div> + </div> + + <div class="linDivFolder"> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tr) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tl" alt="" width="15" height="15" /> + </div> + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb3.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.12.15-16 Skifahren Samnaun</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=br) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=bl" alt="" width="15" height="15" /> + </div> + </div> + + </div> + + <div style="background: url(./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=br) no-repeat top right;"> + <img src="./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=bl" alt="" width="15" height="15" /> + </div> +</div> +</body> +</html> + Added: trunk/misc/design/1current/roundcorners.php =================================================================== --- trunk/misc/design/1current/roundcorners.php (rev 0) +++ trunk/misc/design/1current/roundcorners.php 2008-01-15 22:22:11 UTC (rev 4811) @@ -0,0 +1,87 @@ +<?php +if(!defined('LINPHA_DIR')) { define('LINPHA_DIR','../..'); } + +include_once( './func.watermark.php' ); + +if(!isset($_GET['color'])) +{ + $_GET['color'] = 'orange'; +} + +if(!isset($_GET['bgcolor'])) +{ + $_GET['bgcolor'] = 'white'; +} + +if(!isset($_GET['align'])) +{ + $_GET['align'] = 'tl'; +} + +if(!isset($_GET['size'])) +{ + $size = 15; +} +else +{ + $size = $_GET['size']; +} + +switch($_GET['align']) +{ +case 'tl': $cx = $size; $cy = $size; $workaround = 0; break; +case 'tr': $cx = -1; $cy = $size; $workaround = 0; break; +case 'bl': $cx = $size; $cy = 0; $workaround = 1; break; +case 'br': $cx = -1; $cy = -1; $workaround = 1; break; +} + +// create image +$image = imagecreatetruecolor($size, $size); + +// create colors +$rgb = LinWatermark::getRgbFromAll($_GET['color']); +$color = imagecolorallocate($image, $rgb['r'], $rgb['g'], $rgb['b']); + +if(isset($_GET['alpha'])) +{ + imageAlphaBlending($image, false); + imageSaveAlpha($image, true); + $bgcolor = imagecolorallocatealpha($image, 0, 0, 0, 127); +} +else +{ + $rgb = LinWatermark::getRgbFromAll($_GET['bgcolor']); + $bgcolor = imagecolorallocate($image, $rgb['r'], $rgb['g'], $rgb['b']); +} + +// fill image with background color +imagefill($image, 0, 0, $bgcolor); + + +// draw circly +imagefilledellipse($image, $cx, $cy, ($size*2), ($size*2), $color); + +// workaround +if($workaround) +{ + imageline($image, 0, 0, $size-1, 0, $color ); +} + +// flush image +Header('Content-type: image/png'); + +/** + * force caching in browser + * works in firefox and internet explorer + */ +Header("Last-Modified: " . gmdate("D, d M Y H:i:s",mktime (0,0,0,1,1,2000)) . " GMT"); // Date in the past +Header("Expires: Mon, 26 Jul 2100 05:00:00 GMT"); // In other words... never expire the image +Header("Cache-Control: max-age=10000000, s-maxage=1000000, proxy-revalidate, must-revalidate"); + + + +imagepng($image); +imagedestroy($image); + + +?> \ No newline at end of file Added: trunk/misc/design/2strictutf8/Linpha2.html =================================================================== --- trunk/misc/design/2strictutf8/Linpha2.html (rev 0) +++ trunk/misc/design/2strictutf8/Linpha2.html 2008-01-15 22:22:11 UTC (rev 4811) @@ -0,0 +1,246 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="content-type" content="text/html; charset=UTF-8"> + +<title>Linpha 2.0</title> + +<!-- css includes --> + +<link rel='stylesheet' href='./colorsettings.php?bg=87CEFA&bodybg=DDDDDD&font=000000&albumsbg=D5FCF4&links=005388&linkshover=666666&fieldscolor=CCCCCC' type='text/css'> +<link rel='stylesheet' href='./global.css' type='text/css'> +<link rel='stylesheet' href='./home.css' type='text/css'> + + <!--[if IE]> + <style type="text/css" media="screen"> + #menu ul { width: 1em; } /* this will be a *min* width */ + #menu ul ul { width: 12em; } + #menu ul li { float: left; width: 100%; } + body { behavior: url(./csshover.htc); font-size: 100%; } + #menu ul li a { height: 1%; } + #menu a, #menu span { font: bold 0.7em/1.4em arial, helvetica, sans-serif; } + </style> + <![endif]--> + +</head> + + +<body id="linBody"> + +<!-- syslog --> +<div id="linDivSyslog" style="display: none;"> + <div id="linDivSyslogClose"><a href="javascript:myLinGlobal.closeSyslog();">X</a></div> + <b>Linpha Syslog:</b><br /> + <div id="linDivSyslogText"></div> +</div> + + +<!-- title/navigation --> + +<div id="linDivTitle">Linpha 2.0 :: <a href="/linpha2/?&linCat=alb&linId=0">></a> </div> + + +<!-- menu --> +<div id="linDivMenu"> + <ul style="margin-left: 50px;"> + <li><a href="/linpha2/?&linCat=alb">Home</a></li> + </ul> + <ul> + <li><span>Suche </span> + <ul> + <li><a href="/linpha2/?&linCat=search">Extended Search</a></li> + <li> + <div> + <form method="GET" action="/linpha2/?&linCat=search"> + <input type="text" class="linForms" name="search_text" value="" /> + <input type="hidden" name="button[meta][all]" value="1" /> + + <input type="hidden" name="cmd" value="search" /> + <input type="hidden" name="linCat" value="search" /> + <input type="submit" name="submit" class="linButton linInputMenu" value="Suche" /> + </form> + </div> + </li> + </ul> + </li> + </ul> + <ul> + <li> + <span>Login </span> + <ul id="linMenuLogin"> + <li> + <div> + <form action="" method="POST" onsubmit="new Ajax.Updater('linDivMenu', LINPHA_CLIENT + '/?linCat=ajax&reloadmenu&linId='+IdCurrent, {method: 'post', asynchronous:true, parameters:Form.serialize(this), evalScripts:true}); return false;"> + <!-- login infos --> + <br /> + <label for="linFormUsername" style="display: block; float: left; width: 80px;">Username: </label><input style="width: 105px;" class="linForms" type="text" name="username" value="" id="linFormUsername" /><br /> + <label for="linFormPassword" style="display: block; float: left; width: 80px;">Password: </label><input style="width: 105px;" class="linForms" type="password" name="password" value="" id="linFormPassword" /><br /> + <input type="checkbox" name="rememberme" value="true" id="linFormCheckboxRemember" /><label for="linFormCheckboxRemember">Remember Me</label> <input type="hidden" name="cmd" value="login" /> + <input type="submit" name="submit" class="linButton linInputMenu" value="Login" /><br /><br /> + <div style="font-size: smaller; border: 0px;">Um sich anmelden zu können, müssen Cookies aktiviert sein.</div> + </form> + </div> + </li> + </ul> + </li> + </ul> + <ul> + <li><span>More </span> + <ul id="linMenuMore"> + <li><span>Basket </span> + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&admin_cmd=basket_add_all">Add All To Basket</a></li> + + <li><a href="/linpha2/?&linCat=alb&linId=4&view=basket">Switch To Basket View</a></li> + <li><a href="/linpha2/?&linCat=basket">Open Basket (0 Images)</a></li> + </ul> + </li> + <li><span>Ansicht </span> + <ul> + <li><span>Sort </span> + + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Name Asc">Name Asc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Name Desc">Name Desc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Date Asc">Date Asc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Date Desc">Date Desc</a></li> + </ul> + </li> + + <li><span>Ansicht </span> + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&view=thumb">Normal</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&view=thumbdetail">Detail</a></li> + </ul> + </li> + <li><span>Thumb Size </span> + + <ul> + <li><a href="javascript:myLinThumbnails.setTnSize(50)">50 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(75)">75 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(100)">100 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(150)">150 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(200)">200 Pixel</a></li> + + <li><a href="javascript:myLinThumbnails.setTnSize(250)">250 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(300)">300 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(400)">400 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(500)">500 Pixel</a></li> + </ul> + </li> + <li><span>Thumb Nr </span> + + <ul> + <li><a href="javascript:myLinThumbnails.setNrImages('auto')">auto</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('10')">10</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('25')">25</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('50')">50</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('100')">100</a></li> + + <li><a href="javascript:myLinThumbnails.setNrImages('200')">200</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('all')">all</a></li> + </ul> + </li> + </ul> + </li> + </ul> + </li> + </ul> + <!-- icons --> + <div> + <a href="javascript:myLinThumbnails.loadSlideshow()"><img src="./slideshow.png" border="0" title="Play Slideshow" /></a> + </div> +</div> + +<div style="clear: both;"></div> +<!-- end menu --> + + +<div id="linDivMainOuter"> + <div style="background: url(./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=tr) no-repeat top right;"> + <img src="./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=tl" alt="" width="15" height="15" /> + </div> + + <div id="linDivMain"> + + <h1 class="linStyle">Willkommen</h1>Hi, this is the home of "The PHP Photo Archive" <a href="http://linpha.sf.net">aka LinPHA</a>.<br /> <br /> + + + <!-- Random Images --> + + <!-- New Images --> + + <!-- Browse by Date --> + + <!-- Albums --> + <hr class="linStyle" /> + + <h2>Test Zeichenkodierung</h2> + \xC4\xD6\xDC \xE4\xF6\xFC \xE9\xE8\xE0 $\xA3\x80@\xA2\xB0\xA7 + + <br /><br /> + + <h1 class="linStyle">Alben</h1> + + <div class="linDivFolder"> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tr) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tl" alt="" width="15" height="15" /> + </div> + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="./thumb1.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2005.05.14-16 Barcelona</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=br) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=bl" alt="" width="15" height="15" /> + </div> + </div> + + <div class="linDivFolder"> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tr) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tl" alt="" width="15" height="15" /> + </div> + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="./thumb2.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.07-14-28 Fuerteventura</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=br) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=bl" alt="" width="15" height="15" /> + </div> + </div> + + <div class="linDivFolder"> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tr) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tl" alt="" width="15" height="15" /> + </div> + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="./thumb3.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.12.15-16 Skifahren Samnaun</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=br) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=bl" alt="" width="15" height="15" /> + </div> + </div> + + </div> + + <div style="background: url(./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=br) no-repeat top right;"> + <img src="./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=bl" alt="" width="15" height="15" /> + </div> +</div> +</body> +</html> + Added: trunk/misc/design/2strictutf8/colorsettings.php =================================================================== --- trunk/misc/design/2strictutf8/colorsettings.php (rev 0) +++ trunk/misc/design/2strictutf8/colorsettings.php 2008-01-15 22:22:11 UTC (rev 4811) @@ -0,0 +1,70 @@ +<?php +header("Content-Type: text/css"); + +/** + * force caching in browser + * works in firefox and internet explorer + */ +Header("Last-Modified: " . gmdate("D, d M Y H:i:s",mktime (0,0,0,1,1,2000)) . " GMT"); // Date in the past +Header("Expires: Mon, 26 Jul 2100 05:00:00 GMT"); // In other words... never expire the image +Header("Cache-Control: max-age=10000000, s-maxage=1000000, proxy-revalidate, must-revalidate"); + + +/* + * Created on 26.10.2006 + * + * To change the template for this generated file go to + * Window - Preferences - PHPeclipse - PHP - Code Templates + */ +?> + +/** + * background color + * #linDivThumbNavi amd #divSlideshowControlsInner used in view_img.html.php + */ + body { + background-color: #<?php echo $_GET['bodybg']; ?>; + } + + #linDivMainOuter, #linDivMetaStaticOuter, #linDivNavigationOuter, /*.linButton,*/ #linDivThumbnaviOuter, #linDivSlideshowControls, .roundAlphabottomInner, .linBackground { + background-color: #<?php echo $_GET['bg']; ?>; + } + +/** + * font color + */ + body, #linDivMenu ul a, #linDivMenu ul span, #linDivMenu ul div { + color: #<?php echo $_GET['font']; ?>; + } + +/** + * albums color + */ + .linDivFolder { + background-color: #<?php echo $_GET['albumsbg']; ?>; + } + +/** + * link/form colors + */ + a:link, a:visited /*, .linButton*/ { + color: #<?php echo $_GET['links']; ?>; + } + a:hover /*, .linButton:hover*/ { + color: #<?php echo $_GET['linkshover']; ?>; + } + + .linForms { + background-color: #<?php echo $_GET['fieldscolor']; ?>; + border: 1px solid grey; + } + +/** + * menu + */ + #linDivMenu ul a:hover, #linDivMenu ul span:hover { + background: #bbbbbb; + } + #linDivMenu ul ul, .linInputMenu { + background-color: #eeeeee; + } Added: trunk/misc/design/2strictutf8/csshover.htc =================================================================== --- trunk/misc/design/2strictutf8/csshover.htc (rev 0) +++ trunk/misc/design/2strictutf8/csshover.htc 2008-01-15 22:22:11 UTC (rev 4811) @@ -0,0 +1,120 @@ +<attach event="ondocumentready" handler="parseStylesheets" /> +<script> +/** + * Whatever:hover - V1.42.060206 - hover & active + * ------------------------------------------------------------ + * (c) 2005 - Peter Nederlof + * Peterned - http://www.xs4all.nl/~peterned/ + * License - http://creativecommons.org/licenses/LGPL/2.1/ + * + * Whatever:hover is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Whatever:hover 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 + * Lesser General Public License for more details. + * + * Credits and thanks to: + * Arnoud Berendsen, Martin Reurings, Robert Hanson + * + * howto: body { behavior:url("csshover.htc"); } + * ------------------------------------------------------------ + */ + +var csshoverReg = /(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i, +currentSheet, doc = window.document, hoverEvents = [], activators = { + onhover:{on:'onmouseover', off:'onmouseout'}, + onactive:{on:'onmousedown', off:'onmouseup'} +} + +function parseStylesheets() { + if(!/MSIE (5|6)/.test(navigator.userAgent)) return; + window.attachEvent('onunload', unhookHoverEvents); + var sheets = doc.styleSheets, l = sheets.length; + for(var i=0; i<l; i++) + parseStylesheet(sheets[i]); +} + function parseStylesheet(sheet) { + if(sheet.imports) { + try { + var imports = sheet.imports, l = imports.length; + for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]); + } catch(securityException){} + } + + try { + var rules = (currentSheet = sheet).rules, l = rules.length; + for(var j=0; j<l; j++) parseCSSRule(rules[j]); + } catch(securityException){} + } + + function parseCSSRule(rule) { + var select = rule.selectorText, style = rule.style.cssText; + if(!csshoverReg.test(select) || !style) return; + + var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1'); + var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo); + var className = (/\.([a-z0-9_-]*on(hover|active))/i).exec(newSelect)[1]; + var affected = select.replace(/:(hover|active).*$/, ''); + var elements = getElementsBySelect(affected); + if(elements.length == 0) return; + + currentSheet.addRule(newSelect, style); + for(var i=0; i<elements.length; i++) + new HoverElement(elements[i], className, activators[pseudo]); + } + +function HoverElement(node, className, events) { + if(!node.hovers) node.hovers = {}; + if(node.hovers[className]) return; + node.hovers[className] = true; + hookHoverEvent(node, events.on, function() { node.className += ' ' + className; }); + hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); }); +} + function hookHoverEvent(node, type, handler) { + node.attachEvent(type, handler); + hoverEvents[hoverEvents.length] = { + node:node, type:type, handler:handler + }; + } + + function unhookHoverEvents() { + for(var e,i=0; i<hoverEvents.length; i++) { + e = hoverEvents[i]; + e.node.detachEvent(e.type, e.handler); + } + } + +function getElementsBySelect(rule) { + var parts, nodes = [doc]; + parts = rule.split(' '); + for(var i=0; i<parts.length; i++) { + nodes = getSelectedNodes(parts[i], nodes); + } return nodes; +} + function getSelectedNodes(select, elements) { + var result, node, nodes = []; + var identify = (/\#([a-z0-9_-]+)/i).exec(select); + if(identify) { + var element = doc.getElementById(identify[1]); + return element? [element]:nodes; + } + + var classname = (/\.([a-z0-9_-]+)/i).exec(select); + var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, ''); + var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false; + for(var i=0; i<elements.length; i++) { + result = tagName? elements[i].all.tags(tagName):elements[i].all; + for(var j=0; j<result.length; j++) { + node = result[j]; + if(classReg && !classReg.test(node.className)) continue; + nodes[nodes.length] = node; + } + } + + return nodes; + } +</script> \ No newline at end of file Added: trunk/misc/design/2strictutf8/expand.gif =================================================================== (Binary files differ) Property changes on: trunk/misc/design/2strictutf8/expand.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/misc/design/2strictutf8/func.watermark.php =================================================================== --- trunk/misc/design/2strictutf8/func.watermark.php (rev 0) +++ trunk/misc/design/2strictutf8/func.watermark.php 2008-01-15 22:22:11 UTC (rev 4811) @@ -0,0 +1,547 @@ +<?php +/* +* Copyright (c) 2004 Heiko Rutenbeck <bz...@tu...> +* +* 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. +*/ + +if(!defined('LINPHA_DIR')) { exit(1); } + +class LinWatermark +{ + +/** +* @author flo +* @todo adapt from linpha1 +*/ +function needWatermark($imgid) +{ + if( $GLOBALS['linpha']->sql->config->value['plugins_active_wm'] + && $GLOBALS['linpha']->sql->config->value['plugins_wm_active'] + && !check_permissions('watermark',$imgid) ) + { + return true; + } else { + return false; + } +} + +/** + * returns array with all the configs and the default values, they are only defined here + */ +function getWatermarkArray() +{ + return array ( + 'wm_active' => "0", + 'wm_watermark' => "0", + 'wm_text' => "Copyright 2007", + 'wm_font' => "", + 'wm_fontsize' => "20", + 'wm_fontc... [truncated message content] |
From: <fan...@us...> - 2008-01-20 20:06:44
|
Revision: 4812 http://linpha.svn.sourceforge.net/linpha/?rev=4812&view=rev Author: fangehrn Date: 2008-01-20 12:06:38 -0800 (Sun, 20 Jan 2008) Log Message: ----------- Modified Paths: -------------- trunk/misc/design/1current/index.php trunk/misc/design/2strictutf8/index2.php trunk/misc/design/2strictutf8/index3.php Added Paths: ----------- trunk/misc/design/2strictutf8/index1.php Removed Paths: ------------- trunk/misc/design/2strictutf8/index.php Modified: trunk/misc/design/1current/index.php =================================================================== --- trunk/misc/design/1current/index.php 2008-01-15 22:22:11 UTC (rev 4811) +++ trunk/misc/design/1current/index.php 2008-01-20 20:06:38 UTC (rev 4812) @@ -173,11 +173,6 @@ <!-- Albums --> <hr class="linStyle" /> - <h2>Test Zeichenkodierung</h2> - \xC4\xD6\xDC \xE4\xF6\xFC \xE9\xE8\xE0 $\xA3\x80@\xA2\xB0\xA7 - - <br /><br /> - <h1 class="linStyle">Alben</h1> <div class="linDivFolder"> Deleted: trunk/misc/design/2strictutf8/index.php =================================================================== --- trunk/misc/design/2strictutf8/index.php 2008-01-15 22:22:11 UTC (rev 4811) +++ trunk/misc/design/2strictutf8/index.php 2008-01-20 20:06:38 UTC (rev 4812) @@ -1,252 +0,0 @@ -<?php -header('content-type: text/html; charset: utf-8'); -echo '<?xml version="1.0" encoding="utf-8"?>'."\n"; -?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> -<meta http-equiv="content-type" content="text/html; charset=UTF-8"> - -<title>Linpha 2.0</title> - -<!-- css includes --> - -<link rel='stylesheet' href='./colorsettings.php?bg=87CEFA&bodybg=DDDDDD&font=000000&albumsbg=D5FCF4&links=005388&linkshover=666666&fieldscolor=CCCCCC' type='text/css'> -<link rel='stylesheet' href='./global.css' type='text/css'> -<link rel='stylesheet' href='./home.css' type='text/css'> - - <!--[if IE]> - <style type="text/css" media="screen"> - #menu ul { width: 1em; } /* this will be a *min* width */ - #menu ul ul { width: 12em; } - #menu ul li { float: left; width: 100%; } - body { behavior: url(./csshover.htc); font-size: 100%; } - #menu ul li a { height: 1%; } - #menu a, #menu span { font: bold 0.7em/1.4em arial, helvetica, sans-serif; } - </style> - <![endif]--> - -</head> - - -<body id="linBody"> - -<!-- syslog --> -<div id="linDivSyslog" style="display: none;"> - <div id="linDivSyslogClose"><a href="javascript:myLinGlobal.closeSyslog();">X</a></div> - <b>Linpha Syslog:</b><br /> - <div id="linDivSyslogText"></div> -</div> - - -<!-- title/navigation --> - -<div id="linDivTitle">Linpha 2.0 :: <a href="/linpha2/?&linCat=alb&linId=0">></a> </div> - - -<!-- menu --> -<div id="linDivMenu"> - <ul style="margin-left: 50px;"> - <li><a href="/linpha2/?&linCat=alb">Home</a></li> - </ul> - <ul> - <li><span>Suche </span> - <ul> - <li><a href="/linpha2/?&linCat=search">Extended Search</a></li> - <li> - <div> - <form method="GET" action="/linpha2/?&linCat=search"> - <input type="text" class="linForms" name="search_text" value="" /> - <input type="hidden" name="button[meta][all]" value="1" /> - - <input type="hidden" name="cmd" value="search" /> - <input type="hidden" name="linCat" value="search" /> - <input type="submit" name="submit" class="linButton linInputMenu" value="Suche" /> - </form> - </div> - </li> - </ul> - </li> - </ul> - <ul> - <li> - <span>Login </span> - <ul id="linMenuLogin"> - <li> - <div> - <form action="" method="POST" onsubmit="new Ajax.Updater('linDivMenu', LINPHA_CLIENT + '/?linCat=ajax&reloadmenu&linId='+IdCurrent, {method: 'post', asynchronous:true, parameters:Form.serialize(this), evalScripts:true}); return false;"> - <!-- login infos --> - <br /> - <label for="linFormUsername" style="display: block; float: left; width: 80px;">Username: </label><input style="width: 105px;" class="linForms" type="text" name="username" value="" id="linFormUsername" /><br /> - <label for="linFormPassword" style="display: block; float: left; width: 80px;">Password: </label><input style="width: 105px;" class="linForms" type="password" name="password" value="" id="linFormPassword" /><br /> - <input type="checkbox" name="rememberme" value="true" id="linFormCheckboxRemember" /><label for="linFormCheckboxRemember">Remember Me</label> <input type="hidden" name="cmd" value="login" /> - <input type="submit" name="submit" class="linButton linInputMenu" value="Login" /><br /><br /> - <div style="font-size: smaller; border: 0px;">Um sich anmelden zu können, müssen Cookies aktiviert sein.</div> - </form> - </div> - </li> - </ul> - </li> - </ul> - <ul> - <li><span>More </span> - <ul id="linMenuMore"> - <li><span>Basket </span> - <ul> - <li><a href="/linpha2/?&linCat=alb&linId=4&admin_cmd=basket_add_all">Add All To Basket</a></li> - - <li><a href="/linpha2/?&linCat=alb&linId=4&view=basket">Switch To Basket View</a></li> - <li><a href="/linpha2/?&linCat=basket">Open Basket (0 Images)</a></li> - </ul> - </li> - <li><span>Ansicht </span> - <ul> - <li><span>Sort </span> - - <ul> - <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Name Asc">Name Asc</a></li> - <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Name Desc">Name Desc</a></li> - <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Date Asc">Date Asc</a></li> - <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Date Desc">Date Desc</a></li> - </ul> - </li> - - <li><span>Ansicht </span> - <ul> - <li><a href="/linpha2/?&linCat=alb&linId=4&view=thumb">Normal</a></li> - <li><a href="/linpha2/?&linCat=alb&linId=4&view=thumbdetail">Detail</a></li> - </ul> - </li> - <li><span>Thumb Size </span> - - <ul> - <li><a href="javascript:myLinThumbnails.setTnSize(50)">50 Pixel</a></li> - <li><a href="javascript:myLinThumbnails.setTnSize(75)">75 Pixel</a></li> - <li><a href="javascript:myLinThumbnails.setTnSize(100)">100 Pixel</a></li> - <li><a href="javascript:myLinThumbnails.setTnSize(150)">150 Pixel</a></li> - <li><a href="javascript:myLinThumbnails.setTnSize(200)">200 Pixel</a></li> - - <li><a href="javascript:myLinThumbnails.setTnSize(250)">250 Pixel</a></li> - <li><a href="javascript:myLinThumbnails.setTnSize(300)">300 Pixel</a></li> - <li><a href="javascript:myLinThumbnails.setTnSize(400)">400 Pixel</a></li> - <li><a href="javascript:myLinThumbnails.setTnSize(500)">500 Pixel</a></li> - </ul> - </li> - <li><span>Thumb Nr </span> - - <ul> - <li><a href="javascript:myLinThumbnails.setNrImages('auto')">auto</a></li> - <li><a href="javascript:myLinThumbnails.setNrImages('10')">10</a></li> - <li><a href="javascript:myLinThumbnails.setNrImages('25')">25</a></li> - <li><a href="javascript:myLinThumbnails.setNrImages('50')">50</a></li> - <li><a href="javascript:myLinThumbnails.setNrImages('100')">100</a></li> - - <li><a href="javascript:myLinThumbnails.setNrImages('200')">200</a></li> - <li><a href="javascript:myLinThumbnails.setNrImages('all')">all</a></li> - </ul> - </li> - </ul> - </li> - </ul> - </li> - </ul> - <!-- icons --> - <div> - <a href="javascript:myLinThumbnails.loadSlideshow()"><img src="../slideshow.png" border="0" title="Play Slideshow" /></a> - </div> -</div> - -<div style="clear: both;"></div> -<!-- end menu --> - - -<div id="linDivMainOuter"> - <div style="background: url(./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=tr) no-repeat top right;"> - <img src="./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=tl" alt="" width="15" height="15" /> - </div> - - <div id="linDivMain"> - - <h1 class="linStyle">Willkommen</h1>Hi, this is the home of "The PHP Photo Archive" <a href="http://linpha.sf.net">aka LinPHA</a>.<br /> <br /> - - - <!-- Random Images --> - - <!-- New Images --> - - <!-- Browse by Date --> - - <!-- Albums --> - <hr class="linStyle" /> - - <h2>Test Zeichenkodierung</h2> - abcd ABCD \xC4\xD6\xDC \xE4\xF6\xFC \xE9\xE8\xE0 $\xA3\x80@\xA2\xB0\xA7 - <br /> - <?php echo utf8_encode("abcd ABCD \xC4\xD6\xDC \xE4\xF6\xFC \xE9\xE8\xE0 \$\xA3\x80@\xA2\xB0\xA7"); ?> - <br /> - - <br /><br /> - - <h1 class="linStyle">Alben</h1> - - <div class="linDivFolder"> - <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tr) no-repeat top right;"> - <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tl" alt="" width="15" height="15" /> - </div> - <div class="linDivThumbnail"> - <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb1.gif" alt="thumbnail_album" /></a> - </div> - <div class="linDivFolderText"> - <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2005.05.14-16 Barcelona</a></h2> - Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> - </div> - <div style="clear: both;"></div> - <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=br) no-repeat top right;"> - <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=bl" alt="" width="15" height="15" /> - </div> - </div> - - <div class="linDivFolder"> - <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tr) no-repeat top right;"> - <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tl" alt="" width="15" height="15" /> - </div> - <div class="linDivThumbnail"> - <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb2.gif" alt="thumbnail_album" /></a> - </div> - <div class="linDivFolderText"> - <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.07-14-28 Fuerteventura</a></h2> - Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> - </div> - <div style="clear: both;"></div> - <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=br) no-repeat top right;"> - <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=bl" alt="" width="15" height="15" /> - </div> - </div> - - <div class="linDivFolder"> - <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tr) no-repeat top right;"> - <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tl" alt="" width="15" height="15" /> - </div> - <div class="linDivThumbnail"> - <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb3.gif" alt="thumbnail_album" /></a> - </div> - <div class="linDivFolderText"> - <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.12.15-16 Skifahren Samnaun</a></h2> - Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> - </div> - <div style="clear: both;"></div> - <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=br) no-repeat top right;"> - <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=bl" alt="" width="15" height="15" /> - </div> - </div> - - </div> - - <div style="background: url(./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=br) no-repeat top right;"> - <img src="./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=bl" alt="" width="15" height="15" /> - </div> -</div> -</body> -</html> - Copied: trunk/misc/design/2strictutf8/index1.php (from rev 4811, trunk/misc/design/2strictutf8/index.php) =================================================================== --- trunk/misc/design/2strictutf8/index1.php (rev 0) +++ trunk/misc/design/2strictutf8/index1.php 2008-01-20 20:06:38 UTC (rev 4812) @@ -0,0 +1,253 @@ +<?php +header('content-type: text/html; charset: utf-8'); +echo '<?xml version="1.0" encoding="utf-8"?>'."\n"; +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="content-type" content="text/html; charset=UTF-8"> + +<title>Linpha 2.0</title> + +<!-- css includes --> + +<link rel='stylesheet' href='./colorsettings.php?bg=87CEFA&bodybg=DDDDDD&font=000000&albumsbg=D5FCF4&links=005388&linkshover=666666&fieldscolor=CCCCCC' type='text/css'> +<link rel='stylesheet' href='./global.css' type='text/css'> +<link rel='stylesheet' href='./home.css' type='text/css'> + + <!--[if IE]> + <style type="text/css" media="screen"> + #menu ul { width: 1em; } /* this will be a *min* width */ + #menu ul ul { width: 12em; } + #menu ul li { float: left; width: 100%; } + body { behavior: url(./csshover.htc); font-size: 100%; } + #menu ul li a { height: 1%; } + #menu a, #menu span { font: bold 0.7em/1.4em arial, helvetica, sans-serif; } + </style> + <![endif]--> + +</head> + + +<body id="linBody"> + + <h2>Test Zeichenkodierung Datei UTF8</h2> + abcd ABCD ÄÖÜ äöü éèà $£€@¢°§ + <br /> + <?php echo utf8_encode("abcd ABCD ÄÖÜ äöü éèà \$£€@¢°§"); ?> + <br /> + + <br /><br /> + + +<!-- syslog --> +<div id="linDivSyslog" style="display: none;"> + <div id="linDivSyslogClose"><a href="javascript:myLinGlobal.closeSyslog();">X</a></div> + <b>Linpha Syslog:</b><br /> + <div id="linDivSyslogText"></div> +</div> + + +<!-- title/navigation --> + +<div id="linDivTitle">Linpha 2.0 :: <a href="/linpha2/?&linCat=alb&linId=0">></a> </div> + + +<!-- menu --> +<div id="linDivMenu"> + <ul style="margin-left: 50px;"> + <li><a href="/linpha2/?&linCat=alb">Home</a></li> + </ul> + <ul> + <li><span>Suche </span> + <ul> + <li><a href="/linpha2/?&linCat=search">Extended Search</a></li> + <li> + <div> + <form method="GET" action="/linpha2/?&linCat=search"> + <input type="text" class="linForms" name="search_text" value="" /> + <input type="hidden" name="button[meta][all]" value="1" /> + + <input type="hidden" name="cmd" value="search" /> + <input type="hidden" name="linCat" value="search" /> + <input type="submit" name="submit" class="linButton linInputMenu" value="Suche" /> + </form> + </div> + </li> + </ul> + </li> + </ul> + <ul> + <li> + <span>Login </span> + <ul id="linMenuLogin"> + <li> + <div> + <form action="" method="POST" onsubmit="new Ajax.Updater('linDivMenu', LINPHA_CLIENT + '/?linCat=ajax&reloadmenu&linId='+IdCurrent, {method: 'post', asynchronous:true, parameters:Form.serialize(this), evalScripts:true}); return false;"> + <!-- login infos --> + <br /> + <label for="linFormUsername" style="display: block; float: left; width: 80px;">Username: </label><input style="width: 105px;" class="linForms" type="text" name="username" value="" id="linFormUsername" /><br /> + <label for="linFormPassword" style="display: block; float: left; width: 80px;">Password: </label><input style="width: 105px;" class="linForms" type="password" name="password" value="" id="linFormPassword" /><br /> + <input type="checkbox" name="rememberme" value="true" id="linFormCheckboxRemember" /><label for="linFormCheckboxRemember">Remember Me</label> <input type="hidden" name="cmd" value="login" /> + <input type="submit" name="submit" class="linButton linInputMenu" value="Login" /><br /><br /> + <div style="font-size: smaller; border: 0px;">Um sich anmelden zu können, müssen Cookies aktiviert sein.</div> + </form> + </div> + </li> + </ul> + </li> + </ul> + <ul> + <li><span>More </span> + <ul id="linMenuMore"> + <li><span>Basket </span> + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&admin_cmd=basket_add_all">Add All To Basket</a></li> + + <li><a href="/linpha2/?&linCat=alb&linId=4&view=basket">Switch To Basket View</a></li> + <li><a href="/linpha2/?&linCat=basket">Open Basket (0 Images)</a></li> + </ul> + </li> + <li><span>Ansicht </span> + <ul> + <li><span>Sort </span> + + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Name Asc">Name Asc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Name Desc">Name Desc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Date Asc">Date Asc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Date Desc">Date Desc</a></li> + </ul> + </li> + + <li><span>Ansicht </span> + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&view=thumb">Normal</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&view=thumbdetail">Detail</a></li> + </ul> + </li> + <li><span>Thumb Size </span> + + <ul> + <li><a href="javascript:myLinThumbnails.setTnSize(50)">50 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(75)">75 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(100)">100 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(150)">150 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(200)">200 Pixel</a></li> + + <li><a href="javascript:myLinThumbnails.setTnSize(250)">250 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(300)">300 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(400)">400 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(500)">500 Pixel</a></li> + </ul> + </li> + <li><span>Thumb Nr </span> + + <ul> + <li><a href="javascript:myLinThumbnails.setNrImages('auto')">auto</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('10')">10</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('25')">25</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('50')">50</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('100')">100</a></li> + + <li><a href="javascript:myLinThumbnails.setNrImages('200')">200</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('all')">all</a></li> + </ul> + </li> + </ul> + </li> + </ul> + </li> + </ul> + <!-- icons --> + <div> + <a href="javascript:myLinThumbnails.loadSlideshow()"><img src="../slideshow.png" border="0" title="Play Slideshow" /></a> + </div> +</div> + +<div style="clear: both;"></div> +<!-- end menu --> + + +<div id="linDivMainOuter"> + <div style="background: url(./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=tr) no-repeat top right;"> + <img src="./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=tl" alt="" width="15" height="15" /> + </div> + + <div id="linDivMain"> + + <h1 class="linStyle">Willkommen</h1>Hi, this is the home of "The PHP Photo Archive" <a href="http://linpha.sf.net">aka LinPHA</a>.<br /> <br /> + + + <!-- Random Images --> + + <!-- New Images --> + + <!-- Browse by Date --> + + <!-- Albums --> + <hr class="linStyle" /> + + <h1 class="linStyle">Alben</h1> + + <div class="linDivFolder"> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tr) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tl" alt="" width="15" height="15" /> + </div> + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb1.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2005.05.14-16 Barcelona</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=br) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=bl" alt="" width="15" height="15" /> + </div> + </div> + + <div class="linDivFolder"> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tr) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tl" alt="" width="15" height="15" /> + </div> + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb2.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.07-14-28 Fuerteventura</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=br) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=bl" alt="" width="15" height="15" /> + </div> + </div> + + <div class="linDivFolder"> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tr) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=tl" alt="" width="15" height="15" /> + </div> + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb3.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.12.15-16 Skifahren Samnaun</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + <div style="background: url(./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=br) no-repeat top right;"> + <img src="./roundcorners.php?color=D5FCF4&bgcolor=87CEFA&size=15&align=bl" alt="" width="15" height="15" /> + </div> + </div> + + </div> + + <div style="background: url(./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=br) no-repeat top right;"> + <img src="./roundcorners.php?color=87CEFA&bgcolor=DDDDDD&size=15&align=bl" alt="" width="15" height="15" /> + </div> +</div> +</body> +</html> + Modified: trunk/misc/design/2strictutf8/index2.php =================================================================== --- trunk/misc/design/2strictutf8/index2.php 2008-01-15 22:22:11 UTC (rev 4811) +++ trunk/misc/design/2strictutf8/index2.php 2008-01-20 20:06:38 UTC (rev 4812) @@ -32,6 +32,14 @@ <body id="linBody"> + <h2>Test Zeichenkodierung Datei ISO-8859-2</h2> + abcd ABCD \xC4\xD6\xDC \xE4\xF6\xFC \xE9\xE8\xE0 $\xA3\x80@\xA2\xB0\xA7 + <br /> + <?php echo utf8_encode("abcd ABCD \xC4\xD6\xDC \xE4\xF6\xFC \xE9\xE8\xE0 \$\xA3\x80@\xA2\xB0\xA7"); ?> + <br /> + + <br /><br /> + <!-- syslog --> <div id="linDivSyslog" style="display: none;"> <div id="linDivSyslogClose"><a href="javascript:myLinGlobal.closeSyslog();">X</a></div> @@ -180,14 +188,6 @@ <!-- Albums --> <hr class="linStyle" /> - <h2>Test Zeichenkodierung</h2> - abcd ABCD \xC4\xD6\xDC \xE4\xF6\xFC \xE9\xE8\xE0 $\xA3\x80@\xA2\xB0\xA7 - <br /> - <?php echo utf8_encode("abcd ABCD \xC4\xD6\xDC \xE4\xF6\xFC \xE9\xE8\xE0 \$\xA3\x80@\xA2\xB0\xA7"); ?> - <br /> - - <br /><br /> - <h1 class="linStyle">Alben</h1> <div class="linDivFolder"> Modified: trunk/misc/design/2strictutf8/index3.php =================================================================== --- trunk/misc/design/2strictutf8/index3.php 2008-01-15 22:22:11 UTC (rev 4811) +++ trunk/misc/design/2strictutf8/index3.php 2008-01-20 20:06:38 UTC (rev 4812) @@ -32,6 +32,14 @@ <body id="linBody"> + <h2>Test Zeichenkodierung</h2> + abcd ABCD ÄÖÜ äöü éèà $£€@¢°§ + <br /> + <?php echo utf8_encode("abcd ABCD ÄÖÜ äöü éèà \$£€@¢°§"); ?> + <br /> + + <br /><br /> + <!-- syslog --> <div id="linDivSyslog" style="display: none;"> <div id="linDivSyslogClose"><a href="javascript:myLinGlobal.closeSyslog();">X</a></div> @@ -180,15 +188,6 @@ <!-- Albums --> <hr class="linStyle" /> - <h2>Test Zeichenkodierung</h2> - abcd ABCD ÄÖÜ äöü éèà $£€@¢°§ - <br /> - aaa - <?php echo utf8_encode("abcd ABCD ÄÖÜ äöü éèà \$£€@¢°§"); ?> - <br /> - - <br /><br /> - <h1 class="linStyle">Alben</h1> <div class="linDivFolder"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fan...@us...> - 2008-01-21 20:29:45
|
Revision: 4819 http://linpha.svn.sourceforge.net/linpha/?rev=4819&view=rev Author: fangehrn Date: 2008-01-21 12:29:01 -0800 (Mon, 21 Jan 2008) Log Message: ----------- Added Paths: ----------- trunk/misc/design/3utf8db/ trunk/misc/design/3utf8db/index.php Removed Paths: ------------- trunk/misc/design/3utf8db/index.php trunk/misc/design/3utf8mysql/ Copied: trunk/misc/design/3utf8db (from rev 4815, trunk/misc/design/3utf8mysql) Deleted: trunk/misc/design/3utf8db/index.php =================================================================== --- trunk/misc/design/3utf8mysql/index.php 2008-01-20 21:53:07 UTC (rev 4815) +++ trunk/misc/design/3utf8db/index.php 2008-01-21 20:29:01 UTC (rev 4819) @@ -1,82 +0,0 @@ -<?php -header('content-type: text/html; charset: utf-8'); -/*echo '<?xml version="1.0" encoding="utf-8"?>'."\n"; not necessary, IE has problems with this*/ -?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> -<meta http-equiv="content-type" content="text/html; charset=UTF-8"> - -<title>Linpha 2.0</title> - -</head> - - -<body> - -<h2>Test Zeichenkodierung Header UTF8, Datei UTF8</h2> -abcd ABCD ÄÖÜ äöü éèà $£€@¢°§ Věruš -<br /> -<?php echo utf8_encode("abcd ABCD ÄÖÜ äöü éèà \$£€@¢°§ Věruš"); ?> -<br /> -<br /> -<h2>DB</h2> - -<?php -require_once('../../../linpha2/lib/adodb/adodb.inc.php'); - -$db = ADONewConnection("mysql"); -$db->Connect("localhost", "root", "test", "testutf8"); - -echo 'utf8: '.$db->GetOne("SELECT name FROM tabutf8"); -echo '<br />'; -echo 'latin1: '.$db->GetOne("SELECT name FROM tablatin1"); - -echo '<br /><br /><br />'; -$query = $db->Execute("SHOW VARIABLES"); -while($data = $query->FetchRow()) -{ - echo $data['Variable_name'].': '.$data['Value'].'<br />'; -} - -/** - * http://drupal.org/node/40515 - * http://gallery.menalto.com/node/36886 - * - * http://phplens.com/adodb/code.initialization.html - * AdoDB: var $charSet=false; /// character set to use - only for interbase, postgres and oci8 - * - mysql_query('SET NAMES "UTF8"'); - mysql_query("SET collation_connection='utf8_general_ci'"); - mysql_query("SET collation_server='utf8_general_ci'"); - mysql_query("SET character_set_client='utf8'"); - mysql_query("SET character_set_connection='utf8'"); - mysql_query("SET character_set_results='utf8'"); - mysql_query("SET character_set_server='utf8'"); -*/ -$db->Execute('SET NAMES "UTF8"'); -$db->Execute("SET collation_connection='utf8_general_ci'"); -$db->Execute("SET collation_server='utf8_general_ci'"); -$db->Execute("SET character_set_client='utf8'"); -$db->Execute("SET character_set_connection='utf8'"); -$db->Execute("SET character_set_results='utf8'"); -$db->Execute("SET character_set_server='utf8'"); - -echo '<br /><br /><br />'; -$query = $db->Execute("SHOW VARIABLES"); -while($data = $query->FetchRow()) -{ - echo $data['Variable_name'].': '.$data['Value'].'<br />'; -} - -echo '<br /><br /><br />'; - -echo 'utf8: '.$db->GetOne("SELECT name FROM tabutf8"); -echo '<br />'; -echo 'latin1: '.$db->GetOne("SELECT name FROM tablatin1"); -?> - -</body> -</html> - Copied: trunk/misc/design/3utf8db/index.php (from rev 4818, trunk/misc/design/3utf8mysql/index.php) =================================================================== --- trunk/misc/design/3utf8db/index.php (rev 0) +++ trunk/misc/design/3utf8db/index.php 2008-01-21 20:29:01 UTC (rev 4819) @@ -0,0 +1,82 @@ +<?php +header('content-type: text/html; charset: utf-8'); +/*echo '<?xml version="1.0" encoding="utf-8"?>'."\n"; not necessary, IE has problems with this*/ +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="content-type" content="text/html; charset=UTF-8"> + +<title>Linpha 2.0</title> + +</head> + + +<body> + +<h2>Test Zeichenkodierung Header UTF8, Datei UTF8</h2> +abcd ABCD ÄÖÜ äöü éèà $£€@¢°§ Věruš +<br /> +<?php echo utf8_encode("abcd ABCD ÄÖÜ äöü éèà \$£€@¢°§ Věruš"); ?> +<br /> +<br /> +<h2>DB</h2> + +<?php +require_once('../../../linpha2/lib/adodb/adodb.inc.php'); + +$db = ADONewConnection("mysql"); +$db->Connect("localhost", "root", "test", "testutf8"); + +echo 'utf8: '.$db->GetOne("SELECT name FROM tabutf8"); +echo '<br />'; +echo 'latin1: '.$db->GetOne("SELECT name FROM tablatin1"); + +echo '<br /><br /><br />'; +$query = $db->Execute("SHOW VARIABLES"); +while($data = $query->FetchRow()) +{ + echo $data['Variable_name'].': '.$data['Value'].'<br />'; +} + +/** + * http://drupal.org/node/40515 + * http://gallery.menalto.com/node/36886 + * + * http://phplens.com/adodb/code.initialization.html + * AdoDB: var $charSet=false; /// character set to use - only for interbase, postgres and oci8 + * + mysql_query('SET NAMES "UTF8"'); + mysql_query("SET collation_connection='utf8_general_ci'"); + mysql_query("SET collation_server='utf8_general_ci'"); + mysql_query("SET character_set_client='utf8'"); + mysql_query("SET character_set_connection='utf8'"); + mysql_query("SET character_set_results='utf8'"); + mysql_query("SET character_set_server='utf8'"); +*/ +$db->Execute('SET NAMES "UTF8"'); +$db->Execute("SET collation_connection='utf8_general_ci'"); +$db->Execute("SET collation_server='utf8_general_ci'"); +$db->Execute("SET character_set_client='utf8'"); +$db->Execute("SET character_set_connection='utf8'"); +$db->Execute("SET character_set_results='utf8'"); +$db->Execute("SET character_set_server='utf8'"); + +echo '<br /><br /><br />'; +$query = $db->Execute("SHOW VARIABLES"); +while($data = $query->FetchRow()) +{ + echo $data['Variable_name'].': '.$data['Value'].'<br />'; +} + +echo '<br /><br /><br />'; + +echo 'utf8: '.$db->GetOne("SELECT name FROM tabutf8"); +echo '<br />'; +echo 'latin1: '.$db->GetOne("SELECT name FROM tablatin1"); +?> + +</body> +</html> + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fan...@us...> - 2008-01-26 16:29:04
|
Revision: 4822 http://linpha.svn.sourceforge.net/linpha/?rev=4822&view=rev Author: fangehrn Date: 2008-01-26 08:28:19 -0800 (Sat, 26 Jan 2008) Log Message: ----------- Modified Paths: -------------- trunk/misc/design/info.txt Added Paths: ----------- trunk/misc/design/10cornersOld/ Removed Paths: ------------- trunk/misc/design/10strict/ Modified: trunk/misc/design/info.txt =================================================================== --- trunk/misc/design/info.txt 2008-01-21 23:22:26 UTC (rev 4821) +++ trunk/misc/design/info.txt 2008-01-26 16:28:19 UTC (rev 4822) @@ -1,5 +1,14 @@ +UTF8 +---- +Rounded Corners +--------------- http://www.html.it/articoli/niftycube/index.html +too slow! +benchmark: +60 folders: +firefox: 4 + http://kalsey.com/2003/07/rounded_corners_in_css/ http://www.sovavsiti.cz/css/corners.html \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fan...@us...> - 2008-01-26 17:22:12
|
Revision: 4824 http://linpha.svn.sourceforge.net/linpha/?rev=4824&view=rev Author: fangehrn Date: 2008-01-26 09:21:59 -0800 (Sat, 26 Jan 2008) Log Message: ----------- Added Paths: ----------- trunk/misc/design/11cornersNifty2/ trunk/misc/design/11cornersNifty2/NiftyCube/ trunk/misc/design/11cornersNifty2/NiftyCube/NiftyLayout.css trunk/misc/design/11cornersNifty2/NiftyCube/gpl.it.txt trunk/misc/design/11cornersNifty2/NiftyCube/gpl.txt trunk/misc/design/11cornersNifty2/NiftyCube/niftyCorners.css trunk/misc/design/11cornersNifty2/NiftyCube/niftyLayout.js trunk/misc/design/11cornersNifty2/NiftyCube/niftycube.js trunk/misc/design/11cornersNifty2/colorsettings.php trunk/misc/design/11cornersNifty2/csshover.htc trunk/misc/design/11cornersNifty2/expand.gif trunk/misc/design/11cornersNifty2/global.css trunk/misc/design/11cornersNifty2/home.css trunk/misc/design/11cornersNifty2/index.php trunk/misc/design/11cornersNifty2/niftyCorners.css trunk/misc/design/11cornersNifty2/niftycube.js Added: trunk/misc/design/11cornersNifty2/NiftyCube/NiftyLayout.css =================================================================== --- trunk/misc/design/11cornersNifty2/NiftyCube/NiftyLayout.css (rev 0) +++ trunk/misc/design/11cornersNifty2/NiftyCube/NiftyLayout.css 2008-01-26 17:21:59 UTC (rev 4824) @@ -0,0 +1,47 @@ +html,body{margin:0;padding:0} +body{font: 85%/1.3 Verdana,Arial,sans-serif; + text-align: center;background: #757D88;padding-bottom:20px} +p{margin-top:0} +h1,h2,h3{font: normal normal 200% "Trebuchet MS",Arial,sans-serif} +h2{font-size:160%} +h3{font-size:120%} + +div#header{width:100%;overflow:hidden;background: #595D66} +div#header h1,div#menu{width:770px;margin:0 auto;text-align:left} +div#header h1{padding: 30px 0 10px;color: #FFF} + +ul#nav,ul#nav li{list-style-type:none;margin:0;padding:0} +ul#nav{float:right;font-size: 80%} +ul#nav li{float:left;margin-left: 3px;text-align: center} +ul#nav a{float:left;width: 95px;padding: 5px 0;background: #369A3D;text-decoration:none;color: #FFC} +ul#nav a:hover{background: #CDFFA1;color: #006A35} +ul#nav li.activelink a,ul#nav li.activelink a:hover{background: #FFF;color: #003} + +div#container{width:770px;margin:0 auto 10px;padding:20px 0 10px;text-align:left;background:#FFF} +div#content{float:left;display:inline;width:560px;margin:0 0 10px 10px} + +ul#intro,ul#intro li{list-style-type:none;margin:0;padding:0} +ul#intro{width:100%;overflow:hidden;margin-bottom:20px} +ul#intro li{float:left;width:180px;margin-right:10px;padding: 10px 0} +li#mission{background: #E65714} +li#services{background: #42B4AC} +ul#intro li#more{margin-right:0;background: #7D63A9} +ul#intro p,ul#intro h3{margin:0;padding: 0 10px} +ul#intro h3{text-transform:uppercase;padding-bottom:3px;color: #FFF} + +div#content h2{margin: 10px 0;color: #007BC4} +div.date{float:left;width: 4em;padding: 5px 0;background: #F1DDC4;color:#B0001E; + text-align:center;margin: 0 4px 4px 0;font-size: 80%;line-height:0.9} +div.date span{display:block;font-size: 150%;font-weight:bold} + +div.comments div{background: #EEE;margin-bottom:10px} +div.comments p{padding: 10px;margin:0} +div.comments div.odd{background:#DAE6FE} + +div#side{float:right;display:inline;width: 180px;background:#F3CF00; margin:0 10px 10px 0} +div#side p{margin:5px 0 10px;padding: 0 10px} +div#side div{margin: 0 0 10px;padding: 10px 0} + +div#footer{clear:both;width:750px;margin:0 10px 0;padding: 10px 0; + background: #586695;color: #FFF;text-align:center} +div#footer p{margin:0} \ No newline at end of file Added: trunk/misc/design/11cornersNifty2/NiftyCube/gpl.it.txt =================================================================== --- trunk/misc/design/11cornersNifty2/NiftyCube/gpl.it.txt (rev 0) +++ trunk/misc/design/11cornersNifty2/NiftyCube/gpl.it.txt 2008-01-26 17:21:59 UTC (rev 4824) @@ -0,0 +1,403 @@ + +Questa \xE8 una traduzione italiana non ufficiale della Licenza Pubblica +Generica GNU. Non \xE8 pubblicata dalla Free Software Foundation e non +ha valore legale nell'esprimere i termini di distribuzione del +software che usa la licenza GPL. Solo la versione originale in inglese +della licenza ha valore legale. Ad ogni modo, speriamo che questa +traduzione aiuti le persone di lingua italiana a capire meglio il +significato della licenza GPL. + + This is an unofficial translation of the GNU General Public + License into Italian. It was not published by the Free + Software Foundation, and does not legally state the + distribution terms for software that uses the GNU GPL--only + the original English text of the GNU GPL does that. However, + we hope that this translation will help Italian speakers + understand the GNU GPL better. + + + + LICENZA PUBBLICA GENERICA (GPL) DEL PROGETTO GNU + Versione 2, Giugno 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Traduzione curata da gruppo Pluto, da ILS e dal gruppo italiano di +traduzione GNU. Ultimo aggiornamento 19 aprile 2000. + +Chiunque pu\xF2 copiare e distribuire copie letterali di questo documento +di licenza, ma non ne \xE8 permessa la modifica. + + Preambolo + +Le licenze della maggior parte dei programmi hanno lo scopo di +togliere all'utente la libert\xE0 di condividere e modificare il +programma stesso. Viceversa, la Licenza Pubblica Generica GNU \xE8 intesa +a garantire la libert\xE0 di condividere e modificare il software libero, +al fine di assicurare che i programmi siano liberi per tutti i loro +utenti. Questa Licenza si applica alla maggioranza dei programmi +della Free Software Foundation e ad ogni altro programma i cui autori +hanno deciso di usare questa Licenza. Alcuni altri programmi della +Free Software Foundation sono invece coperti dalla Licenza Pubblica +Generica Minore. Chiunque pu\xF2 usare questa Licenza per i propri +programmi. + +Quando si parla di software libero (free software), ci si riferisce +alla libert\xE0, non al prezzo. Le nostre Licenze (la GPL e la LGPL) +sono progettate per assicurarsi che ciascuno abbia la libert\xE0 di +distribuire copie del software libero (e farsi pagare per questo, se +vuole), che ciascuno riceva il codice sorgente o che lo possa ottenere +se lo desidera, che ciascuno possa modificare il programma o usarne +delle parti in nuovi programmi liberi e che ciascuno sappia di potere +fare queste cose. + +Per proteggere i diritti dell'utente, abbiamo bisogno di creare delle +restrizioni che vietino a chiunque di negare questi diritti o di +chiedere di rinunciarvi. Queste restrizioni si traducono in certe +responsabilit\xE0 per chi distribuisce copie del software e per chi lo +modifica. + +Per esempio, chi distribuisce copie di un programma coperto da GPL, +sia gratis sia in cambio di un compenso, deve concedere ai destinatari +tutti i diritti che ha ricevuto. Deve anche assicurarsi che i +destinatari ricevano o possano ottenere il codice sorgente. E deve +mostrar loro queste condizioni di licenza, in modo che essi conoscano +i propri diritti. + +Proteggiamo i diritti dell'utente in due modi: (1) proteggendo il +software con un copyright, e (2) offrendo una licenza che dia il +permesso legale di copiare, distribuire e modificare il Programma. + +Inoltre, per proteggere ogni autore e noi stessi, vogliamo assicurarci +che ognuno capisca che non ci sono garanzie per i programmi coperti da +GPL. Se il programma viene modificato da qualcun altro e +ridistribuito, vogliamo che gli acquirenti sappiano che ci\xF2 che hanno +non \xE8 l'originale, in modo che ogni problema introdotto da altri non +si rifletta sulla reputazione degli autori originari. + +Infine, ogni programma libero \xE8 costantemente minacciato dai brevetti +sui programmi. Vogliamo evitare il pericolo che chi ridistribuisce un +programma libero ottenga la propriet\xE0 di brevetti, rendendo in pratica +il programma cosa di sua propriet\xE0. Per prevenire questa evenienza, +abbiamo chiarito che ogni brevetto debba essere concesso in licenza +d'uso a chiunque, o non avere alcuna restrizione di licenza d'uso. + +Seguono i termini e le condizioni precisi per la copia, la +distribuzione e la modifica. + + LICENZA PUBBLICA GENERICA GNU + TERMINI E CONDIZIONI PER LA COPIA, LA DISTRIBUZIONE E LA MODIFICA + + 0. Questa Licenza si applica a ogni programma o altra opera che +contenga una nota da parte del detentore del copyright che dica che +tale opera pu\xF2 essere distribuita sotto i termini di questa Licenza +Pubblica Generica. Il termine "Programma" nel seguito si riferisce ad +ogni programma o opera cos\xEC definita, e l'espressione "opera basata +sul Programma" indica sia il Programma sia ogni opera considerata +"derivata" in base alla legge sul copyright; in altre parole, un'opera +contenente il Programma o una porzione di esso, sia letteralmente sia +modificato o tradotto in un'altra lingua. Da qui in avanti, la +traduzione \xE8 in ogni caso considerata una "modifica". Vengono ora +elencati i diritti dei beneficiari della licenza. + +Attivit\xE0 diverse dalla copiatura, distribuzione e modifica non sono +coperte da questa Licenza e sono al di fuori della sua influenza. +L'atto di eseguire il Programma non viene limitato, e l'output del +programma \xE8 coperto da questa Licenza solo se il suo contenuto +costituisce un'opera basata sul Programma (indipendentemente dal fatto +che sia stato creato eseguendo il Programma). In base alla natura del +Programma il suo output pu\xF2 essere o meno coperto da questa Licenza. + + 1. \xC8 lecito copiare e distribuire copie letterali del codice +sorgente del Programma cos\xEC come viene ricevuto, con qualsiasi mezzo, +a condizione che venga riprodotta chiaramente su ogni copia una +appropriata nota di copyright e di assenza di garanzia; che si +mantengano intatti tutti i riferimenti a questa Licenza e all'assenza +di ogni garanzia; che si dia a ogni altro destinatario del Programma +una copia di questa Licenza insieme al Programma. + +\xC8 possibile richiedere un pagamento per il trasferimento fisico di una +copia del Programma, \xE8 anche possibile a propria discrezione +richiedere un pagamento in cambio di una copertura assicurativa. + + 2. \xC8 lecito modificare la propria copia o copie del Programma, o +parte di esso, creando perci\xF2 un'opera basata sul Programma, e copiare +o distribuire tali modifiche o tale opera secondo i termini del +precedente comma 1, a patto che siano soddisfatte tutte le condizioni +che seguono: + + a) Bisogna indicare chiaramente nei file che si tratta di copie + modificate e la data di ogni modifica. + + b) Bisogna fare in modo che ogni opera distribuita o pubblicata, + che in parte o nella sua totalit\xE0 derivi dal Programma o da parti + di esso, sia concessa nella sua interezza in licenza gratuita ad + ogni terza parte, secondo i termini di questa Licenza. + + c) Se normalmente il programma modificato legge comandi + interattivamente quando viene eseguito, bisogna fare in modo che + all'inizio dell'esecuzione interattiva usuale, esso stampi un + messaggio contenente una appropriata nota di copyright e di + assenza di garanzia (oppure che specifichi il tipo di garanzia che + si offre). Il messaggio deve inoltre specificare che chiunque pu\xF2 + ridistribuire il programma alle condizioni qui descritte e deve + indicare come reperire questa Licenza. Se per\xF2 il programma di + partenza \xE8 interattivo ma normalmente non stampa tale messaggio, + non occorre che un'opera basata sul Programma lo stampi. + +Questi requisiti si applicano all'opera modificata nel suo complesso. +Se sussistono parti identificabili dell'opera modificata che non siano +derivate dal Programma e che possono essere ragionevolmente +considerate lavori indipendenti, allora questa Licenza e i suoi +termini non si applicano a queste parti quando queste vengono +distribuite separatamente. Se per\xF2 queste parti vengono distribuite +all'interno di un prodotto che \xE8 un'opera basata sul Programma, la +distribuzione di quest'opera nella sua interezza deve avvenire nei +termini di questa Licenza, le cui norme nei confronti di altri utenti +si estendono all'opera nella sua interezza, e quindi ad ogni sua +parte, chiunque ne sia l'autore. + +Quindi, non \xE8 nelle intenzioni di questa sezione accampare diritti, n\xE9 +contestare diritti su opere scritte interamente da altri; l'intento \xE8 +piuttosto quello di esercitare il diritto di controllare la +distribuzione di opere derivati dal Programma o che lo contengano. + +Inoltre, la semplice aggregazione di un'opera non derivata dal +Programma col Programma o con un'opera da esso derivata su di un mezzo +di memorizzazione o di distribuzione, non \xE8 sufficente a includere +l'opera non derivata nell'ambito di questa Licenza. + + 3. \xC8 lecito copiare e distribuire il Programma (o un'opera basata su +di esso, come espresso al comma 2) sotto forma di codice oggetto o +eseguibile secondo i termini dei precedenti commi 1 e 2, a patto che +si applichi una delle seguenti condizioni: + + a) Il Programma sia corredato del codice sorgente completo, in una + forma leggibile da calcolatore, e tale sorgente sia fornito + secondo le regole dei precedenti commi 1 e 2 su di un mezzo + comunemente usato per lo scambio di programmi. + + b) Il Programma sia accompagnato da un'offerta scritta, valida per + almeno tre anni, di fornire a chiunque ne faccia richiesta una + copia completa del codice sorgente, in una forma leggibile da + calcolatore, in cambio di un compenso non superiore al costo del + trasferimento fisico di tale copia, che deve essere fornita + secondo le regole dei precedenti commi 1 e 2 su di un mezzo + comunemente usato per lo scambio di programmi. + + c) Il Programma sia accompagnato dalle informazioni che sono state + ricevute riguardo alla possibilit\xE0 di ottenere il codice sorgente. + Questa alternativa \xE8 permessa solo in caso di distribuzioni non + commerciali e solo se il programma \xE8 stato ottenuto sotto forma di + codice oggetto o eseguibile in accordo al precedente comma B. + +Per "codice sorgente completo" di un'opera si intende la forma +preferenziale usata per modificare un'opera. Per un programma +eseguibile, "codice sorgente completo" significa tutto il codice +sorgente di tutti i moduli in esso contenuti, pi\xF9 ogni file associato +che definisca le interfacce esterne del programma, pi\xF9 gli script +usati per controllare la compilazione e l'installazione +dell'eseguibile. In ogni caso non \xE8 necessario che il codice sorgente +fornito includa nulla che sia normalmente distribuito (in forma +sorgente o in formato binario) con i principali componenti del sistema +operativo sotto cui viene eseguito il Programma (compilatore, kernel, +e cos\xEC via), a meno che tali componenti accompagnino l'eseguibile. + +Se la distribuzione dell'eseguibile o del codice oggetto \xE8 effettuata +indicando un luogo dal quale sia possibile copiarlo, permettere la +copia del codice sorgente dallo stesso luogo \xE8 considerata una valida +forma di distribuzione del codice sorgente, anche se copiare il +sorgente \xE8 facoltativo per l'acquirente. + + 4. Non \xE8 lecito copiare, modificare, sublicenziare, o distribuire +il Programma in modi diversi da quelli espressamente previsti da +questa Licenza. Ogni tentativo di copiare, modificare, sublicenziare +o distribuire altrimenti il Programma non \xE8 autorizzato, e far\xE0 +terminare automaticamente i diritti garantiti da questa Licenza. +D'altra parte ogni acquirente che abbia ricevuto copie, o diritti, +coperti da questa Licenza da parte di persone che violano la Licenza +come qui indicato non vedranno invalidata la loro Licenza, purch\xE9 si +comportino conformemente ad essa. + + 5. L'acquirente non \xE8 tenuto ad accettare questa Licenza, +poich\xE9 non l'ha firmata. D'altra parte nessun altro documento +garantisce il permesso di modificare o distribuire il Programma o i +lavori derivati da esso. Queste azioni sono proibite dalla legge per +chi non accetta questa Licenza; perci\xF2, modificando o distribuendo il +Programma o un'opera basata sul programma, si indica nel fare ci\xF2 +l'accettazione di questa Licenza e quindi di tutti i suoi termini e le +condizioni poste sulla copia, la distribuzione e la modifica del +Programma o di lavori basati su di esso. + + 6. Ogni volta che il Programma o un'opera basata su di esso vengono +distribuiti, l'acquirente riceve automaticamente una licenza d'uso da +parte del licenziatario originale. Tale licenza regola la copia, la +distribuzione e la modifica del Programma secondo questi termini e +queste condizioni. Non \xE8 lecito imporre restrizioni ulteriori +all'acquirente nel suo esercizio dei diritti qui garantiti. Chi +distribuisce programmi coperti da questa Licenza non e' comunque +tenuto a imporre il rispetto di questa Licenza a terzi. + + 7. Se, come conseguenza del giudizio di un tribunale, o di una +imputazione per la violazione di un brevetto o per ogni altra ragione +(non limitatamente a questioni di brevetti), vengono imposte +condizioni che contraddicono le condizioni di questa licenza, che +queste condizioni siano dettate dalla corte, da accordi tra le parti o +altro, queste condizioni non esimono nessuno dall'osservazione di +questa Licenza. Se non \xE8 possibile distribuire un prodotto in un modo +che soddisfi simultaneamente gli obblighi dettati da questa Licenza e +altri obblighi pertinenti, il prodotto non pu\xF2 essere affatto +distribuito. Per esempio, se un brevetto non permettesse a tutti +quelli che lo ricevono di ridistribuire il Programma senza obbligare +al pagamento di diritti, allora l'unico modo per soddisfare +contemporaneamente il brevetto e questa Licenza e' di non distribuire +affatto il Programma. + +Se una qualunque parte di questo comma \xE8 ritenuta non valida o non +applicabile in una qualunque circostanza, deve comunque essere +applicata l'idea espressa da questo comma; in ogni altra circostanza +invece deve essere applicato questo comma nel suo complesso. + +Non \xE8 nelle finalit\xE0 di questo comma indurre gli utenti ad infrangere +alcun brevetto n\xE9 ogni altra rivendicazione di diritti di propriet\xE0, +n\xE9 di contestare la validit\xE0 di alcuna di queste rivendicazioni; lo +scopo di questo comma \xE8 unicamente quello di proteggere l'integrit\xE0 +del sistema di distribuzione dei programmi liberi, che viene +realizzato tramite l'uso di licenze pubbliche. Molte persone hanno +contribuito generosamente alla vasta gamma di programmi distribuiti +attraverso questo sistema, basandosi sull'applicazione fedele di tale +sistema. L'autore/donatore pu\xF2 decidere di sua volont\xE0 se preferisce +distribuire il software avvalendosi di altri sistemi, e l'acquirente +non pu\xF2 imporre la scelta del sistema di distribuzione. + +Questo comma serve a rendere il pi\xF9 chiaro possibile ci\xF2 che crediamo +sia una conseguenza del resto di questa Licenza. + + 8. Se in alcuni paesi la distribuzione o l'uso del Programma sono +limitati da brevetto o dall'uso di interfacce coperte da copyright, il +detentore del copyright originale che pone il Programma sotto questa +Licenza pu\xF2 aggiungere limiti geografici espliciti alla distribuzione, +per escludere questi paesi dalla distribuzione stessa, in modo che il +programma possa essere distribuito solo nei paesi non esclusi da +questa regola. In questo caso i limiti geografici sono inclusi in +questa Licenza e ne fanno parte a tutti gli effetti. + + 9. All'occorrenza la Free Software Foundation pu\xF2 pubblicare +revisioni o nuove versioni di questa Licenza Pubblica Generica. Tali +nuove versioni saranno simili a questa nello spirito, ma potranno +differire nei dettagli al fine di coprire nuovi problemi e nuove +situazioni. + +Ad ogni versione viene dato un numero identificativo. Se il Programma +asserisce di essere coperto da una particolare versione di questa +Licenza e "da ogni versione successiva", l'acquirente pu\xF2 scegliere se +seguire le condizioni della versione specificata o di una successiva. +Se il Programma non specifica quale versione di questa Licenza deve +applicarsi, l'acquirente pu\xF2 scegliere una qualsiasi versione tra +quelle pubblicate dalla Free Software Foundation. + + 10. Se si desidera incorporare parti del Programma in altri +programmi liberi le cui condizioni di distribuzione differiscano da +queste, \xE8 possibile scrivere all'autore del Programma per chiederne +l'autorizzazione. Per il software il cui copyright \xE8 detenuto dalla +Free Software Foundation, si scriva alla Free Software Foundation; +talvolta facciamo eccezioni alle regole di questa Licenza. La nostra +decisione sar\xE0 guidata da due finalit\xE0: preservare la libert\xE0 di tutti +i prodotti derivati dal nostro software libero e promuovere la +condivisione e il riutilizzo del software in generale. + + + NON C'\xC8 GARANZIA + + 11. POICH\xC9 IL PROGRAMMA \xC8 CONCESSO IN USO GRATUITAMENTE, NON C'\xC8 +GARANZIA PER IL PROGRAMMA, NEI LIMITI PERMESSI DALLE VIGENTI LEGGI. +SE NON INDICATO DIVERSAMENTE PER ISCRITTO, IL DETENTORE DEL COPYRIGHT +E LE ALTRE PARTI FORNISCONO IL PROGRAMMA "COS\xCC COM'\xC8", SENZA ALCUN +TIPO DI GARANZIA, N\xC9 ESPLICITA N\xC9 IMPLICITA; CI\xD2 COMPRENDE, SENZA +LIMITARSI A QUESTO, LA GARANZIA IMPLICITA DI COMMERCIABILIT\xC0 E +UTILIZZABILIT\xC0 PER UN PARTICOLARE SCOPO. L'INTERO RISCHIO CONCERNENTE +LA QUALIT\xC0 E LE PRESTAZIONI DEL PROGRAMMA \xC8 DELL'ACQUIRENTE. SE IL +PROGRAMMA DOVESSE RIVELARSI DIFETTOSO, L'ACQUIRENTE SI ASSUME IL COSTO +DI OGNI MANUTENZIONE, RIPARAZIONE O CORREZIONE NECESSARIA. + + 12. N\xC9 IL DETENTORE DEL COPYRIGHT N\xC9 ALTRE PARTI CHE POSSONO +MODIFICARE O RIDISTRIBUIRE IL PROGRAMMA COME PERMESSO IN QUESTA +LICENZA SONO RESPONSABILI PER DANNI NEI CONFRONTI DELL'ACQUIRENTE, A +MENO CHE QUESTO NON SIA RICHIESTO DALLE LEGGI VIGENTI O APPAIA IN UN +ACCORDO SCRITTO. SONO INCLUSI DANNI GENERICI, SPECIALI O INCIDENTALI, +COME PURE I DANNI CHE CONSEGUONO DALL'USO O DALL'IMPOSSIBILIT\xC0 DI +USARE IL PROGRAMMA; CI\xD2 COMPRENDE, SENZA LIMITARSI A QUESTO, LA +PERDITA DI DATI, LA CORRUZIONE DEI DATI, LE PERDITE SOSTENUTE +DALL'ACQUIRENTE O DA TERZI E L'INCAPACIT\xC0 DEL PROGRAMMA A INTERAGIRE +CON ALTRI PROGRAMMI, ANCHE SE IL DETENTORE O ALTRE PARTI SONO STATE +AVVISATE DELLA POSSIBILIT\xC0 DI QUESTI DANNI. + + FINE DEI TERMINI E DELLE CONDIZIONI + + Appendice: come applicare questi termini a nuovi programmi + +Se si sviluppa un nuovo programma e lo si vuole rendere della maggiore +utilit\xE0 possibile per il pubblico, la cosa migliore da fare \xE8 rendere +tale programma libero, cosicch\xE9 ciascuno possa ridistribuirlo e +modificarlo sotto questi termini. + +Per fare questo, si inserisca nel programma la seguente nota. La cosa +migliore da fare \xE8 mettere la nota all`inizio di ogni file sorgente, +per chiarire nel modo pi\xF9 efficiente possibile l'assenza di garanzia; +ogni file dovrebbe contenere almeno la nota di copyright e +l'indicazione di dove trovare l'intera nota. + + <una riga per dire in breve il nome del programma e cosa fa> + Copyright (C) <anno> <nome dell'autore> + + Questo programma \xE8 software libero; \xE8 lecito redistribuirlo o + modificarlo secondo i termini della Licenza Pubblica Generica GNU + come \xE8 pubblicata dalla Free Software Foundation; o la versione 2 + della licenza o (a propria scelta) una versione successiva. + + Questo programma \xE8 distribuito nella speranza che sia utile, ma + SENZA ALCUNA GARANZIA; senza neppure la garanzia implicita di + NEGOZIABILIT\xC0 o di APPLICABILIT\xC0 PER UN PARTICOLARE SCOPO. Si + veda la Licenza Pubblica Generica GNU per avere maggiori dettagli. + + Questo programma deve essere distribuito assieme ad una copia + della Licenza Pubblica Generica GNU; in caso contrario, se ne pu\xF2 + ottenere una scrivendo alla Free Software Foundation, Inc., 51 + Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Si aggiungano anche informazioni su come si pu\xF2 essere contattati +tramite posta elettronica e cartacea. + +Se il programma \xE8 interattivo, si faccia in modo che stampi una breve +nota simile a questa quando viene usato interattivamente: + + Orcaloca versione 69, Copyright (C) anno nome dell'autore + Orcaloca non ha ALCUNA GARANZIA; per dettagli usare il comando `show g'. + Questo \xE8 software libero, e ognuno \xE8 libero di ridistribuirlo secondo + certe condizioni; usare il comando `show c' per i dettagli. + +Gli ipotetici comandi "show g" e "show c" mostreranno le parti +appropriate della Licenza Pubblica Generica. Chiaramente, i comandi +usati possono essere chiamati diversamente da "show g" e "show c" e +possono anche essere selezionati con il mouse o attraverso un men\xF9, o +comunque sia pertinente al programma. + +Se necessario, si deve anche far firmare al proprio datore di lavoro +(per chi lavora come programmatore) o alla propria scuola, per chi \xE8 +studente, una "rinuncia al copyright" per il programma. Ecco un +esempio con nomi fittizi: + + Yoyodinamica SPA rinuncia con questo documento ad ogni diritto sul + copyright del programma `Orcaloca' (che svolge dei passi di + compilazione) scritto da Giovanni Smanettone. + + <firma di Primo Tizio>, 1 April 3000 + Primo Tizio, Presidente + +I programmi coperti da questa Licenza Pubblica Generica non possono +essere incorporati all'interno di programmi proprietari. Se il +proprio programma \xE8 una libreria di funzioni, pu\xF2 essere pi\xF9 utile +permettere di collegare applicazioni proprietarie alla libreria. Se +si ha questa intenzione consigliamo di usare la Licenza Pubblica +Generica Minore GNU (LGPL) invece di questa Licenza. Added: trunk/misc/design/11cornersNifty2/NiftyCube/gpl.txt =================================================================== --- trunk/misc/design/11cornersNifty2/NiftyCube/gpl.txt (rev 0) +++ trunk/misc/design/11cornersNifty2/NiftyCube/gpl.txt 2008-01-26 17:21:59 UTC (rev 4824) @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. Added: trunk/misc/design/11cornersNifty2/NiftyCube/niftyCorners.css =================================================================== --- trunk/misc/design/11cornersNifty2/NiftyCube/niftyCorners.css (rev 0) +++ trunk/misc/design/11cornersNifty2/NiftyCube/niftyCorners.css 2008-01-26 17:21:59 UTC (rev 4824) @@ -0,0 +1,35 @@ +/*Nifty Corners Cube CSS by Alessandro Fulciniti +The following classes are added dinamically by javascript, +and their use should be avoided in the markup */ + +b.niftycorners,b.niftyfill{display:block} +b.niftycorners *{display:block;height: 1px;line-height:1px;font-size: 1px; + overflow:hidden;border-style:solid;border-width: 0 1px} +/*normal*/ +b.r1{margin: 0 3px;border-width: 0 2px} +b.r2{margin: 0 2px} +b.r3{margin: 0 1px} +b.r4{height: 2px} +b.rb1{margin: 0 8px;border-width:0 2px} +b.rb2{margin: 0 6px;border-width:0 2px} +b.rb3{margin: 0 5px} +b.rb4{margin: 0 4px} +b.rb5{margin: 0 3px} +b.rb6{margin: 0 2px} +b.rb7{margin: 0 1px;height:2px} +b.rb8{margin: 0;height:2px} +b.rs1{margin: 0 1px} +/*transparent inside*/ +b.t1{border-width: 0 5px} +b.t2{border-width: 0 3px} +b.t3{border-width: 0 2px} +b.t4{height: 2px} +b.tb1{border-width: 0 10px} +b.tb2{border-width: 0 8px} +b.tb3{border-width: 0 6px} +b.tb4{border-width: 0 5px} +b.tb5{border-width: 0 4px} +b.tb6{border-width: 0 3px} +b.tb7{border-width: 0 2px;height:2px} +b.tb8{border-width: 0 1px;height:2px} +b.ts1{border-width: 0 2px} \ No newline at end of file Added: trunk/misc/design/11cornersNifty2/NiftyCube/niftyLayout.js =================================================================== --- trunk/misc/design/11cornersNifty2/NiftyCube/niftyLayout.js (rev 0) +++ trunk/misc/design/11cornersNifty2/NiftyCube/niftyLayout.js 2008-01-26 17:21:59 UTC (rev 4824) @@ -0,0 +1,11 @@ +/*nifty corners layout*/ + +window.onload=function(){ +Nifty("div#menu a","small transparent top"); +Nifty("ul#intro li","same-height"); +Nifty("div.date"); +Nifty("div#content,div#side","same-height"); +Nifty("div.comments div"); +Nifty("div#footer"); +Nifty("div#container","bottom"); +} \ No newline at end of file Added: trunk/misc/design/11cornersNifty2/NiftyCube/niftycube.js =================================================================== --- trunk/misc/design/11cornersNifty2/NiftyCube/niftycube.js (rev 0) +++ trunk/misc/design/11cornersNifty2/NiftyCube/niftycube.js 2008-01-26 17:21:59 UTC (rev 4824) @@ -0,0 +1,298 @@ +/* Nifty Corners Cube - rounded corners with CSS and Javascript +Copyright 2006 Alessandro Fulciniti (a.f...@ht...) + +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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +var niftyOk=(document.getElementById && document.createElement && Array.prototype.push); +var niftyCss=false; + +String.prototype.find=function(what){ +return(this.indexOf(what)>=0 ? true : false); +} + +var oldonload=window.onload; +if(typeof(NiftyLoad)!='function') NiftyLoad=function(){}; +if(typeof(oldonload)=='function') + window.onload=function(){oldonload();AddCss();NiftyLoad()}; +else window.onload=function(){AddCss();NiftyLoad()}; + +function AddCss(){ +niftyCss=true; +var l=CreateEl("link"); +l.setAttribute("type","text/css"); +l.setAttribute("rel","stylesheet"); +l.setAttribute("href","niftyCorners.css"); +l.setAttribute("media","screen"); +document.getElementsByTagName("head")[0].appendChild(l); +} + +function Nifty(selector,options){ +if(niftyOk==false) return; +if(niftyCss==false) AddCss(); +var i,v=selector.split(","),h=0; +if(options==null) options=""; +if(options.find("fixed-height")) + h=getElementsBySelector(v[0])[0].offsetHeight; +for(i=0;i<v.length;i++) + Rounded(v[i],options); +if(options.find("height")) SameHeight(selector,h); +} + +function Rounded(selector,options){ +var i,top="",bottom="",v=new Array(); +if(options!=""){ + options=options.replace("left","tl bl"); + options=options.replace("right","tr br"); + options=options.replace("top","tr tl"); + options=options.replace("bottom","br bl"); + options=options.replace("transparent","alias"); + if(options.find("tl")){ + top="both"; + if(!options.find("tr")) top="left"; + } + else if(options.find("tr")) top="right"; + if(options.find("bl")){ + bottom="both"; + if(!options.find("br")) bottom="left"; + } + else if(options.find("br")) bottom="right"; + } +if(top=="" && bottom=="" && !options.find("none")){top="both";bottom="both";} +v=getElementsBySelector(selector); +for(i=0;i<v.length;i++){ + FixIE(v[i]); + if(top!="") AddTop(v[i],top,options); + if(bottom!="") AddBottom(v[i],bottom,options); + } +} + +function AddTop(el,side,options){ +var d=CreateEl("b"),lim=4,border="",p,i,btype="r",bk,color; +d.style.marginLeft="-"+getPadding(el,"Left")+"px"; +d.style.marginRight="-"+getPadding(el,"Right")+"px"; +if(options.find("alias") || (color=getBk(el))=="transparent"){ + color="transparent";bk="transparent"; border=getParentBk(el);btype="t"; + } +else{ + bk=getParentBk(el); border=Mix(color,bk); + } +d.style.background=bk; +d.className="niftycorners"; +p=getPadding(el,"Top"); +if(options.find("small")){ + d.style.marginBottom=(p-2)+"px"; + btype+="s"; lim=2; + } +else if(options.find("big")){ + d.style.marginBottom=(p-10)+"px"; + btype+="b"; lim=8; + } +else d.style.marginBottom=(p-5)+"px"; +for(i=1;i<=lim;i++) + d.appendChild(CreateStrip(i,side,color,border,btype)); +el.style.paddingTop="0"; +el.insertBefore(d,el.firstChild); +} + +function AddBottom(el,side,options){ +var d=CreateEl("b"),lim=4,border="",p,i,btype="r",bk,color; +d.style.marginLeft="-"+getPadding(el,"Left")+"px"; +d.style.marginRight="-"+getPadding(el,"Right")+"px"; +if(options.find("alias") || (color=getBk(el))=="transparent"){ + color="transparent";bk="transparent"; border=getParentBk(el);btype="t"; + } +else{ + bk=getParentBk(el); border=Mix(color,bk); + } +d.style.background=bk; +d.className="niftycorners"; +p=getPadding(el,"Bottom"); +if(options.find("small")){ + d.style.marginTop=(p-2)+"px"; + btype+="s"; lim=2; + } +else if(options.find("big")){ + d.style.marginTop=(p-10)+"px"; + btype+="b"; lim=8; + } +else d.style.marginTop=(p-5)+"px"; +for(i=lim;i>0;i--) + d.appendChild(CreateStrip(i,side,color,border,btype)); +el.style.paddingBottom=0; +el.appendChild(d); +} + +function CreateStrip(index,side,color,border,btype){ +var x=CreateEl("b"); +x.className=btype+index; +x.style.backgroundColor=color; +x.style.borderColor=border; +if(side=="left"){ + x.style.borderRightWidth="0"; + x.style.marginRight="0"; + } +else if(side=="right"){ + x.style.borderLeftWidth="0"; + x.style.marginLeft="0"; + } +return(x); +} + +function CreateEl(x){ +return(document.createElement(x)); +} + +function FixIE(el){ +if(el.currentStyle!=null && el.currentStyle.hasLayout!=null && el.currentStyle.hasLayout==false) + el.style.display="inline-block"; +} + +function SameHeight(selector,maxh){ +var i,v=selector.split(","),t,j,els=[],gap; +for(i=0;i<v.length;i++){ + t=getElementsBySelector(v[i]); + els=els.concat(t); + } +for(i=0;i<els.length;i++){ + if(els[i].offsetHeight>maxh) maxh=els[i].offsetHeight; + els[i].style.height="auto"; + } +for(i=0;i<els.length;i++){ + gap=maxh-els[i].offsetHeight; + if(gap>0){ + t=CreateEl("b");t.className="niftyfill";t.style.height=gap+"px"; + nc=els[i].lastChild; + if(nc.className=="niftycorners") + els[i].insertBefore(t,nc); + else els[i].appendChild(t); + } + } +} + +function getElementsBySelector(selector){ +var i,j,selid="",selclass="",tag=selector,tag2="",v2,k,f,a,s=[],objlist=[],c; +if(selector.find("#")){ //id selector like "tag#id" + if(selector.find(" ")){ //descendant selector like "tag#id tag" + s=selector.split(" "); + var fs=s[0].split("#"); + if(fs.length==1) return(objlist); + f=document.getElementById(fs[1]); + if(f){ + v=f.getElementsByTagName(s[1]); + for(i=0;i<v.length;i++) objlist.push(v[i]); + } + return(objlist); + } + else{ + s=selector.split("#"); + tag=s[0]; + selid=s[1]; + if(selid!=""){ + f=document.getElementById(selid); + if(f) objlist.push(f); + return(objlist); + } + } + } +if(selector.find(".")){ //class selector like "tag.class" + s=selector.split("."); + tag=s[0]; + selclass=s[1]; + if(selclass.find(" ")){ //descendant selector like tag1.classname tag2 + s=selclass.split(" "); + selclass=s[0]; + tag2=s[1]; + } + } +var v=document.getElementsByTagName(tag); // tag selector like "tag" +if(selclass==""){ + for(i=0;i<v.length;i++) objlist.push(v[i]); + return(objlist); + } +for(i=0;i<v.length;i++){ + c=v[i].className.split(" "); + for(j=0;j<c.length;j++){ + if(c[j]==selclass){ + if(tag2=="") objlist.push(v[i]); + else{ + v2=v[i].getElementsByTagName(tag2); + for(k=0;k<v2.length;k++) objlist.push(v2[k]); + } + } + } + } +return(objlist); +} + +function getParentBk(x){ +var el=x.parentNode,c; +while(el.tagName.toUpperCase()!="HTML" && (c=getBk(el))=="transparent") + el=el.parentNode; +if(c=="transparent") c="#FFFFFF"; +return(c); +} + +function getBk(x){ +var c=getStyleProp(x,"backgroundColor"); +if(c==null || c=="transparent" || c.find("rgba(0, 0, 0, 0)")) + return("transparent"); +if(c.find("rgb")) c=rgb2hex(c); +return(c); +} + +function getPadding(x,side){ +var p=getStyleProp(x,"padding"+side); +if(p==null || !p.find("px")) return(0); +return(parseInt(p)); +} + +function getStyleProp(x,prop){ +if(x.currentStyle) + return(x.currentStyle[prop]); +if(document.defaultView.getComputedStyle) + return(document.defaultView.getComputedStyle(x,'')[prop]); +return(null); +} + +function rgb2hex(value){ +var hex="",v,h,i; +var regexp=/([0-9]+)[, ]+([0-9]+)[, ]+([0-9]+)/; +var h=regexp.exec(value); +for(i=1;i<4;i++){ + v=parseInt(h[i]).toString(16); + if(v.length==1) hex+="0"+v; + else hex+=v; + } +return("#"+hex); +} + +function Mix(c1,c2){ +var i,step1,step2,x,y,r=new Array(3); +if(c1.length==4)step1=1; +else step1=2; +if(c2.length==4) step2=1; +else step2=2; +for(i=0;i<3;i++){ + x=parseInt(c1.substr(1+step1*i,step1),16); + if(step1==1) x=16*x+x; + y=parseInt(c2.substr(1+step2*i,step2),16); + if(step2==1) y=16*y+y; + r[i]=Math.floor((x*50+y*50)/100); + r[i]=r[i].toString(16); + if(r[i].length==1) r[i]="0"+r[i]; + } +return("#"+r[0]+r[1]+r[2]); +} \ No newline at end of file Added: trunk/misc/design/11cornersNifty2/colorsettings.php =================================================================== --- trunk/misc/design/11cornersNifty2/colorsettings.php (rev 0) +++ trunk/misc/design/11cornersNifty2/colorsettings.php 2008-01-26 17:21:59 UTC (rev 4824) @@ -0,0 +1,70 @@ +<?php +header("Content-Type: text/css"); + +/** + * force caching in browser + * works in firefox and internet explorer + */ +Header("Last-Modified: " . gmdate("D, d M Y H:i:s",mktime (0,0,0,1,1,2000)) . " GMT"); // Date in the past +Header("Expires: Mon, 26 Jul 2100 05:00:00 GMT"); // In other words... never expire the image +Header("Cache-Control: max-age=10000000, s-maxage=1000000, proxy-revalidate, must-revalidate"); + + +/* + * Created on 26.10.2006 + * + * To change the template for this generated file go to + * Window - Preferences - PHPeclipse - PHP - Code Templates + */ +?> + +/** + * background color + * #linDivThumbNavi amd #divSlideshowControlsInner used in view_img.html.php + */ + body { + background-color: #<?php echo $_GET['bodybg']; ?>; + } + + #linDivMain, #linDivMetaStaticOuter, #linDivNavigationOuter, /*.linButton,*/ #linDivThumbnaviOuter, #linDivSlideshowControls, .roundAlphabottomInner, .linBackground { + background-color: #<?php echo $_GET['bg']; ?>; + } + +/** + * font color + */ + body, #linDivMenu ul a, #linDivMenu ul span, #linDivMenu ul div { + color: #<?php echo $_GET['font']; ?>; + } + +/** + * albums color + */ + .linDivFolder { + background-color: #<?php echo $_GET['albumsbg']; ?>; + } + +/** + * link/form colors + */ + a:link, a:visited /*, .linButton*/ { + color: #<?php echo $_GET['links']; ?>; + } + a:hover /*, .linButton:hover*/ { + color: #<?php echo $_GET['linkshover']; ?>; + } + + .linForms { + background-color: #<?php echo $_GET['fieldscolor']; ?>; + border: 1px solid grey; + } + +/** + * menu + */ + #linDivMenu ul a:hover, #linDivMenu ul span:hover { + background: #bbbbbb; + } + #linDivMenu ul ul, .linInputMenu { + background-color: #eeeeee; + } Added: trunk/misc/design/11cornersNifty2/csshover.htc =================================================================== --- trunk/misc/design/11cornersNifty2/csshover.htc (rev 0) +++ trunk/misc/design/11cornersNifty2/csshover.htc 2008-01-26 17:21:59 UTC (rev 4824) @@ -0,0 +1,120 @@ +<attach event="ondocumentready" handler="parseStylesheets" /> +<script> +/** + * Whatever:hover - V1.42.060206 - hover & active + * ------------------------------------------------------------ + * (c) 2005 - Peter Nederlof + * Peterned - http://www.xs4all.nl/~peterned/ + * License - http://creativecommons.org/licenses/LGPL/2.1/ + * + * Whatever:hover is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Whatever:hover 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 + * Lesser General Public License for more details. + * + * Credits and thanks to: + * Arnoud Berendsen, Martin Reurings, Robert Hanson + * + * howto: body { behavior:url("csshover.htc"); } + * ------------------------------------------------------------ + */ + +var csshoverReg = /(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(... [truncated message content] |
From: <fan...@us...> - 2008-01-26 17:25:56
|
Revision: 4825 http://linpha.svn.sourceforge.net/linpha/?rev=4825&view=rev Author: fangehrn Date: 2008-01-26 09:25:41 -0800 (Sat, 26 Jan 2008) Log Message: ----------- Modified Paths: -------------- trunk/misc/design/2utf8/Linpha2.php Added Paths: ----------- trunk/misc/design/11cornersNifty/ Removed Paths: ------------- trunk/misc/design/11cornersNifty2/ Copied: trunk/misc/design/11cornersNifty (from rev 4824, trunk/misc/design/11cornersNifty2) Modified: trunk/misc/design/2utf8/Linpha2.php =================================================================== --- trunk/misc/design/2utf8/Linpha2.php 2008-01-26 17:21:59 UTC (rev 4824) +++ trunk/misc/design/2utf8/Linpha2.php 2008-01-26 17:25:41 UTC (rev 4825) @@ -1,4 +1,3 @@ -<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> @@ -178,7 +177,7 @@ <hr class="linStyle" /> <h2>Test Zeichenkodierung</h2> - \xC4\xD6\xDC \xE4\xF6\xFC \xE9\xE8\xE0 $\xA3\x80@\xA2\xB0\xA7 + ��� ��� ��� $��@��� <br /><br /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fan...@us...> - 2008-01-29 11:13:58
|
Revision: 4828 http://linpha.svn.sourceforge.net/linpha/?rev=4828&view=rev Author: fangehrn Date: 2008-01-29 03:13:55 -0800 (Tue, 29 Jan 2008) Log Message: ----------- added jomla like menu very nice Modified Paths: -------------- trunk/misc/design/14cornersSchill/colorsettings.php trunk/misc/design/14cornersSchill/roundCorners.css trunk/misc/design/info.txt Added Paths: ----------- trunk/misc/design/21menuCSS/ trunk/misc/design/21menuCSS/csshover.htc trunk/misc/design/21menuCSS/expand.gif trunk/misc/design/21menuCSS/global.css trunk/misc/design/21menuCSS/home.css trunk/misc/design/21menuCSS/index.php trunk/misc/design/21menuCSS/menu.css trunk/misc/design/22menuJSCook/ trunk/misc/design/22menuJSCook/JSCookMenu/ trunk/misc/design/22menuJSCook/JSCookMenu/JSCookMenu.js trunk/misc/design/22menuJSCook/JSCookMenu/ThemeGray/ trunk/misc/design/22menuJSCook/JSCookMenu/ThemeGray/theme.css trunk/misc/design/22menuJSCook/JSCookMenu/ThemeGray/theme.js trunk/misc/design/22menuJSCook/JSCookMenu/ThemeIE/ trunk/misc/design/22menuJSCook/JSCookMenu/ThemeIE/arrow.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeIE/folder.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeIE/link.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeIE/theme.css trunk/misc/design/22menuJSCook/JSCookMenu/ThemeIE/theme.js trunk/misc/design/22menuJSCook/JSCookMenu/ThemeMiniBlack/ trunk/misc/design/22menuJSCook/JSCookMenu/ThemeMiniBlack/theme.css trunk/misc/design/22menuJSCook/JSCookMenu/ThemeMiniBlack/theme.js trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/ trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/arrow.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/arrowdown.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/blank.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/copy.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/copyshadow.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/cut.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/cutshadow.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/help.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/helpshadow.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/new.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/open.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/openshadow.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/paste.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/pasteshadow.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/save.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/saveshadow.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/spacer.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/theme.css trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice/theme.js trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice2003/ trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice2003/arrow.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice2003/arrowdown.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice2003/blank.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice2003/mainmenubg.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice2003/mainmenubg.png trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice2003/menubg.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice2003/menubg.png trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice2003/spacer.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice2003/theme.css trunk/misc/design/22menuJSCook/JSCookMenu/ThemeOffice2003/theme.js trunk/misc/design/22menuJSCook/JSCookMenu/ThemePanel/ trunk/misc/design/22menuJSCook/JSCookMenu/ThemePanel/arrow.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemePanel/arrowdown.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemePanel/blank.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemePanel/theme.css trunk/misc/design/22menuJSCook/JSCookMenu/ThemePanel/theme.js trunk/misc/design/22menuJSCook/JSCookMenu/ThemePanelLinpha/ trunk/misc/design/22menuJSCook/JSCookMenu/ThemePanelLinpha/arrow.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemePanelLinpha/arrowdown.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemePanelLinpha/blank.gif trunk/misc/design/22menuJSCook/JSCookMenu/ThemePanelLinpha/theme.css trunk/misc/design/22menuJSCook/JSCookMenu/ThemePanelLinpha/theme.js trunk/misc/design/22menuJSCook/JSCookMenu/effect.js trunk/misc/design/22menuJSCook/global.css trunk/misc/design/22menuJSCook/home.css trunk/misc/design/22menuJSCook/indexFromHTML.php trunk/misc/design/22menuJSCook/indexJS.php trunk/misc/design/22menuJSCook/indexJSEffectFade.php trunk/misc/design/22menuJSCook/indexJSEffectSlide.php trunk/misc/design/22menuJSCook/indexJSclickOpen.php Modified: trunk/misc/design/14cornersSchill/colorsettings.php =================================================================== --- trunk/misc/design/14cornersSchill/colorsettings.php 2008-01-28 16:33:41 UTC (rev 4827) +++ trunk/misc/design/14cornersSchill/colorsettings.php 2008-01-29 11:13:55 UTC (rev 4828) @@ -65,7 +65,36 @@ background-color: #<?php echo $_GET['fieldscolor']; ?>; border: 1px solid grey; } + +/** + * round corners + */ + .linCornMain { + min-width:20em; + max-width:3000px; + } + .linCornMain .linCornC, /* C = content */ + .linCornMain .linCornT, /* T = Top */ + .linCornMain .linCornB, /* B = Bottom */ + .linCornMain .linCornB div { + background:transparent url(box.php?col=87CEFA) no-repeat top right; + } + + + + .linCornFolder { + min-width:20em; + max-width:800px; + } + + .linCornFolder .linCornC, /* C = content */ + .linCornFolder .linCornT, /* T = Top */ + .linCornFolder .linCornB, /* B = Bottom */ + .linCornFolder .linCornB div { + background:transparent url(box.php?col=D5FCF4&w=1000&h=500) no-repeat top right; + } + /** * menu */ Modified: trunk/misc/design/14cornersSchill/roundCorners.css =================================================================== --- trunk/misc/design/14cornersSchill/roundCorners.css 2008-01-28 16:33:41 UTC (rev 4827) +++ trunk/misc/design/14cornersSchill/roundCorners.css 2008-01-29 11:13:55 UTC (rev 4828) @@ -1,37 +1,4 @@ -/* - -- Even more rounded corners with CSS: Base stylesheet -- -*/ -.linCornMain { - min-width:20em; - max-width:3000px; /* based on image dimensions - not quite consistent with drip styles yet */ -} - -.linCornMain .linCornC, /* C = content */ -.linCornMain .linCornT, /* T = Top */ -.linCornMain .linCornB, /* B = Bottom */ -.linCornMain .linCornB div { - background:transparent url(box.php?col=87CEFA) no-repeat top right; - /*_background-image:url(dialog2-blue.gif);*/ /* IE hack */ -} - - - -.linCornFolder { - min-width:20em; - max-width:800px; /* based on image dimensions - not quite consistent with drip styles yet */ -} - -.linCornFolder .linCornC, /* C = content */ -.linCornFolder .linCornT, /* T = Top */ -.linCornFolder .linCornB, /* B = Bottom */ -.linCornFolder .linCornB div { - background:transparent url(box.php?col=D5FCF4&w=1000&h=500) no-repeat top right; - /*_background-image:url(dialog2-blue.gif);*/ /* IE hack */ -} - - - .linCorn { position:relative; margin:0px auto; @@ -44,7 +11,6 @@ position:relative; zoom:1; _overflow-y:hidden; - /*margin-top: -15px;*/ padding:5px 15px 0px 0px; } @@ -82,26 +48,3 @@ margin-left:-15px; background-position:bottom left; } - -/*.linCorn .hd, -.linCorn .bd, -.linCorn .ft { - position:relative; -}*/ - -/*.linCorn .wrapper {*/ - /* extra content protector - preventing vertical overflow (past background) */ -/* position:static; - max-height:1000px; - overflow:auto; *//* note that overflow:auto causes a rather annoying redraw "lag" in Firefox 2, and may degrade performance. Might be worth trying without if you aren't worried about height/overflow issues. */ -/*}*/ - -/*.linCorn h1, -.linCorn p { - margin:0px;*/ /* margins will blow out backgrounds, leaving whitespace. */ -/* padding:0.5em 0px 0.5em 0px;*/ -}*/ - -/*.linCorn h1 { - padding-bottom:0px; -}*/ \ No newline at end of file Added: trunk/misc/design/21menuCSS/csshover.htc =================================================================== --- trunk/misc/design/21menuCSS/csshover.htc (rev 0) +++ trunk/misc/design/21menuCSS/csshover.htc 2008-01-29 11:13:55 UTC (rev 4828) @@ -0,0 +1,120 @@ +<attach event="ondocumentready" handler="parseStylesheets" /> +<script> +/** + * Whatever:hover - V1.42.060206 - hover & active + * ------------------------------------------------------------ + * (c) 2005 - Peter Nederlof + * Peterned - http://www.xs4all.nl/~peterned/ + * License - http://creativecommons.org/licenses/LGPL/2.1/ + * + * Whatever:hover is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Whatever:hover 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 + * Lesser General Public License for more details. + * + * Credits and thanks to: + * Arnoud Berendsen, Martin Reurings, Robert Hanson + * + * howto: body { behavior:url("csshover.htc"); } + * ------------------------------------------------------------ + */ + +var csshoverReg = /(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i, +currentSheet, doc = window.document, hoverEvents = [], activators = { + onhover:{on:'onmouseover', off:'onmouseout'}, + onactive:{on:'onmousedown', off:'onmouseup'} +} + +function parseStylesheets() { + if(!/MSIE (5|6)/.test(navigator.userAgent)) return; + window.attachEvent('onunload', unhookHoverEvents); + var sheets = doc.styleSheets, l = sheets.length; + for(var i=0; i<l; i++) + parseStylesheet(sheets[i]); +} + function parseStylesheet(sheet) { + if(sheet.imports) { + try { + var imports = sheet.imports, l = imports.length; + for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]); + } catch(securityException){} + } + + try { + var rules = (currentSheet = sheet).rules, l = rules.length; + for(var j=0; j<l; j++) parseCSSRule(rules[j]); + } catch(securityException){} + } + + function parseCSSRule(rule) { + var select = rule.selectorText, style = rule.style.cssText; + if(!csshoverReg.test(select) || !style) return; + + var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1'); + var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo); + var className = (/\.([a-z0-9_-]*on(hover|active))/i).exec(newSelect)[1]; + var affected = select.replace(/:(hover|active).*$/, ''); + var elements = getElementsBySelect(affected); + if(elements.length == 0) return; + + currentSheet.addRule(newSelect, style); + for(var i=0; i<elements.length; i++) + new HoverElement(elements[i], className, activators[pseudo]); + } + +function HoverElement(node, className, events) { + if(!node.hovers) node.hovers = {}; + if(node.hovers[className]) return; + node.hovers[className] = true; + hookHoverEvent(node, events.on, function() { node.className += ' ' + className; }); + hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); }); +} + function hookHoverEvent(node, type, handler) { + node.attachEvent(type, handler); + hoverEvents[hoverEvents.length] = { + node:node, type:type, handler:handler + }; + } + + function unhookHoverEvents() { + for(var e,i=0; i<hoverEvents.length; i++) { + e = hoverEvents[i]; + e.node.detachEvent(e.type, e.handler); + } + } + +function getElementsBySelect(rule) { + var parts, nodes = [doc]; + parts = rule.split(' '); + for(var i=0; i<parts.length; i++) { + nodes = getSelectedNodes(parts[i], nodes); + } return nodes; +} + function getSelectedNodes(select, elements) { + var result, node, nodes = []; + var identify = (/\#([a-z0-9_-]+)/i).exec(select); + if(identify) { + var element = doc.getElementById(identify[1]); + return element? [element]:nodes; + } + + var classname = (/\.([a-z0-9_-]+)/i).exec(select); + var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, ''); + var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false; + for(var i=0; i<elements.length; i++) { + result = tagName? elements[i].all.tags(tagName):elements[i].all; + for(var j=0; j<result.length; j++) { + node = result[j]; + if(classReg && !classReg.test(node.className)) continue; + nodes[nodes.length] = node; + } + } + + return nodes; + } +</script> \ No newline at end of file Added: trunk/misc/design/21menuCSS/expand.gif =================================================================== (Binary files differ) Property changes on: trunk/misc/design/21menuCSS/expand.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/misc/design/21menuCSS/global.css =================================================================== --- trunk/misc/design/21menuCSS/global.css (rev 0) +++ trunk/misc/design/21menuCSS/global.css 2008-01-29 11:13:55 UTC (rev 4828) @@ -0,0 +1,138 @@ +<!-- +/** + * common definitions + * All 'em' calculations are based on 1 px = 0.0626em + */ + + #linBody { + font-family: arial, helvetica, sans-serif; + margin: 10px; + padding: 0px; + } + + + h1.linStyle { + font-size: 1.5em; + font-family: Verdana, Arial, Helvetica, sans-serif; + margin: 0px; + margin-top: 0px; + margin-bottom: 5px; + padding: 0px; + } + + h2.linStyle { + font-size: 1.2em; + font-family: Verdana, Arial, Helvetica, sans-serif; + margin: 0px; + margin-top: 0px; + margin-bottom: 5px; + padding: 0px; + } + + /** + * link button + */ + .linButton { + /*cursor: pointer; + border: 0; + font-size: 0.8em; + text-decoration: underline;*/ + } + + +/** + * title + */ + #linDivTitle + { + margin: 0; + margin-bottom: 20px; + margin-left: 90px; + + font-size: 2em; + } + #linDivTitle a:link, #linDivTitle a:visited, #linDivTitle a:hover + { + color: #444444; + text-decoration: none; + } + #linDivTitle a:hover + { + text-decoration: underline; + } + +/** + * navigation + */ + #linDivNavigationOuter { + margin: 0; + margin-bottom: 10px; + padding: 0; + } + #linDivNavigation + { + margin: 0; + padding: 5px; + } + +/** + * main + */ + /*#linDivMainOuter { + margin: 0; + padding: 0; + } + #linDivMain { + margin: 0; + padding: 0px; + padding-left: 10px; + padding-right: 10px; + }*/ + +/** + * folder (used in home view, and maybe as subfolders) + * background-color and border-color are set in colorsettings.php + */ + .linDivFolder { + margin: 5px 5px 0px 5px; + padding: 10px 0 0 0; + + /*width: 700px;*/ + } + + .linDivThumbnail { + height: 140px; + float: left; + } + + .linImgFolderThumbnail { + margin: 0; + margin-left: 20px; + margin-right: 30px; + margin-top: 5px; + padding: 0; + + width: 130px; + height: 130px; + + border: 0; + } + + .linDivFolderText { + margin: 0; + padding: 5px; + } + + .linDivFolderComment { + overflow: auto; + max-height: 300px; + + margin: 0; + margin-top: 10px; + margin-bottom: 10px; + padding: 0; + + /* word-wrap: break-word; fix ie to force width, but creates warnings in firefox !!! */ + } + +--> \ No newline at end of file Added: trunk/misc/design/21menuCSS/home.css =================================================================== --- trunk/misc/design/21menuCSS/home.css (rev 0) +++ trunk/misc/design/21menuCSS/home.css 2008-01-29 11:13:55 UTC (rev 4828) @@ -0,0 +1,18 @@ + +hr.linStyle { + clear: both; +} + +.linDivRandomimg, .linDivNewimg { + float: left; + margin-left: 40px; +} + +.linImgRandomimg, .linImgNewimg { + border: 0; +} + +.linDivFolder a +{ + text-decoration: none; +} \ No newline at end of file Added: trunk/misc/design/21menuCSS/index.php =================================================================== --- trunk/misc/design/21menuCSS/index.php (rev 0) +++ trunk/misc/design/21menuCSS/index.php 2008-01-29 11:13:55 UTC (rev 4828) @@ -0,0 +1,241 @@ +<?php +header('content-type: text/html; charset: utf-8'); +/*echo '<?xml version="1.0" encoding="utf-8"?>'."\n"; not necessary, IE has problems with this*/ +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="content-type" content="text/html; charset=UTF-8"> + +<title>Linpha 2.0</title> + +<!-- css includes --> + +<link rel='stylesheet' href='../14cornersSchill/colorsettings.php?bg=87CEFA&bodybg=DDDDDD&font=000000&albumsbg=D5FCF4&links=005388&linkshover=666666&fieldscolor=CCCCCC' type='text/css'> +<link rel='stylesheet' href='./global.css' type='text/css'> +<link rel='stylesheet' href='./home.css' type='text/css'> + +<link rel="stylesheet" href="../14cornersSchill/roundCorners.css" media="screen" /> + +<link rel="stylesheet" href="./menu.css" media="screen" /> + <!--[if IE]> + <style type="text/css" media="screen"> + #menu ul { width: 1em; } /* this will be a *min* width */ + #menu ul ul { width: 12em; } + #menu ul li { float: left; width: 100%; } + body { behavior: url(./csshover.htc); font-size: 100%; } + #menu ul li a { height: 1%; } + #menu a, #menu span { font: bold 0.7em/1.4em arial, helvetica, sans-serif; } + </style> + <![endif]--> + +</head> + + +<body id="linBody"> + +<!-- menu --> +<div id="linDivMenu"> + <ul style="margin-left: 50px;"> + <li><a href="/linpha2/?&linCat=alb">Home</a></li> + </ul> + <ul> + <li><span>Suche </span> + <ul> + <li><a href="/linpha2/?&linCat=search">Extended Search</a></li> + <li> + <div> + <form method="GET" action="/linpha2/?&linCat=search"> + <input type="text" class="linForms" name="search_text" value="" /> + <input type="hidden" name="button[meta][all]" value="1" /> + + <input type="hidden" name="cmd" value="search" /> + <input type="hidden" name="linCat" value="search" /> + <input type="submit" name="submit" class="linButton linInputMenu" value="Suche" /> + </form> + </div> + </li> + </ul> + </li> + </ul> + <ul> + <li> + <span>Login </span> + <ul id="linMenuLogin"> + <li> + <div> + <form action="" method="POST" onsubmit="new Ajax.Updater('linDivMenu', LINPHA_CLIENT + '/?linCat=ajax&reloadmenu&linId='+IdCurrent, {method: 'post', asynchronous:true, parameters:Form.serialize(this), evalScripts:true}); return false;"> + <!-- login infos --> + <br /> + <label for="linFormUsername" style="display: block; float: left; width: 80px;">Username: </label><input style="width: 105px;" class="linForms" type="text" name="username" value="" id="linFormUsername" /><br /> + <label for="linFormPassword" style="display: block; float: left; width: 80px;">Password: </label><input style="width: 105px;" class="linForms" type="password" name="password" value="" id="linFormPassword" /><br /> + <input type="checkbox" name="rememberme" value="true" id="linFormCheckboxRemember" /><label for="linFormCheckboxRemember">Remember Me</label> <input type="hidden" name="cmd" value="login" /> + <input type="submit" name="submit" class="linButton linInputMenu" value="Login" /><br /><br /> + <div style="font-size: smaller; border: 0px;">Um sich anmelden zu können, müssen Cookies aktiviert sein.</div> + </form> + </div> + </li> + </ul> + </li> + </ul> + <ul> + <li><span>More </span> + <ul id="linMenuMore"> + <li><span>Basket </span> + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&admin_cmd=basket_add_all">Add All To Basket</a></li> + + <li><a href="/linpha2/?&linCat=alb&linId=4&view=basket">Switch To Basket View</a></li> + <li><a href="/linpha2/?&linCat=basket">Open Basket (0 Images)</a></li> + </ul> + </li> + <li><span>Ansicht </span> + <ul> + <li><span>Sort </span> + + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Name Asc">Name Asc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Name Desc">Name Desc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Date Asc">Date Asc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Date Desc">Date Desc</a></li> + </ul> + </li> + + <li><span>Ansicht </span> + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&view=thumb">Normal</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&view=thumbdetail">Detail</a></li> + </ul> + </li> + <li><span>Thumb Size </span> + + <ul> + <li><a href="javascript:myLinThumbnails.setTnSize(50)">50 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(75)">75 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(100)">100 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(150)">150 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(200)">200 Pixel</a></li> + + <li><a href="javascript:myLinThumbnails.setTnSize(250)">250 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(300)">300 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(400)">400 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(500)">500 Pixel</a></li> + </ul> + </li> + <li><span>Thumb Nr </span> + + <ul> + <li><a href="javascript:myLinThumbnails.setNrImages('auto')">auto</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('10')">10</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('25')">25</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('50')">50</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('100')">100</a></li> + + <li><a href="javascript:myLinThumbnails.setNrImages('200')">200</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('all')">all</a></li> + </ul> + </li> + </ul> + </li> + </ul> + </li> + </ul> + <!-- icons --> + <div> + <a href="javascript:myLinThumbnails.loadSlideshow()"><img src="../slideshow.png" border="0" title="Play Slideshow" /></a> + </div> +</div> + +<div style="clear: both;"></div> +<!-- end menu --> + +<div id="linDivMainOuter" class="linCorn linCornMain"> + <div class="linCornC"> + <div class="linCornT"></div> + + <div id="linDivMain"> + <h1 class="linStyle">Willkommen</h1>Hi, this is the home of "The PHP Photo Archive" <a href="http://linpha.sf.net">aka LinPHA</a>.<br /><br /> + + <!-- Random Images --> + + <!-- New Images --> + + <!-- Browse by Date --> + + <!-- Albums --> + <hr class="linStyle" /> + + <h1 class="linStyle">Alben</h1> + + <div class="linCorn linCornFolder"> + <div class="linCornC"> + <div class="linCornT"></div> + + <div class="linDivFolder"> + + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb1.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2005.05.14-16 Barcelona</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + + </div> + + </div> + <div class="linCornB"><div></div></div> + </div> + + <div class="linCorn linCornFolder"> + <div class="linCornC"> + <div class="linCornT"></div> + + <div class="linDivFolder"> + + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb2.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.07-14-28 Fuerteventura</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + + </div> + </div> + <div class="linCornB"><div></div></div> + </div> + + <div class="linCorn linCornFolder"> + <div class="linCornC"> + <div class="linCornT"></div> + + <div class="linDivFolder"> + + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb3.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.12.15-16 Skifahren Samnaun</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + + </div> + </div> + <div class="linCornB"><div></div></div> + </div> + + <br /> + </div> + + </div> + <div class="linCornB"><div></div></div> +</div> + +</body> +</html> + Added: trunk/misc/design/21menuCSS/menu.css =================================================================== --- trunk/misc/design/21menuCSS/menu.css (rev 0) +++ trunk/misc/design/21menuCSS/menu.css 2008-01-29 11:13:55 UTC (rev 4828) @@ -0,0 +1,123 @@ +/** + * menu + */ + #linDivMenu { + margin: 0; + padding: 0; + + width: 100%; + float: left; + } + + /** + * icons + */ + #linDivMenu div { + margin: 0; + margin-left: 5px; + margin-right: 5px; + padding: 0; + float: left; + } + #linDivMenu div a { + margin: 0; + padding: 0; + float: left; + } + + /** + * first level elements + */ + #linDivMenu ul { + list-style: none; + + margin: 0; + margin-left: 5px; + margin-right: 5px; + padding: 0; + + width: auto; + float: left; + + border-top: 1px solid #000000; + + white-space: nowrap; + } + #linDivMenu ul a, #linDivMenu ul span, #linDivMenu ul div { + display: block; + + margin: 0; + padding-left: 10px; + padding-right: 10px; + padding-top: 2px; + padding-bottom: 2px; + + text-align: center; + text-decoration: none; + + } + #linDivMenu ul span { + background: url(./expand.gif) no-repeat 100% 100%; + } + + + /** + * second and more level elements + */ + #linDivMenu ul ul { + position: absolute; + z-index: 500; + + border: 0; + + /** + * relativ to parent element! be careful + */ + margin: 0; + padding: 0; + font-size: 1em; + + } + #linDivMenu ul ul a, #linDivMenu ul ul span, #linDivMenu ul ul div { + margin: 0; + padding-left: 5px; + padding-right: 15px; + padding-top: 2px; + padding-bottom: 2px; + + border-width: 1px; + border-style: solid; + border-color: #ccc #888 #555 #bbb; + text-align: left; + } + + /** + * third stage, switch to horizontal menu entries + */ + #linDivMenu ul ul ul { + position: absolute; + top: 0; + left: 100%; + } + + + /** + * the most important thing + * enable/disable submenus + */ + #linDivMenu ul ul, + #linDivMenu ul li:hover ul ul, + #linDivMenu ul ul li:hover ul ul + {display: none;} + + #linDivMenu ul li:hover ul, + #linDivMenu ul ul li:hover ul, + #linDivMenu ul ul ul li:hover ul + {display: block;} + + #linDivMenu li {position: relative;} + + +/** + * end menu + */ Added: trunk/misc/design/22menuJSCook/JSCookMenu/JSCookMenu.js =================================================================== --- trunk/misc/design/22menuJSCook/JSCookMenu/JSCookMenu.js (rev 0) +++ trunk/misc/design/22menuJSCook/JSCookMenu/JSCookMenu.js 2008-01-29 11:13:55 UTC (rev 4828) @@ -0,0 +1,1658 @@ +/* + JSCookMenu v2.0.3 (c) Copyright 2002-2006 by Heng Yuan + + http://jscook.sourceforge.net/JSCookMenu/ + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + ITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +// default node properties +var _cmNodeProperties = +{ + // theme prefix + prefix: '', + + // main menu display attributes + // + // Note. When the menu bar is horizontal, + // mainFolderLeft and mainFolderRight are + // put in <span></span>. When the menu + // bar is vertical, they would be put in + // a separate TD cell. + + // HTML code to the left of the folder item + mainFolderLeft: '', + // HTML code to the right of the folder item + mainFolderRight: '', + // HTML code to the left of the regular item + mainItemLeft: '', + // HTML code to the right of the regular item + mainItemRight: '', + + // sub menu display attributes + + // HTML code to the left of the folder item + folderLeft: '', + // HTML code to the right of the folder item + folderRight: '', + // HTML code to the left of the regular item + itemLeft: '', + // HTML code to the right of the regular item + itemRight: '', + // cell spacing for main menu + mainSpacing: 0, + // cell spacing for sub menus + subSpacing: 0, + + // optional settings + // If not set, use the default + + // auto disappear time for submenus in milli-seconds + delay: 500, + + // 1st layer sub menu starting index + zIndexStart: 1000, + // z-index incremental step for subsequent layers + zIndexInc: 5, + + // sub menu header appears before the sub menu table + subMenuHeader: null, + // sub menu header appears after the sub menu table + subMenuFooter: null, + + // submenu location adjustments + // + // offsetHMainAdjust for adjusting the first submenu + // of a 'hbr' menu. + // offsetVMainAdjust for adjusting the first submenu + // of a 'vbr' menu. + // offsetSubAdjust for subsequent level of submenus + // + offsetHMainAdjust: [0, 0], + offsetVMainAdjust: [0, 0], + offsetSubAdjust: [0, 0], + + // act on click to open sub menu + // not yet implemented + // 0 : use default behavior + // 1 : hover open in all cases + // 2 : click on main, hover on sub + // 3 : click open in all cases (illegal as of 1.5) + clickOpen: 1, + + // special effects on open/closing a sub menu + effect: null +}; + +// Globals +var _cmIDCount = 0; +var _cmIDName = 'cmSubMenuID'; // for creating submenu id + +var _cmTimeOut = null; // how long the menu would stay +var _cmCurrentItem = null; // the current menu item being selected; + +var _cmNoAction = new Object (); // indicate that the item cannot be hovered. +var _cmNoClick = new Object (); // similar to _cmNoAction but does not respond to mouseup/mousedown events +var _cmSplit = new Object (); // indicate that the item is a menu split + +var _cmMenuList = new Array (); // a list of the current menus +var _cmItemList = new Array (); // a simple list of items + +var _cmFrameList = new Array (); // a pool of reusable iframes +var _cmFrameListSize = 0; // keep track of the actual size +var _cmFrameIDCount = 0; // keep track of the frame id +var _cmFrameMasking = true; // use the frame masking + +// disable iframe masking for IE7 +/*@cc_on + @if (@_jscript_version >= 5.6) + if (_cmFrameMasking) + { + var v = navigator.appVersion; + var i = v.indexOf ("MSIE "); + if (i >= 0) + { + if (parseInt (navigator.appVersion.substring (i + 5)) >= 7) + _cmFrameMasking = false; + } + } + @end +@*/ + +var _cmClicked = false; // for onClick + +// flag for turning on off hiding objects +// +// 0: automatic +// 1: hiding +// 2: no hiding +var _cmHideObjects = 0; + +// Utility function to do a shallow copy a node property +function cmClone (nodeProperties) +{ + var returnVal = new Object (); + for (v in nodeProperties) + returnVal[v] = nodeProperties[v]; + return returnVal; +} + +// +// store the new menu information into a structure to retrieve it later +// +function cmAllocMenu (id, menu, orient, nodeProperties, prefix) +{ + var info = new Object (); + info.div = id; + info.menu = menu; + info.orient = orient; + info.nodeProperties = nodeProperties; + info.prefix = prefix; + var menuID = _cmMenuList.length; + _cmMenuList[menuID] = info; + return menuID; +} + +// +// request a frame +// +function cmAllocFrame () +{ + if (_cmFrameListSize > 0) + return cmGetObject (_cmFrameList[--_cmFrameListSize]); + var frameObj = document.createElement ('iframe'); + var id = _cmFrameIDCount++; + frameObj.id = 'cmFrame' + id; + frameObj.frameBorder = '0'; + frameObj.style.display = 'none'; + frameObj.src = 'javascript:false'; + document.body.appendChild (frameObj); + frameObj.style.filter = 'alpha(opacity=0)'; + frameObj.style.zIndex = 99; + frameObj.style.position = 'absolute'; + frameObj.style.border = '0'; + frameObj.scrolling = 'no'; + return frameObj; +} + +// +// make a frame resuable later +// +function cmFreeFrame (frameObj) +{ + _cmFrameList[_cmFrameListSize++] = frameObj.id; +} + +////////////////////////////////////////////////////////////////////// +// +// Drawing Functions and Utility Functions +// +////////////////////////////////////////////////////////////////////// + +// +// produce a new unique id +// +function cmNewID () +{ + return _cmIDName + (++_cmIDCount); +} + +// +// return the property string for the menu item +// +function cmActionItem (item, isMain, idSub, menuInfo, menuID) +{ + _cmItemList[_cmItemList.length] = item; + var index = _cmItemList.length - 1; + idSub = (!idSub) ? 'null' : ('\'' + idSub + '\''); + + var clickOpen = menuInfo.nodeProperties.clickOpen; + var onClick = (clickOpen == 3) || (clickOpen == 2 && isMain); + + var param = 'this,' + isMain + ',' + idSub + ',' + menuID + ',' + index; + + var returnStr; + if (onClick) + returnStr = ' onmouseover="cmItemMouseOver(' + param + ',false)" onmousedown="cmItemMouseDownOpenSub (' + param + ')"'; + else + returnStr = ' onmouseover="cmItemMouseOverOpenSub (' + param + ')" onmousedown="cmItemMouseDown (' + param + ')"'; + return returnStr + ' onmouseout="cmItemMouseOut (' + param + ')" onmouseup="cmItemMouseUp (' + param + ')"'; +} + +// +// this one is used by _cmNoClick to only take care of onmouseover and onmouseout +// events which are associated with menu but not actions associated with menu clicking/closing +// +function cmNoClickItem (item, isMain, idSub, menuInfo, menuID) +{ + // var index = _cmItemList.push (item) - 1; + _cmItemList[_cmItemList.length] = item; + var index = _cmItemList.length - 1; + idSub = (!idSub) ? 'null' : ('\'' + idSub + '\''); + + var param = 'this,' + isMain + ',' + idSub + ',' + menuID + ',' + index; + + return ' onmouseover="cmItemMouseOver (' + param + ')" onmouseout="cmItemMouseOut (' + param + ')"'; +} + +function cmNoActionItem (item) +{ + return item[1]; +} + +function cmSplitItem (prefix, isMain, vertical) +{ + var classStr = 'cm' + prefix; + if (isMain) + { + classStr += 'Main'; + if (vertical) + classStr += 'HSplit'; + else + classStr += 'VSplit'; + } + else + classStr += 'HSplit'; + return eval (classStr); +} + +// +// draw the sub menu recursively +// +function cmDrawSubMenu (subMenu, prefix, id, nodeProperties, zIndexStart, menuInfo, menuID) +{ + var str = '<div class="' + prefix + 'SubMenu" id="' + id + '" style="z-index: ' + zIndexStart + ';position: absolute; top: 0px; left: 0px;">'; + if (nodeProperties.subMenuHeader) + str += nodeProperties.subMenuHeader; + + str += '<table summary="sub menu" id="' + id + 'Table" cellspacing="' + nodeProperties.subSpacing + '" class="' + prefix + 'SubMenuTable">'; + + var strSub = ''; + + var item; + var idSub; + var hasChild; + + var i; + + var classStr; + + for (i = 5; i < subMenu.length; ++i) + { + item = subMenu[i]; + if (!item) + continue; + + if (item == _cmSplit) + item = cmSplitItem (prefix, 0, true); + item.parentItem = subMenu; + item.subMenuID = id; + + hasChild = (item.length > 5); + idSub = hasChild ? cmNewID () : null; + + str += '<tr class="' + prefix + 'MenuItem"'; + if (item[0] != _cmNoClick) + str += cmActionItem (item, 0, idSub, menuInfo, menuID); + else + str += cmNoClickItem (item, 0, idSub, menuInfo, menuID); + str += '>' + + if (item[0] == _cmNoAction || item[0] == _cmNoClick) + { + str += cmNoActionItem (item); + str += '</tr>'; + continue; + } + + classStr = prefix + 'Menu'; + classStr += hasChild ? 'Folder' : 'Item'; + + str += '<td class="' + classStr + 'Left">'; + + if (item[0] != null) + str += item[0]; + else + str += hasChild ? nodeProperties.folderLeft : nodeProperties.itemLeft; + + str += '</td><td class="' + classStr + 'Text">' + item[1]; + + str += '</td><td class="' + classStr + 'Right">'; + + if (hasChild) + { + str += nodeProperties.folderRight; + strSub += cmDrawSubMenu (item, prefix, idSub, nodeProperties, zIndexStart + nodeProperties.zIndexInc, menuInfo, menuID); + } + else + str += nodeProperties.itemRight; + str += '</td></tr>'; + } + + str += '</table>'; + + if (nodeProperties.subMenuFooter) + str += nodeProperties.subMenuFooter; + str += '</div>' + strSub; + return str; +} + +// +// The function that builds the menu inside the specified element id. +// +// id id of the element +// orient orientation of the menu in [hv][ub][lr] format +// menu the menu object to be drawn +// nodeProperties properties for the theme +// prefix prefix of the theme +// +function cmDraw (id, menu, orient, nodeProperties, prefix) +{ + var obj = cmGetObject (id); + + if (!prefix) + prefix = nodeProperties.prefix; + if (!prefix) + prefix = ''; + if (!nodeProperties) + nodeProperties = _cmNodeProperties; + if (!orient) + orient = 'hbr'; + + var menuID = cmAllocMenu (id, menu, orient, nodeProperties, prefix); + var menuInfo = _cmMenuList[menuID]; + + // setup potentially missing properties + if (!nodeProperties.delay) + nodeProperties.delay = _cmNodeProperties.delay; + if (!nodeProperties.clickOpen) + nodeProperties.clickOpen = _cmNodeProperties.clickOpen; + if (!nodeProperties.zIndexStart) + nodeProperties.zIndexStart = _cmNodeProperties.zIndexStart; + if (!nodeProperties.zIndexInc) + nodeProperties.zIndexInc = _cmNodeProperties.zIndexInc; + if (!nodeProperties.offsetHMainAdjust) + nodeProperties.offsetHMainAdjust = _cmNodeProperties.offsetHMainAdjust; + if (!nodeProperties.offsetVMainAdjust) + nodeProperties.offsetVMainAdjust = _cmNodeProperties.offsetVMainAdjust; + if (!nodeProperties.offsetSubAdjust) + nodeProperties.offsetSubAdjust = _cmNodeProperties.offsetSubAdjust; + // save user setting on frame masking + menuInfo.cmFrameMasking = _cmFrameMasking; + + var str = '<table summary="main menu" class="' + prefix + 'Menu" cellspacing="' + nodeProperties.mainSpacing + '">'; + var strSub = ''; + + var vertical; + + // draw the main menu items + if (orient.charAt (0) == 'h') + { + str += '<tr>'; + vertical = false; + } + else + { + vertical = true; + } + + var i; + var item; + var idSub; + var hasChild; + + var classStr; + + for (i = 0; i < menu.length; ++i) + { + item = menu[i]; + + if (!item) + continue; + + item.menu = menu; + item.subMenuID = id; + + str += vertical ? '<tr' : '<td'; + str += ' class="' + prefix + 'MainItem"'; + + hasChild = (item.length > 5); + idSub = hasChild ? cmNewID () : null; + + str += cmActionItem (item, 1, idSub, menuInfo, menuID) + '>'; + + if (item == _cmSplit) + item = cmSplitItem (prefix, 1, vertical); + + if (item[0] == _cmNoAction || item[0] == _cmNoClick) + { + str += cmNoActionItem (item); + str += vertical? '</tr>' : '</td>'; + continue; + } + + classStr = prefix + 'Main' + (hasChild ? 'Folder' : 'Item'); + + str += vertical ? '<td' : '<span'; + str += ' class="' + classStr + 'Left">'; + + str += (item[0] == null) ? (hasChild ? nodeProperties.mainFolderLeft : nodeProperties.mainItemLeft) + : item[0]; + str += vertical ? '</td>' : '</span>'; + + str += vertical ? '<td' : '<span'; + str += ' class="' + classStr + 'Text">'; + str += item[1]; + + str += vertical ? '</td>' : '</span>'; + + str += vertical ? '<td' : '<span'; + str += ' class="' + classStr + 'Right">'; + + str += hasChild ? nodeProperties.mainFolderRight : nodeProperties.mainItemRight; + + str += vertical ? '</td>' : '</span>'; + + str += vertical ? '</tr>' : '</td>'; + + if (hasChild) + strSub += cmDrawSubMenu (item, prefix, idSub, nodeProperties, nodeProperties.zIndexStart, menuInfo, menuID); + } + if (!vertical) + str += '</tr>'; + str += '</table>' + strSub; + obj.innerHTML = str; +} + +// +// The function builds the menu inside the specified element id. +// +// This function is similar to cmDraw except that menu is taken from HTML node +// rather a javascript tree. This feature allows links to be scanned by search +// bots. +// +// This function basically converts HTML node to a javascript tree, and then calls +// cmDraw to draw the actual menu, replacing the hidden menu tree. +// +// Format: +// <div id="menu"> +// <ul style="visibility: hidden"> +// <li><span>icon</span><a href="link" title="description">main menu text</a> +// <ul> +// <li><span>icon</span><a href="link" title="description">submenu item</a> +// </li> +// </ul> +// </li> +// </ul> +// </div> +// +function cmDrawFromText (id, orient, nodeProperties, prefix) +{ + var domMenu = cmGetObject (id); + var menu = null; + for (var currentDomItem = domMenu.firstChild; currentDomItem; currentDomItem = currentDomItem.nextSibling) + { + if (!currentDomItem.tagName) + continue; + var tag = currentDomItem.tagName.toLowerCase (); + if (tag != 'ul' && tag != 'ol') + continue; + menu = cmDrawFromTextSubMenu (currentDomItem); + break; + } + if (menu) + cmDraw (id, menu, orient, nodeProperties, prefix); +} + +// +// a recursive function that build menu tree structure +// +function cmDrawFromTextSubMenu (domMenu) +{ + var items = new Array (); + for (var currentDomItem = domMenu.firstChild; currentDomItem; currentDomItem = currentDomItem.nextSibling) + { + if (!currentDomItem.tagName || currentDomItem.tagName.toLowerCase () != 'li') + continue; + if (currentDomItem.firstChild == null) + { + items[items.length] = _cmSplit; + continue; + } + var item = new Array (); + var currentItem = currentDomItem.firstChild; + var hasAction = false; + for (; currentItem; currentItem = currentItem.nextSibling) + { + // scan for span or div tag + if (!currentItem.tagName) + continue; + if (currentItem.className == 'cmNoClick') + { + item[0] = _cmNoClick; + item[1] = getActionHTML (currentItem); + hasAction = true; + break; + } + if (currentItem.className == 'cmNoAction') + { + item[0] = _cmNoAction; + item[1] = getActionHTML (currentItem); + hasAction = true; + break; + } + var tag = currentItem.tagName.toLowerCase (); + if (tag != 'span') + continue; + if (!currentItem.firstChild) + item[0] = null; + else + item[0] = currentItem.innerHTML; + currentItem = currentItem.nextSibling; + break; + } + if (hasAction) + { + items[items.length] = item; + continue; + } + if (!currentItem) + continue; + for (; currentItem; currentItem = currentItem.nextSibling) + { + if (!currentItem.tagName) + continue; + var tag = currentItem.tagName.toLowerCase (); + if (tag == 'a') + { + item[1] = currentItem.innerHTML; + item[2] = currentItem.href; + item[3] = currentItem.target; + item[4] = currentItem.title; + if (item[4] == '') + item[4] = null; + } + else if (tag == 'span' || tag == 'div') + { + item[1] = currentItem.innerHTML; + item[2] = null; + item[3] = null; + item[4] = null; + } + break; + } + + for (; currentItem; currentItem = currentItem.nextSibling) + { + // scan for span tag + if (!currentItem.tagName) + continue; + var tag = currentItem.tagName.toLowerCase (); + if (tag != 'ul' && tag != 'ol') + continue; + var subMenuItems = cmDrawFromTextSubMenu (currentItem); + for (i = 0; i < subMenuItems.length; ++i) + item[i + 5] = subMenuItems[i]; + break; + } + items[items.length] = item; + } + return items; +} + +// +// obtain the actual action item's action, which is inside a +// table. The first row should be it +// +function getActionHTML (htmlNode) +{ + var returnVal = '<td></td><td></td><td></td>'; + var currentDomItem; + // find the table first + for (currentDomItem = htmlNode.firstChild; currentDomItem; currentDomItem = currentDomItem.nextSibling) + { + if (currentDomItem.tagName && currentDomItem.tagName.toLowerCase () == 'table') + break; + } + if (!currentDomItem) + return returnVal; + // skip over tbody + for (currentDomItem = currentDomItem.firstChild; currentDomItem; currentDomItem = currentDomItem.nextSibling) + { + if (currentDomItem.tagName && currentDomItem.tagName.toLowerCase () == 'tbody') + break; + } + if (!currentDomItem) + return returnVal; + // get the first tr + for (currentDomItem = currentDomItem.firstChild; currentDomItem; currentDomItem = currentDomItem.nextSibling) + { + if (currentDomItem.tagName && currentDomItem.tagName.toLowerCase () == 'tr') + break; + } + if (!currentDomItem) + return returnVal; + return currentDomItem.innerHTML; +} + +// +// get the DOM object associated with the item +// +function cmGetMenuItem (item) +{ + if (!item.subMenuID) + return null; + var subMenu = cmGetObject (item.subMenuID); + // we are dealing with a main menu item + if (item.menu) + { + var menu = item.menu; + // skip over table, tbody, tr, reach td + subMenu = subMenu.firstChild.firstChild.firstChild.firstChild; + var i; + for (i = 0; i < menu.length; ++i) + { + if (menu[i] == item) + return subMenu; + subMenu = subMenu.nextSibling; + } + } + else if (item.parentItem) // sub menu item + { + var menu = item.parentItem; + var table = cmGetObject (item.subMenuID + 'Table'); + if (!table) + return null; + // skip over table, tbody, reach tr + subMenu = table.firstChild.firstChild; + var i; + for (i = 5; i < menu.length; ++i) + { + if (menu[i] == item) + return subMenu; + subMenu = subMenu.nextSibling; + } + } + return null; +} + +// +// disable a menu item +// +function cmDisableItem (item, prefix) +{ + if (!item) + return; + var menuItem = cmGetMenuItem (item); + if (!menuItem) + return; + if (item.menu) + menuItem.className = prefix + 'MainItemDisabled'; + else + menuItem.className = prefix + 'MenuItemDisabled'; + item.isDisabled = true; +} + +// +// enable a menu item +// +function cmEnableItem (item, prefix) +{ + if (!item) + return; + var menuItem = cmGetMenuItem (item); + if (!menuItem) + return; + if (item.menu) + menu.className = prefix + 'MainItem'; + else + menu.className = prefix + 'MenuItem'; + item.isDisabled = true; +} + +////////////////////////////////////////////////////////////////////// +// +// Mouse Event Handling Functions +// +////////////////////////////////////////////////////////////////////// + +// +// action should be taken for mouse moving in to the menu item +// +// Here we just do things concerning this menu item, w/o opening sub menus. +// +function cmItemMouseOver (obj, isMain, idSub, menuID, index, calledByOpenSub) +{ + if (!calledByOpenSub && _cmClicked) + { + cmItemMouseOverOpenSub (obj, isMain, idSub, menuID, index); + return; + } + + clearTimeout (_cmTimeOut); + + if (_cmItemList[index].isDisabled) + return; + + var prefix = _cmMenuList[menuID].prefix; + + if (!obj.cmMenuID) + { + obj.cmMenuID = menuID; + obj.cmIsMain = isMain; + } + + var thisMenu = cmGetThisMenu (obj, prefix); + + // insert obj into cmItems if cmItems doesn't have obj + if (!thisMenu.cmItems) + thisMenu.cmItems = new Array (); + var i; + for (i = 0; i < thisMenu.cmItems.length; ++i) + { + if (thisMenu.cmItems[i] == obj) + break; + } + if (i == thisMenu.cmItems.length) + { + //thisMenu.cmItems.push (obj); + thisMenu.cmItems[i] = obj; + } + + // hide the previous submenu that is not this branch + if (_cmCurrentItem) + { + // occationally, we get this case when user + // move the mouse slowly to the border + if (_cmCurrentItem == obj || _cmCurrentItem == thisMenu) + { + var item = _cmItemList[index]; + cmSetStatus (item); + return; + } + + var thatMenuInfo = _cmMenuList[_cmCurrentItem.cmMenuID]; + var thatPrefix = thatMenuInfo.prefix; + var thatMenu = cmGetThisMenu (_cmCurrentItem, thatPrefix); + + if (thatMenu != thisMenu.cmParentMenu) + { + if (_cmCurrentItem.cmIsMain) + _cmCurrentItem.className = thatPrefix + 'MainItem'; + else + _cmCurrentItem.className = thatPrefix + 'MenuItem'; + if (thatMenu.id != idSub) + cmHideMenu (thatMenu, thisMenu, thatMenuInfo); + } + } + + // okay, set the current menu to this obj + _cmCurrentItem = obj; + + // just in case, reset all items in this menu to MenuItem + cmResetMenu (thisMenu, prefix); + + var item = _cmItemList[index]; + var isDefaultItem = cmIsDefaultItem (item); + + if (isDefaultItem) + { + if (isMain) + obj.className = prefix + 'MainItemHover'; + else + obj.className = prefix + 'MenuItemHover'; + } + + cmSetStatus (item); +} + +// +// action should be taken for mouse moving in to the menu item +// +// This function also opens sub menu +// +function cmItemMouseOverOpenSub (obj, isMain, idSub, menuID, index) +{ + clearTimeout (_cmTimeOut); + + if (_cmItemList[index].isDisabled) + return; + + cmItemMouseOver (obj, isMain, idSub, menuID, index, true); + + if (idSub) + { + var subMenu = cmGetObject (idSub); + var menuInfo = _cmMenuList[menuID]; + var orient = menuInfo.orient; + var prefix = menuInfo.prefix; + cmShowSubMenu (obj, isMain, subMenu, menuInfo); + } +} + +// +// action should be taken for mouse moving out of the menu item +// +function cmItemMouseOut (obj, isMain, idSub, menuID, index) +{ + var delayTime = _cmMenuList[menuID].nodeProperties.delay; + _cmTimeOut = window.setTimeout ('cmHideMenuTime ()', delayTime); + window.defaultStatus = ''; +} + +// +// action should be taken for mouse button down at a menu item +// +function cmItemMouseDown (obj, isMain, idSub, menuID, index) +{ + if (_cmItemList[index].isDisabled) + return; + + if (cmIsDefaultItem (_cmItemList[index])) + { + var prefix = _cmMenuList[menuID].prefix; + if (obj.cmIsMain) + obj.className = prefix + 'MainItemActive'; + else + obj.className = prefix + 'MenuItemActive'; + } +} + +// +// action should be taken for mouse button down at a menu item +// this is one also opens submenu if needed +// +function cmItemMouseDownOpenSub (obj, isMain, idSub, menuID, index) +{ + if (_cmItemList[index].isDisabled) + return; + + _cmClicked = true; + cmItemMouseDown (obj, isMain, idSub, menuID, index); + + if (idSub) + { + var subMenu = cmGetObject (idSub); + var menuInfo = _cmMenuList[menuID]; + cmShowSubMenu (obj, isMain, subMenu, menuInfo); + } +} + +// +// action should be taken for mouse button up at a menu item +// +function cmItemMouseUp (obj, isMain, idSub, menuID, index) +{ + if (_cmItemList[index].isDisabled) + return; + + var item = _cmItemList[index]; + + var link = null, target = '_self'; + + if (item.length > 2) + link = item[2]; + if (item.length > 3 && item[3]) + target = item[3]; + + if (link != null) + { + _cmClicked = false; + window.open (link, target); + } + + var menuInfo = _cmMenuList[menuID]; + var prefix = menuInfo.prefix; + var thisMenu = cmGetThisMenu (obj, prefix); + + var hasChild = (item.length > 5); + if (!hasChild) + { + if (cmIsDefaultItem (item)) + { + if (obj.cmIsMain) + obj.className = prefix + 'MainItem'; + else + obj.className = prefix + 'MenuItem'; + } + cmHideMenu (thisMenu, null, menuInfo); + } + else + { + if (cmIsDefaultItem (item)) + { + if (obj.cmIsMain) + obj.className = prefix + 'MainItemHover'; + else + obj.className = prefix + 'MenuItemHover'; + } + } +} + +////////////////////////////////////////////////////////////////////// +// +// Mouse Event Support Utility Functions +// +////////////////////////////////////////////////////////////////////// + +// +// move submenu to the appropriate location +// +function cmMoveSubMenu (obj, isMain, subMenu, menuInfo) +{ + var orient = menuInfo.orient; + + var offsetAdjust; + + if (isMain) + { + if (orient.charAt (0) == 'h') + offsetAdjust = menuInfo.nodeProperties.offsetHMainAdjust; + else + offsetAdjust = menuInfo.nodeProperties.offsetVMainAdjust; + } + else + offsetAdjust = menuInfo.nodeProperties.offsetSubAdjust; + + if (!isMain && orient.charAt (0) == 'h') + orient = 'v' + orient.charAt (1) + orient.charAt (2); + + var mode = String (orient); + var p = subMenu.offsetParent; + var subMenuWidth = cmGetWidth (subMenu); + var horiz = cmGetHorizontalAlign (obj, mode, p, subMenuWidth); + if (mode.charAt (0) == 'h') + { + if (mode.charAt (1) == 'b') + subMenu.style.top = (cmGetYAt (obj, p) + cmGetHeight (obj) + offsetAdjust[1]) + 'px'; + else + subMenu.style.top = (cmGetYAt (obj, p) - cmGetHeight (subMenu) - offsetAdjust[1]) + 'px'; + if (horiz == 'r') + subMenu.style.left = (cmGetXAt (obj, p) + offsetAdjust[0]) + 'px'; + else + subMenu.style.left = (cmGetXAt (obj, p) + cmGetWidth (obj) - subMenuWidth - offsetAdjust[0]) + 'px'; + } + else + { + if (horiz == 'r') + subMenu.style.left = (cmGetXAt (obj, p) + cmGetWidth (obj) + offsetAdjust[0]) + 'px'; + else + subMenu.style.left = (cmGetXAt (obj, p) - subMenuWidth - offsetAdjust[0]) + 'px'; + if (mode.charAt (1) == 'b') + subMenu.style.top = (cmGetYAt (obj, p) + offsetAdjust[1]) + 'px'; + else + subMenu.style.top = (cmGetYAt (obj, p) + cmGetHeight (obj) - cmGetHeight (subMenu) + offsetAdjust[1]) + 'px'; + } + + // IE specific iframe masking method + /*@cc_on + @if (@_jscript_version >= 5.5) + if (menuInfo.cmFrameMasking) + { + if (!subMenu.cmFrameObj) + { + var frameObj = cmAllocFrame (); + subMenu.cmFrameObj = frameObj; + } + + var frameObj = subMenu.cmFrameObj; + frameObj.style.zIndex = subMenu.style.zIndex - 1; + frameObj.style.left = (cmGetX (subMenu) - cmGetX (frameObj.offsetParent)) + 'px'; + frameObj.style.top = (cmGetY (subMenu) - cmGetY (frameObj.offsetParent)) + 'px'; + frameObj.style.width = cmGetWidth (subMenu) + 'px'; + frameObj.style.height = cmGetHeight (subMenu) + 'px'; + frameObj.style.display = 'block'; + } + @end + @*/ + if (horiz != orient.charAt (2)) + orient = orient.charAt (0) + orient.charAt (1) + horiz; + return orient; +} + +// +// automatically re-adjust the menu position based on available screen size. +// +function cmGetHorizontalAlign (obj, mode, p, subMenuWidth) +{ + var horiz = mode.charAt (2); + if (!(document.body)) + return horiz; + var body = document.body; + var browserLeft; + var browserRight; + if (window.innerWidth) + { + // DOM window attributes + browserLeft = window.pageXOffset; + browserRight = window.innerWidth + browserLeft; + } + else if (body.clientWidth) + { + // IE attributes + browserLeft = body.clientLeft; + browserRight = body.clientWidth + browserLeft; + } + else + return horiz; + if (mode.charAt (0) == 'h') + { + if (horiz == 'r' && (cmGetXAt (obj) + subMenuWidth) > browserRight) + horiz = 'l'; + if (horiz == 'l' && (cmGetXAt (obj) + cmGetWidth (obj) - subMenuWidth) < browserLeft) + horiz = 'r'; + return horiz; + } + else + { + if (horiz == 'r' && (cmGetXAt (obj, p) + cmGetWidth (obj) + subMenuWidth) > browserRight) + horiz = 'l'; + if (horiz == 'l' && (cmGetXAt (obj, p) - subMenuWidth) < browserLeft) + horiz = 'r'; + return horiz; + } +} + +// +// show the subMenu w/ specified orientation +// also move it to the correct coordinates +// +function cmShowSubMenu (obj, isMain, subMenu, menuInfo) +{ + var prefix = menuInfo.prefix; + + if (!subMenu.cmParentMenu) + { + // establish the tree w/ back edge + var thisMenu = cmGetThisMenu (obj, prefix); + subMenu.cmParentMenu = thisMenu; + if (!thisMenu.cmSubMenu) + thisMenu.cmSubMenu = new Array (); + thisMenu.cmSubMenu[thisMenu.cmSubMenu.length] = subMenu; + } + + var effectInstance = subMenu.cmEffect; + if (effectInstance) + effectInstance.showEffect (true); + else + { + // position the sub menu only if we are not already showing the submenu + var orient = cmMoveSubMenu (obj, isMain, subMenu, menuInfo); + subMenu.cmOrient = orient; + + var forceShow = false; + if (subMenu.style.visibility != 'visible' && menuInfo.nodeProperties.effect) + { + try + { + effectInstance = menuInfo.nodeProperties.effect.getInstance (subMenu, orient); + effectInstance.showEffect (false); + } + catch (e) + { + forceShow = true; + subMenu.cmEffect = null; + } + } + else + forceShow = true; + + if (forceShow) + { + subMenu.style.visibility = 'visible'; + /*@cc_on + @if (@_jscript_version >= 5.5) + if (subMenu.cmFrameObj) + subMenu.cmFrameObj.style.display = 'block'; + @end + @*/ + } + } + + if (!_cmHideObjects) + { + _cmHideObjects = 2; // default = not hide, may change behavior later + try + { + if (window.opera) + { + if (parseInt (navigator.appVersion) < 9) + _cmHideObjects = 1; + } + } + catch (e) + { + } + } + + if (_cmHideObjects == 1) + { + if (!subMenu.cmOverlap) + subMenu.cmOverlap = new Array (); + cmHideControl ("IFRAME", subMenu); + cmHideControl ("OBJECT", subMenu); + } +} + +// +// reset all the menu items to class MenuItem in thisMenu +// +function cmResetMenu (thisMenu, prefix) +{ + if (thisMenu.cmItems) + { + var i; + var str; + var items = thisMenu.cmItems; + for (i = 0; i < items.length; ++i) + { + if (items[i].cmIsMain) + { + if (items[i].className == (prefix + 'MainItemDisabled')) + continue; + } + else + { + if (items[i].className == (prefix + 'MenuItemDisabled')) + continue; + } + if (items[i].cmIsMain) + str = prefix + 'MainItem'; + else + str = prefix + 'MenuItem'; + if (items[i].className != str) + items[i].className = str; + } + } +} + +// +// called by the timer to hide the menu +// +function cmHideMenuTime () +{ + _cmClicked = false; + if (_cmCurrentItem) + { + var menuInfo = _cmMenuList[_cmCurrentItem.cmMenuID]; + var prefix = menuInfo.prefix; + cmHideMenu (cmGetThisMenu (_cmCurrentItem, prefix), null, menuInfo); + _cmCurrentItem = null; + } +} + +// +// Only hides this menu +// +function cmHideThisMenu (thisMenu, menuInfo) +{ + var effectInstance = thisMenu.cmEffect; + if (effectInstance) + effectInstance.hideEffect (true); + else + { + thisMenu.style.visibility = 'hidden'; + thisMenu.style.top = '0px'; + thisMenu.style.left = '0px'; + thisMenu.cmOrient = null; + /*@cc_on + @if (@_jscript_version >= 5.5) + if (thisMenu.cmFrameObj) + { + var frameObj = thisMenu.cmFrameObj; + frameObj.style.display = 'none'; + frameObj.style.width = '1px'; + frameObj.style.height = '1px'; + thisMenu.cmFrameObj = null; + cmFreeFrame (frameObj); + } + @end + @*/ + } + + cmShowControl (thisMenu); + thisMenu.cmItems = null; +} + +// +// hide thisMenu, children of thisMenu, as well as the ancestor +// of thisMenu until currentMenu is encountered. currentMenu +// will not be hidden +// +function cmHideMenu (thisMenu, currentMenu, menuInfo) +{ + var prefix = menuInfo.prefix; + var str = prefix + 'SubMenu'; + + // hide the down stream menus + if (thisMenu.cmSubMenu) + { + var i; + for (i = 0; i < thisMenu.cmSubMenu.length; ++i) + { + cmHideSubMenu (thisMenu.cmSubMenu[i], menuInfo); + } + } + + // hide the upstream menus + while (thisMenu && thisMenu ... [truncated message content] |
From: <fan...@us...> - 2008-01-29 14:55:22
|
Revision: 4829 http://linpha.svn.sourceforge.net/linpha/?rev=4829&view=rev Author: fangehrn Date: 2008-01-29 06:55:11 -0800 (Tue, 29 Jan 2008) Log Message: ----------- Modified Paths: -------------- trunk/misc/design/22menuJSCook/indexJSEffectFade.php trunk/misc/design/info.txt Added Paths: ----------- trunk/misc/design/22menuJSCook/indexJSEffectFadeGray.php trunk/misc/design/23menuDynMenu/ trunk/misc/design/23menuDynMenu/browserdetect.js trunk/misc/design/23menuDynMenu/dynMenu.js trunk/misc/design/23menuDynMenu/global.css trunk/misc/design/23menuDynMenu/home.css trunk/misc/design/23menuDynMenu/index.php trunk/misc/design/23menuDynMenu/menu.css trunk/misc/design/23menuDynMenu/menuHorizontal.html trunk/misc/design/23menuDynMenu/menuVertical.html trunk/misc/design/23menuDynMenu/menuv.css Modified: trunk/misc/design/22menuJSCook/indexJSEffectFade.php =================================================================== --- trunk/misc/design/22menuJSCook/indexJSEffectFade.php 2008-01-29 11:13:55 UTC (rev 4828) +++ trunk/misc/design/22menuJSCook/indexJSEffectFade.php 2008-01-29 14:55:11 UTC (rev 4829) @@ -20,6 +20,9 @@ <script type="text/javascript" src="./JSCookMenu/JSCookMenu.js"></script> <script type="text/javascript" src="./JSCookMenu/effect.js"></script> + +<!-- <script type="text/javascript" src="./JSCookMenu/JSCookMenuPacked4.js"></script> --> + <link rel="stylesheet" href="./JSCookMenu/ThemePanelLinpha/theme.css" type="text/css"> <script type="text/javascript" src="./JSCookMenu/ThemePanelLinpha/theme.js"></script> <script type="text/javascript"> @@ -29,9 +32,9 @@ [null, 'Home', '/linpha2/?&linCat=alb', null, 'Home'], _cmSplit, ['<img src="/linpha2/lib/graphics/xmag.jpg" width="15" height="15" />', 'Search', null, null, 'Search', - [null, 'Extended Search', '/linpha2/?&linCat=search', null, 'Click here for detailed search options'], + [_cmNoClick, '<td class="ThemePanelMenuItemLeft"></td><td colspan="2"><form action=""><input type="text" size="10" name="searchwhat" value=""/><input type="submit" value="search" /></form></td>'], _cmSplit, - [_cmNoClick, '<td class="ThemePanelMenuItemLeft"></td><td colspan="2"><form action=""><input type="text" size="10" value="jscookmenu"/><input type="button" value="Google" onclick="googleSearch(this.previousSibling)"/></form></td>'] + [null, 'Extended Search', '/linpha2/?&linCat=search', null, 'Click here for detailed search options'] ], _cmSplit, [null, 'Login', null, null, 'Login description'], Added: trunk/misc/design/22menuJSCook/indexJSEffectFadeGray.php =================================================================== --- trunk/misc/design/22menuJSCook/indexJSEffectFadeGray.php (rev 0) +++ trunk/misc/design/22menuJSCook/indexJSEffectFadeGray.php 2008-01-29 14:55:11 UTC (rev 4829) @@ -0,0 +1,188 @@ +<?php +header('content-type: text/html; charset: utf-8'); +/*echo '<?xml version="1.0" encoding="utf-8"?>'."\n"; not necessary, IE has problems with this*/ +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="content-type" content="text/html; charset=UTF-8"> + +<title>Linpha 2.0</title> + +<!-- css includes --> + +<link rel='stylesheet' href='../14cornersSchill/colorsettings.php?bg=87CEFA&bodybg=DDDDDD&font=000000&albumsbg=D5FCF4&links=005388&linkshover=666666&fieldscolor=CCCCCC' type='text/css'> +<link rel='stylesheet' href='./global.css' type='text/css'> +<link rel='stylesheet' href='./home.css' type='text/css'> + +<link rel="stylesheet" href="../14cornersSchill/roundCorners.css" media="screen" /> + +<script type="text/javascript" src="./JSCookMenu/JSCookMenu.js"></script> +<script type="text/javascript" src="./JSCookMenu/effect.js"></script> +<link rel="stylesheet" href="./JSCookMenu/ThemeGray/theme.css" type="text/css"> +<script type="text/javascript" src="./JSCookMenu/ThemeGray/theme.js"></script> +<script type="text/javascript"> +<!-- +var myMenu = +[ + [null, 'Home', '/linpha2/?&linCat=alb', null, 'Home'], + ['<img src="/linpha2/lib/graphics/xmag.jpg" width="15" height="15" />', 'Search', null, null, 'Search', + [null, 'Extended Search', '/linpha2/?&linCat=search', null, 'Click here for detailed search options'], + _cmSplit, + [_cmNoClick, '<td class="ThemePanelMenuItemLeft"></td><td colspan="2"><form action=""><input type="text" size="10" value="jscookmenu"/><input type="button" value="Google" onclick="googleSearch(this.previousSibling)"/></form></td>'] + ], + [null, 'Login', null, null, 'Login description'], + [null, 'More', null, null, 'Some more options', + [null, 'Basket', null, null, 'Download/Mail/Print a batch of images', + [null, 'Add All To Basket', 'url', 'target', 'description'], + [null, 'Switch To Basket View', 'url', 'target', 'description'], + [null, 'Open Basket (0 Images)', 'url', 'target', 'description'] + ], + [null, 'View', null, null, 'description', + [null, 'Sort', 'url', 'target', 'description', + [null, 'Name Asc', 'url', 'target', 'description'], + [null, 'Name Desc', 'url', 'target', 'description'], + [null, 'Date Asc', 'url', 'target', 'description'], + [null, 'Date Desc', 'url', 'target', 'description'] + ], + [null, 'View', 'url', 'target', 'description', + [null, 'Normal', 'url', 'target', 'description'], + [null, 'Detail', 'url', 'target', 'description'] + ], + [null, 'Thumb Size', 'url', 'target', 'description', + [null, '50 Pixel', 'url', 'target', 'description'], + [null, '75 Pixel', 'url', 'target', 'description'], + [null, '100 Pixel', 'url', 'target', 'description'], + [null, '150 Pixel', 'url', 'target', 'description'], + [null, '200 Pixel', 'url', 'target', 'description'], + [null, '250 Pixel', 'url', 'target', 'description'], + [null, '300 Pixel', 'url', 'target', 'description'], + [null, '400 Pixel', 'url', 'target', 'description'], + [null, '500 Pixel', 'url', 'target', 'description'] + ], + [null, 'Thumb Nr', 'url', 'target', 'description' + [null, 'auto', 'url', 'target', 'description'], + [null, '10', 'url', 'target', 'description'], + [null, '25', 'url', 'target', 'description'], + [null, '50', 'url', 'target', 'description'], + [null, '100', 'url', 'target', 'description'], + [null, '200', 'url', 'target', 'description'], + [null, 'all', 'url', 'target', 'description'] + ] + ], + ], + _cmSplit, + /*['<img src="../slideshow.png" />', '', null, null, 'Start Slideshow'], + _cmSplit,*/ + [null, 'My Settings', null, null, ''], + [null, 'Admin', null, null, ''] +]; +--> +</script> + +</head> + + +<body id="linBody"> + +<div id="myMenuID" style="margin-left: 50px;"></div> + +<script type="text/javascript"> +<!-- +var prop = cmClone (cmThemeGray); +prop.effect = new CMFadingEffect (8, 4); +cmDraw ('myMenuID', myMenu, 'hbr', prop); +--> +</script> + + +<div id="linDivMainOuter" class="linCorn linCornMain"> + <div class="linCornC"> + <div class="linCornT"></div> + + <div id="linDivMain"> + <h1 class="linStyle">Willkommen</h1>Hi, this is the home of "The PHP Photo Archive" <a href="http://linpha.sf.net">aka LinPHA</a>.<br /><br /> + + <!-- Random Images --> + + <!-- New Images --> + + <!-- Browse by Date --> + + <!-- Albums --> + <hr class="linStyle" /> + + <h1 class="linStyle">Alben</h1> + + <div class="linCorn linCornFolder"> + <div class="linCornC"> + <div class="linCornT"></div> + + <div class="linDivFolder"> + + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb1.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2005.05.14-16 Barcelona</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + + </div> + + </div> + <div class="linCornB"><div></div></div> + </div> + + <div class="linCorn linCornFolder"> + <div class="linCornC"> + <div class="linCornT"></div> + + <div class="linDivFolder"> + + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb2.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.07-14-28 Fuerteventura</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + + </div> + </div> + <div class="linCornB"><div></div></div> + </div> + + <div class="linCorn linCornFolder"> + <div class="linCornC"> + <div class="linCornT"></div> + + <div class="linDivFolder"> + + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb3.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.12.15-16 Skifahren Samnaun</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + + </div> + </div> + <div class="linCornB"><div></div></div> + </div> + + <br /> + </div> + + </div> + <div class="linCornB"><div></div></div> +</div> + +</body> +</html> + Added: trunk/misc/design/23menuDynMenu/browserdetect.js =================================================================== --- trunk/misc/design/23menuDynMenu/browserdetect.js (rev 0) +++ trunk/misc/design/23menuDynMenu/browserdetect.js 2008-01-29 14:55:11 UTC (rev 4829) @@ -0,0 +1,97 @@ +// Browser Detect Lite v2.1.4 +// http://www.dithered.com/javascript/browser_detect/index.html +// modified by Chris Nott (ch...@NO... - remove NOSPAM) + + +function BrowserDetectLite() { + var ua = navigator.userAgent.toLowerCase(); + + // browser name + this.isGecko = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1); + this.isMozilla = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length); + this.isNS = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) ); + this.isIE = ( (ua.indexOf('msie') != -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) ); + this.isSafari = (ua.indexOf('safari') != - 1); + this.isOpera = (ua.indexOf('opera') != -1); + this.isKonqueror = (ua.indexOf('konqueror') != -1 && !this.isSafari); + this.isIcab = (ua.indexOf('icab') != -1); + this.isAol = (ua.indexOf('aol') != -1); + + // spoofing and compatible browsers + this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE); + this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla); + + // browser version + this.versionMinor = parseFloat(navigator.appVersion); + + // correct version number + if (this.isNS && this.isGecko) { + this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) ); + } + else if (this.isIE && this.versionMinor >= 4) { + this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) ); + } + else if (this.isMozilla) { + this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) ); + } + else if (this.isSafari) { + this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) ); + } + else if (this.isOpera) { + if (ua.indexOf('opera/') != -1) { + this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera/') + 6 ) ); + } + else { + this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera ') + 6 ) ); + } + } + else if (this.isKonqueror) { + this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) ); + } + else if (this.isIcab) { + if (ua.indexOf('icab/') != -1) { + this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab/') + 6 ) ); + } + else { + this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab ') + 6 ) ); + } + } + + this.versionMajor = parseInt(this.versionMinor); + this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 ); + + // dom support + this.isDOM1 = (document.getElementById); + this.isDOM2Event = (document.addEventListener && document.removeEventListener); + + // css compatibility mode + this.mode = document.compatMode ? document.compatMode : 'BackCompat'; + + // platform + this.isWin = (ua.indexOf('win') != -1); + this.isWin32 = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) ); + this.isMac = (ua.indexOf('mac') != -1); + this.isUnix = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1) + this.isLinux = (ua.indexOf('linux') != -1); + + // specific browser shortcuts + this.isNS4x = (this.isNS && this.versionMajor == 4); + this.isNS40x = (this.isNS4x && this.versionMinor < 4.5); + this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7); + this.isNS4up = (this.isNS && this.versionMinor >= 4); + this.isNS6x = (this.isNS && this.versionMajor == 6); + this.isNS6up = (this.isNS && this.versionMajor >= 6); + this.isNS7x = (this.isNS && this.versionMajor == 7); + this.isNS7up = (this.isNS && this.versionMajor >= 7); + + this.isIE4x = (this.isIE && this.versionMajor == 4); + this.isIE4up = (this.isIE && this.versionMajor >= 4); + this.isIE5x = (this.isIE && this.versionMajor == 5); + this.isIE55 = (this.isIE && this.versionMinor == 5.5); + this.isIE5up = (this.isIE && this.versionMajor >= 5); + this.isIE6x = (this.isIE && this.versionMajor == 6); + this.isIE6up = (this.isIE && this.versionMajor >= 6); + + this.isIE4xMac = (this.isIE4x && this.isMac); +} +var browser = new BrowserDetectLite(); Added: trunk/misc/design/23menuDynMenu/dynMenu.js =================================================================== --- trunk/misc/design/23menuDynMenu/dynMenu.js (rev 0) +++ trunk/misc/design/23menuDynMenu/dynMenu.js 2008-01-29 14:55:11 UTC (rev 4829) @@ -0,0 +1,153 @@ +/* +Author : bieler batiste +Company : doSimple : http://www.dosimple.ch +send me a mail for more informations : fa...@PA... - remove ( PASDEPOURRIEL ) + +Short javascript function to create and handle a CSS navigation menu + +Copyright (C) 2004 Bieler Batiste + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library 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 +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +// the timeout for the menu +var timeout = 1000; + +// not very clean but simple +// the function can be run in the HTML for faster display +// window.onload=initMenu; + +// creat timeout variables for list item +// it's for avoid some warning with IE +for( var i = 0; i < 100; i++ ) +{ + eval("var timeoutli" + i + " = false;"); +} + +// this fonction apply the CSS style and the event +function initMenu() +{ + // a test to avoid some browser like IE4, Opera 6, and IE Mac + if ( browser.isDOM1 + && !( browser.isMac && browser.isIE ) + && !( browser.isOpera && browser.versionMajor < 7 ) + && !( browser.isIE && browser.versionMajor < 5 ) ) + { + // get some element + var menu = document.getElementById('menu'); // the root element + var lis = menu.getElementsByTagName('li'); // all the li + + // change the class name of the menu, + // it's usefull for compatibility with old browser + menu.className='menu'; + + // i am searching for ul element in li element + for ( var i=0; i<lis.length; i++ ) + { + // is there a ul element ? + if ( lis.item(i).getElementsByTagName('ul').length > 0 ) + { + // improve IE key navigation + if ( browser.isIE ) + { + addAnEvent(lis.item(i),'keyup',show); + } + // link events to list item + addAnEvent(lis.item(i),'mouseover',show); + addAnEvent(lis.item(i),'mouseout',timeoutHide); + addAnEvent(lis.item(i),'blur',timeoutHide); + addAnEvent(lis.item(i),'focus',show); + + // add an id to list item + lis.item(i).setAttribute( 'id', "li"+i ); + } + } + } +} + +function addAnEvent( target, eventName, functionName ) +{ + // apply the method to IE + if ( browser.isIE ) + { + //attachEvent dont work properly with this + eval('target.on'+eventName+'=functionName'); + } + // apply the method to DOM compliant browsers + else + { + target.addEventListener( eventName , functionName , true ); // true is important for Opera7 + } +} + +// hide the first ul element of the current element +function timeoutHide() +{ + // start the timeout + eval( "timeout" + this.id + " = window.setTimeout('hideUlUnder( \"" + this.id + "\" )', " + timeout + " );"); +} + +// hide the ul elements under the element identified by id +function hideUlUnder( id ) +{ + document.getElementById(id).getElementsByTagName('ul')[0].style['visibility'] = 'hidden'; +} + +// show the first ul element found under this element +function show() +{ + // show the sub menu + this.getElementsByTagName('ul')[0].style['visibility'] = 'visible'; + var currentNode=this; + while(currentNode) + { + if( currentNode.nodeName=='LI') + { + currentNode.getElementsByTagName('a')[0].className = 'linkOver'; + } + currentNode=currentNode.parentNode; + } + // clear the timeout + eval ( "clearTimeout( timeout"+ this.id +");" ); + hideAllOthersUls( this ); +} + +// hide all ul on the same level of this list item +function hideAllOthersUls( currentLi ) +{ + var lis = currentLi.parentNode; + for ( var i=0; i<lis.childNodes.length; i++ ) + { + if ( lis.childNodes[i].nodeName=='LI' && lis.childNodes[i].id != currentLi.id ) + { + hideUlUnderLi( lis.childNodes[i] ); + } + } +} + +// hide all the ul wich are in the li element +function hideUlUnderLi( li ) +{ + var as = li.getElementsByTagName('a'); + for ( var i=0; i<as.length; i++ ) + { + as.item(i).className=""; + } + var uls = li.getElementsByTagName('ul'); + for ( var i=0; i<uls.length; i++ ) + { + uls.item(i).style['visibility'] = 'hidden'; + } +} Added: trunk/misc/design/23menuDynMenu/global.css =================================================================== --- trunk/misc/design/23menuDynMenu/global.css (rev 0) +++ trunk/misc/design/23menuDynMenu/global.css 2008-01-29 14:55:11 UTC (rev 4829) @@ -0,0 +1,138 @@ +<!-- +/** + * common definitions + * All 'em' calculations are based on 1 px = 0.0626em + */ + + #linBody { + font-family: arial, helvetica, sans-serif; + margin: 10px; + padding: 0px; + } + + + h1.linStyle { + font-size: 1.5em; + font-family: Verdana, Arial, Helvetica, sans-serif; + margin: 0px; + margin-top: 0px; + margin-bottom: 5px; + padding: 0px; + } + + h2.linStyle { + font-size: 1.2em; + font-family: Verdana, Arial, Helvetica, sans-serif; + margin: 0px; + margin-top: 0px; + margin-bottom: 5px; + padding: 0px; + } + + /** + * link button + */ + .linButton { + /*cursor: pointer; + border: 0; + font-size: 0.8em; + text-decoration: underline;*/ + } + + +/** + * title + */ + #linDivTitle + { + margin: 0; + margin-bottom: 20px; + margin-left: 90px; + + font-size: 2em; + } + #linDivTitle a:link, #linDivTitle a:visited, #linDivTitle a:hover + { + color: #444444; + text-decoration: none; + } + #linDivTitle a:hover + { + text-decoration: underline; + } + +/** + * navigation + */ + #linDivNavigationOuter { + margin: 0; + margin-bottom: 10px; + padding: 0; + } + #linDivNavigation + { + margin: 0; + padding: 5px; + } + +/** + * main + */ + /*#linDivMainOuter { + margin: 0; + padding: 0; + } + #linDivMain { + margin: 0; + padding: 0px; + padding-left: 10px; + padding-right: 10px; + }*/ + +/** + * folder (used in home view, and maybe as subfolders) + * background-color and border-color are set in colorsettings.php + */ + .linDivFolder { + margin: 5px 5px 0px 5px; + padding: 10px 0 0 0; + + /*width: 700px;*/ + } + + .linDivThumbnail { + height: 140px; + float: left; + } + + .linImgFolderThumbnail { + margin: 0; + margin-left: 20px; + margin-right: 30px; + margin-top: 5px; + padding: 0; + + width: 130px; + height: 130px; + + border: 0; + } + + .linDivFolderText { + margin: 0; + padding: 5px; + } + + .linDivFolderComment { + overflow: auto; + max-height: 300px; + + margin: 0; + margin-top: 10px; + margin-bottom: 10px; + padding: 0; + + /* word-wrap: break-word; fix ie to force width, but creates warnings in firefox !!! */ + } + +--> \ No newline at end of file Added: trunk/misc/design/23menuDynMenu/home.css =================================================================== --- trunk/misc/design/23menuDynMenu/home.css (rev 0) +++ trunk/misc/design/23menuDynMenu/home.css 2008-01-29 14:55:11 UTC (rev 4829) @@ -0,0 +1,18 @@ + +hr.linStyle { + clear: both; +} + +.linDivRandomimg, .linDivNewimg { + float: left; + margin-left: 40px; +} + +.linImgRandomimg, .linImgNewimg { + border: 0; +} + +.linDivFolder a +{ + text-decoration: none; +} \ No newline at end of file Added: trunk/misc/design/23menuDynMenu/index.php =================================================================== --- trunk/misc/design/23menuDynMenu/index.php (rev 0) +++ trunk/misc/design/23menuDynMenu/index.php 2008-01-29 14:55:11 UTC (rev 4829) @@ -0,0 +1,231 @@ +<?php +header('content-type: text/html; charset: utf-8'); +/*echo '<?xml version="1.0" encoding="utf-8"?>'."\n"; not necessary, IE has problems with this*/ +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="content-type" content="text/html; charset=UTF-8"> + +<title>Linpha 2.0</title> + +<!-- css includes --> + +<link rel='stylesheet' href='../14cornersSchill/colorsettings.php?bg=87CEFA&bodybg=DDDDDD&font=000000&albumsbg=D5FCF4&links=005388&linkshover=666666&fieldscolor=CCCCCC' type='text/css'> +<link rel='stylesheet' href='./global.css' type='text/css'> +<link rel='stylesheet' href='./home.css' type='text/css'> + +<link rel="stylesheet" href="../14cornersSchill/roundCorners.css" media="screen" /> + +<script type="text/javascript" src="dynMenu.js"></script> +<script type="text/javascript" src="browserdetect.js"></script> +<link rel="stylesheet" href="menu.css" media="screen" /> + +</head> + + +<body id="linBody"> + + +<!-- menu --> +<div id="linDivMenu"> + <ul id="menu"> + <li><a href="/linpha2/?&linCat=alb">Home</a></li> + <li><span>Suche </span> + <ul> + <li><a href="/linpha2/?&linCat=search">Extended Search</a></li> + <li> + <div> + <form method="GET" action="/linpha2/?&linCat=search"> + <input type="text" class="linForms" name="search_text" value="" /> + <input type="hidden" name="button[meta][all]" value="1" /> + + <input type="hidden" name="cmd" value="search" /> + <input type="hidden" name="linCat" value="search" /> + <input type="submit" name="submit" class="linButton linInputMenu" value="Suche" /> + </form> + </div> + </li> + </ul> + </li> + <li> + <span>Login </span> + <ul id="linMenuLogin"> + <li> + <div> + <form action="" method="POST" onsubmit="new Ajax.Updater('linDivMenu', LINPHA_CLIENT + '/?linCat=ajax&reloadmenu&linId='+IdCurrent, {method: 'post', asynchronous:true, parameters:Form.serialize(this), evalScripts:true}); return false;"> + <!-- login infos --> + <br /> + <label for="linFormUsername" style="display: block; float: left; width: 80px;">Username: </label><input style="width: 105px;" class="linForms" type="text" name="username" value="" id="linFormUsername" /><br /> + <label for="linFormPassword" style="display: block; float: left; width: 80px;">Password: </label><input style="width: 105px;" class="linForms" type="password" name="password" value="" id="linFormPassword" /><br /> + <input type="checkbox" name="rememberme" value="true" id="linFormCheckboxRemember" /><label for="linFormCheckboxRemember">Remember Me</label> <input type="hidden" name="cmd" value="login" /> + <input type="submit" name="submit" class="linButton linInputMenu" value="Login" /><br /><br /> + <div style="font-size: smaller; border: 0px;">Um sich anmelden zu können, müssen Cookies aktiviert sein.</div> + </form> + </div> + </li> + </ul> + </li> + <li><span>More </span> + <ul id="linMenuMore"> + <li><span>Basket </span> + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&admin_cmd=basket_add_all">Add All To Basket</a></li> + + <li><a href="/linpha2/?&linCat=alb&linId=4&view=basket">Switch To Basket View</a></li> + <li><a href="/linpha2/?&linCat=basket">Open Basket (0 Images)</a></li> + </ul> + </li> + <li><span>Ansicht </span> + <ul> + <li><span>Sort </span> + + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Name Asc">Name Asc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Name Desc">Name Desc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Date Asc">Date Asc</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&order_by=Date Desc">Date Desc</a></li> + </ul> + </li> + + <li><span>Ansicht </span> + <ul> + <li><a href="/linpha2/?&linCat=alb&linId=4&view=thumb">Normal</a></li> + <li><a href="/linpha2/?&linCat=alb&linId=4&view=thumbdetail">Detail</a></li> + </ul> + </li> + <li><span>Thumb Size </span> + + <ul> + <li><a href="javascript:myLinThumbnails.setTnSize(50)">50 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(75)">75 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(100)">100 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(150)">150 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(200)">200 Pixel</a></li> + + <li><a href="javascript:myLinThumbnails.setTnSize(250)">250 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(300)">300 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(400)">400 Pixel</a></li> + <li><a href="javascript:myLinThumbnails.setTnSize(500)">500 Pixel</a></li> + </ul> + </li> + <li><span>Thumb Nr </span> + + <ul> + <li><a href="javascript:myLinThumbnails.setNrImages('auto')">auto</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('10')">10</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('25')">25</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('50')">50</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('100')">100</a></li> + + <li><a href="javascript:myLinThumbnails.setNrImages('200')">200</a></li> + <li><a href="javascript:myLinThumbnails.setNrImages('all')">all</a></li> + </ul> + </li> + </ul> + </li> + </ul> + </li> + </ul> + <!-- icons --> + <div> + <a href="javascript:myLinThumbnails.loadSlideshow()"><img src="../slideshow.png" border="0" title="Play Slideshow" /></a> + </div> +</div> + +<script type="text/javascript"> + initMenu(); +</script> + +<br /><br /><br /><br /><br /><br /><br /> + +<div id="linDivMainOuter" class="linCorn linCornMain"> + <div class="linCornC"> + <div class="linCornT"></div> + + <div id="linDivMain"> + <h1 class="linStyle">Willkommen</h1>Hi, this is the home of "The PHP Photo Archive" <a href="http://linpha.sf.net">aka LinPHA</a>.<br /><br /> + + <!-- Random Images --> + + <!-- New Images --> + + <!-- Browse by Date --> + + <!-- Albums --> + <hr class="linStyle" /> + + <h1 class="linStyle">Alben</h1> + + <div class="linCorn linCornFolder"> + <div class="linCornC"> + <div class="linCornT"></div> + + <div class="linDivFolder"> + + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb1.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2005.05.14-16 Barcelona</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + + </div> + + </div> + <div class="linCornB"><div></div></div> + </div> + + <div class="linCorn linCornFolder"> + <div class="linCornC"> + <div class="linCornT"></div> + + <div class="linDivFolder"> + + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb2.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.07-14-28 Fuerteventura</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + + </div> + </div> + <div class="linCornB"><div></div></div> + </div> + + <div class="linCorn linCornFolder"> + <div class="linCornC"> + <div class="linCornT"></div> + + <div class="linDivFolder"> + + <div class="linDivThumbnail"> + <a href="/linpha2/?&linCat=alb&linId=4"><img class="linImgFolderThumbnail" src="../thumb3.gif" alt="thumbnail_album" /></a> + </div> + <div class="linDivFolderText"> + <h2 class="linStyle"><a href="/linpha2/?&linCat=alb&linId=4">2007.12.15-16 Skifahren Samnaun</a></h2> + Di 25. Dez 2007 19:08:13<br />0 Fotos<br /> + </div> + <div style="clear: both;"></div> + + </div> + </div> + <div class="linCornB"><div></div></div> + </div> + + <br /> + </div> + + </div> + <div class="linCornB"><div></div></div> +</div> + +</body> +</html> + Added: trunk/misc/design/23menuDynMenu/menu.css =================================================================== --- trunk/misc/design/23menuDynMenu/menu.css (rev 0) +++ trunk/misc/design/23menuDynMenu/menu.css 2008-01-29 14:55:11 UTC (rev 4829) @@ -0,0 +1,75 @@ +/* CSS du menu horizontal, bieler batiste */ + +.menu{ + position:absolute; + display:block; + margin:0; + padding:0; + width:500px; + } + +.menu ul{ + position:absolute; + display:block; + width:124px; + /*margin:0;*/ + padding:0; + } + +.menu li ul{ + visibility:hidden; + } + +.menu li li ul{ + position:absolute; + margin-left:124px; + margin-top:-23px; + } + +.menu li{ + list-style:none; + width:124px; + height:auto; + display:inline; + display/**/:block; + float:none; + float/**/:left; + margin:0; + padding:0; + } + +.menu li li{ + display:block; + float:none; + } + +/* correct a little IE bug */ +* html .menu li li{ + display:inline; + } + +.menu a{ + text-align:center; + background-color: #9cf; + border:1px #666 solid; + color:#000; + display:block; + width:120px; + text-decoration:none; + padding:2px 0; + margin:1px; + } + +.menu a:hover{ + background-color: #eee; + border:1px #aaa solid; + } + +/* for a mozilla better display with key nav */ +.menu a:focus{ + background-color: #aaf; +} + +a.linkOver{ + background-color: #eee; + } Added: trunk/misc/design/23menuDynMenu/menuHorizontal.html =================================================================== --- trunk/misc/design/23menuDynMenu/menuHorizontal.html (rev 0) +++ trunk/misc/design/23menuDynMenu/menuHorizontal.html 2008-01-29 14:55:11 UTC (rev 4829) @@ -0,0 +1,97 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"><head> + +<title>Menu d\xE9roulant horizontal \xE0 plusieurs niveaux en DHTML</title> + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> + <meta http-equiv="Content-Language" content="fr" /> + <meta name="Robots" content="follow" /> + <meta name="MSSmartTagsPreventParsing" content="TRUE" /> + +<!-- script du menu --> +<script type="text/javascript" src="dynMenu.js"></script> + <!-- d\xE9t\xE9ction du navigateur --> +<script type="text/javascript" src="browserdetect.js"></script> + +<!-- important pour que les vieux navigateurs ne comprennent pas le CSS --> +<style type="text/css"> + @import "menu.css"; +</style> + +</head><body> + +<h1>Menu horizontal \xE0 plusieurs niveaux</h1> + +<p>Auteur : <a href="mailto:batiste_at_dosimple.ch" onmouseover="this.href=this.href.replace(RegExp('(_at_)','g'),'@')">Batiste Bieler</a></p> + +<!-- liens d'accessibilit\xE9 --> +<p id="access"> + <a href="#contenu" accesskey="1">Aller au contenu</a> + <a href="#menu" accesskey="2">Aller au menu</a> +</p> + +<!-- contenu de la page --> +<div id="contenu"> + <ul> + <li><strong><a href="menus.tar.gz">T\xE9l\xE9charger les exemples</a></strong></li> + <li>le <a href="menu.css">fichier <abbr title="Cascaded Style Sheet">CSS</abbr></a>,</li> + <li>le <a href="dynMenu.js">fichier Javascript</a>,</li> + <li>le <a href="browserdetect.js">fichier Javascript</a> de d\xE9t\xE9ction du navigateur n\xE9cessaire \xE0 l'\xE9xecution du script.</li> + </ul> + + <p><a href="./">Revenir sur la page d'accueil</a></p> + + <p> + <a href="http://validator.w3.org/check?uri=referer">xHTML valid</a> + </p> +</div> + +<!-- liste imbriqu\xE9e de liens qui fera office de menu --> +<ul id="menu"> + <li><a href="#menu1">menu 1</a> + <ul> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 2</a> + <ul> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 2</a></li> + <li><a href="#">\xE9l\xE9ment 3</a> + <ul> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 2</a></li> + <li><a href="#">\xE9l\xE9ment 3</a></li> + </ul> + </li> + </ul> + </li> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 3</a> + <ul> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 2</a></li> + <li><a href="#">\xE9l\xE9ment 3</a></li> + </ul> + </li> + </ul> + </li> + <li><a href="#menu2" >menu 2</a> + <ul> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 2</a></li> + <li><a href="#">\xE9l\xE9ment 3</a></li> + </ul> + </li> + <li><a href="#menu3" >menu 3</a> + <ul> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 2</a></li> + <li><a href="#">\xE9l\xE9ment 3</a></li> + </ul> + </li> +</ul> + +<script type="text/javascript"> + initMenu(); +</script> + +</body></html> \ No newline at end of file Added: trunk/misc/design/23menuDynMenu/menuVertical.html =================================================================== --- trunk/misc/design/23menuDynMenu/menuVertical.html (rev 0) +++ trunk/misc/design/23menuDynMenu/menuVertical.html 2008-01-29 14:55:11 UTC (rev 4829) @@ -0,0 +1,103 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"><head> + +<title>Menu d\xE9roulant vertical \xE0 plusieurs niveaux en DHTML</title> + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> + <meta http-equiv="Content-Language" content="fr" /> + <meta name="Robots" content="follow" /> + <meta name="MSSmartTagsPreventParsing" content="TRUE" /> + +<!-- script du menu --> +<script type="text/javascript" src="dynMenu.js"></script> + <!-- d\xE9t\xE9ction du navigateur --> +<script type="text/javascript" src="browserdetect.js"></script> + +<!-- important pour que les vieux navigateurs ne comprennent pas le CSS --> +<style type="text/css"> + @import "menuv.css"; +</style> + +</head><body> + +<h1>Menu vertical \xE0 plusieurs niveaux</h1> + + <p>Auteur : <a href="mailto:batiste_at_dosimple.ch" onmouseover="this.href=this.href.replace(RegExp('(_at_)','g'),'@')">Batiste Bieler</a></p> + +<!-- liens d'accessibilit\xE9 --> +<p id="access"> + <a href="#contenu" accesskey="1">Aller au contenu</a> + <a href="#menu" accesskey="2">Aller au menu</a> +</p> + +<!-- contenu de la page --> +<div id="contenu"> + +<p>Ce menu fonctionne mal avec Safari 1.0, mais cela devrait \xEAtre corrig\xE9 prochainement.</p> + + <ul> + <li><strong><a href="menus.tar.gz">T\xE9l\xE9charger les exemples</a></strong></li> + <li>le <a href="menuv.css">fichier <abbr title="Cascaded Style Sheet">CSS</abbr></a></li> + <li>le <a href="dynMenu.js">fichier Javascript</a></li> + <li>le <a href="browserdetect.js">fichier Javascript</a> de d\xE9t\xE9ction du navigateur n\xE9cessaire \xE0 l'\xE9xecution du script</li> + </ul> + + <p><a href="./">Revenir sur la page d'accueil</a></p> + + <p> + <a href="http://validator.w3.org/check/referer"> + xHTML valid + </a> + </p> + +</div> + +<!-- liste imbriqu\xE9e de liens qui fera office de menu --> +<ul id="menu"> + <li><a href="#menu1">menu 1</a> + <ul> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 2</a> + <ul> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 2</a></li> + <li><a href="#">\xE9l\xE9ment 3</a> + <ul> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 2</a></li> + <li><a href="#">\xE9l\xE9ment 3</a></li> + </ul> + </li> + </ul> + </li> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 3</a> + <ul> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 2</a></li> + <li><a href="#">\xE9l\xE9ment 3</a></li> + </ul> + </li> + </ul> + </li> + <li><a href="#menu2" >menu 2</a> + <ul> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 2</a></li> + <li><a href="#">\xE9l\xE9ment 3</a></li> + </ul> + </li> + <li><a href="#menu3" >menu 3</a> + <ul> + <li><a href="#">\xE9l\xE9ment 1</a></li> + <li><a href="#">\xE9l\xE9ment 2</a></li> + <li><a href="#">\xE9l\xE9ment 3</a></li> + </ul> + </li> +</ul> + +<script type="text/javascript"> + initMenu(); +</script> + +</body></html> \ No newline at end of file Added: trunk/misc/design/23menuDynMenu/menuv.css =================================================================== --- trunk/misc/design/23menuDynMenu/menuv.css (rev 0) +++ trunk/misc/design/23menuDynMenu/menuv.css 2008-01-29 14:55:11 UTC (rev 4829) @@ -0,0 +1,87 @@ +/* CSS du menu vertical, bieler batiste */ + +body{ + margin-left:15em; + } + +.menu{ + position:absolute; + /* solve a Opera7/IE display bug */ + width:152px; + width/**/:150px; + border-top: 1px #000 solid; + border-left: 1px #000 solid; + border-right: 1px #000 solid; + margin:0; + padding:0; + } + +.menu span{ + display:none; + } + +.menu ul{ + border-top: 1px #000 solid; + border-left: 1px #000 solid; + border-right: 1px #000 solid; + margin:0; + padding:0; + position:absolute; /* important */ + width:152px; + width/**/:150px; + } + +.menu li ul{ + visibility:hidden; + } + +.menu li ul{ + margin-left:150px; /* be careful */ + margin-top:-24px; + } + +.menu a{ + text-align:center; + background-color: #ff9; + color:#000; + text-weight:bold; + display:block; + width:150px; + border-bottom: 1px #000 solid; + text-decoration:none; + margin:0; + padding:3px 0 3px 0; /* em units can creat little graphic bug in mozilla */ + } + +.menu a:hover{ + background-color: #aaf; + } + +/* for a mozilla better display with key nav */ +.menu a:focus{ + background-color: #aaf; +} + +.menu span{ + /* hide some accessibility stuff */ + display:none; + } + +.menu li{ + width:150px; + display:block; + float:left; + list-style:none; + margin:0; + padding:0; + } + +/* IE PC selector */ +* html .menu li { + display:inline; /* solve a IE PC list bug */ + float:none; /* solve a IE5 clav nav bug */ + } + +a.linkOver{ + background-color: #eee; + } \ No newline at end of file Modified: trunk/misc/design/info.txt =================================================================== --- trunk/misc/design/info.txt 2008-01-29 11:13:55 UTC (rev 4828) +++ trunk/misc/design/info.txt 2008-01-29 14:55:11 UTC (rev 4829) @@ -36,4 +36,25 @@ ---- http://jscook.yuanheng.org/JSCookMenu/ jscookmenu-2.0.3 -ThemePanel-1.1 \ No newline at end of file +ThemePanel-1.1 + +Size: 52.0 KB (JSCookMenu.js + effect.js) +Packed1: 13.2 KB (error, http://javascriptcompressor.com) +Packed2: 28.7 KB (ok, http://www.creativyst.com/Prod/3) +Packed3: 21.4 KB (ok, http://alex.dojotoolkit.org/shrinksafe) +Packed4: 21.3 KB (error, http://www.saltstorm.net/depo/esc) + + +http://dosimple.ch/articles/Menus-dynamiques/ +problems with z-index +would need much adjustments + +http://www.tanfa.co.uk/css/examples/menu/tutorial-h.asp +css only + + +Javascript Compressor +--------------------- +http://javascriptcompressor.com/ +http://www.creativyst.com/Prod/3/ +http://alex.dojotoolkit.org/shrinksafe/ \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fan...@us...> - 2008-01-29 21:15:00
|
Revision: 4833 http://linpha.svn.sourceforge.net/linpha/?rev=4833&view=rev Author: fangehrn Date: 2008-01-29 13:14:57 -0800 (Tue, 29 Jan 2008) Log Message: ----------- Modified Paths: -------------- trunk/misc/design/22menuJSCook/indexJSEffectFade.php trunk/misc/design/info.txt Added Paths: ----------- trunk/misc/design/24menuMygosumenu/ trunk/misc/design/24menuMygosumenu/XulMenu.js trunk/misc/design/24menuMygosumenu/XulMenu.txt trunk/misc/design/24menuMygosumenu/example1-cache.html trunk/misc/design/24menuMygosumenu/example1-cache.js trunk/misc/design/24menuMygosumenu/example1.css trunk/misc/design/24menuMygosumenu/example1.html trunk/misc/design/24menuMygosumenu/example2.css trunk/misc/design/24menuMygosumenu/example2.html trunk/misc/design/24menuMygosumenu/global.css trunk/misc/design/24menuMygosumenu/home.css trunk/misc/design/24menuMygosumenu/images/ trunk/misc/design/24menuMygosumenu/images/arrow1.gif trunk/misc/design/24menuMygosumenu/images/arrow2.gif trunk/misc/design/24menuMygosumenu/index.php trunk/misc/design/25menuDickerFisch/ trunk/misc/design/25menuDickerFisch/global.css trunk/misc/design/25menuDickerFisch/home.css trunk/misc/design/25menuDickerFisch/horizontal.html trunk/misc/design/25menuDickerFisch/ie6.css trunk/misc/design/25menuDickerFisch/ie7.css trunk/misc/design/25menuDickerFisch/index.php trunk/misc/design/25menuDickerFisch/index2.php trunk/misc/design/25menuDickerFisch/jq_dickerfisch_menue-c.js trunk/misc/design/25menuDickerFisch/jq_dickerfisch_menue.js trunk/misc/design/25menuDickerFisch/jquery.js trunk/misc/design/25menuDickerFisch/optional/ trunk/misc/design/25menuDickerFisch/optional/cookie.js trunk/misc/design/25menuDickerFisch/optional/dimensions-c.js trunk/misc/design/25menuDickerFisch/optional/dimensions.js trunk/misc/design/25menuDickerFisch/optional/jq.cleanCSSanim.js trunk/misc/design/25menuDickerFisch/rightarrow2.gif trunk/misc/design/25menuDickerFisch/style.css Modified: trunk/misc/design/22menuJSCook/indexJSEffectFade.php =================================================================== --- trunk/misc/design/22menuJSCook/indexJSEffectFade.php 2008-01-29 21:13:19 UTC (rev 4832) +++ trunk/misc/design/22menuJSCook/indexJSEffectFade.php 2008-01-29 21:14:57 UTC (rev 4833) @@ -18,10 +18,10 @@ <link rel="stylesheet" href="../14cornersSchill/roundCorners.css" media="screen" /> -<script type="text/javascript" src="./JSCookMenu/JSCookMenu.js"></script> -<script type="text/javascript" src="./JSCookMenu/effect.js"></script> +<!-- <script type="text/javascript" src="./JSCookMenu/JSCookMenu.js"></script> +<script type="text/javascript" src="./JSCookMenu/effect.js"></script> --> -<!-- <script type="text/javascript" src="./JSCookMenu/JSCookMenuPacked4.js"></script> --> +<script type="text/javascript" src="./JSCookMenu/JSCookMenuPacked62.js"></script> <link rel="stylesheet" href="./JSCookMenu/ThemePanelLinpha/theme.css" type="text/css"> <script type="text/javascript" src="./JSCookMenu/ThemePanelLinpha/theme.js"></script> Added: trunk/misc/design/24menuMygosumenu/XulMenu.js =================================================================== --- trunk/misc/design/24menuMygosumenu/XulMenu.js (rev 0) +++ trunk/misc/design/24menuMygosumenu/XulMenu.js 2008-01-29 21:14:57 UTC (rev 4833) @@ -0,0 +1,322 @@ +/* + * DO NOT REMOVE THIS NOTICE + * + * PROJECT: mygosuMenu + * VERSION: 1.4.2 + * COPYRIGHT: (c) 2003,2004 Cezary Tomczak + * LINK: http://gosu.pl/dhtml/mygosumenu.html + * LICENSE: BSD (revised) + */ + +function XulMenu(id) { + + this.type = "horizontal"; + this.position = { + "level1": { "top": 0, "left": 0}, + "levelX": { "top": 0, "left": 0} + } + this.zIndex = { + "visible": 1, + "hidden": -1 + } + this.arrow1 = null; + this.arrow2 = null; + + // Browser detection + this.browser = { + "ie": Boolean(document.body.currentStyle), + "ie5": (navigator.appVersion.indexOf("MSIE 5.5") != -1 || navigator.appVersion.indexOf("MSIE 5.0") != -1) + }; + if (!this.browser.ie) { this.browser.ie5 = false; } + + /* Initialize the menu */ + this.init = function() { + if (!document.getElementById(this.id)) alert("Element '"+ this.id +"' does not exist in this document. XulMenu cannot be initialized."); + if (this.type != "horizontal" && this.type != "vertical") { return alert("XulMenu.init() failed. Unknown menu type: '"+this.type+"'"); } + document.onmousedown = click; + if (this.browser.ie && this.browser.ie5) { this.fixWrap(); } + this.fixSections(); + this.parse(document.getElementById(this.id).childNodes, this.tree, this.id); + } + + /* Search for .section elements and set width for them */ + this.fixSections = function() { + var arr = document.getElementById(this.id).getElementsByTagName("div"); + var sections = new Array(); + var widths = new Array(); + + for (var i = 0; i < arr.length; i++) { + if (arr[i].className == "section") { + sections.push(arr[i]); + } + } + for (var i = 0; i < sections.length; i++) { + widths.push(this.getMaxWidth(sections[i].childNodes)); + } + for (var i = 0; i < sections.length; i++) { + sections[i].style.width = (widths[i]) + "px"; + } + if (self.browser.ie) { + for (var i = 0; i < sections.length; i++) { + this.setMaxWidth(sections[i].childNodes, widths[i]); + } + } + } + + this.fixWrap = function() { + var elements = document.getElementById(this.id).getElementsByTagName("a"); + for (var i = 0; i < elements.length; i++) { + if (/item/.test(elements[i].className)) { + elements[i].innerHTML = '<div nowrap="nowrap">'+elements[i].innerHTML+'</div>'; + } + } + } + + /* Search for an element with highest width, return that width */ + this.getMaxWidth = function(nodes) { + var maxWidth = 0; + for (var i = 0; i < nodes.length; i++) { + if (nodes[i].nodeType != 1 || nodes[i].className == "section") { continue; } + if (nodes[i].offsetWidth > maxWidth) maxWidth = nodes[i].offsetWidth; + } + return maxWidth; + } + + /* Set width for item elements */ + this.setMaxWidth = function(nodes, maxWidth) { + for (var i = 0; i < nodes.length; i++) { + if (nodes[i].nodeType == 1 && /item/.test(nodes[i].className) && nodes[i].currentStyle) { + if (this.browser.ie5) { + nodes[i].style.width = (maxWidth) + "px"; + } else { + nodes[i].style.width = (maxWidth - parseInt(nodes[i].currentStyle.paddingLeft) - parseInt(nodes[i].currentStyle.paddingRight)) + "px"; + } + } + } + } + + /* Parse menu structure, create events, position elements */ + this.parse = function(nodes, tree, id) { + for (var i = 0; i < nodes.length; i++) { + if (nodes[i].nodeType != 1) { continue }; + switch (nodes[i].className) { + case "button": + nodes[i].id = id + "-" + tree.length; + tree.push(new Array()); + nodes[i].onmouseover = buttonOver; + nodes[i].onclick = buttonClick; + break; + case "item": + nodes[i].id = id + "-" + tree.length; + tree.push(new Array()); + nodes[i].onmouseover = itemOver; + nodes[i].onmouseout = itemOut; + nodes[i].onclick = itemClick; + break; + case "section": + nodes[i].id = id + "-" + (tree.length - 1) + "-section"; + var box1 = document.getElementById(id + "-" + (tree.length - 1)); + var box2 = document.getElementById(nodes[i].id); + var el = new Element(box1.id); + if (el.level == 1) { + if (this.type == "horizontal") { + box2.style.top = (box1.offsetTop + box1.offsetHeight + this.position.level1.top) + "px"; + if (this.browser.ie5) { + box2.style.left = (this.position.level1.left) + "px"; + } else { + box2.style.left = (box1.offsetLeft + this.position.level1.left) + "px"; + } + } else if (this.type == "vertical") { + box2.style.top = (box1.offsetTop + this.position.level1.top) + "px"; + if (this.browser.ie5) { + box2.style.left = (box1.offsetWidth + this.position.level1.left) + "px"; + } else { + box2.style.left = (box1.offsetLeft + box1.offsetWidth + this.position.level1.left) + "px"; + } + } + } else { + box2.style.top = (box1.offsetTop + this.position.levelX.top) + "px"; + box2.style.left = (box1.offsetLeft + box1.offsetWidth + this.position.levelX.left) + "px"; + } + break; + case "arrow": + nodes[i].id = id + "-" + (tree.length - 1) + "-arrow"; + break; + } + if (nodes[i].childNodes) { + if (nodes[i].className == "section") { + this.parse(nodes[i].childNodes, tree[tree.length - 1], id + "-" + (tree.length - 1)); + } else { + this.parse(nodes[i].childNodes, tree, id); + } + } + } + } + + /* Hide all sections */ + this.hideAll = function() { + for (var i = this.visible.length - 1; i >= 0; i--) { + this.hide(this.visible[i]); + } + } + + /* Hide higher or equal levels */ + this.hideHigherOrEqualLevels = function(n) { + for (var i = this.visible.length - 1; i >= 0; i--) { + var el = new Element(this.visible[i]); + if (el.level >= n) { + this.hide(el.id); + } else { + return; + } + } + } + + /* Hide a section */ + this.hide = function(id) { + var el = new Element(id); + document.getElementById(id).className = (el.level == 1 ? "button" : "item"); + if (el.level > 1 && this.arrow2) { + document.getElementById(id + "-arrow").src = this.arrow1; + } + document.getElementById(id + "-section").style.visibility = "hidden"; + document.getElementById(id + "-section").style.zIndex = this.zIndex.hidden; + if (this.visible.contains(id)) { + if (this.visible.getLast() == id) { + this.visible.pop(); + } else { + throw "XulMenu.hide("+id+") failed, trying to hide element that is not deepest visible element"; + } + } else { + throw "XulMenu.hide("+id+") failed, cannot hide element that is not visible"; + } + } + + /* Show a section */ + this.show = function(id) { + var el = new Element(id); + document.getElementById(id).className = (el.level == 1 ? "button-active" : "item-active"); + if (el.level > 1 && this.arrow2) { + document.getElementById(id + "-arrow").src = this.arrow2; + } + document.getElementById(id + "-section").style.visibility = "visible"; + document.getElementById(id + "-section").style.zIndex = this.zIndex.visible; + this.visible.push(id); + } + + /* event, document.onmousedown */ + function click(e) { + var el; + if (e) { + el = e.target.tagName ? e.target : e.target.parentNode; + } else { + el = window.event.srcElement; + if (el.parentNode && /item/.test(el.parentNode.className)) { + el = el.parentNode; + } + } + if (!self.visible.length) { return }; + if (!el.onclick) { self.hideAll(); } + } + + /* event, button.onmouseover */ + function buttonOver() { + if (!self.visible.length) { return; } + if (self.visible.contains(this.id)) { return }; + self.hideAll(); + var el = new Element(this.id); + if (el.hasChilds()) { + self.show(this.id); + } + } + + /* event, button.onclick */ + function buttonClick() { + this.blur(); + if (self.visible.length) { + self.hideAll(); + } else { + var el = new Element(this.id); + if (el.hasChilds()) { + self.show(this.id); + } + } + } + + /* event, item.onmouseover */ + function itemOver() { + var el = new Element(this.id); + self.hideHigherOrEqualLevels(el.level); + if (el.hasChilds()) { + self.show(this.id); + } + } + + /* event, item.onmouseout */ + function itemOut() { + var el = new Element(this.id); + if (!el.hasChilds()) { + document.getElementById(this.id).className = "item"; + } + } + + /* event, item.onclick */ + function itemClick() { + this.blur(); + var el = new Element(this.id); + self.hideHigherOrEqualLevels(el.level); + if (el.hasChilds()) { + self.show(this.id); + } + } + + function Element(id) { + + /* Get Level of given id + * Examples: menu-1 (1 level), menu-1-4 (2 level) */ + this.getLevel = function() { + var s = this.id.substr(this.menu.id.length); + return s.substrCount("-"); + } + + /* Check whether an element has a sub-section */ + this.hasChilds = function() { + return Boolean(document.getElementById(this.id + "-section")); + } + + if (!id) { throw "XulMenu.Element(id) failed, id cannot be empty"; } + this.menu = self; + this.id = id; + this.level = this.getLevel(); + } + + this.id = id; + var self = this; + + this.tree = new Array(); /* Multidimensional array, structure of the menu */ + this.visible = new Array(); /* Example: Array("menu-0", "menu-0-4", ...), succession is important ! */ +} + +/* Check whether array contains given string */ +if (typeof Array.prototype.contains == "undefined") { + Array.prototype.contains = function(s) { + for (var i = 0; i < this.length; i++) { + if (this[i] === s) { return true; } + } + return false; + } +} + +/* Get the last element from the array */ +if (typeof Array.prototype.getLast == "undefined") { + Array.prototype.getLast = function() { + return this[this.length-1]; + } +} + +/* Counts the number of substring occurrences */ +if (typeof String.prototype.substrCount == "undefined") { + String.prototype.substrCount = function(s) { + return this.split(s).length - 1; + } +} \ No newline at end of file Added: trunk/misc/design/24menuMygosumenu/XulMenu.txt =================================================================== --- trunk/misc/design/24menuMygosumenu/XulMenu.txt (rev 0) +++ trunk/misc/design/24menuMygosumenu/XulMenu.txt 2008-01-29 21:14:57 UTC (rev 4833) @@ -0,0 +1,130 @@ +---------------- +INSTALL +---------------- + +1) include .css file +2) include .js file +3) put html structure +4) initialize menu + +Html structure is: + +- XulMenu + - button + - section + - item + - item + - item + - section + - item + - item + - item + - item + - button + - section + - item + - item + - button + +Example of initializing: + var menu = new XulMenu("id_of_the_menu"); + menu.init(); + +Example of initializing and setting additional stuff: + var menu1 = new XulMenu("menu1"); + menu1.type = "horizontal"; + menu1.position.level1.top = 0; + menu1.position.level1.left = 0; + menu1.position.levelX.top = 0; + menu1.position.levelX.left = 0; + menu1.arrow1 = "images/arrow.gif"; + menu1.arrow2 = "images/arrow-active.gif"; + +Note: + arrow1 & arrow2 set only when you want the arrow image to change when + element is active. If you don't want the arrow to change keep both variables empty. + +---------------- +API +---------------- + +Controlling the menu: + + show(id) + hide(id) + hideAll() + hideHigherOrEqualLevels(n) + + id = id of the element + n = level + + examples: + + 1) + menu1.show("menu1-1"); + + 2) + menu1.show("menu1-1"); + menu1.show("menu1-1-2"); + menu1.show("menu1-1-2-0"); + menu1.hideHigherOrEqualLevels(2); + + Both examples show the same. + +---------------- +CACHING +---------------- + +If the menu is big, for example you want the whole structure of the site in the menu +and it is 50 KB then you should cache this data, so the user downloads this code only +once and not on each request. + +See files: example1-cache.html, example1-cache.js + +example1-cache.html - instead of menu structure put this: +<script type="text/javascript" src="example1-cache.js"></script> + +example1-cache.js - the code with removed whitespace characters and some js code: +document.write('... code of the menu with removed spaces and new lines ...'); + +Advantages: reduce bandwidth, faster page loading +Disadvantages: the links won't be visible to search engines + +Note: + Removing whitespace characters from the menu code is easy with this tool: + http://gosu.pl/demo/dhtml-tools/String.replace.html + 1) In "Before" put the menu code. + 2) In "Regexp" put this: \s*(<[^>]*>) + 3) In "NewSubStr" put this: $1 + Click Replace and it's done ! + +---------------- +FEATURES +---------------- + +- horizontal or vertical menu +- unlimited nesting +- can be positioned statically or absolutely +- position of submenus can be changed, so they can for example overflow parent elements +- on the same page there can be many menus created +- seperated into 3 layers: behaviour(javascript), structure(html), presentation(css) +- search engine friendly +- free for any use (BSD license) + +---------------- +COMPATIBILITY +---------------- + +Tested on: IE, Mozilla, Opera, Safari, Netscape, Firefox + +---------------- +CHANGELOG +---------------- + +*** 1.4.2 *** + + - added support for IE 5.0 & IE 5.5 + +*** 1.4.1 *** + + - [js] fixed a minor bug, onclick event \ No newline at end of file Added: trunk/misc/design/24menuMygosumenu/example1-cache.html =================================================================== --- trunk/misc/design/24menuMygosumenu/example1-cache.html (rev 0) +++ trunk/misc/design/24menuMygosumenu/example1-cache.html 2008-01-29 21:14:57 UTC (rev 4833) @@ -0,0 +1,63 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> + <title>#1.4 XulMenu example 1</title> + <link rel="stylesheet" type="text/css" href="example1.css" /> + <script type="text/javascript" src="../ie5.js"></script> + <script type="text/javascript" src="XulMenu.js"></script> + <style type="text/css"> + body { margin: 0; padding: 0; background: #ffffff; } + #bar { + background: #ECE9D8; + border: 1px solid; + border-color: #ffffff #ACA899 #ACA899 #ffffff; + padding-top: 3px; + padding-bottom: 3px; + cursor: default; + } + #menu1 { padding-left: 5px; } + #search { + position: absolute; + top: 0; + right: 5px; + } + #search input, + #search select { + font-family: georgia, tahoma, verdana; + font-size: 12px; + margin-top: 4px; + } + </style> +</head> +<body> + + <script type="text/javscript"> + /* preload images */ + var arrow1 = new Image(4, 7); + arrow1.src = "images/arrow1.gif"; + var arrow2 = new Image(4, 7); + arrow2.src = "images/arrow2.gif"; + </script> + + <div id="bar"> + + <script type="text/javascript" src="example1-cache.js"></script> + + <div id="search"> + <input type="text" name="searchField" value="" /> + <select name="searchWhat"><option value="">Articles</option><option value="">Links</option><option value="">PHP Manual</option></select> + <input type="button" value="Search" /> + </div> + + </div> + + <script type="text/javascript"> + var menu1 = new XulMenu("menu1"); + menu1.arrow1 = "images/arrow1.gif"; + menu1.arrow2 = "images/arrow2.gif"; + menu1.init(); + </script> + +</body> +</html> \ No newline at end of file Added: trunk/misc/design/24menuMygosumenu/example1-cache.js =================================================================== --- trunk/misc/design/24menuMygosumenu/example1-cache.js (rev 0) +++ trunk/misc/design/24menuMygosumenu/example1-cache.js 2008-01-29 21:14:57 UTC (rev 4833) @@ -0,0 +1 @@ +document.write('<table cellspacing="0" cellpadding="0" id="menu1" class="XulMenu"><tr><td><a class="button" href="javascript:void(0)">Viewer</a><div class="section"><a class="item" href="example1.html">Home</a><a class="item" href="example1.html">Close</a></div></td><td><a class="button" href="javascript:void(0)">Articles</a><div class="section"><a class="item" href="javascript:void(0)">Advocacy<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="example1.html">Advocacy One</a><a class="item" href="example1.html">Advocacy Two</a><a class="item" href="example1.html">Advocacy Three</a><a class="item" href="example1.html">Advocacy Four</a><a class="item" href="example1.html">Advocacy Five</a><a class="item" href="example1.html">Advocacy Six</a><a class="item" href="example1.html">Advocacy Seven</a></div><a class="item" href="javascript:void(0)">Blogs<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="javascript:void(0)">PHP Guru<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="example1.html">Guru One</a><a class="item" href="example1.html">Guru Two</a><a class="item" href="example1.html">Guru Three</a><a class="item" href="example1.html">Guru Four</a></div></div><a class="item" href="javascript:void(0)">Design<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="javascript:void(0)">Archive<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="example1.hmtl">Archive One</a></div><a class="item" href="example1.html">Design One</a><a class="item" href="example1.html">Design Two</a><a class="item" href="example1.html">Design Three</a><a class="item" href="example1.html">Design Four</a><a class="item" href="example1.html">Design Five</a></div><a class="item" href="javascript:void(0)">Develop<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="example1.html">Develop One</a><a class="item" href="example1.html">Develop Two</a><a class="item" href="example1.html">Develop Three</a><a class="item" href="example1.html">Develop Five</a><a class="item" href="example1.html">Develop Six</a><a class="item" href="example1.html">Develop Seven</a><a class="item" href="example1.html">Develop Eight</a></div><a class="item" href="javascript:void(0)">News<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="example1.html">News One</a><a class="item" href="example1.html">News Two</a><a class="item" href="example1.html">News Three</a><a class="item" href="example1.html">News Four</a></div><a class="item" href="javascript:void(0)">Reviews<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="example1.html">Review One</a><a class="item" href="example1.html">Review Two</a></div><a class="item" href="example1.html">File Manager</a></div></td><td><a class="button" href="javascript:void(0)">Links</a><div class="section"><a class="item" href="javascript:void(0)">Advocacy<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="javascript:void(0)">Interviews<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="example1.html">Interview One</a><a class="item" href="example1.html">Interview Two</a><a class="item" href="example1.html">Interview Three</a><a class="item" href="example1.html">Interview Four</a><a class="item" href="example1.html">Interview Five</a><a class="item" href="example1.html">Interview Six</a><a class="item" href="example1.html">Interview Seven</a></div><a class="item" href="javascript:void(0)">PHP<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="example1.html">PHP One</a><a class="item" href="example1.html">PHP Two</a><a class="item" href="example1.html">PHP Three</a></div><a class="item" href="example1.html">Advocacy One</a><a class="item" href="example1.html">Advocacy Two</a><a class="item" href="example1.html">Advocacy Three</a><a class="item" href="example1.html">Advocacy Four</a><a class="item" href="example1.html">Advocacy Five</a></div><a class="item" href="javascript:void(0)">Community<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="example1.html">Community One</a><a class="item" href="example1.html">Community Two</a><a class="item" href="example1.html">Community Three</a><a class="item" href="example1.html">Community Four</a><a class="item" href="example1.html">Community Five</a></div><a class="item" href="javascript:void(0)">Concepts<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="javascript:void(0)">Books<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="example1.html">Book One</a><a class="item" href="example1.html">Book Two</a><a class="item" href="example1.html">Book Three</a><a class="item" href="example1.html">Book Four</a></div><a class="section" href="javascript:void(0)">Patterns<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="example1.html">Pattern One</a><a class="item" href="example1.html">Pattern Two</a><a class="item" href="example1.html">Pattern Three</a><a class="item" href="example1.html">Pattern Four</a></div><a class="item" href="example1.html">Concept One</a><a class="item" href="example1.html">Concept Two</a><a class="item" href="example1.html">Concept Three</a></div><a class="item" href="javascript:void(0)">Tutorials<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="javascript:void(0)">Introductory<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a><div class="section"><a class="item" href="example1.html">Introductory One</a><a class="item" href="example1.html">IIntroductory Two</a><a class="item" href="example1.html">Introductory Three</a><a class="item" href="example1.html">Introductory Four</a><a class="item" href="example1.html">Introductory Five</a><a class="item" href="example1.html">Introductory Six</a><a class="item" href="example1.html">Introductory Seven</a></div><a class="item" href="example1.html">Tutorial One</a><a class="item" href="example1.html">Tutorial Two</a><a class="item" href="example1.html">Tutorial Three</a><a class="item" href="example1.html">Tutorial Four</a><a class="item" href="example1.html">Tutorial Five</a><a class="item" href="example1.html">Tutorial Six</a><a class="item" href="example1.html">Tutorial Seven</a><a class="item" href="example1.html">Tutorial Eight</a><a class="item" href="example1.html">Tutorial Nine</a></div></div></td><td><a class="button" href="javascript:void(0)">Help</a><div class="section"><a class="item" href="example1.html">About XulMenu</a><a class="item" href="example1.html">About this site</a></div></td></tr></table>'); \ No newline at end of file Added: trunk/misc/design/24menuMygosumenu/example1.css =================================================================== --- trunk/misc/design/24menuMygosumenu/example1.css (rev 0) +++ trunk/misc/design/24menuMygosumenu/example1.css 2008-01-29 21:14:57 UTC (rev 4833) @@ -0,0 +1,63 @@ +.XulMenu { + font-family: georgia, tahoma, verdana; + font-size: 11px; + -moz-user-select: none; +} +.XulMenu .button, +.XulMenu .button:hover, +.XulMenu .button-active, +.XulMenu .button-active:hover { + line-height: normal; + padding: 5px 6px 4px 6px; + border: 1px solid #ECE9D8; + color: #000000; + text-decoration: none; + cursor: default; + white-space: nowrap; + display: block; + position: relative; +} +.XulMenu .button:hover { + border-color: #ffffff #ACA899 #ACA899 #ffffff; +} +.XulMenu .button-active, +.XulMenu .button-active:hover { + border-color: #ACA899 #ffffff #ffffff #ACA899; +} +.XulMenu .item, +.XulMenu .item:hover, +.XulMenu .item-active, +.XulMenu .item-active:hover { + background: #ffffff; + line-height: normal; + padding: 3px 30px 3px 20px; + color: #000000; + text-decoration: none; + cursor: default; + white-space: nowrap; + display: block; + position: relative; +} +.XulMenu .item:hover, +.XulMenu .item-active, +.XulMenu .item-active:hover { + background: #316AC5; + color: #ffffff; +} +.XulMenu .section { + background: #ffffff; + border: 1px solid; + border-color: #F1EFE2 #716F64 #716F64 #F1EFE2; + padding: 2px 1px 1px 2px; + position: absolute; + visibility: hidden; + z-index: -1; +} +.XulMenu .arrow { + position: absolute; + top: 7px; + right: 8px; + border: 0; +} + +* html .XulMenu td { position: relative; } /* ie 5.0 fix */ \ No newline at end of file Added: trunk/misc/design/24menuMygosumenu/example1.html =================================================================== --- trunk/misc/design/24menuMygosumenu/example1.html (rev 0) +++ trunk/misc/design/24menuMygosumenu/example1.html 2008-01-29 21:14:57 UTC (rev 4833) @@ -0,0 +1,236 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <script type="text/javascript" src="file://d:/dhtml/dev/debug.js"></script> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> + <title>#1.4 XulMenu example 1</title> + <link rel="stylesheet" type="text/css" href="example1.css" /> + <script type="text/javascript" src="../ie5.js"></script> + <script type="text/javascript" src="XulMenu.js"></script> + <style type="text/css"> + body { margin: 0; padding: 0; background: #ffffff; } + #bar { + background: #ECE9D8; + border: 1px solid; + border-color: #ffffff #ACA899 #ACA899 #ffffff; + padding-top: 3px; + padding-bottom: 3px; + padding-left: 5px; + cursor: default; + } + #search { + position: absolute; + top: 0; + right: 5px; + } + #search input, + #search select { + font-family: georgia, tahoma, verdana; + font-size: 12px; + margin-top: 4px; + } + p { font-family: georgia, tahoma, verdana; font-size: 11px; margin: 2em; } + </style> +</head> +<body> + + <script type="text/javscript"> + /* preload images */ + var arrow1 = new Image(4, 7); + arrow1.src = "images/arrow1.gif"; + var arrow2 = new Image(4, 7); + arrow2.src = "images/arrow2.gif"; + </script> + + <div id="bar"> + + <table cellspacing="0" cellpadding="0" id="menu1" class="XulMenu"> + <tr> + <td> + <a class="button" href="javascript:void(0)">Viewer</a> + <div class="section"> + <a class="item" href="example1.html">Home</a> + <a class="item" href="example1.html">Close</a> + </div> + </td> + <td> + <a class="button" href="javascript:void(0)">Articles</a> + <div class="section"> + <a class="item" href="javascript:void(0)">Advocacy<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example1.html">Advocacy One</a> + <a class="item" href="example1.html">Advocacy Two</a> + <a class="item" href="example1.html">Advocacy Three</a> + <a class="item" href="example1.html">Advocacy Four</a> + <a class="item" href="example1.html">Advocacy Five</a> + <a class="item" href="example1.html">Advocacy Six</a> + <a class="item" href="example1.html">Advocacy Seven</a> + </div> + <a class="item" href="javascript:void(0)">Blogs<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="javascript:void(0)">PHP Guru<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example1.html">Guru One</a> + <a class="item" href="example1.html">Guru Two</a> + <a class="item" href="example1.html">Guru Three</a> + <a class="item" href="example1.html">Guru Four</a> + </div> + </div> + <a class="item" href="javascript:void(0)">Design<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="javascript:void(0)">Archive<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example1.hmtl">Archive One</a> + </div> + <a class="item" href="example1.html">Design One</a> + <a class="item" href="example1.html">Design Two</a> + <a class="item" href="example1.html">Design Three</a> + <a class="item" href="example1.html">Design Four</a> + <a class="item" href="example1.html">Design Five</a> + </div> + <a class="item" href="javascript:void(0)">Develop<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example1.html">Develop One</a> + <a class="item" href="example1.html">Develop Two</a> + <a class="item" href="example1.html">Develop Three</a> + <a class="item" href="example1.html">Develop Five</a> + <a class="item" href="example1.html">Develop Six</a> + <a class="item" href="example1.html">Develop Seven</a> + <a class="item" href="example1.html">Develop Eight</a> + </div> + <a class="item" href="javascript:void(0)">News<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example1.html">News One</a> + <a class="item" href="example1.html">News Two</a> + <a class="item" href="example1.html">News Three</a> + <a class="item" href="example1.html">News Four</a> + </div> + <a class="item" href="javascript:void(0)">Reviews<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example1.html">Review One</a> + <a class="item" href="example1.html">Review Two</a> + </div> + <a class="item" href="example1.html">File Manager</a> + </div> + </td> + <td> + <a class="button" href="javascript:void(0)">Links</a> + <div class="section"> + <a class="item" href="javascript:void(0)">Advocacy<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="javascript:void(0)">Interviews<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example1.html">Interview One</a> + <a class="item" href="example1.html">Interview Two</a> + <a class="item" href="example1.html">Interview Three</a> + <a class="item" href="example1.html">Interview Four</a> + <a class="item" href="example1.html">Interview Five</a> + <a class="item" href="example1.html">Interview Six</a> + <a class="item" href="example1.html">Interview Seven</a> + </div> + <a class="item" href="javascript:void(0)">PHP<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example1.html">PHP One</a> + <a class="item" href="example1.html">PHP Two</a> + <a class="item" href="example1.html">PHP Three</a> + </div> + <a class="item" href="example1.html">Advocacy One</a> + <a class="item" href="example1.html">Advocacy Two</a> + <a class="item" href="example1.html">Advocacy Three</a> + <a class="item" href="example1.html">Advocacy Four</a> + <a class="item" href="example1.html">Advocacy Five</a> + </div> + <a class="item" href="javascript:void(0)">Community<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example1.html">Community One</a> + <a class="item" href="example1.html">Community Two</a> + <a class="item" href="example1.html">Community Three</a> + <a class="item" href="example1.html">Community Four</a> + <a class="item" href="example1.html">Community Five</a> + </div> + <a class="item" href="javascript:void(0)">Concepts<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="javascript:void(0)">Books<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example1.html">Book One</a> + <a class="item" href="example1.html">Book Two</a> + <a class="item" href="example1.html">Book Three</a> + <a class="item" href="example1.html">Book Four</a> + </div> + <a class="section" href="javascript:void(0)">Patterns<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example1.html">Pattern One</a> + <a class="item" href="example1.html">Pattern Two</a> + <a class="item" href="example1.html">Pattern Three</a> + <a class="item" href="example1.html">Pattern Four</a> + </div> + <a class="item" href="example1.html">Concept One</a> + <a class="item" href="example1.html">Concept Two</a> + <a class="item" href="example1.html">Concept Three</a> + </div> + <a class="item" href="javascript:void(0)">Tutorials<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="javascript:void(0)">Introductory<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example1.html">Introductory One</a> + <a class="item" href="example1.html">IIntroductory Two</a> + <a class="item" href="example1.html">Introductory Three</a> + <a class="item" href="example1.html">Introductory Four</a> + <a class="item" href="example1.html">Introductory Five</a> + <a class="item" href="example1.html">Introductory Six</a> + <a class="item" href="example1.html">Introductory Seven</a> + </div> + <a class="item" href="example1.html">Tutorial One</a> + <a class="item" href="example1.html">Tutorial Two</a> + <a class="item" href="example1.html">Tutorial Three</a> + <a class="item" href="example1.html">Tutorial Four</a> + <a class="item" href="example1.html">Tutorial Five</a> + <a class="item" href="example1.html">Tutorial Six</a> + <a class="item" href="example1.html">Tutorial Seven</a> + <a class="item" href="example1.html">Tutorial Eight</a> + <a class="item" href="example1.html">Tutorial Nine</a> + </div> + </div> + </td> + <td> + <a class="button" href="javascript:void(0)">Help</a> + <div class="section"> + <a class="item" href="example1.html">About XulMenu</a> + <a class="item" href="example1.html">About this site</a> + </div> + </td> + </tr> + </table> + + <div id="search"> + <input type="text" name="searchField" value="" /> + <select name="searchWhat"><option value="">Articles</option><option value="">Links</option><option value="">PHP Manual</option></select> + <input type="button" value="Search" /> + </div> + + </div> + + <script type="text/javascript"> + var menu1 = new XulMenu("menu1"); + menu1.arrow1 = "images/arrow1.gif"; + menu1.arrow2 = "images/arrow2.gif"; + menu1.init(); + </script> + + <p> + <b>Project</b>: <a href="http://gosu.pl/dhtml/mygosumenu.html">mygosuMenu</a> <br /> + <b>Menu type</b>: #1.4 XulMenu example 1 <br /> + <b>Features</b>: <br /> + - horizontal or vertical menu <br /> + - unlimited nesting <br /> + - can be positioned statically or absolutely <br /> + - position of submenus can be changed, so they can for example overflow parent elements <br /> + - on the same page there can be many menus created <br /> + - seperated into 3 layers: behaviour(javascript), structure(html), presentation(css) <br /> + - search engine friendly <br /> + - free for any use (BSD license) <br /> + <b>Compatibility</b>: Tested and works great on: IE 5.0/5.5/6.0, Mozilla 1.4/1.7, Opera 7.11/7.23/7.51, Netscape 7.11, Firefox 0.7/0.8/0.9, Safari 1.2 + </p> + +</body> +</html> \ No newline at end of file Added: trunk/misc/design/24menuMygosumenu/example2.css =================================================================== --- trunk/misc/design/24menuMygosumenu/example2.css (rev 0) +++ trunk/misc/design/24menuMygosumenu/example2.css 2008-01-29 21:14:57 UTC (rev 4833) @@ -0,0 +1,63 @@ +.XulMenu { + font-family: georgia, tahoma, verdana; + font-size: 11px; + -moz-user-select: none; +} +.XulMenu .button, +.XulMenu .button:hover, +.XulMenu .button-active, +.XulMenu .button-active:hover { + line-height: normal; + padding: 5px 6px 4px 6px; + border: 1px solid #ECE9D8; + color: #000000; + text-decoration: none; + cursor: default; + white-space: nowrap; + display: block; + position: relative; +} +.XulMenu .button:hover { + border-color: #ffffff #ACA899 #ACA899 #ffffff; +} +.XulMenu .button-active, +.XulMenu .button-active:hover { + border-color: #ACA899 #ffffff #ffffff #ACA899; +} +.XulMenu .item, +.XulMenu .item:hover, +.XulMenu .item-active, +.XulMenu .item-active:hover { + background: #ffffff; + line-height: normal; + padding: 3px 30px 3px 20px; + color: #000000; + text-decoration: none; + cursor: default; + white-space: nowrap; + display: block; + position: relative; +} +.XulMenu .item:hover, +.XulMenu .item-active, +.XulMenu .item-active:hover { + background: #316AC5; + color: #ffffff; +} +.XulMenu .section { + background: #ffffff; + border: 1px solid; + border-color: #F1EFE2 #716F64 #716F64 #F1EFE2; + padding: 2px 1px 1px 2px; + position: absolute; + visibility: hidden; + z-index: -1; +} +.XulMenu .arrow { + position: absolute; + top: 7px; + right: 8px; + border: 0; +} + +* html .XulMenu td { position: relative; } /* ie 5.0 fix */ \ No newline at end of file Added: trunk/misc/design/24menuMygosumenu/example2.html =================================================================== --- trunk/misc/design/24menuMygosumenu/example2.html (rev 0) +++ trunk/misc/design/24menuMygosumenu/example2.html 2008-01-29 21:14:57 UTC (rev 4833) @@ -0,0 +1,220 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> + <title>#1.4 XulMenu example 2</title> + <link rel="stylesheet" type="text/css" href="example2.css" /> + <script type="text/javascript" src="../ie5.js"></script> + <script type="text/javascript" src="XulMenu.js"></script> + <style type="text/css"> + html, body { height: 100%; } + body { margin: 0; padding: 0; background: #ffffff; } + #bar { + background: #ECE9D8; + border: 1px solid; + border-color: #ffffff #ACA899 #ACA899 #ffffff; + padding: 3px; + cursor: default; + } + table td { vertical-align: top; } + p { font-family: georgia, tahoma, verdana; font-size: 11px; margin: 2em; } + </style> +</head> +<body> + + <script type="text/javscript"> + /* preload images */ + var arrow1 = new Image(4, 7); + arrow1.src = "images/arrow1.gif"; + var arrow2 = new Image(4, 7); + arrow2.src = "images/arrow2.gif"; + </script> + + <table cellspacing="0" cellpadding="0" height="100%"><tr><td id="bar"> + + <table cellspacing="0" cellpadding="0" id="menu1" class="XulMenu"> + <tr> + <td> + <a class="button" href="javascript:void(0)">Viewer</a> + <div class="section"> + <a class="item" href="example2.html">Home</a> + <a class="item" href="example2.html">Close</a> + </div> + + <a class="button" href="javascript:void(0)">Articles</a> + <div class="section"> + <a class="item" href="javascript:void(0)">Advocacy<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example2.html">Advocacy One</a> + <a class="item" href="example2.html">Advocacy Two</a> + <a class="item" href="example2.html">Advocacy Three</a> + <a class="item" href="example2.html">Advocacy Four</a> + <a class="item" href="example2.html">Advocacy Five</a> + <a class="item" href="example2.html">Advocacy Six</a> + <a class="item" href="example2.html">Advocacy Seven</a> + </div> + <a class="item" href="javascript:void(0)">Blogs<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="javascript:void(0)">PHP Guru<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example2.html">Guru One</a> + <a class="item" href="example2.html">Guru Two</a> + <a class="item" href="example2.html">Guru Three</a> + <a class="item" href="example2.html">Guru Four</a> + </div> + </div> + <a class="item" href="javascript:void(0)">Design<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="javascript:void(0)">Archive<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example1.hmtl">Archive One</a> + </div> + <a class="item" href="example2.html">Design One</a> + <a class="item" href="example2.html">Design Two</a> + <a class="item" href="example2.html">Design Three</a> + <a class="item" href="example2.html">Design Four</a> + <a class="item" href="example2.html">Design Five</a> + </div> + <a class="item" href="javascript:void(0)">Develop<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example2.html">Develop One</a> + <a class="item" href="example2.html">Develop Two</a> + <a class="item" href="example2.html">Develop Three</a> + <a class="item" href="example2.html">Develop Five</a> + <a class="item" href="example2.html">Develop Six</a> + <a class="item" href="example2.html">Develop Seven</a> + <a class="item" href="example2.html">Develop Eight</a> + </div> + <a class="item" href="javascript:void(0)">News<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example2.html">News One</a> + <a class="item" href="example2.html">News Two</a> + <a class="item" href="example2.html">News Three</a> + <a class="item" href="example2.html">News Four</a> + </div> + <a class="item" href="javascript:void(0)">Reviews<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example2.html">Review One</a> + <a class="item" href="example2.html">Review Two</a> + </div> + <a class="item" href="example2.html">File Manager</a> + </div> + + <a class="button" href="javascript:void(0)">Links</a> + <div class="section"> + <a class="item" href="javascript:void(0)">Advocacy<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="javascript:void(0)">Interviews<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example2.html">Interview One</a> + <a class="item" href="example2.html">Interview Two</a> + <a class="item" href="example2.html">Interview Three</a> + <a class="item" href="example2.html">Interview Four</a> + <a class="item" href="example2.html">Interview Five</a> + <a class="item" href="example2.html">Interview Six</a> + <a class="item" href="example2.html">Interview Seven</a> + </div> + <a class="item" href="javascript:void(0)">PHP<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example2.html">PHP One</a> + <a class="item" href="example2.html">PHP Two</a> + <a class="item" href="example2.html">PHP Three</a> + </div> + <a class="item" href="example2.html">Advocacy One</a> + <a class="item" href="example2.html">Advocacy Two</a> + <a class="item" href="example2.html">Advocacy Three</a> + <a class="item" href="example2.html">Advocacy Four</a> + <a class="item" href="example2.html">Advocacy Five</a> + </div> + <a class="item" href="javascript:void(0)">Community<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example2.html">Community One</a> + <a class="item" href="example2.html">Community Two</a> + <a class="item" href="example2.html">Community Three</a> + <a class="item" href="example2.html">Community Four</a> + <a class="item" href="example2.html">Community Five</a> + </div> + <a class="item" href="javascript:void(0)">Concepts<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="javascript:void(0)">Books<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example2.html">Book One</a> + <a class="item" href="example2.html">Book Two</a> + <a class="item" href="example2.html">Book Three</a> + <a class="item" href="example2.html">Book Four</a> + </div> + <a class="section" href="javascript:void(0)">Patterns<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example2.html">Pattern One</a> + <a class="item" href="example2.html">Pattern Two</a> + <a class="item" href="example2.html">Pattern Three</a> + <a class="item" href="example2.html">Pattern Four</a> + </div> + <a class="item" href="example2.html">Concept One</a> + <a class="item" href="example2.html">Concept Two</a> + <a class="item" href="example2.html">Concept Three</a> + </div> + <a class="item" href="javascript:void(0)">Tutorials<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="javascript:void(0)">Introductory<img class="arrow" src="images/arrow1.gif" width="4" height="7" alt="" /></a> + <div class="section"> + <a class="item" href="example2.html">Introductory One</a> + <a class="item" href="example2.html">IIntroductory Two</a> + <a class="item" href="example2.html">Introductory Three</a> + <a class="item" href="example2.html">Introductory Four</a> + <a class="item" href="example2.html">Introductory Five</a> + <a class="item" href="example2.html">Introductory Six</a> + <a class="item" href="example2.html">Introductory Seven</a> + </div> + <a class="item" href="example2.html">Tutorial One</a> + <a class="item" href="example2.html">Tutorial Two</a> + <a class="item" href="example2.html">Tutorial Three</a> + <a class="item" href="example2.html">Tutorial Four</a> + <a class="item" href="example2.html">Tutorial Five</a> + <a class="item" href="example2.html">Tutorial Six</a> + <a class="item" href="example2.html">Tutorial Seven</a> + <a class="item" href="example2.html">Tutorial Eight</a> + <a class="item" href="example2.html">Tutorial Nine</a> + </div> + </div> + + <a class="button" href="javascript:void(0)">Help</a> + <div class="section"> + <a class="item" href="example2.html">About XulMenu</a> + <a class="item" href="example2.html">About this site</a> + </div> + </td> + </tr> + </table> + + </td> + <td> + <p> + <b>Project</b>: <a href="http://gosu.pl/dhtml/mygosumenu.html">mygosuMenu</a> <br /> + <b>Menu type</b>: #1.4 XulMenu example 2 <br /> + <b>Features</b>: <br /> + - horizontal or vertical menu <br /> + - unlimited nesting <br /> + - can be positioned statically or absolutely <br /> + - position of submenus can be changed, so they can for example overflow parent elements <br /> + - on the same page there can be many menus created <br /> + - seperated into 3 layers: behaviour(javascript), structure(html), presentation(css) <br /> + - search engine friendly <br /> + - free for any use (BSD license) <br /> + <b>Compatibility</b>: Tested and works great on: IE 5.0/5.5/6.0, Mozilla 1.4/1.7, Opera 7.11/7.23/7.51, Netscape 7.11, Fire... [truncated message content] |