[ Index ]
 

Code source de Serendipity 1.2

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/plugins/serendipity_event_templatechooser/ -> serendipity_event_templatechooser.php (source)

   1  <?php # $Id: serendipity_event_templatechooser.php 1612 2007-02-08 12:08:43Z garvinhicking $
   2  
   3  
   4  if (IN_serendipity !== true) {
   5      die ("Don't hack!");
   6  }
   7  
   8  // Probe for a language include with constants. Still include defines later on, if some constants were missing
   9  $probelang = dirname(__FILE__) . '/' . $serendipity['charset'] . 'lang_' . $serendipity['lang'] . '.inc.php';
  10  if (file_exists($probelang)) {
  11      include $probelang;
  12  }
  13  
  14  include dirname(__FILE__) . '/lang_en.inc.php';
  15  
  16  
  17  class serendipity_event_templatechooser extends serendipity_event
  18  {
  19      var $title = PLUGIN_EVENT_TEMPLATECHOOSER_NAME;
  20  
  21      function introspect(&$propbag)
  22      {
  23          global $serendipity;
  24  
  25          $propbag->add('name',        PLUGIN_EVENT_TEMPLATECHOOSER_NAME);
  26          $propbag->add('description', PLUGIN_EVENT_TEMPLATECHOOSER_DESC);
  27          $propbag->add('stackable',   false);
  28          $propbag->add('author',      'Evan Nemerson');
  29          $propbag->add('version',     '1.4');
  30          $propbag->add('requirements',  array(
  31              'serendipity' => '0.8',
  32              'smarty'      => '2.6.7',
  33              'php'         => '4.1.0'
  34          ));
  35          $propbag->add('groups', array('BACKEND_TEMPLATES'));
  36          $propbag->add('event_hooks', array('frontend_configure' => true));
  37  
  38          // Register (multiple) dependencies. KEY is the name of the depending plugin. VALUE is a mode of either 'remove' or 'keep'.
  39          // If the mode 'remove' is set, removing the plugin results in a removal of the depending plugin. 'Keep' meens to
  40          // not touch the depending plugin.
  41          $this->dependencies = array('serendipity_plugin_templatedropdown' => 'remove');
  42      }
  43  
  44      function generate_content(&$title) {
  45          $title = $this->title;
  46      }
  47  
  48      function event_hook($event, &$bag, &$eventData) {
  49          global $serendipity;
  50  
  51          $hooks = &$bag->get('event_hooks');
  52  
  53          if (isset($hooks[$event])) {
  54              switch($event) {
  55                case 'frontend_configure':
  56  
  57                  if (isset($serendipity['COOKIE']['user_template']) && !isset($_REQUEST['user_template'])) {
  58                      $_REQUEST['user_template'] = $serendipity['COOKIE']['user_template'];
  59                  }
  60  
  61                  if (isset($_REQUEST['user_template']) && (in_array($_REQUEST['user_template'], serendipity_fetchTemplates())) ) {
  62                      $_SESSION['serendipityUseTemplate'] = $_REQUEST['user_template'];
  63                      serendipity_setCookie('user_template', $_REQUEST['user_template'], false);
  64                  }
  65  
  66                  if (isset($_SESSION['serendipityUseTemplate']) ) {
  67                      $templateInfo = serendipity_fetchTemplateInfo($_SESSION['serendipityUseTemplate']);
  68                      $eventData['template'] = $_SESSION['serendipityUseTemplate'];
  69                      $eventData['template_engine'] = isset($templateInfo['engine']) ? $templateInfo['engine'] : $serendipity['defaultTemplate'];
  70                      $serendipity['smarty_vars']['head_link_stylesheet'] = $serendipity['baseURL'] . 'serendipity.css.php?switch=' . $_REQUEST['user_template'];
  71                  }
  72  
  73                  return true;
  74                  break;
  75  
  76                default:
  77                  return false;
  78              }
  79  
  80          } else {
  81              return false;
  82          }
  83      }
  84  }
  85  
  86  /* vim: set sts=4 ts=4 expandtab : */


Généré le : Sat Nov 24 09:00:37 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics