I18N Search - Custom Rendering
By specifying a component name as parameter to the search call, you can render the search result in a different way, e.g.
(% searchresults tags=products component=renderproduct %)
In the component you have access to the following variables:
-
$item: the page or other item found: the properties and methods accessible by $item->propname include:
- tags (array of strings),
- title and content,
- pubDate and creDate (publishing and creation date, both as UNIX timestamps),
- any custom fields
-
getExcerpt($text, $length): returns an excerpt of $text in the requested $length
- $showLanguage: true, if the language should be shown
- $showDate: true, if the date should be shown
- $dateFormat: date format for strftime
- $numWords: the number of words requested in the excerpt
A component rendering the page in the default way would look like:
<h3 class="search-entry-title">
<?php if ($showLanguage) { ?>
<span class="search-entry-language">
<?php echo htmlspecialchars($item->language, ENT_NOQUOTES); ?>
</span>
<?php } ?>
<a href="<?php echo $item->link; ?>">
<?php echo htmlspecialchars($item->title, ENT_NOQUOTES); ?>
</a>
</h3>
<?php if ($showDate) { ?>
<div class="search-entry-date">
<?php echo strftime($dateFormat, $item->pubDate); ?>
</div>
<?php } ?>
<div class="search-entry-excerpt">
<?php echo $item->getExcerpt($item->content, $numWords); ?>
</div>
Example
Here is an example of rendering the special pages for software with a component, whereas normally they would be rendered like here.
-
en jEasyORM
Java Library, Platform-independent Home page -
en phpEasyVCS
Web based version control system, Platform-independent Home page