Pagina 1 van 1

[aanvraag] reset waarschuwingen na auto ban..

Geplaatst: 21 nov 2009, 16:05
door heliumblazer
  • Modificatie & Versie: http://www.phpbb.com/community/viewtopi ... 9&t=597284
    Directe link naar de modificatie: http://www.phpbb.com/community/viewtopi ... 9&t=597284
    Adres van je forum: http://schoolkrant.pretpark-online.nl
    phpBB versie: 3.0.5
    Heb je onlangs een andere modificatie of stijl geïnstalleerd?
    nee, alleen wat bbcodes

    Wat is het probleem?
    beste,
    ik heb nu een mod geinstalleerd 'ban users by x warnings'.
    nu word na 5 waarschuwingen de gebruiker verbannen en in de verbannen groep gezet, maar de waarschuwingen blijven.
    is het mogelijk om als de ban voorbij is, dat op die dag en tijdstip de waarschuwingen op 3 word gezet?
    of bestaat daar al een mod voor?
    mag ook op 0, maar liever 3.

    ik hoop dat die bestaat, of dat iemand hem zo willen maken.

    heliumblazer

Re: [aanvraag] reset waarschuwingen na auto ban..

Geplaatst: 22 nov 2009, 11:44
door Jeroen
Voor zover ik weet bestaat hier geen MOD voor.
Ook op phpBB.com is niets gerelateerds te vinden.

Re: [aanvraag] reset waarschuwingen na auto ban..

Geplaatst: 23 nov 2009, 15:45
door heliumblazer
zou ook niemand hem willen maken?
ik ben er niet heel goed in, maar het lijkt me niet echt moeilijk.
enkel iets bij die autogroup mod te plaatsen, dat als ie weer in de geregistreerde gebruikers komt, er 2 waarschuwingen af gaan.
hoop dat iemand het kan met deze mods:
http://www.phpbb.com/community/viewtopi ... &t=1669345
http://www.phpbb.com/community/viewtopi ... 0&t=749805

bedankt als iemand er na wil kijken!

heliumblazer

Re: [aanvraag] reset waarschuwingen na auto ban..

Geplaatst: 23 nov 2009, 15:47
door Jeroen
Je zou een aanvraag kunnen plaatsen in het Gevraagd forum hier op phpBB.nl. Misschien is iemand bereid het voor je te doen :)

Re: [aanvraag] reset waarschuwingen na auto ban..

Geplaatst: 23 nov 2009, 17:41
door heliumblazer
ben zelf al aan 't expermimenteren, maar heb nu dit:

Code: Selecteer alles

mysql_query("UPDATE phpbb_users SET user_warnings=user_warnings-2 WHERE username = '{$user_row['username']}'");
maar, ik krijg dan errors, dat er geen mySQL verbinding is.
aan jullie de vraag, hoe update ik met php in phpbb de phpbb_users tabel, en zet ik user_warnings - 2?

heliumblazer

Re: [aanvraag] reset waarschuwingen na auto ban..

Geplaatst: 24 nov 2009, 12:17
door heliumblazer
weet niemand hoe je een mysql query doet in phpbb?

heliumblazer

Re: [aanvraag] reset waarschuwingen na auto ban..

Geplaatst: 24 nov 2009, 13:15
door Kevin
Inloggen in phpmyadmin of wat er dan ook gebruikt voor de database. Dan kan je vinden in het hostingpaneel van je website. Daar zie je de database van je forum staan als het goed is, die open je en klik je op het tabblad sql. Daar plak je die qeury en druk op start.

Re: [aanvraag] reset waarschuwingen na auto ban..

Geplaatst: 24 nov 2009, 13:38
door Paul
@kevin1979, snap je überhaupt wel wat hij vraagt?

Dit kan met

Code: Selecteer alles

$db->sql_query($sql);
waarbij $sql de te draaien query is.

Re: [aanvraag] reset waarschuwingen na auto ban..

Geplaatst: 24 nov 2009, 15:19
door heliumblazer
edit:
het werkt allemaal niet..
het moet werken met dit script:

Code: Selecteer alles

