المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : المتواجدون الآن .. بمجلة المنتدى forum .. كـ قائمة .. من شروحات الـ CMS لـ S007



said
10-30-2013, بتوقيت غرينيتش 11:29 PM
http://www.dzbatna.com/images/icons/iconrote.gif ط§ظ„ظ…طھظˆط§ط¬ط¯ظˆظ† ط§ظ„ط¢ظ† .. ط¨ظ…ط¬ظ„ط© ط§ظ„ظ…ظ†طھط¯ظ‰ .. ظƒظ€ ظ‚ط§ط¦ظ…ط© .. ظ…ظ† ط´ط±ظˆط*ط§طھ ط§ظ„ظ€ CMS ظ„ظ€ S007 (http://www.dzbatna.com/t1431037/)



السلام عليكم ورحمة الله وبركاتة



في درس مفصلنا هذا سوف نستعرض أشياء عده ومنها ، قواعد وأسس التعامل مع القطع - القائمة - في المجلة ..


فالنسخة بأكملها تتميز بـ ديناميكية مطلقة ، تتيح للمدير التحكم الواسع في أشياء كثيرة ، فيمكنه تغير طرق عرض القوائم تبعاً للأقسام و الصفحة الرئيسية ، وهذة من أجمل الميزات المتواجدة في المجلة ، حيث يمكنك إضافة ماتشاء من أكواد وإعدادات متوفرة مسبقاً كـ إضافة تغذية rss / أكواد HTML / برمجيات PHP ...إلخ


ومن هذا المطلق نتفرع إلى إضافة المتواجدون الآن في صفحة المجلة الـ CMS ..


وفي مايلي مثال توضيحي :-
http://www.dzbatna.com/attachments/441583d1262535045-طھظˆط¶ظٹط*-ظ„ظ„ظ…طھظˆط§ط¬ط¯ظˆظ†-ط§ظ„ط¢ظ†-ظپظٹ-ط§ظ„ظ…ط¬ظ„ط©.jpg (http://www.dzbatna.com/attachments/441583d1262535045-توضيح-للمتواجدون-الآن-في-المجلة.jpg)


التركيب install :-
أولا يجب علينا إنشاء قالب template جديد تحت مسمى - لايهم المسمى فيمكن تغيرة حسب إيرادتك - ولنفترض ( vbcms_widget_execphp_onlineusers ) ، ثم نـ عمل برنامج مساعد أو بلوقن plugin ، ومن بعدها يتم عمل قطع و تهيئتة وبذلك تتم العملية ..





خطوات التركيب install :-


1- إنشاء قالب template جديد بمسمى ( vbcms_widget_execphp_onlineusers ) :-
محتوياً الكود code التالي
رمز PHP:

<code style="white-space:nowrap"> <code> <vb:if condition="$show&#91;'loggedinusers'&#93;">
<div class="cms_widget">
<div class="block">
<div class="cms_widget_header">
<h3><img src="{vb:stylevar imgdir_misc}/users_online.png" alt="{vb:rawphrase currently_active_users}" />{vb:rawphrase currently_active_users}</h3>
</div>
<div class="cms_widget_content">
<div>
<p>{vb:rawphrase there_are_x_online, {vb:raw totalonline}} <span class="shade">{vb:rawphrase x_members_and_y_guests, {vb:raw numberregistered}, {vb:raw numberguest}}</span></p>
<ol class="commalist" id="wgo_onlineusers_list">
{vb:raw activeusers}
</ol>
</div>
</div>
</div>
</div>
</vb:if>
</code> </code>


2- عمل برنامج مساعد :-
من المنتج pluginات والإضافات نختار التحكم بالإضافية البرمجية و بالفأرة نضغط على [ إضافة برنامج مساعد ]


ونضع الإعدادات التالية :-
موقع الخطاف : cache_templates
العنوان : المتواجدون الآن في الـ CMS
وفي كود code الـ PHP ، نضع الآتي :-
رمز PHP:

<code style="white-space:nowrap"> <code> if (THIS_SCRIPT == 'vbcms')
{
$cache&#91;&#93; = 'forumhome_loggedinuser';
}
</code> </code>


الإضافات نشطة : نعم


3- إنشاء قطع جديد :-
مجلة المنتدى forum > القطع (Widgets) > إنشاء قطعة جديدة
نوع القطعة : PHP Direct Execution
العنوان : المتواجدون الآن


4- تهيئة القطع :-
بعد إنشاء القطع في جانبة نختار أمر تهيئة أو Configure
غير أسم القالب template إلى : vbcms_widget_execphp_onlineusers
ونضع كود code الـ PHP التالي :-
رمز PHP:

