صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 20

الموضوع: تعلم بناء هاك خاص بك جديد في الـvBulletin

  1. تعلم بناء هاك خاص بك جديد في الـvBulletin



    السلام عليكم ورحمة الله
    بعد ان تعلمنا كيفية بناء صفحة جديدة متطورة في الموضوع السابق ،، اريد اليوم ان نتحدث عن كيفية برمجة هاك خاص بك وتطويره ، وسندرس الاساسيات فقط بدون الخوض في التفاصيل المملة ، سوف يكن الموضوع بصورة عامة وسوف يكن بمثابة نقطة انطلاقة لك في عالم برمجة وتطوير الـvBulletin 3.5

    ملاحظة : بالطبع يجب ان تكن ملما بلغة البرمجة PHP ولغة قواعد البيانات MySQL
    بالطبع هنالك تغير كبير جدا في اسماء الدوال والمصفوفات و المتغيرات مابين النسخة 3.0.x والنسخة 3.5 ،
    بعض التغيرات
    كود:
    3.0.x => 3.5
    
    $DB_site-> => $db->
    $bbuserinfo[] => $vbulletin->userinfo[]
    $vboptions[] => $vbulletin->options[]
    $_GET/$_REQUEST/$_POST/$_COOKIE => $vbulletin->GPC[]
    globalize() => $vbulletin->input->clean_array_gpc()
    $DB_site->query(); => $db->query_read();
    اعذروني للمقدمة الطويلة ،
    لكي تقوم ببرمجة اي هاك ينبغي ان تتصل بقاعدة البيانات الخاصة بالمنتدى لكي يتثنى لك تنفيذ جميع الاوامر الخاصة بالاستدعائات والمقارانات لان منتديات الvBulletin معتمدة تماما على قواعد البيانات ، لدي الــvBulletin دوالها وكلاساتها الخاصة بالاتصال بقواعدة البيانات واجراء الاستعلامات عليها ، وطبعا هذه الدوال والكلاسات سوف تساعدنا كثيرا وتختصر لنا كثيرا من الوقت و الجهد

    الاتصال بقاعدة البيانات وتنفيذ الاستعلامات
    اولا يجب ان تضمن هذا الملف
    كود PHP:
    require("global.php"); 
    قبل كل شي ،
    تم كتابة كلاس خاصة للاتصال بقاعدة البيانات
    كود:
    $db
    طبعا تم التعريف في ملف القلوبال للكائن
    كود:
     $vbulletin->db
    .
    هنالك دوال لتنفيذ الاستعلامات على قواعد البيانات:-
    الدالة الاولى
    كود PHP:
    $db->query_read 
    هذه الدالة تقم بتنفيذ اوامر محددة SELECT و SHOW فقط
    مثال :
    اذا اردنا ان نختار اسم العضو اللي في منتدى سوالف الذي رقمه 12894 ( طبعا انا )
    يجب ان نكتب :
    كود PHP:
    $db->query_read("SELECT * FROM user WHERE userid=12894"); 
    الدالة الثانية
    كود PHP:
    $db->query_write 
    هذه الدالة تقم بتنفيذ اوامر الــUPDATE و ALTER وكل اوامر تعديل البيانات

    مثال :-
    كود PHP:
    $db->query_write("UPDATE user SET email = 'hamada4ever@sudabest.com' WHERE userid= 12894"); 
    هنا تم تحديث الايميل الخاص بالعضو رقم "12894" .
    يمكنك ان تجلب كل شي من قاعدة البيانات عبر الكلاس
    كود:
     $vbulletin
    ، مثلا
    كود PHP:
    $vbulletin->itemname 
    ،
    انتهينا الان ،
    والان تعرفنا كيف نتصل بقاعدة البيانات وننفذ الاوامر عليها ، سوف اضع لكم مثال كامل كتطبيق عملي لهذا الدرس :-
    كود PHP:
    <?php

    // ######################## اعداد البئية العامة ###########################
    error_reporting(E_ALL & ~E_NOTICE);
    // ########################## الثوابت  ############################
    require_once('./global.php');
    $navbits = array();
    // عنوان الصفحة في الشريط
    $navbits[$parent] = 'صفحتي المتطورة';
    $navbits construct_navbits($navbits);
    // من هنا انطلق
    // لعرض الصفحة ضمن الاستايل بدون استخدام التمبليتات
    // ويمكنك الاستغناء عن كل هذا
    echo  $stylevar[htmldoctype];
    echo 
    $headinclude;
    echo 
    $header;
    echo 
    $navbar ;
    // هنا عملنا الاساسي 
    $results=$db->query("SELECT * FROM user WHERE userid=12894 "); 
    // اختيار العضو رقم 12894 في قاعدة البيانات
            
    while ($result=$db->fetch_array($results)) { 
    // بداية اللوب  
    echo "اسم المستخدم هو :<b> $result[username]</b><br>"
    echo
    " البريد الالكتروني الخاص به : <b> $result[email]</b>";
     
          } 
    // نهاية اللوب 
    // الفوتر
    echo $footer;
    //############################################################################
    //                   .:: s u d a b e s t . c o m  ::.
    //############################################################################
    ?>
    هذا الكود يقم بعرض اسم المستخدم الذي رقمه 12894 ويعرض ايضا بريده الالكتروني ، قم بتغير هذا الرقم كما تريد وقم بتنفيذه ،
    واتمنى احد يطبق على هذا الموضوع ويعرض لنا المنتدى الذي رقمه 2 مثلا ؟

    ولكم جزيل الشكر وتمنى اكن قد افدتكم ولو بالقليل
    والسلام عليكم





    التعديل الأخير تم بواسطة HaMaDa4eVeR ; 25-01-2006 الساعة 08:18 PM سبب آخر: حذف متغير متكرر
    __________________
    ################################ PHP.SD ########
    We're not first,But We're the BEST

    ##


  2. #2
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2005
    المشاركات
    2,739


    رااااااائع العزي ولكن لى سؤال

    ولكن بعد التطبيق حتى لا اكون مخطا

    بس فعلا راائع اكثر الله من امثالك فى فعل الخير





    __________________
    شبكة حلم العرب لتطوير المواقع
    PHP-NUKE: Web Portal System
    www.aradream.com/servics
    www.aradream.com/portal
    www.aradream.com/forums
    العنوان : ج.م.ع الشرقيه فاقوس شارع السيد حسين - كاسبر نت

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2005
    المشاركات
    2,739


    استفسار ..

    هنا استدعينى قالب eval('$navbar = "' . fetch_template('navbar ') . '";');// استدعاء قالب النافبار


    وهنا ايضا استدعينى قالب echo $navbar ;

    ايش الفرق





    __________________
    شبكة حلم العرب لتطوير المواقع
    PHP-NUKE: Web Portal System
    www.aradream.com/servics
    www.aradream.com/portal
    www.aradream.com/forums
    العنوان : ج.م.ع الشرقيه فاقوس شارع السيد حسين - كاسبر نت

  4. #4
    عضو فعال جدا
    تاريخ التسجيل
    Oct 2003
    المشاركات
    2,775


    نفس الكلام إلي قاله و ايضا
    ليش ماعملنا نفس ما عملنا مع Navbar في ذول
    echo $stylevar[htmldoctype];
    echo $headinclude;
    echo $header

    هل فيه اختلاف ؟






  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Oct 2003
    المشاركات
    494


    مميز
    تسلم اخوي على الدرس الرائع



    تحياتي
    الشحي






  6. #6
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000


    رااااااائع جداً ,,,
    انتظرت الدرس منذ فترة طويلة ..
    ولي عودة للمناقشة ..





    __________________
    استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور



  7. كود PHP:
    eval('$navbar = "' fetch_template('navbar') . '";'); 
    و
    كود PHP:
     echo $header 
    لا فرق كبير بينهم ، والطرقيه الاولى تقم باستدعاء القالب بالطريقة الخاصة في الـvBulletin والطريقة الثانيه عبارة عن امر طباعة المتغير $navbar بطريقة مباشرة ،، ولا فرق بينهم ويمكنك استخدام اي من الطريقتين واحب الطريقة الاولى ، وكلك بقية القوالب
    كود PHP:
    echo $stylevar[htmldoctype]; 
    echo 
    $headinclude
    echo 
    $header 
    وشكرا لهذه الملاحظة ، ولكم الشكر وفي انتظار تطبيقاتكم ونتائجها.





    __________________
    ################################ PHP.SD ########
    We're not first,But We're the BEST

    ##

  8. #8
    عضو جديد
    تاريخ التسجيل
    Nov 2005
    المشاركات
    12


    مشكور على هذا الموضوع المتميز
    الذي كنا ننتظر أحد من الشباب
    يشرحه لنا





    __________________
    شبكة الليث الأبيض
    www.whiteleo.net
    شبكة المصمم العماني
    www.omanides.com

    للتواصل :
    thamir_144@hotmail.com
    whiteleo.net@hotmail.com

  9. #9
    عضو فعال
    تاريخ التسجيل
    Feb 2003
    المشاركات
    1,174


    HaMaDa4eVeR

    رائع جدا اخوي :> ولكن ليه ما نتعامل بنضام القوالب لتسهيل العمليه وتنظيم العمل ؟


    :con2:


    وهذا اجتهاد مني لتوسيع نطاق الدرس ..

    طبعا سبق وشرح المتغيرات ووو ..

    ملف الـ php
    كود PHP:
    <?php
    // ####################### SET PHP ENVIRONMENT ###########################
    error_reporting(E_ALL & ~E_NOTICE);
    // #################### DEFINE IMPORTANT CONSTANTS #######################
    define('THIS_SCRIPT''NLP_Page');
    define('NO_REGISTER_GLOBALS'1);
    // ################### PRE-CACHE TEMPLATES AND DATA ######################
    // get special phrase groups
    $phrasegroups = array();
    // get special data templates from the datastore
    $specialtemplates = array();
    // pre-cache templates used by all actions
    $globaltemplates = array('NLP_PageBit','NLP_Page');
    // pre-cache templates used by specific actions
    $actiontemplates = array();
    // ######################### REQUIRE BACK-END ############################
    require_once('./global.php');
    // #######################################################################
    // ######################## START MAIN SCRIPT ############################
    // #######################################################################
    $navbits = array();
    $navbits[$parent] = 'My Advanced Page - NLP';
    $navbits construct_navbits($navbits);
    $Results=$db->query("SELECT * FROM user WHERE userid = 1");
    while (
    $NLP=$db->fetch_array($Results))
    {
        
    // عرض محتويات اللوب خلال الجدول ..
        
    eval('$NLP_PageBit = "' fetch_template('NLP_PageBit') . '";');
    }
    // عرض المحتويات في القالب
    eval('$navbar = "' fetch_template('navbar') . '";');
    eval(
    'print_output("' fetch_template('NLP_Page') . '");');
    ?>
    اضف قالب .. بإسم NLP_Page ومحتواه ..
    كود HTML:
    $stylevar[htmldoctype]
    <html id="NLP" dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
    <head>
    $headinclude
    <title>My Advanced Page - NLP</title>
    </head>
    <body>
    $header
    $navbar
    <br />
    <div align="center">
    <table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="50%" align="center">
    $NLP_PageBit
    </table>
    </div>
    <br />
    $footer
    </body>
    </html>
    و ايضا .. قالب بإسم NLP_PageBit ومحتواه ..

    كود HTML:
    <tr>
    			<td class="alt1">إسم المستخدم</td>
    			<td class="alt2" class="alt1">$NLP[username]</td>
    		</tr>
    		<tr>
    			<td class="alt2" width="50%">البريد الإلكتروني</td>
    			<td class="alt1">$NLP[email]</td>
    		</tr>
    		<tr>
    			<td class="alt1">رقم العضويه</td>
    			<td class="alt2">$NLP[userid]</td>
    		</tr>
    		<tr>
    			<td class="alt2">تاريخ التسجيل</td>
    			<td class="alt1">$NLP[joindate]</td>
    		</tr>
    		<tr>
    			<td class="alt1">لقب العضو</td>
    			<td class="alt2">$NLP[usertitle]</td>
    		</tr>
    		<tr>
    			<td class="alt2">الصفحة الرئيسية</td>
    			<td class="alt1">$NLP[homepage]</td>
    		</tr>
    		<tr>
    			<td class="alt1">عدد المشاركات</td>
    			<td class="alt2">$NLP[posts]</td>
    		</tr>

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





    __________________
    منابر المتميز | شبكة المتميز
    حالياً في الأردن : 962777775774
    -----------------------------------
    مطور ويب / JS(incl AJAX) , PHP, XML

    تتبعني في Twitter

  10. #10
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2005
    المشاركات
    421


    امممم

    إل الامام اخواني واله فعلاً درس مهم بالنسبة لجميع من يريد ان يطور هاك او يعمل هاكات

    ,,, شـكرا ً لكاتب الموضوع HaMaDa4eVeR
    ,,, وشـكرا ً لمطور الدرس وموسعه NLP
    على العموم شكرا للكل





    __________________
    أسمي سابقـآ (N88X.CoM) تم تغيير الإسم إلى (Dr.PRO)
    تر قبو هاك الأذكار المتطور - أول هاك من برمجتي
    لندعـمهـم
    http://www.arabwebschool.com

  11. #11
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000


    لدي اكود عبارة عن عداد زوار للموقع ..
    الاكواد التي معي عبارة عن :
    - اضافة لقاعدة البيانات ..
    - ملف php
    - متغير لطباعة عدد الزوار ..

    هل يمكن تحويل ذلك الى هاك للمنتدى .؟؟؟؟

    أتمنى ان تعطيني الفكرة حول الهاك (نعم ، لا) ..
    وان شاء الله اضع الاكواد لاحقاً ..





    __________________
    استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور

  12. #12
    عضو نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    225


    سلمت يمناك اخي الكريم على هالدرس الرائع

    الله يكثر من امثالك






  13. #13
    عضو فعال
    تاريخ التسجيل
    Feb 2003
    المشاركات
    1,174


    مجاهد ,, بإذن الله يستطيعون الأخوه .. ارفقه لكي اجتهد في الملف





    __________________
    منابر المتميز | شبكة المتميز
    حالياً في الأردن : 962777775774
    -----------------------------------
    مطور ويب / JS(incl AJAX) , PHP, XML

    تتبعني في Twitter

  14. شكرا للجميع



    السلام عليكم ورحمة الله
    سعدت جدا بمروركم الكريم وسوف اكون اسعد عندما اشاهد تطبيقاتكم وتطويراتكم ،
    الاخ NLP
    لك اجزل الشكر ، واضافتك متميز وخصوصا في اللوب
    اتمنى ان تستخدم مستقبلا هذه الدالة :-
    كود PHP:
    vbdate($vbulletin->options['dateformat'], $NLP[joindate]) 
    لكي تقم بعرض التاريخ بشكل عادي ،
    واليك الملف بعد التعديل عليه
    كود PHP:
    <?php 
    // ####################### SET PHP ENVIRONMENT ########################### 
    error_reporting(E_ALL & ~E_NOTICE); 
    // #################### DEFINE IMPORTANT CONSTANTS ####################### 
    define('THIS_SCRIPT''NLP_Page'); 
    define('NO_REGISTER_GLOBALS'1); 
    // ################### PRE-CACHE TEMPLATES AND DATA ###################### 
    // get special phrase groups 
    $phrasegroups = array(); 
    // get special data templates from the datastore 
    $specialtemplates = array(); 
    // pre-cache templates used by all actions 
    $globaltemplates = array('NLP_PageBit','NLP_Page'); 
    // pre-cache templates used by specific actions 
    $actiontemplates = array(); 
    // ######################### REQUIRE BACK-END ############################ 
    require_once('./global.php'); 
    // ####################################################################### 
    // ######################## START MAIN SCRIPT ############################ 
    // ####################################################################### 
    $navbits = array(); 
    $navbits[$parent] = 'My Advanced Page - NLP'
    $navbits construct_navbits($navbits); 
    $Results=$db->query("SELECT * FROM user WHERE userid = 1"); 
    while (
    $NLP=$db->fetch_array($Results)) 
    // For Date Format , 
    $NLP_Date=vbdate($vbulletin->options['dateformat'], $NLP[joindate]);
        
    // عرض محتويات اللوب خلال الجدول .. 
        
    eval('$NLP_PageBit = "' fetch_template('NLP_PageBit') . '";'); 

    // عرض المحتويات في القالب 
    eval('$navbar = "' fetch_template('navbar') . '";'); 
    eval(
    'print_output("' fetch_template('NLP_Page') . '");'); 

    ?>
    تم حفظ التاريخ بعد استدعائه من قاعدة البيانات وتمريره على دالة التاريخ الخاصة تم حفظه باسم المتغير $NLP_Date
    وايضا قمت بتعديل القالبNLP_PageBit واستبدلت

    كود PHP:
    <td class="alt2">تاريخ التسجيل</td>
                <
    td class="alt1">$NLP[joindate]</td
    بهذا :-
    كود PHP:
    <td class="alt2">تاريخ التسجيل</td>
                <
    td class="alt1">$NLP_Date</td
    أخي مجاهد
    قبل ان تضع لنا الاكواد اتمنى ان تحاول مرارا وتكرارا تنفيذا لوحدك وان احتجت الى مساعدة بكل تاكيد ايادينا ممدوه لك ، فالعملية سهلة
    وبالتوفيق للجميع





    __________________
    ################################ PHP.SD ########
    We're not first,But We're the BEST

    ##

  15. #15


    فن و الله فن

    الله يوفقك ويبارك فيكم





    __________________
    http://www.vb2plus.com/index.php?action=news&id=12
    أقوى نظام بنرات عرفته المنتديات





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

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

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض