// ESTO ES EN EL MODELO
// CUSTOM VARS
var $documentsList = array(); // esta propiedad guardará lo que vamos tomando del array
// CUSTOM METHODS
// devuelve un listado de los elementos del arbol con sus elementos principales
function getDocumentsList() {
// creo el array que contendrá los datos
$documentList = array();
// traigo los datos
$documents = $this->find('threaded', array('order' => 'Document.folder DESC, Document.description ASC') );
//pr( $documents );
// creo una variable global que pueda ser accedida por la otra función para ir guardando los valores
$this->traverseArray( $documents );
return( $this->documentsList );
}
// recorre el array anidado y va asignando en el array los valores
function traverseArray( $items, $level = -1 ) {
$level++;
foreach( $items as $item ) {
// datos de cada elemento
$this->documentsList[] = array( 'id' => $item['Document']['id'], 'text' => $item['Document']['description'], 'level' => $level, 'folder' => $item['Document']['folder'], 'filename' => $item['Document']['filename'] );
// si es un array y no está vacÃo lo recorre
if ( is_array( $item['children'] ) && !empty( $item['children'] ) ) {
$this->traverseArray( $item['children'], $level );
}
}
}