Nuevo sistema de notificaciones con toastr

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

    • Выглядит классно! Можно ли у вас попросить исходный код, если вы непротив? Я бы хотел его адаптировать под New-Star.
    • Yaro2709 wrote:

      Выглядит классно! Можно ли у вас попросить исходный код, если вы непротив? Я бы хотел его адаптировать под New-Star.
      Si claro se los voy a dejar aquí para el que lo necesite
    • Primero se debe añadir las librerías de toastr aqui les dejo los link para si lo necesitan toastr.

      En ./scripts/game/base.js

      JavaScript Source Code: base.js

      1. function alerta(type, msg, title) {
      2. var type = type;
      3. var msg = msg;
      4. var title = title;
      5. toastr[type](msg, title);
      6. }
      7. $(function() {
      8. window.setInterval(function() {
      9. $.ajax({
      10. type: 'POST',
      11. url: 'game.php?page=Util&ajax=1',
      12. data: '',
      13. success: function(data) {
      14. var data = JSON.parse(data);
      15. for (var i = 0; i <= data['i']; i++) {
      16. if (data['message'][i]) {
      17. //tipos de mensajes succes, info, warning, error
      18. switch (data['message'][i]['type']) {
      19. case '50':
      20. var type = 'success';
      21. break;
      22. default:
      23. var type = 'info';
      24. break;
      25. }
      26. alerta(type, data['message'][i]['texto'], data['message'][i]['name']);
      27. //Esto es para que no se repita la notificacion infinitamente
      28. var url = "game.php?page=Util&mode=notifi&ajax=1";
      29. var id = data['message'][i]['id'];
      30. $.ajax({
      31. type: 'POST',
      32. url: url,
      33. data: {mode:'notifi',id:id,ajaxReq:1},
      34. success: function(data)
      35. {
      36. console.log('se Notifico OK');
      37. }
      38. });
      39. }
      40. }
      41. return false;
      42. },
      43. });
      44. }, 1000);
      45. toastr.options = {
      46. "closeButton": true,
      47. "debug": true,
      48. "newestOnTop": true,
      49. "progressBar": true,
      50. "preventDuplicates": true,
      51. "onclick": null,
      52. "positionClass": "toast-top-right",
      53. "showDuration": "300",
      54. "hideDuration": "1000",
      55. "timeOut": "20000",
      56. "extendedTimeOut": "20000",
      57. "showEasing": "swing",
      58. "hideEasing": "linear",
      59. "showMethod": "fadeIn",
      60. "hideMethod": "fadeOut",
      61. "tapToDismiss": false,
      62. };
      63. });
      Display All

      Luego yo cree una pequeña pagina para realizar estas consultas


      PHP Source Code: ShowUtilPage.class.php

      1. <?php
      2. class ShowUtilPage extends AbstractGamePage
      3. {
      4. public static $requireModule = 0;
      5. function __construct()
      6. {
      7. parent::__construct();
      8. $this->setWindow('ajax');
      9. }
      10. public function show()
      11. {
      12. global $USER, $PLANET, $resource, $reslist, $LNG, $pricelist, $THEME;
      13. $config = Config::get();
      14. $db = Database::get();
      15. $sql = "SELECT * FROM %%MESSAGES%% WHERE message_owner = :id AND message_unread = :unread AND notifi = 0 AND message_type != 0 AND message_type != 3;";
      16. $messages = $db->select($sql, array(
      17. ':unread' => 1,
      18. ':id' => $USER['id']
      19. ));
      20. $i = 0;
      21. $message = array();
      22. foreach ($messages as $mess) {
      23. $message[$i] = array(
      24. 'type' => $mess['message_type'],
      25. 'id' => $mess['message_id'],
      26. 'name' => $mess['message_from'],
      27. 'texto' => $mess['message_text'],
      28. );
      29. $i++;
      30. }
      31. $this->sendJSON(array('i' => $i, 'message' => $message));
      32. }
      33. function notifi()
      34. {
      35. $db = Database::get();
      36. $id = HTTP::_GP('id', 0);
      37. $sql = "UPDATE %%MESSAGES%% set notifi = 1 WHERE message_id = :message_id;";
      38. $db->update($sql, array(
      39. ':message_id' => $id,
      40. ));
      41. }
      42. }
      Display All
      Y por ultimo se añade esto a la base de datos para indicar que ya se ha mostrado la notificacion



      Source Code: notifi.sql

      1. ALTER TABLE `uni1_messages` ADD `notifi` tinyint(3) unsigned NOT NULL DEFAULT 0;
      Esto es todo espero que si pueden mejorar el código no duden en compartirlo para ir mejorando entre todos.


      Aquí les dejo los ficheros
      Files

      The post was edited 2 times, last by Linkin ().

    • Ala wrote:

      SweetAlert2 también he pensado en incorporárselo a modo de confirmación para algunas acciones
      Si me parece genial una vez trabaje izitoast en el xnova pero nunca termine de trabajarlo, realmente se necesita cambiar ese sistema "arcaico" de alertas del 2moon, como se pudiera usar izimodal para los popup, hay muchas cosas buenas para implementar pero smarty uff, es bien complicado...
      Nice work
      Recien implemente las alertas del xterium. pero es el mismo concepto de izitoast.
      VERY SAD :/ :/ :/ :/