Source of file FindElasticaSearchPageExtension.php
Size: 1,536 Bytes - Last Modified: 2021-12-23T10:58:34+00:00
/var/www/docs.ssmods.com/process/src/src/SilverStripe/Elastica/FindElasticaSearchPageExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | <?php class FindElasticaSearchPageExtension extends Extension { public static $fixture_file = 'elastica/tests/ElasticaTest.yml'; private $_CachedLastEdited = null; public function SearchPageURI($identifier) { $result = ''; $searchPage = $this->getSearchPage($identifier); if ($searchPage) { $result = $searchPage->AbsoluteLink(); } return $result; } public function SearchPageForm($identifier, $buttonTextOverride = null) { $result = null; $searchPage = $this->getSearchPage($identifier); if ($searchPage) { $result = $searchPage->SearchForm($buttonTextOverride); } return $result; } public function getSearchPage($identifier) { if (!isset($this->_CachedLastEdited)) { $this->_CachedLastEdited = ElasticSearchPage::get()->max('LastEdited'); } $ck = $this->_CachedLastEdited; $ck = str_replace(' ', '_', $ck); $ck = str_replace(':', '_', $ck); $ck = str_replace('-', '_', $ck); $cache = SS_Cache::factory('searchpagecache'); $searchPage = null; $cachekeyname = 'searchpageuri'.$identifier.$this->owner->Locale.$ck; if (!($searchPage = unserialize($cache->load($cachekeyname)))) { $searchPage = ElasticSearchPage::get()->filter('Identifier', $identifier)->first(); $cache->save(serialize($searchPage), $cachekeyname); } return $searchPage; } } |