eliminar al usuario guest

eliminar al usuario guest

de Paul G -
Número de respuestas: 9
Habría algún problema en eliminar al usuario guest?, o mas que eso, si nunca se insertára en la base de datos, surgiría algún error?

de antemano muchas gracias sonrisa
Promedio de valoraciones: -
En respuesta a Paul G

Re: eliminar al usuario guest

de José Pastor Beltrán -

Buenas tardes Paul:

Yo elimine el usuario Guest incluso de la base de datos y no me ha dado ningún problema. Ahora bien, no se si dará problemas. Supongo que habrá gente que lo haya hecho  y haya trabajado con Moodle más que yo.

Un saludo. Jose risa

En respuesta a José Pastor Beltrán

Re: eliminar al usuario guest

de Paul G -
Gracias por responder. Yo tb lo he eliminado, pero nunca he usado moodle sin siquiera ingresarlo en la bd.
En respuesta a Paul G

Re: eliminar al usuario guest

de Raul Garcia Canet -
Hola Jose y Paul,
El usuario "guest", se crea automáticamente cuando entras en la página de administración (/admin/index.php) o en la página de login/index.php
De entrada, el funcionamiento de Moodle sigue siendo correcto aunque no tengas el usuario guest.risa
El único inconveniente es que ningún curso será "accesibe para invitados" ni con contraseña ni sin ella.
Yo lo eliminaba una y otra vez de la BD y él volvía a aparecer, así que decidí eliminar definitivamente al usuario "guest" (aunque parezca trágico, no lo es lengua fuera) y para ello comenté, en los archivos:
/moodle/admin/index.php hacia la línea 275:
/moodle/login/index.php hacia la línea 19
el siguiente código:
/// Check if the guest user exists.  If not, create one.
    if (! record_exists("user", "username", "guest")) {
        $guest->auth        = "manual";
        $guest->username    = "guest";
        $guest->password    = md5("guest");
        $guest->firstname   = addslashes(get_string("guestuser"));
        $guest->lastname    = " ";
        $guest->email       = "root@localhost";
        $guest->description = addslashes(get_string("guestuserinfo"));
        $guest->confirmed   = 1;
        $guest->lang        = $CFG->lang;
        $guest->timemodified= time();
        if (! $guest->id = insert_record("user", $guest)) {
            notify("Could not create guest user record !!!");
        }
    }
/// Set up the admin user
NOTAS:
Las líneas en verde son comentarios para que te guies en el código.
No indico las líneas exactas, porque cambian en cada versión de moodle. estas líneas que he indicado corresponden a la versión 1.6, que es la que actualmente tengo.  
Espero que esto os ayude.
Salu2.
J. Raúl. estupendo
En respuesta a Raul Garcia Canet

Re: eliminar al usuario guest

de Paul G -
gracias!....aprovecho de preguntar, (aunque ya lo había hecho en otro post), si sabes como se forman los valores del campo parent y sortorder de las tablas course y course_categories. Entiendo lo que hacen pero no como se forman los valores que se les asignan.

muchas gracias de nuevo! sonrisa
En respuesta a Paul G

Re: eliminar al usuario guest

de Raul Garcia Canet -
Hola Paul,
bueno, exactamente no se como funcionan  estos campos pero puedo darte unas guias para que puedas averiguarlo.
Te lo explicao con la versión 1.6 de Moodle, te lo digo por los números de línea, que en versiones anteriores piueden variar ligeramente.
PRIMERO LAS CATEGORIAS (mdl_course_categories)
Paso1: El campo sortorder de las categorias
Cuando se crea una nueva categoria al pulsar el botón "Agregar Nueva Categoria"  se llama al fichero /course/index.php, hacia la línea 100 se crea la categoría y se le da un valor a "sortorder"
El código concreto que lo hace es:
/// If data for a new category was submitted, then add it
    if ($form = data_submitted() and confirm_sesskey()) {
        if (!empty($form->addcategory)) {
            unset($newcategory);
            $newcategory->name = $form->addcategory;
            $newcategory->sortorder = 999;
            if (!insert_record("course_categories", $newcategory)) {
                notify("Could not insert the new category '$newcategory->name'");
            } else {
                notify(get_string("categoryadded", "", $newcategory->name));
            }
        }
    }
Paso2: El campo parent de las categorias
 Al mover una categoria dentro de otra, o sea, para convertirla en "subcategoria" se vuelve a llamar a la misma página pasándole los parámetros move y moveto, hacia la línea 167, con este código:
/// Move a category to a new parent if required
    if (!empty($move) and ($moveto>=0) and confirm_sesskey()) {
        if ($tempcat = get_record("course_categories", "id", $move)) {
            if ($tempcat->parent != $moveto) {
                if (! set_field("course_categories", "parent", $moveto, "id", $tempcat->id)) {
                    notify("Could not update that category!");
                }
            }
        }
    }
La línea marcada en rojo actualiza el campo parent de la tabla "course_categories" asignándole el valor correspondiente al id de la categoria  a la cual se está moviendo que está en la variable $moveto
NOTA: El campo parent inicialmente vale 0 y es un valor predeterminado de la base de datos, es decir, que si no se dice lo contrario parent vale 0, por eso no se inicializa en ninguan parte.
Paso3: El campo path
Más abajo, hacia la línea 295 se crea la lista de categorias que se mostrará en la página y es en ese momento que se llama a la función
"make_categories_list" y esta función es la que contruye la variable $path.
El código es el siguiente:
/// Print out the categories with all the knobs
    $strcategories = get_string("categories");
    $strcourses = get_string("courses");
    $strmovecategoryto = get_string("movecategoryto");
    $stredit = get_string("edit");
    $displaylist = array();
    $parentlist = array();
    $displaylist[0] = get_string("top");
    make_categories_list($displaylist, $parentlist, "");
