views_handler_filter_term_node_tid Class Reference

Inheritance diagram for views_handler_filter_term_node_tid:

views_handler_filter_many_to_one views_handler_filter_in_operator views_handler_filter views_handler views_object views_handler_filter_term_node_tid_depth List of all members.

Detailed Description

Filter by term id.

Definition at line 7 of file views_handler_filter_term_node_tid.inc.

Public Member Functions

 has_extra_options ()
 If a handler has 'extra options' it will get a little settings widget and another form called extra_options.
 get_value_options ()
 Child classes should be used to override this function and set the 'value options', unless 'options callback' is defined as a valid function or static public method to generate these values.
 option_definition ()
 Information about options for all kinds of purposes will be held here.
 extra_options_form (&$form, &$form_state)
 Provide a form for setting options.
 value_form (&$form, &$form_state)
 Provide a form for setting options.
 value_validate (&$form, &$form_state)
 accept_exposed_input ($input)
 Check to see if input from the exposed filters should change the behavior of this filter.
 exposed_validate (&$form, &$form_state)
 Validate the exposed filter form.
 validate_term_strings (&$form, $values)
 Validate the user string.
 value_submit ($form, &$form_state)
 Perform any necessary changes to the form values prior to storage.
 expose_form_right (&$form, &$form_state)
 Handle the 'right' side fo the exposed options form.
 admin_summary ()
 Display the filter on the administrative summary.
 init (&$view, &$options)
 init (&$view, $options)
 Provide some extra help to get the operator/value easier to use.
 operators ()
 This kind of construct makes it relatively easy for a child class to add or remove functionality by overriding this function and adding/removing items from this array.
 ensure_my_table ()
 Override ensure_my_table so we can control how this joins in.
 op_helper ()
 construct ()
 Views handlers use a special construct function so that we can more easily construct them with variable arguments.
 expose_options ()
 Provide default options for exposed filters.
 operator_options ($which= 'title')
 Build strings from the operators() for 'select' options.
 operator_options ()
 Provide a list of options for the default operator form.
 operator_values ($values=1)
 reduce_value_options ($input=NULL)
 When using exposed filters, we may be required to reduce the set.
 query ()
 Add this filter to the query.
 op_simple ()
 op_empty ()
 can_expose ()
 Determine if a filter can be exposed.
 options_form (&$form, &$form_state)
 Provide the basic form which calls through to subforms.
 options_validate (&$form, &$form_state)
 Simple validate handler.
 options_validate ($form, &$form_state)
 Validate the options form.
 options_submit (&$form, &$form_state)
 Simple submit handler.
 options_submit ($form, &$form_state)
 Perform any necessary changes to the form values prior to storage.
 show_operator_form (&$form, &$form_state)
 Shortcut to display the operator form.
 operator_form (&$form, &$form_state)
 Provide a form for setting the operator.
 operator_validate ($form, &$form_state)
 Validate the operator form.
 operator_submit ($form, &$form_state)
 Perform any necessary changes to the form values prior to storage.
 show_value_form (&$form, &$form_state)
 Shortcut to display the value form.
 value_validate ($form, &$form_state)
 Validate the options form.
 show_expose_button (&$form, &$form_state)
 Shortcut to display the expose/hide button.
 show_expose_form (&$form, &$form_state)
 Shortcut to display the exposed options form.
 expose_form (&$form, &$form_state)
 Overridable form for exposed filter options.
 expose_form_left (&$form, &$form_state)
 Handle the 'left' side fo the exposed options form.
 expose_validate ($form, &$form_state)
 Validate the options form.
 expose_submit ($form, &$form_state)
 Perform any necessary changes to the form exposes prior to storage.
 exposed_form (&$form, &$form_state)
 Render our chunk of the exposed filter form when selecting.
 exposed_translate (&$form, $type)
 Make some translations to a form item to make it more suitable to exposing.
 exposed_info ()
 Tell the renderer about our exposed form.
 store_exposed_input ($input, $status)
 If set to remember exposed input in the session, store it there.
 ui_name ($short=FALSE)
 Return a string representing this handler's name in the UI.
 extra_options (&$option)
 Provide defaults for the handler.
 extra_options_validate ($form, &$form_state)
 Validate the options form.
 extra_options_submit ($form, &$form_state)
 Perform any necessary changes to the form values prior to storage.
 exposed_submit (&$form, &$form_state)
 Submit the exposed filter form.
 access ()
 Check whether current user has access to this handler.
 pre_query ()
 Run before the view is built.
 set_relationship ()
 Called just prior to query(), this lets a handler set up any relationship it needs.
 needs_style_plugin ()
 Determine if the argument needs a style plugin.
 is_exposed ()
 Determine if this item is 'exposed', meaning it provides form elements to let users modify the view.
 get_join ()
 Get the join object that should be used for this handler.
 validate ()
 Validates the handler against the complete View.
 broken ()
 Determine if the handler is considered 'broken', meaning it's a a placeholder used when a handler can't be found.
 options ()
 Set default options on this object.
 set_default_options ()
 Set default options.
 _set_option_defaults (&$storage, $options, $level=0)
 unpack_options (&$storage, $options, $definition=NULL)
 Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away.
 set_definition ($definition)
 Let the handler know what its full definition is.
 destroy ()

Public Attributes

 $value_form_type = 'select'
 $options = array()
 Except for displays, options for the object will be held here.


Member Function Documentation

views_handler_filter_term_node_tid::accept_exposed_input ( input  ) 

Check to see if input from the exposed filters should change the behavior of this filter.

Reimplemented from views_handler_filter_in_operator.

Definition at line 191 of file views_handler_filter_term_node_tid.inc.

References views_object::options().

00191                                         {
00192     if (empty($this->options['exposed'])) {
00193       return TRUE;
00194     }
00195 
00196     // If it's optional and there's no value don't bother filtering.
00197     if ($this->options['expose']['optional'] && empty($this->validated_exposed_input)) {
00198       return FALSE;
00199     }
00200 
00201     $rc = parent::accept_exposed_input($input);
00202     if ($rc) {
00203       // If we have previously validated input, override.
00204       if (isset($this->validated_exposed_input)) {
00205         $this->value = $this->validated_exposed_input;
00206       }
00207     }
00208 
00209     return $rc;
00210   }

views_handler::access (  )  [inherited]

Check whether current user has access to this handler.

Returns:
boolean

Reimplemented in views_handler_field_node_revision_link_delete, views_handler_field_node_revision_link_revert, views_handler_field_user_link, views_handler_field_user_link_delete, and views_handler_field_user_link_edit.

Definition at line 357 of file handlers.inc.

Referenced by views_handler_argument::default_argument_form(), views_handler_sort_random::options_form(), views_handler_argument::options_form(), views_handler_field_user_language::render_link(), and views_handler_field_user::render_link().

00357                     {
00358     if (isset($this->definition['access callback']) && function_exists($this->definition['access callback'])) {
00359       if (isset($this->definition['access arguments']) && is_array($this->definition['access arguments'])) {
00360         return call_user_func_array($this->definition['access callback'], $this->definition['access arguments']);
00361       }
00362       return $this->definition['access callback']();
00363     }
00364 
00365     return TRUE;
00366   }

views_handler_filter_term_node_tid::admin_summary (  ) 

Display the filter on the administrative summary.

Reimplemented from views_handler_filter_in_operator.

Definition at line 290 of file views_handler_filter_term_node_tid.inc.

00290                            {
00291     // set up $this->value_options for the parent summary
00292     $this->value_options = array();
00293 
00294     if ($this->value) {
00295       $result = db_query("SELECT * FROM {term_data} td WHERE td.tid IN ("  . implode(', ', $this->value) . ")");
00296 
00297       while ($term = db_fetch_object($result)) {
00298         $this->value_options[$term->tid] = $term->name;
00299       }
00300     }
00301     return parent::admin_summary();
00302   }

views_handler::broken (  )  [inherited]

Determine if the handler is considered 'broken', meaning it's a a placeholder used when a handler can't be found.

Reimplemented in views_handler_argument_broken, views_handler_field_broken, views_handler_filter_broken, views_handler_relationship_broken, and views_handler_sort_broken.

Definition at line 497 of file handlers.inc.

00497 { }

views_handler_filter::can_expose (  )  [inherited]

Determine if a filter can be exposed.

Reimplemented from views_handler.

Reimplemented in views_handler_filter_node_access, views_handler_filter_node_tnid, and views_handler_filter_node_tnid_child.

Definition at line 71 of file views_handler_filter.inc.

Referenced by views_handler_filter::options_form().

00071 { return TRUE; }

views_handler_filter_in_operator::construct (  )  [inherited]

Views handlers use a special construct function so that we can more easily construct them with variable arguments.

Reimplemented from views_object.

Definition at line 13 of file views_handler_filter_in_operator.inc.

00013                        {
00014     parent::construct();
00015     $this->value_title = t('Options');
00016     $this->value_options = NULL;
00017   }

views_handler_filter_many_to_one::ensure_my_table (  )  [inherited]

Override ensure_my_table so we can control how this joins in.

The operator actually has influence over joining.

Reimplemented from views_handler.

Definition at line 88 of file views_handler_filter_many_to_one.inc.

References views_handler_filter_many_to_one::operators().

Referenced by views_handler_filter_many_to_one::operators().

00088                              {
00089     // Defer to helper if the operator specifies it.
00090     $info = $this->operators();
00091     if (isset($info[$this->operator]['ensure_my_table']) && $info[$this->operator]['ensure_my_table'] == 'helper') {
00092       return $this->helper->ensure_my_table();
00093     }
00094 
00095     return parent::ensure_my_table();
00096   }

views_handler_filter::expose_form ( &$  form,
&$  form_state 
) [inherited]

Overridable form for exposed filter options.

If overridden, it is best to call the parent or re-implement the stuff here.

Many filters will need to override this in order to provide options that are nicely tailored to the given filter.

Definition at line 260 of file views_handler_filter.inc.

References views_handler_filter::expose_form_left(), and views_handler_filter::expose_form_right().

Referenced by views_handler_filter::show_expose_form().

00260                                              {
00261     $form['expose']['start_left'] = array(
00262       '#value' => '<div class="views-left-50">',
00263     );
00264 
00265     $this->expose_form_left($form, $form_state);
00266 
00267     $form['expose']['end_left'] = array(
00268       '#value' => '</div>',
00269     );
00270 
00271     $form['expose']['start_checkboxes'] = array(
00272       '#value' => '<div class="form-checkboxes views-left-40 clear-block">',
00273     );
00274 
00275     $this->expose_form_right($form, $form_state);
00276 
00277     $form['expose']['end_checkboxes'] = array(
00278       '#value' => '</div>',
00279     );
00280   }

views_handler_filter::expose_form_left ( &$  form,
&$  form_state 
) [inherited]

Handle the 'left' side fo the exposed options form.

Definition at line 285 of file views_handler_filter.inc.

References views_object::options(), and views_process_dependency().

Referenced by views_handler_filter::expose_form().

00285                                                   {
00286     if (!empty($form['operator']['#type'])) {
00287       $form['expose']['use_operator'] = array(
00288         '#type' => 'checkbox',
00289         '#title' => t('Unlock operator'),
00290         '#description' => t('When checked, the operator will be exposed to the user'),
00291         '#default_value' => !empty($this->options['expose']['use_operator']),
00292       );
00293       $form['expose']['operator'] = array(
00294         '#type' => 'textfield',
00295         '#default_value' => $this->options['expose']['operator'],
00296         '#title' => t('Operator identifier'),
00297         '#size' => 40,
00298         '#description' => t('This will appear in the URL after the ? to identify this operator.'),
00299         '#process' => array('views_process_dependency'),
00300         '#dependency' => array(
00301           'edit-options-expose-use-operator' => array(1)
00302         ),
00303       );
00304     }
00305     else {
00306       $form['expose']['operator'] = array(
00307         '#type' => 'value',
00308         '#value' => '',
00309       );
00310     }
00311 
00312     $form['expose']['identifier'] = array(
00313       '#type' => 'textfield',
00314       '#default_value' => $this->options['expose']['identifier'],
00315       '#title' => t('Filter identifier'),
00316       '#size' => 40,
00317       '#description' => t('This will appear in the URL after the ? to identify this filter. Cannot be blank.'),
00318     );
00319     $form['expose']['label'] = array(
00320       '#type' => 'textfield',
00321       '#default_value' => $this->options['expose']['label'],
00322       '#title' => t('Label'),
00323       '#size' => 40,
00324     );
00325   }

views_handler_filter_term_node_tid::expose_form_right ( &$  form,
&$  form_state 
)

Handle the 'right' side fo the exposed options form.

Reimplemented from views_handler_filter_in_operator.

Definition at line 283 of file views_handler_filter_term_node_tid.inc.

References views_object::options().

00283                                                    {
00284     parent::expose_form_right($form, $form_state);
00285     if ($this->options['type'] != 'select') {
00286       unset($form['expose']['reduce']);
00287     }
00288   }

views_handler_filter_in_operator::expose_options (  )  [inherited]

Provide default options for exposed filters.

Reimplemented from views_handler_filter.

Definition at line 40 of file views_handler_filter_in_operator.inc.

References views_object::options().

00040                             {
00041     parent::expose_options();
00042     $this->options['expose']['reduce'] = FALSE;
00043   }

views_handler_filter::expose_submit ( form,
&$  form_state 
) [inherited]

Perform any necessary changes to the form exposes prior to storage.

There is no need for this function to actually store the data.

Definition at line 376 of file views_handler_filter.inc.

Referenced by views_handler_filter::options_submit().

00376 { }

views_handler_filter::expose_validate ( form,
&$  form_state 
) [inherited]

Validate the options form.

Definition at line 356 of file views_handler_filter.inc.

References views_object::options().

Referenced by views_handler_filter::options_validate().

00356                                                 {
00357     if (empty($this->options['expose']['identifier'])) {
00358       if (empty($form_state['values']['options']['expose']['identifier'])) {
00359         form_error($form['expose']['identifier'], t('The identifier is required if the filter is exposed.'));
00360       }
00361     }
00362 
00363     if (!empty($form_state['values']['options']['expose']['identifier']) && $form_state['values']['options']['expose']['identifier'] == 'value') {
00364       form_error($form['expose']['identifier'], t('This identifier is not allowed.'));
00365     }
00366     
00367     if (!$this->view->display_handler->is_identifier_unique($form_state['id'], $form_state['values']['options']['expose']['identifier'])) {
00368       form_error($form['expose']['identifier'], t('This identifier is used by another handler.'));
00369     }
00370   }

views_handler_filter::exposed_form ( &$  form,
&$  form_state 
) [inherited]

Render our chunk of the exposed filter form when selecting.

You can override this if it doesn't do what you expect.

Reimplemented from views_handler.

Reimplemented in views_handler_filter_search.

Definition at line 398 of file views_handler_filter.inc.

References views_handler_filter::exposed_translate(), views_handler_filter::operator_form(), views_object::options(), and views_handler_filter::value_form().

00398                                               {
00399     if (empty($this->options['exposed'])) {
00400       return;
00401     }
00402 
00403     if (!empty($this->options['expose']['use_operator']) && !empty($this->options['expose']['operator'])) {
00404       $operator = $this->options['expose']['operator'];
00405       $this->operator_form($form, $form_state);
00406       $form[$operator] = $form['operator'];
00407 
00408       if (isset($form[$operator]['#title'])) {
00409         unset($form[$operator]['#title']);
00410       }
00411 
00412       $this->exposed_translate($form[$operator], 'operator');
00413 
00414       unset($form['operator']);
00415     }
00416 
00417     if (!empty($this->options['expose']['identifier'])) {
00418       $value = $this->options['expose']['identifier'];
00419       $this->value_form($form, $form_state);
00420       $form[$value] = $form['value'];
00421 
00422       if (isset($form[$value]['#title']) && !empty($form[$value]['#type']) && $form[$value]['#type'] != 'checkbox') {
00423         unset($form[$value]['#title']);
00424       }
00425 
00426       $this->exposed_translate($form[$value], 'value');
00427 
00428       if (!empty($form['#type']) && ($form['#type'] == 'checkboxes' || ($form['#type'] == 'select' && !empty($form['#multiple'])))) {
00429         unset($form[$value]['#default_value']);
00430       }
00431 
00432       if (!empty($form['#type']) && $form['#type'] == 'select' && empty($form['#multiple'])) {
00433         $form[$value]['#default_value'] = 'All';
00434       }
00435 
00436       if ($value != 'value') {
00437         unset($form['value']);
00438       }
00439     }
00440   }

views_handler_filter::exposed_info (  )  [inherited]

Tell the renderer about our exposed form.

This only needs to be overridden for particularly complex forms. And maybe not even then.

Reimplemented from views_handler.

Definition at line 479 of file views_handler_filter.inc.

References views_object::options().

00479                           {
00480     if (empty($this->options['exposed'])) {
00481       return;
00482     }
00483 
00484     return array(
00485       'operator' => $this->options['expose']['operator'],
00486       'value' => $this->options['expose']['identifier'],
00487       'label' => $this->options['expose']['label'],
00488     );
00489   }

views_handler::exposed_submit ( &$  form,
&$  form_state 
) [inherited]

Submit the exposed filter form.

Definition at line 334 of file handlers.inc.

00334 { }

views_handler_filter::exposed_translate ( &$  form,
type 
) [inherited]

Make some translations to a form item to make it more suitable to exposing.

Definition at line 446 of file views_handler_filter.inc.

References views_object::options().

Referenced by views_handler_filter::exposed_form().

00446                                             {
00447     if (!isset($form['#type'])) {
00448       return;
00449     }
00450 
00451     if ($form['#type'] == 'radios') {
00452       $form['#type'] = 'select';
00453     }
00454     // Checkboxes don't work so well in exposed forms due to GET conversions.
00455     if ($form['#type'] == 'checkboxes') {
00456       if (empty($form['#no_convert']) || !empty($this->options['expose']['single'])) {
00457         $form['#type'] = 'select';
00458       }
00459       if (empty($this->options['expose']['single'])) {
00460         $form['#multiple'] = TRUE;
00461       }
00462     }
00463     if (!empty($this->options['expose']['single']) && isset($form['#multiple'])) {
00464       unset($form['#multiple']);
00465       $form['#size'] = NULL;
00466     }
00467 
00468     if ($type == 'value' && !empty($this->options['expose']['optional']) && $form['#type'] == 'select' && empty($form['#multiple'])) {
00469       $any_label = variable_get('views_exposed_filter_any_label', 'old_any') == 'old_any' ? '<Any>' : t('- Any -');
00470       $form['#options'] = array('All' => $any_label) + $form['#options'];
00471       $form['#default_value'] = 'All';
00472     }
00473   }

views_handler_filter_term_node_tid::exposed_validate ( &$  form,
&$  form_state 
)

Validate the exposed filter form.

Reimplemented from views_handler.

Definition at line 212 of file views_handler_filter_term_node_tid.inc.

References views_object::options(), and validate_term_strings().

00212                                                   {
00213     if (empty($this->options['exposed'])) {
00214       return;
00215     }
00216 
00217     $identifier = $this->options['expose']['identifier'];
00218 
00219     // We only validate if they've chosen the text field style.
00220     if ($this->options['type'] != 'textfield') {
00221       if ($form_state['values'][$identifier] != 'All')  {
00222         $this->validated_exposed_input = (array) $form_state['values'][$identifier];
00223       }
00224       return;
00225     }
00226 
00227     if (empty($this->options['expose']['identifier'])) {
00228       return;
00229     }
00230 
00231     $values = drupal_explode_tags($form_state['values'][$identifier]);
00232 
00233     $tids = $this->validate_term_strings($form[$identifier], $values);
00234     if ($tids) {
00235       $this->validated_exposed_input = $tids;
00236     }
00237   }

views_handler::extra_options ( &$  option  )  [inherited]

Provide defaults for the handler.

Definition at line 298 of file handlers.inc.

00298 { }

views_handler_filter_term_node_tid::extra_options_form ( &$  form,
&$  form_state 
)

Provide a form for setting options.

Reimplemented from views_handler.

Reimplemented in views_handler_filter_term_node_tid_depth.

Definition at line 22 of file views_handler_filter_term_node_tid.inc.

References views_object::$options, views_object::options(), and views_process_dependency().

00022                                                     {
00023     $vocabularies = taxonomy_get_vocabularies();
00024     foreach ($vocabularies as $voc) {
00025       $options[$voc->vid] = check_plain($voc->name);
00026     }
00027 
00028     if ($this->options['limit']) {
00029       // We only do this when the form is displayed so this query doesn't run
00030       // unnecessarily just when the object is constructed.
00031       if ($this->options['vid'] == 0) {
00032         $this->options['vid'] = db_result(db_query('SELECT MIN(vid) FROM {vocabulary} v'));
00033       }
00034 
00035       $form['vid'] = array(
00036         '#prefix' => '<div class="views-left-40">',
00037         '#suffix' => '</div>',
00038         '#type' => 'radios',
00039         '#title' => t('Vocabulary'),
00040         '#options' => $options,
00041         '#description' => t('Select which vocabulary to show terms for in the regular options.'),
00042         '#default_value' => $this->options['vid'],
00043       );
00044     }
00045 
00046     $form['markup_start'] = array(
00047       '#value' => '<div class="views-left-40">',
00048     );
00049 
00050     $form['type'] = array(
00051       '#type' => 'radios',
00052       '#title' => t('Selection type'),
00053       '#options' => array('select' => t('Dropdown'), 'textfield' => t('Autocomplete')),
00054       '#default_value' => $this->options['type'],
00055     );
00056 
00057     $form['hierarchy'] = array(
00058       '#type' => 'checkbox',
00059       '#title' => t('Show hierarchy in dropdown'),
00060       '#default_value' => !empty($this->options['hierarchy']),
00061       '#process' => array('views_process_dependency'),
00062       '#dependency' => array('radio:options[type]' => array('select')),
00063     );
00064 
00065     $form['markup_end'] = array(
00066       '#value' => '</div>',
00067     );
00068   }

views_handler::extra_options_submit ( form,
&$  form_state 
) [inherited]

Perform any necessary changes to the form values prior to storage.

There is no need for this function to actually store the data.

Definition at line 314 of file handlers.inc.

00314 { }

views_handler::extra_options_validate ( form,
&$  form_state 
) [inherited]

Validate the options form.

Definition at line 308 of file handlers.inc.

00308 { }

views_handler::get_join (  )  [inherited]

Get the join object that should be used for this handler.

This method isn't used a great deal, but it's very handy for easily getting the join if it is necessary to make some changes to it, such as adding an 'extra'.

Definition at line 464 of file handlers.inc.

References views_handler::query(), and views_get_table_join().

Referenced by views_handler_argument_many_to_one::summary_query().

00464                       {
00465     // get the join from this table that links back to the base table.
00466     // Determine the primary table to seek
00467     if (empty($this->query->relationships[$this->relationship])) {
00468       $base_table = $this->query->base_table;
00469     }
00470     else {
00471       $base_table = $this->query->relationships[$this->relationship]['base'];
00472     }
00473 
00474     $join = views_get_table_join($this->table, $base_table);
00475     if ($join) {
00476       return drupal_clone($join);
00477     }
00478   }

views_handler_filter_term_node_tid::get_value_options (  ) 

Child classes should be used to override this function and set the 'value options', unless 'options callback' is defined as a valid function or static public method to generate these values.

This can use a guard to be used to reduce database hits as much as possible.

Reimplemented from views_handler_filter_in_operator.

Definition at line 10 of file views_handler_filter_term_node_tid.inc.

00010 { /* don't overwrite the value options */ }

views_handler_filter_term_node_tid::has_extra_options (  ) 

If a handler has 'extra options' it will get a little settings widget and another form called extra_options.

Reimplemented from views_handler.

Definition at line 8 of file views_handler_filter_term_node_tid.inc.

00008 { return TRUE; }

views_handler_filter::init ( &$  view,
options 
) [inherited]

Provide some extra help to get the operator/value easier to use.

This likely has to be overridden by filters which are more complex than simple operator/value.

Reimplemented from views_handler.

Definition at line 24 of file views_handler_filter.inc.

References views_object::$options, and views_object::options().

00024                                   {
00025     parent::init($view, $options);
00026 
00027     $this->operator = $this->options['operator'];
00028     $this->value = $this->options['value'];
00029 
00030     // Compatibility: Set use_operator to true if the old way of using
00031     // the operator is set and use_operator is NULL (was never set).
00032     if (!empty($options['exposed']) && !empty($options['expose']['operator']) && !isset($options['expose']['use_operator'])) {
00033       $this->options['expose']['use_operator'] = TRUE;
00034     }
00035 
00036     // If there are relationships in the view, allow empty should be true
00037     // so that we can do IS NULL checks on items. Not all filters respect
00038     // allow empty, but string and numeric do and that covers enough.
00039     if ($this->view->display_handler->get_option('relationships')) {
00040       $this->definition['allow empty'] = TRUE;
00041     }
00042   }

views_handler::is_exposed (  )  [inherited]

Determine if this item is 'exposed', meaning it provides form elements to let users modify the view.

Returns:
TRUE/FALSE

Definition at line 443 of file handlers.inc.

References views_object::options().

00443                         {
00444     return !empty($this->options['exposed']);
00445   }

views_handler::needs_style_plugin (  )  [inherited]

Determine if the argument needs a style plugin.

Returns:
TRUE/FALSE

Reimplemented in views_handler_argument.

Definition at line 435 of file handlers.inc.

00435 { return FALSE; }

views_handler_filter::operator_form ( &$  form,
&$  form_state 
) [inherited]

Provide a form for setting the operator.

This may be overridden by child classes, and it must define $form['operator'];

Reimplemented in views_handler_filter_boolean_operator, views_handler_filter_search, views_handler_filter_node_tnid, and views_handler_filter_node_tnid_child.

