Bienvenido, Invitado
Nombre de Usuario: Contraseña: Recordarme

TEMA: Set Maximum Messages to write in a day ?

Set Maximum Messages to write in a day ? 6 años 7 meses ago #20624

  • Hydan
  • Avatar de Hydan
  • Offline
  • Visitante
  • Mensajes: 3
  • Karma: 0
is there a way to set a maximum limit to users to write messages in a day ? For example if i write 3 messages in a day i must wait the day after to write again.

If you can write the code I would be grateful, or maybe a second way to solve this problem could be if you write 2 messages in 20 seconds you get banned for 5 minutes :O .. can you help me ^^ ?

Thank you very much

Hydan
Última Edición: 6 años 7 meses ago por Hydan.
El administrador ha desactivado la escritura pública.

Set Maximum Messages to write in a day ? 6 años 7 meses ago #20625

  • JoniJnm
  • Avatar de JoniJnm
  • Offline
  • Administrador
  • Mensajes: 4579
  • Gracias recibidas 544
  • Karma: 160
Hi,

The second way is done, now the user is banned if sends 4 messages in 5 seconds or less

You can change it in helpers/user.php
class kideUser {
	//ban user if post 4 messages in 5 seconds or less
	//TODO: move to kide admin config
	const BAN_TOTAL = 4;
	const BAN_TIME = 5;

Only guest users will be banned (not registered)
Última Edición: 6 años 7 meses ago por JoniJnm.
El administrador ha desactivado la escritura pública.

Set Maximum Messages to write in a day ? 6 años 7 meses ago #20626

  • Hydan
  • Avatar de Hydan
  • Offline
  • Visitante
  • Mensajes: 3
  • Karma: 0
Yeah thank you very much .... ;) and for registered :O?? i set a guest can write a message each 1 hour ... i want to do same for registered ^^

Hydan
Última Edición: 6 años 7 meses ago por Hydan.
El administrador ha desactivado la escritura pública.

Set Maximum Messages to write in a day ? 6 años 7 meses ago #20627

  • JoniJnm
  • Avatar de JoniJnm
  • Offline
  • Administrador
  • Mensajes: 4579
  • Gracias recibidas 544
  • Karma: 160
In helpers/user.php change
function checkBan() {
		if ($this->rango <= 1) return false;
		$banned = false;
		$limit = self::BAN_TOTAL + 2;
		$session = JFactory::getSession();
		$ban = $session->get('kide_ban', array());
		if (count($ban) != self::BAN_TOTAL+3 || $ban[self::BAN_TOTAL+1] != self::BAN_TOTAL || $ban[self::BAN_TOTAL+2] != self::BAN_TIME) {
			$ban = array();
		}
		if (!count($ban)) {
			for ($i=0; $i<=self::BAN_TOTAL; $i++)
				$ban[$i] = $i == 0 ? 1 : 0;
			$ban[self::BAN_TOTAL+1] = self::BAN_TOTAL;
			$ban[self::BAN_TOTAL+2] = self::BAN_TIME;
		}
 
		if ($ban[0] > self::BAN_TOTAL) {
			for ($i=1; $i<self::BAN_TOTAL; $i++)
				$ban[$i] = $ban[$i+1];
			$ban[self::BAN_TOTAL] = time();
			$aux = $ban[self::BAN_TOTAL] - $ban[1];
			if ($aux < self::BAN_TIME) {
				$this->banear();
				$banned = true;
			}
		}
		else {
			$ban[$ban[0]] = time();
			$ban[0]++;
		}
		$session->set('kide_ban', $ban);
		return $banned;
	}

by
function checkBan() {
		if ($this->rango == 2) { //registered
			//ban user if post 2 messages in 1 hour or less
			$ban_total = 2;
			$ban_time = 60*60;
		}
		elseif ($this->rango == 3) { //guest
			//ban user if post 4 messages in 5 seconds or less
			$ban_total = 4;
			$ban_time = 5;
		}
		else
			return false;
 
		$banned = false;
		$limit = $ban_total + 2;
		$session = JFactory::getSession();
		$ban = $session->get('kide_ban', array());
		if (count($ban) != $ban_total+3 || $ban[$ban_total+1] != $ban_total || $ban[$ban_total+2] != $ban_time) {
			$ban = array();
		}
		if (!count($ban)) {
			for ($i=0; $i<=$ban_total; $i++)
				$ban[$i] = $i == 0 ? 1 : 0;
			$ban[$ban_total+1] = $ban_total;
			$ban[$ban_total+2] = $ban_time;
		}
 
		if ($ban[0] > $ban_total) {
			for ($i=1; $i<$ban_total; $i++)
				$ban[$i] = $ban[$i+1];
			$ban[$ban_total] = time();
			$aux = $ban[$ban_total] - $ban[1];
			if ($aux < $ban_time) {
				$this->banear();
				$banned = true;
			}
		}
		else {
			$ban[$ban[0]] = time();
			$ban[0]++;
		}
		$session->set('kide_ban', $ban);
		return $banned;
	}
Última Edición: 6 años 7 meses ago por JoniJnm.
El administrador ha desactivado la escritura pública.

Set Maximum Messages to write in a day ? 6 años 7 meses ago #20628

  • Hydan
  • Avatar de Hydan
  • Offline
  • Visitante
  • Mensajes: 3
  • Karma: 0
Yeeeah .. it works fine .. thank you veeeery much :D

Hydan
El administrador ha desactivado la escritura pública.
Tiempo de carga de la página: 0.310 segundos