MySql a CSV

Guardar resultados de una consulta en un archivo externo en formato csv.

mysql> SELECT * FROM tablahttp://www.blogger.com/img/blank.gif
-> INTO OUTFILE "miarchivo.csv"
-> FIELDS TERMINATED BY ';'
-> OPTIONALLY ENCLOSED BY '\"'
-> LINES TERMINATED BY '\n\r';



fuente: http://mysql.conclase.net/curso/?cap=014

CSV a MySql

Para importar un archivo csv a una tabla mysql, copiamos el archivo CSV al directorio de datos de mysql donde se encuentran los datos de la base de datos (en mi caso "C:\Program Files\Zend\MySQL51\data\nombrebasedato")

LOAD DATA INFILE "miarchivo.csv"
INTO TABLE `nombrebasedato`.`nombretabla`
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\r\n';

y si no tenemos ningun problema, estamos listos.

PS: los nulos se escriben "\N" (sin comillas)

Crear un nuevo recurso en Moodle

Para crear un nuevo tipo de recurso de nombre 'new'; crea un directorio con el nombre del recurso en /mod/resource/type y crea el archivo resource.class.php dentro del directorio.
Ej: /mod/resource/type/new/resource.class.php

la estructura basica del archivo resource.class.php es:

class resource_new extends resource_base
{

function resource_new($cmid=0)
{
parent::resource_base($cmid);
}

function display()
{
///Display the resource

global $CFG;
parent::display();
}

function add_instance($resource)
{
return parent::add_instance($resource);
}

function update_instance($resource)
{
return parent::update_instance($resource);
}

function delete_instance($resource)
{
return parent::delete_instance($resource);
}

function setup_elements(&$mform)
{
}

function setup_preprocessing(&$default_values)
{
}

}

para evitar que aparezca "[ [resourcetypenew] ]" cuando presionas en la lista desplegable de "agregar recurso", se debe modificar /lang/en_utf8/resource.php incluyendole:

$string['resourcetypenew'] = "Create my new resource";

fuente: http://docs.moodle.org/en/Development:Resource_types

Cambiar password del admin moodle en MySQL

Nuevamente se me ha olvidado el password del usuario administrador de moodle, y como estoy trabajando en windows sin server de correo, no puedo recuperar la clave del administrador enviandomela al correo, por lo que se hace necesario cambiar la clave del administrador directamente en la base de datos MySQL que estoy usando.

Entramos a la consola de mysql como root (o con algun usuario con derechos a modificar la base de datos de moodle) y hacemos:

mysql> Select id,username,password from mdl_user;

+----+----------+----------------------------------+
| id | username | password |
+----+----------+----------------------------------+
| 1 | guest | 341a23f50a0d3d38691fcf62deb92dd8 |
| 2 | admin | 3ec7b40bb460233f0bca8496d41ef1cf |
+----+----------+----------------------------------+

(noten que mdl_ es el prefijo que le ponen a las tablas, mdl es el por defecto)
luego que sabemos el id del administrador, entonces solo nos falta cambiar la clave. Moodle cifra las claves usando MD5, por lo que ahora solo haremos:

mysql> update mdl_user set password=md5('NuevaClave') where id=2;
Query OK, 1 row affected (0.12 sec)
Rows matched: 1 Changed: 1 Warnings: 0

Y con esto ya hemos cambiado la clave del administrador y podremos entrar a nuestro sitio nuevamente. Noten que en "where id=" deben poner la id de su administrador, que en este caso es 2.

La variable $USER en Moodle

La variable $USER contiene la información del usuario que esta ejecutando Moodle

  • $USER->emailstop: especifica si el usuario desea o no recibir correos.
  • $USER->email: Direccion de correo del usuario.
  • $USER->id: Identificador unico de usuario (entero) que se encuentra en la tabla "user".
  • $USER->firstname: Nombre del usuario.
  • $USER->lastname: Apellido de usuario.
  • $USER->username: Nombre de usuario (nick name).
  • $USER->secret: - The user's ?.
  • $USER->lang: Lenguaje elegido por el usuario.

la llamada a config.php en Moodle 2.0

muchos de los scripts de moodle comienzan con la linea
require_once(dirname(__FILE__) . '/../../config.php');
  1. Esto carga todas las librerias del "core" de Moodle.
  2. Inicializa muchas cosas como, conexión a la base de datos, la sesion, el curso actual, temas y lenguaje.



fuente: moodledocs

La Variable (Clase) $CFG de configuración de Moodle

Moodle utiliza una variable (creada como una clase estandard) de configuración para almacenar toda la información necesaria para acceder a los datos de una forma simple.
La variable $CFG es creada en el archivo de configuración de moodle "config.php", el cual es llamado desde el index.php de Moodle. Es la primera libreria que es llamada cuando se carga Moodle y se crea al realizar la instalación.
index.php
if (!file_exists('./config.php')) {
header('Location: install.php');
die;
}

require_once('config.php');

Algunos de los atributos de la variable $CFG son:

  • $CFG->dbtype: tipo de base de datos que utiliza moodle (mysql o postgres7).
  • $CFG->dbhost: host de la base de datos.
  • $CFG->dbname: nombre de la base de datos.
  • $CFG->dbuser: nombre de usuario de la base de datos.
  • $CFG->dbpass: password de la base de datos.
  • $CFG->prefix: prefijo que utilizan las tablas (ej: prefix_nombre_tabla).
  • $CFG->wwwroot: direccion de internet donde esta alojado moodle (ej: http://example.com/moodle).
  • $CFG->dirroot: especifica el path completo donde se encuentra instalado moodle en el servidor (ej: /var/www/moodle).
  • $CFG->dataroot: el path completo donde serán ubicados los archivos subidos (no accesible desde el navegador).
  • $CFG->directorypermissions: permisos de los nuevos directorios creados por Moodle en el directorio de datos (ver arriba). Se escribe en octal y es importante comenzar los permisos con un 0 (ej: 02777).
  • $CFG->admin: guarda la ruta donde se encuentra la pagina de administracion (ej: admin. para ingresar al adminstrador http://moodle.msk/admin). Si se quiere cambiar el nombre del directorio donde se encuentran los archivos de administracion, se deberá modificar esta variable.