ForwardFW
[ class tree: ForwardFW ] [ index: ForwardFW ] [ all elements ]

Source for file View.php

Documentation is available at View.php

  1. <?php
  2. declare(encoding "utf-8");
  3. /**
  4.  * This file is part of ForwardFW a web application framework.
  5.  *
  6.  * This library is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU General Public
  8.  * License as published by the Free Software Foundation; either
  9.  * version 2.1 of the License, or (at your option) any later version.
  10.  *
  11.  * This library is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14.  * General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public
  17.  * License along with this library; if not, write to the Free Software
  18.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  19.  *
  20.  * PHP version 5
  21.  *
  22.  * @category   Application
  23.  * @package    ForwardFW
  24.  * @subpackage Controller
  25.  * @author     Alexander Opitz <opitz.alexander@primacom.net>
  26.  * @copyright  2009 The Authors
  27.  * @license    http://www.gnu.org/copyleft/gpl.html GNU General Public License
  28.  * @version    SVN: $Id: $
  29.  * @link       http://forwardfw.sourceforge.net
  30.  * @since      File available since Release 0.0.2
  31.  */
  32.  
  33. /**
  34.  *
  35.  */
  36. require_once 'ForwardFW/Controller.php';
  37. require_once 'ForwardFW/Interface/Application.php';
  38. require_once 'ForwardFW/Templater.php';
  39.  
  40. /**
  41.  * This class is a basic View class.
  42.  *
  43.  * @category   Application
  44.  * @package    ForwardFW
  45.  * @subpackage Controller
  46.  * @author     Alexander Opitz <opitz.alexander@primacom.net>
  47.  * @license    http://www.gnu.org/copyleft/gpl.html GNU General Public License
  48.  * @link       http://forwardfw.sourceforge.net
  49.  */
  50. {
  51.     /**
  52.      * Constructor
  53.      *
  54.      * @param ForwardFW_Interface_Application $_application The running application.
  55.      *
  56.      * @return void 
  57.      */
  58.     public function __construct(ForwardFW_Interface_Application $_application)
  59.     {
  60.         parent::__construct($_application);
  61.         $this->strViewName get_class($this);
  62.     }
  63.  
  64.     /**
  65.      * Processes the View.
  66.      *
  67.      * @return string 
  68.      */
  69.     public function process()
  70.     {
  71.         $this->application->response->addLog('Processing ' get_class($this));
  72.         $this->controlView();
  73.         return $this->processView();
  74.     }
  75.  
  76.     /**
  77.      * Control available data for View
  78.      *
  79.      * @return boolean True if all data exists.
  80.      */
  81.     public function controlView()
  82.     {
  83.         return true;
  84.     }
  85.  
  86.     /**
  87.      * Processes the View.
  88.      *
  89.      * @return void 
  90.      */
  91.     public function processView()
  92.     {
  93.         $this->application->getResponse()->addLog(
  94.             'Processing: ' $this->getTemplateName('.tpl'
  95.         );
  96.         $templater ForwardFW_Templater::factory($this->application);
  97.         $templater->setVar('ForwardFW_Version'$GLOBALS['ForwardFW']['Version']);
  98.         try {
  99.             $templater->setTemplateFile($this->getTemplateName('.tpl');
  100.             return $templater->getCompiled();
  101.         catch (Exception $e{
  102.             $this->application->response->addError($e->getMessage());
  103.         }
  104.     }
  105.  
  106.     /**
  107.      * Returns the template name depending on the strViewName
  108.      * It replaces the underscore with path_slashes.
  109.      *
  110.      * @return string Name of the template
  111.      */
  112.     protected function getTemplateName()
  113.     {
  114.         $strTemplateName '';
  115.         $nLength strlen($this->strViewName);
  116.         $nLastPart strrpos($this->strViewName'_');
  117.         $nPreviewsPart strrpos(
  118.             $this->strViewName'_'-($nLength $nLastPart 1)
  119.         );
  120.         if ($nPreviewsPart === false{
  121.             $nPreviewsPart = -1;
  122.         }
  123.         $strTemplateName  substr(
  124.             $this->strViewName$nPreviewsPart 1$nLastPart $nPreviewsPart 1
  125.         );
  126.         $strTemplateName .= '/';
  127.         $strTemplateName .= substr($this->strViewName$nLastPart 1);
  128.         return $strTemplateName;
  129.     }
  130. }
  131. ?>

Documentation generated on Sun, 30 Jan 2011 20:46:49 +0100 by phpDocumentor 1.4.3