Definition at line 131 of file views_handler_filter.inc.

References views_object::$options, views_handler_filter::operator_options(), and views_object::options().

Referenced by views_handler_filter::exposed_form(), and views_handler_filter::show_operator_form().

00131                                                {
00132     $options = $this->operator_options();
00133     if (!empty($options)) {
00134       $form['operator'] = array(
00135         '#type' => count($options) < 10 ? 'radios' : 'select',
00136         '#title' => t('Operator'),
00137         '#default_value' => $this->operator,
00138         '#options' => $options,
00139       );
00140     }
00141   }

views_handler_filter::operator_options (  )  [inherited]

Provide a list of options for the default operator form.

Should be overridden by classes that don't override operator_form

Reimplemented in views_handler_filter_equality, and views_handler_filter_term_node_tid_depth.

Definition at line 147 of file views_handler_filter.inc.

Referenced by views_handler_filter_string::admin_summary(), views_handler_filter_numeric::admin_summary(), and views_handler_filter::operator_form().

00147 { return array(); }

views_handler_filter_in_operator::operator_options ( which = 'title'  )  [inherited]

Build strings from the operators() for 'select' options.

Definition at line 110 of file views_handler_filter_in_operator.inc.

References views_object::$options, and views_handler_filter_in_operator::operators().

00110                                               {
00111     $options = array();
00112     foreach ($this->operators() as $id => $info) {
00113       $options[$id] = $info[$which];
00114     }
00115 
00116     return $options;
00117   }

views_handler_filter::operator_submit ( form,
&$  form_state 
) [inherited]

Perform any necessary changes to the form values prior to storage.

There is no need for this function to actually store the data.

Definition at line 158 of file views_handler_filter.inc.

Referenced by views_handler_filter::options_submit().

00158 { }

views_handler_filter::operator_validate ( form,
&$  form_state 
) [inherited]

Validate the operator form.

Definition at line 152 of file views_handler_filter.inc.

Referenced by views_handler_filter::options_validate().

00152 { }

views_handler_filter_many_to_one::operators (  )  [inherited]

This kind of construct makes it relatively easy for a child class to add or remove functionality by overriding this function and adding/removing items from this array.

Reimplemented from views_handler_filter_in_operator.

Definition at line 27 of file views_handler_filter_many_to_one.inc.

References views_handler_filter_many_to_one::ensure_my_table(), views_handler_filter_in_operator::op_empty(), and views_handler_filter_many_to_one::op_helper().

Referenced by views_handler_filter_many_to_one::ensure_my_table().

00027                        {
00028     $operators = array(
00029       'or' => array(
00030         'title' => t('Is one of'),
00031         'short' => t('or'),
00032         'short_single' => t('='),
00033         'method' => 'op_helper',
00034         'values' => 1,
00035         'ensure_my_table' => 'helper',
00036       ),
00037       'and' => array(
00038         'title' => t('Is all of'),
00039         'short' => t('and'),
00040         'short_single' => t('='),
00041         'method' => 'op_helper',
00042         'values' => 1,
00043         'ensure_my_table' => 'helper',
00044       ),
00045       'not' => array(
00046         'title' => t('Is none of'),
00047         'short' => t('not'),
00048         'short_single' => t('<>'),
00049         'method' => 'op_helper',
00050         'values' => 1,
00051         'ensure_my_table' => 'helper',
00052       ),
00053     );
00054     // if the definition allows for the empty operator, add it.
00055     if (!empty($this->definition['allow empty'])) {
00056       $operators += array(
00057         'empty' => array(
00058           'title' => t('Is empty (NULL)'),
00059           'method' => 'op_empty',
00060           'short' => t('empty'),
00061           'values' => 0,
00062         ),
00063         'not empty' => array(
00064           'title' => t('Is not empty (NULL)'),
00065           'method' => 'op_empty',
00066           'short' => t('not empty'),
00067           'values' => 0,
00068         ),
00069       );
00070     }
00071 
00072     return $operators;
00073   }

views_handler_filter_term_node_tid::option_definition (  ) 

Information about options for all kinds of purposes will be held here.

 'option_name' => array(
  - 'default' => default value,
  - 'translatable' => TRUE/FALSE (wrap in t() on export if true),
  - 'contains' => array of items this contains, with its own defaults, etc.
      If contains is set, the default will be ignored and assumed to
      be array()

  ),
Each option may have any of the following functions:

Reimplemented from views_handler_filter_many_to_one.

Reimplemented in views_handler_filter_term_node_tid_depth.

Definition at line 12 of file views_handler_filter_term_node_tid.inc.

References views_object::$options.

00012                                {
00013     $options = parent::option_definition();
00014 
00015     $options['type'] = array('default' => 'textfield');
00016     $options['limit'] = array('default' => TRUE);
00017     $options['vid'] = array('default' => 0);
00018 
00019     return $options;
00020   }

views_object::options (  )  [inherited]

Set default options on this object.

Called by the constructor in a complex chain to deal with backward compatibility.

Definition at line 46 of file base.inc.

