+ الرد على الموضوع
صفحة 1 من 3 1 2 3 الأخيرةالأخيرة
النتائج 1 إلى 5 من 12
  1. #1
    صهيب is on a distinguished road
    تاريخ التسجيل
    16 / 03 / 2005
    الدولة
    مملـــــــ PHP ــــــــكة
    المشاركات
    19
    معدل تقييم المستوى
    253

    افتراضي تنبيه الإداريين بالمرفقات المراقبة

    ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
    ! بدعم ورعاية: مملكة البى إتش بى للخدمات التقنية (www.phpkd.net) !
    ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~



    Note: هذا المنتج تم طلبه من قبل kevinh كعمل برمجى خاص مدفوع الأجر. تم تنفيذ المنتج وإرساله للعميل قبل عدة أشهر. ونظراً لأن كافة أعمالى البرمجية أقوم بترخيصها وفقاً لأحد التراخيص الحرة وتحديداً Creative Commons - Attribution-Noncommercial-Share Alike 3.0, فقد تم نشر المنتج مجاناً للجميع لتعم الفائدة.


    الاسم: تنبيه الإداريين بالمرفقات المراقبة - الإصدار: 3.8.100

    الوصف: هذا المنتج يسمح بمراسلة الإداريين عند رفع مرفقات جديدة مراقبة.


    متوافق مع: جميع إصدارات المنتدى 3.6/3.7/3.8 بكافة فروعها.


    متطلبات المنتج:

    المزايا والخواص:
    • يعتمد على متغيرات اللغات بشكل كامل.
    • يعمل بشكل تلقائى كلياً.
    • مدعم رسمياً.
    • دقيق فى برمجياً.
    • مبرمج بإحترافية عالية.
    • يتبع نفس آليات المنتدى الإفتراضية وستخدم كافة تقنياته بشكل كامل.
    • يمكن التحكم بخيار "تنبيه الإداريين بالمرفقات المراقبة" لكل قسم بالمنتدى على حدى.
    • يمكن التحكم بخيار "تلقي بريد إلكترونى عند رفع مرفق جديد مراقب" لكل مشرف/مراقب/إدارى على حدى.
    • يمكن الإختيار ما بين خيارين: إما "مراسلة المشرفين" فقط أو "مراسلة المشرفين والمراقبين والإداريين".


    خطوات التنصيب:
    1. قم برفع الملف "bitfield_modattachstaffn otify.xml" إلى مكانه "/includes/xml/".
    2. قم بتنفيذ التعديل التالى:
      قم بفتح الملف "includes/class_dm_threadpost.php" وابحث بداخله عن الأكواد التالية:
      كود:
      	function email_moderators($fields)
      أضف فوقها مباشرة الأكواد التالية:
      كود:
      	/**
      	* 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/class_dm_threadpost.php" وإعادة رفعه لمكانه مجدداً مع السماح بإستبدال القديم. **


      قم بفتح الملف "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" وإعادة رفعه لمكانه مجدداً مع السماح بإستبدال القديم. **

    3. قم بإستيراد ملف المنتج من لوحة تحكم إدارة المنتدى.
    4. انتهى :).


    خيارات التحكم:
    • لوحة تحكم إدارة المنتدى -> خيارات المنتدى -> تنبيه الإداريين بالمرفقات المراقبة
    • لوحة تحكم إدارة المنتدى -> المنتديات والمراقبين -> عرض كافة المراقبين -> من جانب أى مشرف/مراقب انقر على "تعديل التراخيص" -> تلقي بريد إلكترونى عند رفع مرفق جديد مراقب
    • لوحة تحكم إدارة المنتدى -> المنتديات والمراقبين -> التحكم بأقسام المنتدى -> إختيار القسم -> عناوين البريد الإلكترونى للمراسلة عند رفع مرفقات جديدة مراقبة


    الترخيص:

    ساعد بـ:
    • اقتراحاتك لتطوير المنتج.
    • مساهماتك بتحديثات وترقيات المنتج وتطوير بعض المزايا الجديدة.
    • ترجماتك للمنتج للغات أخرى غير متوفرة لتعم الفائدة بقطاع أكبر من المستخدمين (حقوق الترجمة تحفظ لصاحبها).
    • بنشر المنتج. أجل، لك كامل الحرية فى نشر المنتج كما هو أينما تشاء.


    إشكاليات مكتشفة:
    • لا شئ حتى الآن.


    السجل:
    • 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 ثانية


    دعم المنتج:
    • جزيل الشكر مقدماً لداعمى المنتج والمبرمجين الأحرار، يمكن دعم المنتج بإرسال أى مبلغ ترغب بدعم المنتج والمبرمجين الأحرا به من خلال Moneybookers على البريد التالى:
      كود:
       ( تم حذف البريد لأن عرضه مخالف لشروط المنتدى ) 
    المصغرات المرفقة المصغرات المرفقة اضغط على الصورة لعرض أكبر

الاســـم:        modattachstaffnotify_admincp_foptions.jpg
المشاهدات:        204
الحجـــم:        18.6 كيلوبايت
الرقم:        11951   اضغط على الصورة لعرض أكبر

الاســـم:        modattachstaffnotify_admincp_moptions.jpg
المشاهدات:        196
الحجـــم:        22.0 كيلوبايت
الرقم:        11952   اضغط على الصورة لعرض أكبر

الاســـم:        modattachstaffnotify_admincp_settings.jpg
المشاهدات:        196
الحجـــم:        40.9 كيلوبايت
الرقم:        11953  

    الملفات المرفقة



    شكراً الوافى // شكراً الم الإمارات // شكراً ضيف المهاجر // شكراً تركى الودعانى // شكراً سوالف سوفت

     
  2. #2
    ناوي اهندس is on a distinguished road
    تاريخ التسجيل
    21 / 12 / 2008
    الدولة
    مجهولة
    المشاركات
    108
    معدل تقييم المستوى
    297

    افتراضي رد: تنبيه الإداريين بالمرفقات المراقبة

    شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

     
  3. #3
    المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute المودة has a reputation beyond repute الصورة الرمزية المودة
    تاريخ التسجيل
    17 / 08 / 2004
    العمر
    32
    المشاركات
    20,806
    معدل تقييم المستوى
    26158

    افتراضي رد: تنبيه الإداريين بالمرفقات المراقبة

    شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

     
  4. #4
    انجل مان is on a distinguished road
    تاريخ التسجيل
    16 / 11 / 2007
    الدولة
    مصر
    المشاركات
    40
    معدل تقييم المستوى
    242

    افتراضي رد: تنبيه الإداريين بالمرفقات المراقبة

    شكرا لك ياخى العزيز موضوع هايل جدا جارى التجربة
    منتدى نادى نوتة لتعلم جميع الالات الموسيقية
    www.nadynota.com/vb

     
  5. #5
    مدغدغ is on a distinguished road
    تاريخ التسجيل
    27 / 07 / 2008
    الدولة
    منتديات انتهينا يا حبيبي
    المشاركات
    61
    معدل تقييم المستوى
    254

    افتراضي رد: تنبيه الإداريين بالمرفقات المراقبة

    thanks a lot (f)

     

 
+ الرد على الموضوع
صفحة 1 من 3 1 2 3 الأخيرةالأخيرة

معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

     

مواقع النشر (المفضلة)

مواقع النشر (المفضلة)

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك