00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00022 class Petascale 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 $tabs = $page->getSlot('TabsBar1');
00145 $topLinks = $page->getSlot('TopBarLinks');
00146 if ($topLinks == '') {
00147 $topLinks = "<a href='$homeURL/../sitemap/' >SITE MAP</a> |
00148 <a href='$homeURL/../about/contact/' >CONTACT US</a>";
00149 }
00150 $topBarExtra = $page->getSlot('TopBarExtra');
00151 $html =<<<END_HTML
00152
00153 <!--************************************
00154 TopBar
00155 ************************************-->
00156 <div id="topBar">
00157 <h1 class="PR2-Slot-TopBarAltText">Shodor</h1>
00158 <h3 class="PR2-Slot-TopBarAltText">a national resource for computational science education</h3>
00159 <a href="$homeURL" style="display:none">HOME</a>
00160 <a href="$homeURL" id="logoBar"> </a>
00161 $topBarExtra
00162 <div class="topBarLinks">
00163 $topLinks
00164 </div>
00165 <div id="searchCell">
00166 <form action="$homeURL/search/" method="post"><p style="display:inline;"><input id="searchWords"
00167 name="words" value="" type="text" maxlength="255"/>
00168 <input type="hidden" name="page" value="1" /></p>
00169 </form>
00170 </div>
00171 <div id="mainNavigation">
00172 $tabs
00173 </div>
00174 <div style="display:none">
00175 $nw3
00176 </div>
00177 </div>
00178 END_HTML;
00179
00180
00181 $page->setMetaSlot('TopBar', $html);
00182 }
00183
00184
00185
00186
00197 public function layoutPageTitle ($page, $ms, $dl)
00198 {
00199 if ($page->getSlot('PageTitleRightText') != "") {
00200 $rightSide = '<div class="PR2-Slot-PageTitleRightText">' . $page->getSlot('PageTitleRightText')
00201 . '</div>';
00202 } else {
00203 $rightSide = "";
00204 }
00205
00206 $ptitle = $page->getSlot('PageName');
00207
00208 $msd = $this->getMetaSlotDivider();
00209
00210 $html =<<<END_HTML
00211
00212 <!--************************************
00213 PageTitle
00214 ************************************-->
00215 <div id="PR2-MetaSlot-PageTitle">
00216 $rightSide
00217 $ptitle
00218 </div>
00219 END_HTML;
00220 $page->setMetaSlot('PageTitle', $html);
00221 }
00222
00223
00224
00225
00236 public function layoutPathBar ($page, $ms, $l)
00237 {
00238 $ptitle = $page->getSlot('PageName');
00239 $path = $page->getSlot('Path');
00240 $msd = $this->getMetaSlotDivider();
00241
00242 $fullPath = ($path != '') ? ($path . ' > ' . $ptitle) : '';
00243
00244
00245 $html =<<<END_HTML
00246
00247 <!--************************************
00248 PathBar
00249 ************************************-->
00250 <div id="PR2-MetaSlot-PathBar">
00251 $fullPath
00252 </div>
00253
00254 END_HTML;
00255 return($html);
00256 }
00257
00258
00259
00260
00261
00272 public function layoutUpperFeatureWell($page, $ms, $l)
00273 {
00274 $this->layoutWell('UpperFeatureWell', $page, $ms, $l);
00275 }
00276
00287 public function layoutLowerFeatureWell($page, $ms, $l)
00288 {
00289 $this->layoutWell('LowerFeatureWell', $page, $ms, $l);
00290 }
00291
00302 public function layoutContentWell ($page, $ms, $l)
00303 {
00304
00305 $main = $page->getSlot('Main');
00306 if ($this->parent->getOption('HidePageName')) {
00307 $pageName = '';
00308 } else {
00309 $pageName = $page->getSlot('PageName');
00310 }
00311 $tabsLevel1 = $page->getSlot('TabsBar1');
00312 $tabsLevel2 = $page->getSlot('TabsBar2');
00313
00314 $msd = $this->getMetaSlotDivider();
00315 $pathBar = '';
00316 if ($this->parent->getPageTemplate()->getDisplayForMetaSlot('PathBar'))
00317 $pathBar = $this->layoutPathBar($page, $ms, $l);
00318 $subTitle = $page->getSlot('SubTitle');
00319 $html =<<<END
00320
00321 <div class="ContentWrapper"><div class="ContentWrapperText"><div class="title">$pageName</div>
00322 <div class="subtitle">$subTitle</div>
00323 <div class="breadcrumbs">$pathBar</div>
00324 <div>
00325 $main
00326 </div>
00327
00328 <div class="ContentEndClearance"> </div></div></div>
00329 END;
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
00528 }
00529
00540 public function layoutBottomTags ($page, $ms, $layout)
00541 {
00542 $width = $this->parent->getOption('minPageWidth');
00543 $analytics = $page->getSlot('Analytics');
00544
00545 $bottomLinks = <<<LINKS
00546 <a class="bottomBarBtn" href="http://www.shodor.org/about/privacy/" id="privacyBtn"></a>
00547 <a class="bottomBarBtn" href="http://www.shodor.org/about/donate/" id="donationBtn"></a>
00548 <a class="bottomBarBtn" href="http://www.nsdl.org" id="nsdlBtn"></a>
00549 LINKS
00550 ;
00551
00552 if ($page->getSlot('BottomBarLinks') != '')
00553 $bottomLinks = $page->getSlot('BottomBarLinks');
00554
00555 $page->setMetaSlot('BottomTags', <<<END_TAGS
00556
00557 </div>
00558 </div>
00559 <div id="bottomBar">
00560 <div id="footer">
00561 <div id="btmTxtStrip"></div>
00562 $bottomLinks
00563 </div>
00564 </div>
00565 $analytics
00566 </body>
00567 </html>
00568 END_TAGS
00569 );
00570 }
00571
00582 public function layoutStartBodyTags($page, $ms, $layout)
00583 {
00584 $barHTML = <<<END_CONTENT
00585 <div class="PR2-MetaSlot-UniversalBar">
00586 <div class="PR2-UniversalBarLinks">
00587 <a class="PR2-UniversalBarLink" style="left: 245px;width: 75px;" href='/'></a>
00588 <a class="PR2-UniversalBarLink" style="left: 325px;width: 75px;" href='/about'></a>
00589 <a class="PR2-UniversalBarLink" style="left: 400px;width: 75px;" href='/students'></a>
00590 <a class="PR2-UniversalBarLink" style="left: 480px;width: 75px;" href='/parents'></a>
00591 <a class="PR2-UniversalBarLink" style="left: 558px;width: 75px;" href='/educators'></a>
00592 <a class="PR2-UniversalBarLink" style="left: 635px;width: 133px;" href='/activities'></a>
00593 </div>
00594 </div>
00595 END_CONTENT;
00596 $onload = $page->getSlot('OnLoad');
00597 $bodyId = $page->getSlot('BodyId');
00598 if ($bodyId != ""){ $bodyId = "id=\"$bodyId\""; }
00599 if ($onload != ""){ $onload = "javascript:" . $onload; }
00600 $showUniversalBar = SConfig::getOption('pr2.showUniversalBar');
00601 $universalBar = ($showUniversalBar) ? $barHTML : '';
00602
00603 $isMainPage = SConfig::getOption('pr2.mainPage');
00604 $extraClass = ($isMainPage?' PR2-MainPage':'');
00605
00606 $page->setMetaSlot('StartBodyTags', <<<END_TAGS
00607
00608 <body $bodyId class="PR2-Body{$extraClass}" onload="$onload">
00609 $universalBar
00610 <div class="PR2-PageMargins">
00611 <div class="PR2-Page">
00612
00613 END_TAGS
00614 );
00615
00616 }
00617
00618 }
00619
00620
00621 ?>