Referenced by accept_exposed_input(), views_handler_filter_numeric::accept_exposed_input(), views_handler_filter_in_operator::accept_exposed_input(), views_handler_filter_date::accept_exposed_input(), views_handler_filter::accept_exposed_input(), views_plugin_access_role::access(), views_plugin_access_perm::access(), views_handler_field_term_node_tid::add_self_tokens(), views_handler_filter_history_user_timestamp::admin_summary(), views_handler_sort::admin_summary(), views_handler_filter_string::admin_summary(), views_handler_filter_numeric::admin_summary(), views_handler_filter_in_operator::admin_summary(), views_handler_filter_boolean_operator::admin_summary(), views_plugin_argument_default_php::argument_form(), views_plugin_argument_default::argument_form(), views_plugin_argument_default_user::argument_form(), views_plugin_style_table::build_sort(), views_plugin_style_table::build_sort_post(), views_plugin_cache_time::cache_expire(), views_handler_filter_string::case_transform(), views_handler_argument_string::case_transform(), views_handler_field::construct(), views_handler_argument::default_action(), views_handler_argument_date::default_argument_form(), views_handler_argument::default_argument_form(), views_handler_argument::default_summary(), views_plugin_display_attachment::displays_exposed(), views_handler_field_term_node_tid::document_self_tokens(), views_handler_filter::expose_form_left(), expose_form_right(), views_handler_filter_in_operator::expose_form_right(), views_handler_filter::expose_form_right(), views_handler_filter_in_operator::expose_options(), views_handler_filter_boolean_operator::expose_options(), views_handler_filter::expose_options(), views_handler_filter::expose_validate(), views_handler_filter_search::exposed_form(), views_handler_filter::exposed_form(), views_handler_filter::exposed_info(), views_handler_filter::exposed_translate(), views_handler_filter_user_name::exposed_validate(), exposed_validate(), views_handler_filter_search::exposed_validate(), views_handler_filter_date::exposed_validate(), views_handler_filter_term_node_tid_depth::extra_options_form(), extra_options_form(), views_plugin_access_role::get_access_callback(), views_plugin_access_perm::get_access_callback(), views_handler_argument_date::get_default_argument(), views_handler_argument::get_default_argument(), views_handler_argument_string::get_formula(), views_plugin_display::get_option(), views_handler_filter_profile_selection::get_value_options(), views_handler_filter_in_operator::get_value_options(), views_handler_argument::has_default_argument(), views_plugin_style::init(), views_plugin_row::init(), views_plugin_display::init(), views_plugin_cache::init(), views_plugin_access::init(), views_handler_field_user_name::init(), views_handler_field_user::init(), views_plugin_row_node_view::init(), views_handler_field_history_user_timestamp::init(), views_handler_field_node_new_comments::init(), views_handler_field_comment::init(), views_handler::init(), views_handler_filter::init(), views_handler_field::init(), views_plugin_display::is_defaulted(), views_handler::is_exposed(), views_plugin_display::is_identifier_unique(), views_handler_argument::is_wildcard(), views_handler_relationship::label(), views_handler_field::label(), views_handler_argument::needs_style_plugin(), views_handler_filter_numeric::op_between(), views_handler_filter_float::op_between(), views_handler_filter_date::op_between(), views_handler_filter_string::op_contains(), views_handler_filter_string::op_empty(), views_handler_filter_numeric::op_empty(), views_handler_filter_in_operator::op_empty(), views_handler_filter_string::op_ends(), views_handler_filter_string::op_equal(), views_handler_filter_string::op_not(), views_handler_filter_string::op_not_ends(), views_handler_filter_string::op_not_starts(), views_handler_filter_numeric::op_simple(), views_handler_filter_in_operator::op_simple(), views_handler_filter_float::op_simple(), views_handler_filter_date::op_simple(), views_handler_filter_string::op_starts(), views_handler_filter_string::op_word(), views_handler_filter_node_tnid::operator_form(), views_handler_filter_search::operator_form(), views_handler_filter::operator_form(), views_plugin_style_table::options_form(), views_plugin_style_summary_unformatted::options_form(), views_plugin_style_summary_jump_menu::options_form(), views_plugin_style_summary::options_form(), views_plugin_style_rss::options_form(), views_plugin_style_list::options_form(), views_plugin_style_jump_menu::options_form(), views_plugin_style_grid::options_form(), views_plugin_style::options_form(), views_plugin_row_fields::options_form(), views_plugin_row::options_form(), views_plugin_display_page::options_form(), views_plugin_display_feed::options_form(), views_plugin_display_block::options_form(), views_plugin_display_attachment::options_form(), views_plugin_display::options_form(), views_plugin_cache_time::options_form(), views_plugin_access_role::options_form(), views_plugin_access_perm::options_form(), views_handler_field_user_name::options_form(), views_handler_field_user_mail::options_form(), views_handler_field_user_link::options_form(), views_handler_field_is_online::options_form(), views_handler_field_upload_fid::options_form(), views_handler_field_upload_description::options_form(), views_handler_relationship_translation::options_form(), views_handler_relationship_node_term_data::options_form(), views_handler_field_term_node_tid::options_form(), views_handler_field_taxonomy::options_form(), views_handler_argument_term_node_tid_depth::options_form(), views_handler_argument_term_node_tid::options_form(), views_handler_field_file::options_form(), views_handler_field_accesslog_path::options_form(), views_plugin_row_search_view::options_form(), views_handler_field_search_score::options_form(), views_handler_field_profile_date::options_form(), views_plugin_row_node_view::options_form(), views_plugin_row_node_rss::options_form(), views_handler_field_node_link::options_form(), views_handler_field_node::options_form(), views_handler_field_history_user_timestamp::options_form(), views_handler_field_locale_link_edit::options_form(), views_handler_field_contact_link::options_form(), views_plugin_row_comment_view::options_form(), views_handler_field_comment_username::options_form(), views_handler_field_comment_node_link::options_form(), views_handler_field_comment_link::options_form(), views_plugin_row_aggregator_rss::options_form(), views_handler_field_aggregator_title_link::options_form(), views_handler_field_aggregator_category::options_form(), views_handler_sort_date::options_form(), views_handler_sort::options_form(), views_handler_relationship::options_form(), views_handler_filter_string::options_form(), views_handler_field_url::options_form(), views_handler_field_prerender_list::options_form(), views_handler_field_numeric::options_form(), views_handler_field_date::options_form(), views_handler_field_counter::options_form(), views_handler_field_boolean::options_form(), views_handler_field_file_size::options_form(), views_handler_field::options_form(), views_handler_argument_string::options_form(), views_handler_argument_numeric::options_form(), views_handler_argument_null::options_form(), views_handler_argument_many_to_one::options_form(), views_handler_argument::options_form(), views_plugin_display::options_submit(), views_handler_filter::options_submit(), views_plugin_display::options_summary(), views_handler_filter_date::options_validate(), views_handler_filter::options_validate(), views_handler_argument_term_node_tid_depth_modifier::pre_query(), views_handler_field_upload_description::pre_render(), views_handler_field_term_node_tid::pre_render(), views_plugin_style_summary::query(), views_plugin_row::query(), views_handler_filter_user_current::query(), views_handler_filter_upload_fid::query(), views_handler_relationship_translation::query(), views_handler_filter_node_tnid_child::query(), views_handler_filter_node_tnid::query(), views_handler_relationship_node_term_data::query(), views_handler_filter_term_node_tid_depth::query(), views_handler_argument_term_node_tid_depth::query(), views_handler_sort_search_score::query(), views_handler_filter_search::query(), views_handler_field_search_score::query(), views_handler_filter_node_status::query(), views_handler_filter_history_user_timestamp::query(), views_handler_sort_ncs_last_updated::query(), views_handler_sort_ncs_last_comment_name::query(), views_handler_sort_comment_thread::query(), views_handler_filter_comment_user_uid::query(), views_handler_sort_random::query(), views_handler_sort_formula::query(), views_handler_sort_date::query(), views_handler_sort::query(), views_handler_relationship::query(), views_handler_filter_boolean_operator_string::query(), views_handler_filter_boolean_operator::query(), views_handler_filter::query(), views_handler_argument_string::query(), views_handler_argument_numeric::query(), views_handler_argument_many_to_one::query(), views_handler_filter_in_operator::reduce_value_options(), views_plugin_style_summary_jump_menu::render(), views_plugin_style_summary::render(), views_plugin_style_rss::render(), views_plugin_style_jump_menu::render(), views_plugin_style::render(), views_plugin_row::render(), views_handler_field_user_mail::render(), views_handler_field_user_link_edit::render(), views_handler_field_user_link_delete::render(), views_handler_field_user_link::render(), views_handler_field_accesslog_path::render(), views_plugin_row_search_view::render(), views_handler_field_profile_date::render(), views_handler_field_node_link::render(), views_handler_field_locale_link_edit::render(), views_plugin_row_comment_rss::render(), views_handler_field_ncs_last_comment_name::render(), views_handler_field_comment_link_reply::render(), views_handler_field_comment_link_delete::render(), views_handler_field_comment_link::render(), views_plugin_row_aggregator_rss::render(), views_handler_field_counter::render(), views_handler_field_file_size::render(), views_handler_field_user_name::render_link(), views_handler_field_user_language::render_link(), views_handler_field_user::render_link(), views_handler_field_upload_description::render_link(), views_handler_field_taxonomy::render_link(), views_handler_field_file::render_link(), views_handler_field_node::render_link(), views_handler_field_comment_username::render_link(), views_handler_field_comment::render_link(), views_handler_field_aggregator_category::render_link(), views_handler_argument_term_node_tid_depth::set_breadcrumb(), views_handler_argument_term_node_tid::set_breadcrumb(), views_object::set_default_options(), views_plugin_display::set_option(), views_plugin_display::set_override(), views_handler::set_relationship(), views_handler_filter::show_expose_button(), views_handler_filter::show_expose_form(), views_handler_filter::store_exposed_input(), views_handler_argument_string::summary_argument(), views_handler_argument_string::summary_query(), views_handler_argument_many_to_one::summary_query(), views_plugin_cache_time::summary_title(), views_plugin_access_role::summary_title(), views_plugin_access_perm::summary_title(), views_handler_argument_string::title(), views_handler_argument_numeric::title(), views_handler_argument_many_to_one::title(), views_handler_argument::uses_breadcrumb(), views_plugin_display_attachment::uses_exposed(), views_plugin_display::validate(), views_handler_argument_null::validate_argument_basic(), views_handler_argument::validate_fail(), views_plugin_argument_validate_php::validate_form(), views_plugin_argument_validate_user::validate_form(), views_plugin_argument_validate_taxonomy_term::validate_form(), views_plugin_argument_validate_node::validate_form(), validate_term_strings(), views_handler_filter_user_name::value_form(), value_form(), views_handler_filter_history_user_timestamp::value_form(), views_handler_filter_string::value_form(), views_handler_filter_numeric::value_form(), views_handler_filter_in_operator::value_form(), views_handler_filter_equality::value_form(), views_handler_filter_date::value_form(), views_handler_filter_boolean_operator::value_form(), views_handler_filter_in_operator::value_submit(), views_handler_filter_user_name::value_validate(), value_validate(), views_handler_filter_boolean_operator::value_validate(), and views_handler_argument::wildcard_title().

00046 { }

views_handler_filter::options_form ( &$  form,
&$  form_state 
) [inherited]

Provide the basic form which calls through to subforms.

If overridden, it is best to call through to the parent, or to at least make sure all of the functions in this form are called.

Reimplemented from views_handler.

Reimplemented in views_handler_filter_broken, and views_handler_filter_string.

Definition at line 79 of file views_handler_filter.inc.

References views_handler_filter::can_expose(), views_handler_filter::show_expose_button(), views_handler_filter::show_expose_form(), views_handler_filter::show_operator_form(), and views_handler_filter::show_value_form().

00079                                               {
00080     if ($this->can_expose()) {
00081       $this->show_expose_button($form, $form_state);
00082     }
00083     $form['op_val_start'] = array('#value' => '<div class="clear-block">');
00084     $this->show_operator_form($form, $form_state);
00085     $this->show_value_form($form, $form_state);
00086     $form['op_val_end'] = array('#value' => '</div>');
00087     if ($this->can_expose()) {
00088       $this->show_expose_form($form, $form_state);
00089     }
00090   }

