Revision: 30984
Updated Code
at August 26, 2010 22:26 by sveggiani
Updated Code
function admin_reorder( $id = false ) {
$this->autoRender = false;
// obtengo el parent para ordenar por el
$itemParent = $this->Category->getparentnode( $id );
// si el contenido tiene un padre...
if ( !empty( $itemParent['Category']['id'] ) ) :
# CakeLog::write('debug', 'Ordenando un nodo de nivel > 0');
// ordeno el padre
$this->Category->reorder( array( 'id' => $itemParent['Category']['id'], 'field' => 'order_by', 'order' => 'ASC' ) );
else:
# CakeLog::write('debug', 'Ordenando un nodo de nivel = 0');
// si no tiene padre traigo todos los contenidos sin padre y los ordeno
$nodes = $this->Category->find('all', array( 'conditions' => array(
'OR' => array(
'Category.parent_id' => 0,
'Category.parent_id IS NULL'
)
), 'order' => 'Category.order_by ASC' ) ); //pr( $nodes );
// va tomando nodo por nodo y lo pone al final del arbol
if ( $nodes ) {
foreach ( $nodes as $node ) {
$this->Category->moveDown( $node['Category']['id'], true);
}
}
// si encuentra un error intenta recuperar el el arbol
if ( !$this->Category->verify() ) :
CakeLog::write('debug', 'Error al ordenar arbol de categorÃas con el ID: ' . $id . '. Intentando recuperar...');
$this->Category->recover('parent');
endif;
endif;
$this->redirect('index');
}
Revision: 30983
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 26, 2010 21:52 by sveggiani
Initial Code
function admin_reorder( $id = false ) {
$this->autoRender = false;
// obtengo el parent para ordenar por el
$itemParent = $this->Content->getparentnode( $id );
// si el contenido tiene un padre...
if ( !empty( $itemParent['Content']['id'] ) ) :
// ordeno el padre
$this->Content->reorder( array( 'id' => $itemParent['Content']['id'], 'field' => 'menu_order', 'order' => 'ASC' ) );
else:
// si no tiene padre traigo todos los contenidos sin padre y los ordeno
$nodes = $this->Content->find('all', array('conditions' => array( 'Content.parent_id = 0' ), 'order' => 'Content.menu_order ASC' ) ); //pr( $nodes );
// va tomando nodo por nodo y lo pone al final del arbol
if ( $nodes ) {
foreach ($nodes as $node ) {
$this->Content->moveDown( $node['Content']['id'], true); //pr( $node['Content']['title'] );
}
}
// si encuentra un error intenta recuperar el el arbol
if ( !$this->Content->verify() ) :
CakeLog::write('debug', 'Error al ordenar arbol de conenidos con el ID: ' . $id . '. Intentando recuperar');
$this->Content->recover('parent');
endif;
endif;
$this->redirect('index');
}
Initial URL
Initial Description
Initial Title
method to sort a tree node even with empty parents
Initial Tags
cakephp
Initial Language
PHP