Framework  3.9
FilterFieldRenderer Class Reference

Inherits SelectFieldRenderer.

Classes

class  BooleanFilterFieldRenderer
 
class  CheckListFilterFieldRenderer
 Usage: More...
 
class  DateRangeFilterRenderer
 Adds a Date Range Filter with start and end dates and Next and Previous buttons to a FilterForm. More...
 
class  RadioButtonFilterFieldRenderer
 

Public Member Functions

 FilterFieldRenderer (&$form, $field, $label="", $options=null)
 
 setDefault ($title, $value)
 
 renderField ($field)
 
 renderSearchField ($field)
 
 renderField ($field)
 

Static Public Member Functions

static formatOptions ($items, $template)
 

Public Attributes

 $options
 
 $label
 
 $all = true
 
 $all_value = ""
 
 $width = ""
 
 $cssClass = 'select'
 

Detailed Description

Definition at line 429 of file filter_form.inc.

Member Function Documentation

◆ FilterFieldRenderer()

FilterFieldRenderer::FilterFieldRenderer ( $form,
  $field,
  $label = "",
  $options = null 
)

Definition at line 438 of file filter_form.inc.

439  {
440  $this->options = $options;
441  $this->label = ($label) ? $label : prettify($field);
442  $this->FieldRenderer($form);
443  if ($form->getData()->hasField($field))
444  {
445  // JDG 5/30/11 - don't crash on additiona/psuedo fields
446  // only query if real field
447  $form->override($field, $label, $this);
448  if ($this->options == null)
449  {
450  $opt = $form->getData()->distinctValues($field, true);
451  if (count($opt) > 0)
452  {
453  $this->options = array_combine($opt, $opt);
454  }
455  else
456  {
457  $this->options = array();
458  }
459  }
460  }
461  else
462  {
463  $form->add($this, $field);
464  // JDG 7/22/2011 - allow "additional" fields to override label
465  $form->overrides[$field]['label'] = $label;
466  }
467  }
FieldRenderer is the abstract base class for all FieldRenderers.
prettify($name)
Takes a variable or field name and converts it into a human-readable version (assuming that the origi...
Definition: functions.inc:1413

◆ formatOptions()

static FilterFieldRenderer::formatOptions (   $items,
  $template 
)
static

Definition at line 528 of file filter_form.inc.

529  {
530  $options = array();
531 
532  // user sent just the field name
533  if(!preg_match("/^\{/", $template))
534  $template = "{" . $template . "}";
535 
536  if(count($items) == 0)
537  return $options;
538 
539  foreach($items as $item)
540  {
541  $pk = $item->getPrimaryKey();
542  $options[$item->$pk] = $item->format("$template");
543  }
544  return $options;
545  }

◆ renderField() [1/2]

FilterFieldRenderer::renderField (   $field)

Definition at line 475 of file filter_form.inc.

476  {
477  $this->_startField($field, $this->styles);
478 
479  if($this->width)
480  {
481  $styles .= "style='width: {$this->width}'";
482  }
483 
484  $onSubmit = $this->parent->getOnSubmitFunction();
485  echo "<select name='{$field}' {$styles} onchange='if ({$onSubmit}(this.form)) this.form.manager.submit();'>";
486 
487  if ($this->default)
488  {
489  ?>
490  <option value="<?php echo $this->defaultValue ?>"><?echo $this->default?></option>
491  <?
492  }
493 
494  if($this->all)
495  {
496  ?>
497  <option value="<?php echo $this->all_value ?>">All</option>
498  <?
499  }
500 
501  $fieldValue = $this->parent->data->get("$field");
502  foreach($this->options as $value => $name)
503  {
504  $name = htmlSafe($name);
505  $trunced = $this->max_chars ? ellipsis($name, $this->max_chars, true) : $name;
506 
507  $selected = (!strcmp($value, $fieldValue)) ? " selected" : "";
508  $optionTitle = ($name != $trunced) ? " title='$name'" : "";
509 
510  echo "<option value='{$value}' $selected>$trunced</option>\n";
511  }
512 
513  echo "</select>&nbsp;";
514 
515  $this->_endField($field);
516  }
option($value, $text, $sel="")
Write out an option tag, marking as selected if applicable.
Definition: functions.inc:888
ellipsis($txt, $max, $wholeWord=false)
Truncate the supplied text at the given maximum length.
Definition: functions.inc:779

◆ renderField() [2/2]

FilterFieldRenderer::renderField (   $field)

Definition at line 1300 of file filter_form.inc.

1301  {
1302  $this->renderSearchField($field);
1303  }

◆ renderSearchField()

FilterFieldRenderer::renderSearchField (   $field)

Definition at line 518 of file filter_form.inc.

519  {
520  $this->renderField($field);
521  }

◆ setDefault()

FilterFieldRenderer::setDefault (   $title,
  $value 
)

Definition at line 469 of file filter_form.inc.

470  {
471  $this->default = $title;
472  $this->defaultValue = $value;
473  }

Member Data Documentation

◆ $all

FilterFieldRenderer::$all = true

Definition at line 433 of file filter_form.inc.

◆ $all_value

FilterFieldRenderer::$all_value = ""

Definition at line 434 of file filter_form.inc.

◆ $cssClass

FilterFieldRenderer::$cssClass = 'select'

Definition at line 436 of file filter_form.inc.

◆ $label

FilterFieldRenderer::$label

Definition at line 432 of file filter_form.inc.

◆ $options

FilterFieldRenderer::$options

Definition at line 431 of file filter_form.inc.

◆ $width

FilterFieldRenderer::$width = ""

Definition at line 435 of file filter_form.inc.


The documentation for this class was generated from the following file: