[B][CENTER]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!  :       (www.phpkd.net) !
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[/CENTER][/B]



[B][COLOR="Red"]Please remember to click [COLOR="Blue"]Mark as Installed[/COLOR] if you use this modification.[/COLOR]
[COLOR="DarkOrchid"]Support questions from members who have not marked this as installed will be considered low priority.[/COLOR][/B]

[B]Note:[/B]       [URL="http://www.vbulletin.org/forum/member.php?u=74086"]kevinh[/URL]     .        .             [URL="http://creativecommons.org/licenses/by-nc-sa/3.0/"]Creative Commons - Attribution-Noncommercial-Share Alike 3.0[/URL],        .


[B]:[/B]     - [B]:[/B] 3.8.100

[B]:[/B]          .


[B] :[/B]    3.6/3.7/3.8  .


[B][U] :[/U][/B]
[LIST]
[*]     :
[URL="http://forum.phpkd.net/showthread.php?t=817"]   -    [/URL]
[/LIST]


[B][U] :[/U][/B]
[LIST]
[*]     .
[*]   .
[*] .
[*]  .
[*]  .
[*]         .
[*]   "   "     .
[*]   "       "  //  .
[*]    :  " "   "   ".
[/LIST]


[U][B] :[/B][/U]
[LIST=1]
[*]   "bitfield_modattachstaffnotify.xml"   "/includes/xml/".
[*]   :
   "includes/class_dm_threadpost.php"     :
[code]	function email_moderators($fields)[/code]

    :
