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 }