00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00022 class computingMattersLayout 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 $page->setMetaSlot('PathBar', $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 $pageName = $page->getSlot('PageName');
00292 $tabsLevel1 = $page->getSlot('TabsBar1');
00293 $tabsLevel2 = $page->getSlot('TabsBar2');
00294
00295 $msd = $this->getMetaSlotDivider();
00296
00297 $html =<<<END
00298
00299 <!--************************************
00300 Content
00301 ************************************-->
00302
00303 <div class="PR2-MetaSlot-Content">
00304 <div class="PR2-Slot-SideBar">
00305 $sideBar
00306 </div>
00307 <div class="PR2-ContentMargin">
00308 <div class="PR2-ContentMargin-Top"></div>
00309 <div class="PR2-ContentBox">
00310 <div class="PR2-ContentZoneMargin-Top"></div>
00311 <div class="PR2-Slot-TabsBar1">$tabsLevel1</div>
00312 <div class="PR2-Slot-TabsBar2">$tabsLevel2</div>
00313 <div class="PR2-Slot-PageName">$pageName</div>
00314 <div class="PR2-Slot-Main">
00315 $main
00316 </div>
00317 <div class="PR2-ContentZoneMargin-Bottom"></div>
00318 </div>
00319 <div class="PR2-Footer">
00320 <div class="PR2-Slot-BottomBarRightText">$bbrt</div>
00321 <div class="PR2-ContentMargin-Bottom"></div>
00322 </div>
00323 </div>
00324 </div>
00325
00326
00327 $msd
00328 END;
00329
00330 $page->setMetaSlot('ContentWell', $html);
00331 }
00332
00333
00344 public function layoutContent ($page, $ms, $l)
00345 {
00346 $msd = $this->getMetaSlotDivider();
00347
00348 $html =<<<END
00349 This is the content zone
00350
00351 $msd
00352 END;
00353 $page->setMetaSlot('Content', $html);
00354 }
00355
00356
00357
00358
00359
00360
00372 public function layoutWell ($wellname, $page, $ms, $l)
00373 {
00374
00375 $html =<<<END_HTML
00376
00377 <!--************************************
00378 $wellname
00379 ************************************-->
00380 <tbody id="$wellname">
00381 <tr>
00382 END_HTML;
00383
00384 $col2 = $col3 = $leftSideBar = $rightSideBar = "";
00385 $wrapperId = $wellname . "Wrapper";
00386
00387
00388 $wnc1 = $wellname . "Column1";
00389 $mainContent = ($wellname == "ContentWell") ? $page->getSlot('Main') : $page->getSlot("$wellname");
00390 $col1 = $this->packageColumn($mainContent, $wellname, '1');
00391 $wellTdName = $wellname . "Td";
00392
00393 $wellStart = <<<ENDSTART
00394 <td class="pageLeftBorder pageRightBorder" id="$wellTdName">
00395 <div align="center">
00396 <table class="WellWrapper" id="$wrapperId" border="0" cellspacing="0" cellpadding="0">
00397 <tr>
00398 ENDSTART;
00399 $wellEnd = <<<ENDEND
00400 </tr>
00401 </table>
00402 </div>
00403 </td>
00404 ENDEND;
00405
00406 $wellEnd .=<<<END_HTML
00407 </tr>
00408 <tr class="metaSlotDivider">
00409 <td><hr /></td>
00410 </tr>
00411 END_HTML;
00412
00413 $wellEnd .= "</tbody>";
00414
00415
00416
00417 switch($l){
00418 case 'Start':
00419 $page->setMetaSlot("$wellname", $html . $wellStart);
00420 return;
00421 case 'End':
00422 $page->setMetaSlot("$wellname", $wellEnd);
00423 return;
00424 case 'LeftSideBarOnly':
00425 $leftSideBar = $this->packageSideBar($page->getSlot($wellname . 'SideBar'), 'Left');
00426 $rightSideBar = "";
00427 break;
00428 case 'RightSideBarOnly':
00429 $leftSideBar = "";
00430 $rightSideBar = $this->packageSideBar($page->getSlot($wellname . 'SideBar'), 'Right');
00431 break;
00432 case 'BothSideBars':
00433 $leftSideBar = $this->packageSideBar($page->getSlot($wellname . 'SideBar'), 'Left');
00434 $rightSideBar = $this->packageSideBar($page->getSlot($wellname .'SideBar2'), 'Right');
00435 break;
00436 case 'ThreeColumns':
00437 $col3 = $this->packageColumn($page->getSlot($wellname . "Column3"), $wellname, '3');
00438
00439 case 'TwoColumns':
00440 $col2 = $this->packageColumn($page->getSlot($wellname . "Column2"), $wellname, '2');
00441 break;
00442 case 'OneColumn':
00443 case 'NoSideBars':
00444 default:
00445 break;
00446 }
00447
00448
00449 $html .=<<<END_HTML
00450 $wellStart
00451 $leftSideBar
00452 $col1
00453 $col2
00454 $col3
00455 $rightSideBar
00456 $wellEnd
00457 END_HTML;
00458
00459
00460 $page->setMetaSlot("$wellname", $html);
00461 }
00462
00473 protected function packageColumn ($content, $wellname, $number)
00474 {
00475 $id = $wellname . "Column" . $number;
00476
00477 return <<<END_RETURN
00478
00479 <td id="$id" valign="top">
00480 <div class="$wellname tdFillDiv">
00481 <div class="contentDiv">
00482 $content
00483 </div>
00484 </div>
00485 </td>
00486
00487 END_RETURN;
00488 }
00489
00499 protected function packageSideBar ($sidebar, $side)
00500 {
00501 $class = $side . "SideBarTd";
00502 return <<<END_RETURN
00503
00504 <td class="$class" valign="top">
00505 <div class="SideBar tdFillDiv">
00506 $sidebar
00507 </div>
00508 </td>
00509 END_RETURN;
00510 }
00511
00512
00513
00514
00525 public function layoutBottomBar ($page, $ms, $l)
00526 {
00527 $leftText = $page->getSlot('BottomBarLeftText');
00528 $rightText = $page->getSlot('BottomBarRightText');
00529 $bbrt = ($rightText == "") ? "" :
00530 "<div style=\"float:right\" id=\"BottomBarRightText\">$rightText</div>";
00531 $html =<<<END_HTML
00532
00533 <!--************************************
00534 BottomBar
00535 ************************************-->
00536 <tbody id="BottomBar"><tr>
00537 <td class="pageLeftBorder pageRightBorder contentTd">
00538 $bbrt
00539 <div id="BottomBarLeftText">©1994-2007 Shodor $leftText</div>
00540 </td></tr></tbody>
00541
00542 END_HTML;
00543 $page->setMetaSlot('BottomBar', $html);
00544 }
00545
00546
00547
00548
00559 public function layoutTabsBar1 ($page, $ms, $l)
00560 {
00561 $tabs = $page->getSlot('TabsBar1');
00562 if ($tabs == "" | $tabs == "<ul></ul>") return "";
00563 $html =<<<END_HTML
00564
00565 <!--************************************
00566 TabsBar Level 1
00567 ************************************-->
00568
00569 <tbody id="TabsBar1">
00570 <tr>
00571 <td class="pageLeftBorder pageRightBorder" id="TabsBar1Td">
00572 $tabs
00573 </td>
00574 </tr>
00575 <tr class="metaSlotDivider">
00576 <td><hr /></td>
00577 </tr>
00578 </tbody>
00579 END_HTML;
00580 $page->setMetaSlot('TabsBar1', $html);
00581 }
00582
00583
00584
00585
00596 public function layoutTabsBar2 ($page, $ms, $l)
00597 {
00598 $tabs = $page->getSlot('TabsBar2');
00599 if ($tabs == "" || $tabs == "<ul></ul>") return "";
00600 $html =<<<END_HTML
00601
00602 <!--************************************
00603 TabsBar Level 2
00604 ************************************-->
00605
00606 <tbody id="TabsBar2">
00607 <tr>
00608 <td class="pageLeftBorder pageRightBorder" id="TabsBar2Td">
00609 $tabs
00610 </td>
00611 </tr>
00612 <tr class="metaSlotDivider">
00613 <td><hr /></td>
00614 </tr>
00615 </tbody>
00616 END_HTML;
00617 $page->setMetaSlot('TabsBar2', $html);
00618 }
00619 }
00620
00621
00622 ?>