|
|
@@ -15,6 +15,7 @@
|
|
|
namespace Cake\Collection\Iterator;
|
|
|
|
|
|
use Cake\Collection\CollectionTrait;
|
|
|
+use Cake\Collection\Iterator\TreePrinter;
|
|
|
use RecursiveIteratorIterator;
|
|
|
|
|
|
/**
|
|
|
@@ -26,4 +27,27 @@ class TreeIterator extends RecursiveIteratorIterator {
|
|
|
|
|
|
use CollectionTrait;
|
|
|
|
|
|
+ protected $_mode;
|
|
|
+
|
|
|
+ public function __construct($items, $mode = RecursiveIteratorIterator::LEAVES_ONLY, $flags = 0) {
|
|
|
+ parent::__construct($items, $mode, $flags);
|
|
|
+ $this->_mode = $mode;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function printer($valuePath, $keyPath = null, $spacer = '__') {
|
|
|
+ if (!$keyPath) {
|
|
|
+ $counter = 0;
|
|
|
+ $keyPath = function() use ($counter) {
|
|
|
+ return $counter++;
|
|
|
+ };
|
|
|
+ }
|
|
|
+ return new TreePrinter(
|
|
|
+ $this->getInnerIterator(),
|
|
|
+ $valuePath,
|
|
|
+ $keyPath,
|
|
|
+ $spacer,
|
|
|
+ $this->_mode
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
}
|