accessibility-8.x-1.x-dev/lib/Drupal/accessibility/Entity/AccessibilityTest.php
lib/Drupal/accessibility/Entity/AccessibilityTest.php
<?php
/**
* @file
* Definition of Drupal\accessibility\Entity\AccessibilityTest.
*/
namespace Drupal\accessibility\Entity;
use Drupal\Core\Entity\ContentEntityBase;
use Drupal\Core\Entity\EntityStorageControllerInterface;
use Drupal\Core\Entity\EntityMalformedException;
use Drupal\Core\Entity\Annotation\EntityType;
use Drupal\Core\Annotation\Translation;
use Drupal\Core\Language\Language;
use Drupal\accessibility\AccessibilityTestInterface;
use Drupal\Core\Field\FieldDefinition;
/**
* Defines the accessibility test entity.
*
* @EntityType(
* id = "accessibility_test",
* label = @Translation("Accessibility test"),
* bundle_label = @Translation("Accessibility test"),
* module = "accessibility",
* controllers = {
* "storage" = "Drupal\accessibility\AccessibilityTestStorageController",
* "render" = "Drupal\accessibility\AccessibilityTestRenderController",
* "access" = "Drupal\accessibility\AccessibilityTestAccessController",
* "form" = {
* "default" = "Drupal\accessibility\Form\AccessibilityTestFormController",
* "delete" = "Drupal\accessibility\Form\AccessibilityTestDeleteForm"
* },
* "translation" = "Drupal\accessibility\TermTranslationController"
* },
* base_table = "accessibility_test",
* uri_callback = "accessibility_test_uri",
* fieldable = TRUE,
* translatable = TRUE,
* entity_keys = {
* "id" = "test_id",
* "label" = "name",
* "uuid" = "uuid"
* },
* bundle_keys = {
* },
* links = {
* "canonical" = "/accessibility-test/{accessibility_test}",
* "edit-form" = "/accessibility-test/{accessibility_test}/edit"
* },
* menu_base_path = "accessibility-test/%accessibility_test",
* route_base_path = "admin/config/accessibility/tests",
* permission_granularity = "entity"
* )
*/
class AccessibilityTest extends ContentEntityBase implements AccessibilityTestInterface {
/**
* The test ID.
*
* @var \Drupal\Core\Entity\Field\FieldInterface
*/
public $test_id;
/**
* Name of the test.
*
* @var \Drupal\Core\Entity\Field\FieldInterface
*/
public $name;
/**
* The test quail name.
*
* @var \Drupal\Core\Entity\Field\FieldInterface
*/
public $quail_name;
/**
* The test severity.
*
* @var \Drupal\Core\Entity\Field\FieldInterface
*/
public $severity;
/**
* The test status.
*
* @var \Drupal\Core\Entity\Field\FieldInterface
*/
public $status;
/**
* Implements Drupal\Core\Entity\EntityInterface::id().
*/
public function id() {
return $this->get('test_id')->value;
}
/**
* Overides \Drupal\Core\Entity\EntityNG::init().
*/
protected function init() {
parent::init();
unset($this->test_id);
unset($this->name);
unset($this->quail_name);
unset($this->severity);
unset($this->status);
}
/**
* {@inheritdoc}
*/
public static function postDelete(EntityStorageControllerInterface $storage_controller, array $entities) {
}
/**
* {@inheritdoc}
*/
public function postSave(EntityStorageControllerInterface $storage_controller, $update = TRUE) {
/*if (property_exists($test, 'is_new') && $test->is_new) {
drupal_write_record('accessibility_test', $test);
}
else {
\Drupal::database()->update('accessibility_test')
->fields(array('name' => $test->name,
'severity' => $test->severity,
'created' => $test->created,
'changed' => $test->changed,
'quail_name' => $test->quail_name,
'data' => serialize($test->data)))
->condition('test_id', $test->test_id)
->execute();
}
cache_clear_all('accessibility_tests_json', 'cache');*/
}
/**
* {@inheritdoc}
*/
public static function baseFieldDefinitions($entity_type) {
$fields['test_id'] = FieldDefinition::create('integer')
->setLabel(t('Term ID'))
->setDescription(t('The test ID.'))
->setReadOnly(TRUE);
$fields['uuid'] = FieldDefinition::create('uuid')
->setLabel(t('UUID'))
->setDescription(t('The test UUID.'))
->setReadOnly(TRUE);
$fields['name'] = FieldDefinition::create('string')
->setLabel(t('Name'))
->setDescription(t('The test name name.'));
$fields['langcode'] = FieldDefinition::create('string')
->setLabel(t('Language code'))
->setDescription(t('The node language code.'));
$fields['quail_name'] = FieldDefinition::create('string')
->setLabel(t('Machine name'))
->setDescription(t('Name of QUAIL test.'));
$fields['severity'] = FieldDefinition::create('string')
->setLabel(t('Severity'))
->setDescription(t('Severity level of the test test.'));
$fields['status'] = FieldDefinition::create('integer')
->setLabel(t('Status'))
->setDescription(t('Whether the test is active or not.'))
->setFieldSettings(array('default_value' => 0));
return $fields;
}
}
