Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
19.05% |
4 / 21 |
CRAP | |
17.74% |
11 / 62 |
| ViewController | |
0.00% |
0 / 1 |
|
19.05% |
4 / 21 |
601.95 | |
17.74% |
11 / 62 |
| __construct( \aae\ui\TemplateInterface $template, \aae\ui\Localizer $localizer = null ) | |
0.00% |
0 / 1 |
3.79 | |
55.56% |
5 / 9 |
|||
| setErrorCode($errorCode) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| setErrorMessage($errorMessage) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| getErrorCode() | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| getErrorMessage() | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| setError($errorMessage, $errorCode) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| __call($functionName, $args) | |
100.00% |
1 / 1 |
2 | |
100.00% |
3 / 3 |
|||
| useTemplate($templateName) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| internalRedirect($actionName, $args = []) | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 7 |
|||
| loadTemplate($templateName) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| getHtml() | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| getView() | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| localize($stringName, $language = null) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| localizeArrayElement(&$array, $arrayElmentName, $language = null) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| localizeAndDecorateArrayElement(&$array, $arrayElmentName, $decorationStringName, $language = null) | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| getActionEndings() | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| cssClassToggle($selectorName, $n, $count) | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 5 |
|||
| lastCall() | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| constructCall() | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| _getControllerName() | |
0.00% |
0 / 1 |
42 | |
0.00% |
0 / 10 |
|||
| get_all_localized_stringsAction() | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| <?php | |
| /** | |
| * | |
| */ | |
| namespace aae\ui { | |
| /** | |
| * @author Axel Ancona Esselmann | |
| * @package aae\ui | |
| */ | |
| class ViewController implements \aae\ui\ViewControllerInterface { | |
| public $template; | |
| protected $_errorCode = 0; | |
| protected $_errorMessage; | |
| public function __construct( | |
| \aae\ui\TemplateInterface $template, | |
| \aae\ui\Localizer $localizer = null | |
| ) { | |
| $this->template = $template; | |
| $this->_localizer = $localizer; | |
| if (!is_null($this->_localizer)) { | |
| $this->_localizer->setI18nFileName($this->_getControllerName()); | |
| $this->template->setLocalizer($localizer); | |
| if ($this->_localizer->hasDefaultLocalization()) $this->template["pageTitle"] = $this->localize("defaultPageTitle"); | |
| } | |
| $this->constructCall(); | |
| } | |
| public function setErrorCode($errorCode) { | |
| $this->_errorCode = $errorCode; | |
| } | |
| public function setErrorMessage($errorMessage) { | |
| $this->_errorMessage = $errorMessage; | |
| } | |
| public function getErrorCode() { | |
| return $this->_errorCode; | |
| } | |
| public function getErrorMessage() { | |
| return $this->_errorMessage; | |
| } | |
| public function setError($errorMessage, $errorCode) { | |
| $this->setErrorMessage($errorMessage); | |
| $this->setErrorCode($errorCode); | |
| return false; | |
| } | |
| public function __call($functionName, $args) { | |
| $actionName = $functionName."Action"; | |
| if (!method_exists($this, $actionName)) throw new \Exception(get_class($this)." does not have the function $functionName", 1206140141); | |
| return call_user_func_array(array($this, $actionName), $args); | |
| } | |
| public function useTemplate($templateName) { | |
| $this->template->load($templateName); | |
| } | |
| public function internalRedirect($actionName, $args = []) { | |
| $argsString = "/".implode("/", $args); | |
| $controller = $this->_getControllerName(); | |
| $action = strstr($actionName, "Action", true); | |
| $location = (strlen($action) > 0) ? "/$controller/".$action : $location = "/$controller"; | |
| $locationWithArgs = $location.$argsString; | |
| header(header("Location: $locationWithArgs", 301)); | |
| } | |
| public function loadTemplate($templateName) { | |
| $this->template->load($templateName); | |
| } | |
| public function getHtml() { | |
| return $this->template->__toString(); | |
| } | |
| public function getView() { | |
| $this->lastCall(); | |
| return $this->getHtml(); | |
| } | |
| public function localize($stringName, $language = null) { | |
| $fileName = $this->_getControllerName(); | |
| return $this->_localizer->localize($stringName, $fileName, $language); | |
| } | |
| public function localizeArrayElement(&$array, $arrayElmentName, $language = null) { | |
| $fileName = $this->_getControllerName(); | |
| $this->_localizer->localizeArrayElement($array, $arrayElmentName, $fileName, $language); | |
| } | |
| public function localizeAndDecorateArrayElement(&$array, $arrayElmentName, $decorationStringName, $language = null) { | |
| $fileName = $this->_getControllerName(); | |
| $this->_localizer->localizeAndDecorateArrayElement($array, $arrayElmentName, $decorationStringName, $fileName, $language); | |
| } | |
| public function getActionEndings() { | |
| return "Action"; | |
| } | |
| /** | |
| * If html items have a template variable that is numbered cuntinuously, setMenuItem clears all but the $n | |
| * @param str $selectorName template variable (has to be numbered continuously) | |
| * @param int $n the variable to be set as active | |
| * @param int $count the number of template variables associated with $selectorName | |
| */ | |
| public function cssClassToggle($selectorName, $n, $count) { | |
| for ($i=0; $i < $count; $i++) { | |
| if ($i !== $n) $this->template[$selectorName.$i] = ""; | |
| } | |
| $this->template[$selectorName.$n] = " active"; | |
| } | |
| public function lastCall() { | |
| # gets called before serializing of template. Overwrite to execute something on every action call | |
| } | |
| public function constructCall() { | |
| # gets called after the constructor is called. Overwrite to extend the constructor. | |
| } | |
| private function _getControllerName() { | |
| $class = get_class($this); | |
| $cn = strstr($class, "ViewController", true); | |
| if (strlen($cn) < 1) { | |
| $cn = strstr($class, "ApiController", true); | |
| if (strlen($cn) < 1) { | |
| $cn = strstr($class, "TemplateController", true); | |
| if (strlen($cn) < 1 && ($class != "ViewController" && $class != "TemplateController")) throw new \Exception("Controller ".$class." does not end in 'ViewController' or 'TemplateController'", 204151652); | |
| } | |
| } | |
| return strtolower($cn); | |
| } | |
| public function get_all_localized_stringsAction() { | |
| return $this->_localizer->localizeAll(); | |
| } | |
| } | |
| } |