eelyn Posted February 7, 2004 Share Posted February 7, 2004 has anyone gotten the latest version of sts to work with header tags controller? i'm not sure, but i think due to the multiple templates, somehow my index_0.php.html and index.php.html is defaulting to sts_template. having a lot of problem with the admin part of header controller as well :( Quote Link to comment Share on other sites More sharing options...
Guest Posted February 8, 2004 Share Posted February 8, 2004 The same thing is happening to me... Using STS, when a user clicks on "Confirm Order" (after they've entered their CC#), they are taking to a page at authorize.net, which asks them for it again. This did not happen before STS was installed. Quote Link to comment Share on other sites More sharing options...
WickedCoolers Posted February 8, 2004 Share Posted February 8, 2004 I am using sts 1.9 and also header tags v2 and I am having some problems. STS is compatible with Header Tags v1 but I could not find a v1 so I downloaded and installed v2. STS works great on it's own and Herader Tags works great on it's own but when I put them together it all goes wrong. The first problem was that the clean_html_comments was declared twice - declared in application_top.php by Header Tags and also is sts_display_output. This problem was easy enough to fix by just taking away the declare statement in sts_display_output and leaving it in application_top but now the Header Tags do not work. Is there a STS version with support for Header Tags Controller v2.2 or without the included support for v1 or can anyone suggest a reason as to why the header tags won't work in conjuction with STS? Any help would be much appreciated :-) Ray Quote The hardest thing in life is watching someone you love, love someone else. Link to comment Share on other sites More sharing options...
eelyn Posted February 8, 2004 Share Posted February 8, 2004 I managed to solve my own problems :) Wickedcooler: You need to check these two files: includes/application_top.php and includes/sts_display_output.php. Make sure that the clean_html and header_tags files are not required twice. EITHER you have sts_display_output.php modification around line 150 OR the added one that the Header Tags readme file asked you to add in application_top. not BOTH hope this helps Quote Link to comment Share on other sites More sharing options...
WickedCoolers Posted February 8, 2004 Share Posted February 8, 2004 I already did that so I no longer have the problem with declaring the clean)html twice but for some reason the header tags just will not work. If I just install Header Tags on a fresh install then it works great and if I install sts on a fresh install it works great but when I put them together they just don't work. I managed to get Version 1 of Header Tags and install that, it partially works for catgory tag names but when i open a product that has the tags I get the following error: Fatal error: Call to undefined function: clean_html_comments() in /home/wickedco/public_html/coolernet/catalog/includes/header_tags.php on line 78 Any idea what this means? Also, are you using Header Tags V2.2 ?? Thanks for the reply. Quote The hardest thing in life is watching someone you love, love someone else. Link to comment Share on other sites More sharing options...
Guest Posted February 9, 2004 Share Posted February 9, 2004 If you're trying to get STS, Header Tags Controller and Article Manager 1.9 to work together, check out this post on how I got them to work: http://www.oscommerce.com/forums/index.php?sho...ndpost&p=306163 -C Quote Link to comment Share on other sites More sharing options...
Guest Posted February 9, 2004 Share Posted February 9, 2004 Sorry. That should be Article Manager 1.2 - I was originally on STS 1.9, upgraded to 2.1 where everything is currently working. To get Header Tags Controller to work with STS you should simply not put in the HTC code into application_top.php, but this might cause issues elsewhere, as it did with Article Manager, which has a customization that affects HTC. See the post I referenced for details. -C Quote Link to comment Share on other sites More sharing options...
fasad Posted February 9, 2004 Share Posted February 9, 2004 (edited) I have STS 2.01 installed and working. I wanted to make some changes as discribed in Wiki docs. When i wanted to changed Box Column Widths it only changed the width of the table's column that contained the box not the box's width itself. :o i think this was resulted from installing STS. How i can change the box width through STS? thanks Edited February 9, 2004 by fasad Quote Link to comment Share on other sites More sharing options...
SoundsAlarming Posted February 9, 2004 Share Posted February 9, 2004 Fatal Error Help Please Fatal error: Failed opening required 'includes/classes/shopping_cart.php' (include_path='.:/usr/share/pear') in /home/soundsalarming/public_html/catalog/includes/application_top.php on line 123 I installed STS and initially everything was fine, but seamingly for no reason this error came up any help greatly appreceated Quote Link to comment Share on other sites More sharing options...
WickedCoolers Posted February 9, 2004 Share Posted February 9, 2004 Ok I have read the last couple of posts and tried to implament all the changes, here is what I did and what happened. 1) Installed fresh MS2.2 2) Installed STS - for some reason the includes files are different versions to my MS2.2 and when I merged them together I ended up getting duplicate columns and the contents column disappeared so just uploaded the supplied STS files (is there more than 1 MS2.2 installation?) 3) STS works perfectly 4) Installed Header Tags - as suggested I left out the HTC lines in application_top.php so that clean_html is not called twice 6) For some reason the category header actually reads the name of the category eventhough I did not change categories.php or add the new HTC "TITLE" code to categories.php 7) Copied HTC TITLE code to products_info.php 8) Entered header data into a product from admin 9) All products now show the exact HTTP line as the header instead of the typical OSCOMMERCE title tag 10) The product I entered the header data on shows the following error: Fatal error: Call to undefined function: clean_html_comments() in /home/*******/catalog/includes/header_tags.php on line 79 This is the error I get every single time I install HTC and STS, can anyone suggest a fix for what ever the problem is?? Thanks Quote The hardest thing in life is watching someone you love, love someone else. Link to comment Share on other sites More sharing options...
Guest Posted February 9, 2004 Share Posted February 9, 2004 Something with STS is hosing authorize.net calls... it's actually sending the user TO transact.dll on the authorize.net server instead of sending calls to it. Quote Link to comment Share on other sites More sharing options...
WickedCoolers Posted February 10, 2004 Share Posted February 10, 2004 now I am going insane, I gave up trying to get sts to work with HTC so I tried the simple approach, I added the following code to product_info.php : <?php if (isset($HTTP_GET_VARS['products_id'])) { $title_query = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'"); $title_results = tep_db_fetch_array($title_query); echo "<title>Buy " . $title_results['products_name'] . " at WickedCoolers.co.uk" . TITLE . "</title>"; } else { echo "<title>" . TITLE . "</title>"; } ?> It simply makes the product name into the header tag - simple but effective and problem free (or so I thought) As soon as I installed STS it stopped working and I cannot understand why STS would interfere with a couple of lines of code in a file that it does not change....anyone understand this? Also, I just installed a java applet which replaced the categories.php file (no other changes had to be made), it worked fine before STS but not anymore...why is STS now interfering with categories?????? Please somebody help ;-( Quote The hardest thing in life is watching someone you love, love someone else. Link to comment Share on other sites More sharing options...
Guest Posted February 10, 2004 Share Posted February 10, 2004 As soon as I installed STS it stopped working and I cannot understand why STS would interfere with a couple of lines of code in a file that it does not change....anyone understand this? Also, I just installed a java applet which replaced the categories.php file (no other changes had to be made), it worked fine before STS but not anymore...why is STS now interfering with categories?????? Please somebody help ;-( Hi Ray, This post by Brian describes the nutshell of how STS works: http://www.oscommerce.com/forums/index.php?sho...ndpost&p=232735 If you look closely at sts_display_output.php it defines a block called $headertags in which it either calls the Header Tags Controller mod if present or uses the stock TITLE define from english.php. It then strips the actual title content from the $headertags variable. So the header stuff that exists on all the other pages is ignored, which is what you would want to do if you're templating - you want that head information to come from your template file. Now, because all of the content on the page is being captured to a buffer and assigned to a string variable, any non-text or other code on the page being captured will get missed, which is why the java applet you have on the categories page isn't showing up with the template installed. Using the &sts_normal or setting the $display_normal_output to 1 should display the page without the template, allowing you to confirm this. One thing to keep in mind when using the STS is to note where the $sts_block_names get assigned. In general: $applicationtop2header: application_top.php to header.php $header: header.php $header2columnleft: header.php to column_left.php standard info boxes (see docs for detail): column_left.php, column_right.php $columnleft2columnright: column_left.php to column_right.php $columnright2footer: column_right to footer.php $counter: footer.php $footer: footer.php $banner: footer.php $footer2applicationbottom: footer.php to application_bottom.php user defined boxes: sts_user_code.php $catmenu: sts_user_code.php The reason this is important is because the capture starts with a call to STS_START_CAPTURE, then for each block through $banner STS_RESTART_CAPTURE is used instead, to continally capture output, and finally a STS_STOP_CAPTURE is used at $footer2applicationbottom. in sts_user_code.php each user defined block uses STS_START_CAPTURE and STS_END_CAPTURE on each block. If code gets placed without considering where the blocks are being captured (such as trying to put the Header Tags controller code in application_top AFTER the STS_START_CAPTURE) the output may not behave as you expected it to. HTH, -C Quote Link to comment Share on other sites More sharing options...
WickedCoolers Posted February 10, 2004 Share Posted February 10, 2004 Jaxx..thanks for your replies. Do you know if and how I can get sts to capture my java applet and also my header tags? I can't quite understand why it does not capture the java because I simply replaced the categories file so I would of thought that when sts captures categories, it would capture the new java? Thx Ray Quote The hardest thing in life is watching someone you love, love someone else. Link to comment Share on other sites More sharing options...
Guest Posted February 10, 2004 Share Posted February 10, 2004 Hi, I'm wanting to add the $the_title text which is used in my META headers, somewhere in my template? Is this possible? (I tried simple putting $the_title. but it jsut display the text $the_title) (I'm using the META tags contribution) Thanks! Quote Link to comment Share on other sites More sharing options...
Guest Posted February 10, 2004 Share Posted February 10, 2004 The php output functions only buffer the script's output. The java applet is a separate program outside the script and therefore outside its scope. Check out the following link for more information: http://us2.php.net/manual/en/ref.outcontrol.php -C Quote Link to comment Share on other sites More sharing options...
WickedCoolers Posted February 10, 2004 Share Posted February 10, 2004 Chris, I don't suppose you know any other template addons that might allow me to use my custom header tags and java applet or would it be possible (if not very time consuming) to make the changes to the files manually, ie...configure the box sizes and change the colours etc by manually inserting html code and changing the stylesheet? - I don't move many boxes around using the template, I simply change the background colour and add borders to the whole page and the boxes which I do not knoe who to do in the normal php files. Once again thx for the help. Quote The hardest thing in life is watching someone you love, love someone else. Link to comment Share on other sites More sharing options...
lostinosc Posted February 10, 2004 Share Posted February 10, 2004 I'm still lost if anyone can help! I posted on the previous page the problem I'm having. I do still have those last lines in my configure.php Quote Link to comment Share on other sites More sharing options...
DiamondSea Posted February 11, 2004 Author Share Posted February 11, 2004 Chris, I don't suppose you know any other template addons that might allow me to use my custom header tags and java applet or would it be possible (if not very time consuming) to make the changes to the files manually, ie...configure the box sizes and change the colours etc by manually inserting html code and changing the stylesheet? - I don't move many boxes around using the template, I simply change the background colour and add borders to the whole page and the boxes which I do not knoe who to do in the normal php files. Once again thx for the help. I'll try to get the Header Tag Controller support updated to Linda's latest version with the next rev of STS. Not sure when I'll get it done, but it's on my list! :) You can add your java or javascript code to the sts_template.html file (or to whatever template file you want it in) and it should work. If not, send me the link to a page where it does work and to the STS page that doesn't and I'll try to figure out what the problem is. I'm also thinking about adding Smarty support to STS. Anybody have any objections to that? - Brian Quote Simple Template System (STS) Layout your site with 1 (or more) HTML file! Download STS: http://www.oscommerce.com/community/contributions,1524 Support: http://www.oscommerce.com/forums/index.php?showtopic=58541 Link to comment Share on other sites More sharing options...
Guest Posted February 11, 2004 Share Posted February 11, 2004 Well I just started over and now I'm getting this with version 2: Template file doesn't exist: [sTS_DEFAULT_TEMPLATE] Warning: fopen(STS_DEFAULT_TEMPLATE): failed to open stream: No such file or directory in /home/doodleb/public_html/store/includes/sts_display_output.php on line 120 Can't open Template file: [sTS_DEFAULT_TEMPLATE] Warning: filesize(): Stat failed for STS_DEFAULT_TEMPLATE (errno=2 - No such file or directory) in /home/doodleb/public_html/store/includes/sts_display_output.php on line 124 Warning: fread(): supplied argument is not a valid stream resource in /home/doodleb/public_html/store/includes/sts_display_output.php on line 124 Warning: fclose(): supplied argument is not a valid stream resource in /home/doodleb/public_html/store/includes/sts_display_output.php on line 125 Warning: main(STS_USER_CODE): failed to open stream: No such file or directory in /home/doodleb/public_html/store/includes/sts_display_output.php on line 138 Fatal error: main(): Failed opening required 'STS_USER_CODE' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/doodleb/public_html/store/includes/sts_display_output.php on line 138 lostinosc: First, I assume that you tested and confirmed the fresh install of osC MS2 was working properly before installing STS. It appears that the configuration to get STS installed was not completed properly. I would check to make sure the defines in catalog/includes/configure.php are correct. line in sts_display_output.php should read: // Start with the default template $sts_template_file = STS_DEFAULT_TEMPLATE; lines in configure.php should read: define('STS_START_CAPTURE', DIR_WS_INCLUDES . 'sts_start_capture.php'); define('STS_STOP_CAPTURE', DIR_WS_INCLUDES . 'sts_stop_capture.php'); define('STS_RESTART_CAPTURE', DIR_WS_INCLUDES . 'sts_restart_capture.php'); define('STS_TEMPLATE_DIR', DIR_WS_INCLUDES . 'sts_templates/'); define('STS_DEFAULT_TEMPLATE', DIR_WS_INCLUDES . 'sts_template.html'); define('STS_DISPLAY_OUTPUT', DIR_WS_INCLUDES . 'sts_display_output.php'); define('STS_USER_CODE', DIR_WS_INCLUDES . 'sts_user_code.php'); define('STS_PRODUCT_INFO', DIR_WS_INCLUDES . 'sts_product_info.php'); Based on the error messages you're receiving it appears that $sts_template_file is getting set to 'STS_DEFAULT_TEMPLATE', literally. Same with the call to STS_USER_CODE. Both of these should be constants defined in configure.php to a different value as above. HTH, -C Quote Link to comment Share on other sites More sharing options...
Guest Posted February 11, 2004 Share Posted February 11, 2004 I'm also thinking about adding Smarty support to STS. Anybody have any objections to that? I haven't used Smarty, but I was checking out the site and it looks interesting. The caching could be useful. But then, I'd probably stay at rev 2.01 for now. I just got used to it and now you want to change the codebase on me. ;) -C Quote Link to comment Share on other sites More sharing options...
lostinosc Posted February 11, 2004 Share Posted February 11, 2004 Thanks Jaxx....I'll try again. :) Quote Link to comment Share on other sites More sharing options...
DiamondSea Posted February 11, 2004 Author Share Posted February 11, 2004 I'm also thinking about adding Smarty support to STS. Anybody have any objections to that? I haven't used Smarty, but I was checking out the site and it looks interesting. The caching could be useful. But then, I'd probably stay at rev 2.01 for now. I just got used to it and now you want to change the codebase on me. ;) -C Don't worry. It should actually be a pretty minor change to the codebase (if I understand how Smarty works correctly :) ) - Brian Quote Simple Template System (STS) Layout your site with 1 (or more) HTML file! Download STS: http://www.oscommerce.com/community/contributions,1524 Support: http://www.oscommerce.com/forums/index.php?showtopic=58541 Link to comment Share on other sites More sharing options...
WickedCoolers Posted February 11, 2004 Share Posted February 11, 2004 Brian, I tried adding the javascript to the template but it did not quite work because it is not just pure java, the java is incorporated into the categories.php file which has new php code to make the java work, if I had just a pure java applet then it would be simply to add into the html. I do not know much about java and how it works with php. I thought about what chris said about the java being a seperate program which is true of most java applets, they have class files etc that need to be loaded but this contribution only changes the categories file and does not require any other files so I guess calling it an applet is not entirely correct. Therefore if it is not a seperate program then it should work and the only reason I can think of that it won't work is folowing on from chris said that the display_output does not capture or understand the new lines of java in the categories file. In template mode the categories box comes up but is emtpy and in normal mode it will show the the contents of the box. Can you tell me how to get sts to capture the new java lines (or to capture new lines in general) as this would also help with my header tags where the 6 or 7 new lines I put into product_info.php were ignored by sts. Is there any equivalent file in sts to the product_info.php where I can add the extra lines of code so that sts will see them? Below is the categories file with the java: <!-- categories //--> <tr> <td> <?php /* Dynamic DHTL MenuBar for category listing v 0.2.1 This is a combination of modified categories.php and HV Menu javacript written by Ger Versluis (c) 2000 version 5.411 24 December 2001 (updated Jan 31st, 2003 by Dynamic Drive for Opera7) * HV Menu found on Dynamic Drive ONLY may be used on both commercial and non commerical sites * * For info about HV Menu write to [email protected] Modifications for osCommerce menuBar_0_2 made by John Guerra 2/9/2003 [email protected] */ define('LEFT_LINK_HEIGHT',20); define('LEFT_LINK_WIDTH',BOX_WIDTH); $info_box_contents = array(); $info_box_contents[] = array('align' => 'left', 'text' => BOX_HEADING_CATEGORIES ); new infoBoxHeading($info_box_contents, true, false); ?> <script type='text/javascript'> /******************************************************************************** ************************************************************* * (c) Ger Versluis 2000 version 5.411 24 December 2001 (updated Jan 31st, 2003 by Dynamic Drive for Opera7) * HV Menu found on Dynamic Drive ONLY may be used on both commercial and non commerical sites * * For info write to [email protected] * * This script featured on Dynamic Drive DHTML code library: http://www.dynamicdrive.com ******************************************************************************** **************************************************************/ var LowBgColor='transparent'; // Background color when mouse is not over var LowSubBgColor='white'; // Background color when mouse is not over on subs var HighBgColor='transparent'; // Background color when mouse is over var HighSubBgColor='white'; // Background color when mouse is over on subs var FontLowColor='black'; // Font color when mouse is not over var FontSubLowColor='black'; // Font color subs when mouse is not over var FontHighColor='#6699cc'; // Font color when mouse is over var FontSubHighColor='#6699cc'; // Font color subs when mouse is over var BorderColor='transparent'; // Border color var BorderSubColor='#6699cc'; // Border color for subs var BorderWidth=1; // Border width var BorderBtwnElmnts=0; // Border between elements 1 or 0 var FontFamily="Verdana, Arial, sans-serif" // Font family menu items var FontSize=8; // Font size menu items var FontBold=0; // Bold menu items 1 or 0 var FontItalic=0; // Italic menu items 1 or 0 var MenuTextCentered='left'; // Item text position 'left', 'center' or 'right' var MenuCentered='left'; // Menu horizontal position 'left', 'center' or 'right' var MenuVerticalCentered='top'; // Menu vertical position 'top', 'middle','bottom' or static var ChildOverlap=.0; // horizontal overlap child/ parent var ChildVerticalOverlap=.0; // vertical overlap child/ parent var StartTop=1; // Menu offset x coordinate var StartLeft=0; // Menu offset y coordinate var VerCorrect=0; // Multiple frames y correction var HorCorrect=0; // Multiple frames x correction var LeftPaddng=2; // Left padding var TopPaddng=1; // Top padding var DissapearDelay=500; // delay before menu folds in var FirstLineHorizontal=0; // SET TO 1 FOR HORIZONTAL MENU, 0 FOR VERTICAL var MenuFramesVertical=1; // Frames in cols or rows 1 or 0 var TakeOverBgColor=1; // Menu frame takes over background color subitem frame var FirstLineFrame='navig'; // Frame where first level appears var SecLineFrame='space'; // Frame where sub levels appear var DocTargetFrame='space'; // Frame where target documents appear var TargetLoc='MenuBar'; // span id for relative positioning var HideTop=0; // Hide first level when loading new document 1 or 0 var MenuWrap=1; // enables/ disables menu wrap 1 or 0 var RightToLeft=0; // enables/ disables right to left unfold 1 or 0 var UnfoldsOnClick=0; // Level 1 unfolds onclick/ onmouseover var WebMasterCheck=0; // menu tree checking on or off 1 or 0 var ShowArrow=1; // Uses arrow gifs when 1 var KeepHilite=1; // Keep selected path highligthed var Arrws=['<?php echo DIR_WS_IMAGES; ?>tri.gif',5,10,'<?php echo DIR_WS_IMAGES; ?>tridown.gif',10,5,'<?php echo DIR_WS_IMAGES; ?>trileft.gif',5,10]; // Arrow source, width and height function BeforeStart(){return} function AfterBuild(){return} function BeforeFirstOpen(){return} function AfterCloseAll(){return} function Go(){return} <?php $number_top_levels = 0; $categories_string=''; $number_top_levels = build_menus(0,'',''); echo 'var NoOffFirstLineMenus= ' . $number_top_levels. ';'; // Number of first level items echo $categories_string; function build_menus($currentParID,$menustr,$catstr) { global $categories_string, $id, $languages_id; $tmpCount; $tmpCount = 0; $haschildren = 0; //default $categories_query_catmenu = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . $currentParID . "' and c.categories_id = cd.categories_id and cd.language_id='" . $languages_id ."' order by sort_order, cd.categories_name"); while ($categories = tep_db_fetch_array($categories_query_catmenu)) { $tmpString = ''; $tmpCount += 1; $haschildren=tep_has_category_subcategories($categories['categories_id']); if ($haschildren) { if($menustr != ''){ $menu_tmp = $menustr . '_' . $tmpCount; } else { $menu_tmp = $tmpCount; } if($catstr != ''){ $cat_tmp = $catstr . '_' . $categories['categories_id']; } else { $cat_tmp = $categories['categories_id']; } $NumChildren = build_menus($categories['categories_id'],$menu_tmp,$cat_tmp); } else { $NumChildren = 0; } if ($id==$categories['categories_id']) { $tmpString .= '<b>'; } // display category name $tmpString .= $categories['categories_name']; if ( $id==$categories['categories_id'] ) { $tmpString .= '</b>'; } if (SHOW_COUNTS == 'true') { $products_in_category = tep_count_products_in_category($categories['categories_id']); if ($products_in_category > 0) { $tmpString .= ' (' . $products_in_category . ')'; } } if($catstr != ''){ $cPath_new = 'cPath=' . $catstr . '_' . $categories['categories_id']; } else { $cPath_new = 'cPath=' . $categories['categories_id']; } // Menu tree // Menu1_1_1=new Array(Text to show, Link, background image (optional), number of sub elements, height, width); if($menustr != ''){ $menu_tmp = $menustr . '_' . $tmpCount; } else { $menu_tmp = $tmpCount; } $categories_string .= 'Menu' . ($menustr!=''?$menustr.'_':'') . $tmpCount; $categories_string .= '= new Array("' . $tmpString . '","'; $categories_string .= tep_href_link(FILENAME_DEFAULT, $cPath_new); $categories_string .= '","",'; $categories_string .= $NumChildren; $categories_string .= ',' . LEFT_LINK_HEIGHT . ',' . LEFT_LINK_WIDTH; $categories_string .= '); '; }// end while return $tmpCount; } //end build menus echo '</script>'; $tabletext ="<table><tr><td><div id='MenuBar' style='position:relative; width: " . LEFT_LINK_WIDTH . "; height: " . ($number_top_levels*LEFT_LINK_HEIGHT) . ";'> </div></td></tr></table>"; $info_box_contents = array(); $info_box_contents[] = array('align' => 'left', 'text' => $tabletext ); new infoBox($info_box_contents); ?> <script type='text/javascript'> /***** Engine for menus *****/ /* * (c) Ger Versluis 2000 version 5.411 24 December 2001 (updated Jan 31st, 2003 by Dynamic Drive for Opera7) * HV Menu found on Dynamic Drive ONLY may be used on both commercial and non commerical sites * * For info write to [email protected] * * This script featured on Dynamic Drive DHTML code library: http://www.dynamicdrive.com */ var AgntUsr=navigator.userAgent.toLowerCase(); var DomYes=document.getElementById?1:0; var NavYes=AgntUsr.indexOf('mozilla')!=-1&&AgntUsr.indexOf('compatible')==-1?1:0; var ExpYes=AgntUsr.indexOf('msie')!=-1?1:0; var Opr=AgntUsr.indexOf('opera')!=-1?1:0; var Opr6orless=window.opera && navigator.userAgent.search(/opera.[1-6]/i)!=-1 //DynamicDrive.com added code var DomNav=DomYes&&NavYes?1:0; var DomExp=DomYes&&ExpYes?1:0; var Nav4=NavYes&&!DomYes&&document.layers?1:0; var Exp4=ExpYes&&!DomYes&&document.all?1:0; var PosStrt=(NavYes||ExpYes)&&!Opr6orless?1:0; var FrstLoc,ScLoc,DcLoc; var ScWinWdth,ScWinHght,FrstWinWdth,FrstWinHght; var ScLdAgainWin; var FirstColPos,SecColPos,DocColPos; var RcrsLvl=0; var FrstCreat=1,Loadd=0,Creatd=0,IniFlg,AcrssFrms=1; var FrstCntnr=null,CurrntOvr=null,CloseTmr=null; var CntrTxt,TxtClose,ImgStr; var Ztop=100; var ShwFlg=0; var M_StrtTp=StartTop,M_StrtLft=StartLeft; var StaticPos=0; var LftXtra=DomNav?LeftPaddng:0; var TpXtra=DomNav?TopPaddng:0; var M_Hide=Nav4?'hide':'hidden'; var M_Show=Nav4?'show':'visible'; var Par=parent.frames[0]&&FirstLineFrame!=SecLineFrame?parent:window; var Doc=Par.document; var Bod=Doc.body; var Trigger=NavYes?Par:Bod; MenuTextCentered=MenuTextCentered==1||MenuTextCentered=='center'?'center':MenuTextCentered==0||MenuTextCentered!='right'?'left':'right'; WbMstrAlrts=["Item not defined: ","Item needs height: ","Item needs width: "]; if(Trigger.onload)Dummy=Trigger.onload; if(DomNav&&!Opr)Trigger.addEventListener('load',Go,false); else Trigger.onload=Go; function Dummy(){return} function CnclSlct(){return false} function RePos(){ FrstWinWdth=ExpYes?FrstLoc.document.body.clientWidth:FrstLoc.innerWidth; FrstWinHght=ExpYes?FrstLoc.document.body.clientHeight:FrstLoc.innerHeight; ScWinWdth=ExpYes?ScLoc.document.body.clientWidth:ScLoc.innerWidth; ScWinHght=ExpYes?ScLoc.document.body.clientHeight:ScLoc.innerHeight; if(MenuCentered=='justify'&&FirstLineHorizontal){ FrstCntnr.style.width=FrstWinWdth; ClcJus(); var P=FrstCntnr.FrstMbr,W=Menu1[5],i; for(i=0;i<NoOffFirstLineMenus;i++){P.style.width=W;P=P.PrvMbr}} StaticPos=-1; if(TargetLoc)ClcTrgt(); if(MenuCentered)ClcLft(); if(MenuVerticalCentered)ClcTp(); PosMenu(FrstCntnr,StartTop,StartLeft)} function UnLoaded(){ if(CloseTmr)clearTimeout(CloseTmr); Loadd=0; Creatd=0; if(HideTop){ var FCStyle=Nav4?FrstCntnr:FrstCntnr.style; FCStyle.visibility=M_Hide}} function ReDoWhole(){ if(ScWinWdth!=ScLoc.innerWidth||ScWinHght!=ScLoc.innerHeight||FrstWinWdth!=FrstLoc.innerWidth||FrstWinHght!=FrstLoc.innerHeight)Doc.location.reload()} function Check(WMnu,NoOf){ var i,array,ArrayLoc; ArrayLoc=parent.frames[0]?parent.frames[FirstLineFrame]:self; for(i=0;i<NoOf;i++){ array=WMnu+eval(i+1); if(!ArrayLoc[array]){WbMstrAlrt(0,array); return false} if(i==0){ if(!ArrayLoc[array][4]){WbMstrAlrt(1,array); return false} if(!ArrayLoc[array][5]){WbMstrAlrt(2,array); return false}} if(ArrayLoc[array][3])if(!Check(array+'_',ArrayLoc[array][3])) return false} return true} function WbMstrAlrt(No,Xtra){ return confirm(WbMstrAlrts[No]+Xtra+' ')} function Go(){ Dummy(); if(Loadd||!PosStrt)return; BeforeStart(); Creatd=0; Loadd=1; status='Building menu'; if(FrstCreat){ if(FirstLineFrame =="" || !parent.frames[FirstLineFrame]){ FirstLineFrame=SecLineFrame; if(FirstLineFrame =="" || !parent.frames[FirstLineFrame]){ FirstLineFrame=SecLineFrame=DocTargetFrame; if(FirstLineFrame =="" || !parent.frames[FirstLineFrame])FirstLineFrame=SecLineFrame=DocTargetFrame=''}} if(SecLineFrame =="" || !parent.frames[SecLineFrame]){ SecLineFrame=DocTargetFrame; if(SecLineFrame =="" || !parent.frames[SecLineFrame])SecLineFrame=DocTargetFrame=FirstLineFrame} if(DocTargetFrame =="" || !parent.frames[DocTargetFrame])DocTargetFrame=SecLineFrame; if(WebMasterCheck){ if(!Check('Menu',NoOffFirstLineMenus)){status='build aborted';return}} FrstLoc=FirstLineFrame!=""?parent.frames[FirstLineFrame]:window; ScLoc=SecLineFrame!=""?parent.frames[SecLineFrame]:window; DcLoc=DocTargetFrame!=""?parent.frames[DocTargetFrame]:window; if (FrstLoc==ScLoc) AcrssFrms=0; if (AcrssFrms)FirstLineHorizontal=MenuFramesVertical?0:1; FrstWinWdth=ExpYes?FrstLoc.document.body.clientWidth:FrstLoc.innerWidth; FrstWinHght=ExpYes?FrstLoc.document.body.clientHeight:FrstLoc.innerHeight; ScWinWdth=ExpYes?ScLoc.document.body.clientWidth:ScLoc.innerWidth; ScWinHght=ExpYes?ScLoc.document.body.clientHeight:ScLoc.innerHeight; if(Nav4){ CntrTxt=MenuTextCentered!='left'?"<div align='"+MenuTextCentered+"'>":""; TxtClose="</font>"+MenuTextCentered!='left'?"</div>":""}} FirstColPos=Nav4?FrstLoc.document:FrstLoc.document.body; SecColPos=Nav4?ScLoc.document:ScLoc.document.body; DocColPos=Nav4?DcLoc.document:ScLoc.document.body; if (TakeOverBgColor)FirstColPos.bgColor=AcrssFrms?SecColPos.bgColor:DocColPos.bgColor; if(MenuCentered=='justify'&&FirstLineHorizontal)ClcJus(); if(FrstCreat){ FrstCntnr=CreateMenuStructure('Menu',NoOffFirstLineMenus); FrstCreat=AcrssFrms?0:1} else CreateMenuStructureAgain('Menu',NoOffFirstLineMenus); if(TargetLoc)ClcTrgt(); if(MenuCentered)ClcLft(); if(MenuVerticalCentered)ClcTp(); PosMenu(FrstCntnr,StartTop,StartLeft); IniFlg=1; Initiate(); Creatd=1; ScLdAgainWin=ExpYes?ScLoc.document.body:ScLoc; ScLdAgainWin.onunload=UnLoaded; Trigger.onresize=Nav4?ReDoWhole:RePos; AfterBuild(); if(MenuVerticalCentered=='static'&&!AcrssFrms)setInterval('KeepPos()',250); status='Menu ready for use'} function KeepPos(){ var TS=ExpYes?FrstLoc.document.body.scrollTop:FrstLoc.pageYOffset; if(TS!=StaticPos){ var FCStyle=Nav4?FrstCntnr:FrstCntnr.style; FCStyle.top=FrstCntnr.OrgTop=StartTop+TS;StaticPos=TS}} function ClcJus(){ var a=BorderBtwnElmnts?1:2,b=BorderBtwnElmnts?BorderWidth:0; var Size=Math.round(((FrstWinWdth-a*BorderWidth)/NoOffFirstLineMenus)-b),i,j; for(i=1;i<NoOffFirstLineMenus+1;i++){j=eval('Menu'+i);j[5]=Size} StartLeft=0} function ClcTrgt(){ var TLoc=Nav4?FrstLoc.document.layers[TargetLoc]:DomYes?FrstLoc.document.getElementById(TargetLoc):FrstLoc.document.all[TargetLoc]; StartTop=M_StrtTp; StartLeft=M_StrtLft; if(DomYes){ while(TLoc){StartTop+=TLoc.offsetTop;StartLeft+=TLoc.offsetLeft;TLoc=TLoc.offsetParent} } else{ StartTop+=Nav4?TLoc.pageY:TLoc.offsetTop;StartLeft+=Nav4?TLoc.pageX:TLoc.offsetLeft}} function ClcLft(){ if(MenuCentered!='left'&&MenuCentered!='justify'){ var Size=FrstWinWdth-(!Nav4?parseInt(FrstCntnr.style.width):FrstCntnr.clip.width); StartLeft=M_StrtLft; StartLeft+=MenuCentered=='right'?Size:Size/2}} function ClcTp(){ if(MenuVerticalCentered!='top'&&MenuVerticalCentered!='static'){ var Size=FrstWinHght-(!Nav4?parseInt(FrstCntnr.style.height):FrstCntnr.clip.height); StartTop=M_StrtTp; StartTop+=MenuVerticalCentered=='bottom'?Size:Size/2}} function PosMenu(CntnrPntr,Tp,Lt){ var Topi,Lefti,Hori; var Cntnr=CntnrPntr; var Mmbr=Cntnr.FrstMbr; var CntnrStyle=!Nav4?Cntnr.style:Cntnr; var MmbrStyle=!Nav4?Mmbr.style:Mmbr; var PadL=Mmbr.value.indexOf('<')==-1?LftXtra:0; var PadT=Mmbr.value.indexOf('<')==-1?TpXtra:0; var MmbrWt=!Nav4?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width; var MmbrHt=!Nav4?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height; var CntnrWt=!Nav4?parseInt(CntnrStyle.width):CntnrStyle.clip.width; var CntnrHt=!Nav4?parseInt(CntnrStyle.height):CntnrStyle.clip.height; var SubTp,SubLt; RcrsLvl++; if (RcrsLvl==1 && AcrssFrms)!MenuFramesVertical?Tp=FrstWinHght-CntnrHt+(Nav4?4:0):Lt=RightToLeft?0:FrstWinWdth-CntnrWt+(Nav4?4:0); if (RcrsLvl==2 && AcrssFrms)!MenuFramesVertical?Tp=0:Lt=RightToLeft?ScWinWdth-CntnrWt:0; if (RcrsLvl==2 && AcrssFrms){Tp+=VerCorrect;Lt+=HorCorrect} CntnrStyle.top=RcrsLvl==1?Tp:0; Cntnr.OrgTop=Tp; CntnrStyle.left=RcrsLvl==1?Lt:0; Cntnr.OrgLeft=Lt; if (RcrsLvl==1 && FirstLineHorizontal){ Hori=1;Lefti=CntnrWt-MmbrWt-2*BorderWidth;Topi=0} else{ Hori=Lefti=0;Topi=CntnrHt-MmbrHt-2*BorderWidth} while(Mmbr!=null){ MmbrStyle.left=Lefti+BorderWidth; MmbrStyle.top=Topi+BorderWidth; if(Nav4)Mmbr.CmdLyr.moveTo(Lefti+BorderWidth,Topi+BorderWidth); if(Mmbr.ChildCntnr){ if(RightToLeft)ChldCntnrWdth=Nav4?Mmbr.ChildCntnr.clip.width:parseInt(Mmbr.ChildCntnr.style.width); if(Hori){ SubTp=Topi+MmbrHt+2*BorderWidth; SubLt=RightToLeft?Lefti+MmbrWt-ChldCntnrWdth:Lefti} else{ SubLt=RightToLeft?Lefti-ChldCntnrWdth+ChildOverlap*MmbrWt+BorderWidth:Lefti+(1-ChildOverlap)*MmbrWt+BorderWidth; SubTp=RcrsLvl==1&&AcrssFrms?Topi:Topi+ChildVerticalOverlap*MmbrHt} PosMenu(Mmbr.ChildCntnr,SubTp,SubLt)} Mmbr=Mmbr.PrvMbr; if(Mmbr){ MmbrStyle=!Nav4?Mmbr.style:Mmbr; PadL=Mmbr.value.indexOf('<')==-1?LftXtra:0; PadT=Mmbr.value.indexOf('<')==-1?TpXtra:0; MmbrWt=!Nav4?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width; MmbrHt=!Nav4?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height; Hori?Lefti-=BorderBtwnElmnts?(MmbrWt+BorderWidth):(MmbrWt):Topi-=BorderBtwnElmnts?(MmbrHt+BorderWidth):(MmbrHt)}} RcrsLvl--} function Initiate(){ if(IniFlg){ Init(FrstCntnr);IniFlg=0; if(ShwFlg)AfterCloseAll();ShwFlg=0}} function Init(CntnrPntr){ var Mmbr=CntnrPntr.FrstMbr; var MCStyle=Nav4?CntnrPntr:CntnrPntr.style; RcrsLvl++; MCStyle.visibility=RcrsLvl==1?M_Show:M_Hide; while(Mmbr!=null){ if(Mmbr.Hilite){Mmbr.Hilite=0;if(KeepHilite)LowItem(Mmbr)} if(Mmbr.ChildCntnr) Init(Mmbr.ChildCntnr); Mmbr=Mmbr.PrvMbr} RcrsLvl--} function ClearAllChilds(Pntr){ var CPCCStyle; while (Pntr){ if(Pntr.Hilite){ Pntr.Hilite=0; if(KeepHilite)LowItem(Pntr); if(Pntr.ChildCntnr){ CPCCStyle=Nav4?Pntr.ChildCntnr:Pntr.ChildCntnr.style; CPCCStyle.visibility=M_Hide; ClearAllChilds(Pntr.ChildCntnr.FrstMbr)} break} Pntr=Pntr.PrvMbr}} function GoTo(){ if(this.LinkTxt){ status=''; var HP=Nav4?this.LowLyr:this; LowItem(HP); this.LinkTxt.indexOf('javascript:')!=-1?eval(this.LinkTxt):DcLoc.location.href=this.LinkTxt}} function HiliteItem(P){ if(Nav4){ if(P.ro)P.document.images[P.rid].src=P.ri2; else{ if(P.HiBck)P.bgColor=P.HiBck; if(P.value.indexOf('<img')==-1){ P.document.write(P.Ovalue); P.document.close()}}} else{ if(P.ro){ var Lc=P.Level==1?FrstLoc:ScLoc; Lc.document.images[P.rid].src=P.ri2} else{ if(P.HiBck)P.style.backgroundColor=P.HiBck; if(P.HiFntClr)P.style.color=P.HiFntClr}} P.Hilite=1} function LowItem(P){ if(P.ro){ if(Nav4)P.document.images[P.rid].src=P.ri1; else{ var Lc=P.Level==1?FrstLoc:ScLoc; Lc.document.images[P.rid].src=P.ri1}} else{ if(Nav4){ if(P.LoBck)P.bgColor=P.LoBck; if(P.value.indexOf('<img')==-1){ P.document.write(P.value); P.document.close()}} else{ if(P.LoBck)P.style.backgroundColor=P.LoBck; if(P.LwFntClr)P.style.color=P.LwFntClr}}} function OpenMenu(){ if(!Loadd||!Creatd) return; var TpScrlld=ExpYes?ScLoc.document.body.scrollTop:ScLoc.pageYOffset; var LScrlld=ExpYes?ScLoc.document.body.scrollLeft:ScLoc.pageXOffset; var CCnt=Nav4?this.LowLyr.ChildCntnr:this.ChildCntnr; var ThisHt=Nav4?this.clip.height:parseInt(this.style.height); var ThisWt=Nav4?this.clip.width:parseInt(this.style.width); var ThisLft=AcrssFrms&&this.Level==1&&!FirstLineHorizontal?0:Nav4?this.Container.left:parseInt(this.Container.style.left); var ThisTp=AcrssFrms&&this.Level==1&&FirstLineHorizontal?0:Nav4?this.Container.top:parseInt(this.Container.style.top); var HP=Nav4?this.LowLyr:this; CurrntOvr=this; IniFlg=0; ClearAllChilds(this.Container.FrstMbr); HiliteItem(HP); if(CCnt!=null){ if(!ShwFlg){ShwFlg=1; BeforeFirstOpen()} var CCW=Nav4?this.LowLyr.ChildCntnr.clip.width:parseInt(this.ChildCntnr.style.width); var CCH=Nav4?this.LowLyr.ChildCntnr.clip.height:parseInt(this.ChildCntnr.style.height); var ChCntTL=Nav4?this.LowLyr.ChildCntnr:this.ChildCntnr.style; var SubLt=AcrssFrms&&this.Level==1?CCnt.OrgLeft+ThisLft+LScrlld:CCnt.OrgLeft+ThisLft; var SubTp=AcrssFrms&&this.Level==1?CCnt.OrgTop+ThisTp+TpScrlld:CCnt.OrgTop+ThisTp; if(MenuWrap){ if(RightToLeft){ if(SubLt<LScrlld)SubLt=this.Level==1?LScrlld:SubLt+(CCW+(1-2*ChildOverlap)*ThisWt); if(SubLt+CCW>ScWinWdth+LScrlld)SubLt=ScWinWdth+LScrlld-CCW} else{ if(SubLt+CCW>ScWinWdth+LScrlld)SubLt=this.Level==1?ScWinWdth+LScrlld-CCW:SubLt-(CCW+(1-2*ChildOverlap)*ThisWt); if(SubLt<LScrlld)SubLt=LScrlld} if(SubTp+CCH>TpScrlld+ScWinHght)SubTp=this.Level==1?SubTp=TpScrlld+ScWinHght-CCH:SubTp-CCH+(1-2*ChildVerticalOverlap)*ThisHt; if(SubTp<TpScrlld)SubTp=TpScrlld} ChCntTL.top=SubTp;ChCntTL.left=SubLt;ChCntTL.visibility=M_Show} status=this.LinkTxt} function OpenMenuClick(){ if(!Loadd||!Creatd) return; var HP=Nav4?this.LowLyr:this; CurrntOvr=this; IniFlg=0; ClearAllChilds(this.Container.FrstMbr); HiliteItem(HP); status=this.LinkTxt} function CloseMenu(){ if(!Loadd||!Creatd) return; if(!KeepHilite){ var HP=Nav4?this.LowLyr:this; LowItem(HP)} status=''; if(this==CurrntOvr){ IniFlg=1; if(CloseTmr)clearTimeout(CloseTmr); CloseTmr=setTimeout('Initiate(CurrntOvr)',DissapearDelay)}} function CntnrSetUp(Wdth,Hght,NoOff){ var x=RcrsLvl==1?BorderColor:BorderSubColor; this.FrstMbr=null; this.OrgLeft=this.OrgTop=0; if(x)this.bgColor=x; if(Nav4){ this.visibility='hide'; this.resizeTo(Wdth,Hght)} else{ if(x)this.style.backgroundColor=x; this.style.width=Wdth; this.style.height=Hght; this.style.fontFamily=FontFamily; this.style.fontWeight=FontBold?'bold':'normal'; this.style.fontStyle=FontItalic?'italic':'normal'; this.style.fontSize=FontSize+'pt'; this.style.zIndex=RcrsLvl+Ztop}} function MbrSetUp(MmbrCntnr,PrMmbr,WhatMenu,Wdth,Hght){ var Location=RcrsLvl==1?FrstLoc:ScLoc; var MemVal=eval(WhatMenu+'[0]'); var t,T,L,W,H,S; var a,b,c,d; this.PrvMbr=PrMmbr; this.Level=RcrsLvl; this.LinkTxt=eval(WhatMenu+'[1]'); this.Container=MmbrCntnr; this.ChildCntnr=null; this.Hilite=0; this.style.overflow='hidden'; this.style.cursor=ExpYes&&(this.LinkTxt||(RcrsLvl==1&&UnfoldsOnClick))?'hand':'default'; this.ro=0; if(MemVal.indexOf('rollover')!=-1){ this.ro=1; this.ri1=MemVal.substring(MemVal.indexOf(':')+1,MemVal.lastIndexOf(':')); this.ri2=MemVal.substring(MemVal.lastIndexOf(':')+1,MemVal.length); this.rid=WhatMenu+'i';MemVal="<img src='"+this.ri1+"' name='"+this.rid+"'>"} this.value=MemVal; if(RcrsLvl==1){ a=LowBgColor; b=HighBgColor; c=FontLowColor; d=FontHighColor} else{ a=LowSubBgColor; b=HighSubBgColor; c=FontSubLowColor; d=FontSubHighColor} this.LoBck=a; this.LwFntClr=c; this.HiBck=b; this.HiFntClr=d; this.style.color=this.LwFntClr; if(this.LoBck)this.style.backgroundColor=this.LoBck; this.style.textAlign=MenuTextCentered; if(eval(WhatMenu+'[2]'))this.style.backgroundImage="url(\'"+eval(WhatMenu+'[2]')+"\')"; if(MemVal.indexOf('<')==-1){ this.style.width=Wdth-LftXtra; this.style.height=Hght-TpXtra; this.style.paddingLeft=LeftPaddng; this.style.paddingTop=TopPaddng} else{ this.style.width=Wdth; this.style.height=Hght} if(MemVal.indexOf('<')==-1&&DomYes){ t=Location.document.createTextNode(MemVal); this.appendChild(t)} else this.innerHTML=MemVal; if(eval(WhatMenu+'[3]')&&ShowArrow){ a=RcrsLvl==1&&FirstLineHorizontal?3:RightToLeft?6:0; S=Arrws[a]; W=Arrws[a+1]; H=Arrws[a+2]; T=RcrsLvl==1&&FirstLineHorizontal?Hght-H-2:(Hght-H)/2; L=RightToLeft?2:Wdth-W-2; if(DomYes){ t=Location.document.createElement('img'); this.appendChild(t); t.style.position='absolute'; t.src=S; t.style.width=W; t.style.height=H; t.style.top=T; t.style.left=L} else{ MemVal+="<div style='position:absolute; top:"+T+"; left:"+L+"; width:"+W+"; height:"+H+";visibility:inherit'><img src='"+S+"'></div>"; this.innerHTML=MemVal}} if(ExpYes){this.onselectstart=CnclSlct; this.onmouseover=RcrsLvl==1&&UnfoldsOnClick?OpenMenuClick:OpenMenu; this.onmouseout=CloseMenu; this.onclick=RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?OpenMenu:GoTo } else{ RcrsLvl==1&&UnfoldsOnClick?this.addEventListener('mouseover',OpenMenuClick,false):this.addEventListener('mouseover',OpenMenu,false); this.addEventListener('mouseout',CloseMenu,false); RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?this.addEventListener('click',OpenMenu,false):this.addEventListener('click',GoTo,false)}} function NavMbrSetUp(MmbrCntnr,PrMmbr,WhatMenu,Wdth,Hght){ var a,b,c,d; if(RcrsLvl==1){ a=LowBgColor; b=HighBgColor; c=FontLowColor; d=FontHighColor} else { a=LowSubBgColor; b=HighSubBgColor; c=FontSubLowColor; d=FontSubHighColor } this.value=eval(WhatMenu+'[0]'); this.ro=0; if(this.value.indexOf('rollover')!=-1){ this.ro=1; this.ri1=this.value.substring(this.value.indexOf(':')+1,this.value.lastIndexOf(':')); this.ri2=this.value.substring(this.value.lastIndexOf(':')+1,this.value.length); this.rid=WhatMenu+'i';this.value="<img src='"+this.ri1+"' name='"+this.rid+"'>"} if(LeftPaddng&&this.value.indexOf('<')==-1&&MenuTextCentered=='left')this.value=' \;'+this.value; if(FontBold)this.value=this.value.bold(); if(FontItalic)this.value=this.value.italics(); this.Ovalue=this.value; this.value=this.value.fontcolor(c); this.Ovalue=this.Ovalue.fontcolor(d); this.value=CntrTxt+"<font face='"+FontFamily+"' point-size='"+FontSize+"'>"+this.value+TxtClose; this.Ovalue=CntrTxt+"<font face='"+FontFamily+"' point-size='"+FontSize+"'>"+this.Ovalue+TxtClose; this.LoBck=a; this.HiBck=b; this.ChildCntnr=null; this.PrvMbr=PrMmbr; this.Hilite=0; this.visibility='inherit'; if(this.LoBck)this.bgColor=this.LoBck; this.resizeTo(Wdth,Hght); if(!AcrssFrms&&eval(WhatMenu+'[2]'))this.background.src=eval(WhatMenu+'[2]'); this.document.write(this.value); this.document.close(); this.CmdLyr=new Layer(Wdth,MmbrCntnr); this.CmdLyr.Level=RcrsLvl; this.CmdLyr.LinkTxt=eval(WhatMenu+'[1]'); this.CmdLyr.visibility='inherit'; this.CmdLyr.onmouseover=RcrsLvl==1&&UnfoldsOnClick?OpenMenuClick:OpenMenu; this.CmdLyr.onmouseout=CloseMenu; this.CmdLyr.captureEvents(Event.MOUSEUP); this.CmdLyr.onmouseup=RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?OpenMenu:GoTo; this.CmdLyr.LowLyr=this; this.CmdLyr.resizeTo(Wdth,Hght); this.CmdLyr.Container=MmbrCntnr; if(eval(WhatMenu+'[3]')&&ShowArrow){ a=RcrsLvl==1&&FirstLineHorizontal?3:RightToLeft?6:0; this.CmdLyr.ImgLyr=new Layer(Arrws[a+1],this.CmdLyr); this.CmdLyr.ImgLyr.visibility='inherit'; this.CmdLyr.ImgLyr.top=RcrsLvl==1&&FirstLineHorizontal?Hght-Arrws[a+2]-2:(Hght-Arrws[a+2])/2; this.CmdLyr.ImgLyr.left=RightToLeft?2:Wdth-Arrws[a+1]-2; this.CmdLyr.ImgLyr.width=Arrws[a+1]; this.CmdLyr.ImgLyr.height=Arrws[a+2]; ImgStr="<img src='"+Arrws[a]+"' width='"+Arrws[a+1]+"' height='"+Arrws[a+2]+"'>"; this.CmdLyr.ImgLyr.document.write(ImgStr); this.CmdLyr.ImgLyr.document.close()}} function CreateMenuStructure(MName,NumberOf){ RcrsLvl++; var i,NoOffSubs,Mbr,Wdth=0,Hght=0; var PrvMmbr=null; var WMnu=MName+'1'; var MenuWidth=eval(WMnu+'[5]'); var MenuHeight=eval(WMnu+'[4]'); var Location=RcrsLvl==1?FrstLoc:ScLoc; if (RcrsLvl==1&&FirstLineHorizontal){ for(i=1;i<NumberOf+1;i++){ WMnu=MName+eval(i); Wdth=eval(WMnu+'[5]')?Wdth+eval(WMnu+'[5]'):Wdth+MenuWidth} Wdth=BorderBtwnElmnts?Wdth+(NumberOf+1)*BorderWidth:Wdth+2*BorderWidth;Hght=MenuHeight+2*BorderWidth} else{ for(i=1;i<NumberOf+1;i++){ WMnu=MName+eval(i); Hght=eval(WMnu+'[4]')?Hght+eval(WMnu+'[4]'):Hght+MenuHeight} Hght=BorderBtwnElmnts?Hght+(NumberOf+1)*BorderWidth:Hght+2*BorderWidth;Wdth=MenuWidth+2*BorderWidth} if(DomYes){ var MmbrCntnr=Location.document.createElement("div"); MmbrCntnr.style.position='absolute'; MmbrCntnr.style.visibility='hidden'; Location.document.body.appendChild(MmbrCntnr)} else{ if(Nav4) var MmbrCntnr=new Layer(Wdth,Location) else{ WMnu+='c'; Location.document.body.insertAdjacentHTML("AfterBegin","<div id='"+WMnu+"' style='visibility:hidden; position:absolute;'><\/div>"); var MmbrCntnr=Location.document.all[WMnu]}} MmbrCntnr.SetUp=CntnrSetUp; MmbrCntnr.SetUp(Wdth,Hght,NumberOf); if(Exp4){ MmbrCntnr.InnerString=''; for(i=1;i<NumberOf+1;i++){ WMnu=MName+eval(i); MmbrCntnr.InnerString+="<div id='"+WMnu+"' style='position:absolute;'><\/div>"} MmbrCntnr.innerHTML=MmbrCntnr.InnerString} for(i=1;i<NumberOf+1;i++){ WMnu=MName+eval(i); NoOffSubs=eval(WMnu+'[3]'); Wdth=RcrsLvl==1&&FirstLineHorizontal?eval(WMnu+'[5]')?eval(WMnu+'[5]'):MenuWidth:MenuWidth; Hght=RcrsLvl==1&&FirstLineHorizontal?MenuHeight:eval(WMnu+'[4]')?eval(WMnu+'[4]'):MenuHeight; if(DomYes){ Mbr=Location.document.createElement("div"); Mbr.style.position='absolute'; Mbr.style.visibility='inherit'; MmbrCntnr.appendChild(Mbr)} else Mbr=Nav4?new Layer(Wdth,MmbrCntnr):Location.document.all[WMnu]; Mbr.SetUp=Nav4?NavMbrSetUp:MbrSetUp; Mbr.SetUp(MmbrCntnr,PrvMmbr,WMnu,Wdth,Hght); if(NoOffSubs) Mbr.ChildCntnr=CreateMenuStructure(WMnu+'_',NoOffSubs); PrvMmbr=Mbr} MmbrCntnr.FrstMbr=Mbr; RcrsLvl--; return(MmbrCntnr)} function CreateMenuStructureAgain(MName,NumberOf){ var i,WMnu,NoOffSubs,PrvMmbr,Mbr=FrstCntnr.FrstMbr; RcrsLvl++; for(i=NumberOf;i>0;i--){ WMnu=MName+eval(i); NoOffSubs=eval(WMnu+'[3]'); PrvMmbr=Mbr; if(NoOffSubs)Mbr.ChildCntnr=CreateMenuStructure(WMnu+'_',NoOffSubs); Mbr=Mbr.PrvMbr} RcrsLvl--} </script> </td> </tr> <!-- categories_eof //--> Thanks for your help Quote The hardest thing in life is watching someone you love, love someone else. Link to comment Share on other sites More sharing options...
Guest Posted February 12, 2004 Share Posted February 12, 2004 Ray: To get STS to capture a block to redisplay on the template you assign the variable $sts_block_name to a name, and then turn on the capture buffer using calls to STS_START_CAPTURE. Once the output you want in the block has executed, use STS_STOP_CAPTURE to stop the buffering, or STS_RESTART_CAPTURE to stop buffering and restart a new capture block. As long as $sts_block_name is set before you stop or restart the capture buffer, things are ok. So the code basically looks like this (taken from sts_user_code.php): $sts_block_name = 'newcontent'; require(STS_START_CAPTURE); // stuff you want to display goes here require(STS_STOP_CAPTURE); $template['newcontent'] = strip_unwanted_tags($sts_block['newcontent'], 'newcontent'); Mibble: Inside sts_display_output.php is code to call the Header Tag Controller code if it's detected. Because the header tags are called and captured in sts_display_output you don't have to do all the modifications to all of the files to add the header tag support. However, because it's called in sts_display_output, if you add the header tag code to application_top per the instructions in HTC you get the redeclaration error caused by clean_html_comments (part of HTC) getting called twice. The solution is to only add the call to clean_html_comments in application_top and just delete out the call to clean_html_comments from inside sts_display_output.php. See the post I made a few pages back about it for more detail, where I posted changes to be made regarding making STS, HTC and Article Manager to make nice. -C Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.