[ Index ]

PHP Cross Reference of Drupal 6 (yi-drupal)

title

Body

[close]

/sites/all/modules/ctools/plugins/access/ -> site_language.inc (source)

   1  <?php
   2  // $Id: site_language.inc,v 1.6.2.3 2010/07/14 01:30:19 merlinofchaos Exp $
   3  
   4  /**
   5   * @file
   6   * Plugin to provide access control based upon node type.
   7   */
   8  
   9  /**
  10   * Plugins are described by creating a $plugin array which will be used
  11   * by the system that includes this file.
  12   */
  13  if (module_exists('locale')) {
  14    $plugin = array(
  15      'title' => t("User: language"),
  16      'description' => t('Control access by the language the user or site currently uses.'),
  17      'callback' => 'ctools_site_language_ctools_access_check',
  18      'default' => array('language' => array()),
  19      'settings form' => 'ctools_site_language_ctools_access_settings',
  20      'settings form submit' => 'ctools_site_language_ctools_access_settings_submit',
  21      'summary' => 'ctools_site_language_ctools_access_summary',
  22    );
  23  }
  24  
  25  /**
  26   * Settings form for the 'by site_language' access plugin
  27   */
  28  function ctools_site_language_ctools_access_settings(&$form, &$form_state, $conf) {
  29    $options = array(
  30      'default' => t('Default site language'),
  31    );
  32    $options = array_merge($options, locale_language_list());
  33    $form['settings']['language'] = array(
  34      '#title' => t('Language'),
  35      '#type' => 'checkboxes',
  36      '#options' => $options,
  37      '#description' => t('Pass only if the current site language is one of the selected languages.'),
  38      '#default_value' => $conf['language'],
  39    );
  40  }
  41  
  42  /**
  43   * Check for access.
  44   */
  45  function ctools_site_language_ctools_access_check($conf, $context) {
  46    global $language;
  47  
  48    // Specialcase: If 'default' is checked, return TRUE if the default site language
  49    // matches the node language.
  50    if (!empty($conf['language']['default'])) {
  51      if ($language->language == language_default('language')) {
  52        return TRUE;
  53      }
  54    }
  55  
  56    if (array_filter($conf['language']) && empty($conf['language'][$language->language])) {
  57      return FALSE;
  58    }
  59  
  60    return TRUE;
  61  }
  62  
  63  /**
  64   * Provide a summary description based upon the checked site_languages.
  65   */
  66  function ctools_site_language_ctools_access_summary($conf, $context) {
  67    $languages = array(
  68      'default' => t('Default site language'),
  69    );
  70    $languages = array_merge($languages, locale_language_list());
  71  
  72    if (!isset($conf['language'])) {
  73      $conf['language'] = array();
  74    }
  75  
  76    $names = array();
  77    foreach (array_filter($conf['language']) as $language) {
  78      $names[] = $languages[$language];
  79    }
  80  
  81    if (empty($names)) {
  82      return t('Site language is any language');
  83    }
  84  
  85    return format_plural(count($names), 'Site language is "@languages"', 'Site language is one of "@languages"', array('@languages' => implode(', ', $names)));
  86  }
  87  


Generated: Mon Jul 9 18:01:44 2012 Cross-referenced by PHPXref 0.7