00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00022 class CXXE 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 $adminTabs = $page->getSlot('AdminTabs');
00146
00147 $topLinks = $page->getSlot('TopBarLinks');
00148 if ($topLinks == '') {
00149 $topLinks = "<a href='$homeURL/../sitemap/' >SITE MAP</a> |
00150 <a href='$homeURL/../about/contact/' >CONTACT US</a>";
00151 }
00152 if(!empty($adminTabs))
00153 $adminNav = '<div id="adminNavigation">
00154 ' . $adminTabs . '
00155 </div>
00156 ';
00157 else
00158 $adminNav = '';
00159 $topBarExtra = $page->getSlot('TopBarExtra');
00160 $html =<<<END_HTML
00161
00162 <!--************************************
00163 TopBar
00164 ************************************-->
00165 <div id="topBar">
00166 <div id="bgStretcher"> </div>
00167 <div id="topBarHolder">
00168 <h1 class="PR2-Slot-TopBarAltText">Shodor</h1>
00169 <h3 class="PR2-Slot-TopBarAltText">a national resource for computational science education</h3>
00170 <a href="$homeURL" style="display:none">HOME</a>
00171 <a href="$homeURL" id="logoBar"> </a>
00172 $topBarExtra
00173 <div class="topBarLinks">
00174 $topLinks
00175 </div>
00176 <div id="searchCell">
00177 <form action="$homeURL/search/" method="post"><p style="display:inline;"><input id="searchWords"
00178 name="words" value="" type="text" maxlength="255"/>
00179 <input type="hidden" name="page" value="1" /></p>
00180 </form>
00181 </div>
00182 </div>
00183 <div id="navigationBar">
00184 <div id="mainNavigation">
00185 $tabs
00186 </div>
00187 $adminNav
00188 </div></div>
00189 END_HTML;
00190 $page->setMetaSlot('TopBar', $html);
00191 }
00192
00193
00194
00195
00206 public function layoutPageTitle ($page, $ms, $dl)
00207 {
00208 if ($page->getSlot('PageTitleRightText') != "") {
00209 $rightSide = '<div class="PR2-Slot-PageTitleRightText">' . $page->getSlot('PageTitleRightText')
00210 . '</div>';
00211 } else {
00212 $rightSide = "";
00213 }
00214
00215 $ptitle = $page->getSlot('PageName');
00216
00217 $msd = $this->getMetaSlotDivider();
00218
00219 $html =<<<END_HTML
00220
00221 <!--************************************
00222 PageTitle
00223 ************************************-->
00224 <div id="PR2-MetaSlot-PageTitle">
00225 $rightSide
00226 $ptitle
00227 </div>
00228 END_HTML;
00229 $page->setMetaSlot('PageTitle', $html);
00230 }
00231
00232
00233
00234
00245 public function layoutPathBar ($page, $ms, $l)
00246 {
00247 $ptitle = $page->getSlot('PageName');
00248 $path = $page->getSlot('Path');
00249 $msd = $this->getMetaSlotDivider();
00250
00251 $fullPath = ($path != '') ? ($path . ' > ' . $ptitle) : '';
00252
00253
00254 $html =<<<END_HTML
00255
00256 <!--************************************
00257 PathBar
00258 ************************************-->
00259 <div id="PR2-MetaSlot-PathBar">
00260 $fullPath
00261 </div>
00262
00263 END_HTML;
00264 return($html);
00265 }
00266
00267
00268
00269
00270
00281 public function layoutUpperFeatureWell($page, $ms, $l)
00282 {
00283 $this->layoutWell('UpperFeatureWell', $page, $ms, $l);
00284 }
00285
00296 public function layoutLowerFeatureWell($page, $ms, $l)
00297 {
00298 $this->layoutWell('LowerFeatureWell', $page, $ms, $l);
00299 }
00300
00311 public function layoutContentWell ($page, $ms, $l)
00312 {
00313
00314 $main = $page->getSlot('Main');
00315 if ($this->parent->getOption('HidePageName')) {
00316 $pageName = '';
00317 } else {
00318 $pageName = $page->getSlot('PageName');
00319 }
00320 $tabsLevel1 = $page->getSlot('TabsBar1');
00321 $tabsLevel2 = $page->getSlot('TabsBar2');
00322
00323 $msd = $this->getMetaSlotDivider();
00324 $pathBar = '';
00325 if ($this->parent->getPageTemplate()->getDisplayForMetaSlot('PathBar'))
00326 $pathBar = $this->layoutPathBar($page, $ms, $l);
00327 $subTitle = $page->getSlot('SubTitle');
00328 $html =<<<END
00329
00330 <div class="ContentWrapperWrapperWrapper">
00331 <div class="ContentWrapperWrapper">
00332 <div class="ContentWrapper"><div class="ContentWrapperText"><div class="title">$pageName</div>
00333 <div class="subtitle">$subTitle</div>
00334 <div class="breadcrumbs">$pathBar</div>
00335 <div>
00336 $main
00337 </div>
00338
00339 <div class="ContentEndClearance"> </div></div></div></div></div>
00340 END;
00341 $page->setMetaSlot('ContentWell', $html);
00342 }
00343
00344
00355 public function layoutContent ($page, $ms, $l)
00356 {
00357 $msd = $this->getMetaSlotDivider();
00358
00359 $html =<<<END
00360 This is the content zone
00361
00362 $msd
00363 END;
00364 $page->setMetaSlot('Content', $html);
00365 }
00366
00367
00368
00369
00370
00371
00383 public function layoutWell ($wellname, $page, $ms, $l)
00384 {
00385
00386 $html =<<<END_HTML
00387
00388 <!--************************************
00389 $wellname
00390 ************************************-->
00391 <tbody id="$wellname">
00392 <tr>
00393 END_HTML;
00394
00395 $col2 = $col3 = $leftSideBar = $rightSideBar = "";
00396 $wrapperId = $wellname . "Wrapper";
00397
00398
00399 $wnc1 = $wellname . "Column1";
00400 $mainContent = ($wellname == "ContentWell") ? $page->getSlot('Main') : $page->getSlot("$wellname");
00401 $col1 = $this->packageColumn($mainContent, $wellname, '1');
00402 $wellTdName = $wellname . "Td";
00403
00404 $wellStart = <<<ENDSTART
00405 <td class="pageLeftBorder pageRightBorder" id="$wellTdName">
00406 <div align="center">
00407 <table class="WellWrapper" id="$wrapperId" border="0" cellspacing="0" cellpadding="0">
00408 <tr>
00409 ENDSTART;
00410 $wellEnd = <<<ENDEND
00411 </tr>
00412 </table>
00413 </div>
00414 </td>
00415 ENDEND;
00416
00417 $wellEnd .=<<<END_HTML
00418 </tr>
00419 <tr class="metaSlotDivider">
00420 <td><hr /></td>
00421 </tr>
00422 END_HTML;
00423
00424 $wellEnd .= "</tbody>";
00425
00426
00427
00428 switch($l){
00429 case 'Start':
00430 $page->setMetaSlot("$wellname", $html . $wellStart);
00431 return;
00432 case 'End':
00433 $page->setMetaSlot("$wellname", $wellEnd);
00434 return;
00435 case 'LeftSideBarOnly':
00436 $leftSideBar = $this->packageSideBar($page->getSlot($wellname . 'SideBar'), 'Left');
00437 $rightSideBar = "";
00438 break;
00439 case 'RightSideBarOnly':
00440 $leftSideBar = "";
00441 $rightSideBar = $this->packageSideBar($page->getSlot($wellname . 'SideBar'), 'Right');
00442 break;
00443 case 'BothSideBars':
00444 $leftSideBar = $this->packageSideBar($page->getSlot($wellname . 'SideBar'), 'Left');
00445 $rightSideBar = $this->packageSideBar($page->getSlot($wellname .'SideBar2'), 'Right');
00446 break;
00447 case 'ThreeColumns':
00448 $col3 = $this->packageColumn($page->getSlot($wellname . "Column3"), $wellname, '3');
00449
00450 case 'TwoColumns':
00451 $col2 = $this->packageColumn($page->getSlot($wellname . "Column2"), $wellname, '2');
00452 break;
00453 case 'OneColumn':
00454 case 'NoSideBars':
00455 default:
00456 break;
00457 }
00458
00459
00460 $html .=<<<END_HTML
00461 $wellStart
00462 $leftSideBar
00463 $col1
00464 $col2
00465 $col3
00466 $rightSideBar
00467 $wellEnd
00468 END_HTML;
00469
00470
00471 $page->setMetaSlot("$wellname", $html);
00472 }
00473
00484 protected function packageColumn ($content, $wellname, $number)
00485 {
00486 $id = $wellname . "Column" . $number;
00487
00488 return <<<END_RETURN
00489
00490 <td id="$id" valign="top">
00491 <div class="$wellname tdFillDiv">
00492 <div class="contentDiv">
00493 $content
00494 </div>
00495 </div>
00496 </td>
00497
00498 END_RETURN;
00499 }
00500
00510 protected function packageSideBar ($sidebar, $side)
00511 {
00512 $class = $side . "SideBarTd";
00513 return <<<END_RETURN
00514
00515 <td class="$class" valign="top">
00516 <div class="SideBar tdFillDiv">
00517 $sidebar
00518 </div>
00519 </td>
00520 END_RETURN;
00521 }
00522
00523
00524
00525
00536 public function layoutBottomBar ($page, $ms, $l)
00537 {
00538
00539 }
00540
00551 public function layoutBottomTags ($page, $ms, $layout)
00552 {
00553 $width = $this->parent->getOption('minPageWidth');
00554 $analytics = $page->getSlot('Analytics');
00555
00556 $bottomLinks = <<<LINKS
00557 <a class="bottomBarBtn" href="http://www.shodor.org/about/privacy/" id="privacyBtn"></a>
00558 <a class="bottomBarBtn" href="http://www.shodor.org/about/donate/" id="donationBtn"></a>
00559 <a class="bottomBarBtn" href="http://www.nsdl.org" id="nsdlBtn"></a>
00560 LINKS
00561 ;
00562
00563 if ($page->getSlot('BottomBarLinks') != '')
00564 $bottomLinks = $page->getSlot('BottomBarLinks');
00565
00566 $page->setMetaSlot('BottomTags', <<<END_TAGS
00567
00568 </div>
00569 </div>
00570 <div id="bottomBar">
00571 <div id="footer">
00572 <div id="btmTxtStrip"></div>
00573 $bottomLinks
00574 </div>
00575 </div>
00576 $analytics
00577 </body>
00578 </html>
00579 END_TAGS
00580 );
00581 }
00582
00593 public function layoutStartBodyTags($page, $ms, $layout)
00594 {
00595 global $PATH;
00596 $LPATH['ncsi'] = isset($PATH['ncsi']) ? $PATH['ncsi'] : 'http://shodor.org/ncsi';
00597 $LPATH['cserd'] = isset($PATH['cserd']) ? $PATH['cserd'] : 'http://shodor.org/refdesk';
00598 $LPATH['cbbe'] = isset($PATH['cbbe']) ? $PATH['cbbe'] : 'http://shodor.org/ncsi/cbbe';
00599 $LPATH['ccce'] = isset($PATH['ccce']) ? $PATH['ccce'] : 'http://shodor.org/ncsi/ccce';
00600 $LPATH['cppe'] = isset($PATH['cppe']) ? $PATH['cppe'] : 'http://shodor.org/ncsi/ccce';
00601 $barHTML = <<<END_CONTENT
00602 <div class="PR2-MetaSlot-UniversalBar">
00603 <div class="PR2-UniversalBarLinks">
00604 <a href="$LPATH[ncsi]"><div class="PR2-UniversalBarLink1"> </div> </a>
00605 <a href="$LPATH[cserd]"><div class="PR2-UniversalBarLink2"> </div></a>
00606 <a href="$LPATH[cppe]"><div class="PR2-UniversalBarLink3"> </div></a>
00607 <a href="$LPATH[ccce]"><div class="PR2-UniversalBarLink4"> </div></a>
00608 <a href="$LPATH[cbbe]"><div class="PR2-UniversalBarLink5"> </div></a>
00609 </div>
00610 </div>
00611 END_CONTENT;
00612 $onload = $page->getSlot('OnLoad');
00613 $bodyId = $page->getSlot('BodyId');
00614 if ($bodyId != ""){ $bodyId = "id=\"$bodyId\""; }
00615 if ($onload != ""){ $onload = "javascript:" . $onload; }
00616 $showUniversalBar = SConfig::getOption('pr2.showUniversalBar');
00617 $universalBar = ($showUniversalBar) ? $barHTML : '';
00618
00619 $isMainPage = SConfig::getOption('pr2.mainPage');
00620 $extraClass = ($isMainPage?' PR2-MainPage':'');
00621
00622 $page->setMetaSlot('StartBodyTags', <<<END_TAGS
00623
00624 <body $bodyId class="PR2-Body{$extraClass}" onload="$onload">
00625 $universalBar
00626 <div class="PR2-PageMargins">
00627 <div class="PR2-Page">
00628
00629 END_TAGS
00630 );
00631
00632 }
00633
00634 }
00635
00636
00637 ?>