<?php
/**
*
* @package phpBB3
* @version $Id: prime_ban_to_group.php,v 1.0.1 2009/07/29 22:06:00 primehalo Exp $
* @copyright (c) 2008-2009 Ken F. Innes IV
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* Make sure this file has not already been included.
*/
if (!defined('PRIME_BAN_TO_GROUP'))
{
	define('PRIME_BAN_TO_GROUP', true);
	define('BANNED_GROUP_NAME', 'Verbannen');		// Group name for permanently banned users
	define('SUSPENDED_GROUP_NAME', 'Verbannen');	// Group name for temporarily banned users

	class prime_ban_to_group
	{
		/**
		* Constructor
		*/
		function prime_ban_to_group($ids = null, $ban_len = 0, $mode = '')
		{
			$this->ban_to_group($ids, $ban_len, $mode);
		}

		/**
		*/
		function ban_to_group($ids = null, $ban_len = 0, $mode = '')
		{
			if ($mode == 'user' || $mode == 'email' || $mode == '')
			{
				if (is_int($ban_len))
				{
					$this->group_users_add(($ban_len ? SUSPENDED_GROUP_NAME : BANNED_GROUP_NAME), $ids);
				}
				else if ($ban_len == 'unban')
				{
					global $db;
					if (empty($ids) || $mode === '') // remove stale bans
					{
						$sql = 'SELECT u.user_id, u.username, b.ban_end'
							 . '	FROM ' . USERS_TABLE . ' u, ' . BANLIST_TABLE . ' b'
							 . '	WHERE ban_end < ' . time()
							 . '		AND ban_end <> 0'
							 . '		AND u.user_type <> ' . USER_IGNORE
							 . '		AND ((u.user_email <> \'\' AND u.user_email = b.ban_email) OR u.user_id = b.ban_userid)';
					}
					else
					{
						$sql = 'SELECT u.user_id, u.username, b.ban_end'
							 . '	FROM ' . USERS_TABLE . ' u, ' . BANLIST_TABLE . ' b'
							 . '	WHERE ' . $db->sql_in_set('b.ban_id', $ids)
							 . '		AND ' . ($mode == 'email' ? 'u.user_email = b.ban_email' : 'u.user_id = b.ban_userid');
					}
					$result = $db->sql_query($sql);
					$ids = array();
					while ($row = $db->sql_fetchrow($result))
					{
						$type = $row['ban_end'] ? SUSPENDED_GROUP_NAME : BANNED_GROUP_NAME;
						$ids[$type][] = $row['user_id'];
						$names[$type][] = $row['username'];
					}
					$db->sql_freeresult($result);
					foreach ($ids as $group_name => $user_ids)
					{
						$this->group_users_del($group_name, $user_ids, $names[$group_name]);
					}
				}
			}
		}

		/**
		*/
		function get_group_data($group_name)
		{
			global $db;

			$sql = 'SELECT * '
			     . ' FROM ' . GROUPS_TABLE . ' '
			     . " WHERE group_name='" . $group_name . "'"
			;
			$result = $db->sql_query($sql);
			$group_data = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);

			return ($group_data);
		}

		/**
		*/
		function group_users_add($group_name, $user_ids, $usernames = false)
		{
			$group_data	= $this->get_group_data($group_name);
			$group_id	= isset($group_data['group_id']) ? $group_data['group_id'] : null;
			if (!empty($group_id) && function_exists('group_user_add'))
			{
				group_user_add($group_id, $user_ids, $usernames, $group_name, true, 0, 0, $group_data);
			}
			return(false);
		}

		/**
		*/
		function group_users_del($group_name, $user_ids, $usernames = false)
		{
			global $db;
			$group_data	= $this->get_group_data($group_name);
			$group_id	= isset($group_data['group_id']) ? $group_data['group_id'] : null;
			if (!empty($group_id) && function_exists('group_user_del'))
			{
				// Get users belonging to the group from which we want them removed (only needed so prevent log entries for removing users that don't even belong to the group)
				$sql = 'SELECT user_id'
				     . ' FROM ' . USER_GROUP_TABLE
				     . ' WHERE group_id = ' . $group_id
				     . ' 	AND ' . $db->sql_in_set('user_id', (array)$user_ids)
				;
				$result = $db->sql_query($sql);
				$user_ids = array(); // clear out the user_ids array
				while ($row = $db->sql_fetchrow($result))
				{
					$user_ids[] = $row['user_id'];
				}
				$db->sql_freeresult($result);
				if (!empty($user_ids))
				{
					remove_default_rank($group_id, $user_ids);
					group_user_del($group_id, $user_ids, $usernames, $group_name, 0, 0, $group_data);
					$sql = "UPDATE phpbb_users SET user_warnings=user_warnings-2 WHERE username = '{$user->data['username']}'";
					$db->sql_query($sql);
				}
			}
			return(false);
		}
	}
}
?>
onderaan staat dit:

Code: Selecteer alles

               $sql = "UPDATE phpbb_users SET user_warnings=user_warnings-2 WHERE username = '{$user->data['username']}'";
               $db->sql_query($sql);
en dat is het nu, maar het moet dus werken, dat de user die verbannen is er 2 waarschuwingen af krijgt.
moet ik dan $usernames gebruiken?
ik weet het niet meer...
de verbannen user moet er twee waarschuwingen af krijgen, als hij naar die andere groep word verplaatst.
alleen welke variabele moet ik dan gebruiken?

heliumblazer