Issue #2225431 by mr.baileys, Wim Leers, swentel: Apply formatters and widgets to Taxonomy Term base fields.
							parent
							
								
									63375a5e7b
								
							
						
					
					
						commit
						d19928b695
					
				| 
						 | 
					@ -152,12 +152,17 @@ entity_form_display.field.*:
 | 
				
			||||||
      type: integer
 | 
					      type: integer
 | 
				
			||||||
      label: 'Weight'
 | 
					      label: 'Weight'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
entity_view_display.field.string:
 | 
					entity_form_display.field.string:
 | 
				
			||||||
  type: entity_field_view_display_base
 | 
					  type: entity_field_form_display_base
 | 
				
			||||||
  label: 'Plain text display format settings'
 | 
					  label: 'Text field display format settings'
 | 
				
			||||||
  mapping:
 | 
					  mapping:
 | 
				
			||||||
    settings:
 | 
					    settings:
 | 
				
			||||||
      type: sequence
 | 
					      type: mapping
 | 
				
			||||||
      label: 'Settings'
 | 
					      label: 'Settings'
 | 
				
			||||||
      sequence:
 | 
					      mapping:
 | 
				
			||||||
        - type: string
 | 
					        size:
 | 
				
			||||||
 | 
					          type: integer
 | 
				
			||||||
 | 
					          label: 'Size of textfield'
 | 
				
			||||||
 | 
					        placeholder:
 | 
				
			||||||
 | 
					          type: label
 | 
				
			||||||
 | 
					          label: 'Placeholder'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,9 +5,15 @@ mode: default
 | 
				
			||||||
status: true
 | 
					status: true
 | 
				
			||||||
content:
 | 
					content:
 | 
				
			||||||
  name:
 | 
					  name:
 | 
				
			||||||
 | 
					    type: string
 | 
				
			||||||
    weight: -5
 | 
					    weight: -5
 | 
				
			||||||
 | 
					    settings:
 | 
				
			||||||
 | 
					      size: 60
 | 
				
			||||||
 | 
					      placeholder: ''
 | 
				
			||||||
  description:
 | 
					  description:
 | 
				
			||||||
 | 
					    type: text_textfield
 | 
				
			||||||
    weight: 0
 | 
					    weight: 0
 | 
				
			||||||
 | 
					    settings: { }
 | 
				
			||||||
