base.inc in Entityqueue 7
Contains Entityqueue handler interface and base class.
File
plugins/entityqueue/handler/base.inc
View source
<?php
interface EntityQueueHandlerInterface {
public static function getInstance(EntityQueue $queue);
public function settingsForm();
public function subqueueForm(EntitySubqueue $subqueue, &$form_state);
public function getTargetTypeLabel();
public function getHandlerLabel();
public function getSubqueueLabel(EntitySubqueue $subqueue);
public function canDeleteSubqueue(EntitySubqueue $subqueue);
public function create();
public function load();
public function loadFromCode();
public function preSave();
public function insert();
public function update();
public function preDelete();
public function postDelete();
}
abstract class EntityQueueHandlerBase implements EntityQueueHandlerInterface {
protected $plugin;
protected $queue;
public static function getInstance(EntityQueue $queue) {
$entity_type = $queue->target_type;
$entity_info = entity_get_info($entity_type);
if (empty($entity_info['base table'])) {
return BrokenEntityQueueHandler::getInstance($queue);
}
ctools_include('plugins');
$plugin = ctools_get_plugins('entityqueue', 'handler', $queue->handler);
if (empty($plugin)) {
return BrokenEntityQueueHandler::getInstance($queue);
}
return new $plugin['class']($queue);
}
protected function __construct(EntityQueue $queue) {
$this->queue = $queue;
ctools_include('plugins');
$plugin = ctools_get_plugins('entityqueue', 'handler', $this->queue->handler);
$this->plugin = $plugin;
}
public function settingsForm() {
return array();
}
public function subqueueForm(EntitySubqueue $subqueue, &$form_state) {
return array();
}
public function getTargetTypeLabel() {
$entity_info = entity_get_info($this->queue->target_type);
if (!empty($entity_info['base table'])) {
return $entity_info['label'];
}
return '<em>' . t('Missing entity type (@type)', array(
'@type' => $this->queue->target_type,
)) . '</em>';
}
public function getHandlerLabel() {
return $this->plugin['title'];
}
public function getSubqueueLabel(EntitySubqueue $subqueue) {
}
public function canDeleteSubqueue(EntitySubqueue $subqueue) {
return TRUE;
}
public function create() {
}
public function load() {
}
public function loadFromCode() {
}
public function preSave() {
}
public function insert() {
}
public function update() {
}
public function preDelete() {
}
public function postDelete() {
}
}
class BrokenEntityQueueHandler extends EntityQueueHandlerBase {
public static function getInstance(EntityQueue $queue) {
return new BrokenEntityQueueHandler($queue);
}
public function settingsForm() {
$form['handler'] = array(
'#markup' => t('The selected handler is broken.'),
);
return $form;
}
public function subqueueForm(EntitySubqueue $subqueue, &$form_state) {
$form['handler'] = array(
'#markup' => t('The selected handler is broken.'),
);
return $form;
}
public function getHandlerLabel() {
return '<em>' . t('Broken/missing handler') . '</em>';
}
public function getSubqueueLabel(EntitySubqueue $subqueue) {
return '';
}
}