Skip to content

Commit

Permalink
fix: replaced requireDefaultRecords with DatabaseAdminExtension onAft…
Browse files Browse the repository at this point in the history
…erBuild (#32)
  • Loading branch information
tiller1010 committed Dec 21, 2023
1 parent 66c32ec commit ba37bf6
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 44 deletions.
7 changes: 7 additions & 0 deletions _config/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
Name: Search Module dev/build
---
SilverStripe\ORM\DatabaseAdmin:
extensions:
- Werkbot\Search\DatabaseAdminExtension

15 changes: 15 additions & 0 deletions src/DatabaseAdminExtension.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace Werkbot\Search;

use SilverStripe\Control\Controller;
use SilverStripe\ORM\DataExtension;

class DatabaseAdminExtension extends DataExtension
{
public function onAfterBuild()
{
(new SearchIndex())->run(Controller::curr()->getRequest());
}
}

29 changes: 5 additions & 24 deletions src/SearchableExtension.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
<?php
/**/

namespace Werkbot\Search;
/**/
use SilverStripe\ORM\DB;

use SilverStripe\Core\ClassInfo;
use SilverStripe\ORM\DataExtension;
use SilverStripe\Versioned\Versioned;
/**/

class SearchableExtension extends DataExtension
{
/*
Expand All @@ -15,7 +14,7 @@ class SearchableExtension extends DataExtension
*/
public $SearchableExtension_Title_ColumnName = "Title";
public $SearchableExtension_Summary_ColumnName = "Content";
/**/

private static $casting = [
"getSearchableTitle" => "Text",
"getSearchableSummary" => 'HTMLText',
Expand Down Expand Up @@ -223,23 +222,5 @@ public function onAfterDelete()
{
$this->owner->deleteIndex();
}
/**
* requireDefaultRecords
* Runs the index on a dev/build
**/
public function requireDefaultRecords()
{
parent::requireDefaultRecords();

if (!file_exists(dirname(__DIR__, 4).'/search')) {
mkdir(dirname(__DIR__, 4).'/search');
echo "Created search folder<br /><br />";
}
$indexer = TNTSearchHelper::Instance()->getTNTSearchIndex(true);
if ($query = $this->owner->getIndexQuery()) {
$indexer->query($query);
$indexer->run();
DB::alteration_message('Indexing...'.$this->owner->ClassName, 'created');
}
}
}

40 changes: 20 additions & 20 deletions src/Tasks/SearchIndex.php
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
<?php
/**/

namespace Werkbot\Search;
/**/
use SilverStripe\Dev\BuildTask;

use SilverStripe\Core\ClassInfo;
use SilverStripe\Dev\BuildTask;
use SilverStripe\ORM\DB;
use Werkbot\Search\TNTSearchHelper;
/**/

class SearchIndex extends BuildTask
{
/**/
protected $title = "Search Index";
protected $description = "";
protected $enabled = true;
/**/

public function run($request)
{
if (!file_exists(dirname(__DIR__, 5).'/search')) {
mkdir(dirname(__DIR__, 5).'/search');
echo "Created search folder<br /><br />";
}
$indexer = TNTSearchHelper::Instance()->getTNTSearchIndex(true);
$classes = ClassInfo::classesWithExtension(SearchableExtension::class);
foreach ($classes as $Title => $ClassName) {
$searchableClass = singleton($ClassName);
if ($query = $searchableClass->getIndexQuery()) {
echo "Indexing...$ClassName<br />";
$indexer->query($query);
$indexer->run();
echo "<br /><br />";
}
if (!file_exists(dirname(__DIR__, 5) . '/search')) {
mkdir(dirname(__DIR__, 5) . '/search');
echo "Created search folder<br /><br />";
}
$indexer = TNTSearchHelper::Instance()->getTNTSearchIndex(true);
$classes = ClassInfo::classesWithExtension(SearchableExtension::class);
foreach ($classes as $title => $className) {
$searchableClass = singleton($className);
if ($query = $searchableClass->getIndexQuery()) {
$indexer->query($query);
$indexer->run();
DB::alteration_message('Indexing...' . $className, 'created');
}
}
}
}

0 comments on commit ba37bf6

Please sign in to comment.