sql para crear categorias directamente en la base de datos

sql para crear categorias directamente en la base de datos

de Alejandra Cruz -
Número de respuestas: 3
Hola

Necesito crear más de 200 categorias y subcategorias en moodle, pero al no existir un metodo masivo deseamos hacerlo por base de datos, sin embargo, desconocemos si aparte de la tabla mdl_course_categories, se deba modificar algo más. Tengo muy poca experiencia por lo cual pregunto si alguien me puede ayudar en como crear masivamente estas categorias y subcategorias en moodle, desde la base de datos.

Moodle 3.3+ (Build: 20170622)

Gracias.

Promedio de valoraciones: -
En respuesta a Alejandra Cruz

Re: sql para crear categorias directamente en la base de datos

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

Hola Alejandra,

podrías usar algo como el script PHP que adjunto.

Saludos.

Iñaki.

En respuesta a Iñaki Arenaza

Re: sql para crear categorias directamente en la base de datos

de Alejandra Cruz -

Hola,

Gracias por tu respuesta, debo confesar que entiendo parcialmente tu archivo ´pero no se donde colocarlo o como funciona. Ahora veo que manejas los id de categoria pero como hago para generar el arbol si las categorias y sus subcatgorias no existen? me explico, 

Existe una categoria padre que llamaremos cursos, esta se divide un dos A y B, de las cuales B se divide en 50 subcategorias, cada subcategoria se ramifica en hasta 6 nuevas subcategorias finales ... por eso queria hacerlo por base de datos, tu script es bueno pero como te dije no soy muy experta y apenas voy aprendiendo del tema.

arbol_ramifcacion categorias

Agradezco tu colaboración,

En respuesta a Alejandra Cruz

Re: sql para crear categorias directamente en la base de datos

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

Hola de nuevo Alejandra,

el script lo tienes que ubicar en la raíz de la instalación de Moodle (en el mismo directorio donde esté el fichero config.php).

Luego sólo tienes que definir tu estructura de categorías usando al estructura de datos mostrada en el script. Básicamente se trata de una estructura de arrays anidados. He adaptado el script para tratar de representar la estructura que sugerías en tu imagen. Obviamente no he puesto las 50 subcategorías de cada categoría A y B (ni las 6 sub-subcategorías de cada una de esas 50), pero si he puesto algunas de cada nivel, para indicar como sería la estructura. Adjunto la nueva versión del script con los cambios (y algunos comentarios adicionales).

No hace falta saber/indicar el 'id' de las categorías ni de sus categorías padre. El único caso en el que sí se necesita indicar el 'id' de la categoría 'parent' es el caso de la categoría "Padre" de todas ellas. Al estar colgada de la raíz de categorías necesitará indicar como categoría 'parent' el valor 0 (cero). En los demás casos (categorías hijo, nieto y bisnieto), el script (junto con Moodle) calculan todos los 'id' necesarios.

Saludos. Iñaki.