DatasourcePluginBase.php in Search API 8
File
src/Datasource/DatasourcePluginBase.php
View source
<?php
namespace Drupal\search_api\Datasource;
use Drupal\Core\Access\AccessResult;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Language\Language;
use Drupal\Core\Session\AccountInterface;
use Drupal\Core\TypedData\ComplexDataInterface;
use Drupal\Core\TypedData\TranslatableInterface;
use Drupal\search_api\Plugin\IndexPluginBase;
abstract class DatasourcePluginBase extends IndexPluginBase implements DatasourceInterface {
public function getPropertyDefinitions() {
return [];
}
public function load($id) {
$items = $this
->loadMultiple([
$id,
]);
return $items ? reset($items) : NULL;
}
public function loadMultiple(array $ids) {
return [];
}
public function getItemLabel(ComplexDataInterface $item) {
return NULL;
}
public function getItemBundle(ComplexDataInterface $item) {
return $this
->getPluginId();
}
public function getItemLanguage(ComplexDataInterface $item) {
if ($item instanceof TranslatableInterface) {
return $item
->language()
->getId();
}
$item = $item
->getValue();
if ($item instanceof TranslatableInterface) {
return $item
->language()
->getId();
}
return Language::LANGCODE_NOT_SPECIFIED;
}
public function getItemUrl(ComplexDataInterface $item) {
return NULL;
}
public function checkItemAccess(ComplexDataInterface $item, AccountInterface $account = NULL) {
@trigger_error('\\Drupal\\search_api\\Datasource\\DatasourceInterface::checkItemAccess() is deprecated in search_api:8.x-1.14 and is removed from search_api:2.0.0. Use getItemAccessResult() instead. See https://www.drupal.org/node/3051902', E_USER_DEPRECATED);
return $this
->getItemAccessResult($item, $account)
->isAllowed();
}
public function getItemAccessResult(ComplexDataInterface $item, AccountInterface $account = NULL) {
return AccessResult::allowed();
}
public function getViewModes($bundle = NULL) {
return [];
}
public function getBundles() {
return [
$this
->getPluginId() => $this
->label(),
];
}
public function viewItem(ComplexDataInterface $item, $view_mode, $langcode = NULL) {
return [];
}
public function viewMultipleItems(array $items, $view_mode, $langcode = NULL) {
$build = [];
foreach ($items as $key => $item) {
$build[$key] = $this
->viewItem($item, $view_mode, $langcode);
}
return $build;
}
public function getEntityTypeId() {
return NULL;
}
public function getItemIds($page = NULL) {
return NULL;
}
public function canContainEntityReferences() : bool {
return FALSE;
}
public function getAffectedItemsForEntityChange(EntityInterface $entity, array $foreign_entity_relationship_map, EntityInterface $original_entity = NULL) : array {
return [];
}
public function getFieldDependencies(array $fields) {
return [];
}
public function getListCacheContexts() {
return [];
}
}