lots of changes, added footer and main view, implemented an initial wiki page
This commit is contained in:
parent
4b987ca7de
commit
6d01fe82c7
@ -24,17 +24,26 @@
|
|||||||
$file = '';
|
$file = '';
|
||||||
switch ($className) {
|
switch ($className) {
|
||||||
case 'PanaceaControllerFactory':
|
case 'PanaceaControllerFactory':
|
||||||
|
case 'PanaceaWikiController':
|
||||||
|
case 'WikiViewFactory':
|
||||||
case 'PanaceaDefaultController':
|
case 'PanaceaDefaultController':
|
||||||
case 'PanaceaViewFactory':
|
case 'PanaceaViewFactory':
|
||||||
$file = "$path/lib/$className.php";
|
$file = "$path/lib/$className.php";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'WikiPageView':
|
||||||
|
$file = "$path/lib/views/wiki/$className.php";
|
||||||
|
break;
|
||||||
|
|
||||||
case 'PanaceaView':
|
case 'PanaceaView':
|
||||||
case 'PanaceaHomeView':
|
case 'PanaceaHomeView':
|
||||||
|
case 'PanaceaMainView':
|
||||||
case 'PanaceaTemplateView':
|
case 'PanaceaTemplateView':
|
||||||
case 'PanaceaHeaderView':
|
case 'PanaceaHeaderView':
|
||||||
case 'PanaceaLogoView':
|
case 'PanaceaLogoView':
|
||||||
case 'PanaceaMenuView':
|
case 'PanaceaMenuView':
|
||||||
|
case 'PanaceaFooterView':
|
||||||
|
case 'PanaceaWelcomeView':
|
||||||
$file = "$path/lib/views/$className.php";
|
$file = "$path/lib/views/$className.php";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
$uriRegex = str_replace(str_replace('/', DIRECTORY_SEPARATOR, $_SERVER['DOCUMENT_ROOT']), '', dirname(__FILE__));
|
$uriRegex = str_replace(str_replace('/', DIRECTORY_SEPARATOR, $_SERVER['DOCUMENT_ROOT']), '', dirname(__FILE__));
|
||||||
$uriRegex = str_replace('\\', '/', $uriRegex);
|
$uriRegex = str_replace('\\', '/', $uriRegex);
|
||||||
$uriRegex = '^' . $uriRegex . '/([^/]*)(?:/(.+))?';
|
$uriRegex = '^' . $uriRegex . '/([^/]*)(?:/(.*))?';
|
||||||
|
|
||||||
Dispatcher::getInstance()->setUriRegex($uriRegex)
|
Dispatcher::getInstance()->setUriRegex($uriRegex)
|
||||||
->setThrowExceptions(true)
|
->setThrowExceptions(true)
|
||||||
|
@ -67,17 +67,24 @@
|
|||||||
|
|
||||||
if (isset($uriFragments[1])) {
|
if (isset($uriFragments[1])) {
|
||||||
$section = ucfirst($uriFragments[0]);
|
$section = ucfirst($uriFragments[0]);
|
||||||
$page = $uriFragments[1];
|
$page = ucfirst($uriFragments[1]);
|
||||||
}
|
}
|
||||||
if (empty($section)) {
|
if (empty($section)) {
|
||||||
$section = 'Default';
|
$section = 'Default';
|
||||||
}
|
}
|
||||||
if (empty($page)) {
|
|
||||||
$page = 'home';
|
|
||||||
}
|
|
||||||
|
|
||||||
$controllerName = 'Panacea' . $section . 'Controller';
|
$controllerName = 'Panacea' . $section . 'Controller';
|
||||||
|
|
||||||
|
if (empty($page)) {
|
||||||
|
try {
|
||||||
|
$refclass = new ReflectionClass($controllerName);
|
||||||
|
$page = $refclass->getMethod('getDefaultPageName')->invoke(null);
|
||||||
|
}
|
||||||
|
catch (ReflectionException $e) {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return new $controllerName($page);
|
return new $controllerName($page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +36,18 @@
|
|||||||
$this->viewFactory = PanaceaViewFactory::getInstance();
|
$this->viewFactory = PanaceaViewFactory::getInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the default page if none is specified in the URI
|
||||||
|
*
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function getDefaultPageName() {
|
||||||
|
return 'Home';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the specified request, and generates a
|
* Handles the specified request, and generates a
|
||||||
* suitable response
|
* suitable response
|
||||||
@ -54,8 +66,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$templateView = new PanaceaTemplateView($this->page);
|
$title = (empty($this->page) || $this->page === 'Home') ? 'It doesn\'t suck' : $this->page;
|
||||||
$templateView->addView($this->viewFactory->getView($this->page, $templateView->getNextPriority()));
|
$templateView = new PanaceaTemplateView($title);
|
||||||
|
$templateView->mainView->addView($this->viewFactory->getView($this->page));
|
||||||
return $templateView;
|
return $templateView;
|
||||||
}
|
}
|
||||||
catch (ClassNotFoundException $e) {
|
catch (ClassNotFoundException $e) {
|
||||||
|
@ -44,38 +44,16 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates an instance of a {@link View} given a
|
* {@inheritdoc}
|
||||||
* page name
|
|
||||||
*
|
*
|
||||||
* @author Tommy Montgomery
|
* @author Tommy Montgomery
|
||||||
* @since 2008-10-05
|
* @since 2008-10-18
|
||||||
*
|
*
|
||||||
* @param string $page The name of the page
|
* @param string $page The name of the page
|
||||||
* @param mixed $args Other arguments for creating the view
|
* @return string
|
||||||
* @throws {@link InvalidTypeException}
|
|
||||||
* @throws {@link ClassNotFoundException}
|
|
||||||
* @return View
|
|
||||||
*/
|
*/
|
||||||
public function getView($page, $priority = 0) {
|
protected function getViewName($page) {
|
||||||
if (!is_string($page)) {
|
return 'Panacea' . ucfirst($page) . 'View';
|
||||||
throw new InvalidTypeException(1, 'string', $page);
|
|
||||||
}
|
|
||||||
|
|
||||||
$viewName = 'Panacea' . ucfirst($page) . 'View';
|
|
||||||
|
|
||||||
try {
|
|
||||||
$refclass = new ReflectionClass($viewName);
|
|
||||||
$args = array_slice(func_get_args(), 1, 1);
|
|
||||||
if (!empty($args)) {
|
|
||||||
return $refclass->newInstanceArgs($args);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return $refclass->newInstance();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (ReflectionException $e) {
|
|
||||||
throw new ClassNotFoundException($viewName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
71
src/lib/PanaceaWikiController.php
Normal file
71
src/lib/PanaceaWikiController.php
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PanaceaWikiController
|
||||||
|
*
|
||||||
|
* @package Panacea
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** Bootstraps the NowhereConcave framework */
|
||||||
|
require_once 'NowhereConcave/bootstrap.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wiki controller
|
||||||
|
*
|
||||||
|
* @package Panacea
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*/
|
||||||
|
class PanaceaWikiController extends PanaceaDefaultController {
|
||||||
|
|
||||||
|
public function __construct($page) {
|
||||||
|
parent::__construct($page, View::VIEWTYPE_HTML);
|
||||||
|
$this->viewFactory = WikiViewFactory::getInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function getDefaultPageName() {
|
||||||
|
return 'MainPage';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
* @uses Request::create()
|
||||||
|
* @uses HttpUtil::getRequestMethod()
|
||||||
|
*
|
||||||
|
* @throws {@link InvalidRequestException} if a {@link View} cannot be created
|
||||||
|
* @return PanaceaTemplateView
|
||||||
|
*/
|
||||||
|
public function handleRequest(Request $request = null) {
|
||||||
|
if (!($request instanceof Request)) {
|
||||||
|
$request = Request::create(HttpUtil::getRequestMethod());
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$templateView = new PanaceaTemplateView('Wiki :: ' . $this->page);
|
||||||
|
$mysql = MySql::getInstance('wiki', 'localhost', 'root', 'layne', 'wiki');
|
||||||
|
$wikiObject = new WikiPageObject(WikiPage::loadByPageName($mysql, $this->page));
|
||||||
|
$wikiObject->setRevision(WikiHistory::REV_LATEST, $mysql);
|
||||||
|
$templateView->mainView->addView($this->viewFactory->getView($this->page, $wikiObject));
|
||||||
|
return $templateView;
|
||||||
|
}
|
||||||
|
catch (ClassNotFoundException $e) {
|
||||||
|
throw new InvalidRequestException($request);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
61
src/lib/WikiViewFactory.php
Normal file
61
src/lib/WikiViewFactory.php
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PanaceaViewFactory
|
||||||
|
*
|
||||||
|
* @package Panacea
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-05
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** Bootstraps the NowhereConcave framework */
|
||||||
|
require_once 'NowhereConcave/bootstrap.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Factory for generating {@link View}s
|
||||||
|
*
|
||||||
|
* @package Panacea
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-05
|
||||||
|
*/
|
||||||
|
class WikiViewFactory extends ViewFactory {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The singleton instance
|
||||||
|
*
|
||||||
|
* @var WikiViewFactory
|
||||||
|
*/
|
||||||
|
protected static $instance = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the singleton instance
|
||||||
|
*
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-17
|
||||||
|
*
|
||||||
|
* @return WikiViewFactory
|
||||||
|
*/
|
||||||
|
public static function getInstance() {
|
||||||
|
if (static::$instance === null) {
|
||||||
|
static::$instance = new static();
|
||||||
|
}
|
||||||
|
|
||||||
|
return static::$instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*
|
||||||
|
* @param string $page The name of the page
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function getViewName($page) {
|
||||||
|
return 'WikiPageView';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
50
src/lib/views/PanaceaFooterView.php
Normal file
50
src/lib/views/PanaceaFooterView.php
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PanaceaFooterView
|
||||||
|
*
|
||||||
|
* @package Panacea
|
||||||
|
* @subpackage Views
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** Bootstraps the NowhereConcave framework */
|
||||||
|
require_once 'NowhereConcave/bootstrap.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* View for standard Panacea pages
|
||||||
|
*
|
||||||
|
* @package Panacea
|
||||||
|
* @subpackage Views
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*/
|
||||||
|
class PanaceaFooterView extends PanaceaView {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renders the view
|
||||||
|
*
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*/
|
||||||
|
public function send() { ?>
|
||||||
|
|
||||||
|
<div class="hrule"></div>
|
||||||
|
|
||||||
|
<div id="foot">
|
||||||
|
<ul>
|
||||||
|
<li><a href="<?php echo $this->root; ?>/about">About</a></li>
|
||||||
|
<li><a href="<?php echo $this->root; ?>/credits">Credits</a></li>
|
||||||
|
<li><a href="<?php echo $this->root; ?>/copyright">Copyright</a></li>
|
||||||
|
<li><a href="<?php echo $this->root; ?>/contact">Contact</a></li>
|
||||||
|
</ul>
|
||||||
|
<div style="clear:right"></div>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
@ -22,21 +22,30 @@
|
|||||||
*/
|
*/
|
||||||
class PanaceaHomeView extends PanaceaView {
|
class PanaceaHomeView extends PanaceaView {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renders the view
|
||||||
|
*
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
* @uses addView()
|
||||||
|
* @uses PanaceaWelcomeView
|
||||||
|
*
|
||||||
|
* @param int $priority The priority of this view
|
||||||
|
*/
|
||||||
|
public function __construct($priority = 0) {
|
||||||
|
parent::__construct($priority);
|
||||||
|
|
||||||
|
$this->addView(new PanaceaWelcomeView(1));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renders the view
|
* Renders the view
|
||||||
*
|
*
|
||||||
* @author Tommy Montgomery
|
* @author Tommy Montgomery
|
||||||
* @since 2008-10-05
|
* @since 2008-10-05
|
||||||
*/
|
*/
|
||||||
public function send() { ?>
|
public function send() {
|
||||||
|
parent::send();
|
||||||
<h1>Panacea</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Hello!
|
|
||||||
</p>
|
|
||||||
<?php
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
43
src/lib/views/PanaceaMainView.php
Normal file
43
src/lib/views/PanaceaMainView.php
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PanaceaMainView
|
||||||
|
*
|
||||||
|
* @package Panacea
|
||||||
|
* @subpackage Views
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-05
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** Bootstraps the NowhereConcave framework */
|
||||||
|
require_once 'NowhereConcave/bootstrap.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* View for standard Panacea pages
|
||||||
|
*
|
||||||
|
* @package Panacea
|
||||||
|
* @subpackage Views
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-05
|
||||||
|
*/
|
||||||
|
class PanaceaMainView extends PanaceaView {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renders the view
|
||||||
|
*
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-05
|
||||||
|
*/
|
||||||
|
public function send() { ?>
|
||||||
|
|
||||||
|
<div id="main">
|
||||||
|
<?php parent::send(); ?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
@ -59,6 +59,8 @@
|
|||||||
$this->separator = ' - ';
|
$this->separator = ' - ';
|
||||||
|
|
||||||
$this->addView(new PanaceaHeaderView(1));
|
$this->addView(new PanaceaHeaderView(1));
|
||||||
|
$this->addView(new PanaceaMainView(2));
|
||||||
|
$this->addView(new PanaceaFooterView(3));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -101,6 +103,8 @@
|
|||||||
case 'defaultTitle':
|
case 'defaultTitle':
|
||||||
case 'separator':
|
case 'separator':
|
||||||
return $this->$var;
|
return $this->$var;
|
||||||
|
case 'mainView':
|
||||||
|
return $this->views[1];
|
||||||
default:
|
default:
|
||||||
return parent::__get($var);
|
return parent::__get($var);
|
||||||
}
|
}
|
||||||
|
100
src/lib/views/PanaceaWelcomeView.php
Normal file
100
src/lib/views/PanaceaWelcomeView.php
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PanaceaWelcomeView
|
||||||
|
*
|
||||||
|
* @package Panacea
|
||||||
|
* @subpackage Views
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** Bootstraps the NowhereConcave framework */
|
||||||
|
require_once 'NowhereConcave/bootstrap.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* View for the welcome message
|
||||||
|
*
|
||||||
|
* @package Panacea
|
||||||
|
* @subpackage Views
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*/
|
||||||
|
class PanaceaWelcomeView extends PanaceaView {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renders the view
|
||||||
|
*
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*/
|
||||||
|
public function send() { ?>
|
||||||
|
|
||||||
|
<h2>Welcome</h2>
|
||||||
|
<div class="inset">
|
||||||
|
<p>
|
||||||
|
Welcome to <i>Panacea</i>, a web-based application that
|
||||||
|
doesn't suck. It's aimed at software developers,
|
||||||
|
software development managers, <acronym>QA</acronym> professionals,
|
||||||
|
and people who like using <a href="http://en.wikipedia.org/wiki/Wiki">wikis</a>
|
||||||
|
(which should be everybody, unless you're a robot).
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>What is <i>Panacea</i>?</h2>
|
||||||
|
<div class="inset">
|
||||||
|
<p>
|
||||||
|
<i>Panacea</i> is modeled after <a href="http://trac.edgewall.org/">Trac</a>,
|
||||||
|
which is a fantastic application very similar to this one. <i>Panacea</i>
|
||||||
|
aims to ease integration, configuration and installation. That is not to say
|
||||||
|
that <i>Panacea</i> is simple; it is in fact just the opposite. <i>Panacea</i> is
|
||||||
|
infintely complex and extensible; it is well documented and well-written; it
|
||||||
|
is a panacea to all your software development troubles; it's also a lot of
|
||||||
|
fun, in the sense that there's a lot of crap to mess around with.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
More information about the technology and reason for <i>Panacea</i> can be
|
||||||
|
viewed at the <a href="<?php echo $this->root; ?>/wiki/About">about</a> page.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Stuff to do here</h2>
|
||||||
|
<div class="inset">
|
||||||
|
<p>
|
||||||
|
This whole site is an example of <i>Panacea</i>, except for this page.
|
||||||
|
This page is just a bunch of static <acronym>HTML</acronym>, and is not
|
||||||
|
under the control of a wiki.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Demo</h3>
|
||||||
|
<div class="inset">
|
||||||
|
<p>
|
||||||
|
Words are boring. Here is a demo: <a href="<?php echo $this->root; ?>/demo/">do
|
||||||
|
it.</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>Download</h3>
|
||||||
|
<div class="inset">
|
||||||
|
<p>
|
||||||
|
<a href="<?php echo $this->root; ?>/wiki/Download">Click here</a> to go
|
||||||
|
to our download page.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>Install</h3>
|
||||||
|
<div class="inset">
|
||||||
|
<p>
|
||||||
|
<a href="<?php echo $this->root; ?>/wiki/Install">Click here</a> to go
|
||||||
|
to view installation instructions.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
44
src/lib/views/wiki/WikiPageView.php
Normal file
44
src/lib/views/wiki/WikiPageView.php
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* WikiPageView
|
||||||
|
*
|
||||||
|
* @package Panacea
|
||||||
|
* @subpackage Views
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** Bootstraps the NowhereConcave framework */
|
||||||
|
require_once 'NowhereConcave/bootstrap.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* View for wiki pages
|
||||||
|
*
|
||||||
|
* @package Panacea
|
||||||
|
* @subpackage Views
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*/
|
||||||
|
class WikiPageView extends PanaceaView {
|
||||||
|
|
||||||
|
protected $page;
|
||||||
|
|
||||||
|
public function __construct(WikiPageObject $page, $priority = 0) {
|
||||||
|
parent::__construct($priority);
|
||||||
|
$this->page = $page;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renders the view
|
||||||
|
*
|
||||||
|
* @author Tommy Montgomery
|
||||||
|
* @since 2008-10-18
|
||||||
|
*/
|
||||||
|
public function send() {
|
||||||
|
echo $this->page;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
@ -7,6 +7,9 @@ body {
|
|||||||
font-size: 8pt;
|
font-size: 8pt;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
}
|
}
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
#wrapper {
|
#wrapper {
|
||||||
width: 95%;
|
width: 95%;
|
||||||
@ -37,11 +40,10 @@ body {
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
#menu ul li {
|
#menu ul li {
|
||||||
float:left;
|
float: left;
|
||||||
display:block;
|
margin-right: 5px;
|
||||||
margin-right:5px;
|
width: 100px;
|
||||||
width:100px;
|
height: 25px;
|
||||||
height:25px;
|
|
||||||
}
|
}
|
||||||
#menu ul li a {
|
#menu ul li a {
|
||||||
display: inline;
|
display: inline;
|
||||||
@ -73,4 +75,58 @@ body {
|
|||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
line-height: 35px;
|
line-height: 35px;
|
||||||
border: 1px solid #FFFFFF;
|
border: 1px solid #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main {
|
||||||
|
position: relative;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
#main p {
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
#main a {
|
||||||
|
border-bottom: 1px dotted #000000;
|
||||||
|
color: #669966 ;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
#main a:hover {
|
||||||
|
color: #000000;
|
||||||
|
border-bottom: 2px solid #669966;
|
||||||
|
}
|
||||||
|
|
||||||
|
#foot {
|
||||||
|
position: relative;
|
||||||
|
padding: 5px;
|
||||||
|
margin: 2px;
|
||||||
|
}
|
||||||
|
#foot ul {
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
#foot ul li {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
#foot ul li:first-child:after, #foot ul li:before {
|
||||||
|
content: "|";
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
#foot ul li a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
#foot ul li a:hover {
|
||||||
|
color: #000000;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.inset {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
.hrule {
|
||||||
|
height: .1em;
|
||||||
|
border-top: 1px solid #000000;
|
||||||
|
border-bottom: 1px solid #000000;
|
||||||
|
background-color: #DDDD77;
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user