views_handler::options_submit ( form,
&$  form_state 
) [inherited]

Perform any necessary changes to the form values prior to storage.

There is no need for this function to actually store the data.

Definition at line 287 of file handlers.inc.

00287 { }

views_handler_filter::options_submit ( &$  form,
&$  form_state 
) [inherited]

Simple submit handler.

Definition at line 107 of file views_handler_filter.inc.

References views_handler_filter::expose_submit(), views_handler_filter::operator_submit(), views_object::options(), and views_handler_filter::value_submit().

00107                                                 {
00108     unset($form_state['values']['expose_button']); // don't store this.
00109     $this->operator_submit($form, $form_state);
00110     $this->value_submit($form, $form_state);
00111     if (!empty($this->options['exposed'])) {
00112       $this->expose_submit($form, $form_state);
00113     }
00114   }

views_handler::options_validate ( form,
&$  form_state 
) [inherited]

Validate the options form.

Definition at line 281 of file handlers.inc.

00281 { }

views_handler_filter::options_validate ( &$  form,
&$  form_state 
) [inherited]

Simple validate handler.

Reimplemented in views_handler_filter_date.

Definition at line 95 of file views_handler_filter.inc.

References views_handler_filter::expose_validate(), views_handler_filter::operator_validate(), views_object::options(), and views_handler_filter::value_validate().

00095                                                   {
00096     $this->operator_validate($form, $form_state);
00097     $this->value_validate($form, $form_state);
00098     if (!empty($this->options['exposed'])) {
00099       $this->expose_validate($form, $form_state);
00100     }
00101 
00102   }

views_handler::pre_query (  )  [inherited]

Run before the view is built.

This gives all the handlers some time to set up before any handler has been fully run.

Reimplemented in views_handler_argument_term_node_tid_depth_modifier.

Definition at line 374 of file handlers.inc.

00374 { }

views_handler_filter_in_operator::query (  )  [inherited]

Add this filter to the query.

Due to the nature of fapi, the value and the operator have an unintended level of indirection. You will find them in $this->operator and $this->value respectively.

Reimplemented from views_handler_filter.

Reimplemented in views_handler_filter_comment_user_uid, and views_handler_filter_term_node_tid_depth.

Definition at line 325 of file views_handler_filter_in_operator.inc.

References views_handler_filter_in_operator::operators().

Referenced by views_handler_filter_in_operator::op_empty(), and views_handler_filter_in_operator::op_simple().

00325                    {
00326     $info = $this->operators();
00327     if (!empty($info[$this->operator]['method'])) {
00328       $this->{$info[$this->operator]['method']}();
00329     }
00330   }

views_handler_filter_in_operator::reduce_value_options ( input = NULL  )  [inherited]

When using exposed filters, we may be required to reduce the set.

Definition at line 217 of file views_handler_filter_in_operator.inc.

References views_object::$options, and views_object::options().

Referenced by value_form(), and views_handler_filter_in_operator::value_form().

00217                                                {
00218     if (!isset($input)) {
00219       $input = $this->value_options;
00220     }
00221 
00222     // Because options may be an array of strings, or an array of mixed arrays
00223     // and strings (optgroups) or an array of objects, we have to
00224     // step through and handle each one individually.
00225     $options = array();
00226     foreach ($input as $id => $option) {
00227       if (is_array($option)) {
00228         $options[$id] = $this->reduce_value_options($option);
00229         continue;
00230       }
00231       else if (is_object($option)) {
00232         $keys = array_keys($option->option);
00233         $key = array_shift($keys);
00234         if (isset($this->options['value'][$key])) {
00235           $options[$id] = $option;
00236         }
00237       }
00238       else if (isset($this->options['value'][$id])) {
00239         $options[$id] = $option;
00240       }
00241     }
00242     return $options;
00243   }

views_object::set_default_options (  )  [inherited]

Set default options.

For backward compatibility, it sends the options array; this is a feature that will likely disappear at some point.

Definition at line 53 of file base.inc.

References views_object::_set_option_defaults(), views_object::option_definition(), and views_object::options().

Referenced by views_object::construct().

00053                                  {
00054     $this->_set_option_defaults($this->options, $this->option_definition());
00055 
00056     // Retained for complex defaults plus backward compatibility.
00057     $this->options($this->options);
00058   }

views_object::set_definition ( definition  )  [inherited]

Let the handler know what its full definition is.

Definition at line 108 of file base.inc.

00108                                        {
00109     $this->definition = $definition;
00110     if (isset($definition['field'])) {
00111       $this->real_field = $definition['field'];
00112     }
00113   }

views_handler::set_relationship (  )  [inherited]

Called just prior to query(), this lets a handler set up any relationship it needs.

Definition at line 380 of file handlers.inc.

References views_object::options().

00380                               {
00381     // Ensure this gets set to something.
00382     $this->relationship = NULL;
00383 
00384     // Don't process non-existant relationships.
00385     if (empty($this->options['relationship']) || $this->options['relationship'] == 'none') {
00386       return;
00387     }
00388 
00389     $relationship = $this->options['relationship'];
00390 
00391     // Ignore missing/broken relationships.
00392     if (empty($this->view->relationship[$relationship])) {
00393       return;
00394     }
00395 
00396     // Check to see if the relationship has already processed. If not, then we
00397     // cannot process it.
00398     if (empty($this->view->relationship[$relationship]->alias)) {
00399       return;
00400     }
00401 
00402     // Finally!
00403     $this->relationship = $this->view->relationship[$relationship]->alias;
00404   }

views_handler_filter::show_expose_button ( &$  form,
&$  form_state 
) [inherited]

Shortcut to display the expose/hide button.

Definition at line 193 of file views_handler_filter.inc.

References views_object::options(), and views_ui_config_item_form_expose().

Referenced by views_handler_filter::options_form().

00193                                                     {
00194     $form['expose_button'] = array(
00195       '#prefix' => '<div class="views-expose clear-block">',
00196       '#suffix' => '</div>',
00197     );
00198     if (empty($this->options['exposed'])) {
00199       $form['expose_button']['button'] = array(
00200         '#type' => 'submit',
00201         '#value' => t('Expose'),
00202         '#submit' => array('views_ui_config_item_form_expose'),
00203       );
00204       $form['expose_button']['markup'] = array(
00205         '#prefix' => '<div class="description">',
00206         '#value' => t('This item is currently not exposed. If you <strong>expose</strong> it, users will be able to change the filter as they view it.'),
00207         '#suffix' => '</div>',
00208       );
00209     }
00210     else {
00211       $form['expose_button']['button'] = array(
00212         '#type' => 'submit',
00213         '#value' => t('Hide'),
00214         '#submit' => array('views_ui_config_item_form_expose'),
00215       );
00216       $form['expose_button']['markup'] = array(
00217         '#prefix' => '<div class="description">',
00218         '#value' => t('This item is currently exposed. If you <strong>hide</strong> it, users will not be able to change the filter as they view it.'),
00219         '#suffix' => '</div>',
00220       );
00221     }
00222   }

views_handler_filter::show_expose_form ( &$  form,
&$  form_state 
) [inherited]

Shortcut to display the exposed options form.

Definition at line 227 of file views_handler_filter.inc.

References views_handler_filter::expose_form(), and views_object::options().

Referenced by views_handler_filter::options_form().

00227                                                   {
00228     if (empty($this->options['exposed'])) {
00229       return;
00230     }
00231 
00232     $form['expose'] = array(
00233       '#prefix' => '<div class="views-expose-options clear-block">',
00234       '#suffix' => '</div>',
00235     );
00236     $this->expose_form($form, $form_state);
00237 
00238     // When we click the expose button, we add new gadgets to the form but they
00239     // have no data in $_POST so their defaults get wiped out. This prevents
00240     // these defaults from getting wiped out. This setting will only be TRUE
00241     // during a 2nd pass rerender.
00242     if (!empty($form_state['force_expose_options'])) {
00243       foreach (element_children($form['expose']) as $id) {
00244         if (isset($form['expose'][$id]['#default_value']) && !isset($form['expose'][$id]['#value'])) {
00245           $form['expose'][$id]['#value'] = $form['expose'][$id]['#default_value'];
00246         }
00247       }
00248     }
00249   }

views_handler_filter::show_operator_form ( &$  form,
&$  form_state 
) [inherited]

Shortcut to display the operator form.

Definition at line 119 of file views_handler_filter.inc.

References views_handler_filter::operator_form().

Referenced by views_handler_filter::options_form().

00119                                                     {
00120     $this->operator_form($form, $form_state);
00121     $form['operator']['#prefix'] = '<div class="views-left-30">';
00122     $form['operator']['#suffix'] = '</div>';
00123   }

views_handler_filter::show_value_form ( &$  form,
&$  form_state 
) [inherited]

Shortcut to display the value form.

Definition at line 163 of file views_handler_filter.inc.

References views_handler_filter::value_form().

Referenced by views_handler_filter::options_form().

00163                                                  {
00164     $this->value_form($form, $form_state);
00165     if (empty($this->no_operator)) {
00166       $form['value']['#prefix'] = '<div class="views-right-70">' . (isset($form['value']['#prefix']) ? $form['value']['#prefix'] : '');
00167       $form['value']['#suffix'] = (isset($form['value']['#suffix']) ? $form['value']['#suffix'] : '') . '</div>';
00168     }
00169   }

views_handler_filter::store_exposed_input ( input,
status 
) [inherited]

If set to remember exposed input in the session, store it there.

Reimplemented from views_handler.

Definition at line 534 of file views_handler_filter.inc.

References $display_id, and views_object::options().

00534                                                 {
00535     if (empty($this->options['exposed']) || empty($this->options['expose']['identifier'])) {
00536       return TRUE;
00537     }
00538 
00539     if (empty($this->options['expose']['remember'])) {
00540       return;
00541     }
00542 
00543     // Figure out which display id is responsible for the filters, so we
00544     // know where to look for session stored values.
00545     $display_id = ($this->view->display_handler->is_defaulted('filters')) ? 'default' : $this->view->current_display;
00546 
00547     // shortcut test.
00548     $operator = !empty($this->options['expose']['use_operator']) && !empty($this->options['expose']['operator']);
00549 
00550     // false means that we got a setting that means to recuse ourselves,
00551     // so we should erase whatever happened to be there.
00552     if (!$status && isset($_SESSION['views'][$this->view->name][$display_id])) {
00553       $session = &$_SESSION['views'][$this->view->name][$display_id];
00554       if ($operator && isset($session[$this->options['expose']['operator']])) {
00555         unset($session[$this->options['expose']['operator']]);
00556       }
00557 
00558       if (isset($session[$this->options['expose']['identifier']])) {
00559         unset($session[$this->options['expose']['identifier']]);
00560       }
00561     }
00562 
00563     if ($status) {
00564       if (!isset($_SESSION['views'][$this->view->name][$display_id])) {
00565         $_SESSION['views'][$this->view->name][$display_id] = array();
00566       }
00567 
00568       $session = &$_SESSION['views'][$this->view->name][$display_id];
00569 
00570       if ($operator && isset($input[$this->options['expose']['operator']])) {
00571         $session[$this->options['expose']['operator']] = $input[$this->options['expose']['operator']];
00572       }
00573 
00574       $session[$this->options['expose']['identifier']] = $input[$this->options['expose']['identifier']];
00575     }
00576   }

views_handler::ui_name ( short = FALSE  )  [inherited]

Return a string representing this handler's name in the UI.

Reimplemented in views_handler_argument_broken, views_handler_field_broken, views_handler_filter_broken, views_handler_relationship_broken, and views_handler_sort_broken.

Definition at line 268 of file handlers.inc.

References $title.

Referenced by views_handler_filter::expose_options(), views_handler_relationship::label(), and views_handler_field::options_form().

00268                                    {
00269     $title = ($short && isset($this->definition['title short'])) ? $this->definition['title short'] : $this->definition['title'];
00270     return t('!group: !title', array('!group' => $this->definition['group'], '!title' => $title));
00271   }

views_object::unpack_options ( &$  storage,
options,
definition = NULL 
) [inherited]

Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away.

Definition at line 79 of file base.inc.

References views_object::$options, and views_object::option_definition().

Referenced by views_plugin_style::init(), views_plugin_row::init(), views_plugin_display::init(), and views_handler::init().

00079                                                                    {
00080     if (!is_array($options)) {
00081       return;
00082     }
00083 
00084     if (!isset($definition)) {
00085       $definition = $this->option_definition();
00086     }
00087 
00088     foreach ($options as $key => $value) {
00089       if (is_array($value)) {
00090         if (!isset($storage[$key]) || !is_array($storage[$key])) {
00091           $storage[$key] = array();
00092         }
00093 
00094         $this->unpack_options($storage[$key], $value, isset($definition[$key]['contains']) ? $definition[$key]['contains'] : array());
00095       }
00096       else if (!empty($definition[$key]['translatable']) && !empty($value)) {
00097         $storage[$key] = t($value);
00098       }
00099       else {
00100         $storage[$key] = $value;
00101       }
00102     }
00103   }

views_handler::validate (  )  [inherited]

Validates the handler against the complete View.

This is called when the complete View is being validated. For validating the handler options form use options_validate().

See also:
views_handler::options_validate()
Returns:
Empty array if the handler is valid; an array of error strings if it is not.

Definition at line 491 of file handlers.inc.

Referenced by views_handler_argument::options_form().

00491 { return array(); }

views_handler_filter_term_node_tid::validate_term_strings ( &$  form,
values 
)

Validate the user string.

Since this can come from either the form or the exposed filter, this is abstracted out a bit so it can handle the multiple input sources.

Definition at line 244 of file views_handler_filter_term_node_tid.inc.

References views_object::options().

Referenced by exposed_validate(), and value_validate().

00244                                                   {
00245     if (empty($values)) {
00246       return array();
00247     }
00248 
00249     $tids = array();
00250     $placeholders = array();
00251     $args = array();
00252     $results = array();
00253     foreach ($values as $value) {
00254       $missing[strtolower($value)] = TRUE;
00255       $args[] = $value;
00256       $placeholders[] = "'%s'";
00257     }
00258 
00259     if (!$args) {
00260       return;
00261     }
00262 
00263     // add the taxonomy vid to the argument list.
00264     $args[] = $this->options['vid'];
00265 
00266     $result = db_query("SELECT * FROM {term_data} WHERE name IN (" . implode(', ', $placeholders) . ") AND vid = %d", $args);
00267     while ($term = db_fetch_object($result)) {
00268       unset($missing[strtolower($term->name)]);
00269       $tids[] = $term->tid;
00270     }
00271 
00272     if ($missing) {
00273       form_error($form, format_plural(count($missing), 'Unable to find term: @terms', 'Unable to find terms: @terms', array('@terms' => implode(', ', array_keys($missing)))));
00274     }
00275 
00276     return $tids;
00277   }

views_handler_filter_term_node_tid::value_form ( &$  form,
&$  form_state 
)

Provide a form for setting options.

This should be overridden by all child classes and it must define $form['value']

Reimplemented from views_handler_filter_many_to_one.

Definition at line 70 of file views_handler_filter_term_node_tid.inc.

References views_object::$options, views_object::options(), and views_handler_filter_in_operator::reduce_value_options().

00070                                             {
00071     $vocabulary = taxonomy_vocabulary_load($this->options['vid']);
00072     if (empty($vocabulary) && $this->options['limit']) {
00073       $form['markup'] = array(
00074         '#prefix' => '<div class="form-item">',
00075         '#suffix' => '</div>',
00076         '#value' => t('An invalid vocabulary is selected. Please change it in the options.'),
00077       );
00078       return;
00079     }
00080 
00081     if ($this->options['type'] == 'textfield') {
00082       $default = '';
00083       if ($this->value) {
00084         $result = db_query("SELECT * FROM {term_data} td WHERE td.tid IN (" . implode(', ', $this->value) . ')');
00085         while ($term = db_fetch_object($result)) {
00086           if ($default) {
00087             $default .= ', ';
00088           }
00089           $default .= $term->name;
00090         }
00091       }
00092 
00093       $form['value'] = array(
00094         '#title' => $this->options['limit'] ? t('Select terms from vocabulary @voc', array('@voc' => $vocabulary->name)) : t('Select terms'),
00095         '#type' => 'textfield',
00096         '#default_value' => $default,
00097       );
00098 
00099       if ($this->options['limit']) {
00100         $form['value']['#autocomplete_path'] = 'taxonomy/autocomplete/' . $vocabulary->vid;
00101       }
00102     }
00103     else {
00104       if (!empty($this->options['hierarchy']) && $this->options['limit']) {
00105         $tree = taxonomy_get_tree($vocabulary->vid);
00106         $options = array();
00107 
00108         if ($tree) {
00109           foreach ($tree as $term) {
00110             $choice = new stdClass();
00111             $choice->option = array($term->tid => str_repeat('-', $term->depth) . $term->name);
00112             $options[] = $choice;
00113           }
00114         }
00115       }
00116       else {
00117         $options = array();
00118         if ($this->options['limit']) {
00119           $result = db_query("SELECT * FROM {term_data} WHERE vid = %d ORDER BY weight, name", $vocabulary->vid);
00120         }
00121         else {
00122           $result = db_query("SELECT td.* FROM {term_data} td INNER JOIN {vocabulary} v ON td.vid = v.vid ORDER BY v.weight, v.name, td.weight, td.name");
00123         }
00124         while ($term = db_fetch_object($result)) {
00125           $options[$term->tid] = $term->name;
00126         }
00127       }
00128 
00129       $default_value = (array) $this->value;
00130 
00131       if (!empty($form_state['exposed'])) {
00132         $identifier = $this->options['expose']['identifier'];
00133 
00134         if (!empty($this->options['expose']['reduce'])) {
00135           $options = $this->reduce_value_options($options);
00136 
00137           if (empty($this->options['expose']['single']) && !empty($this->options['expose']['optional'])) {
00138             $default_value = array();
00139           }
00140         }
00141 
00142         if (!empty($this->options['expose']['single'])) {
00143           if (!empty($this->options['expose']['optional']) && (empty($default_value) || !empty($this->options['expose']['reduce']))) {
00144             $default_value = 'All';
00145           }
00146           else if (empty($default_value)) {
00147             $keys = array_keys($options);
00148             $default_value = array_shift($keys);
00149           }
00150           else {
00151             $copy = $default_value;
00152             $default_value = array_shift($copy);
00153           }
00154         }
00155       }
00156       $form['value'] = array(
00157         '#type' => 'select',
00158         '#title' => $this->options['limit'] ? t('Select terms from vocabulary @voc', array('@voc' => $vocabulary->name)) : t('Select terms'),
00159         '#multiple' => TRUE,
00160         '#options' => $options,
00161         '#size' => min(9, count($options)),
00162         '#default_value' => $default_value,
00163       );
00164 
00165       if (!empty($form_state['exposed']) && !isset($form_state['input'][$identifier])) {
00166         $form_state['input'][$identifier] = $default_value;
00167       }
00168     }
00169 
00170 
00171     if (empty($form_state['exposed'])) {
00172       // Retain the helper option
00173       $this->helper->options_form($form, $form_state);
00174     }
00175   }

