Eliminar usuarios inactivos

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Eliminar usuarios inactivos

      PHP Source Code

      1. <?php
      2. /**
      3. * 2Moons
      4. * by Jan-Otto Kröpke 2009-2016
      5. *
      6. * For the full copyright and license information, please view the LICENSE
      7. *
      8. * @package 2Moons
      9. * @author Jan-Otto Kröpke <slaver7@gmail.com>
      10. * @copyright 2009 Lucky
      11. * @copyright 2016 Jan-Otto Kröpke <slaver7@gmail.com>
      12. * @licence MIT
      13. * @version 1.8.0
      14. * @link https://github.com/jkroepke/2Moons
      15. */
      16. require_once 'includes/classes/cronjob/CronjobTask.interface.php';
      17. class InactiveMailCronjob
      18. {
      19. function run()
      20. {
      21. global $LNG;
      22. $config = Config::get(ROOT_UNI);
      23. if($config->mail_active == 1) {
      24. /** @var $langObjects Language[] */
      25. $langObjects = array();
      26. require 'includes/classes/Mail.class.php';
      27. $sql = 'SELECT `id`, `username`, `lang`, `email`, `onlinetime`, `timezone`, `universe`
      28. FROM %%USERS%% WHERE `inactive_mail` = 0 AND `onlinetime` < :time;';
      29. $inactiveUsers = Database::get()->select($sql, array(
      30. ':time' => TIMESTAMP - $config->del_user_sendmail * 24 * 60 * 60
      31. ));
      32. foreach($inactiveUsers as $user)
      33. {
      34. if(!isset($langObjects[$user['lang']]))
      35. {
      36. $langObjects[$user['lang']] = new Language($user['lang']);
      37. $langObjects[$user['lang']]->includeData(array('L18N', 'INGAME', 'PUBLIC', 'CUSTOM'));
      38. }
      39. $userConfig = Config::get($user['universe']);
      40. $LNG = $langObjects[$user['lang']];
      41. $MailSubject = sprintf($LNG['spec_mail_inactive_title'], $userConfig->game_name.' - '.$userConfig->uni_name);
      42. $MailRAW = $LNG->getTemplate('email_inactive');
      43. $MailContent = str_replace(array(
      44. '{USERNAME}',
      45. '{GAMENAME}',
      46. '{LASTDATE}',
      47. '{HTTPPATH}',
      48. ), array(
      49. $user['username'],
      50. $userConfig->game_name.' - '.$userConfig->uni_name,
      51. _date($LNG['php_tdformat'], $user['onlinetime'], $user['timezone']),
      52. HTTP_PATH,
      53. ), $MailRAW);
      54. Mail::send($user['email'], $user['username'], $MailSubject, $MailContent);
      55. $sql = 'UPDATE %%USERS%% SET `inactive_mail` = 1 WHERE `id` = :userId;';
      56. Database::get()->update($sql, array(
      57. ':userId' => $user['id']
      58. ));
      59. }
      60. }
      61. }
      62. }
      Display All
      Tengo problemas con el codigo de eliminar los usuarios inactivos. Se ejecuta pero no los elimina. Alguna solución?
    • Esa código lo que hace es enviar mensaje a los usuarios inactivo.
      Pero pal problema de los usuarios inactivo, verifica que debes tener la tarea cron bloqueada.
      Panel de Administración-Tareas Cron [admin.php?page=cronjob]
      Si esta bloqueada debes desbloquearla y luego limpiar cache.
      Esa tarea se ejecuta todos los sábado, por lo que como tenia un error y terminaba bloqueándola luego de ejecutarse.
      Solución [Fix]Block CleanerCronjob task
      VERY SAD :/ :/ :/ :/
    • yamilrh wrote:

      Esa código lo que hace es enviar mensaje a los usuarios inactivo.
      Pero pal problema de los usuarios inactivo, verifica que debes tener la tarea cron bloqueada.
      Panel de Administración-Tareas Cron [admin.php?page=cronjob]
      Si esta bloqueada debes desbloquearla y luego limpiar cache.
      Esa tarea se ejecuta todos los sábado, por lo que como tenia un error y terminaba bloqueándola luego de ejecutarse.
      Solución [Fix]Block CleanerCronjob task
      Gracias, acabo de reemplazar la línea de código y probar. Como vez en la imagen que adjunto tengo las tarear cron desbloqueadas. Lo que busco es eliminar los usuarios inactivos.
      Images
      • tareasbloq.png

        1.13 MB, 1,366×768, viewed 126 times
    • tellez wrote:

      yamilrh wrote:

      Esa código lo que hace es enviar mensaje a los usuarios inactivo.
      Pero pal problema de los usuarios inactivo, verifica que debes tener la tarea cron bloqueada.
      Panel de Administración-Tareas Cron [admin.php?page=cronjob]
      Si esta bloqueada debes desbloquearla y luego limpiar cache.
      Esa tarea se ejecuta todos los sábado, por lo que como tenia un error y terminaba bloqueándola luego de ejecutarse.
      Solución [Fix]Block CleanerCronjob task
      Gracias, acabo de reemplazar la línea de código y probar. Como vez en la imagen que adjunto tengo las tarear cron desbloqueadas. Lo que busco es eliminar los usuarios inactivos.
      En la imagen la tienes claramente bloqueada, es la 4 que dice "Eliminar archivos antiguos" presiona donde dice que Si en rojo, Si te muestra el Si significa que esta bloqueada.
      Desbloquéala y limpia tu cache, espera a las 2:45 se activa sola
      VERY SAD :/ :/ :/ :/
    • yamilrh wrote:

      tellez wrote:

      yamilrh wrote:

      Esa código lo que hace es enviar mensaje a los usuarios inactivo.
      Pero pal problema de los usuarios inactivo, verifica que debes tener la tarea cron bloqueada.
      Panel de Administración-Tareas Cron [admin.php?page=cronjob]
      Si esta bloqueada debes desbloquearla y luego limpiar cache.
      Esa tarea se ejecuta todos los sábado, por lo que como tenia un error y terminaba bloqueándola luego de ejecutarse.
      Solución [Fix]Block CleanerCronjob task
      Gracias, acabo de reemplazar la línea de código y probar. Como vez en la imagen que adjunto tengo las tarear cron desbloqueadas. Lo que busco es eliminar los usuarios inactivos.
      En la imagen la tienes claramente bloqueada, es la 4 que dice "Eliminar archivos antiguos" presiona donde dice que Si en rojo, Si te muestra el Si significa que esta bloqueada.Desbloquéala y limpia tu cache, espera a las 2:45 se activa sola
      Listo hice todo eso. Bien. Ahora? para qué es esa opción? En sí lo que busco es eliminar los usuarios inactivos.
    • yamilrh wrote:

      tellez wrote:

      yamilrh wrote:

      Esa código lo que hace es enviar mensaje a los usuarios inactivo.
      Pero pal problema de los usuarios inactivo, verifica que debes tener la tarea cron bloqueada.
      Panel de Administración-Tareas Cron [admin.php?page=cronjob]
      Si esta bloqueada debes desbloquearla y luego limpiar cache.
      Esa tarea se ejecuta todos los sábado, por lo que como tenia un error y terminaba bloqueándola luego de ejecutarse.
      Solución [Fix]Block CleanerCronjob task
      Gracias, acabo de reemplazar la línea de código y probar. Como vez en la imagen que adjunto tengo las tarear cron desbloqueadas. Lo que busco es eliminar los usuarios inactivos.
      En la imagen la tienes claramente bloqueada, es la 4 que dice "Eliminar archivos antiguos" presiona donde dice que Si en rojo, Si te muestra el Si significa que esta bloqueada.Desbloquéala y limpia tu cache, espera a las 2:45 se activa sola
      Listo ya me funcionó. Disculpa mi poco conocimiento. Ahora te envíe una imagen para que veas como me muestra las estadísticas y no debería ser así. Alguna solución para esto.
      Images
      • inactives.png

        1.51 MB, 1,366×768, viewed 110 times
    • tellez wrote:

      yamilrh wrote:

      Que esta mal?
      No nada, pero si te das cuenta en la imagen del rankig 80 creo, brinca al ciento y pico. Pero ya lo solucioné.
      La imagen se me olvido agrandarla xD, imagino que con actualizar manualmente las estadísticas ya debe solucionarse
      VERY SAD :/ :/ :/ :/
    • yamilrh wrote:

      tellez wrote:

      yamilrh wrote:

      Que esta mal?
      No nada, pero si te das cuenta en la imagen del rankig 80 creo, brinca al ciento y pico. Pero ya lo solucioné.
      La imagen se me olvido agrandarla xD, imagino que con actualizar manualmente las estadísticas ya debe solucionarse
      Solo era borrar cache y listo. Muchas gracias bro.