[ Index ]
 

Code source de Dotclear 2.0-beta6

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

title

Body

[fermer]

/plugins/widgets/ -> _public.php (source)

   1  <?php
   2  # ***** BEGIN LICENSE BLOCK *****
   3  # This file is part of DotClear.
   4  # Copyright (c) 2005 Olivier Meunier and contributors. All rights
   5  # reserved.
   6  #
   7  # DotClear is free software; you can redistribute it and/or modify
   8  # it under the terms of the GNU General Public License as published by
   9  # the Free Software Foundation; either version 2 of the License, or
  10  # (at your option) any later version.
  11  # 
  12  # DotClear is distributed in the hope that it will be useful,
  13  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15  # GNU General Public License for more details.
  16  # 
  17  # You should have received a copy of the GNU General Public License
  18  # along with DotClear; if not, write to the Free Software
  19  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  20  #
  21  # ***** END LICENSE BLOCK *****
  22  
  23  include dirname(__FILE__).'/_default_widgets.php';
  24  require_once dirname(__FILE__).'/_widgets_functions.php';
  25  
  26  $core->tpl->addValue('Widgets',array('publicWidgets','tplWidgets'));
  27  
  28  class publicWidgets
  29  {
  30  	public static function tplWidgets($attr)
  31      {
  32          $type = isset($attr['type']) ? $attr['type'] : 'nav';
  33          
  34          return
  35          '<?php '.
  36          "publicWidgets::widgetsHandler('".addslashes($type)."'); ".
  37          ' ?>';
  38      }
  39      
  40  	public static function widgetsHandler($type)
  41      {
  42          $wtype = 'widgets_'.$type;
  43          $widgets = $GLOBALS['core']->blog->settings->{$wtype};
  44          
  45          if (!$widgets) { // If widgets value is empty, get defaults
  46              $widgets = self::defaultWidgets($type);
  47          } else { // Otherwise, load widgets
  48              $widgets = dcWidgets::load($widgets);
  49          }
  50          
  51          if ($widgets->isEmpty()) { // Widgets are empty, don't show anything
  52              return;
  53          }
  54          
  55          foreach ($widgets->elements() as $k => $w) {
  56              echo $w->call($k);
  57          }
  58      }
  59      
  60  	private static function defaultWidgets($type)
  61      {
  62          $widgets = new dcWidgets();
  63          $w = new dcWidgets();
  64          
  65          if (isset($GLOBALS['__default_widgets'][$type])) {
  66              $w = $GLOBALS['__default_widgets'][$type];
  67          }
  68          
  69          return $w;
  70      }
  71  }
  72  ?>


Généré le : Fri Feb 23 22:16:06 2007 par Balluche grâce à PHPXref 0.7