Nestedset

La librería contiene un conjunto de herramientas para manipular arreglos del tipo árbol. Se utiliza en proyectos como menús, categorías, taxonomías, etc.

 

Nestedset::toNestedArrays

Convierte un arreglo del tipo lista, basado en filas y columnas (como los obtenidos en una base de datos), en uno multidimensional. Para ello, utiliza las columnas left_id y right_id.

Las porciones de arreglo anidadas, serán agregada con el índice edge. Paralelamente, en cada fila agrega el índice depth con un valor de profundidad, que comienza en 0.

Devuelve el arreglo con una estructura del tipo árbol.

public static Nestedset::toNestedArrays( array $rows ): array
rows

El arreglo a modificar.

 

Nestedset::toNestedArraysFromDepth

Realiza la misma operación que toNestedArrays, pero lo realiza a partir del índice depth.

public static Nestedset::toNestedArraysFromDepth( array $rows ): array
rows

El arreglo a modificar.

 

Nestedset::toList

Realiza la operación inversa a toNestedArrays. Es decir, convierte un arreglo con anidaciones, en uno del tipo lista.

Para realizar la tarea, busca los índices edge.

public static Nestedset::toList( array $rows ): array
rows

El arreglo a modificar.

 

Nestedset::toListWithUpDown

Realiza la misma operación que toList, pero además, agrega los índices up y down, teniendo cada uno de ellos un valor true o false, dependiendo si pueden o no cambiar de posición con sus nodos hermanos. Por ejemplo, el primer nodo hijo, será false para el valor up, lo mismo ocurre para el último nodo con el índice down. Si el nodo está ubicado entre otros dos nodos, ambos índices serán true.

Este método se utiliza en la Backlist, para mover nodos de forma sencilla.

public static Nestedset::toListWithUpDown( array $rows ): array
rows

El arreglo a modificar.

 

Nestedset::sort

Ordena un arreglo del tipo lista.

public static Nestedset::sort( array $rows, string $column_name = 'ordering' ): array
rows

El arreglo a modificar.

column_name

El nombre de la columna que se utilizará para calcular el orden. Debe ser un valor numérico.

 

Nestedset::sortNestedArrays

Ordena un arreglo del tipo árbol.

public static Nestedset::sortNestedArrays( array $rows, string $column_name = 'ordering' ): array
rows

El arreglo a modificar.

column_name

El nombre de la columna que se utilizará para calcular el orden. Debe ser un valor numérico.