Exemple #1
0
 /**
  * Add sorting to entity identifiers.
  *
  * @param array $entityIDs
  * @param string $fieldName Additional field name for sorting
  * @param string $order Sorting order(ASC|DESC)
  * @return array Collection of entity identifiers ordered by additional field value
  */
 protected function applySorting(array $entityIDs, $fieldName, $order = 'ASC')
 {
     if (array_key_exists($fieldName, static::$virtualFieldNames)) {
         // Get additional field metadata
         $fieldID = static::$virtualFieldNames[$fieldName];
         $valueColumn = static::$virtualFieldValueColumns[$fieldID];
         return $this->query->entity(CMS::MATERIAL_FIELD_RELATION_ENTITY)->where(Field::F_PRIMARY, $fieldID)->where(Material::F_PRIMARY, $entityIDs)->orderBy($valueColumn, $order)->fields(Material::F_PRIMARY);
     } else {
         // Nothing is changed
         return parent::applySorting($entityIDs, $fieldName, $order);
     }
 }
Exemple #2
0
 /**
  * Add sorting to entity identifiers.
  *
  * @param array $entityIDs
  * @param string $fieldName Additional field name for sorting
  * @param string $order Sorting order(ASC|DESC)
  * @return array Collection of entity identifiers ordered by additional field value
  */
 protected function applySorting(array $entityIDs, $fieldName, $order = 'ASC')
 {
     // Get additional field metadata
     $fieldID =& static::$fieldNames[$fieldName];
     $valueColumn =& static::$fieldValueColumns[$fieldID];
     // If this is additional field
     if (null !== $fieldID && null !== $valueColumn) {
         return $this->query->entity(CMS::MATERIAL_FIELD_RELATION_ENTITY)->where(Field::F_PRIMARY, $fieldID)->where(Material::F_PRIMARY, $entityIDs)->orderBy($valueColumn, $order)->fields(Material::F_PRIMARY);
     } else {
         // Nothing is changed
         return parent::applySorting($entityIDs, $fieldName, $order);
     }
 }