Amiro.CMS API Reference
Amiro.Ru / Manual
Loading search...

The AMI_Filter class

• Introduction

Module component item list filter model.

• Class synopsis

AMI_Filter implements AMI_iFormModTableItem {
/* Properties */
// Array of dropped fields
protected array $aDroppedFields = array();
/* Methods */
// Returns filter field value.
public static getFieldValue ( string $name, [ mixed $default = null ] ) returns mixed;
// Adds view field.
public addViewField ( $aField ) returns AMI_Filter;
// Drops view fields.
public dropViewFields ( $aNames ) returns AMI_Filter;
// Returns item id.
public getId ( ) returns mixed;
// Returns module Id.
public getModId ( ) returns string;
// Sets module Id.
public setModId ( string $modId ) returns void;
// For custom data manipulation.
protected processFieldData ( string $field, $aData ) returns array;
}
Tags:
abstract
since 5.12.0

• Class Properies

protected array $aDroppedFields

Array of dropped fields

• Class Methods

// Returns filter field value.
public static getFieldValue ( string $name, [ mixed $default = null ] ) returns mixed;
  • string $name
    Field name
  • mixed $default
    Default value to return
Tags:
since 5.14.6
// Adds view field.
public addViewField ( $aField ) returns AMI_Filter;
  • array $aField
    Field structure
  Example:
  •  // Add text field
  •  $this->addViewField(
  •      array(
  •          // Filter field name
  •          'name'          => 'nickname',
  •  
  •          // Text input field {
  •  
  •          'type'          => 'input',
  •          'flt_type'      => 'text',
  •  
  •          // } Text input field
  •  
  •          // Default field value
  •          'flt_default'   => '',
  •  
  •          // SQL condition, 'like'|'='|'<='|'>="
  •          'flt_condition' => 'like',
  •  
  •          // Module table model field name
  •          'flt_column'    => 'nickname',
  •  
  •          // To filter by dependent model field (joined table field) (since 5.12.8)
  •          'flt_alias'     => 'i'
  •      )
  •  );
  •  
  •  // Add date/datime filter fields {
  •  
  •  // Minimum border
  •  $this->addViewField(
  •      array(
  •          'name'          => 'datefrom',
  •          'type'          => 'datefrom',
  •          'flt_type'      => 'date',
  •          'flt_default'   => AMI_Lib_Date::formatUnixTime(AMI_Lib_Date::UTIME_MIN),
  •          'flt_condition' => '>=',
  •          'flt_column'    => 'birth'
  •      )
  •  );
  •  
  •  // Maximum border
  •  $this->addViewField(
  •      array(
  •          'name'          => 'dateto',
  •          'type'          => 'dateto',
  •          'flt_type'      => 'date',
  •          'flt_default'   => AMI_Lib_Date::formatUnixTime(AMI_Lib_Date::UTIME_MAX),
  •          'flt_condition' => '<',
  •          'flt_column'    => 'birth'
  •      )
  •  );
  •  
  •  // } Add date/datime filter fields
Tags:
todo Descibe other types
// Drops view fields.
public dropViewFields ( $aNames ) returns AMI_Filter;
  • array $aNames
    Array of names of fields to drop
Tags:
since 5.14.0
// Returns item id.
public getId ( ) returns mixed;

Implementation of: AMI_iFormModTableItem::getId().

// Returns module Id.
public getModId ( ) returns string;
// Sets module Id.
public setModId ( string $modId ) returns void;
  • string $modId
    Module Id
// For custom data manipulation.
protected processFieldData ( string $field, $aData ) returns array;
  • string $field
    Field name
  • array $aData
    Filter data

Overridden in child classes as: AMI_Module_FilterModelAdm::processFieldData(), AmiClean_Webservice_FilterModelFrn::processFieldData(), Hyper_AmiMultifeeds_FilterModelFrn::processFieldData().

  Example:
  •  // $field - Filter field name
  •  // $aData - array that contains filter field data, wich will be
  •  //          used to build the list SQL query.
  •  //          keys:
  •  //             'value' => current filter field's value
  •  //             'skip' => if set to true to skip filtering by this field
  •  protected function processFieldData($fieldarray $aData){
  •      // skip filtering by no_filter field if it has a value
  •      if(($field == 'no_filter'&& $aData['value']){
  •          $aData['skip'true;
  •      }
  •      return $aData;
  •  }
Tags:
since 5.14.0