Skip to content

Commit 600debe

Browse files
committed
fix: syntax for virtual page integration
1 parent 07a8ff9 commit 600debe

File tree

4 files changed

+24
-8
lines changed

4 files changed

+24
-8
lines changed

_config/config.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ SilverStripe\CMS\Model\SiteTree:
77
SilverStripe\Subsites\Pages\SubsitesVirtualPage:
88
extensions:
99
- Wilr\SilverStripe\Algolia\Extensions\SubsitesVirtualPageExtension
10-
ilverStripe\CMS\Model\VirtualPage:
10+
SilverStripe\CMS\Model\VirtualPage:
1111
extensions:
1212
- Wilr\SilverStripe\Algolia\Extensions\VirtualPageExtension
13+
non_virtual_fields:
14+
- AlgoliaUUID
15+
- AlgoliaIndexed
16+
- AlgoliaError

src/Extensions/AlgoliaObjectExtension.php

+9-3
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,15 @@ private function updateAlgoliaFields($fields)
176176

177177
if ($table && count($fields)) {
178178
$sets = [];
179+
179180
foreach ($fields as $field => $value) {
180181
$sets[] = "$field = $value";
181182
}
183+
182184
$set = implode(', ', $sets);
183-
DB::query(sprintf('UPDATE %s SET %s WHERE ID = %s', $table, $set, $this->owner->ID));
185+
$query = sprintf('UPDATE %s SET %s WHERE ID = %s', $table, $set, $this->owner->ID);
186+
187+
DB::query($query);
184188

185189
if ($this->owner->hasExtension(Versioned::class) && $this->owner->hasStages()) {
186190
DB::query(
@@ -311,10 +315,12 @@ public function onBeforeWrite()
311315
public function assignAlgoliaUUID($writeImmediately = true)
312316
{
313317
$uuid = Uuid::uuid4();
314-
$this->owner->AlgoliaUUID = $uuid->toString();
318+
$value = $uuid->toString();
319+
320+
$this->owner->AlgoliaUUID = $value;
315321

316322
if ($writeImmediately) {
317-
$this->updateAlgoliaFields(['AlgoliaUUID' => "'" . $this->owner->AlgoliaUUID . "'"]);
323+
$this->updateAlgoliaFields(['AlgoliaUUID' => "'$value'"]);
318324
}
319325
}
320326

src/Extensions/SubsitesVirtualPageExtension.php

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public function exportObjectToAlgolia($toIndex)
3535
}
3636

3737
$attributes->push('objectClassName', $originalObject->ClassName);
38+
3839
$specs = $originalObject->config()->get('algolia_index_fields');
3940
$attributes = $indexer->addSpecsToAttributes($originalObject, $attributes, $specs);
4041

src/Tasks/AlgoliaReindexItem.php

+9-4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Wilr\SilverStripe\Algolia\Tasks;
44

5+
use SilverStripe\CMS\Model\VirtualPage;
56
use SilverStripe\Core\Environment;
67
use SilverStripe\Dev\BuildTask;
78
use SilverStripe\ORM\DataObject;
@@ -24,14 +25,14 @@ public function run($request)
2425
if ($request->getVar('class')) {
2526
$targetClass = $request->getVar('class');
2627
} else {
27-
echo 'Missing class';
28+
echo 'Missing class argument';
2829
exit;
2930
}
3031

3132
if ($request->getVar('id')) {
3233
$id = $request->getVar('id');
3334
} else {
34-
echo 'Missing class';
35+
echo 'Missing id argument';
3536
exit;
3637
}
3738

@@ -44,15 +45,19 @@ public function run($request)
4445

4546
// Set AlgoliaUUID, in case it wasn't previously set
4647
if (!$obj->AlgoliaUUID) {
48+
echo 'No AlgoliaUUID set on object, generating one...' . PHP_EOL;
4749
$obj->assignAlgoliaUUID(true);
4850
}
4951

52+
5053
$result = $obj->doImmediateIndexInAlgolia();
5154

5255
echo sprintf(
53-
'Indexed: %s, UUID: %s',
56+
'Indexed: %s%sUUID: %s%s%s',
5457
$result ? 'true' : 'false',
55-
$obj->AlgoliaUUID,
58+
PHP_EOL,
59+
$obj->AlgoliaUUID ? $obj->AlgoliaUUID : 'No ID set',
60+
PHP_EOL,
5661
$obj->AlgoliaError ? 'Error from Algolia: ' . $obj->AlgoliaError : ''
5762
);
5863
}

0 commit comments

Comments
 (0)