views_handler_filter_term_node_tid::value_submit ( form,
&$  form_state 
)

Perform any necessary changes to the form values prior to storage.

There is no need for this function to actually store the data.

Reimplemented from views_handler_filter_in_operator.

Definition at line 279 of file views_handler_filter_term_node_tid.inc.

00279                                              {
00280     // prevent array_filter from messing up our arrays in parent submit.
00281   }

views_handler_filter::value_validate ( form,
&$  form_state 
) [inherited]

Validate the options form.

Definition at line 182 of file views_handler_filter.inc.

Referenced by views_handler_filter::options_validate().

00182 { }


Member Data Documentation

views_object::$options = array() [inherited]

Except for displays, options for the object will be held here.

Definition at line 16 of file base.inc.

Referenced by views_plugin_display::_set_option_defaults(), views_object::_set_option_defaults(), views_handler_filter_string::admin_summary(), views_handler_filter_numeric::admin_summary(), views_handler_argument::default_argument_form(), extra_options_form(), views_plugin_display::get_plugin(), views_handler_filter_node_type::get_value_options(), views_plugin_style::init(), views_plugin_row::init(), views_plugin_display::init(), views_handler_field_upload_description::init(), views_handler_field_term_node_tid::init(), views_handler_field_file::init(), views_plugin_row_node_view::init(), views_handler_field_history_user_timestamp::init(), views_handler_field_node_new_comments::init(), views_handler_field_comment::init(), views_handler::init(), views_handler_relationship::init(), views_handler_filter_many_to_one::init(), views_handler_filter::init(), views_handler_field::init(), views_handler_argument_string::init(), views_handler_argument_many_to_one::init(), views_handler_argument::init(), views_handler_filter::operator_form(), views_handler_filter_string::operator_options(), views_handler_filter_numeric::operator_options(), views_handler_filter_in_operator::operator_options(), views_handler_filter_string::operator_values(), views_handler_filter_numeric::operator_values(), views_handler_filter_in_operator::operator_values(), views_plugin_cache_time::option_defaults(), views_plugin_access_role::option_defaults(), views_plugin_access_perm::option_defaults(), views_plugin_style_table::option_definition(), views_plugin_style_summary_unformatted::option_definition(), views_plugin_style_summary_jump_menu::option_definition(), views_plugin_style_summary::option_definition(), views_plugin_style_rss::option_definition(), views_plugin_style_list::option_definition(), views_plugin_style_jump_menu::option_definition(), views_plugin_style_grid::option_definition(), views_plugin_style::option_definition(), views_plugin_row_fields::option_definition(), views_plugin_row::option_definition(), views_plugin_display_page::option_definition(), views_plugin_display_feed::option_definition(), views_plugin_display_block::option_definition(), views_plugin_display_attachment::option_definition(), views_plugin_display::option_definition(), views_handler_field_user_name::option_definition(), views_handler_field_user_mail::option_definition(), views_handler_field_user_link::option_definition(), views_handler_field_user::option_definition(), views_handler_field_is_online::option_definition(), views_handler_field_upload_fid::option_definition(), views_handler_field_upload_description::option_definition(), views_handler_relationship_translation::option_definition(), views_handler_filter_node_tnid::option_definition(), views_handler_relationship_node_term_data::option_definition(), views_handler_filter_term_node_tid_depth::option_definition(), option_definition(), views_handler_field_term_node_tid::option_definition(), views_handler_field_taxonomy::option_definition(), views_handler_argument_term_node_tid_depth::option_definition(), views_handler_argument_term_node_tid::option_definition(), views_handler_field_file::option_definition(), views_handler_field_accesslog_path::option_definition(), views_plugin_row_search_view::option_definition(), views_handler_filter_search::option_definition(), views_handler_field_search_score::option_definition(), views_plugin_row_node_view::option_definition(), views_plugin_row_node_rss::option_definition(), views_handler_field_node_link::option_definition(), views_handler_field_node::option_definition(), views_handler_field_history_user_timestamp::option_definition(), views_handler_field_locale_link_edit::option_definition(), views_handler_field_contact_link::option_definition(), views_plugin_row_comment_view::option_definition(), views_handler_field_node_new_comments::option_definition(), views_handler_field_ncs_last_comment_name::option_definition(), views_handler_field_comment_username::option_definition(), views_handler_field_comment_node_link::option_definition(), views_handler_field_comment_link::option_definition(), views_handler_field_comment::option_definition(), views_plugin_row_aggregator_rss::option_definition(), views_handler_field_aggregator_title_link::option_definition(), views_handler_field_aggregator_category::option_definition(), views_handler_sort_date::option_definition(), views_handler_sort::option_definition(), views_handler_relationship::option_definition(), views_handler_filter_string::option_definition(), views_handler_filter_numeric::option_definition(), views_handler_filter_many_to_one::option_definition(), views_handler_filter_in_operator::option_definition(), views_handler_filter_date::option_definition(), views_handler_filter_boolean_operator::option_definition(), views_handler_filter::option_definition(), views_handler_field_url::option_definition(), views_handler_field_prerender_list::option_definition(), views_handler_field_numeric::option_definition(), views_handler_field_date::option_definition(), views_handler_field_custom::option_definition(), views_handler_field_counter::option_definition(), views_handler_field_boolean::option_definition(), views_handler_field_file_size::option_definition(), views_handler_field::option_definition(), views_handler_argument_string::option_definition(), views_handler_argument_numeric::option_definition(), views_handler_argument_null::option_definition(), views_handler_argument_many_to_one::option_definition(), views_handler_argument::option_definition(), views_plugin_style_default::options(), views_plugin_style_jump_menu::options_form(), views_plugin_style::options_form(), views_plugin_row_fields::options_form(), views_plugin_display::options_form(), views_plugin_cache_time::options_form(), views_handler_relationship_translation::options_form(), views_handler_relationship_node_term_data::options_form(), views_handler_field_term_node_tid::options_form(), views_handler_field_search_score::options_form(), views_plugin_row_node_view::options_form(), views_handler_field::options_form(), views_handler_argument::options_form(), views_plugin_display_page::options_summary(), views_plugin_display_feed::options_summary(), views_plugin_display_block::options_summary(), views_plugin_display_attachment::options_summary(), views_plugin_display::options_summary(), views_handler_filter_in_operator::reduce_value_options(), views_plugin_style_summary_jump_menu::render(), views_plugin_style_jump_menu::render(), views_plugin_style_jump_menu::render_set(), views_plugin_display::set_override(), views_object::unpack_options(), views_plugin_argument_validate_taxonomy_term::validate_form(), views_plugin_argument_validate_node::validate_form(), value_form(), and views_handler_filter_in_operator::value_form().


The documentation for this class was generated from the following file:
Generated on Mon Nov 30 15:06:49 2009 for Views by  doxygen 1.4.7