Hallo peanut,
um Bilder in Suchergebnissen anzuzeigen, musst du folgende Änderungen machen.
1. Datei cms/data/modules/content_search_results/php/class.module.search_result.php
Darin gibt es die Funktion _getResults(), in dieser Funktion werden Inhalte/Daten der Suchergebnisse zusammengestellt, hier musst du die Funktion wie folgt anpassen. In diesem Beispiel wird davon ausgegangen, dass Bilder immer in CMS_IMG[1] zu finden sind.
Code: Alles auswählen
protected function _getResults() {
if (NULL === $this->_searchResults) {
return array();
}
// get current result page
$searchResultPage = $this->_searchResults->getSearchResultPage($this->_page);
// skip if current page has no results
if (0 == count($searchResultPage) > 0) {
return array();
}
// build single search result on result page
$entries = array();
$i = 0;
foreach (array_keys($searchResultPage) as $idart) {
$i++;
// get absolute number of current search result
$number = $this->_itemsPerPage * ($this->_page - 1) + $i;
// get headlines
$headlines = $this->_searchResults->getSearchContent($idart, 'HTMLHEAD', 1);
$headline = cString::trimAfterWord($headlines[0], $this->_maxTeaserTextLen);
// get subheadlines
$subheadlines = $this->_searchResults->getSearchContent($idart, 'HTMLHEAD', 2);
$subheadline = cString::trimAfterWord($subheadlines[0], $this->_maxTeaserTextLen);
// get paragraphs
$paragraphs = $this->_searchResults->getSearchContent($idart, 'HTML', 1);
$paragraph = cString::trimAfterWord($paragraphs[0], $this->_maxTeaserTextLen);
// get similarity
$similarity = $this->_searchResults->getSimilarity($idart);
$similarity = sprintf("%.0f", $similarity);
// image
$image = null;
$artLang = new cApiArticleLanguage();
if ($artLang->loadByArticleAndLanguageId($idart, cRegistry::getLanguageId())) {
$idUpl = $artLang->getContent('CMS_IMG', 1);
if (0 < cString::getStringLength($idUpl)) {
$clientConfig = cRegistry::getClientConfig(cRegistry::getClientId());
$upload = new cApiUpload($idUpl);
if ($upload->isLoaded()) {
$dirname = $upload->get('dirname');
$filename = $upload->get('filename');
$imageSrc = $clientConfig['upl']['htmlpath'] . $dirname . $filename;
$fullDirname = $clientConfig['upl']['path'] . $dirname;
if (cFileHandler::exists($fullDirname . $filename)) {
list($imageWidth, $imageHeight) = getimagesize($fullDirname . $filename);
$image = new stdClass();
$image->src = $imageSrc;
$image->width = $imageWidth;
$image->height = $imageHeight;
}
}
}
}
// build link to that result page
$href = cUri::getInstance()->build(array(
'lang' => cRegistry::getLanguageId(),
'idcat' => $this->_searchResults->getArtCat($idart),
'idart' => $idart
));
// assemble entry
$entries[] = array(
'number' => $number,
'headline' => $headline,
'subheadline' => $subheadline,
'paragraph' => $paragraph,
'similarity' => $similarity,
'image' => $image,
'href' => $href
);
}
$lower = ($this->_page - 1) * $this->_itemsPerPage + 1;
$upper = $lower + count($entries) - 1;
$total = $this->_searchResults->getNumberOfResults();
$this->_msgRange = sprintf($this->_label['msgRange'], $lower, $upper, $total);
return $entries;
}
2. Template cms/data/modules/content_search_results/template/get.tpl
Im Template kannst du z. B. das Bild in Suchergebnissen ausgeben
Code: Alles auswählen
<ul id="search_result">
{foreach item=result from=$results}
<li>
<span>{$result.number}</span>
{if $result.image}
<pre>{$result.image|@print_r}</pre>
{/if}
<a href="{$result.href}">{$result.headline}</a>
<p>{$result.paragraph}</p>
</li>
{/foreach}
</ul>
Viele Grüße
xmurrix