Browse Source

Added View methods append & preprend, #16

git-svn-id: svn+ssh://code.netmonsters.ru/svn/majestic/branches/evo@135 4cb57b5f-5bbd-dd11-951b-001d605cbbc5
master
pzinovkin 15 years ago
parent
commit
7ee83329d9
  1. 20
      layout/Layout.php
  2. 32
      view/PHPView.php
  3. 2
      view/iView.php

20
layout/Layout.php

@ -33,6 +33,26 @@ abstract class Layout
$this->view->assign($name, $action->fetch()); $this->view->assign($name, $action->fetch());
} }
/**
* @param string $name
* @param Action $action
*/
protected function append($name, $action)
{
$this->view->append($name, $action->fetch());
}
/**
* @param string $name
* @param Action $action
*/
protected function prepend($name, $action)
{
$this->view->prepend($name, $action->fetch());
}
abstract protected function execute(); abstract protected function execute();
/** /**

32
view/PHPView.php

@ -24,7 +24,7 @@ class PHPView implements iView
public function __construct($config) public function __construct($config)
{ {
if (!isset($config['path'])) { if (!isset($config['path'])) {
throw new Exception('Configuration must have a "path".');
throw new Exception('Configuration must have a "path" set.');
} }
$this->setPath($config['path']); $this->setPath($config['path']);
} }
@ -49,11 +49,41 @@ class PHPView implements iView
} }
} }
/**
* @param string $name
* @param mixed $value
*/
public function assign($name, $value = null) public function assign($name, $value = null)
{ {
$this->variables[$name] = $value; $this->variables[$name] = $value;
} }
/**
* @param string $name
* @param mixed $value
*/
public function prepend($name, $value)
{
if (isset($this->variables[$name])) {
$this->variables[$name] = $value . $this->variables[$name];
} else {
$this->variables[$name] = $value;
}
}
/**
* @param string $name
* @param mixed $value
*/
public function append($name, $value)
{
if (isset($this->variables[$name])) {
$this->variables[$name] .= $value;
} else {
$this->variables[$name] = $value;
}
}
public function fetch($template) public function fetch($template)
{ {
$this->template = $this->getTemplatePath($template); $this->template = $this->getTemplatePath($template);

2
view/iView.php

@ -12,5 +12,7 @@
interface iView interface iView
{ {
public function assign($name, $value = null); public function assign($name, $value = null);
public function prepend($name, $value);
public function append($name, $value);
public function fetch($template); public function fetch($template);
} }
Loading…
Cancel
Save