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-2012 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.         if($this->_outputOnlyHeaders){
  64.             $this->sendHttpHeaders();
  65.             return true;
  66.         }
  67.     
  68.         $this->doAfterActions();
  69.  
  70.         $content implode("\n",$this->_contentTop);
  71.         if($this->tplname!=''){
  72.             $content .= $this->tpl->fetch($this->tplname,'html');
  73.         }
  74.  
  75.         $content .= implode("\n",$this->_contentBottom);
  76.  
  77.         $this->_httpHeaders['Content-Type']='text/plain;charset='.jApp::config()->charset;
  78.         $this->_httpHeaders['Content-length']=strlen($content);
  79.         $this->sendHttpHeaders();
  80.         echo $content;
  81.         return true;
  82.     }
  83.  
  84.     /**
  85.      * add content to the response
  86.      * you can add additionnal content, before or after the content generated by the main template
  87.      * @param string $content additionnal html content
  88.      * @param boolean $beforeTpl true if you want to add it before the template content, else false for after
  89.      */
  90.     function addContent($content$beforeTpl false){
  91.       if($beforeTpl){
  92.         $this->_contentTop[]=$content;
  93.       }else{
  94.          $this->_contentBottom[]=$content;
  95.       }
  96.     }
  97.  
  98.     /**
  99.      * The method you can overload in your inherited htmlfragment response
  100.      * after all actions
  101.      * @since 1.1
  102.      */
  103.     protected function doAfterActions(){
  104.  
  105.     }
  106.  
  107.     /**
  108.      * output errors
  109.      */
  110.     final public function outputErrors(){
  111.  
  112.         $this->clearHttpHeaders();
  113.         $this->_httpStatusCode ='500';
  114.         $this->_httpStatusMsg ='Internal Jelix Error';
  115.         // FIXME : text/plain or text/html ?
  116.         $this->_httpHeaders['Content-Type''text/plain;charset='.jApp::config()->charset;
  117.  
  118.         $content '<p class="htmlfragmenterror">';
  119.         $content .= htmlspecialchars(jApp::coord()->getGenericErrorMessage());
  120.         $content .= '</p>';
  121.  
  122.         $this->_httpHeaders['Content-length'strlen($content);
  123.         $this->sendHttpHeaders();
  124.         echo $content;
  125.     }
  126.  
  127.     public function getFormatType()return 'html';}
  128. }

Documentation generated on Mon, 26 Oct 2015 21:55:37 +0100 by phpDocumentor 1.4.3