00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00022 class HPCULayout extends SLayout2
00023 {
00024
00035 public function msBuild ($page, $ms, $layout)
00036 {
00037
00038 switch($ms)
00039 {
00040 case 'TopBar':
00041 return $this->layoutTopBar($page, $ms, $layout);
00042 case 'PathBar':
00043 return;# $this->layoutPathBar($page, $ms, $layout);
00044 case 'PageTitle':
00045 return $this->layoutPageTitle($page, $ms, $layout);
00046 case 'Content':
00047 return $this->layoutContent($page, $ms, $layout);
00048 case 'ContentWell':
00049 return $this->layoutContentWell($page, $ms, $layout);
00050 case 'BottomBar':
00051 return $this->layoutBottomBar($page, $ms, $layout);
00052 case 'TabsBar1':
00053 return $this->layoutTabsBar1($page, $ms, $layout);
00054 case 'TabsBar2':
00055 return $this->layoutTabsBar2($page, $ms, $layout);
00056 case 'UpperFeatureWell':
00057 return $this->layoutUpperFeatureWell($page, $ms, $layout);
00058 case 'LowerFeatureWell':
00059 return $this->layoutLowerFeatureWell($page, $ms, $layout);
00060 case 'FlashWell':
00061 return $this->layoutFlashWell($page, $ms, $layout);
00062 default:
00063 return parent::msBuild($page, $ms, $layout);
00064 }
00065 }
00066
00067 function layoutHead($page, $ms, $dl)
00068 {
00069 $page->setSlot('WindowTitle', $page->getSlot('CollName') . ": " . $page->getSlot('PageName'));
00070 parent::layoutHead($page, $ms, $dl);
00071 }
00072
00080 function getMetaSlotDivider () {
00081 return <<<END
00082 <div class="PR2-MetaSlotDivider">
00083 <hr />
00084 </div>
00085
00086 END;
00087 }
00088
00089
00090
00091
00092
00093
00104 public function layoutFlashWell ($page, $ms, $dl)
00105 {
00106 $flash = $page->getSlot('Flash');
00107 if ($flash == "") return;
00108 $msd = $this->getMetaSlotDivider();
00109 $html =<<<END_HTML
00110 <!--************************************
00111 Flash
00112 ************************************-->
00113 <div class="PR2-MetaSlot-FlashWell">
00114 $flash
00115 </div>
00116 $msd
00117 END_HTML;
00118 $page->setMetaSlot('FlashWell', $html);
00119 }
00120
00121
00122
00123
00124
00125 function layoutTopBar($page, $ms, $dl)
00126 {
00127 $ctitle = $page->getSlot('CollName');
00128 $nw1 = $nw2 = $nw3 = " ";
00129 switch($dl){
00130 case 'ThreeNavWells':$nw1 = $page->getSlot('TopBarNavWell1');
00131 case 'TwoNavWells':$nw2 = $page->getSlot('TopBarNavWell2');
00132 case 'OneNavWell': $nw3 = $page->getSlot('TopBarNavWell3');
00133 default: break;
00134 }
00135 if ($nw2 == ""){ $nw2 = $nw1; $nw1 = " "; }
00136 if ($nw3 == ""){ $nw3 = $nw2; $nw2 = " "; }
00137
00138 $homeURL = SPath::getFullPath('Project');
00139
00140 $ss = ($page->getSlot('SearchScript')) ? $page->getSlot('SearchScript') : "Search";
00141
00142 $msd = $this->getMetaSlotDivider();
00143
00144 $html =<<<END_HTML
00145
00146 <!--************************************
00147 TopBar
00148 ************************************-->
00149 <div class="PR2-MetaSlot-TopBar">
00150 <form id="TopBarSearch" style="display:inline" method="get" action="$ss" target="_top" name="search">
00151 <h1 class="PR2-Slot-TopBarAltText">$ctitle</h1>
00152 <!--<a href="$homeURL">Home</a>-->
00153 <div id="PR2-TopBarNavWells">
00154 $nw1
00155 $nw2
00156 $nw3
00157 </div>
00158 </form>
00159 </div>
00160 $msd
00161 END_HTML;
00162 $page->setMetaSlot('TopBar', $html);
00163 }
00164
00165
00166
00167
00178 public function layoutPageTitle ($page, $ms, $dl)
00179 {
00180 if ($page->getSlot('PageTitleRightText') != "") {
00181 $rightSide = '<div class="PR2-Slot-PageTitleRightText">' . $page->getSlot('PageTitleRightText')
00182 . '</div>';
00183 } else {
00184 $rightSide = "";
00185 }
00186
00187 $ptitle = $page->getSlot('PageName');
00188
00189 $msd = $this->getMetaSlotDivider();
00190
00191 $html =<<<END_HTML
00192
00193 <!--************************************
00194 PageTitle
00195 ************************************-->
00196 <div id="PR2-MetaSlot-PageTitle">
00197 $rightSide
00198 $ptitle
00199 </div>
00200 $msd
00201 END_HTML;
00202 $page->setMetaSlot('PageTitle', $html);
00203 }
00204
00205
00206
00207
00218 public function layoutPathBar ($page, $ms, $l)
00219 {
00220 $ptitle = $page->getSlot('PageName');
00221 $path = $page->getSlot('Path');
00222 $msd = $this->getMetaSlotDivider();
00223
00224 $fullPath = ($path != '') ? ($path . ' > ' . $ptitle) : '';
00225
00226
00227 $html =<<<END_HTML
00228
00229 <!--************************************
00230 PathBar
00231 ************************************-->
00232 <div id="PR2-MetaSlot-PathBar">
00233 $fullPath
00234 </div>
00235 $msd
00236 END_HTML;
00237 return($html);
00238 }
00239
00240
00241
00242
00243
00254 public function layoutUpperFeatureWell($page, $ms, $l)
00255 {
00256 $this->layoutWell('UpperFeatureWell', $page, $ms, $l);
00257 }
00258
00269 public function layoutLowerFeatureWell($page, $ms, $l)
00270 {
00271 $this->layoutWell('LowerFeatureWell', $page, $ms, $l);
00272 }
00273
00284 public function layoutContentWell ($page, $ms, $l)
00285 {
00286
00287 $sideBar = $page->getSlot('SideBar');
00288 $main = $page->getSlot('Main');
00289 $bottomBar = $page->getSlot('BottomBar');
00290 $bbrt = $page->getSlot('BottomBarRightText');
00291 if ($this->parent->getOption('HidePageName')) {
00292 $pageName = '';
00293 } else {
00294 $pageName = $page->getSlot('PageName');
00295 }
00296 $tabsLevel1 = $page->getSlot('TabsBar1');
00297 $tabsLevel2 = $page->getSlot('TabsBar2');
00298
00299 $msd = $this->getMetaSlotDivider();
00300 $pathBar = '';
00301 if ($this->parent->getPageTemplate()->getDisplayForMetaSlot('PathBar'))
00302 $pathBar = $this->layoutPathBar($page, $ms, $l);
00303 $html =<<<END
00304
00305 <!--************************************
00306 Content
00307 ************************************-->
00308
00309 <div class="PR2-MetaSlot-Content">
00310 <div class="PR2-Slot-SideBar">
00311 $sideBar
00312 </div>
00313 <div class="PR2-ContentMargin">
00314 <div class="PR2-ContentMargin-Top"></div>
00315 <div class="PR2-ContentBox">
00316 <div class="PR2-ContentZoneMargin-Top"></div>
00317 <div class="PR2-Slot-TabsBar1">$tabsLevel1</div>
00318 <div class="PR2-Slot-TabsBar2">$tabsLevel2</div>
00319 <div class="PR2-Slot-PageName">$pageName$pathBar</div>
00320 <div class="PR2-Slot-Main">
00321 $main
00322 </div>
00323 <div class="PR2-ContentZoneMargin-Bottom"></div>
00324 </div>
00325 <div class="PR2-Footer">
00326 <div class="PR2-Slot-BottomBarRightText">$bbrt</div>
00327 $bottomBar
00328 </div>
00329 <div class="PR2-ContentMargin-Bottom"></div>
00330 </div>
00331 </div>
00332
00333
00334 $msd
00335 END;
00336 $page->setMetaSlot('ContentWell', $html);
00337 }
00338
00339
00350 public function layoutContent ($page, $ms, $l)
00351 {
00352 $msd = $this->getMetaSlotDivider();
00353
00354 $html =<<<END
00355 This is the content zone
00356
00357 $msd
00358 END;
00359 $page->setMetaSlot('Content', $html);
00360 }
00361
00362
00363
00364
00365
00366
00378 public function layoutWell ($wellname, $page, $ms, $l)
00379 {
00380
00381 $html =<<<END_HTML
00382
00383 <!--************************************
00384 $wellname
00385 ************************************-->
00386 <tbody id="$wellname">
00387 <tr>
00388 END_HTML;
00389
00390 $col2 = $col3 = $leftSideBar = $rightSideBar = "";
00391 $wrapperId = $wellname . "Wrapper";
00392
00393
00394 $wnc1 = $wellname . "Column1";
00395 $mainContent = ($wellname == "ContentWell") ? $page->getSlot('Main') : $page->getSlot("$wellname");
00396 $col1 = $this->packageColumn($mainContent, $wellname, '1');
00397 $wellTdName = $wellname . "Td";
00398
00399 $wellStart = <<<ENDSTART
00400 <td class="pageLeftBorder pageRightBorder" id="$wellTdName">
00401 <div align="center">
00402 <table class="WellWrapper" id="$wrapperId" border="0" cellspacing="0" cellpadding="0">
00403 <tr>
00404 ENDSTART;
00405 $wellEnd = <<<ENDEND
00406 </tr>
00407 </table>
00408 </div>
00409 </td>
00410 ENDEND;
00411
00412 $wellEnd .=<<<END_HTML
00413 </tr>
00414 <tr class="metaSlotDivider">
00415 <td><hr /></td>
00416 </tr>
00417 END_HTML;
00418
00419 $wellEnd .= "</tbody>";
00420
00421
00422
00423 switch($l){
00424 case 'Start':
00425 $page->setMetaSlot("$wellname", $html . $wellStart);
00426 return;
00427 case 'End':
00428 $page->setMetaSlot("$wellname", $wellEnd);
00429 return;
00430 case 'LeftSideBarOnly':
00431 $leftSideBar = $this->packageSideBar($page->getSlot($wellname . 'SideBar'), 'Left');
00432 $rightSideBar = "";
00433 break;
00434 case 'RightSideBarOnly':
00435 $leftSideBar = "";
00436 $rightSideBar = $this->packageSideBar($page->getSlot($wellname . 'SideBar'), 'Right');
00437 break;
00438 case 'BothSideBars':
00439 $leftSideBar = $this->packageSideBar($page->getSlot($wellname . 'SideBar'), 'Left');
00440 $rightSideBar = $this->packageSideBar($page->getSlot($wellname .'SideBar2'), 'Right');
00441 break;
00442 case 'ThreeColumns':
00443 $col3 = $this->packageColumn($page->getSlot($wellname . "Column3"), $wellname, '3');
00444
00445 case 'TwoColumns':
00446 $col2 = $this->packageColumn($page->getSlot($wellname . "Column2"), $wellname, '2');
00447 break;
00448 case 'OneColumn':
00449 case 'NoSideBars':
00450 default:
00451 break;
00452 }
00453
00454
00455 $html .=<<<END_HTML
00456 $wellStart
00457 $leftSideBar
00458 $col1
00459 $col2
00460 $col3
00461 $rightSideBar
00462 $wellEnd
00463 END_HTML;
00464
00465
00466 $page->setMetaSlot("$wellname", $html);
00467 }
00468
00479 protected function packageColumn ($content, $wellname, $number)
00480 {
00481 $id = $wellname . "Column" . $number;
00482
00483 return <<<END_RETURN
00484
00485 <td id="$id" valign="top">
00486 <div class="$wellname tdFillDiv">
00487 <div class="contentDiv">
00488 $content
00489 </div>
00490 </div>
00491 </td>
00492
00493 END_RETURN;
00494 }
00495
00505 protected function packageSideBar ($sidebar, $side)
00506 {
00507 $class = $side . "SideBarTd";
00508 return <<<END_RETURN
00509
00510 <td class="$class" valign="top">
00511 <div class="SideBar tdFillDiv">
00512 $sidebar
00513 </div>
00514 </td>
00515 END_RETURN;
00516 }
00517
00518
00519
00520
00531 public function layoutBottomBar ($page, $ms, $l)
00532 {
00533 $leftText = $page->getSlot('BottomBarLeftText');
00534 $rightText = $page->getSlot('BottomBarRightText');
00535 $bbrt = ($rightText == "") ? "" :
00536 "<div style=\"float:right\" id=\"BottomBarRightText\">$rightText</div>";
00537 $html =<<<END_HTML
00538
00539 <!--************************************
00540 BottomBar
00541 ************************************-->
00542 <tbody id="BottomBar"><tr>
00543 <td class="pageLeftBorder pageRightBorder contentTd">
00544 $bbrt
00545 <div id="BottomBarLeftText">©1994-2007 Shodor $leftText</div>
00546 </td></tr></tbody>
00547
00548 END_HTML;
00549 $page->setMetaSlot('BottomBar', $html);
00550 }
00551
00552
00553
00554
00565 public function layoutTabsBar1 ($page, $ms, $l)
00566 {
00567 $tabs = $page->getSlot('TabsBar1');
00568 if ($tabs == "" | $tabs == "<ul></ul>") return "";
00569 $html =<<<END_HTML
00570
00571 <!--************************************
00572 TabsBar Level 1
00573 ************************************-->
00574
00575 <tbody id="TabsBar1">
00576 <tr>
00577 <td class="pageLeftBorder pageRightBorder" id="TabsBar1Td">
00578 $tabs
00579 </td>
00580 </tr>
00581 <tr class="metaSlotDivider">
00582 <td><hr /></td>
00583 </tr>
00584 </tbody>
00585 END_HTML;
00586 $page->setMetaSlot('TabsBar1', $html);
00587 }
00588
00589
00590
00591
00602 public function layoutTabsBar2 ($page, $ms, $l)
00603 {
00604 $tabs = $page->getSlot('TabsBar2');
00605 if ($tabs == "" || $tabs == "<ul></ul>") return "";
00606 $html =<<<END_HTML
00607
00608 <!--************************************
00609 TabsBar Level 2
00610 ************************************-->
00611
00612 <tbody id="TabsBar2">
00613 <tr>
00614 <td class="pageLeftBorder pageRightBorder" id="TabsBar2Td">
00615 $tabs
00616 </td>
00617 </tr>
00618 <tr class="metaSlotDivider">
00619 <td><hr /></td>
00620 </tr>
00621 </tbody>
00622 END_HTML;
00623 $page->setMetaSlot('TabsBar2', $html);
00624 }
00625 }
00626
00627
00628 ?>