<code style="white-space:nowrap"> <code> require_once(DIR . '/includes/functions_bigthree.php');
$activeusers = '';
if ((في بي vB::$vbulletin->options&#91;'displayloggedin'&#93; == 1 OR في بي vB::$vbulletin->options&#91;'displayloggedin'&#93; == 2 OR (في بي vB::$vbulletin->options&#91;'displayloggedin'&#93; > 2 AND في بي vB::$vbulletin->userinfo&#91;'userid'&#93;)) AND !$show&#91;'search_engine'&#93;)
{
$datecut = TIMENOW - في بي vB::$vbulletin->options&#91;'cookietimeout'&#93;;
$numbervisible = 0;
$numberregistered = 0;
$numberguest = 0;
$forumusers = في بي vB::$db->query_read_slave("
SELECT
user.username, (user.options & " . في بي vB::$vbulletin->bf_misc_useroptions&#91;'invisible'&#93; . ") AS invisible, user.usergroupid, user.lastvisit,
session.userid, session.inforum, session.lastactivity, session.badlocation,
IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
$hook_query_fields
FROM " . TABLE_PREFIX . "session AS session
LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = session.userid)
$hook_query_joins
WHERE session.lastactivity > $datecut
$hook_query_where
" . iif(في بي vB::$vbulletin->options&#91;'displayloggedin'&#93; == 1 OR في بي vB::$vbulletin->options&#91;'displayloggedin'&#93; == 3, "ORDER BY username ASC") . "
");
if (في بي vB::$vbulletin->userinfo&#91;'userid'&#93;)
{
// fakes the user being online for an initial page view of index.php
في بي vB::$vbulletin->userinfo&#91;'joingroupid'&#93; = iif(في بي vB::$vbulletin->userinfo&#91;'displaygroupid'&#93;, في بي vB::$vbulletin->userinfo&#91;'displaygroupid'&#93;, في بي vB::$vbulletin->userinfo&#91;'usergroupid'&#93;);
$userinfos = array
(
في بي vB::$vbulletin->userinfo&#91;'userid'&#93; => array
(
'userid' =>& في بي vB::$vbulletin->userinfo&#91;'userid'&#93;,
'username' =>& في بي vB::$vbulletin->userinfo&#91;'username'&#93;,
'invisible' =>& في بي vB::$vbulletin->userinfo&#91;'invisible'&#93;,
'inforum' => 0,
'lastactivity' => TIMENOW,
'lastvisit' =>& في بي vB::$vbulletin->userinfo&#91;'lastvisit'&#93;,
'usergroupid' =>& في بي vB::$vbulletin->userinfo&#91;'usergroupid'&#93;,
'displaygroupid' =>& في بي vB::$vbulletin->userinfo&#91;'displaygroupid'&#93;,
'infractiongroupid' =>& في بي vB::$vbulletin->userinfo&#91;'infractiongroupid'&#93;,
)
);
}
else
{
$userinfos = array();
}
$inforum = array();
while ($loggedin = في بي vB::$db->fetch_array($forumusers))
{
$userid = $loggedin&#91;'userid'&#93;;
if (!$userid)
{ // Guest
$numberguest++;
if (!isset($inforum&#91;"$loggedin&#91;inforum&#93;"&#93;))
{
$inforum&#91;"$loggedin&#91;inforum&#93;"&#93; = 0;
}
if (!$loggedin&#91;'badlocation'&#93;)
{
$inforum&#91;"$loggedin&#91;inforum&#93;"&#93;++;
}
}
else if (empty($userinfos&#91;"$userid"&#93;) OR ($userinfos&#91;"$userid"&#93;&#91;'lastactivity'&#93; < $loggedin&#91;'lastactivity'&#93;))
{
$userinfos&#91;"$userid"&#93; = $loggedin;
}
}
if (!في بي vB::$vbulletin->userinfo&#91;'userid'&#93; AND $numberguest == 0)
{
$numberguest++;
}
foreach ($userinfos AS $userid => $loggedin)
{
$numberregistered++;
if ($userid != في بي vB::$vbulletin->userinfo&#91;'userid'&#93; AND !$loggedin&#91;'badlocation'&#93;)
{
if (!isset($inforum&#91;"$loggedin&#91;inforum&#93;"&#93;))
{
$inforum&#91;"$loggedin&#91;inforum&#93;"&#93; = 0;
}
$inforum&#91;"$loggedin&#91;inforum&#93;"&#93;++;
}
fetch_musername($loggedin);
if (fetch_online_status($loggedin))
{
$numbervisible++;
$show&#91;'comma_leader'&#93; = ($activeusers != '');
$templater = في بي vB_Template::create('forumhome_loggedinuser');
$templater->register('loggedin', $loggedin);
$activeusers .= $templater->render();
في بي vB_Template::preRegister('vbcms_widget_execphp_act iveusers', array('activeusers' => $activeusers));
}
}
// memory saving
unset($userinfos, $loggedin);
في بي vB::$db->free_result($forumusers);
$totalonline = $numberregistered + $numberguest;
$numberinvisible = $numberregistered - $numbervisible;
$show&#91;'loggedinusers'&#93; = true;

$statsarray = array('onlinestats' => $onlinestats,
'totalonline' => $totalonline,
'numberregistered' => $numberregistered,
'numberguest' => $numberguest,
'show' => $show,
);

في بي vB_Template::preRegister('vbcms_widget_execphp_act iveusers', $statsarray);
}
</code> </code>


ونحفظ العمل ..


ولظهورة في رئيسية المجلة ، من خلال إدارة النموذج نرى صفحة البداية او بمسماها الإفتراضي ( Home ) نضغط تعديل .. ونقوم بإضافة القطع
ونختار مكان تواجدة بالصفحة ..
ونحفظ العمل ..


ولمن يشتكي من عدم تعريب المجلة والمدونة blog ، فالتعريب على الرابط التالي:-
ملف اللغة للمجلة و المدونة blog والمنتدى forum للنسخة الذهبية فيبويلتن في بي vBulletin 4.0 Suite Gold (http://www.dzbatna.com/t1429726/)


وبذلك نختتم درس مفصلنا اليوم ،
والله ولي التوفيق


إحترامي وتقديري
بـومـ ح ـمد






التعديل الأخير كان بواسطة s007; 03 - 01 - 2014 الساعة 19:39

ألعاب الأندرويد مجانا و حصريا (http://www.apotox.info/forum)



https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى