public function translateSphinxCriterion(SphinxCriterion $crit) { $field = $crit->getTable() . '.' . $crit->getColumn(); $value = $crit->getValue(); $fieldName = null; if ($field == categoryKuserPeer::STATUS) { $fieldName = categoryKuserPeer::STATUS; } if ($fieldName) { $partnerIdCrit = $this->getCriterion(categoryKuserPeer::PARTNER_ID); if ($partnerIdCrit && $partnerIdCrit->getComparison() == Criteria::EQUAL) { $partnerId = $partnerIdCrit->getValue(); } else { $partnerId = kCurrentContext::getCurrentPartnerId(); } if (is_array($value)) { foreach ($value as &$singleValue) { $singleValue = categoryKuser::getSearchIndexFieldValue($fieldName, $singleValue, $partnerId); } } else { $value = categoryKuser::getSearchIndexFieldValue($fieldName, $value, $partnerId); } } return array($field, $crit->getComparison(), $value); }
protected function applyFilterFields(baseObjectFilter $filter) { $partnerId = kCurrentContext::$partner_id ? kCurrentContext::$partner_id : kCurrentContext::$ks_partner_id; if ($filter->get('_in_status')) { $statusList = explode(',', $filter->get('_in_status')); foreach ($statusList as &$status) { $status = categoryKuser::getSearchIndexFieldValue(categoryKuserPeer::STATUS, $status, $partnerId); } $filter->set('_in_status', implode(',', $statusList)); } if ($filter->get('_eq_status')) { $filter->set('_eq_status', categoryKuser::getSearchIndexFieldValue(categoryKuserPeer::STATUS, $filter->get('_eq_status'), $partnerId)); } if ($filter->get('_in_update_method')) { $updateMethodList = explode(',', $filter->get('_in_update_method')); foreach ($updateMethodList as &$updateMethod) { $updateMethod = categoryKuser::getSearchIndexFieldValue(categoryKuserPeer::UPDATE_METHOD, $updateMethod, $partnerId); } $filter->set('_in_update_method', implode(',', $updateMethodList)); } if ($filter->get('_eq_update_method')) { $filter->set('_eq_update_method', categoryKuser::getSearchIndexFieldValue(categoryKuserPeer::UPDATE_METHOD, $filter->get('_eq_update_method'), $partnerId)); } if ($filter->get('_matchor_permission_names')) { $permissionNamesList = explode(',', $filter->get('_matchor_permission_names')); foreach ($permissionNamesList as &$permissionName) { $permissionName = categoryKuser::getSearchIndexFieldValue(categoryKuserPeer::PERMISSION_NAMES, $permissionName, $partnerId); } $filter->set('_matchor_permission_names', implode(',', $permissionNamesList)); } if ($filter->get('_matchand_permission_names')) { $permissionNamesList = explode(',', $filter->get('_matchand_permission_names')); foreach ($permissionNamesList as &$permissionName) { $permissionName = categoryKuser::getSearchIndexFieldValue(categoryKuserPeer::PERMISSION_NAMES, $permissionName, $partnerId); } $filter->set('_matchand_permission_names', implode(',', $permissionNamesList)); } if ($filter->get('_notcontains_permission_names')) { $permissionNamesList = explode(',', $filter->get('_notcontains_permission_names')); foreach ($permissionNamesList as &$permissionName) { $permissionName = categoryKuser::getSearchIndexFieldValue(categoryKuserPeer::PERMISSION_NAMES, $permissionName, $partnerId); } $filter->set('_notcontains_permission_names', $permissionNamesList); } if ($filter->get('_eq_category_full_ids')) { $filter->set('_eq_category_full_ids', $filter->get('_eq_category_full_ids') . category::FULL_IDS_EQUAL_MATCH_STRING); } return parent::applyFilterFields($filter); }