Source for file jResponseHtmlFragment.class.php

Documentation is available at jResponseHtmlFragment.class.php

  1. <?php
  2. /**
  3. @package     jelix
  4. @subpackage  core_response
  5. @author      Tahina Ramaroson
  6. @contributor Sylvain de Vathaire, Dominique Papin, Olivier Demah, Laurent Jouanneau
  7. @copyright   2008 Tahina Ramaroson, Sylvain de Vathaire
  8. @copyright   2008 Dominique Papin
  9. @copyright   2009 Olivier Demah, 2009-2010 Laurent Jouanneau
  10. @link        http://www.jelix.org
  11. @licence     GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  12. */
  13.  
  14. /**
  15.  * Send Html part
  16.  * @package  jelix
  17.  * @subpackage core_response
  18.  */
  19. class jResponseHtmlFragment extends jResponse {
  20.  
  21.     /**
  22.     * jresponse id
  23.     * @var string 
  24.     */
  25.     protected $_type = 'htmlfragment';
  26.  
  27.     /**
  28.     * template selector
  29.     * set the template name in this property
  30.     * @var string 
  31.     */
  32.     public $tplname = '';
  33.  
  34.     /**
  35.     * the jtpl object created automatically
  36.     * @var jTpl 
  37.     */
  38.     public $tpl = null;
  39.  
  40.     /**#@+
  41.      * content surrounding template content
  42.      * @var array
  43.      */
  44.     protected $_contentTop = array();
  45.     protected $_contentBottom = array();
  46.     /**#@-*/
  47.  
  48.     /**
  49.     * constructor;
  50.     * setup the template engine
  51.     */
  52.     function __construct (){
  53.         $this->tpl = new jTpl();
  54.         parent::__construct();
  55.     }
  56.  
  57.     /**
  58.     * send the Html part
  59.     * @return boolean    true if it's ok
  60.     */
  61.     final public function output(){
  62.  
  63.         global $gJConfig;
  64.  
  65.         $this->doAfterActions();
  66.  
  67.         $content implode("\n",$this->_contentTop);
  68.         if($this->tplname!=''){
  69.             $content .= $this->tpl->fetch($this->tplname,'html');
  70.         }
  71.  
  72.         $content .= implode("\n",$this->_contentBottom);
  73.  
  74.         $this->_httpHeaders['Content-Type']='text/plain;charset='.$gJConfig->charset;
  75.         $this->_httpHeaders['Content-length']=strlen($content);
  76.         $this->sendHttpHeaders();
  77.         echo $content;
  78.         return true;
  79.     }
  80.  
  81.     /**
  82.      * add content to the response
  83.      * you can add additionnal content, before or after the content generated by the main template
  84.      * @param string $content additionnal html content
  85.      * @param boolean $beforeTpl true if you want to add it before the template content, else false for after
  86.      */
  87.     function addContent($content$beforeTpl false){
  88.       if($beforeTpl){
  89.         $this->_contentTop[]=$content;
  90.       }else{
  91.          $this->_contentBottom[]=$content;
  92.       }
  93.     }
  94.  
  95.     /**
  96.      * The method you can overload in your inherited htmlfragment response
  97.      * after all actions
  98.      * @since 1.1
  99.      */
  100.     protected function doAfterActions(){
  101.  
  102.     }
  103.  
  104.     /**
  105.      * output errors
  106.      */
  107.     final public function outputErrors(){
  108.  
  109.         global $gJConfig;
  110.         $this->clearHttpHeaders();
  111.         $this->_httpStatusCode ='500';
  112.         $this->_httpStatusMsg ='Internal Jelix Error';
  113.         // FIXME : text/plain or text/html ?
  114.         $this->_httpHeaders['Content-Type''text/plain;charset='.$gJConfig->charset;
  115.  
  116.         $content '<p class="htmlfragmenterror">';
  117.         $content .= htmlspecialchars($GLOBALS['gJCoord']->getGenericErrorMessage());
  118.         $content .= '</p>';
  119.  
  120.         $this->_httpHeaders['Content-length'strlen($content);
  121.         $this->sendHttpHeaders();
  122.         echo $content;
  123.     }
  124.  
  125.     public function getFormatType()return 'html';}
  126. }

Documentation generated on Wed, 24 Sep 2014 22:01:29 +0200 by phpDocumentor 1.4.3