[code]	/**
	* Fetches the amount of moderated attachments associated with a posthash and user
	*
	* @param	string	Post hash
	* @param	integer	User ID associated with post hash (-1 means current user)
	*
	* @return	integer	Number of attachments
	*/
	function fetch_mod_attachment_count($postid, $userid = -1)
	{
		if ($userid == -1)
		{
			$userid = $this->fetch_field('userid', 'post');
		}
		$userid = intval($userid);

		$attachcount = $this->dbobject->query_first("
			SELECT COUNT(*) AS count
			FROM " . TABLE_PREFIX . "attachment
			WHERE postid = '$postid'
				AND userid = $userid
				AND visible != 1
		");

		return intval($attachcount['count']);
	}

	/**
	* Fetches the moderated attachments associated with a posthash and user
	*
	* @param	string	Post hash
	* @param	integer	User ID associated with post hash (-1 means current user)
	*
	* @return	array Moderated attachments IDs
	*/
	function fetch_mod_attachment($postid, $userid = -1)
	{
		if ($userid == -1)
		{
			$userid = $this->fetch_field('userid', 'post');
		}
		$userid = intval($userid);

		$attachs = $this->dbobject->query_read_slave("
			SELECT attachmentid, filename
			FROM " . TABLE_PREFIX . "attachment
			WHERE postid = '$postid'
				AND userid = $userid
				AND visible != 1
		");

		$modattach = array();
		while ($attach = $this->dbobject->fetch_array($attachs))
		{
			$modattach[$attach['attachmentid']] = array('attachmentid' => $attach['attachmentid'], 'filename' => $attach['filename'], 'postid' => $attach['postid'], 'dateline' => $attach['dateline']);
		}

		return $modattach;
	}

	function attach_email_moderators($fields, $attachcount, $attachs)
	{
		if ($this->info['skip_moderator_email'] OR !$this->info['forum'] OR in_coventry($this->fetch_field('userid', 'post'), true))
		{
			return;
		}

		$mod_emails = fetch_moderator_modattach_emails($fields, $this->info['forum']['parentlist'], $newpost_lang);

		if (!empty($mod_emails))
		{
			$foruminfo = $this->info['forum'];
			$foruminfo['title_clean'] = unhtmlspecialchars($foruminfo['title_clean']);

			$threadinfo = fetch_threadinfo($this->fetch_field('threadid'));

			$email = ($this->info['user']['email'] ? $this->info['user']['email'] : $this->registry->userinfo['email']);
			$browsing_user = $this->registry->userinfo['username'];

			// ugly hack -- should be fixed in the future
			$this->registry->userinfo['username'] = unhtmlspecialchars($this->info['user']['username'] ? $this->info['user']['username'] : $this->registry->userinfo['username']);

			$post = array_merge($this->existing, $this->post);
			if (!$post['postid'])
			{
				$post['postid'] = $this->thread['firstpostid'];
			}

			require_once(DIR . '/includes/functions_misc.php');

			foreach ($mod_emails AS $toemail)
			{
				if ($toemail != $email)
				{
					if ($threadinfo['prefixid'])
					{
						// need prefix in correct language
						$threadinfo['prefix_plain'] = fetch_phrase(
							"prefix_$threadinfo[prefixid]_title_plain",
							'global',
							'',
							false,
							true,
							isset($newpost_lang["$toemail"]) ? $newpost_lang["$toemail"] : 0,
							false
						) . ' ';
					}
					else
					{
						$threadinfo['prefix_plain'] = '';
					}

					$attachdetails = "";
					foreach ($attachs as $attach)
					{
						$attachdetails .= " * ID: " . $attach['attachmentid'] . ", Name: " . $attach['filename'] . "\n";
					}

					eval(fetch_email_phrases('moderator_attach', iif(isset($newpost_lang["$toemail"]), $newpost_lang["$toemail"], 0)));
					vbmail($toemail, $subject, $message);
				}
			}

			// back to normal
			$this->registry->userinfo['username'] = htmlspecialchars_uni($browsing_user);
		}
	}[/code]
[COLOR="Blue"]**     "includes/class_dm_threadpost.php"        . **[/COLOR]


   "includes/functions_newpost.php"     :
[CODE]/**
* Fetches the email addresses of moderators to email when there is a new post
* or new thread in a forum.
*
* @param	string|array	A string or array of dbfields to check for email addresses; also doubles as mod perm names
* @param	string|array	A string (comma-delimited) or array of forum IDs to check
* @param	array			(By reference) An array of languageids associated with specific email addresses returned
*
* @return	array			Array of emails to mail
*/
function fetch_moderator_newpost_emails($fields, $forums, &$language_info)
[/CODE]


    :
[CODE]/**
* Fetches the email addresses of moderators to email when there is a new moderated attachments in a forum.
*
* @param	string|array	A string or array of dbfields to check for email addresses; also doubles as mod perm names
* @param	string|array	A string (comma-delimited) or array of forum IDs to check
* @param	array			(By reference) An array of languageids associated with specific email addresses returned
*
* @return	array			Array of emails to mail
*/
function fetch_moderator_modattach_emails($fields, $forums, &$language_info)
{
	global $vbulletin;

	$language_info = array();

	if (!is_array($fields))
	{
		$fields = array($fields);
	}

	// figure out the fields to select and the permissions to check
	$field_names = '';
	$mod_perms = array();
	foreach ($fields AS $field)
	{
		if ($permfield = intval($vbulletin->bf_misc_modattachstaffnotify["$field"]))
		{
			$mod_perms[] = "(moderator.modattachstaffnotify & $permfield)";
		}

		$field_names .= "$field, ' ',";
	}

	if (sizeof($fields) > 1)
	{
		// kill trailing comma
		$field_names = 'CONCAT(' . substr($field_names, 0, -1) . ')';
	}
	else
	{
		$field_names = reset($fields);
	}

	// figure out the forums worth checking
	if (is_array($forums))
	{
		$forums = implode(',', $forums);
	}
	if (!$forums)
	{
		return array();
	}

	$modattachemail = '';

	$moderators = $vbulletin->db->query_read_slave("
		SELECT $field_names AS modattachemail
		FROM " . TABLE_PREFIX . "forum
		WHERE forumid IN (" . $vbulletin->db->escape_string($forums) . ")
	");
	while ($moderator = $vbulletin->db->fetch_array($moderators))
	{
		$modattachemail .= ' ' . trim($moderator['modattachemail']);
	}

	if (empty($modattachemail) OR $vbulletin->options['modattachstaffnotify_emailto'] == 1)
	{
		// get a list of super mod groups
		$smod_groups = array();
		foreach ($vbulletin->usergroupcache AS $ugid => $groupinfo)
		{
			if ($groupinfo['adminpermissions'] & $vbulletin->bf_ugp_adminpermissions['ismoderator'])
			{
				// super mod group
				$smod_groups[] = $ugid;
			}
		}
	}

	if ($mod_perms)
	{
		$mods = $vbulletin->db->query_read_slave("
			SELECT DISTINCT user.email, user.languageid
			FROM " . TABLE_PREFIX . "moderator AS moderator
			LEFT JOIN " . TABLE_PREFIX . "user AS user USING(userid)
			WHERE
				(
					(moderator.forumid IN (" . $vbulletin->db->escape_string($forums) . ") AND moderator.forumid <> -1)
					" . (!empty($smod_groups) ? "OR (user.usergroupid IN (" . implode(',', $smod_groups) . ") AND moderator.forumid = -1)" : '') . "
				)
				AND (" . implode(' OR ', $mod_perms) . ")
		");
		while ($mod = $vbulletin->db->fetch_array($mods))
		{
			$language_info["$mod[email]"] = $mod['languageid'];
			$modattachemail .= ' ' . $mod['email'];
		}
	}

	$emails = preg_split('#\s+#', trim($modattachemail), -1, PREG_SPLIT_NO_EMPTY);
	$emails = array_unique($emails);

	return $emails;
}[/CODE]
[COLOR="Blue"]**     "includes/functions_newpost.php"        . **[/COLOR]


[*]        .
[*] :).
[/LIST]


[U][B] :[/B][/U]
[LIST]
[*]    ->   ->    
[*]    ->   ->    ->    /   " " ->        
[*]    ->   ->    ->   ->         
[/LIST]


[U][B]:[/B][/U]
[LIST]
[*][URL="http://creativecommons.org/licenses/by-nc-sa/3.0/"]Creative Commons - Attribution-Noncommercial-Share Alike 3.0[/URL]
[/LIST]


[U][B] :[/B][/U]
[LIST]
[*]  .
[*]       .
[*]            (   ).
[*] .           .
[/LIST]


[U][B] :[/B][/U]
[LIST]
[*]   .
[/LIST]


[U][B]:[/B][/U]
[LIST]
[*][SIZE="1"][B]v3.8.100[/B] 14/01/2009 02:00 PM GMT:    .[/SIZE]
[/LIST]


[U][B]Screen Shots:[/B][/U]
[LIST]
[*] .
[/LIST]


[U][B] :[/B][/U]
[LIST][B][I]
[*][COLOR="DimGray"] :[/COLOR] 1
[*][COLOR="DimGray"]  :[/COLOR] 6
[*][COLOR="DimGray"] :[/COLOR] 10
[*][COLOR="dimgray"] :[/COLOR] 0
[*][COLOR="dimgray"] :[/COLOR] 0
[*][COLOR="dimgray"]  :[/COLOR] 2
[*][COLOR="dimgray"]  :[/COLOR] 1
[*][COLOR="dimgray"]   :[/COLOR] 0
[*][COLOR="dimgray"]  :[/COLOR] 1
[*][COLOR="dimgray"]  :[/COLOR] 0
[*][COLOR="dimgray"]  :[/COLOR] 1
[*][COLOR="dimgray"]    :[/COLOR] 0
[*][COLOR="dimgray"]  :[/COLOR] 2
[*][COLOR="dimgray"]  :[/COLOR] 0
-----------------
[*][COLOR="dimgray"] :[/COLOR] 
[*][COLOR="dimgray"]  :[/COLOR] 30~50 
[/I][/B]
[/LIST]


[B][U] :[/U][/B]
[LIST]
[*]      ѡ               [URL="https://www.moneybookers.com/app/?rid=2138068"]Moneybookers[/URL]   :
[CODE][COLOR="Red"][B]freelancers@phpkd.net[/B][/COLOR][/CODE]
[/LIST]