• Main Page
  • Related Pages
  • Modules
  • Classes
  • Files
  • File List
  • File Members

handlers/views_handler_field_machine_name.inc

00001 <?php
00002 
00011 class views_handler_field_machine_name extends views_handler_field {
00015   var $value_options;
00016 
00017   function get_value_options() {
00018     if (isset($this->value_options)) {
00019       return;
00020     }
00021 
00022     if (isset($this->definition['options callback']) && is_callable($this->definition['options callback'])) {
00023       if (isset($this->definition['options arguments']) && is_array($this->definition['options arguments'])) {
00024         $this->value_options = call_user_func_array($this->definition['options callback'], $this->definition['options arguments']);
00025       }
00026       else {
00027         $this->value_options = call_user_func($this->definition['options callback']);
00028       }
00029     }
00030     else {
00031       $this->value_options = array();
00032     }
00033   }
00034 
00035   function option_definition() {
00036     $options = parent::option_definition();
00037     $options['machine_name'] = array('default' => FALSE);
00038 
00039     return $options;
00040   }
00041 
00042   function options_form(&$form, &$form_state) {
00043     parent::options_form($form, $form_state);
00044 
00045     $form['machine_name'] = array(
00046       '#title' => t('Output machine name'),
00047       '#description' => t('Display field as machine name.'),
00048       '#type' => 'checkbox',
00049       '#default_value' => !empty($this->options['machine_name']),
00050     );
00051   }
00052 
00053   function pre_render(&$values) {
00054     $this->get_value_options();
00055   }
00056 
00057   function render($values) {
00058     $value = $values->{$this->field_alias};
00059     if (!empty($this->options['machine_name']) || !isset($this->value_options[$value])) {
00060       $result = check_plain($value);
00061     }
00062     else {
00063       $result = $this->value_options[$value];
00064     }
00065 
00066     return $result;
00067   }
00068 }

Generated on Sun Feb 26 2012 12:52:51 for Views by  doxygen 1.7.1