Source of file PageAlgoliaExtension.php
Size: 1,347 Bytes - Last Modified: 2021-12-24T06:44:37+00:00
/var/www/docs.ssmods.com/process/src/src/PageAlgoliaExtension.php
1234567891011121314151617181920212223242526272829303132333435363738 | <?php namespace AlgoliaSyncModuleDirectLease; use SilverStripe\ORM\DataExtension; class PageAlgoliaExtension extends DataExtension { /** * To keep track of the state of our SiteTree, we need to track the deleted pages so we can remove those from Algolia. * Before a page gets deleted, create an object holding the ID. */ public function onBeforeDelete() { parent::onBeforeDelete(); if(DeletedPageAlgoliaObjectIDHolder::get()->filter('AlgoliaObjectID', $this->owner->ID)->count() == 0) { $holder = DeletedPageAlgoliaObjectIDHolder::create(); $holder->AlgoliaObjectID = $this->owner->ID; $holder->write(); } } /** * To keep track of the state of our SiteTree, we need to track the unpublished pages so we can remove those from Algolia. * After write check if the page is archived */ public function onAfterWrite() { parent::onAfterWrite(); if($this->owner->isArchived()) { if (DeletedPageAlgoliaObjectIDHolder::get()->filter('AlgoliaObjectID', $this->owner->ID)->count() == 0) { $holder = DeletedPageAlgoliaObjectIDHolder::create(); $holder->AlgoliaObjectID = $this->owner->ID; $holder->write(); } } } } |