Contrata servicios web en ougcNetwork.
Muchos conoceréis este plugin, lo que hace es mostrar el número de temas que tiene un usuario, pero a diferencia del de Santiago, el mío no es creando una nueva tabla; El mío cuenta las columnas de los temas por el usuario, mucho más fácil y no hace falta una tabla de sobra, y lo mismo para el de MyBB Central; El de MyBB Central crea hasta un task, bueno con el mío que son 12 líneas espero que os guste.

PD: El nombre es una mierda jajaja

Descarga: [attachment=2045]
Se vé interesante Gypaete, lo probaremos a ver que trae.
La demo está en mi web xD se me olvidó ponerlo jaja
Estaría bueno que separe la cantidad de temas y mensajes.
Esta bueno
Eso lo he hecho xD Es montón de fácil, de hecho lo he puesto en el theme de skm jaja

Tan sólo es restar $mybb->user['postnum'] - $Num xDD
No iba a escribir este post, pero la frase "mucho más fácil y no hace falta una tabla de sobra" me hizo cambiar de opinión.

Mucho mas fácil? Si.
Mucho mejor? No.
Una tabla de sobra? No, no y no.

Tuve una razón (muy muy buena razón) para hacer el plugin de la manera en que lo hice: Optimización/rendimiento.

Funcionamiento de mi plugin:
  • Crea un nuevo campo en la base de datos. Ponele que agregue 2 o 3 MBs de espacio máximo en un foro con miles de usuarios.
  • Realiza 1 (una) consulta a la base de datos cuando el usuario crea o elimina un nuevo thread.
  • No realiza ninguna consulta cuando estás viendo un thread, ya que MyBB obtiene el valor de la base de datos automaticamente.

Funcionamiento de tu plugin:
  • No crea ningún campo en la base de datos. (Yeahhh!! Good for you!)
  • No realiza ninguna consulta a la base de datos cuando el usuario crea o elimina un nuevo thread. (Yeahh!! Query avoided!)
  • Cuando visitas un thread, realiza 1 (una) consulta a la base de datos por cada post que estés viendo. (Ouch! My bad...)

Pero eso no es todo, tu plugin no le ordena a la base de datos que cuente la cantidad de threads, si no que le ordena que extraiga todos y cada uno de los threads hechos por el usuario, y luego que los cuente.

Resultado:

En mi foro en localhost (donde el servidor tiene el 100% de los recursos disponibles), al ver un thread conteniendo 7 posts (todos hechos por el mismo usuario), los resultados son los siguientes:

Con tu plugin activado: 29
Con mi plugin activado: 22
Sin ningun plugin activado: 22

Screen de las consultas extra que hace tu plugin:
[Image: 2zsqgw8.jpg]


En un foro chico (MUY chico) y con un servidor decente (que no esté sobrevendido y bien configurado, con cache), no habría problemas.
Eso sí, en cuanto le agregas cientos/miles de visitas, el hosting te va a sacar a patadas :p



Las recomendaciones que te daría para el plugin:
  • Utiliza la funcion COUNT de mysql.
  • Crea un array global con la cantidad de threads hecho por el usuario X. Luego, antes de hacer la consulta a la base de datos, comprueba si ya la ha hecho anteriormente.

Aún así, con estas optimizaciones, el rendimiento en un foro mediano/grande no va a ser para nada bueno.



Ahora ya conoces las ventajas y desventajas que el método que estás utilizando tiene.
Suerte con el plugin Wink

PD: Estuve 30 minutos escribiendo esto y.... bueno, tenía que salir hace 25 minutos. Adios!

Edit: Ups, parece que Edson posteo antes algo parecido. Luego lo leere, que ahora me tengo que ir.
Edit 2: Ufa, no me resistí a leer. Lo único que me queda para decir: Edson, mi código es libre, pero está liberado bajo la GPL. Recuerdalo... Wink
Ahora si, chao!
Por supuesto es casi justo lo que le indicaba q no realiza consultas de mas y por supuesto que mejor con el count y puede usarlo con el simple_select de MyBB como lo e hecho yo la verdad tampoco pensaba postear porque siempre que lo hago se enoja y me reclama pero tambien lo ise solo porque dice que una tabla de sobra lo cual veo mal de su parte y mucho menos que dice que es mas facil jeje!
La tabla es necesaria para que el plugin carge el valor previamente ya contado de la tabla, tu plugin cuenta los temas cada que alguien ve un tema, por lo tanto hace mas llamados a la DB.

Así lo entiendo yo.
Envía un DM o MP si te interesa patrocinar alguna actualización o complemento a alguno de mis plugins.

[Image: signature.png]


Discord `omar.gonzalez` (`Omar G.#6117`); Telegram at `@omarugc`;