[Product] فورم طلبات الإشراف .. أو أي فورم آخر

mr. vb

New Member
السلام عليكم جميعاً

بحثت على سكربتات كثيره لإضافة فورم طلبات إشراف أو أي نوع من أنواع الفومات ...

طلبات شراء .. مشاكل .. وغيره

مواصفات الـProduct :

1- خيار بارسال الطلب كموضوع الى قسم تحدده أنت.
2- خيار يسمح لك بفتح تصويت في نفس الوقت اللذي يصل فيه الطلب الى القسم (مثال اذا احد الاعضاء قدم على الاشراف تستطيع تحديد التصويت في الملف نفسه ليصوتوا بقية الاداره على العضو بنعم أو لا ، من غير أن فتح موضوع جديد لعمل ذلك)
3- خيار بارسال الطلب كمشاركه على موضوع انت تحدده.
4- خيار بارسال الطلب على الرسائل الخاصه لعضو انت تحدده.
5- خيار لإرسال الطلب على البريد الشخصي الذي انت تحدده.
6- اعادة التحويل الى رسالة شكر او الموضوع او المشاركه او الى المشاركه مع التعديل عليها لأضافة مرفقات.

تستطيع استخدام هذا الـ Product كـ:

1- طلبات اشراف.
2- اختبارات بسيطة للأعضاء كمسابقات وغيرها.
3- اتصل بنا: ترسل على الرسائل الخاصه (تسهل عملية المشاكل مع الايميل).
4- للمنتديات التي تمنع التسجيل الى بطلبات.
5- فورم تقدير للمشرفين ومستوياتهم.
6- فورم للأخبار.

في النهاية الجميع حر بما يستخدمه فيه .. وتستطيع استخدام الهاك بعمل أكثر من فورم ...

تعم تعريب الهاك من قبلي كفورم طلبات اشراف.


طريقة التركيب:

اذهب الى ادارة المنتجات ومن ثم اضف منتج جديد

[Add/Import Product‎]‏

واضف الملف

product-form_hack.xml



إذهب الى التالي على حسب الترتيب

1- لوحة التحكم

2- نظام الـ Plugin

3- ادارة الـ Plugin

4- ثم اضغط على التعديل للملف Form Hack

واستبدل محتوياته كلها بالتالي

PHP:
// Name of this form
$formname = "form";

if ($_REQUEST['do'] == $formname)
{

$vbulletin->input->clean_array_gpc('p', array(
'normalanswer1' => STR,
'radioanswer1' => STR,
'radioanswer2' => STR,
'radioanswer3' => STR,
'radioanswer3other' => STR,
'answer1' => STR,
'answer2' => STR,
'answer3' => STR,
'longanswer1' => STR,
'action' => STR
));

$normalanswer1 =& $vbulletin->GPC['normalanswer1'];
$radioanswer1 =& $vbulletin->GPC['radioanswer1'];
$radioanswer2 =& $vbulletin->GPC['radioanswer2'];
$radioanswer3 =& $vbulletin->GPC['radioanswer3'];
$radioanswer3other =& $vbulletin->GPC['radioanswer3other'];
$answer1 =& $vbulletin->GPC['answer1'];
$answer2 =& $vbulletin->GPC['answer2'];
$answer3 =& $vbulletin->GPC['answer3'];
$longanswer1 =& $vbulletin->GPC['longanswer1'];

// #######################################################################
// ######################## CUSTOMIZE VARIABLES ##########################
// #######################################################################

////////////////////////////////////////////////////////////////////////////////////////////////////
////// BEGIN CUSTOMIZATION BELOW////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//USERGROUPS ALLOWED
//You can add or remove usegroups that are ALLOWED to use this form by changing the numbers below in the array.
//You may remove this feature by adding a '//' before the 'if'.
////////////////////////////////////////////////////////////////////////////////////////////////////

 if (!in_array($vbulletin->userinfo['usergroupid'], array(2,5,6,7))) print_no_permission();

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//NAME OF TEMPLATES - DO THIS BIT IF YOU ARE MAKING MORE FORMS أسماء القوالب - إستخدم هذه القوالب إذا كنت إضافة أكثر من فورم
////////////////////////////////////////////////////////////////////////////////////////////////////

// Name of the main template
$maintemplate = "form";
// Name of the answer template
$answertemplate = "formanswers";

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//CHOOSE WHETHER YOU WANT FORM TO BE POSTED IN A NEW THREAD, NEW POLL, REPLY TO EXISITING THREAD, PMed OR EMAILED
//خيارات إضافة الطلبات في موضوع جديد ، تصويت ، مشاركة على موضوع ، رسالة خاصة ، أو رسالة بريدية
///////////////////////////////////////////////////////////////////////////////////////////////////

//ENABLE FORM TO BE POSTED - 1 = yes, 0 = no لتفعيل الفورم  1 = نعم ، 0 = لا
$formforum = "1";

//FORUM TO POST NEW THREAD IN  حدد رقم القسم المراد اضافة الموضوع فيه. فم بالتغيير على الرقه 14 الى رقم القسم المراد
$formforumid = "14";

//ENABLE POLL TO BE CREATED - 1 = yes, 0 = no غير الرقم الى 1 اذا كنت تريد تفعيل التصويت
$formpoll = "0";
$polloption[1] = "نعم";
$polloption[2] = "لا";
$polloption[3] = "ربما";

////////////////////////////////////////////////////////////////////////////////////////////////////

//ENABLE FORM TO REPLY TO EXISTING THREAD - 1 = yes, 0 = no غير الرقم الى 1 اذا كنت تريد الطلب يضاف الى موضوع
$formreply = "0";

//EXISTING THREAD ID FOR FORM TO REPLY IN حدد الموضوع الذي تريد الطلب يضاف اليها
$formreplythreadid = "12345";

////////////////////////////////////////////////////////////////////////////////////////////////////

//ENABLE FORM TO BE PMED - 1 = yes, 0 = no لإرسال الطلبات على الرسائل الخاصه غير الرقم الى 1
$formpm = "0";

//USERNAME TO PM TO اكتب اسم العضو الذي تريد تصل اليه الطلبات
$formpmname = "بوأحمد";

////////////////////////////////////////////////////////////////////////////////////////////////////

//ENABLE FORM TO BE EMAILED - 1 = yes, 0 = no غير الرقم الى 1 اذا اردت ارسال الطلبات على البريد
$formemail = "0";

//EMAIL ADDRESS TO EMAIL TO حدد الايميل المراد
$formemailaddress = "admin@qtrusa.com";

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//REDIRECT OPTIONS: بعد تقديم الطلب ماذا تريد ان تفعل
// 0 - thank you message (thread, reply, pm, or email) رسالة شكر
// 1 - redirect to post (thread or reply) الإنتقال الى الموضوع او المشاركه
// 2 - redirect to thread (thread only) الانتقال الى الموضوع
// 3 - redirect to forum (thread only) الانتقال الى القسم
// 4 - redirect to editpost to upload attachments (thread or reply) الانتقال الى الموضوع مع التعديل عليه لإضافة مرفقات
//
// Feel free to change the thank you message if you choose option 0
////////////////////////////////////////////////////////////////////////////////////////////////////

$redirectoption = "0";

$errormessage = "شكراً لك لتقيدم الطلب. وستقوم الإدارة بمراسلتك قريباً."; //This is the thank you message

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//FORCE USER TO ANSWER ALL QUESTIONS - 1 = yes, 0 = no غير الرقم الى 1 اذا اردت فرض اجابة جميع الاسئلة
////////////////////////////////////////////////////////////////////////////////////////////////////

$answerall = "0";

////////////////////////////////////////////////////////////////////////////////////////////////////
//TITLE OF FORM (do not use quotation marks or you will get a parse error) عنوان الفورم
////////////////////////////////////////////////////////////////////////////////////////////////////

$formtitle = "طلبات الإشراف";

////////////////////////////////////////////////////////////////////////////////////////////////////
//TITLE OF THREAD/POST/PM/EMAIL (do not use quotation marks or you will get a parse error)
////////////////////////////////////////////////////////////////////////////////////////////////////

$posttitle = "$formtitle";

////////////////////////////////////////////////////////////////////////////////////////////////////
//PURPOSE OF FORM (do not use quotation marks or you will get a parse error) شرح للفورم
////////////////////////////////////////////////////////////////////////////////////////////////////

$formpurpose = "هذا الملف تم عمله لإستقبال طلبات الإشراف.";

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//NORMAL INPUT BOX : QUESTION 1 (do not use quotation marks or you will get a parse error) سؤال عام
////////////////////////////////////////////////////////////////////////////////////////////////////

$normalquestion1 = "القسم المراد الإشراف عليه؟";

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//RADIO BOX CHOICES : QUESTION 1 (do not use quotation marks or you will get a parse error) سؤال خياري
////////////////////////////////////////////////////////////////////////////////////////////////////

$radioquestion1 = "الجنس؟";

// The following choices must NOT have quotation marks
$radiochoice1a = "ذكر";
$radiochoice1b = "إنثى";

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//RADIO BOX CHOICES : QUESTION 2 (do not use quotation marks or you will get a parse error) سؤال خياري بثلاث خيارات
////////////////////////////////////////////////////////////////////////////////////////////////////

$radioquestion2 = "مدة التسجيل؟";

// The following choices must NOT have quotation marks
$radiochoice2a = "اسبوع";
$radiochoice2b = "شهر";
$radiochoice2c = "سنه";

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//RADIO BOX CHOICES : QUESTION 3 (do not use quotation marks or you will get a parse error) سؤال خياري مع الشرح اذا كانت اجابتك بنعم
////////////////////////////////////////////////////////////////////////////////////////////////////

$radioquestion3 = "هل تستحق الإشراف؟";

// The following choices must NOT have quotation marks
$radiochoice3a = "نعم";
$radiochoice3b = "لا";

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//QUESTION 1 (do not use quotation marks or you will get a parse error)
$question1 = "الإسم الحقيقي؟";
$explain1 = "هنا اكتب اسمك الحقيقي.";

//QUESTION 2 (do not use quotation marks or you will get a parse error)
$question2 = "البريد الشخصي؟";
$explain2 = "هنا اكتب بريدك الشخصي.";

//QUESTION 3 (do not use quotation marks or you will get a parse error)
$question3 = "تأكيد البريد الشخصي؟";
$explain3 = "هنا أعد كتابة البريد الشخصي.";

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//LONG TEXT AREA INPUT: QUESTION 1 (do not use quotation marks or you will get a parse error)
////////////////////////////////////////////////////////////////////////////////////////////////////

$longquestion1 = "تحدث عن نفسك وعن خبراتك في القسم المحدد؟";
$longexplain1 = "هنا تحدث عن نفسك بما ينفعك للحصول على الإشراف والتغييرات التي تتوقع إحداثها على القسم.";

////////////////////////////////////////////////////////////////////////////////////////////////
////// END OF CUSTOMIZATION ////////////////////////////////////////////////////////////////////
/////  DO NOT CHANGE BELOW UNLESS YOU KNOW WHAT YOU ARE DOING!!! ////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////

// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################
$bbuserinfo = $vbulletin->userinfo;

// start navbar
$navbits = array();
$navbits['newthread.php?' . $vbulletin->session->vars['sessionurl'] . "do=$formname"] = $formtitle;

$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');

if ($vbulletin->GPC['action']=="submit")
{

    if ($answerall == "1")
    {
        if ($normalanswer1 == '' OR $radioanswer1 == '' OR $radioanswer2 == '' OR $radioanswer3 == '' OR $answer1 == '' OR $answer2 == '' OR $answer3 == '' OR $longanswer1 == '')
        {
            $errormessage = "$bbuserinfo[username], you need to answer every question!";
            eval('print_output("' . fetch_template('STANDARD_ERROR') . '");');
            exit();
        }
    }

    eval('$formsend = "' . fetch_template("$answertemplate") . '";');

    if ($formforum == "1")
    {
        $foruminfo = verify_id('forum', $formforumid, 0, 1);
        $forumperms = fetch_permissions($foruminfo[forumid]);
        $newpost['message'] =& $formsend;
        $newpost['title'] =& $posttitle;
        $newpost['parseurl'] = '1';
        $newpost['emailupdate'] = '9999';

        if ($vbulletin->userinfo['signature'] != '')
        {
            $newpost['signature'] = '1';
        }
        else
        {
            $newpost['signature'] = '0';
        }

        build_new_post('thread', $foruminfo, array(), array(), $newpost, $errors);

        if ($formpoll == "1")
        {
            $threadinfo = verify_id('thread', $newpost[threadid], 0, 1);
            $polloptions = count($polloption);
            $question = $posttitle;
            $vbulletin->GPC['options'] = $polloption;

            $counter = 0;
            $optioncount = 0;
            $badoption = '';
            while ($counter++ < $polloptions)
            { // 0..Pollnum-1 we want, as arrays start with 0
                if ($vbulletin->options['maxpolllength'] AND vbstrlen($vbulletin->GPC['options']["$counter"]) > $vbulletin->options['maxpolllength'])
                {
                    $badoption .= iif($badoption, ', ') . $counter;
                }
                if (!empty($vbulletin->GPC['options']["$counter"]))
                {
                    $optioncount++;
                }
            }

            // Add the poll
            $poll =& datamanager_init('Poll', $vbulletin, ERRTYPE_STANDARD);

            $counter = 0;
            while ($counter++ < $polloptions)
            {
                if ($vbulletin->GPC['options']["$counter"] != '')
                {
                    $poll->set_option($vbulletin->GPC['options']["$counter"]);
                }
            }

            $poll->set('question',    $question);
            $poll->set('dateline',    TIMENOW);
            $poll->set('active',    '1');

            $pollid = $poll->save();
            //end create new poll

            // update thread
            $threadman =& datamanager_init('Thread', $vbulletin, ERRTYPE_STANDARD, 'threadpost');
            $threadman->set_existing($threadinfo);
            $threadman->set('pollid', $pollid);
            $threadman->save();

        }
    }

    if ($formreply == "1")
    {
        $threadinfo = verify_id('thread', $formreplythreadid, 0, 1);
        $forumperms = fetch_permissions($threadinfo[forumid]);
        $newpost['message'] =& $formsend;
        $newpost['title'] =& $posttitle;
        $newpost['parseurl'] = "1";
        $newpost['emailupdate'] = '9999';

        if ($vbulletin->userinfo['signature'] != '')
        {
            $newpost['signature'] = '1';
        }
        else
        {
            $newpost['signature'] = '0';
        }
        
        build_new_post('reply', $foruminfo, $threadinfo, $postinfo, $newpost, $errors);
    }

    if ($formpm == "1")
    {
        $vbulletin->GPC['message'] =& $formsend;
        $vbulletin->GPC['title'] =& $posttitle;
        $vbulletin->GPC['recipients'] =& $formpmname;

        $pm['message'] =& $vbulletin->GPC['message'];
        $pm['title'] =& $vbulletin->GPC['title'];
        $pm['recipients'] =& $vbulletin->GPC['recipients'];


        // create the DM to do error checking and insert the new PM
        $pmdm =& datamanager_init('PM', $vbulletin, ERRTYPE_ARRAY);

        $pmdm->set('fromuserid', $vbulletin->userinfo['userid']);
        $pmdm->set('fromusername', $vbulletin->userinfo['username']);
        $pmdm->setr('title', $pm['title']);
        $pmdm->setr('message', $pm['message']);
        $pmdm->set_recipients($pm['recipients'], $permissions);
        $pmdm->set('dateline', TIMENOW);

        // everything's good!
        $pmdm->save();
    }

    if ($formemail == "1")
    {
        vbmail($formemailaddress, $posttitle, $formsend);
    }

    if ($redirectoption == "1")
    {
        $vbulletin->url = 'showthread.php?' . $vbulletin->session->vars['sessionurl'] . "p=$newpost[postid]";
        eval(print_standard_redirect('redirect_postthanks'));
        exit();
    }
    if ($redirectoption == "2")
    {
        $vbulletin->url = 'showthread.php?' . $vbulletin->session->vars['sessionurl'] . "t=$newpost[threadid]";
        eval(print_standard_redirect('redirect_postthanks'));
        exit();
    }
    if ($redirectoption == "3")
    {
        $vbulletin->url = 'forumdisplay.php?' . $vbulletin->session->vars['sessionurl'] . "f=$foruminfo[forumid]";
        eval(print_standard_redirect('redirect_postthanks'));
        exit();
    }
    if ($redirectoption == "4")
    {
        $vbulletin->url = 'editpost.php?do=editpost&' . $vbulletin->session->vars['sessionurl'] . "p=$newpost[postid]";
        eval(print_standard_redirect('redirect_postthanks'));
        exit();
    }
    eval('print_output("' . fetch_template('STANDARD_ERROR') . '");');
    exit();
}

eval('print_output("' . fetch_template("$maintemplate") . '");');
}

من ثم اطلب هذا العنوان من المتصفح وستجد الفورم جاهز
http://www.xxxx.com/vb/newthread.php?do=form

مع مراعاة تغيير xxxx الى عنوان موقعك
 

المرفقات

  • ddddd.zip
    8.5 KB · المشاهدات: 8
السلام عليكم ورحمة الله وبركاته
شكرا ً جزيلا ً اخي الفاضل mr.vb على الفورم
بارك الله بكم وجزاكم الله الف خير
 
عودة
أعلى