From e8919c6d42f67955a35dd67dd616556972baa54d Mon Sep 17 00:00:00 2001 From: Nathaniel Catchpole <catch@35733.no-reply.drupal.org> Date: Sat, 13 Jul 2013 12:09:13 +0100 Subject: [PATCH] Issue #2009680 by DarthDrupal, cwells73, Samvel, adamcowboy, hussainweb: Fixed Replace theme() with drupal_render() in taxonomy module. --- .../Tests/TaxonomyTermIndentationTest.php | 60 +++++++++++++++++++ core/modules/taxonomy/taxonomy.admin.inc | 9 ++- 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyTermIndentationTest.php diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyTermIndentationTest.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyTermIndentationTest.php new file mode 100644 index 000000000000..59970c4729ed --- /dev/null +++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyTermIndentationTest.php @@ -0,0 +1,60 @@ +<?php + +/** + * @file + * Contains \Drupal\taxonomy\Tests\TaxonomyTermIndentationTest. + */ + +namespace Drupal\taxonomy\Tests; + +/** + * Testing term indentation functionality in term list page. + */ +class TaxonomyTermIndentationTest extends TaxonomyTestBase { + + /** + * Modules to enable. + * + * @var array + */ + public static $modules = array('taxonomy'); + + public static function getInfo() { + return array( + 'name' => 'Taxonomy term indentation', + 'description' => 'Ensure that the term indentation works properly.', + 'group' => 'Taxonomy', + ); + } + + public function setUp() { + parent::setUp(); + $this->admin_user = $this->drupalCreateUser(array('administer taxonomy', 'bypass node access')); + $this->drupalLogin($this->admin_user); + $this->vocabulary = $this->createVocabulary(); + } + + /** + * Tests term indentation. + */ + function testTermIndentation() { + // Create three taxonomy terms. + $term1 = $this->createTerm($this->vocabulary); + $term2 = $this->createTerm($this->vocabulary); + $term3 = $this->createTerm($this->vocabulary); + + // Indent the second term under the first one. + $edit = array( + 'terms[tid:' . $term2->id() . ':0][term][tid]' => 2, + 'terms[tid:' . $term2->id() . ':0][term][parent]' => 1, + 'terms[tid:' . $term2->id() . ':0][term][depth]' => 1, + 'terms[tid:' . $term2->id() . ':0][weight]' => 1, + ); + + // Submit the edited form and check for HTML indentation element presence. + $this->drupalPost('admin/structure/taxonomy/manage/' . $this->vocabulary->get('vid'), $edit, t('Save')); + $this->assertPattern('|<div class="indentation"> </div>|'); + } + +} + diff --git a/core/modules/taxonomy/taxonomy.admin.inc b/core/modules/taxonomy/taxonomy.admin.inc index 62defe288ee7..4161f5af9108 100644 --- a/core/modules/taxonomy/taxonomy.admin.inc +++ b/core/modules/taxonomy/taxonomy.admin.inc @@ -159,8 +159,15 @@ function taxonomy_overview_terms($form, &$form_state, Vocabulary $vocabulary) { ); foreach ($current_page as $key => $term) { $form['terms'][$key]['#term'] = $term; + $indentation = array(); + if (isset($term->depth) && $term->depth > 0) { + $indentation = array( + '#theme' => 'indentation', + '#size' => $term->depth, + ); + } $form['terms'][$key]['term'] = array( - '#prefix' => isset($term->depth->value) && $term->depth->value > 0 ? theme('indentation', array('size' => $term->depth->value)) : '', + '#prefix' => !empty($indentation) ? drupal_render($indentation) : '', '#type' => 'link', '#title' => $term->label(), '#href' => "taxonomy/term/" . $term->id(), -- GitLab