/**
* 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);
}
}
قم بفتح الملف "includes/functions_newpost.php" وابحث بداخله عن الأكواد التالية:
كود:
/**
* 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)
أضف فوقها مباشرة الأكواد التالية:
كود:
/**
* 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;
}
** قم بحفظ تعديلات الملف "includes/functions_newpost.php" وإعادة رفعه لمكانه مجدداً مع السماح بإستبدال القديم. **
قم بإستيراد ملف المنتج من لوحة تحكم إدارة المنتدى.
انتهى :fruits_cherry:.
خيارات التحكم:
لوحة تحكم إدارة المنتدى -> خيارات المنتدى -> تنبيه الإداريين بالمرفقات المراقبة
لوحة تحكم إدارة المنتدى -> المنتديات والمراقبين -> عرض كافة المراقبين -> من جانب أى مشرف/مراقب انقر على "تعديل التراخيص" -> تلقي بريد إلكترونى عند رفع مرفق جديد مراقب
لوحة تحكم إدارة المنتدى -> المنتديات والمراقبين -> التحكم بأقسام المنتدى -> إختيار القسم -> عناوين البريد الإلكترونى للمراسلة عند رفع مرفقات جديدة مراقبة
ساعد بـ:
اقتراحاتك لتطوير المنتج.
مساهماتك بتحديثات وترقيات المنتج وتطوير بعض المزايا الجديدة.
ترجماتك للمنتج للغات أخرى غير متوفرة لتعم الفائدة بقطاع أكبر من المستخدمين (حقوق الترجمة تحفظ لصاحبها).
بنشر المنتج. أجل، لك كامل الحرية فى نشر المنتج كما هو أينما تشاء.
إشكاليات مكتشفة:
لا شئ حتى الآن.
السجل:
v3.8.100 14/01/2009 02:00 PM GMT: أول إصدار عام للنشر.
Screen Shots:
متوفرة بالأسفل.
ملاحظات تقنية:
الملفات الجديدة: 1
الملحقات البرمجية الجديدة: 6
العبارات الجديدة: 10
القوالب الجديدة: 0
تعديلات القوالب: 0
إعدادات المنتدى الجديدة: 2
إعدادات المنتدى الجديدة: 1
الصلاحيات الجديدة لمجموعات الأعضاء: 0
الصلاحيات الجديدة للمشرفين: 1
الصلاحيات الجديدة للإداريين: 0
الإعدادات الجديدة للأقسام: 1
الجداول الجديدة لقاعدة البيانات: 0
تعديلات قاعدة البيانات: 2
المهام المجدولة الجديدة: 0
-----------------
مستوى التنصيب: سهل
متوسط وقت التنصيب: 30~50 ثانية