لجنة التطوير
عضوية تقوم بجلب المواضيع من مواقع اخرى
الاسم: تنبيه الإداريين بالمرفقات المراقبة - الإصدار: 3.8.100
الوصف: هذا المنتج يسمح بمراسلة الإداريين عند رفع
مرفقات جديدة مراقبة.
متوافق مع: جميع إصدارات المنتدى 3.6/3.7/3.8 بكافة فروعها.
متطلبات المنتج:
أضف فوقها مباشرة الأكواد التالية:
كود:
** قم بحفظ تعديلات الملف "includes/class_dm_threadpost.php" وإعادة رفعه لمكانه مجدداً مع السماح بإستبدال القديم. **
قم بفتح الملف "includes/functions_newpost.php"
وابحث بداخله عن الأكواد التالية:
كود:
أضف فوقها مباشرة الأكواد التالية:
كود:
الوصف: هذا المنتج يسمح بمراسلة الإداريين عند رفع
مرفقات جديدة مراقبة.
متوافق مع: جميع إصدارات المنتدى 3.6/3.7/3.8 بكافة فروعها.
متطلبات المنتج:
- لابد من تنصيب المنتج التالى أولاً:
مراقبة المرفقات إفتراضياً - التحكم بالمرفقات قبل العرض
- يعتمد على متغيرات اللغات بشكل كامل.
- يعمل بشكل تلقائى كلياً.
- مدعم رسمياً.
- دقيق فى برمجياً.
- مبرمج بإحترافية عالية.
- يتبع نفس آليات المنتدى الإفتراضية وستخدم كافة تقنياته
- بشكل كامل.
- يمكن التحكم بخيار "تنبيه الإداريين بالمرفقات المراقبة"
- لكل قسم بالمنتدى على حدى.
- يمكن التحكم بخيار "تلقي بريد إلكترونى عند رفع مرفق جديد مراقب" لكل مشرف/مراقب/إدارى على حدى.
- يمكن الإختيار ما بين خيارين: إما "مراسلة المشرفين"
- فقط أو "مراسلة المشرفين والمراقبين والإداريين".
- قم برفع الملف "bitfield_modattachstaffnotify.xml"
- إلى مكانه "/includes/xml/".
- قم بتنفيذ التعديل التالى:
قم بفتح الملف "includes/class_dm_threadpost.php" - وابحث بداخله عن الأكواد التالية:
function email_moderators($fields)
أضف فوقها مباشرة الأكواد التالية:
كود:
[B]/** * 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); } }[/B]
** قم بحفظ تعديلات الملف "includes/class_dm_threadpost.php" وإعادة رفعه لمكانه مجدداً مع السماح بإستبدال القديم. **
قم بفتح الملف "includes/functions_newpost.php"
وابحث بداخله عن الأكواد التالية:
كود:
[B]/** * 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)[/B]
أضف فوقها مباشرة الأكواد التالية:
كود:
[B]/** * 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; }[/B]
- ** قم بحفظ تعديلات الملف "includes/functions_newpost.php" وإعادة رفعه لمكانه مجدداً مع السماح بإستبدال القديم. **
- قم بإستيراد ملف المنتج من لوحة تحكم إدارة المنتدى.
- انتهى :fruits_cherry:.
- لوحة تحكم إدارة المنتدى -> خيارات المنتدى -> تنبيه الإداريين بالمرفقات المراقبة
- لوحة تحكم إدارة المنتدى -> المنتديات والمراقبين -> عرض كافة المراقبين -> من جانب أى مشرف/مراقب انقر على "تعديل التراخيص" -> تلقي بريد إلكترونى عند رفع مرفق جديد مراقب
- لوحة تحكم إدارة المنتدى -> المنتديات والمراقبين -> التحكم بأقسام المنتدى -> إختيار القسم -> عناوين البريد الإلكترونى للمراسلة عند رفع مرفقات جديدة مراقبة
- اقتراحاتك لتطوير المنتج.
- مساهماتك بتحديثات وترقيات المنتج وتطوير بعض المزايا الجديدة.
- ترجماتك للمنتج للغات أخرى غير متوفرة لتعم الفائدة بقطاع أكبر من المستخدمين (حقوق الترجمة تحفظ لصاحبها).
- بنشر المنتج. أجل، لك كامل الحرية فى نشر المنتج كما هو أينما تشاء.
- لا شئ حتى الآن.
- v3.8.100 14/01/2009 02:00 PM GMT: أول إصدار عام للنشر.
- متوفرة بالأسفل.
- الملفات الجديدة: 1
- الملحقات البرمجية الجديدة: 6
- العبارات الجديدة: 10
- القوالب الجديدة: 0
- تعديلات القوالب: 0
- إعدادات المنتدى الجديدة: 2
- إعدادات المنتدى الجديدة: 1
- الصلاحيات الجديدة لمجموعات الأعضاء: 0
- الصلاحيات الجديدة للمشرفين: 1
- الصلاحيات الجديدة للإداريين: 0
- الإعدادات الجديدة للأقسام: 1
- الجداول الجديدة لقاعدة البيانات: 0
- تعديلات قاعدة البيانات: 2
- المهام المجدولة الجديدة: 0
----------------- - مستوى التنصيب: سهل
- متوسط وقت التنصيب: 30~50 ثانية
الصور المرفقة
| modattachstaffnotify_admincp_settings.jpg (15.7 كيلوبايت) |
modattachstaffnotify_admincp_foptions.jpg (6.8 كيلوبايت) |
product-modattachstaffnotify-3.6.100.zip (75.9 كيلوبايت) | |
product-modattachstaffnotify-3.7.100.zip (75.9 كيلوبايت) | |
product-modattachstaffnotify-3.8.100.zip (75.9 كيلوبايت) |