Source of file SearchIndex_Recording.php
Size: 1,726 Bytes - Last Modified: 2021-12-23T10:31:32+00:00
/var/www/docs.ssmods.com/process/src/src/Search/Indexes/SearchIndex_Recording.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | <?php namespace SilverStripe\FullTextSearch\Search\Indexes; use SilverStripe\FullTextSearch\Search\Indexes\SearchIndex; /** * A search index that just records actions. Useful for testing */ abstract class SearchIndex_Recording extends SearchIndex { public $added = array(); public $deleted = array(); public $committed = false; public function reset() { $this->added = array(); $this->deleted = array(); $this->committed = false; } public function add($object) { $res = array(); $res['ID'] = $object->ID; foreach ($this->getFieldsIterator() as $name => $field) { $val = $this->_getFieldValue($object, $field); $res[$name] = $val; } $this->added[] = $res; } public function getAdded($fields = array()) { $res = array(); foreach ($this->added as $added) { $filtered = array(); foreach ($fields as $field) { if (isset($added[$field])) { $filtered[$field] = $added[$field]; } } $res[] = $filtered; } return $res; } public function delete($base, $id, $state) { $this->deleted[] = array('base' => $base, 'id' => $id, 'state' => $state); } public function commit() { $this->committed = true; } public function getIndexName() { return get_class($this); } public function getIsCommitted() { return $this->committed; } public function getService() { // Causes commits to the service to be redirected back to the same object return $this; } } |