Esta función se encuentra en el fichero /course/lib.php. hacia la línea 1181
Paso5: Regeneración de los campos de las categorias
Al reordenar las categorias, en el mismo fichero index.php, hacia la línea 269, se llama a la función  "fix_course_sortorder();" que recrea las variables
$path y $sortorder de los cursos y las categorias (he notado que cuando hay más de dos niveles no se ordena y se queda con el valor de sortorder=999, es decir, si tengo CAT1/SUBCAT1/SUBSUBCAT1, el valor de sortorder de SUBSUBCAT1 será 999). En esta función se llama a "set_field()", localizada en /moodle/lib/datalib.php que es la que actualiza la Base de Datos.

AHORA LOS CURSOS (mdl_course)
Empieza el proceso al pinchar botón "Agregar nuevo curso" y ahí se llama a la página "/course/edit.php"
Al pinchar en "Guardar Cambios" se vueleve a llamar a edit.php y las líneas que nos interesan empiezan alrededor de la 52, con el siguiente comentario:
/// If data submitted, then process and store.
....
....
Si el curso ya estaba creado y sólo lo estamos modificando:
           if (!empty($course)) {   (aprox. línea 91)
            .....
           if (empty($form->sortorder)) {  (aprox. línea 114
                    $form->sortorder = 100;
                }
Si el curso es nuevo
       if ($newcourseid = insert_record('course', $form)) { (aprox. línea 118)
        ....
      redirect("view.php?id=$newcourseid", get_string("changessaved"));   
      (aprox. línea157)
En todo este código se llama varias veces a "fix_course_sortorder()"  que es la encargada de generar los campos path y sortorder como te he explicado más arriba.
Y por último y ya dejo este rollo que espero que no te aburra:
Al reordenar los cursos en una categoria:
Cuando picho en el botón "Reoganizar los cursos por nombre" se llama a la página /course/category.php y concretamente se jecutan las líneas 65-80 aprox. cuyo código es:
 /// Resort the category if requested
        if (!empty($resort) and confirm_sesskey()) {
            if ($courses = get_courses($category->id, "fullname ASC", 'c.id,c.fullname,c.sortorder')) {
                // move it off the range
                $count = get_record_sql('SELECT MAX(sortorder) AS max, 1
                                         FROM ' . $CFG->prefix . 'course WHERE category=' . $category->id);
                $count = $count->max + 100;
                begin_sql();
                foreach ($courses as $course) {
                    set_field('course', 'sortorder', $count, 'id', $course->id);
                    $count++;
                }
                commit_sql();
                fix_course_sortorder($category->id);
            }
Que vuelve a recalcular el campo sortorder de los cursos.
Y con esto, si no te has perdido (porque yo, explicándolo, casi me pierdo) creo que te habrás hecho una idea de los de los campos que decías.
Bueno, no ha sido tan traumático, ¿verdad? confuso..o a lo  mejor, sí lengua fuera
Espero que te haya quedado claro y que no me echen del foro por enrrollarme tanto, jejeje sonrojado
Bueno, lo dicho, espero que te sirva todo esto. Por lo menos, no te aburrirás guiño
Salu2.
J. Raúl estupendo
En respuesta a Raul Garcia Canet

Re: eliminar al usuario guest

de Paul G -
sorpresaooo muchas gracias por darte la molestia, te pasaste sonrisa muchas gracias
En respuesta a Raul Garcia Canet

Re: eliminar al usuario guest

de FERNANDO GARCIA ATUNCAR -

Hola:

Como puedo hacer para ver los cursos del bloque "Mis Cursos" en orden alfabetico..

Gracias de antemano.

Saludos desde Peru.

En respuesta a FERNANDO GARCIA ATUNCAR

Re: eliminar al usuario guest

de Raul Garcia Canet -
Hola Fernando,

Creo que no vas a poder hacerlo de forma fácil.
Los cursos se pueden ordenar alfabéticamente "dentro" de la categoría a la que pertencen. Se puede hacer pinchando sobre el nombre de la categoría y en el listado de cursos pinchar el botón "Ordena Cursos..."

Si un profesor está asignado a dos cursos de una misma categoria, en el bloque "Mis cursos" apareceran ordenados alfabéticamente.
Ahora bien si un profesor tiene 2 cursos en 2 categorías distintas, el primer orden es de la categoría y después de los cursos. Aunque el nombre de la categoría no se vea en el bloque "Mis Cursos"
En esquema sería así:

Categoria A
Curso A
Curso B
Categoria B
Curso A
Curso B

Por tanto si un profesor esta asignadao al Curso B de la Categoria A y al Curso A de la Categoría B, en el bloque "Mis Cursos" aparecería

Curso B (Categoria A)
Curso A (Catgeoria B)

La modificación de este comportamiento es complicada puesto que existen dependecias entre el nº de orden del curso y el de la categoría a la que pertenece.
Espero haberme explicado bien.

Salu2.
J. Raul guay