* @version 0.0.0 * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.shipsimu.org * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ class HtmlBlockHelper extends BaseHtmlHelper implements HelpableTemplate { /** * Name of the block */ private $blockName = ''; /** * Protected constructor * * @return void */ protected function __construct () { // Call parent constructor parent::__construct(__CLASS__); } /** * Creates the helper class * * @param $templateInstance An instance of a template engine * @param $blockName Name of the block we shall generate * @return $helperInstance A prepared instance of this helper */ public static final function createHtmlBlockHelper (CompileableTemplate $templateInstance, $blockName) { // Get new instance $helperInstance = new HtmlBlockHelper(); // Set template instance $helperInstance->setTemplateInstance($templateInstance); // Set block name $helperInstance->setBlockName($blockName); // Return the prepared instance return $helperInstance; } /** * Setter for block name * * @param $blockName Name of the block we shall generate * @return void */ protected final function setBlockName ($blockName) { $this->blockName = (string) $blockName; } /** * Getter for block name * * @return $blockName Name of the block we shall generate */ public final function getBlockName () { return $this->blockName; } /** * Checks whether include registration date in this block * * @return $withRegistration Whether with registration date */ public function ifIncludeRegistrationStamp () { $withRegistration = ($this->getConfigInstance()->getConfigEntry('block_shows_registration') == 'Y'); return $withRegistration; } /** * Assignes a template variable with a message from a given message id * * @param $templateVariable Template variable to assign * @param $messageId Message id to load an assign * @return void */ public function assignMessageField ($templateVariable, $messageId) { // Get message $message = $this->getLanguageInstance()->getMessage($messageId); // And assign it $this->getTemplateInstance()->assignVariable($templateVariable, $message); } /** * Assigns a link field with a given value * * @param $linkField "Link field" (variable) to assign * @param $actionValue Action value to assign * @return void */ public function assignLinkFieldWithAction ($linkField, $actionValue) { $this->getTemplateInstance()->assignVariable($linkField . '_action', $actionValue); } /** * "Filter" method for translating the raw user status into something human-readable * * @param $userStatus Raw user status from database layer * @return $translated Translated user status */ protected function doFilterUserStatusTranslator ($userStatus) { // Generate message id $messageId = 'user_status_' . strtolower($userStatus); // Get that message $translated = $this->getLanguageInstance()->getMessage($messageId); // Return it return $translated; } /** * Flush the content out,e g. to a template variable * * @return void */ public function flushContent () { // Get template instance $templateInstance = $this->getTemplateInstance(); // Get the template named like this block $templateInstance->loadCodeTemplate('block_' . $this->getBlockName()); // Transfer it to the template instance $templateInstance->assignVariable($this->getBlockName(), $templateInstance->getRawTemplateData()); } } // [EOF] ?>