[الدرس السابع] درس عملى - هاك آخر x موضوع (تشغيل/تعطيل، المجموعات، الترتيب، ...)

xml_2009

:: Coder/Designer :: , مُلقى دورة برمجة الهاكات
Coder/Designer
25 يناير 2013
22
5
0
32
السلام عليكم و رحمة الله و تعالى و بركاته

تحيه طيبه لزوار وآعضاء الدعم العربي

في الدروس السابقة عرفنا عدة أشياء عن برمجة الهاكات، كيفية انشاء مجموعة اعدادات، استعمال الاعدادات، انشاء مجموعة اعدادات، متغيرات نسخة الفيبي، اسطر برمجية ...

اما في هذا الدرس سنلخص الدروس السابقة في برمجة هاك بسيط، هاك يضيف شريط تحت النافبار به آخر x موضوع، ترتيب هذه المواضيع سيكون اما عن طريق آخر مشاركة بالموضوع او تاريخ إضافة الموضوع.

المرحلة 1: مجموعة الاعدادات و الخيارات:
اولا سنحتاج الى إضافة هاك جديد :

من المنتجات والإضافات Plugins ثم التحكم بالمنتجات product ثم انزل اسفل الصفحة ستجد [إضافة/ إستيراد منتج product‎]‏

attachment.php


سنحتاج مجموعة اعدادات، اتبع الخطوات التالية لانشاء مجموعة الاعدادات :
يمكنك الإستعانة بهذا الدرس من الدورة سيشرح كل شيء حول الاعدادات : https://support-ar.net/forums/showthread.php?p=277711

74edfb5959.png


إضغط على : إضافة مجموعة إعدادات جديدة.

attachment.php


ضع في اسم المتغير اي شيء تريده (مثال: webldanca_lastthreas_op )
ضع في العنوان خيارات هاك آخر x موضوع
إختر المنتج الذي انشئت سابقا و هو هاك آخر x موضوع المطور - برمجة weblanca.com

الاعدادات التي سنحتاج :
1. 'last_x_threads_onoff' : اعداد تشغيل او تعطيل الهاك، نوع : yesno.

attachment.php


=======
2. 'last_x_threads_order' : اعداد ترتيب عرض المواضيع، نوع : select، الخيارات: تاريخ آخر مشاركة + تاريخ إضافة الموضوع.

attachment.php


select:piped
dateline|تاريخ إضافة الموضوع
lastpost|تاريخ آخر مشاركة بالموضوع
=======

3. 'last_x_threads_groups' : اعداد ارقام المجموعات التي يمكنها مشاهدة الشريط، النوع : textarea

attachment.php


=======
4. 'last_x_threads_x' : اعداد عدد المواضيع التي تظهر بالشريط، النوع : فارغ ( لا تكتب شيء )

attachment.php


=======
النتيجة :

attachment.php


المرحلة 2: إضافة قالب جديد تابع للهاك:
من الإستايلات والقوالب ثم التحكم بالإستايلات ثم نختار خيارات جميع الاستايلات "للستايل الأساسي" ثم "إضافة قالب جديد"

attachment.php


ملاحظة : ضع القالب تابع للستايل الأساسي + تاب ع للمنتج الذي انشئنا حتى لا نجد مشاكل اثناء تصدير الهاك ( تصدير على شكل xml حتى يستعمله الكل )
إسم القالب : weblanca_last_threads
كود:
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center" style="margin: 20px 0">
    <tr>
        <td class="tcat">آخر $vboptions[last_x_threads_x] موضوع</td>
    </tr>
    <tr>
        <td class="alt1"><marquee direction="right" onmouseover="this.stop();" onmouseout="this.start();">__weblanca_threads__</marquee></td>
    </tr>
</table>

المرحلة 3: إضافة الهوكات.
اولا قبل إضافة اي هوك لازم نعرف ما الهوكات التي نحتاجها، اذا فكرنا قليلا سنجد انا بحاجة هلوك يقوم بالاستعلام عن آخر المواضيع بكل صفحة + هوك يقوم بوضع القالب الذي انشئنا بالكاش، اذن سنحتاج هوكين، واحد يكون بglobal_start و واحد ب cache_tam
من لوحة التحكم ثم المنتجات والإضافات Plugins ثم التحكم بالإضافات البرمجية Plugin ثم ننزل اسفل الصفحة و نضغط "[إضافة برنامج مساعد جديد‎]‏"

attachment.php


كود:
$globaltemplates = array_merge($globaltemplates, array('weblanca_last_threads'));(
ثم نضيف هوك آخر بglobal_start

attachment.php


كود:
// التحقق من ان الهاك مشغل + التحقق من ان المستخدم ينتمي للمجموعة التي يسمح لها بمشاهدة الشريط
if ($vbulletin->options["last_x_threads_onoff"] == 1 && in_array($vbulletin->userinfo["usergroupid"], explode(",", $vbulletin->options['last_x_threads_groups'])) == 1)
{
    // جلب الترتيب
    if ($vbulletin->options["last_x_threads_order"] == "dateline")
    {
        $sql_order_by = "dateline";
    }
    elseif ($vbulletin->options["last_x_threads_order"] == "lastpost")
    {
        $sql_order_by = "lastpost";
    }
    else
    {
        $sql_order_by = "dateline";
    }
    
    // استعلام من قاعدة البيانات
    $wbThreads = $db->query_read("
        SELECT
            title, threadid
        FROM " . TABLE_PREFIX . "thread
        WHERE
            visible = 1
        ORDER BY $sql_order_by DESC LIMIT " . intval($vbulletin->options["last_x_threads_x"]) . "
    ");
    
    // وضع البيانات في متغير
    $wbThreadsHtml = '';
    while ($wbThread = mysql_fetch_array($wbThreads))
    {
        $wbThreadsHtml .= "\n";
        $wbThreadsHtml .= '<a href="showthread.php?t=' . $wbThread["threadid"] . '">' . $wbThread["title"] . '</a>   ';
    }
    
    // تغيير كلمة __weblanca_threads__ الى المتغير الذي به البيانات
    $vbulletin->templatecache['weblanca_last_threads'] = str_replace("__weblanca_threads__", addslashes($wbThreadsHtml), $vbulletin->templatecache['weblanca_last_threads']);
    $vbulletin->templatecache['navbar'] .= $vbulletin->templatecache['weblanca_last_threads'];
}

احفظ الهوك ثم جربه و مبروك عليك اول هاك.

بهذا الدرس ننتهي من الدورة و اتمنى ان يكون الكل استفاذ منها.
 

المرفقات

  • 1.png
    1.png
    44.5 KB · المشاهدات: 868
  • 2.png
    2.png
    36 KB · المشاهدات: 735
  • 3.png
    3.png
    58.8 KB · المشاهدات: 740
  • 4.png
    4.png
    63.5 KB · المشاهدات: 758
  • 5.png
    5.png
    61.8 KB · المشاهدات: 756
  • 6.png
    6.png
    60.7 KB · المشاهدات: 785
  • 7.png
    7.png
    43.7 KB · المشاهدات: 852
  • 9.png
    9.png
    55.1 KB · المشاهدات: 711
  • 10.png
    10.png
    65 KB · المشاهدات: 744
  • 8.png
    8.png
    58.6 KB · المشاهدات: 803
رد: برمجة هاك بسيط يلخص الدورة - هاك آخر x موضوع (تشغيل/تعطيل، المجموعات، الترتيب، ..

تسلم ياغالى بارك الله فيك