سيف المعمري
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]\"> </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]\"> </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- صور الأوسمة المستخدمة توّضيحية فقط .
الموضوع الاصلي في منتدى المشاغب
بداية نشكر الأخ " ألم الإمارات " على هذا الهاك
و يمكنكم تحميل الهاك مع شرح الأخ " ألم الإمارات "
و معه بعض الإضافات لتسهيل تركيب الهاك ...
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]\"> </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]\"> </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- صور الأوسمة المستخدمة توّضيحية فقط .
الموضوع الاصلي في منتدى المشاغب