viernes, 15 de junio de 2012

Página con textos de prueba para páginas web

Aquí os dejo una página muy práctica en la que obtendréis textos de pruebas para vuestras páginas web:

HTML-Ipsum

Muchas gracias y hasta la próxima.

jueves, 12 de abril de 2012

Para las fechas, lo mejor es declararlas en la base de datos como datetime, luego a la hora de obtener los datos podemos hacerlo directamente, aunque aparecería con fecha y hora. Una alternativa a esto puede ser obtenerla de la base de datos con el strtotime(), que nos devuelve el timestamp con el cual podemos formatear con la función date(). No preocuparnos con el formato de la función strtotime() que el de la base de datos funciona.
Para guardarlo en la base de datos desde el selector de fecha en javascript form->select_date() le hacemos un explota, que es una función que pasa de 12/04/2012 a 2012-04-12 que es como se guarda en la BD.

Es lógico que si queremos obtener el timestamp del select_date() lo podemos hacer con strtotime antes haciendole un explota.

Aquí dejo la función explota para quien le interese:

function explota($fecha) // local2bd desde lap·gina hast ala base de datos
{
    $vector_fecha = explode("/",$fecha);
    $aux = $vector_fecha[2];
    $vector_fecha[2] = $vector_fecha[0];
    $vector_fecha[0] = $aux;
    return implode("-",$vector_fecha);
}

Y una función implota que hace lo contrario de explota

function implota($fecha) // bd2local desde la base de datos hasta la p·gina
{
    if (($fecha == "") || ($fecha == "0000-00-00"))
        return "";
    $vector_fecha = explode("-",$fecha);
    $aux = $vector_fecha[2];
    $vector_fecha[2] = $vector_fecha[0];
    $vector_fecha[0] = $aux;
    return implode("/",$vector_fecha);
}



Un saludo.
Bueno voy a empezar un proyecto para modificar Dolibarr por completo. Voy a adaptarlo para una asociación, así que aquí iré poniendo a partir de ahora asuntos sobre modificaciones de Dolibarr.
Un saludo

viernes, 23 de marzo de 2012

Llamar a una página javascript

Me ha pasado que desde un formulario he entrado a una función javascript y esta me redirecciona a otra página pero no me funcionaba, buscando por ahí he encontrado esta solución

setTimeout("location.href='newdomains.php?mesg=Empresa+no+insertada'");

que al parecer la función setTimeout hace que lo que hay dentro se envíe ahora mismo. También se podría poner como segundo parámetro un tiempo en milisegundos, aqui tenéis más información sobre esta función.
Un saludo.

jueves, 22 de marzo de 2012

Paginación PHP

Aquí os dejo un buen tutorial para insertar paginación en nuestras páginas para mostrar datos en una tabla y que esta no se baje al infierno en caso de tener muchos datos:

http://www.masquewordpress.com/paginacion-con-php-y-mysql-3-estilos/

Un saludo.

miércoles, 21 de marzo de 2012

Sumar y restar años a una consulta sql

Fijarse en esta consulta

SELECT empresa,min(expira) - interval 1 year  FROM `llx_dominios` group by empresa order by empresa

Con el interval 1 year podemos añadir o quitar años a una date.

Simple y efectivo.

miércoles, 14 de marzo de 2012

Obtener de un date el timestamp

Bueno chicos, he estado dandole vueltas a como obtener el timestamp de un date en una consulta sql y la he encontrado.
Con la función unix_timestamp obtenemos podemos conseguirlo.
Aquí va un ejemplo
select creada, unix_timestamp(creada) as timec,expira, unix_timestamp(expira) as timee from llx_dominios
Donde obtenemos el timestamp de los campos creada y expira.

Buena suere y nos leemos.

lunes, 5 de marzo de 2012

jueves, 1 de marzo de 2012

Date y Timestamp

Vamos a hacer un breve repaso a los tipos de fechas date y timestamp. Vamos a empezar describiendo cada uno:
date es una función que muestra la fecha de muchos formatos distintos, algunos ejemplos de ellos son 01/03/2012 o 2012-03-01. Todas estos formatos podemos verlos en este enlace.

