ソースを参照

fix autoPath and only set active for li elements

euromark 13 年 前
コミット
59b0c1ae4f
2 ファイル変更9 行追加8 行削除
  1. 8 7
      Test/Case/View/Helper/TreeHelperTest.php
  2. 1 1
      View/Helper/TreeHelper.php

+ 8 - 7
Test/Case/View/Helper/TreeHelperTest.php

@@ -90,6 +90,7 @@ TEXT;
 	//TODO: fixme: the root ul/li elements should also be marked active...
 	public function testGenerateWithAutoPath() {
 		$tree = $this->Model->find('threaded');
+		debug($tree);
 
 		$output = $this->Tree->generate($tree, array('autoPath' => array(7, 10))); // Two-SubA-1
 		debug($output);
@@ -101,10 +102,10 @@ TEXT;
 		<li>One-SubA</li>
 	</ul>
 	</li>
-	<li>Two
-	<ul class="active">
+	<li class="active">Two
+	<ul>
 		<li class="active">Two-SubA
-		<ul class="active">
+		<ul>
 			<li class="active">Two-SubA-1
 			<ul>
 				<li>Two-SubA-1-1</li>
@@ -135,12 +136,12 @@ TEXT;
 		<li>One-SubA</li>
 	</ul>
 	</li>
-	<li>Two
-	<ul class="active">
+	<li class="active">Two
+	<ul>
 		<li class="active">Two-SubA
-		<ul class="active">
+		<ul>
 			<li class="active">Two-SubA-1
-			<ul class="active">
+			<ul>
 				<li class="active">Two-SubA-1-1</li>
 			</ul>
 			</li>

+ 1 - 1
View/Helper/TreeHelper.php

@@ -442,7 +442,7 @@ class TreeHelper extends AppHelper {
 				$this->_itemAttributes = array();
 			}
 		}
-		if ($autoPath && $depth) {
+		if ($autoPath && $rType == $itemType) {
 			if ($this->_settings['data'][$model][$left] <= $autoPath[0] && $this->_settings['data'][$model][$right] >= $autoPath[1]) {
 				$attributes['class'][] = $autoPath[2];
 			} elseif (isset($autoPath[3]) && $this->_settings['data'][$model][$left] == $autoPath[0]) {