X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fpage_header.php;h=37d6c7dd1d6128333bb6a05fea058ddfc39168ab;hb=bfa045d3d871600c3d735bc34ad8bb75594f5cdd;hp=621b55d1225425ed4cd446391bfea18c25a63f04;hpb=04f8889b98523298d035f39378bc7e12f0a642bf;p=squirrelmail.git diff --git a/functions/page_header.php b/functions/page_header.php index 621b55d1..37d6c7dd 100644 --- a/functions/page_header.php +++ b/functions/page_header.php @@ -43,25 +43,29 @@ function displayHtmlHeader( $title = 'SquirrelMail', $xtra = '', $do_hook = true } echo "\n\n" . html_tag( 'html' ,'' , '', '', 'lang="'.$squirrelmail_language.'"' ) . "\n\n"; + /* + * Add closing / to link and meta elements only after switching to xhtml 1.0 Transitional. + * It is not compatible with html 4.01 Transitional + */ if ( !isset( $custom_css ) || $custom_css == 'none' ) { if ($theme_css != '') { - echo ""; + echo ""; } } else { echo ''; + $base_uri . 'themes/css/'.$custom_css.'">'; } if ($squirrelmail_language == 'ja_JP') { /* - * force correct detection of charset, when browser does not follow + * force correct detection of charset, when browser does not follow * http content-type and tries to detect charset from page content. * Shooting of browser's creator can't be implemented in php. - * We might get rid of it, if we follow http://www.w3.org/TR/japanese-xml/ + * We might get rid of it, if we follow http://www.w3.org/TR/japanese-xml/ * recommendations and switch to unicode. - */ + */ echo "\n"; - echo '' . "\n"; + echo '' . "\n"; } if ($do_hook) { @@ -104,11 +108,11 @@ function makeInternalLink($path, $text, $target='') { $target = " target=\"$target\""; } - // This is an inefficient hook and is only used by + // This is an inefficient hook and is only used by // one plugin that still needs to patch this code, - // plus if we are templat-izing SM, visual hooks - // are not needed. However, I am leaving the code - // here just in case we find a good (non-visual?) + // plus if we are templat-izing SM, visual hooks + // are not needed. However, I am leaving the code + // here just in case we find a good (non-visual?) // use for the internal_link hook. // //$hooktext = do_hook_function('internal_link',$text); @@ -259,6 +263,191 @@ function displayPageHeader($color, $mailbox, $xtra='', $session=false) { displayHtmlHeader ('SquirrelMail', $js); break; + case 'src/right_main.php': + global $fancy_index_highlite; + if (!$fancy_index_highlite) { + $js = ''; + } else //{ putting braces around this block creats strange PHP errors + // following code graciously borrowed from + // phpMyAdmin project at: + // http://www.phpmyadmin.net + $js = << exits + if ((thePointerColor == '' && theMarkColor == '') + || typeof(theRow.style) == 'undefined') { + return false; + } + + // 2. Gets the current row and exits if the browser can't get it + if (typeof(document.getElementsByTagName) != 'undefined') { + theCells = theRow.getElementsByTagName('td'); + } + else if (typeof(theRow.cells) != 'undefined') { + theCells = theRow.cells; + } + else { + return false; + } + + // 3. Gets the current color... + var rowCellsCnt = theCells.length; + var domDetect = null; + var currentColor = null; + var newColor = null; + // 3.1 ... with DOM compatible browsers except Opera that does not return + // valid values with "getAttribute" + if (typeof(window.opera) == 'undefined' + && typeof(theCells[0].getAttribute) != 'undefined') { + currentColor = theCells[0].getAttribute('bgcolor'); + domDetect = true; + } + // 3.2 ... with other browsers + else { + currentColor = theCells[0].style.backgroundColor; + domDetect = false; + } // end 3 + + // 3.3 ... Opera changes colors set via HTML to rgb(r,g,b) format so fix it + if (currentColor.indexOf("rgb") >= 0) + { + var rgbStr = currentColor.slice(currentColor.indexOf('(') + 1, + currentColor.indexOf(')')); + var rgbValues = rgbStr.split(","); + currentColor = "#"; + var hexChars = "0123456789ABCDEF"; + for (var i = 0; i < 3; i++) + { + var v = rgbValues[i].valueOf(); + currentColor += hexChars.charAt(v/16) + hexChars.charAt(v%16); + } + } + + // 4. Defines the new color + // 4.1 Current color is the default one + if (currentColor == '' + || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) { + if (theAction == 'over' && thePointerColor != '') { + newColor = thePointerColor; + } + else if (theAction == 'click' && theMarkColor != '') { + newColor = theMarkColor; + marked_row[theRowNum] = true; + // deactivated onclick marking of the checkbox because it's also executed + // when an action (clicking on the checkbox itself) on a single item is + // performed. Then the checkbox would get deactived, even though we need + // it activated. Maybe there is a way to detect if the row was clicked, + // and not an item therein... + //document.getElementById('msg[' + theRowNum + ']').checked = true; + } + } + // 4.1.2 Current color is the pointer one + else if (currentColor.toLowerCase() == thePointerColor.toLowerCase() + && (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) { + if (theAction == 'out') { + newColor = theDefaultColor; + } + else if (theAction == 'click' && theMarkColor != '') { + newColor = theMarkColor; + marked_row[theRowNum] = true; + //document.getElementById('msg[' + theRowNum + ']').checked = true; + } + } + // 4.1.3 Current color is the marker one + else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) { + if (theAction == 'click') { + newColor = (thePointerColor != '') + ? thePointerColor + : theDefaultColor; + marked_row[theRowNum] = (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum]) + ? true + : null; + //document.getElementById('msg[' + theRowNum + ']').checked = false; + } + } // end 4 + + // 5. Sets the new color... + if (newColor) { + var c = null; + // 5.1 ... with DOM compatible browsers except Opera + if (domDetect) { + for (c = 0; c < rowCellsCnt; c++) { + theCells[c].setAttribute('bgcolor', newColor, 0); + } // end for + } + // 5.2 ... with other browsers + else { + for (c = 0; c < rowCellsCnt; c++) { + theCells[c].style.backgroundColor = newColor; + } + } + } // end 5 + + return true; +} // end of the 'setPointer()' function +EOS; + //} putting braces around this block creats strange PHP errors + $js = "\n".'\n"; + $onload = ''; + displayHtmlHeader ('SquirrelMail', $js); + break; + default: $js = '