--- /dev/null
+<?php
+/**
+ * A helper for generating blocks (div or span) on web pages
+ *
+ * @author Roland Haeder <webmaster@ship-simu.org>
+ * @version 0.0.0
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
+ * @license GNU GPL 3.0 or any newer version
+ * @link http://www.ship-simu.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 <http://www.gnu.org/licenses/>.
+ */
+class WebBlockHelper extends BaseWebHelper 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 final static function createWebBlockHelper (CompileableTemplate $templateInstance, $blockName) {
+ // Get new instance
+ $helperInstance = new WebBlockHelper();
+
+ // 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 wether include registration date in this block
+ *
+ * @return $withRegistration Wether with registration date
+ */
+ public function ifIncludeRegistrationStamp () {
+ $withRegistration = ($this->getConfigInstance()->readConfig('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]
+?>