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 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.         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.  
  107.     }
  108.  
  109.     /**
  110.      * output errors
  111.      */
  112.     final public function outputErrors(){
  113.  
  114.         global $gJConfig;
  115.         $this->clearHttpHeaders();
  116.         $this->_httpStatusCode ='500';
  117.         $this->_httpStatusMsg ='Internal Server Error';
  118.         $this->_httpHeaders['Content-Type']='text/plain;charset='.$gJConfig->charset;
  119.  
  120.         if($this->hasErrors()){
  121.             $content $this->getFormatedErrorMsg();
  122.         }else{
  123.             $content '<p style="color:#FF0000">Unknown Error</p>';
  124.         }
  125.  
  126.         $this->_httpHeaders['Content-length'strlen($content);
  127.         $this->sendHttpHeaders();
  128.         echo $content;
  129.     }
  130.  
  131.     /**
  132.      * create html error messages
  133.      * @return string html content
  134.      */
  135.     protected function getFormatedErrorMsg(){
  136.         global $gJConfig;
  137.         
  138.         $errors='';
  139.         foreach ($GLOBALS['gJCoord']->errorMessages  as $e{
  140.            $errors .= '<p style="margin:0;"><b>['.$e[0].' '.$e[1].']</b> <span style="color:#FF0000">';
  141.            $errors .= htmlspecialchars($e[2]ENT_NOQUOTES$gJConfig->charset)."</span> \t".$e[3]." \t".$e[4]."</p>\n";
  142.            if ($e[5])
  143.               $errors.= '<pre>'.htmlspecialchars($e[5]ENT_NOQUOTES$gJConfig->charset).'</pre>';
  144.         }
  145.         return $errors;
  146.     }
  147.     
  148.     public function getFormatType()return 'html';}
  149. }

Documentation generated on Thu, 19 Sep 2013 00:06:43 +0200 by phpDocumentor 1.4.3