Seleccionar idioma:
Realizar Donación - Mods Premium - Portfolio



Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.
* [Tutorial] Agregar una tarea programada
  Leído 3001 veces
* Viendo el foro
 0 Usuarios y 1 Visitante están viendo este foro.


*
Autor: ^HeRaCLeS^
Oct 27 2010
Agregar una tarea programada

Bueno en este pequeño tutorial vamos a ver la forma de agregar una funcion como tarea programada para nuestro foro.

Para ello vamos a necesitar modificar dos archivos y crear un tercero.
Los archivos a modificar son:
ScheduledTasks.php
ManageScheduledTasks.english.php

El archivo a crear lo llamaremos en este caso:
TareaBase.php

Nota: Si tenemos mas idiomas aparte del ingles debemos modificar tambien
el archivo de idioma de cada uno.
Ej: ManageScheduledTasks.spanish_latin.php

*********************************

Vamos a empezar por el archivo ScheduledTasks.php que lo encontramos en la carpeta Sources.

vamos a buscar:
Código: [Seleccionar]
?>
Y antes de eso vamos a crear la funcion que queremos que se ejecute como tarea programada.

Código: [Seleccionar]
function scheduled_NombreFuncion()
{
*************
Aca vamos a escribir todo el codigo de nuestra funcion.

Yo no voy a poner una funcion porque el Tutorial es para crear una tarea programada
y la funcion va a depender de cada uno.
*************
return true;
}

Notas:
  • En el nombre de la funcion siempre tiene que estar la cadena de texto scheduled_
    seguida del nombre que queramos nosotros.
    Ej: function scheduled_NombreFuncion
  • El codigo return true; hay que dejarlo para que una ves que termine la funcion retorne.
*********************************


Una ves echo esto vamos a editar nuestro segundo archivo.
En el archivo ManageScheduledTasks.english.php que lo encontramos en la carpeta Themes\default\languages.
vamos a buscar:
Código: [Seleccionar]
?>
Y antes de eso vamos a agregar lo siguiente:

Código: [Seleccionar]
$txt['scheduled_task_NombreFuncion'] = 'Titulo';
$txt['scheduled_task_desc_NombreFuncion'] = 'Descripcion';

Nota: Es muy importante que no modifiquen esas cadenas de texto
Siempre tienen que ser
$txt['scheduled_task_NombreFuncion']
$txt['scheduled_task_desc_NombreFuncion']


NombreFuncion tiene que ser el mismo nombre que le dimos a la funcion en el archivo ScheduledTasks.php despues del scheduled_

Bueno con eso ya terminamos de modificar los dos archivos,  ahora tenemos que crear un
archivo para que agregue un campo en la base de datos para que la tarea pueda trabajar.
Vamos a utilizar lo siguiente para hacerlo:
Código: [Seleccionar]
      INSERT INTO {db_prefix}scheduled_tasks (id_task, next_time, time_offset, time_regularity, time_unit, disabled, task)
      VALUES (NULL, 0, 0, 1, "d", 0, "NombreFuncion")

Ahora voy a explicar un poco que parametros usaremos.
id_task = Es el id de la tarea programada, es asignada automaticamente.
          La dejamos como NULL
next_time = Es la proxima ves que se debe ejecutar la tarea.
          La dejamos en 0 porque nunca se ejecuto.
time_offset = Es la hora de inicio.
          La dejaremos en 0 porque la pone el servidor.
time_regularity = Es la regularidad con la que se ejecutara la tarea.
          Le pondremos como valor 1.
time_unit = Es la unidad de tiempo y puede ser "m=minutos", "h=horas", "d=Dias", "w=semanas"
          Nosotros usaremos "d"
disabled = habilita o deshabilita la tarea "0 = habilitado", "1 = deshabilitado".
          Nosotros usaremos "0"
task = Es el nombre de la tarea.

Una ves explicado esto vamos a creamo nuestro archivo php
en este caso lo llamaremos TareaBase.php.

Dentro de ese archivo pondremos el siguiente codigo:
Código: [Seleccionar]
<?php
if (file_exists(dirname(__FILE__) . '/SSI.php') && !defined('SMF')){
 
 require_once(dirname(__FILE__) . '/SSI.php');
}  
$smcFunc['db_query']('''
 INSERT INTO {db_prefix}scheduled_tasks (id_task, next_time, time_offset, time_regularity, time_unit, disabled, task)
 VALUES (NULL, 0, 0, 1, "d", 0, "NombreFuncion")
 '
);
 
echo 
'Base de datos Modificada...<br />En 5 segundos sera redirigido al inicio.';
echo 
'<meta HTTP-EQUIV="refresh" CONTENT="5;URL='.$scripturl.'">';

?>


Donde solo modificaremos NombreFuncion por el nombre que le hayamos dado a nuestra tarea.

Una ves creado el archivo y con su codigo ya puesto solo tenemos que ejecutar el archivo.
Para ello pondremos lo siguiente en nuestro navegador: www.nuestraweb.com/TareaBase.php

Una ves que modifique la base de datos seremos redirigidos automaticamente al inicio del sitio.

Aca unas imagenes de como queda:






*********************************

Bueno esto es todo, espero que le sea de utilidad a alguien.

Saludos!!



uf, esto si que es muy bueno, felicidades buen trabajo




uf, esto si que es muy bueno, felicidades buen trabajo

jejej si este es bueno pero no se olviden que a muchos les sierve cea muy facil o muy dicil




Gracias a los dos  ;)




Gracias Heracles.
la verdad que tenia casi nulo el conocimiento sobre las tareas programadas, ahora me pondré a investigar.




Denada zutzu

La verdad que es mas facil de lo que yo pensaba. Estuve investigando para realizar un mod que necesitaba y pense que iba a ser muy complicado lograrlo, pero no.

Lo bueno del tutorial es que no hay mucha informacion sobre esto.




You're the best!




no, You're the best! i' m  the second best  ;D




-.-




Gracias crack me ha servido para el pretty url!




Otros temas de su interes

[Tip] Solucion Provisoria adjuntos Firefox 8 ^HeRaCLeS^ Noviembre 15, 2011, 07:11:49 pm
Restaurar bases de datos desde phpmyadmin Enik Septiembre 12, 2013, 11:02:26 am
[Tip] Añadir tag [Solucionado] a los titulos de temas. ^HeRaCLeS^ Septiembre 06, 2011, 01:48:51 am
Descubriendo los xml de smf ^HeRaCLeS^ Noviembre 19, 2014, 05:56:18 pm
Usar Base de Datos en SMF (PHP) lucas-ruroken Septiembre 26, 2010, 04:20:02 am
Tutorial utilizar SSI (Avanzado) lucas-ruroken Junio 11, 2010, 01:09:59 pm



Usuario:
Contraseña:
Sesión: