Return to Snippet

Revision: 16193
at July 28, 2009 16:29 by sveggiani


Initial Code
// 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 );
		}
	}

}

Initial URL


Initial Description


Initial Title
recursively walks a Cakephp threaded array (Tree behavior)

Initial Tags
cakephp

Initial Language
PHP