public function prepValue($value)
{
$criteria = craft()->neo->getCriteria();
if (!empty($this->element->id)) {
$criteria->ownerId = $this->element->id;
} else {
$criteria->id = false;
}
$criteria->fieldId = $this->model->id;
$criteria->locale = $this->element->locale;
if (is_array($value) || $value === '') {
$criteria->status = null;
$criteria->localeEnabled = null;
$criteria->limit = null;
if (is_array($value)) {
$prevElement = null;
foreach ($value as $element) {
if ($prevElement) {
$prevElement->setNext($element);
$element->setPrev($prevElement);
}
$prevElement = $element;
}
foreach ($value as $element) {
$element->setAllElements($value);
}
$criteria->setMatchedElements($value);
$criteria->setAllElements($value);
} else {
if ($value === '') {
$criteria->setMatchedElements([]);
}
}
}
return $criteria;
}