public function testStringCleanup() { $testString = 'Re: FW: Test Sample - One äöü ßü abc 3 – Testing again'; $clearedValue = Query::clearString($testString); $textAllDataField = sprintf('%s %s', $testString, $clearedValue); $result = implode(Query::DELIMITER, array_unique(explode(Query::DELIMITER, $textAllDataField))); $this->assertEquals($testString, $result); }
/** * @param array|string $fieldValue * @return array|string */ protected function filterTextFieldValue($fieldValue) { if (is_string($fieldValue)) { $fieldValue = Query::clearString($fieldValue); } elseif (is_array($fieldValue)) { foreach ($fieldValue as $key => $value) { $fieldValue[$key] = Query::clearString($value); } } return $fieldValue; }
/** * Set value for meta fields by type * * @param string $alias * @param array $objectData * @param array $fieldConfig * @param mixed $value * @param bool $isArray * * @return array */ protected function setDataValue($alias, $objectData, $fieldConfig, $value, $isArray = false) { if ($value) { //check if field have target_fields parameter $targetFields = isset($fieldConfig['target_fields']) ? $fieldConfig['target_fields'] : [$fieldConfig['name']]; if ($fieldConfig['target_type'] != Query::TYPE_TEXT) { foreach ($targetFields as $targetField) { if ($isArray) { $objectData[$fieldConfig['target_type']][$targetField][] = $value; } else { $objectData[$fieldConfig['target_type']][$targetField] = $value; } } } else { foreach ($targetFields as $targetField) { if (!isset($objectData[$fieldConfig['target_type']][$targetField])) { $objectData[$fieldConfig['target_type']][$targetField] = ''; } $objectData[$fieldConfig['target_type']][$targetField] .= sprintf(' %s ', $value); } $textAllDataField = ''; if (isset($objectData[$fieldConfig['target_type']][Indexer::TEXT_ALL_DATA_FIELD])) { $textAllDataField = $objectData[$fieldConfig['target_type']][Indexer::TEXT_ALL_DATA_FIELD]; } $clearedValue = Query::clearString($value); $textAllDataField .= sprintf(' %s %s ', $value, $clearedValue); $objectData[$fieldConfig['target_type']][Indexer::TEXT_ALL_DATA_FIELD] = implode(Query::DELIMITER, array_unique(explode(Query::DELIMITER, $textAllDataField))); $objectData[$fieldConfig['target_type']] = array_map('trim', $objectData[$fieldConfig['target_type']]); } } return $objectData; }