Zikula_Template_Plugins
[ class tree: Zikula_Template_Plugins ] [ index: Zikula_Template_Plugins ] [ all elements ]

Source for file function.html_select_themes.php

Documentation is available at function.html_select_themes.php

  1. <?php
  2. /**
  3.  * Zikula Application Framework
  4.  *
  5.  * @copyright (c) 2004, Zikula Development Team
  6.  * @link http://www.zikula.org
  7.  * @version $Id: outputfilter.pagevars.php 19321 2006-06-29 13:15:10Z markwest $
  8.  * @license GNU/GPL - http://www.gnu.org/copyleft/gpl.html
  9.  * @package Zikula_Template_Plugins
  10.  * @subpackage Functions
  11.  */
  12.  
  13. /**
  14.  * Smarty function to display a drop down list of themes
  15.  *
  16.  * Available parameters:
  17.  *   - name:     Name for the control (optional) if not present then only the option tags are output
  18.  *   - id:       ID for the control
  19.  *   - selected: Selected value
  20.  *   - filter:   Filter themes use (possible values: PNTHEME_FILTER_ALL (default) PNTHEME_FILTER_USER, PNTHEME_FILTER_SYSTEM, PNTHEME_FILTER_ADMIN
  21.  *   - state:    Filter themes by state (possible values: PNTHEME_STATE_ALL (default), PNTHEME_STATE_ACTIVE, PNTHEME_STATE_INACTIVE
  22.  *   - type:     Filter themes by type (possible values: PNTHEME_TYPE_ALL (default), PNTHEME_TYPE_LEGACY, PNTHEME_TYPE_XANTHIA2, PNTHEME_TYPE_XANTHIA3, PNTHEME_TYPE_AUTOTHEME
  23.  *   - assign:   If set, the results are assigned to the corresponding variable instead of printed out
  24.  *
  25.  * Examples
  26.  *
  27.  *     <!--[html_select_themes name=mytheme selected=mythemechoice]-->
  28.  *
  29.  *     <select name="mytheme">
  30.  *         <option value=""><!--[pnml name=_DEFAULT]--></option>
  31.  *         <!--[html_select_themes selected=$mythemechoice]-->
  32.  *     </select>
  33.  *
  34.  * @author       Mark West
  35.  * @since        26 October 2005
  36.  * @param        array       $params      All attributes passed to this function from the template
  37.  * @param        object      &$smarty     Reference to the Smarty object
  38.  * @return       string      the value of the last status message posted, or void if no status message exists
  39.  */
  40. function smarty_function_html_select_themes($params&$smarty)
  41. {
  42.     extract($params);
  43.  
  44.     unset($params['name']);
  45.     unset($params['id']);
  46.     unset($params['selected']);
  47.     unset($params['filter']);
  48.     unset($params['state']);
  49.     unset($params['type']);
  50.  
  51.     if (!isset($filter|| !defined($filter)) {
  52.         $filter PNTHEME_FILTER_ALL;
  53.     else {
  54.         $filter constant($filter);
  55.     }
  56.     if (!isset($state|| !defined($state)) {
  57.         $state PNTHEME_STATE_ALL;
  58.     else {
  59.         $state constant($state);
  60.     }
  61.     if (!isset($type|| !defined($type)) {
  62.         $type PNTHEME_TYPE_ALL;
  63.     else {
  64.         $type constant($type);
  65.     }
  66.     if (!isset($name)) {
  67.         $name null;
  68.     }
  69.     if (!isset($selected)) {
  70.         $selected null;
  71.     }
  72.  
  73.     $themelist array();
  74.     $themes ThemeUtil::getAllThemes($filter$state$type);
  75.     if (!empty($themes)) {
  76.         foreach ($themes as $theme{
  77.             $themelist[$theme['name']] $theme['displayname'];
  78.         }
  79.     }
  80.     natcasesort($themelist);
  81.  
  82.     require_once $smarty->_get_plugin_filepath('function','html_options');
  83.     $output smarty_function_html_options(array('options'  => $themelist,
  84.                                                  'selected' => $selected,
  85.                                                  'name'     => $name,
  86.                                                  'id'       => isset($id$id null),
  87.                                                  $smarty);
  88.  
  89.     if (isset($assign)) {
  90.         $smarty->assign($assign$output);
  91.     else {
  92.         return $output;
  93.     }
  94. }

Documentation generated on Fri, 18 Jul 2008 21:45:24 +0200 by phpDocumentor 1.4.1