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
  7. @copyright   2008 Tahina Ramaroson, Sylvain de Vathaire
  8. @copyright   2008 Dominique Papin
  9. @copyright   2009 Olivier Demah
  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.         if($this->hasErrors()) return false;
  66.  
  67.         $this->doAfterActions();
  68.  
  69.         if($this->hasErrors()) return false;
  70.  
  71.         $content implode("\n",$this->_contentTop);
  72.         if($this->tplname!=''){
  73.             $content.=$this->tpl->fetch($this->tplname,'html');
  74.             if($this->hasErrors()) return false;
  75.         }
  76.         $content .= implode("\n",$this->_contentBottom);
  77.  
  78.         $this->_httpHeaders['Content-Type']='text/plain;charset='.$gJConfig->charset;
  79.         $this->_httpHeaders['Content-length']=strlen($content);
  80.         $this->sendHttpHeaders();
  81.         echo $content;
  82.         return true;
  83.     }
  84.  
  85.     /**
  86.      * add content to the response
  87.      * you can add additionnal content, before or after the content generated by the main template
  88.      * @param string $content additionnal html content
  89.      * @param boolean $beforeTpl true if you want to add it before the template content, else false for after
  90.      */
  91.     function addContent($content$beforeTpl false){
  92.       if($beforeTpl){
  93.         $this->_contentTop[]=$content;
  94.       }else{
  95.          $this->_contentBottom[]=$content;
  96.       }
  97.     }
  98.  
  99.  
  100.     /**
  101.      * The method you can overload in your inherited htmlfragment response
  102.      * after all actions
  103.      * @since 1.1
  104.      */
  105.     protected function doAfterActions(){
  106.         $this->_commonProcess()// for compatibility with jelix 1.0
  107.     }
  108.  
  109.     /**
  110.      * same use as doAfterActions, but deprecated method. It is just here for compatibility with Jelix 1.0.
  111.      * Use doAfterActions instead
  112.      * @deprecated
  113.      */
  114.     protected function _commonProcess(){
  115.     }
  116.  
  117.     /**
  118.      * output errors
  119.      */
  120.     final public function outputErrors(){
  121.  
  122.         global $gJConfig;
  123.         $this->clearHttpHeaders();
  124.         $this->_httpStatusCode ='500';
  125.         $this->_httpStatusMsg ='Internal Server Error';
  126.         $this->_httpHeaders['Content-Type']='text/plain;charset='.$gJConfig->charset;
  127.  
  128.         if($this->hasErrors()){
  129.             $content $this->getFormatedErrorMsg();
  130.         }else{
  131.             $content '<p style="color:#FF0000">Unknown Error</p>';
  132.         }
  133.  
  134.         $this->_httpHeaders['Content-length'strlen($content);
  135.         $this->sendHttpHeaders();
  136.         echo $content;
  137.     }
  138.  
  139.     /**
  140.      * create html error messages
  141.      * @return string html content
  142.      */
  143.     protected function getFormatedErrorMsg(){
  144.  
  145.         global $gJConfig;
  146.         $errors='';
  147.         foreach$GLOBALS['gJCoord']->errorMessages  as $e){
  148.            $errors .=  '<p style="margin:0;"><b>['.$e[0].' '.$e[1].']</b> <span style="color:#FF0000">'.htmlspecialchars($e[2]ENT_NOQUOTES$gJConfig->charset)."</span> \t".$e[3]." \t".$e[4]."</p>\n";
  149.         }
  150.         return $errors;
  151.     }
  152.     
  153.     public function getFormatType()return 'html';}
  154. }

Documentation generated on Thu, 22 Mar 2012 22:16:43 +0100 by phpDocumentor 1.4.3