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

مشاهدة النسخة كاملة : شرح تركيب هاك الأوسمة لمنتديات vb3.0



سيف المعمري
28 - 12 - 2005, 05:23
شرح تركيب هاك الأوسمة لمنتديات vb3.0

بداية نشكر الأخ " ألم الإمارات " على هذا الهاك
و يمكنكم تحميل الهاك مع شرح الأخ " ألم الإمارات "
و معه بعض الإضافات لتسهيل تركيب الهاك ...
www.saif.orgfree.com/up/award.zip

التركيب

الخطوة الأولى : الملفات

افتح ملف: vb/admincp/index.php
إبحث عن الكود التالي:


construct_nav_group($vbphrase['announcements']);

أضف بعده الكود التالي:



construct_nav_option("إضافة وســام","award.php?do=add","|");
construct_nav_option("تعديل وســام","award.php?do=modify");
construct_nav_group("التحكم بالأوسمة")


إفتح ملف: vb/admincp/user.php

إبحث عن الكود التالي:



print_input_row($vbphrase['ip_address'], 'user[ipaddress]',
$user['ipaddress']);

أضف بعده الكود التالي:


// award/medals/card hack by lesane
print_table_header("Awards");
print_yes_no_row("Enable awards for
$user[username]?","hasaward",$user[award]);
$result = mysql_query("SELECT * FROM useraward where
userid='$user[userid]'");
if ($row = mysql_fetch_array($result)) {
$toegang="yes";
} else {
$toegang="no";
}
if ($toegang=="yes") {
$result=$DB_site->query("SELECT awardsid,name,url,userid,aw FROM
useraward where userid=$user[userid]");
while($award = mysql_fetch_array($result) ) {
$lesane="yes";
$id = $award[awardsid];
if($award[aw] == "$id" and $award[userid] == "$user[userid]") {
$lala=" checked";
$up="equal";
} else {
$lala="";
$up="not_equal";
}

echo "<tr class='".fetch_row_bgclass()."'><td><input
type='checkbox' name='aw[$id]' value='yes'";
echo "$lala>$award[name]</td><td nowrap>";
echo "<input type=\"hidden\" name=\"all[$id]\"
value=\"$up\">";
echo "<img src=\"$award[url]\">&nbsp;&nbsp;&nbsp;</td>";
}

echo "<input type=\"hidden\" name=\"lessie\"
value=\"$lesane\">";

} elseif ($toegang=="no") {
$noawa=$DB_site->query("SELECT awardsid,name,url,aw FROM
award");
while($useraward = mysql_fetch_array($noawa) ) {
$id = $useraward[awardsid];
$lesane="no";
echo "<tr class='".fetch_row_bgclass()."'><td><input
type='checkbox' name='uaw[$id]' value='yes'";
if ($uaw =='yes') {
echo " checked>$useraward[name]</td><td nowrap>";
$userup='equal';
} else {
echo ">$useraward[name]</td><td nowrap>";
$userup='not_equal';
}
echo "<input type=\"hidden\" name=\"uall[$id]\"
value=\"$userup\">";
echo "<img
src=\"$useraward[url]\">&nbsp;&nbsp;&nbsp;</td>";
echo "<input type=\"hidden\" name=\"userhomes[$id]\"
value=\"$useraward[name]\">";
echo "<input type=\"hidden\" name=\"userurls[$id]\"
value=\"$useraward[url]\">";

}
echo "<input type=\"hidden\" name=\"lessie\"
value=\"$lesane\">";
}
// echo "</tr></td></table>";
// print_table_break();
// end award/medals/card hack by lesane


نفس الملف: vb/admincp/user.php

إبحث عن الكود التالي:


// ###################### Start do update #######################
if ($_POST['do'] == 'update')
{
globalize($_POST, array(
'password',
'user',
'membergroup',
'modifyavatar',
'birthday',
'signature',
'modifyprofilepic',
'joindate',
'lastvisit',
'lastactivity',
'lastpost',
'options',
'referrer',
'threaddisplaymode' => INT
));


إستبدله بالكود التالي:


// ###################### Start do update #######################
if ($_POST['do'] == 'update')
{
globalize($_POST, array(
'password',
'user',
'membergroup',
'modifyavatar',
'birthday',
'signature',
'modifyprofilepic',
'joindate',
'lastvisit',
'lastactivity',
'lastpost',
'options',
'referrer',
'hasaward',
'lessie',
'aw',
'all',
'uaw',
'uall',
'userhomes',
'userurls',
'threaddisplaymode' => INT
));


نفس الملف: vb/admincp/user.php

إبحث عن الكود التالي:



$user['options'] = convert_array_to_bits(array_merge($olduserinfo ,
$options), $_USEROPTIONS);

أسفل منه ضع الكود التالي:


// award/medals/card hack by lesane
if ($lessie=="yes") {
while (list($id,$was) = each($all))
{
$now = $aw[$id];
$was = $all[$id];
if ($now == 'yes' and $was == 'not_equal' ) {
$DB_site->query("UPDATE useraward SET aw='$id' WHERE
userid=$userid AND awardsid='$id'");
} elseif ($now !='yes' and $was=='equal' ) {
$DB_site->query("UPDATE useraward SET aw='0' WHERE userid=$userid AND
awardsid='$id'");
}
}
} elseif ($lessie=="no") {
while (list($id,$was) = each($uall))
{
$now = $uaw[$id];
$was = $uall[$id];
$uhomes = $userhomes[$id];
$uurls = htmlspecialchars( $userurls[$id] );
if( $now == 'yes' )
$aw = $id;
else
$aw = 0;
$DB_site->query("INSERT into useraward (awardsid,userid,name,url,aw)
VALUES ('$id','$userid','$uhomes','$uurls','$aw')");
}
}

$DB_site->query("UPDATE user SET award='$hasaward' WHERE userid=$userid");
// end award/medals/card hack by lesane



إفتح ملف: vb/include/function_showthread.php

إبحث عن الكود التالي:



$show['pmlink'] = iif ($post['receivepm'] AND $vboptions['enablepms'], true, false);

أسفل منه ضع الكود التالي:



// awards/medals/cards hack by lesane
if ($post['award']=="1")
{
$result=$DB_site->query("SELECT * FROM useraward WHERE
userid='$post[userid]' AND awardsid=aw ");
while ($awardsp=$DB_site->fetch_array($result))
{
eval('$post[hasaward] .= "' . fetch_template('awards') . '";');
}
}
// awards/medals/cards hack by lesane


و بعد الإنتهاء من إجراء التغييرات على الملفات السابقة نعيد لمكانها
و نرفع الملفين المرفقين في الإمتداد الموضح

vb/admincp/award.php
vb/admincp/addawardtable.php

الخطوة الثانية : التنصيب

و بعد ذلك نبدأ في تنصيب الهاك على الرابط التالي
http://www.mysite.com/vb/admincp/addawardtable.php

و بعد الإنتهاء نحذف الملف addawardtable.php

الخطوة الثالثة : القوالب

1- إضافة قالب جديد بإسم: awards
نضع بداخله الكود التالي:


<br><img src="$awardsp[url]" alt="$awardsp[name]"><br>

2- تعديل تمبلت: postbit_legacy
ضع الكود التالي في المكان اللي ترغب ان يكون فيه الوسام:


$post[hasaward]<br />

و هكذا إنتهى تركيب الهاك

و لكن بالنسبة لإختيار مكان لوضع يجب طبعا وضعه في المكان الذي
تعرض فيه معلومات العضو
فمثلا لوضعه فوق أيقونات الإتصال ( ياهو , icq , .... ) يكون فوق



<div>$post[icqicon] $post[aimicon] $post[msnicon] $post[yahooicon]</div>
</div>

و لوضعه تحت الإيقونات , نضع كود هاك الأوسمة تحت الكود السابق

الخطوة الرابعة : لوحة التحكم

و بعد الإنتهاء من كل شئ , نذهب للوحة التحكم
و سنجد " التحكم بالأوسمة "

http://absba6.absba.org/teamwork7/saif01/award/001.JPG

و الآن نرفع صور الأوسمة للموقع و يفضل وضعها في مجلد خاص في مجلد
الصور images ...
و بعد ذلك نقوم بإضافة الأوسمة عن طريق " إضافة وسام "

http://absba6.absba.org/teamwork7/saif01/award/003.JPG

حيث نضع إسم الوسام و رابط الصورة الخاصة به و بعد ذلك " حفظ "
و سيظهر الوسام

http://absba6.absba.org/teamwork7/saif01/award/004.JPG

و يمكنننا تعديل أو حذف الأوسمة عن طريق " تعديل وسام "

http://absba6.absba.org/teamwork7/saif01/award/001.JPG

حيث يمكن تغيير الإسم او الرابط و إذا أردنا حذف الوسام
سيطلب منا تأكيد الحذف

http://absba6.absba.org/teamwork7/saif01/award/005.JPG


منح الأوسمة

لمنح وسام لأحد الاعضاء نذهب للملف الشخصي للعضو في لوحة التحكم
( مثلا من الأعضاء > بحث عن الأعضاء > و نختار العضو )
و سنجد في ملف العضو خاصية الأوسمة

http://absba6.absba.org/teamwork7/saif01/award/006.JPG

و نختار الوسام ( أو الأوسمة ) ثم نحفظ

http://absba6.absba.org/teamwork7/saif01/award/007.JPG

قبل و ضع الأوسمة

http://absba6.absba.org/teamwork7/saif01/award/008.JPG

و سام واحد

http://absba6.absba.org/teamwork7/saif01/award/009.JPG

و سامين

http://absba6.absba.org/teamwork7/saif01/award/010.JPG

وقد لاحظت عدم إمكانية منح وسام لأي عضو لايمكن " حذفه "

http://absba6.absba.org/teamwork7/saif01/award/011.JPG

فبما إن منح الوسام سيكون بالتغيير في بيانات العضو فبالتالي
لا يمكن التغيير في بيانات الأعضاء الذين لا يمكن حذفهم
و هذه الخاصية توجد في ملف config

http://absba6.absba.org/teamwork7/saif01/award/012.JPG

و للتغلب على هذه الإشكالية يمكن تغيير معلومات الكونفج
و بعد وضع الوسام إرجاعها مرة أخرى !!

إنتهى الشرح

ملاحظات :
1- يجب أخذ نسخة إحتياطية لأي ملف أو قالب قبل إجراء تغيير عليه .
2- تم الشرح على نسخة vb3.0.6
3- قد تختلف التسميات بسبب إختلاف التعريب .
4- الشرح كاملا في الملف .
5- صور الأوسمة المستخدمة توّضيحية فقط .


الموضوع الاصلي في منتدى المشاغب

ضيف المهاجر
03 - 01 - 2006, 22:00
شكرا لك اخي سيف وما قصرت


تحياتي

سيف المعمري
06 - 01 - 2006, 02:59
العفو أخوي ضيف المهاجر

الحسين
10 - 02 - 2006, 14:58
مشكور على الوسام