PHP code example of korcontrol / craft-algolia
1. Go to this page and download the library: Download korcontrol/craft-algolia library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
korcontrol / craft-algolia example snippets
'entries' => [
'news' => [
'bodyFields' => ['editorComponents'],
],
'pages' => [
'bodyFields' => ['contentBuilder'],
'bodyMode' => 'plaintext',
],
'events' => [
'bodyFields' => ['description'],
'dateField' => 'eventDate',
'extraFields' => [
'location' => 'location',
'ticketUrl' => 'ticketUrl',
],
],
],
'assets' => [
'documents' => [],
'images' => [
'extraFields' => [
'altText' => 'altText',
],
],
],
'custom' => [
\mynamespace\indexers\CareersIndexer::class,
],
namespace mynamespace\indexers;
use craft\base\Element;
use craft\elements\Entry;
use korcontrol\craftalgolia\services\indexers\BaseEntryIndexer;
final class CareersIndexer extends BaseEntryIndexer
{
public function sectionHandle(): string
{
return 'careers';
}
public function getIndexData(Element $element): array
{
/** @var Entry $entry */
$entry = $element;
return [
'objectID' => (string) $entry->id,
'elementID' => (string) $entry->id,
'section' => 'Careers',
'sectionHandle' => 'careers',
'title' => (string) $entry->title,
'url' => (string) $entry->getUrl(),
'department' => (string) $entry->getFieldValue('department'),
'body' => $this->getSearchKeywordsForField($entry, 'jobDescription'),
];
}
}
namespace mynamespace\indexers;
use craft\base\Element;
use craft\elements\Asset;
use korcontrol\craftalgolia\services\indexers\BaseAssetIndexer;
final class ReportsIndexer extends BaseAssetIndexer
{
public function volumeHandle(): string
{
return 'reports';
}
public function getIndexData(Element $element): array
{
/** @var Asset $asset */
$asset = $element;
return [
'objectID' => (string) $asset->id,
'elementID' => (string) $asset->id,
'section' => 'Reports',
'sectionHandle' => 'reports',
'title' => (string) $asset->title,
'url' => (string) $asset->getUrl(),
'year' => (string) $asset->getFieldValue('reportYear'),
];
}
}
bash
cp vendor/korcontrol/craft-algolia/src/config.php config/algolia.php