timestamp es una marca de tiempo, y nos devuelve el número de segundos desde el 1 de enero de 1970 y se presenta con un número.

En php con la función date podemos formatear este número (timestamp) y de forma viceversa con la función strtotime podemos obtener el timestamp sólo que este función solo admite unos tipos de formatos del date que podemos ver en este enlace.

Hasta pronto. Best regards.

martes, 14 de febrero de 2012

Hosting GoDaddy

Aquí tenéis un hosting de páginas web que según un estudio de mercado es el mejor y más económico, y no, no soy comercial de ellos...jejeje
https://www.godaddy.com/

Nuevas páginas para crear web

Bueno aquí dejos unas cuantas páginas más donde vienen algunas cosas interesantes para hacer páginas web:

http://www.maestrosdelweb.com/

http://www.forosdelweb.com/

http://www.desarrolloweb.com/

Nos leemos, hasta pronto

lunes, 13 de febrero de 2012

No entrar hasta que no comienze el curso en MOODLE

Bueno, al hilo de la entrada anterior, he añadido una nueva funcionalidad para que no se pueda entrar a un curso hasta que el grupo comienze según las fechas que he introducido en los grupos.
He modificado el archivo "lib.php" que hay dentro de la carpeta "course"
Para ello he añadido estas dos nuevas funciones, la primera me dice si el usuario "$user" puede entrar al curso "$course" devolviendo true o false, y la segunda, si no puede entrar, me imprime el título del curso y un mensaje con la fecha de inicio del curso.

function EntraEnCurso($user,$course){
    //SELECT * FROM mdl_groups AS g, mdl_groups_members AS m WHERE g.id = m.groupid AND m.userid =3 AND g.courseid =2 LIMIT 0 , 30
    global $CFG;
    $entra=false;
    $fechaactual=time()+3600;//Obtengo la fecha actual con una hora mas
    $sql="select * from {$CFG->prefix}groups as g,{$CFG->prefix}groups_members as m where g.id=m.groupid and m.userid=" . $user . " and g.courseid=".$course;
    $consulta=get_records_sql($sql);
   
    if(!$consulta)//Esto significa que no hay grupos, entonces entra si o si
    {
        $entra=true;
    }

    foreach ($consulta as $itemid => $item )
    {
        //echo $fechaactual;echo "\n";
        //echo $item->startgroup+3600;echo "\n";
        //echo $item->endgroup+86400;echo "\n";
        $fechainiciogrupo = $item->startgroup+3600;
        $fechafingrupo = $item->endgroup+86400;
        if( $fechaactual >= $fechainiciogrupo && $fechaactual <= $fechafingrupo ){
            $entra=true;
        }
    }
    return $entra;
}

function printcoursecerrado($user,$course)
{
    global $CFG;
    $fechaactual=time()+3600;//Obtengo la fecha actual con una hora mas
    $sql="select * from {$CFG->prefix}groups as g,{$CFG->prefix}groups_members as m where g.id=m.groupid and m.userid=" . $user . " and g.courseid=".$course;
    $consulta=get_records_sql($sql);
   
    $sql2="select * from {$CFG->prefix}course where id=".$course;
    $consulta2=get_records_sql($sql2);
   
    if($consulta)//Si hay grupos
    {
        foreach ($consulta as $itemid => $item ){
            $fechafingrupo=$item->endgroup+3600;//Obtengo la fecha de fin de grupo xq si es menor se imprime el curso como cerrado si no no se imprime nada, xq el curso ya ha finalizado
           
            if($fechaactual < $fechafingrupo)
            {
                echo "<div class='coursebox clearfix'>";
                echo "<div class='info'>";
                echo "<div class='name'>";
               
                echo current($consulta2)->fullname;
                echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; El curso comenzar&aacute el d&iacutea ".Date("d/m/y", $item->startgroup);
                echo "</div>";
                echo "</div>";
                echo "</div>";
            }
        }
    }
}


Estas dos funciones las he añadido a la función print_my_moodle(), aquí esta el código modificado