dependencies:
 | 
					dependencies:
 | 
				
			||||||
  entity:
 | 
					  entity:
 | 
				
			||||||
    - taxonomy.vocabulary.forums
 | 
					    - taxonomy.vocabulary.forums
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -368,8 +368,8 @@ class ForumTest extends WebTestBase {
 | 
				
			||||||
    $description = $this->randomName(100);
 | 
					    $description = $this->randomName(100);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $edit = array(
 | 
					    $edit = array(
 | 
				
			||||||
      'name' => $name,
 | 
					      'name[0][value]' => $name,
 | 
				
			||||||
      'description[value]' => $description,
 | 
					      'description[0][value]' => $description,
 | 
				
			||||||
      'parent[0]' => $parent,
 | 
					      'parent[0]' => $parent,
 | 
				
			||||||
      'weight' => '0',
 | 
					      'weight' => '0',
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,12 +50,12 @@ class PathTaxonomyTermTest extends PathTestBase {
 | 
				
			||||||
    $vocabulary = entity_load('taxonomy_vocabulary', 'tags');
 | 
					    $vocabulary = entity_load('taxonomy_vocabulary', 'tags');
 | 
				
			||||||
    $description = $this->randomName();
 | 
					    $description = $this->randomName();
 | 
				
			||||||
    $edit = array(
 | 
					    $edit = array(
 | 
				
			||||||
      'name' => $this->randomName(),
 | 
					      'name[0][value]' => $this->randomName(),
 | 
				
			||||||
      'description[value]' => $description,
 | 
					      'description[0][value]' => $description,
 | 
				
			||||||
      'path[alias]' => $this->randomName(),
 | 
					      'path[alias]' => $this->randomName(),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
    $this->drupalPostForm('admin/structure/taxonomy/manage/' . $vocabulary->id() . '/add', $edit, t('Save'));
 | 
					    $this->drupalPostForm('admin/structure/taxonomy/manage/' . $vocabulary->id() . '/add', $edit, t('Save'));
 | 
				
			||||||
    $tid = db_query("SELECT tid FROM {taxonomy_term_data} WHERE name = :name", array(':name' => $edit['name']))->fetchField();
 | 
					    $tid = db_query("SELECT tid FROM {taxonomy_term_data} WHERE name = :name", array(':name' => $edit['name[0][value]']))->fetchField();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Confirm that the alias works.
 | 
					    // Confirm that the alias works.
 | 
				
			||||||
    $this->drupalGet($edit['path[alias]']);
 | 
					    $this->drupalGet($edit['path[alias]']);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,6 +8,3 @@
 | 
				
			||||||
.taxonomy-term-divider-bottom {
 | 
					.taxonomy-term-divider-bottom {
 | 
				
			||||||
  border-top: 1px dotted #ccc;
 | 
					  border-top: 1px dotted #ccc;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.taxonomy-term-description {
 | 
					 | 
				
			||||||
  margin: 5px 0 20px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -132,12 +132,33 @@ class Term extends ContentEntityBase implements TermInterface {
 | 
				
			||||||
      ->setLabel(t('Name'))
 | 
					      ->setLabel(t('Name'))
 | 
				
			||||||
      ->setDescription(t('The term name.'))
 | 
					      ->setDescription(t('The term name.'))
 | 
				
			||||||
      ->setRequired(TRUE)
 | 
					      ->setRequired(TRUE)
 | 
				
			||||||
      ->setSetting('max_length', 255);
 | 
					      ->setSetting('max_length', 255)
 | 
				
			||||||
 | 
					      ->setDisplayOptions('view', array(
 | 
				
			||||||
 | 
					        'label' => 'hidden',
 | 
				
			||||||
 | 
					        'type' => 'string',
 | 
				
			||||||
 | 
					        'weight' => -5,
 | 
				
			||||||
 | 
					      ))
 | 
				
			||||||
 | 
					      ->setDisplayOptions('form', array(
 | 
				
			||||||
 | 
					        'type' => 'string',
 | 
				
			||||||
 | 
					        'weight' => -5,
 | 
				
			||||||
 | 
					      ))
 | 
				
			||||||
 | 
					      ->setDisplayConfigurable('form', TRUE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $fields['description'] = FieldDefinition::create('text_long')
 | 
					    $fields['description'] = FieldDefinition::create('text_long')
 | 
				
			||||||
      ->setLabel(t('Description'))
 | 
					      ->setLabel(t('Description'))
 | 
				
			||||||
      ->setDescription(t('A description of the term.'))
 | 
					      ->setDescription(t('A description of the term.'))
 | 
				
			||||||
      ->setSetting('text_processing', 1);
 | 
					      ->setSetting('text_processing', 1)
 | 
				
			||||||
 | 
					      ->setDisplayOptions('view', array(
 | 
				
			||||||
 | 
					        'label' => 'hidden',
 | 
				
			||||||
 | 
					        'type' => 'text_default',
 | 
				
			||||||
 | 
					        'weight' => 0,
 | 
				
			||||||
 | 
					      ))
 | 
				
			||||||
 | 
					      ->setDisplayConfigurable('view', TRUE)
 | 
				
			||||||
 | 
					      ->setDisplayOptions('form', array(
 | 
				
			||||||
 | 
					        'type' => 'text_textfield',
 | 
				
			||||||
 | 
					        'weight' => 0,
 | 
				
			||||||
 | 
					      ))
 | 
				
			||||||
 | 
					      ->setDisplayConfigurable('form', TRUE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $fields['weight'] = FieldDefinition::create('integer')
 | 
					    $fields['weight'] = FieldDefinition::create('integer')
 | 
				
			||||||
      ->setLabel(t('Weight'))
 | 
					      ->setLabel(t('Weight'))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -61,22 +61,6 @@ class TermFormController extends ContentEntityFormController {
 | 
				
			||||||
    $form_state['taxonomy']['parent'] = $parent;
 | 
					    $form_state['taxonomy']['parent'] = $parent;
 | 
				
			||||||
    $form_state['taxonomy']['vocabulary'] = $vocabulary;
 | 
					    $form_state['taxonomy']['vocabulary'] = $vocabulary;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $form['name'] = array(
 | 
					 | 
				
			||||||
      '#type' => 'textfield',
 | 
					 | 
				
			||||||
      '#title' => $this->t('Name'),
 | 
					 | 
				
			||||||
      '#default_value' => $term->getName(),
 | 
					 | 
				
			||||||
      '#maxlength' => 255,
 | 
					 | 
				
			||||||
      '#required' => TRUE,
 | 
					 | 
				
			||||||
      '#weight' => -5,
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $form['description'] = array(
 | 
					 | 
				
			||||||
      '#type' => 'text_format',
 | 
					 | 
				
			||||||
      '#title' => $this->t('Description'),
 | 
					 | 
				
			||||||
      '#default_value' => $term->getDescription(),
 | 
					 | 
				
			||||||
      '#format' => $term->getFormat(),
 | 
					 | 
				
			||||||
      '#weight' => 0,
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    $language_configuration = $this->moduleHandler->moduleExists('language') ? language_get_default_configuration('taxonomy_term', $vocabulary->id()) : FALSE;
 | 
					    $language_configuration = $this->moduleHandler->moduleExists('language') ? language_get_default_configuration('taxonomy_term', $vocabulary->id()) : FALSE;
 | 
				
			||||||
    $form['langcode'] = array(
 | 
					    $form['langcode'] = array(
 | 
				
			||||||
      '#type' => 'language_select',
 | 
					      '#type' => 'language_select',
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,33 +16,11 @@ use Drupal\Core\Entity\EntityViewBuilder;
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
class TermViewBuilder extends EntityViewBuilder {
 | 
					class TermViewBuilder extends EntityViewBuilder {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /**
 | 
					 | 
				
			||||||
   * {@inheritdoc}
 | 
					 | 
				
			||||||
   */
 | 
					 | 
				
			||||||
  public function buildContent(array $entities, array $displays, $view_mode, $langcode = NULL) {
 | 
					 | 
				
			||||||
    parent::buildContent($entities, $displays, $view_mode, $langcode);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    foreach ($entities as $entity) {
 | 
					 | 
				
			||||||
      // Add the description if enabled.
 | 
					 | 
				
			||||||
      // @todo Remove this when base fields are able to use formatters.
 | 
					 | 
				
			||||||
      // https://drupal.org/node/2144919
 | 
					 | 
				
			||||||
      $display = $displays[$entity->bundle()];
 | 
					 | 
				
			||||||
      if ($entity->getDescription() && $display->getComponent('description')) {
 | 
					 | 
				
			||||||
        $entity->content['description'] = array(
 | 
					 | 
				
			||||||
          '#markup' => $entity->description->processed,
 | 
					 | 
				
			||||||
          '#prefix' => '<div class="taxonomy-term-description">',
 | 
					 | 
				
			||||||
          '#suffix' => '</div>',
 | 
					 | 
				
			||||||
        );
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /**
 | 
					  /**
 | 
				
			||||||
   * {@inheritdoc}
 | 
					   * {@inheritdoc}
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
  protected function alterBuild(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode, $langcode = NULL) {
 | 
					  protected function alterBuild(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode, $langcode = NULL) {
 | 
				
			||||||
    parent::alterBuild($build, $entity, $display, $view_mode, $langcode);
 | 
					    parent::alterBuild($build, $entity, $display, $view_mode, $langcode);
 | 
				
			||||||
    $build['#attached']['css'][] = drupal_get_path('module', 'taxonomy') . '/css/taxonomy.module.css';
 | 
					 | 
				
			||||||
    $build['#contextual_links']['taxonomy_term'] = array(
 | 
					    $build['#contextual_links']['taxonomy_term'] = array(
 | 
				
			||||||
      'route_parameters' => array('taxonomy_term' => $entity->id()),
 | 
					      'route_parameters' => array('taxonomy_term' => $entity->id()),
 | 
				
			||||||
      'metadata' => array('changed' => $entity->getChangedTime()),
 | 
					      'metadata' => array('changed' => $entity->getChangedTime()),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -79,10 +79,10 @@ class TaxonomyImageTest extends TaxonomyTestBase {
 | 
				
			||||||
    // Create a term and upload the image.
 | 
					    // Create a term and upload the image.
 | 
				
			||||||
    $files = $this->drupalGetTestFiles('image');
 | 
					    $files = $this->drupalGetTestFiles('image');
 | 
				
			||||||
    $image = array_pop($files);
 | 
					    $image = array_pop($files);
 | 
				
			||||||
    $edit['name'] = $this->randomName();
 | 
					    $edit['name[0][value]'] = $this->randomName();
 | 
				
			||||||
    $edit['files[field_test_0]'] = drupal_realpath($image->uri);
 | 
					    $edit['files[field_test_0]'] = drupal_realpath($image->uri);
 | 
				
			||||||
    $this->drupalPostForm('admin/structure/taxonomy/manage/' . $this->vocabulary->id()  . '/add', $edit, t('Save'));
 | 
					    $this->drupalPostForm('admin/structure/taxonomy/manage/' . $this->vocabulary->id()  . '/add', $edit, t('Save'));
 | 
				
			||||||
    $terms = entity_load_multiple_by_properties('taxonomy_term', array('name' => $edit['name']));
 | 
					    $terms = entity_load_multiple_by_properties('taxonomy_term', array('name' => $edit['name[0][value]']));
 | 
				
			||||||
    $term = reset($terms);
 | 
					    $term = reset($terms);
 | 
				
			||||||
    $this->assertText(t('Created new term @name.', array('@name' => $term->getName())));
 | 
					    $this->assertText(t('Created new term @name.', array('@name' => $term->getName())));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,11 +57,11 @@ class TermLanguageTest extends TaxonomyTestBase {
 | 
				
			||||||
    $this->assertField('edit-langcode', t('The language selector field was found on the page.'));
 | 
					    $this->assertField('edit-langcode', t('The language selector field was found on the page.'));
 | 
				
			||||||
    // Submit the term.
 | 
					    // Submit the term.
 | 
				
			||||||
    $edit = array(
 | 
					    $edit = array(
 | 
				
			||||||
      'name' => $this->randomName(),
 | 
					      'name[0][value]' => $this->randomName(),
 | 
				
			||||||
      'langcode' => 'aa',
 | 
					      'langcode' => 'aa',
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
    $this->drupalPostForm(NULL, $edit, t('Save'));
 | 
					    $this->drupalPostForm(NULL, $edit, t('Save'));
 | 
				
			||||||
    $terms = taxonomy_term_load_multiple_by_name($edit['name']);
 | 
					    $terms = taxonomy_term_load_multiple_by_name($edit['name[0][value]']);
 | 
				
			||||||
    $term = reset($terms);
 | 
					    $term = reset($terms);
 | 
				
			||||||
    $this->assertEqual($term->language()->id, $edit['langcode'], 'The term contains the correct langcode.');
 | 
					    $this->assertEqual($term->language()->id, $edit['langcode'], 'The term contains the correct langcode.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -296,8 +296,8 @@ class TermTest extends TaxonomyTestBase {
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
  function testTermInterface() {
 | 
					  function testTermInterface() {
 | 
				
			||||||
    $edit = array(
 | 
					    $edit = array(
 | 
				
			||||||
      'name' => $this->randomName(12),
 | 
					      'name[0][value]' => $this->randomName(12),
 | 
				
			||||||
      'description[value]' => $this->randomName(100),
 | 
					      'description[0][value]' => $this->randomName(100),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
    // Explicitly set the parents field to 'root', to ensure that
 | 
					    // Explicitly set the parents field to 'root', to ensure that
 | 
				
			||||||
    // TermFormController::save() handles the invalid term ID correctly.
 | 
					    // TermFormController::save() handles the invalid term ID correctly.
 | 
				
			||||||
| 
						 | 
					@ -306,7 +306,7 @@ class TermTest extends TaxonomyTestBase {
 | 
				
			||||||
    // Create the term to edit.
 | 
					    // Create the term to edit.
 | 
				
			||||||
    $this->drupalPostForm('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/add', $edit, t('Save'));
 | 
					    $this->drupalPostForm('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/add', $edit, t('Save'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $terms = taxonomy_term_load_multiple_by_name($edit['name']);
 | 
					    $terms = taxonomy_term_load_multiple_by_name($edit['name[0][value]']);
 | 
				
			||||||
    $term = reset($terms);
 | 
					    $term = reset($terms);
 | 
				
			||||||
    $this->assertNotNull($term, 'Term found in database.');
 | 
					    $this->assertNotNull($term, 'Term found in database.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -318,12 +318,12 @@ class TermTest extends TaxonomyTestBase {
 | 
				
			||||||
    // the first edit link found on the listing page is to our term.
 | 
					    // the first edit link found on the listing page is to our term.
 | 
				
			||||||
    $this->clickLink(t('edit'));
 | 
					    $this->clickLink(t('edit'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $this->assertRaw($edit['name'], 'The randomly generated term name is present.');
 | 
					    $this->assertRaw($edit['name[0][value]'], 'The randomly generated term name is present.');
 | 
				
			||||||
    $this->assertText($edit['description[value]'], 'The randomly generated term description is present.');
 | 
					    $this->assertText($edit['description[0][value]'], 'The randomly generated term description is present.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $edit = array(
 | 
					    $edit = array(
 | 
				
			||||||
      'name' => $this->randomName(14),
 | 
					      'name[0][value]' => $this->randomName(14),
 | 
				
			||||||
      'description[value]' => $this->randomName(102),
 | 
					      'description[0][value]' => $this->randomName(102),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Edit the term.
 | 
					    // Edit the term.
 | 
				
			||||||
| 
						 | 
					@ -331,25 +331,25 @@ class TermTest extends TaxonomyTestBase {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Check that the term is still present at admin UI after edit.
 | 
					    // Check that the term is still present at admin UI after edit.
 | 
				
			||||||
    $this->drupalGet('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/overview');
 | 
					    $this->drupalGet('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/overview');
 | 
				
			||||||
    $this->assertText($edit['name'], 'The randomly generated term name is present.');
 | 
					    $this->assertText($edit['name[0][value]'], 'The randomly generated term name is present.');
 | 
				
			||||||
    $this->assertLink(t('edit'));
 | 
					    $this->assertLink(t('edit'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Check the term link can be clicked through to the term page.
 | 
					    // Check the term link can be clicked through to the term page.
 | 
				
			||||||
    $this->clickLink($edit['name']);
 | 
					    $this->clickLink($edit['name[0][value]']);
 | 
				
			||||||
    $this->assertResponse(200, 'Term page can be accessed via the listing link.');
 | 
					    $this->assertResponse(200, 'Term page can be accessed via the listing link.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // View the term and check that it is correct.
 | 
					    // View the term and check that it is correct.
 | 
				
			||||||
    $this->drupalGet('taxonomy/term/' . $term->id());
 | 
					    $this->drupalGet('taxonomy/term/' . $term->id());
 | 
				
			||||||
    $this->assertText($edit['name'], 'The randomly generated term name is present.');
 | 
					    $this->assertText($edit['name[0][value]'], 'The randomly generated term name is present.');
 | 
				
			||||||
    $this->assertText($edit['description[value]'], 'The randomly generated term description is present.');
 | 
					    $this->assertText($edit['description[0][value]'], 'The randomly generated term description is present.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Did this page request display a 'term-listing-heading'?
 | 
					    // Did this page request display a 'term-listing-heading'?
 | 
				
			||||||
    $this->assertPattern('|class="taxonomy-term-description"|', 'Term page displayed the term description element.');
 | 
					    $this->assertTrue($this->xpath('//div[contains(@class, "field-taxonomy-term--description")]'), 'Term page displayed the term description element.');
 | 
				
			||||||
    // Check that it does NOT show a description when description is blank.
 | 
					    // Check that it does NOT show a description when description is blank.
 | 
				
			||||||
    $term->setDescription(NULL);
 | 
					    $term->setDescription(NULL);
 | 
				
			||||||
    $term->save();
 | 
					    $term->save();
 | 
				
			||||||
    $this->drupalGet('taxonomy/term/' . $term->id());
 | 
					    $this->drupalGet('taxonomy/term/' . $term->id());
 | 
				
			||||||
    $this->assertNoPattern('|class="taxonomy-term-description"|', 'Term page did not display the term description when description was blank.');
 | 
					    $this->assertFalse($this->xpath('//div[contains(@class, "field-taxonomy-term--description")]'), 'Term page did not display the term description when description was blank.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Check that the description value is processed.
 | 
					    // Check that the description value is processed.
 | 
				
			||||||
    $value = $this->randomName();
 | 
					    $value = $this->randomName();
 | 
				
			||||||
| 
						 | 
					@ -437,19 +437,19 @@ class TermTest extends TaxonomyTestBase {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Add a new term with multiple parents.
 | 
					    // Add a new term with multiple parents.
 | 
				
			||||||
    $edit = array(
 | 
					    $edit = array(
 | 
				
			||||||
      'name' => $this->randomName(12),
 | 
					      'name[0][value]' => $this->randomName(12),
 | 
				
			||||||
      'description[value]' => $this->randomName(100),
 | 
					      'description[0][value]' => $this->randomName(100),
 | 
				
			||||||
      'parent[]' => array(0, $parent->id()),
 | 
					      'parent[]' => array(0, $parent->id()),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
    // Save the new term.
 | 
					    // Save the new term.
 | 
				
			||||||
    $this->drupalPostForm('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/add', $edit, t('Save'));
 | 
					    $this->drupalPostForm('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/add', $edit, t('Save'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Check that the term was successfully created.
 | 
					    // Check that the term was successfully created.
 | 
				
			||||||
    $terms = taxonomy_term_load_multiple_by_name($edit['name']);
 | 
					    $terms = taxonomy_term_load_multiple_by_name($edit['name[0][value]']);
 | 
				
			||||||
    $term = reset($terms);
 | 
					    $term = reset($terms);
 | 
				
			||||||
    $this->assertNotNull($term, 'Term found in database.');
 | 
					    $this->assertNotNull($term, 'Term found in database.');
 | 
				
			||||||
    $this->assertEqual($edit['name'], $term->getName(), 'Term name was successfully saved.');
 | 
					    $this->assertEqual($edit['name[0][value]'], $term->getName(), 'Term name was successfully saved.');
 | 
				
			||||||
    $this->assertEqual($edit['description[value]'], $term->getDescription(), 'Term description was successfully saved.');
 | 
					    $this->assertEqual($edit['description[0][value]'], $term->getDescription(), 'Term description was successfully saved.');
 | 
				
			||||||
    // Check that the parent tid is still there. The other parent (<root>) is
 | 
					    // Check that the parent tid is still there. The other parent (<root>) is
 | 
				
			||||||
    // not added by taxonomy_term_load_parents().
 | 
					    // not added by taxonomy_term_load_parents().
 | 
				
			||||||
    $parents = taxonomy_term_load_parents($term->id());
 | 
					    $parents = taxonomy_term_load_parents($term->id());
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -81,6 +81,25 @@ class TermTranslationUITest extends ContentTranslationUITest {
 | 
				
			||||||
    return array('name' => $this->name) + parent::getNewEntityValues($langcode);
 | 
					    return array('name' => $this->name) + parent::getNewEntityValues($langcode);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Returns an edit array containing the values to be posted.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  protected function getEditValues($values, $langcode, $new = FALSE) {
 | 
				
			||||||
 | 
					    $edit = parent::getEditValues($values, $langcode, $new);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // To be able to post values for the configurable base fields (name,
 | 
				
			||||||
 | 
					    // description) have to be suffixed with [0][value].
 | 
				
			||||||
 | 
					    foreach ($edit as $property => $value) {
 | 
				
			||||||
 | 
					      foreach (array('name', 'description') as $key) {
 | 
				
			||||||
 | 
					        if ($property == $key) {
 | 
				
			||||||
 | 
					          $edit[$key . '[0][value]'] = $value;
 | 
				
			||||||
 | 
					          unset($edit[$property]);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return $edit;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /**
 | 
					  /**
 | 
				
			||||||
   * Overrides \Drupal\content_translation\Tests\ContentTranslationUITest::testTranslationUI().
 | 
					   * Overrides \Drupal\content_translation\Tests\ContentTranslationUITest::testTranslationUI().
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -75,7 +75,7 @@ class TokenReplaceTest extends TaxonomyTestBase {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Edit $term2, setting $term1 as parent.
 | 
					    // Edit $term2, setting $term1 as parent.
 | 
				
			||||||
    $edit = array();
 | 
					    $edit = array();
 | 
				
			||||||
    $edit['name'] = '<blink>Blinking Text</blink>';
 | 
					    $edit['name[0][value]'] = '<blink>Blinking Text</blink>';
 | 
				
			||||||
    $edit['parent[]'] = array($term1->id());
 | 
					    $edit['parent[]'] = array($term1->id());
 | 
				
			||||||
    $this->drupalPostForm('taxonomy/term/' . $term2->id() . '/edit', $edit, t('Save'));
 | 
					    $this->drupalPostForm('taxonomy/term/' . $term2->id() . '/edit', $edit, t('Save'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,34 +37,34 @@ class VocabularyPermissionsTest extends TaxonomyTestBase {
 | 
				
			||||||
    // Visit the main taxonomy administration page.
 | 
					    // Visit the main taxonomy administration page.
 | 
				
			||||||
    $this->drupalGet('admin/structure/taxonomy/manage/' . $vocabulary->id() . '/add');
 | 
					    $this->drupalGet('admin/structure/taxonomy/manage/' . $vocabulary->id() . '/add');
 | 
				
			||||||
    $this->assertResponse(200);
 | 
					    $this->assertResponse(200);
 | 
				
			||||||
    $this->assertField('edit-name', 'Add taxonomy term form opened successfully.');
 | 
					    $this->assertField('edit-name-0-value', 'Add taxonomy term form opened successfully.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Submit the term.
 | 
					    // Submit the term.
 | 
				
			||||||
    $edit = array();
 | 
					    $edit = array();
 | 
				
			||||||
    $edit['name'] = $this->randomName();
 | 
					    $edit['name[0][value]'] = $this->randomName();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $this->drupalPostForm(NULL, $edit, t('Save'));
 | 
					    $this->drupalPostForm(NULL, $edit, t('Save'));
 | 
				
			||||||
    $this->assertRaw(t('Created new term %name.', array('%name' => $edit['name'])), 'Term created successfully.');
 | 
					    $this->assertRaw(t('Created new term %name.', array('%name' => $edit['name[0][value]'])), 'Term created successfully.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $terms = taxonomy_term_load_multiple_by_name($edit['name']);
 | 
					    $terms = taxonomy_term_load_multiple_by_name($edit['name[0][value]']);
 | 
				
			||||||
    $term = reset($terms);
 | 
					    $term = reset($terms);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Edit the term.
 | 
					    // Edit the term.
 | 
				
			||||||
    $this->drupalGet('taxonomy/term/' . $term->id() . '/edit');
 | 
					    $this->drupalGet('taxonomy/term/' . $term->id() . '/edit');
 | 
				
			||||||
    $this->assertResponse(200);
 | 
					    $this->assertResponse(200);
 | 
				
			||||||
    $this->assertText($edit['name'], 'Edit taxonomy term form opened successfully.');
 | 
					    $this->assertText($edit['name[0][value]'], 'Edit taxonomy term form opened successfully.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $edit['name'] = $this->randomName();
 | 
					    $edit['name[0][value]'] = $this->randomName();
 | 
				
			||||||
    $this->drupalPostForm(NULL, $edit, t('Save'));
 | 
					    $this->drupalPostForm(NULL, $edit, t('Save'));
 | 
				
			||||||
    $this->assertRaw(t('Updated term %name.', array('%name' => $edit['name'])), 'Term updated successfully.');
 | 
					    $this->assertRaw(t('Updated term %name.', array('%name' => $edit['name[0][value]'])), 'Term updated successfully.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Delete the vocabulary.
 | 
					    // Delete the vocabulary.
 | 
				
			||||||
    $this->drupalGet('taxonomy/term/' . $term->id() . '/delete');
 | 
					    $this->drupalGet('taxonomy/term/' . $term->id() . '/delete');
 | 
				
			||||||
    $this->assertRaw(t('Are you sure you want to delete the term %name?', array('%name' => $edit['name'])), 'Delete taxonomy term form opened successfully.');
 | 
					    $this->assertRaw(t('Are you sure you want to delete the term %name?', array('%name' => $edit['name[0][value]'])), 'Delete taxonomy term form opened successfully.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Confirm deletion.
 | 
					    // Confirm deletion.
 | 
				
			||||||
    $this->drupalPostForm(NULL, NULL, t('Delete'));
 | 
					    $this->drupalPostForm(NULL, NULL, t('Delete'));
 | 
				
			||||||
    $this->assertRaw(t('Deleted term %name.', array('%name' => $edit['name'])), 'Term deleted.');
 | 
					    $this->assertRaw(t('Deleted term %name.', array('%name' => $edit['name[0][value]'])), 'Term deleted.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Test as user with "edit" permissions.
 | 
					    // Test as user with "edit" permissions.
 | 
				
			||||||
    $user = $this->drupalCreateUser(array("edit terms in {$vocabulary->id()}"));
 | 
					    $user = $this->drupalCreateUser(array("edit terms in {$vocabulary->id()}"));
 | 
				
			||||||
| 
						 | 
					@ -82,9 +82,9 @@ class VocabularyPermissionsTest extends TaxonomyTestBase {
 | 
				
			||||||
    $this->assertResponse(200);
 | 
					    $this->assertResponse(200);
 | 
				
			||||||
    $this->assertText($term->getName(), 'Edit taxonomy term form opened successfully.');
 | 
					    $this->assertText($term->getName(), 'Edit taxonomy term form opened successfully.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $edit['name'] = $this->randomName();
 | 
					    $edit['name[0][value]'] = $this->randomName();
 | 
				
			||||||
    $this->drupalPostForm(NULL, $edit, t('Save'));
 | 
					    $this->drupalPostForm(NULL, $edit, t('Save'));
 | 
				
			||||||
    $this->assertRaw(t('Updated term %name.', array('%name' => $edit['name'])), 'Term updated successfully.');
 | 
					    $this->assertRaw(t('Updated term %name.', array('%name' => $edit['name[0][value]'])), 'Term updated successfully.');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Delete the vocabulary.
 | 
					    // Delete the vocabulary.
 | 
				
			||||||
    $this->drupalGet('taxonomy/term/' . $term->id() . '/delete');
 | 
					    $this->drupalGet('taxonomy/term/' . $term->id() . '/delete');
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -132,38 +132,6 @@ function taxonomy_term_uri($term) {
 | 
				
			||||||
  ));
 | 
					  ));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Implements hook_entity_extra_field_info().
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
function taxonomy_entity_extra_field_info() {
 | 
					 | 
				
			||||||
  $return = array();
 | 
					 | 
				
			||||||
  foreach (entity_get_bundles('taxonomy_term') as $bundle => $bundle_info) {
 | 
					 | 
				
			||||||
    $return['taxonomy_term'][$bundle] = array(
 | 
					 | 
				
			||||||
      'form' => array(
 | 
					 | 
				
			||||||
        'name' => array(
 | 
					 | 
				
			||||||
          'label' => t('Name'),
 | 
					 | 
				
			||||||
          'description' => t('Term name textfield'),
 | 
					 | 
				
			||||||
          'weight' => -5,
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        'description' => array(
 | 
					 | 
				
			||||||
          'label' => t('Description'),
 | 
					 | 
				
			||||||
          'description' => t('Term description textarea'),
 | 
					 | 
				
			||||||
          'weight' => 0,
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
      ),
 | 
					 | 
				
			||||||
      'display' => array(
 | 
					 | 
				
			||||||
        'description' => array(
 | 
					 | 
				
			||||||
          'label' => t('Description'),
 | 
					 | 
				
			||||||
          'description' => t('Term description'),
 | 
					 | 
				
			||||||
          'weight' => 0,
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
      ),
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  return $return;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Return nodes attached to a term across all field instances.
 | 
					 * Return nodes attached to a term across all field instances.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
| 
						 | 
					@ -349,7 +317,8 @@ function template_preprocess_taxonomy_term(&$variables) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  $variables['url'] = $term->url();
 | 
					  $variables['url'] = $term->url();
 | 
				
			||||||
  // We use name here because that is what appears in the UI.
 | 
					  // We use name here because that is what appears in the UI.
 | 
				
			||||||
  $variables['name'] = String::checkPlain($term->getName());
 | 
					  $variables['name'] = $variables['elements']['name'];
 | 
				
			||||||
 | 
					  unset($variables['elements']['name']);
 | 
				
			||||||
  $variables['page'] = $variables['view_mode'] == 'full' && taxonomy_term_is_page($term);
 | 
					  $variables['page'] = $variables['view_mode'] == 'full' && taxonomy_term_is_page($term);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Helpful $content variable for templates.
 | 
					  // Helpful $content variable for templates.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@ use Drupal\Core\Field\FieldItemListInterface;
 | 
				
			||||||
 *   field_types = {
 | 
					 *   field_types = {
 | 
				
			||||||
 *     "text",
 | 
					 *     "text",
 | 
				
			||||||
 *     "text_long",
 | 
					 *     "text_long",
 | 
				
			||||||
 *     "text_with_summary"
 | 
					 *     "text_with_summary",
 | 
				
			||||||
 *   },
 | 
					 *   },
 | 
				
			||||||
 *   edit = {
 | 
					 *   edit = {
 | 
				
			||||||
 *     "editor" = "plain_text"
 | 
					 *     "editor" = "plain_text"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,7 @@ bundle: article
 | 
				
			||||||
mode: default
 | 
					mode: default
 | 
				
			||||||
content:
 | 
					content:
 | 
				
			||||||
  title:
 | 
					  title:
 | 
				
			||||||
    type: text_textfield
 | 
					    type: string
 | 
				
			||||||
    weight: 0
 | 
					    weight: 0
 | 
				
			||||||
    settings:
 | 
					    settings:
 | 
				
			||||||
      size: 60
 | 
					      size: 60
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue