namespace App\Jobs;
+use App\Models\Asset;
use App\Models\Resource;
+use App\Models\Tour;
use Cubist\Backpack\Magic\PageData;
+use Cubist\Minisearch\Document;
use Cubist\Minisearch\Document\PDF;
use Cubist\Minisearch\Index;
public function indexLibrary()
{
+ $indexableTypes = ['audio', 'video'];
+ $assets = Asset::all();
+ foreach ($assets as $asset) {
+ $data = $asset->getPageData();
+ if (!in_array($data->get('type'), $indexableTypes)) {
+ continue;
+ }
+ if (!$data->get('theme')) {
+ continue;
+ }
+ $doc = new Document();
+ $doc->setType($data->get('type'));
+ $doc->setId('media_' . $data->get('type') . '_' . $data->get('id'));
+ $doc->setUrl($doc->getId());
+ $doc->setTitle($data->get('title'));
+ $doc->setText(implode(' ', $data->get('keywords')));
+
+ $this->addDocument($doc);
+ }
}
+ /**
+ * @throws \Exception
+ */
public function indexResources()
{
/** @var PageData $data */
$data = Resource::find('1')->getPageData();
+ $documents = $data->get('documents');
+ foreach ($documents as $i => $document) {
+ if (!$document['document_pdf']) {
+ continue;
+ }
+ foreach ($data->getMediaPathsByCollection($document['document_pdf']) as $pdf) {
+ $document = new PDF($pdf);
+ $document->setId('resources_documents_' . $i);
+ $document->setUrl($document->getId());
+ $document->setTitle($document['document_title']);
+ $document->setThumb($data->getImageURLbyCollection($document['document_image']));
+ $document->setType('pdf');
+ $this->addDocument($document);
+ break;
+ }
+ }
+
$chapters = $data->get('chapters');
foreach ($chapters as $i => $chapter) {
foreach ($chapter['subchapters'] as $j => $subchapter) {
}
foreach ($data->getMediaPathsByCollection($memo['memo_pdf']) as $pdf) {
$document = new PDF($pdf);
- $document->setId('resources_' . $i . '_' . $j . '_' . $k);
- $document->setUrl('resources_' . $i . '_' . $j . '_' . $k);
+ $document->setId('resources_memos_' . $i . '_' . $j . '_' . $k);
+ $document->setUrl($document->getId());
$document->setTitle($memo['memo_title']);
$document->setThumb($data->getImageURLbyCollection($memo['memo_image']));
$document->setType('pdf');
$this->addDocument($document);
break;
}
-
}
}
}
-
}
public function indexTour()
{
+ /** @var PageData $data */
+ $data = Tour::find('1')->getPageData();
+ $themes = $data->get('tour_themes');
+ foreach ($themes as $i => $theme) {
+ foreach ($theme['theme_documents'] as $j => $doc) {
+ if (!$doc['memo_pdf']) {
+ continue;
+ }
+ foreach ($data->getMediaPathsByCollection($doc['memo_pdf']) as $pdf) {
+ $document = new PDF($pdf);
+ $document->setId('tour_documents_' . $i . '_' . $j);
+ $document->setUrl($document->getId());
+ $document->setTitle($doc['memo_title']);
+ $document->setThumb($data->getImageURLbyCollection($doc['memo_image']));
+ $document->setType('pdf');
+ $this->addDocument($document);
+ break;
+ }
+ }
+ }
}
-
}
<?php
namespace App\Models;
+
use App\SubForms\TourTheme;
use Cubist\Backpack\Magic\Fields\BunchOfFieldsMultiple;
use Cubist\Backpack\Magic\Fields\Text;
$this->addField('title', Text::class, 'Titre', ['tab' => 'Intro']);
$this->addField('subtitle', Textarea::class, 'Instructions', ['tab' => 'Intro']);
- $this->addField('tour_themes', BunchOfFieldsMultiple::class, 'Chapitres', ['tab' => 'Mémos', 'bunch' => TourTheme::class, 'add_label' => 'Ajouter un thème']);
+ $this->addField('tour_themes', BunchOfFieldsMultiple::class, '', ['tab' => 'Thèmes', 'bunch' => TourTheme::class, 'add_label' => 'Ajouter un thème']);
}
}