Mod bilgileri:
Modun adresi: Automatically Email Inactive Ordinary Users
Name: Automatically Email Inactive Ordinary Users
Created By: karlbenson
Type: New Feature
First Created: Aralık 06, 2007, 11:32:48 ÖS
Last Modified: Mart 03, 2008, 07:50:44 ÖS
Latest Version:1.4
Compatible With:1.1.4
Manuel Kurulum:
$boarddir/index.php bul:
// Load the current user's permissions.
	loadPermissions();
Sonrasına Ekle:
// Auto Email In active ordinary users
	require_once($sourcedir . '/Subs-Post.php');
	aeiou();
sourcedir/Subs.php de
dosyanın sonuna en alta ekle:
// Auto Email Inactive Ordinary Users Function
function aeiou()
{
	global $context, $modSettings, $db_prefix, $txt, $scripturl;
	// Max chunk. (max amount of emails to send at a time.)
	// Keeps page loading fast, mail server running smoothly
	$maxchunk = ($modSettings['aeiou_chunksize'] != 0) ? $modSettings['aeiou_chunksize'] : 4 ;
	// Mod disabled?
	if(!$modSettings['aeiou_enable'])
		return;
	// Time
	$time = time();
	list($hour, $day) = explode(',', (date('H,d',$time)));
	list($lockedhour, $lockedday) = ($modSettings['aeiou_locktimestamp'] == 0) ? array(-1,-1) : explode(',', (date('H,d', $modSettings['aeiou_locktimestamp']))) ;
	// 5 min gap between sending each chunk
	if($time < ($modSettings['aeiou_locktimestamp'] + 300))
		return;
	// Locked? - Shouldn't be after 5 minutes, override it to prevent accidental permanent lock
	if($modSettings['aeiou_lockkey'] != 0)
		$unlock = 1;
	// Different hour/day? Reset?
	if($day != $lockedday)
		$modSettings['aeiou_day_sent'] = 0;
	if($hour != $lockedhour)
		$modSettings['aeiou_hour_sent'] = 0;
	// Reached limits for this day?
	if($modSettings['aeiou_hour_sent'] >= $modSettings['aeiou_hour_max'])
		return;
	// Reached limits for this day
	if($modSettings['aeiou_day_sent'] >= $modSettings['aeiou_day_max'])
		return;
	// If stopped and its a different day, re-activate
	if(!empty($modSettings['aeiou_stop']) && $day != $lockedday)
	{
		$modSettings['aeiou_stop'] = 0 ;
		aeiou_update(array('stop' => 0));
	}
	// Tidy up
	unset($day, $lockedday);
	// Generate unique random key
	$lockkey =  md5($time.rand());
	// Update the timestamp
	$request = db_query("
			UPDATE {$db_prefix}settings
			SET value = $time
			WHERE variable = 'aeiou_locktimestamp'
				AND value = '". $modSettings['aeiou_locktimestamp'] ."'
			LIMIT 1
		", __FILE__, __LINE__);
	// If it didn't change the timestamp (eg same query called simultaneously by another?)
	if(mysql_affected_rows() == 0)
		return;
	// Change the lockkey
	$request = db_query("
			UPDATE {$db_prefix}settings
			SET value = '".$lockkey."'
			WHERE variable = 'aeiou_lockkey'
				AND value = '". ( isset($unlock) ? $modSettings['aeiou_lockkey'] : 0 ) ."'
		", __FILE__, __LINE__);
	// If it didn't change the key (eg same query called simultaneously by another?)
	if(mysql_affected_rows() == 0)
		return;
	// Reset the emails sent for any users who have logged in since we sent the emails
	db_query("
			UPDATE {$db_prefix}members
			SET aeiou_email = 0, aeiou_count = 0
			WHERE lastLogin > aeiou_email
				AND aeiou_email > 0
		", __FILE__, __LINE__);
	// Delete users query
	if($modSettings['aeiou_delete'])
		aeiou_delete();
	// If the mod is still stopped, return. (we must give it the opportunity to delete members)
	if(!empty($modSettings['aeiou_stop']))
		return;
	// How many victims to get?
	// Based on the remainder allowed for this hour and max chunk size
	$limit = (($modSettings['aeiou_hour_max'] - $modSettings['aeiou_hour_sent']) < $maxchunk) ? $modSettings['aeiou_hour_max'] - $modSettings['aeiou_hour_sent'] : $maxchunk ;
	// Based on the remainder allowed for this day
	if($limit > ($modSettings['aeiou_day_max'] - $modSettings['aeiou_day_sent']))
		$limit = (int) $modSettings['aeiou_day_max'] - $modSettings['aeiou_day_sent'];
	// Query to get next victims
	// - Must have been registered for 21 days
	// - Must not have logged in for 21 days
	// - Must not have been sent both initial and final email
	// - Must not been emailed in the last 21 days
	// - Must not be banned (is_activated >= 10)
	// - Must be an activated username/account (not 0)
	$request = db_query("
		SELECT ID_MEMBER, emailAddress, memberName, realName, aeiou_count
		FROM {$db_prefix}members
		WHERE dateRegistered < ". ($time - 1814400) ."
			AND lastLogin < ". ($time - 1814400) ."
			AND aeiou_count < 2
			AND aeiou_email < ". ($time - 1814400) ."
			AND is_activated < 10
			AND is_activated != 0
			AND is_activated != 4
		ORDER BY aeiou_count ASC, aeiou_email ASC, lastLogin ASC
		LIMIT ".$limit."
	", __FILE__, __LINE__);
	$returned = (int) mysql_num_rows($request);
	// No victims, returned
	if($returned == 0)
	{
		mysql_free_result($request);
		// No point in calling this script again until tomorrow, So set the stop
		aeiou_update(array('stop' => 1, 'lockkey' => 0));
		// No point in continuing so return
		return;
	}
	// Store the details of the selected few in an array, the ids to update
	$ids = $users = array();
	// Now the actual sending
	while($row = mysql_fetch_assoc($request))
	{
		$users[] = $row;
		$ids[] = (int) $row['ID_MEMBER'];
	}
	// Tidy up
	unset($row);
	mysql_free_result($request);
	// Update the Stats
	if($returned < $limit)
		// Some returned (must be the last few)
		// No point in calling this script again until tomorrow, So make it look like reached limits
		aeiou_update(array('stop' => 1));
	else
		// Increase our stats for how many have been sent hour/day
		aeiou_update(array('day_sent' => $modSettings['aeiou_day_sent'] + $returned, 'hour_sent' => $modSettings['aeiou_hour_sent'] + $returned));
	// Update the users information
	db_query("
		UPDATE {$db_prefix}members
		SET aeiou_email = '". $time ."', aeiou_count = aeiou_count + 1
		WHERE ID_MEMBER IN (". implode(', ', $ids) .")
	", __FILE__, __LINE__);
	// Tidy up
	unset($ids);
	// Variables to replace with actual strings, with preg patterns.
	// PHP4 users don't have str_ireplace, so we're using preg
	$search = array(
		'~\$username~i'.($context['utf8'] ? 'u' : ''),
		'~\$displayname~i'.($context['utf8'] ? 'u' : ''),
		'~\$forum~i'.($context['utf8'] ? 'u' : ''),
		'~\$link~i'.($context['utf8'] ? 'u' : ''),
		'~\$lostpassword~i'.($context['utf8'] ? 'u' : '')
	);
	// Now the important bit - the emailing
	foreach($users as $row)
	{
		// Initial or final email
		$which = ($row['aeiou_count'] == 0) ? 'initial' : 'final' ;
		// Custom or default message/subject?
		$message = empty($modSettings['aeiou_'.$which.'_message']) ? $txt['aeiou_default_message'] : $modSettings['aeiou_'.$which.'_message'] ;
		$subject = empty($modSettings['aeiou_'.$which.'_subject']) ? $txt['aeiou_default_subject'] : $modSettings['aeiou_'.$which.'_subject'] ;
		// Replace our placeholders in the message eg $username eg
		$replace = array($row['memberName'], $row['realName'], $context['forum_name'], $scripturl, $scripturl.'?action=reminder');
		// Use preg so matches mixed case
		$message = preg_replace($search, $replace, $message);
		$subject = preg_replace($search, $replace, $subject);
		// Strip_tags - remember no html
		$message = strip_tags($message);
		$subject = strip_tags($subject);
		// Special chars
		$message = htmlspecialchars($message, ENT_QUOTES);
		$subject = htmlspecialchars($subject, ENT_QUOTES);
		// Add Slashes
		$message = addslashes($message);
		$subject = addslashes($subject);
		// Now send the mail
		sendmail($row['emailAddress'], $subject, $message);
	}
	// Tidy up
	unset($users, $row, $search, $replace, $subject, $message);
	// Unlock the function
	aeiou_update(array('lockkey' => 0));
}
// Function to delete users. sends through deleteMembers function in Subs-members.php
function aeiou_delete()
{
	global $db_prefix, $modSettings;
	$modSettings['aeiou_underposts'] = empty($modSettings['aeiou_underposts']) ? 0 : (int) $modSettings['aeiou_underposts'] ;
	// Get a timestamp
	$time = time();
	// Grab all ordinary (non-admin) users to kill (5 at a time, otherwise it would kill the server)
	// Must not be an admin
	// - Must have been registered for 21 days
	// - Initially the user must not have logged in for 21 days
	// - Then must have been sent initial email
	// - Then after 21 days
	// - Then must have been sent final email
	// - Then it must be 21 days since that second email
	// - Now its times to delete a few of them at a time
	$request = db_query("
		SELECT ID_MEMBER
		FROM {$db_prefix}members
		WHERE lastLogin < ". ($time - 1814400) ."
			AND ID_GROUP != 1
			AND FIND_IN_SET(1, additionalGroups) = 0
			AND aeiou_count > 1
			AND aeiou_email < ". ($time - 1814400) ."
			". ( ($modSettings['aeiou_underposts'] > 0) ? "AND posts <= ".$modSettings['aeiou_underposts'] : "" ) ."
		LIMIT 5
	", __FILE__, __LINE__);
	// No people to delete
	if(mysql_num_rows($request) == 0)
		return;
	// Store all the users to be deleted in an array
	$users = array();
	while($row = mysql_fetch_assoc($request))
		$users[] = (int) $row['ID_MEMBER'];
	// Tidy up
	mysql_free_result($request);
	unset($row, $condition);
	// Delete members (using a bypass of some checks)
	require_once('Subs-Members.php');
	deleteMembers($users, true);
}
// Function to update a setting of this mod, adds aeiou_ to any variable name
function aeiou_update($array = null)
{
	global $db_prefix;
	// If not an array, or empty, return
	if(!is_array($array) || empty($array))
		return;
	foreach($array as $a => $b)
	{
		db_query("
				UPDATE {$db_prefix}settings
				SET value = ". (int) $b ."
				WHERE variable = 'aeiou_".$a."'
			", __FILE__, __LINE__);
	}
}
sourcedir/Subs-Members.php de
Bul:
function deleteMembers($users)
Değiştir:
function deleteMembers($users, $bypass = false)
Bul:
elseif (count($users) == 1)
	{
		list ($user) = $users;
		$condition = '= ' . $user;
		if ($user == $ID_MEMBER)
			isAllowedTo('profile_remove_own');
		else
			isAllowedTo('profile_remove_any');
	}
	else
	{
		foreach ($users as $k => $v)
			$users[$k] = (int) $v;
		$condition = 'IN (' . implode(', ', $users) . ')';
		// Deleting more than one?  You can't have more than one account...
		isAllowedTo('profile_remove_any');
	}
	// Make sure they aren't trying to delete administrators if they aren't one.  But don't bother checking if it's just themself.
	if (!allowedTo('admin_forum') && (count($users) != 1 || $users[0] != $ID_MEMBER))
	{
		$request = db_query("
			SELECT ID_MEMBER
			FROM {$db_prefix}members
			WHERE ID_MEMBER IN (" . implode(', ', $users) . ")
				AND (ID_GROUP = 1 OR FIND_IN_SET(1, additionalGroups) != 0)
			LIMIT " . count($users), __FILE__, __LINE__);
		$admins = array();
		while ($row = mysql_fetch_assoc($request))
			$admins[] = $row['ID_MEMBER'];
		mysql_free_result($request);
		if (!empty($admins))
			$users = array_diff($users, $admins);
	}
Değiştir:
// *Section Modified by Automatically Email Inactive Users mod
	if (count($users) == 1)
	{
		list ($user) = $users;
		$condition = '= ' . $user;
		// Bypass when called by AEIOU mod
		if(!$bypass)
		{
			if ($user == $ID_MEMBER)
				isAllowedTo('profile_remove_own');
			else
				isAllowedTo('profile_remove_any');
		}
		else
		{
			global $boardurl;
			// Bypass only valid via SMF, the Board Url and deletion is enabled
			if(!defined('SMF') || $boardurl != substr($_SERVER['REQUEST_URL'], 0, strlen($boardurl)) || empty($modSettings['aeiou_delete']))
				return;
		}
	}
	else
	{
		foreach ($users as $k => $v)
			$users[$k] = (int) $v;
		$condition = 'IN (' . implode(', ', $users) . ')';
		// Bypass when called by AEIOU mod
		if(!$bypass)
		{
			// Deleting more than one?  You can't have more than one account...
			isAllowedTo('profile_remove_any');
		}
		else
		{
			global $boardurl;
			// Bypass only valid via SMF && via Board Url
			if(!defined('SMF') || $boardurl != substr($_SERVER['REQUEST_URL'], 0, strlen($boardurl)) || empty($modSettings['aeiou_delete']))
				return;
		}
	}
	// Make sure they aren't trying to delete administrators if they aren't one.  But don't bother checking if it's just themself.
	if (!allowedTo('admin_forum') && (count($users) != 1 || $users[0] != $ID_MEMBER))
	{
		$request = db_query("
			SELECT ID_MEMBER
			FROM {$db_prefix}members
			WHERE ID_MEMBER IN (" . implode(', ', $users) . ")
				AND (ID_GROUP = 1 OR FIND_IN_SET(1, additionalGroups) != 0)
			LIMIT " . count($users), __FILE__, __LINE__);
		$admins = array();
		while ($row = mysql_fetch_assoc($request))
			$admins[] = $row['ID_MEMBER'];
		mysql_free_result($request);
		if (!empty($admins))
			$users = array_diff($users, $admins);
	}
sourcedir/ModSettings.php de
Bul:
$context['sub_template'] = 'show_settings';
	$subActions = array(
Altına ekle:
'aeiou' => 'ModifyAeiouSettings',
Bul :
require_once($sourcedir . '/ManageServer.php');
	$subActions = array(
Altına Ekle:
'aeiou' => 'ModifyAeiouSettings',
Bul:
'karma' => array(
				'title' => $txt['smf293'],
				'href' => $scripturl . '?action=featuresettings;sa=karma;sesc=' . $context['session_id'],
Altına ekle:
),
			'aeiou' => array(
				'title' => $txt['aeiou'],
				'href' => $scripturl . '?action=featuresettings;sa=aeiou;sesc=' . $context['session_id'],
Bul:
?>
Üstüne ekle:
function ModifyAeiouSettings()
{
	global $txt, $scripturl, $context, $settings, $sc, $db_prefix, $modSettings;
	// If the mod is enabled and we're not saving, query for mod status information
	if (!isset($_GET['save']) && $modSettings['aeiou_enable'])
	{
		// Current time
		$time = time();
		// Get the delete band
		$request = db_query("
			SELECT count(*)
			FROM {$db_prefix}members
			WHERE lastLogin < ". ($time - 1814400) ."
				AND aeiou_email < ". ($time - 1814400) ."
				AND aeiou_count > 1
				AND posts <= ". (int) $modSettings['aeiou_underposts']. "
		", __FILE__, __LINE__);
		list($deletion) = mysql_fetch_row($request);
		// Create an array for the bands, with default values of 0
		$temp = array(0 => 0, 1 => 0, 2 => (int) $deletion);
		// Tidy up
		unset($deletion);
		mysql_free_result($request);
		// Get the email bands
		$request = db_query("
			SELECT count(*) as no, aeiou_count
			FROM {$db_prefix}members
			WHERE lastLogin < ". ($time - 1814400) ."
				AND aeiou_email < ". ($time - 1814400) ."
				AND aeiou_count < 2
				AND is_activated < 10
				AND is_activated != 0
				AND is_activated != 4
			GROUP BY aeiou_count
			ORDER BY aeiou_count ASC
			", __FILE__, __LINE__);
		// No further emails, if not set already, stop the mod until tomorrow
		if(mysql_num_rows($request) == 0)
		{
			// If not already, tell the mod to stop
			if(!empty($modSettings['aeiou_stop']))
				aeiou_update(array('stop' => 1));
			// Change the variable for the remainder of this page
			$modSettings['aeiou_stop'] = 1;
		}
		else
		{
			// Store the bands in the array created earlier
			while($row = mysql_fetch_assoc($request))
				$temp[$row['aeiou_count']] = $row['no'];
			// Tidy up
			unset($row);
			// The mod is set as stopped, but we discovered some emails, so re-activate us
			if(!empty($modSettings['aeiou_stop']))
			{
				aeiou_update(array('stop' => 0));
				// Change the variable for the remainder of this page
				$modSettings['aeiou_stop'] = 0;
				$reactivated = 1;
			}
		}
		// Prepare rows for the stats table
		$items = array();
		// Last ran
		$items['aeiou_last_ran'] = ($modSettings['aeiou_locktimestamp'] == 0) ? $txt['aeiou_never'] : timeformat($modSettings['aeiou_locktimestamp'], true) ;
		$again = ($modSettings['aeiou_locktimestamp'] == 0) ? $time : $modSettings['aeiou_locktimestamp'];
		// But if reached daily limit or is stopped we will start/check again tomorrow
		if($modSettings['aeiou_day_max'] <= $modSettings['aeiou_day_sent'] || $modSettings['aeiou_stop'] == 1)
		{
			$date = explode('-', date('Y-m-d', $again));
			$tomorrow = mktime(0, 0, 0, $date[1], $date[2], $date[0]) + (60*60*24);
			$items['aeiou_starts_again'] = timeformat($tomorrow, true);
			unset($date, $tomorrow);
		}
		elseif($modSettings['aeiou_hour_max'] <= $modSettings['aeiou_hour_sent'])
		{
		// Or reached hourly limit we will start/check again next hour
			$date = explode('-', date('Y-m-d-h', $again));
			$nexthour = mktime($date[3], 0, 0, $date[1], $date[2], $date[0]) + (60*60);
			$items['aeiou_starts_again'] = timeformat($nexthour, true);
			unset($date, $nexthour);
		}
		else
		// Else Can start again from previous + 5mins
			$items['aeiou_starts_again'] = timeformat($again + 300, true) ;
		// Emailed today with max in parenthesis
		$items['aeiou_sent_day'] = $modSettings['aeiou_day_sent']
			.' <span style="font-weight:normal;font-style:italic">('.$txt['aeiou_max'].': '.$modSettings['aeiou_day_max'].')</span>';
		// Emailed this hour with max in parenthesis
		$items['aeiou_sent_hour'] = $modSettings['aeiou_hour_sent']
			.' <span style="font-weight:normal;font-style:italic">('.$txt['aeiou_max'].': '.$modSettings['aeiou_hour_max'].')</span>';
		// Now setup the stats about no.s of email etc
		$items['aeiou_awaiting_total'] = $temp[0] + $temp[1];
		$items['aeiou_awaiting_initial_email'] = $temp[0];
		$items['aeiou_awaiting_final_email'] = $temp[1];
		$items['aeiou_awaiting_deletion'] = $temp[2] . (empty($modSettings['aeiou_delete']) ? ' <span style="color:red">'.$txt['aeiou_disabled'].'</span>' : '' ) ; 
		// Reasons for inactive			
		if(!empty($modSettings['aeiou_stop']))
			$status = $txt['aeiou_nofurtheremails'];
		elseif($modSettings['aeiou_day_max'] <= $modSettings['aeiou_day_sent'])
			$status = $txt['aeiou_reacheddailylimit'];
		elseif($modSettings['aeiou_hour_max'] <= $modSettings['aeiou_hour_sent'])
			$status = $txt['aeiou_reachedhourlylimit'];
		// Is the mod Active? (even if enabled, it might not be active)
		// If the mod was stopped, but on loading this page, we discovered more emails, show as re-activated
		if(!empty($reactivated))
			$status = '<span style="color:darkgreen">'.$txt['aeiou_reactivated'].'</span>';
		elseif(empty($status))
			$status = '<span style="color:darkgreen">'.$txt['aeiou_active'].'</span>';
		else
		// Inactive 
			$status = '<span style="color:maroon">'.$txt['aeiou_stopped'].'</span> - '. $status;
		// Header of the stats chunk and status
		$chunk = '<table cellpadding="1" cellspacing="0" border="0" width="100%" class="tborder">
		<tr class="titlebg"><td colspan="2">'.$txt['aeiou_status'].': '.$status.'</td></tr>';
		// Now build the chunk of html of our stats
		foreach($items as $string => $value)
		{
			// Less emphasis on the sub-totals
			$italic = ($string == 'aeiou_awaiting_initial_email' || $string == 'aeiou_awaiting_final_email') ? 1 : 0 ;
			// Add more rows to the existing chunk
			$chunk .= '<tr class="windowbg"><td'.($italic ? ' style="font-weight:normal;font-style:italic"' : '').' >'.$txt[$string].':</td><td'.($italic ? ' style="font-weight:normal;font-style:italic"' : '').'>'.$value.'</td></tr>';
		}	
		$chunk .= '</table><br />';
		// Now for the last 10 people emailed
		$request = db_query("
			SELECT ID_MEMBER, memberName, aeiou_email, aeiou_count
			FROM {$db_prefix}members
			WHERE aeiou_email != 0
			ORDER BY aeiou_email DESC
			LIMIT 10
			", __FILE__, __LINE__);
		$chunk2 = '<table cellpadding="1" cellspacing="0" border="0" width="100%" class="tborder">
		<tr class="titlebg"><td colspan="3">'.$txt['aeiou_last10emailed'].'</td></tr>';
		if(mysql_num_rows($request) == 0)
			$chunk2 .= '<tr class="windowbg"><td colspan="3">'.$txt['aeiou_never'].'</td></tr>';
		else
		{
			// Add each user as a row in the table
			while($row = mysql_fetch_assoc($request))
				$chunk2 .= '<tr class="windowbg"><td><a href="'.$scripturl.'?action=profile;u='.$row['ID_MEMBER'].'">'.$row['memberName'].'</a></td><td style="font-weight:normal;">'.timeformat($row['aeiou_email'], true).'</td><td style="font-weight:normal;">'. $txt['aeiou_'.( ($row['aeiou_count'] == 1) ? 'initial' : 'final' )].'</td></tr>';
		}
		$chunk2 .= '</table><br />';
	}
	else
		// If the mod is not enabled, don't show either as chunks.  use a space to prevent it being shown as a delimiter
		$chunk = $chunk2 = ' ';
	// Compile/Build some language strings/add to
	// Avoids using html in the language files
	$temp = array('initial_subject' => 'subject', 'initial_message' => 'message', 'final_subject' => 'subject', 'final_message' => 'message');
	$add = '<div class="smalltext">'.$txt['aeiou_email_desc1'].'<br />'.$txt['aeiou_email_desc2'].'<br />'.$txt['aeiou_email_desc3'].'</div>';
	foreach($temp as $a => $b)
	{
		// Add the descriptions to the txt string
		$txt['aeiou_'.$a] .= $add;
		// Use the default message if we don't have a custom one saved
		if(empty($modSettings['aeiou_'.$a]))
			$modSettings['aeiou_'.$a] = !empty($txt['aeiou_default_'.$b]) ? $txt['aeiou_default_'.$b] : '' ;
	}
	// Tidy up
	unset($temp, $add, $a);
	// More descriptions to add with html
	$temp = array('delete', 'underposts', 'hour_max', 'day_max', 'chunksize');
	foreach($temp as $a)
		$txt['aeiou_'.$a] .= '<div class="smalltext">'.$txt['aeiou_'.$a.'_desc'] .'</div>';
	// Now the warning chunk.  Comprises of 4 parts.
	$txt['aeiou_warning'] .= '<div class="smalltext">'. $txt['aeiou_warning2'] .'<br />'.$txt['aeiou_warning3'].'<br />'.$txt['aeiou_warning4'].'</div>';
	// The important array
	$config_vars = array(
		$chunk,
			array('check', 'aeiou_enable'),
			array('text', 'aeiou_initial_subject', '30" style="width:95%'),
			array('large_text', 'aeiou_initial_message', '5" style="width:95%'),
			array('text', 'aeiou_final_subject', '30" style="width:95%'),
			array('large_text', 'aeiou_final_message', '5" style="width:95%'),
		'',
			array('check', 'aeiou_delete'),
			array('int', 'aeiou_underposts'),
		'',
		$txt['aeiou_warning'],
			array('int', 'aeiou_hour_max'),
			array('int', 'aeiou_day_max'),
			array('int', 'aeiou_chunksize'),
		$chunk2,
	);
	// Saving?
	if (isset($_GET['save']))
	{
		saveDBSettings($config_vars);
		redirectexit('action=featuresettings;sa=aeiou');
	}
	$context['post_url'] = $scripturl . '?action=featuresettings2;save;sa=aeiou';
	$context['settings_title'] = $txt['aeiou_title'];
	prepareDBSettingContext($config_vars);
}

Devamı Altta