| [ Index ] |
PHP Cross Reference of Drupal 6 (gatewave) |
[Summary view] [Print] [Text view]
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
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Thu Mar 24 11:18:33 2011 | Cross-referenced by PHPXref 0.7 |