foreach ($courses as $course) {
                if ($course->id == SITEID) {
                    continue;
                }
               
                //Aquí voy a insertar una restricción para que si el curso está entre las fechas indicadas en el grupo lo inserte
   
                echo '<li>';
                if(EntraEnCurso($USER->id,$course->id))
                    print_course($course);
                else
                    printcoursecerrado($USER->id,$course->id);
                echo "</li>\n";

            }


 Muchas gracias y hasta la próxima, espero les haya servido de ayuda

miércoles, 8 de febrero de 2012

Fecha de inicio y fin de los grupos en MOODLE

Estoy intentando asignarle una fecha de inicio y de fin a los grupos de cada curso en MOODLE, x ahora he insertado en el archivo group_form.php  estas dos líneas al final del formulario, antes de añadir los elementos ocultos:

        $mform->addElement('date_selector', 'assesstimefinish', 'Fecha inicio');
      
        $mform->addElement('date_selector', 'assesstimefinish', 'Fecha fin');

Para que se guarden en la base de datos, primero creamos los dos campos en la base de datos, yo los he llamado 'startgroup' y 'endgroup'.Luego simplemente modificamos el assesstimefinish de la función por el nombre del campo de la base de datos, así directamente lo relacion y lo guarda en la base de datos.
Entonces el código quedaría así:

        $mform->addElement('date_selector', 'startgroup', 'Fecha inicio');
       
        $mform->addElement('date_selector', 'endgroup', 'Fecha fin');

Aquí ya tenemos guardados en la base de datos la fecha de inicio y de fin.


Observar la BD en Moodle

Bueno es una cosa un poco "ridícula" pero a veces se te olvida y pierdes tiempo buscando como acceder a la BD de Moodle

https://localhost/admin/mysql/

lunes, 6 de febrero de 2012

Fechas en timestamp


A veces es más cómodo guardar las fechas en la base de datos como un timestamp, que es como una marca de tiempo, más info aquí. Aquí tenemos una cómoda página donde encontrar una calculadora de estas marcas de tiempo.
http://www.onlineconversion.com/unix_time.htm

Modificar los informes de MOODLE

Hola, estoy intentando modificar la tabla que muestra los registros de los informes de los usuarios en un curso scorm, más concretamente estoy intentando eliminar la columna de dirección ip.
Para ello en el archivo /moodle/course/lib.php, la función que se encarga de imprimir esta tabla se llama print_log, ahí puedes investigar y comprobar que código imprime cada parte de la tabla.
Yo concretamente para lo que quiero he comentado las líneas que imprime la cabecera y las celdas de la tabla que mostraba las ip's.

Además, en la columna de acción quiero traducir las acciones que aparecen ahí, así que para ello he creado una función donde entra la acción y por un filtro de if busca si está y la traduce. Luego reemplazo esta línea:

$displayaction="$log->module $log->action";

por esta:

$displayaction=traductormodule($log->module). " ". traductoraction($log->action);
siendo traductormodule y traductoraction mis funciones para traducir las cadenas.

Gracias y hasta pronto.

Tildes en el módulo de Actividad Reciente en MOODLE

He tenido un problema con las tíldes en las fechas que aparecen en el bloque de actividad reciente en moodle, bueno he modificado una función en el archivo moodle/lib/moodlelib.php en la función function userdate($date, $format='', $timezone=99, $fixday = true), aquí al final aparece un if donde entra si estamos en windows, bueno lo he modificado para que entre siempre.
No creo que sea una solucíón muy elegante puesto que podría fallar al entrar con un sistema operativo linux pero funciona

lunes, 30 de enero de 2012

Otras páginas para desarrollo web

Bueno aquí dejo un par de páginas interesantes para desarrolladores de páginas web:

Para saber el código de algún color: http://html-color-codes.info/codigos-de-colores-hexadecimales/
Para diseñar botones y obtener su código: http://webarti.com/best-CSS3-button-maker/

Otra página para crear web

Bueno aquí os dejo otra página que viene muy bien para tener presentes todos los atributos que tienen los elementos html.

http://www.w3schools.com/

martes, 17 de enero de 2012

Como crear tu web

Recomiendo esta página para comenzar a crear una página web ya que a mi me está sirviendo de mucha ayuda.

www.comocreartuweb.com