/**
* @param $element
* @return $this
*/
public function setDataFromElement($element)
{
$this->data = null;
$this->id = new Data\Id($element);
$this->fullPath = $element->getFullPath();
$this->creationDate = $element->getCreationDate();
$this->modificationDate = $element->getModificationDate();
$this->userModification = $element->getUserModification();
$this->userOwner = $element->getUserOwner();
$this->type = $element->getType();
if ($element instanceof Object\Concrete) {
$this->subtype = $element->getClassName();
} else {
$this->subtype = $this->type;
}
$this->properties = "";
$properties = $element->getProperties();
if (is_array($properties)) {
foreach ($properties as $nextProperty) {
$pData = (string) $nextProperty->getData();
if ($nextProperty->getName() == "bool") {
$pData = $pData ? "true" : "false";
}
$this->properties .= $nextProperty->getName() . ":" . $pData . " ";
}
}
$this->data = "";
if ($element instanceof Document) {
if ($element instanceof Document\Folder) {
$this->data = $element->getKey();
$this->published = true;
} else {
if ($element instanceof Document\Link) {
$this->published = $element->isPublished();
$this->data = $element->getTitle() . " " . $element->getHref();
} else {
if ($element instanceof Document\PageSnippet) {
$this->published = $element->isPublished();
$elements = $element->getElements();
if (is_array($elements) && !empty($elements)) {
foreach ($elements as $tag) {
if ($tag instanceof Document\Tag\TagInterface) {
ob_start();
$this->data .= strip_tags($tag->frontend()) . " ";
$this->data .= ob_get_clean();
}
}
}
if ($element instanceof Document\Page) {
$this->published = $element->isPublished();
$this->data .= " " . $element->getTitle() . " " . $element->getDescription() . " " . $element->getKeywords() . " " . $element->getPrettyUrl();
}
}
}
}
} else {
if ($element instanceof Asset) {
$this->data = $element->getFilename();
foreach ($element->getMetadata() as $md) {
$this->data .= " " . $md["name"] . ":" . $md["data"];
}
if ($element instanceof Asset\Document && \Pimcore\Document::isAvailable()) {
if (\Pimcore\Document::isFileTypeSupported($element->getFilename())) {
$contentText = $element->getText();
$contentText = str_replace(["\r\n", "\r", "\n", "\t", "\f"], " ", $contentText);
$contentText = preg_replace("/[ ]+/", " ", $contentText);
$this->data .= " " . $contentText;
}
}
$this->published = true;
} else {
if ($element instanceof Object\AbstractObject) {
if ($element instanceof Object\Concrete) {
$getInheritedValues = Object\AbstractObject::doGetInheritedValues();
Object\AbstractObject::setGetInheritedValues(true);
$this->published = $element->isPublished();
foreach ($element->getClass()->getFieldDefinitions() as $key => $value) {
$this->data .= $value->getDataForSearchIndex($element) . " ";
}
Object\AbstractObject::setGetInheritedValues($getInheritedValues);
} else {
if ($element instanceof Object\Folder) {
$this->data = $element->getKey();
$this->published = true;
}
}
} else {
\Logger::crit("Search\\Backend\\Data received an unknown element!");
}
}
}
if ($element instanceof Element\ElementInterface) {
$this->data = "ID: " . $element->getId() . " \nPath: " . $this->getFullPath() . " \n" . $this->cleanupData($this->data);
}
return $this;
}