Issue #2074229 by Gábor Hojtsy, tstoeckler: Add changed time tracking to taxonomy terms.
parent
65c125e577
commit
e346ac5fda
|
@ -106,6 +106,10 @@ class FilledStandardUpgradePathTest extends UpgradePathTestBase {
|
||||||
$this->assertTrue(isset($entity_view_modes['full']));
|
$this->assertTrue(isset($entity_view_modes['full']));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ensure that taxonomy terms have a 'changed' timestamp.
|
||||||
|
$term = entity_load('taxonomy_term', 1);
|
||||||
|
$this->assertNotEqual($term->getChangedTime(), 0);
|
||||||
|
|
||||||
// Check that user data has been migrated correctly.
|
// Check that user data has been migrated correctly.
|
||||||
$query = db_query('SELECT * FROM {users_data}');
|
$query = db_query('SELECT * FROM {users_data}');
|
||||||
|
|
||||||
|
|
|
@ -173,6 +173,14 @@ class Term extends EntityNG implements TermInterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function preSave(EntityStorageControllerInterface $storage_controller) {
|
||||||
|
// Before saving the term, set changed time.
|
||||||
|
$this->changed->value = REQUEST_TIME;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
|
@ -241,7 +249,19 @@ class Term extends EntityNG implements TermInterface {
|
||||||
'settings' => array('default_value' => 0),
|
'settings' => array('default_value' => 0),
|
||||||
'computed' => TRUE,
|
'computed' => TRUE,
|
||||||
);
|
);
|
||||||
|
$properties['changed'] = array(
|
||||||
|
'label' => t('Changed'),
|
||||||
|
'description' => t('The time that the term was last edited.'),
|
||||||
|
'type' => 'integer_field',
|
||||||
|
);
|
||||||
return $properties;
|
return $properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function getChangedTime() {
|
||||||
|
return $this->changed->value;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,10 +8,11 @@
|
||||||
namespace Drupal\taxonomy;
|
namespace Drupal\taxonomy;
|
||||||
|
|
||||||
use Drupal\Core\Entity\ContentEntityInterface;
|
use Drupal\Core\Entity\ContentEntityInterface;
|
||||||
|
use Drupal\Core\Entity\EntityChangedInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides an interface defining a taxonomy term entity.
|
* Provides an interface defining a taxonomy term entity.
|
||||||
*/
|
*/
|
||||||
interface TermInterface extends ContentEntityInterface {
|
interface TermInterface extends ContentEntityInterface, EntityChangedInterface {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,6 +83,12 @@ function taxonomy_schema() {
|
||||||
'default' => 0,
|
'default' => 0,
|
||||||
'description' => 'The weight of this term in relation to other terms.',
|
'description' => 'The weight of this term in relation to other terms.',
|
||||||
),
|
),
|
||||||
|
'changed' => array(
|
||||||
|
'description' => 'The Unix timestamp when the term was most recently saved.',
|
||||||
|
'type' => 'int',
|
||||||
|
'not null' => TRUE,
|
||||||
|
'default' => 0,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
'primary key' => array('tid'),
|
'primary key' => array('tid'),
|
||||||
'unique keys' => array(
|
'unique keys' => array(
|
||||||
|
@ -393,3 +399,17 @@ function taxonomy_update_8007() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a changed column for taxonomy terms.
|
||||||
|
*/
|
||||||
|
function taxonomy_update_8008() {
|
||||||
|
$spec = array(
|
||||||
|
'description' => 'The Unix timestamp when the term was most recently saved.',
|
||||||
|
'type' => 'int',
|
||||||
|
'not null' => TRUE,
|
||||||
|
'default' => 0,
|
||||||
|
'initial' => REQUEST_TIME,
|
||||||
|
);
|
||||||
|
db_add_field('taxonomy_term_data', 'changed', $spec);
|
||||||
|
}
|
||||||
|
|
|
@ -179,6 +179,74 @@ function taxonomy_views_data() {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$data['taxonomy_term_data']['changed'] = array(
|
||||||
|
'title' => t('Updated date'),
|
||||||
|
'help' => t('The date the term was last updated.'),
|
||||||
|
'field' => array(
|
||||||
|
'id' => 'date',
|
||||||
|
),
|
||||||
|
'sort' => array(
|
||||||
|
'id' => 'date'
|
||||||
|
),
|
||||||
|
'filter' => array(
|
||||||
|
'id' => 'date',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
$data['taxonomy_term_data']['changed_fulldate'] = array(
|
||||||
|
'title' => t('Updated date'),
|
||||||
|
'help' => t('Date in the form of CCYYMMDD.'),
|
||||||
|
'argument' => array(
|
||||||
|
'field' => 'changed',
|
||||||
|
'id' => 'date_fulldate',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
$data['taxonomy_term_data']['changed_year_month'] = array(
|
||||||
|
'title' => t('Updated year + month'),
|
||||||
|
'help' => t('Date in the form of YYYYMM.'),
|
||||||
|
'argument' => array(
|
||||||
|
'field' => 'changed',
|
||||||
|
'id' => 'date_year_month',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
$data['taxonomy_term_data']['changed_year'] = array(
|
||||||
|
'title' => t('Updated year'),
|
||||||
|
'help' => t('Date in the form of YYYY.'),
|
||||||
|
'argument' => array(
|
||||||
|
'field' => 'changed',
|
||||||
|
'id' => 'date_year',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
$data['taxonomy_term_data']['changed_month'] = array(
|
||||||
|
'title' => t('Updated month'),
|
||||||
|
'help' => t('Date in the form of MM (01 - 12).'),
|
||||||
|
'argument' => array(
|
||||||
|
'field' => 'changed',
|
||||||
|
'id' => 'date_month',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
$data['taxonomy_term_data']['changed_day'] = array(
|
||||||
|
'title' => t('Updated day'),
|
||||||
|
'help' => t('Date in the form of DD (01 - 31).'),
|
||||||
|
'argument' => array(
|
||||||
|
'field' => 'changed',
|
||||||
|
'id' => 'date_day',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
$data['taxonomy_term_data']['changed_week'] = array(
|
||||||
|
'title' => t('Updated week'),
|
||||||
|
'help' => t('Date in the form of WW (01 - 53).'),
|
||||||
|
'argument' => array(
|
||||||
|
'field' => 'changed',
|
||||||
|
'id' => 'date_week',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
// Content translation field.
|
// Content translation field.
|
||||||
if (Drupal::moduleHandler()->moduleExists('content_translation')) {
|
if (Drupal::moduleHandler()->moduleExists('content_translation')) {
|
||||||
$data['taxonomy_term_data']['translation_link'] = array(
|
$data['taxonomy_term_data']['translation_link'] = array(
|
||||||
|
|
Loading…
Reference in New Issue