[ Index ]
 

Code source de PRADO 3.0.6

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/framework/Web/UI/WebControls/ -> THead.php (source)

   1  <?php
   2  /**
   3   * THead class file
   4   *
   5   * @author Marcus Nyeholt <tanus@users.sourceforge.net> and Qiang Xue <qiang.xue@gmail.com>
   6   * @link http://www.pradosoft.com/
   7   * @copyright Copyright &copy; 2005 PradoSoft
   8   * @license http://www.pradosoft.com/license/
   9   * @version $Id: THead.php 1491 2006-11-05 00:50:01Z xue $
  10   * @package System.Web.UI
  11   */
  12  
  13  /**
  14   * THead class
  15   *
  16   * THead displays a head element on a page. It displays the content
  17   * enclosed in its body and the page title set by the
  18   * {@link setTitle Title} property. In addition, stylesheets and JavaScripts registered via
  19   * {@link TClientScriptManager::registerStyleSheet}, {@link TClientScriptManager::registerStyleSheetFile}
  20   * {@link TClientScriptManager::registerHeadJavaScript}, and
  21   * {@link TClientScriptManager::registerHeadJavaScriptFile} will also be displayed
  22   * in the head.
  23   * THead also manages and displays meta tags through its {@link getMetaTags MetaTags}
  24   * property. You can add a meta object to the collection in code dynamically,
  25   * or add it in template using the following syntax,
  26   * <code>
  27   * <com:THead>
  28   *   <com:TMetaTag HttpEquiv="Pragma" Content="no-cache" />
  29   *   <com:TMetaTag Name="keywords" Content="Prado" />
  30   * </com:THead>
  31   * </code>
  32   *
  33   * Note, {@link TPage} has a property {@link TPage::getHead Head} that refers to
  34   * the THead control currently on the page. A page can have at most once THead
  35   * control. Although not required, it is recommended to place a THead on your page.
  36   * Without a THead on the page, stylesheets and javascripts in the current page
  37   * theme will not be rendered.
  38   *
  39   * @author Marcus Nyeholt <tanus@users.sourceforge.net> and Qiang Xue <qiang.xue@gmail.com>
  40   * @version $Id: THead.php 1491 2006-11-05 00:50:01Z xue $
  41   * @package System.Web.UI
  42   * @since 3.0
  43   */
  44  class THead extends TControl
  45  {
  46      /**
  47       * @var TList list of meta name tags to be loaded by {@link THead}
  48       */
  49      private $_metaTags=null;
  50  
  51      /**
  52       * Registers the head control with the current page.
  53       * This method is invoked when the control enters 'Init' stage.
  54       * The method raises 'Init' event.
  55       * If you override this method, be sure to call the parent implementation
  56       * so that the event handlers can be invoked.
  57       * @param TEventParameter event parameter to be passed to the event handlers
  58       */
  59  	public function onInit($param)
  60      {
  61          parent::onInit($param);
  62          $this->getPage()->setHead($this);
  63      }
  64  
  65      /**
  66       * Processes an object that is created during parsing template.
  67       * This method adds TMetaTag components into the {@link getMetaTags MetaTags}
  68       * collection of the head control.
  69       * @param string|TComponent text string or component parsed and instantiated in template
  70       * @see createdOnTemplate
  71       */
  72  	public function addParsedObject($object)
  73      {
  74          if($object instanceof TMetaTag)
  75              $this->getMetaTags()->add($object);
  76          else
  77              parent::addParsedObject($object);
  78      }
  79  
  80      /**
  81       * @return string the page title.
  82       */
  83  	public function getTitle()
  84      {
  85          return $this->getViewState('Title','');
  86      }
  87  
  88      /**
  89       * Sets the page title.
  90       * This title will be rendered only if the {@link TPage::getTitle Title} property
  91       * of the page is empty.
  92       * @param string the page title.
  93       */
  94  	public function setTitle($value)
  95      {
  96          $this->setViewState('Title',$value,'');
  97      }
  98  
  99      /**
 100       * @return string base URL of the page. This URL is rendered as the 'href' attribute of <base> tag. Defaults to ''.
 101       */
 102  	public function getBaseUrl()
 103      {
 104          return $this->getViewState('BaseUrl','');
 105      }
 106  
 107      /**
 108       * @param string base URL of the page. This URL is rendered as the 'href' attribute of <base> tag.
 109       */
 110  	public function setBaseUrl($url)
 111      {
 112          $this->setViewState('BaseUrl',$url,'');
 113      }
 114  
 115      /**
 116       * @return string the URL for the shortcut icon of the page. Defaults to ''.
 117       */
 118  	public function getShortcutIcon()
 119      {
 120          return $this->getViewState('ShortcutIcon','');
 121      }
 122  
 123      /**
 124       * @param string the URL for the shortcut icon of the page.
 125       */
 126  	public function setShortcutIcon($url)
 127      {
 128          $this->setViewState('ShortcutIcon',$url,'');
 129      }
 130  
 131      /**
 132       * @return TMetaTagCollection meta tag collection
 133       */
 134  	public function getMetaTags()
 135      {
 136          if(($metaTags=$this->getViewState('MetaTags',null))===null)
 137          {
 138              $metaTags=new TMetaTagCollection;
 139              $this->setViewState('MetaTags',$metaTags,null);
 140          }
 141          return $metaTags;
 142      }
 143  
 144      /**
 145       * Renders the head control.
 146       * @param THtmlWriter the writer for rendering purpose.
 147       */
 148  	public function render($writer)
 149      {
 150          $page=$this->getPage();
 151          $title=$this->getTitle();
 152          $writer->write("<head>\n<title>".THttpUtility::htmlEncode($title)."</title>\n");
 153          if(($baseUrl=$this->getBaseUrl())!=='')
 154              $writer->write('<base href="'.$baseUrl."\" />\n");
 155          if(($icon=$this->getShortcutIcon())!=='')
 156              $writer->write('<link rel="shortcut icon" href="'.$icon."\" />\n");
 157  
 158          if(($metaTags=$this->getMetaTags())!==null)
 159          {
 160              foreach($metaTags as $metaTag)
 161              {
 162                  $metaTag->render($writer);
 163                  $writer->writeLine();
 164              }
 165          }
 166          $cs=$page->getClientScript();
 167          $cs->renderStyleSheetFiles($writer);
 168          $cs->renderStyleSheets($writer);
 169          if($page->getClientSupportsJavaScript())
 170          {
 171              $cs->renderHeadScriptFiles($writer);
 172              $cs->renderHeadScripts($writer);
 173          }
 174          parent::render($writer);
 175          $writer->write("</head>\n");
 176      }
 177  }
 178  
 179  /**
 180   * TMetaTag class.
 181   *
 182   * TMetaTag represents a meta tag appearing in a page head section.
 183   * You can set its {@link setID ID}, {@link setHttpEquiv HttpEquiv},
 184   * {@link setName Name}, {@link setContent Content}, {@link setScheme Scheme}
 185   * properties, which correspond to id, http-equiv, name, content, and scheme
 186   * attributes for a meta tag, respectively.
 187   *
 188   * @author Qiang Xue <qiang.xue@gmail.com>
 189   * @version $Id: THead.php 1491 2006-11-05 00:50:01Z xue $
 190   * @package System.Web.UI.WebControls
 191   * @since 3.0
 192   */
 193  class TMetaTag extends TComponent
 194  {
 195      /**
 196       * @var string id of the meta tag
 197       */
 198      private $_id='';
 199      /**
 200       * @var string http-equiv attribute of the meta tag
 201       */
 202      private $_httpEquiv='';
 203      /**
 204       * @var string name attribute of the meta tag
 205       */
 206      private $_name='';
 207      /**
 208       * @var string content attribute of the meta tag
 209       */
 210      private $_content='';
 211      /**
 212       * @var string scheme attribute of the meta tag
 213       */
 214      private $_scheme='';
 215  
 216      /**
 217       * @return string id of the meta tag
 218       */
 219  	public function getID()
 220      {
 221          return $this->_id;
 222      }
 223  
 224      /**
 225       * @param string id of the meta tag
 226       */
 227  	public function setID($value)
 228      {
 229          $this->_id=$value;
 230      }
 231  
 232      /**
 233       * @return string http-equiv attribute of the meta tag
 234       */
 235  	public function getHttpEquiv()
 236      {
 237          return $this->_httpEquiv;
 238      }
 239  
 240      /**
 241       * @param string http-equiv attribute of the meta tag
 242       */
 243  	public function setHttpEquiv($value)
 244      {
 245          $this->_httpEquiv=$value;
 246      }
 247  
 248      /**
 249       * @return string name attribute of the meta tag
 250       */
 251  	public function getName()
 252      {
 253          return $this->_name;
 254      }
 255  
 256      /**
 257       * @param string name attribute of the meta tag
 258       */
 259  	public function setName($value)
 260      {
 261          $this->_name=$value;
 262      }
 263  
 264      /**
 265       * @return string content attribute of the meta tag
 266       */
 267  	public function getContent()
 268      {
 269          return $this->_content;
 270      }
 271  
 272      /**
 273       * @param string content attribute of the meta tag
 274       */
 275  	public function setContent($value)
 276      {
 277          $this->_content=$value;
 278      }
 279  
 280      /**
 281       * @return string scheme attribute of the meta tag
 282       */
 283  	public function getScheme()
 284      {
 285          return $this->_scheme;
 286      }
 287  
 288      /**
 289       * @param string scheme attribute of the meta tag
 290       */
 291  	public function setScheme($value)
 292      {
 293          $this->_scheme=$value;
 294      }
 295  
 296      /**
 297       * Renders the meta tag.
 298       * @param THtmlWriter writer for the rendering purpose
 299       */
 300  	public function render($writer)
 301      {
 302          if($this->_id!=='')
 303              $writer->addAttribute('id',$this->_id);
 304          if($this->_name!=='')
 305              $writer->addAttribute('name',$this->_name);
 306          if($this->_httpEquiv!=='')
 307              $writer->addAttribute('http-equiv',$this->_httpEquiv);
 308          if($this->_scheme!=='')
 309              $writer->addAttribute('scheme',$this->_scheme);
 310          $writer->addAttribute('content',$this->_content);
 311          $writer->renderBeginTag('meta');
 312          $writer->renderEndTag();
 313      }
 314  }
 315  
 316  
 317  /**
 318   * TMetaTagCollection class
 319   *
 320   * TMetaTagCollection represents a collection of meta tags
 321   * contained in a {@link THead} control.
 322   *
 323   * @author Qiang Xue <qiang.xue@gmail.com>
 324   * @version $Id: THead.php 1491 2006-11-05 00:50:01Z xue $
 325   * @package System.Web.UI.WebControls
 326   * @since 3.0
 327   */
 328  class TMetaTagCollection extends TList
 329  {
 330      /**
 331       * Inserts an item at the specified position.
 332       * This overrides the parent implementation by performing type
 333       * check on the item being added.
 334       * @param integer the speicified position.
 335       * @param mixed new item
 336       * @throws TInvalidDataTypeException if the item to be inserted is not a {@link TMetaTag}
 337       */
 338  	public function insertAt($index,$item)
 339      {
 340          if($item instanceof TMetaTag)
 341              parent::insertAt($index,$item);
 342          else
 343              throw new TInvalidDataTypeException('metatagcollection_metatag_invalid');
 344      }
 345  
 346      /**
 347       * Finds the lowest cardinal index of the meta tag whose id is the one being looked for.
 348       * @param string the ID of the meta tag to be looked for
 349       * @return integer the index of the meta tag found, -1 if not found.
 350       */
 351  	public function findIndexByID($id)
 352      {
 353          $index=0;
 354          foreach($this as $item)
 355          {
 356              if($item->getID()===$id)
 357                  return $index;
 358              $index++;
 359          }
 360          return -1;
 361      }
 362  
 363      /**
 364       * Finds the item whose value is the one being looked for.
 365       * @param string the id of the meta tag to be looked for
 366       * @return TMetaTag the meta tag found, null if not found.
 367       */
 368  	public function findMetaTagByID($id)
 369      {
 370          if(($index=$this->findIndexByID($id))>=0)
 371              return $this->itemAt($index);
 372          else
 373              return null;
 374      }
 375  }
 376  
 377  ?>


Généré le : Sun Feb 25 21:07:04 2007 par Balluche grâce à PHPXref 0.7