[مشكلة] هاك التعديل السريع للأعضاء
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
أخواني لقيت هذا الموضوع في أحدى المنتديات
اقتباس:
وظيفة الهاك هي الوصول السريع لبعض من بيانات العضو في خانة مستقلة للتعديل عليها دون الذهاب الى لوحة تحكم المنتدى ومنها :
( الاسم - التوقيع - الصورة الرمزية - البيانات الشخصية )
وهذه البيانات سوف تكون واضحة فقط للمدير العام ( admin )
للتوضيح اكثر انظر الى الصور :
هذه الاضافات التي سوف تضاف
http://www.mwadah.com/images/imgcache/notfound.gif
على سبيل المثال سوف نضغط على تعديل التوقيع
سوف تفتح لنا نافذة التوقيع وبالامكان التعديل عليه دون الذهاب الى
لوحة التحم انظر الصورة :
http://www.mwadah.com/images/imgcache/notfound.gif
الهاك بالمرفقات مع الشرح وللجميع .. يرجى فقط عدم حذف حقوق
التعريب في حال النقل .. والله الموفق
و حملت الملف
و كان فيه التالي
كود:
بسم الله الرحمن الرحيم
/////\\\\\--------------------------------------------------------/////\\\\\
/////\\\\\ هاك التعديل السريع لبيانات العضو /////\\\\\
/////\\\\\ تعريب الهاك بواسطة أبوالريـــم /////\\\\\
/////\\\\\ شبكة الريـــم الاسلامية /////\\\\\
/////\\\\\ www.reeem.com /////\\\\\
/////\\\\\ لمنتديات vb3.0.3
/////\\\\\ يرجى عدم حذف حقوق التعريب /////\\\\\
/////\\\\\---------------------------------------------------------/////\\\\\
وضيفة الهاك هي الوصول السريع لبعض من بيانات العضو في خانة مستقلة للتعديل عليها دون الذهاب الى لوحة تحكم المنتدى ومنها :
( الاسم - التوقيع - الصورة الرمزية - البيانات الشخصية )
وهذه البيانات سوف تكون واضحة فقط للمدير العام ( admin )
الخطوة الاولى :-
اذهب الى :
vb/admincp/user.php
وفي ملف user.php
ابحث عن :
==================================
print_cp_footer();
==================================
اضف اعلى منه مباشرة الكود التالي بالكامل :
==================================
// Start quickedit user by ATC
// ###################### Start editusername #######################
if ($_REQUEST['do'] == 'name')
{
globalize($_REQUEST, array('userid' => INT));
// valid id ?
if (empty($userid))
{
print_stop_message('invalid_user_specified');
}
if ($userid)
{
$user = $DB_site->query_first("
SELECT user.*
FROM " . TABLE_PREFIX . "user
WHERE user.userid = $userid
");
}
// start edit username
print_form_header('user', 'save');
construct_hidden_code('userid', $userid);
print_table_header(construct_phrase($vbphrase['x_y_id_z'], $vbphrase['user'], $user['username'], $userid));
print_input_row($vbphrase['username'], 'user[username]', $user['username'], 0);
$tableadded = 1;
print_submit_row($vbphrase['save']);
}
// ###################### Start do update username #######################
if ($_POST['do'] == 'save')
{
globalize($_POST, array(
'user'
));
// check for semi-colons
if (preg_match('/(?<!&#[0-9]{3}|&#[0-9]{4}|&#[0-9]{5});/', $user['username']))
{
print_stop_message('username_contains_semi_colons');
}
$userid = intval($_POST['userid']);
$noalter = explode(',', $undeletableusers);
if (!empty($noalter[0]) AND in_array($userid, $noalter))
{
print_stop_message('user_is_protected_from_alteration_by_undeletableusers_var');
}
$olduserinfo = fetch_userinfo($userid);
$user['username'] = htmlspecialchars_uni($user['username']);
if (empty($user['username']))
{
print_stop_message('invalid_username_specified');
}
if ($exists = $DB_site->query_first("
SELECT userid
FROM " . TABLE_PREFIX . "user
WHERE username = '" . addslashes(htmlspecialchars_uni($user['username'])) . "'
AND userid <> $userid
"))
{
print_stop_message(
'name_exists',
$vbphrase['user'],
"<a href=\"user.php?$session[sessionurl]do=edit&userid=$exists[userid]\" target=\"_blank\">" . htmlspecialchars_uni($user['username']) . '</a>'
);
}
require_once('./includes/functions_databuild.php');
if ($userid)
{
// editing user
if (empty($user['password']))
{
unset($user['password']);
}
$DB_site->query(fetch_query_sql($user, 'user', "WHERE userid=$userid"));
}
if ($user['username'] != $olduserinfo['username'])
{ // update pm tables
$DB_site->query("
UPDATE " . TABLE_PREFIX . "pmreceipt
SET tousername = '" . addslashes($user['username']) . "'
WHERE touserid = $userid
");
$DB_site->query("
UPDATE " . TABLE_PREFIX . "pmtext
SET fromusername = '" . addslashes($user['username']) . "'
WHERE fromuserid = $userid
");
$olduser = strlen($olduserinfo['username']);
$newuser = strlen($user['username']);
$DB_site->query("
UPDATE " . TABLE_PREFIX . "pmtext
SET touserarray = REPLACE(touserarray, 'i:$userid;s:$olduser:\"" . addslashes($olduserinfo['username']) . "\";','i:$userid;s:$newuser:\"" . addslashes($user['username']) . "\";')
");
}
print_stop_message('saved_user_x_successfully', $user['username']);
}
// ###################### Start modify Avatar ################
if ($_REQUEST['do'] == 'editava')
{
globalize($_REQUEST, array(
'userid' => INT,
));
if (empty($userid))
{
print_stop_message('invalid_user_specified');
}
$bbuserinfo = fetch_userinfo($userid);
$avatarchecked[$bbuserinfo['avatarid']] = HTML_CHECKED;
$nouseavatarchecked = '';
if (!$avatarinfo = $DB_site->query_first("SELECT * FROM " . TABLE_PREFIX . "customavatar WHERE userid = $userid"))
{
// no custom avatar exists
if (!$bbuserinfo['avatarid'])
{
// must have no avatar selected
$nouseavatarchecked = HTML_CHECKED;
$avatarchecked[0] = '';
}
}
$avatarcount = 0;
print_form_header('user', 'updateavatar', 1);
print_table_header(construct_phrase($vbphrase['x_y_id_z'], $vbphrase['custom_avatar'], $bbuserinfo['username'], $userid));
if ($nouseavatarchecked)
{
print_description_row($vbphrase['user_has_no_avatar']);
}
else
{
print_yes_row($vbphrase['delete_avatar'], 'avatarid', $vbphrase['yes'], '', -1);
}
require_once('./includes/functions_user.php');
$bbuserinfo['avatarurl'] = fetch_avatar_url($bbuserinfo['userid']);
if (empty($bbuserinfo['avatarurl']) OR $bbuserinfo['avatarid'] != 0)
{
$bbuserinfo['avatarurl'] = '<img src="../' . $vboptions['cleargifurl'] . '" alt="" border="0" />';
}
else
{
$bbuserinfo['avatarurl'] = "<img src=\"../$bbuserinfo[avatarurl]\" alt=\"\" border=\"0\" />";
}
print_yes_row(
iif($avatarchecked[0] != '',
$vbphrase['use_current_avatar'] . ' ' . $bbuserinfo['avatarurl'],
$vbphrase['add_new_custom_avatar']
)
, 'avatarid', $vbphrase['yes'], $avatarchecked[0], 0);
print_input_row($vbphrase['enter_avatar_url'], 'avatarurl', 'http://www.');
print_upload_row($vbphrase['upload_avatar_from_computer'], 'upload');
construct_hidden_code('userid', $userid);
print_submit_row($vbphrase['save']);
}
// ###################### Start Update Avatar ################
if ($_POST['do'] == 'updateavatar')
{
globalize($_POST, array('userid' => INT, 'avatarid' => INT, 'avatarurl' => STR, 'useavatar' => INT));
$useavatar = iif($avatarid == -1, 0, 1);
$bbuserinfo_you = $bbuserinfo;
$bbuserinfo = fetch_userinfo($userid); // bad...
if ($useavatar)
{
if ($avatarid == 0)
{
// custom avatar
require_once('./includes/functions_upload.php');
process_image_upload('avatar', $avatarurl);
}
else
{
// predefined avatar
// let the admin set the user to have any avatar, so don't include any of the checks
$DB_site->query("DELETE FROM " . TABLE_PREFIX . "customavatar WHERE userid = $bbuserinfo[userid]");
@unlink("$vboptions[avatarpath]/avatar$bbuserinfo[userid]_$bbuserinfo[avatarrevision].gif");
}
}
else
{
// not using an avatar
$avatarid = 0;
$DB_site->query("DELETE FROM " . TABLE_PREFIX . "customavatar WHERE userid = $bbuserinfo[userid]");
@unlink("$vboptions[avatarpath]/avatar$bbuserinfo[userid]_$bbuserinfo[avatarrevision].gif");
}
$DB_site->query("UPDATE " . TABLE_PREFIX . "user SET avatarid = " . intval($avatarid) . " WHERE userid = $bbuserinfo[userid]");
$bbuserinfo = $bbuserinfo_you; // isn't that a lame thing to have to do? Works, but it's not really nice... :/
print_stop_message('saved_avatar_successfully');
}
// ###################### Start editsig #######################
if ($_REQUEST['do'] == 'editsig')
{
globalize($_REQUEST, array('userid' => INT));
if (empty($userid))
{
print_stop_message('invalid_user_specified');
}
$noalter = explode(',', $undeletableusers);
if (!empty($noalter[0]) AND in_array($userid, $noalter))
{
print_stop_message('user_is_protected_from_alteration_by_undeletableusers_var');
}
$user = $DB_site->query_first("
SELECT * FROM " . TABLE_PREFIX . "user AS user
LEFT JOIN " . TABLE_PREFIX . "usertextfield AS usertextfield USING (userid)
WHERE user.userid = $userid
");
print_form_header('user','doeditsig', 0, 1);
construct_hidden_code('userid', $userid);
print_table_header(construct_phrase($vbphrase['x_y_id_z'], $vbphrase['signature'], $user['username'], $user['userid']));
print_textarea_row($vbphrase['signature'], 'signature', $user['signature'], 8, 45, 1, 0);
print_submit_row();
}
// ###################### Start doeditsig #######################
if ($_POST['do'] == 'doeditsig')
{
globalize($_POST, array('userid' => INT, 'signature' => STR));
if (!can_moderate(0, 'caneditsigs'))
{
print_stop_message('no_permission_signatures');
}
$noalter = explode(',', $undeletableusers);
if (!empty($noalter[0]) AND in_array($userid, $noalter))
{
print_stop_message('user_is_protected_from_alteration_by_undeletableusers_var');
}
if (empty($userid))
{
print_stop_message('invalid_user_specified');
}
$DB_site->query("
UPDATE " . TABLE_PREFIX . "usertextfield SET
signature = '" . addslashes($signature) . "'
WHERE userid = $userid
");
print_stop_message('saved_signature_successfully');
}
// end quickedit user by ATC
==================================
احفظ العمل
الخطوة الثانيية :-
2. تعديل على تمبلت postbit_legacy او postbit
ابحث عن :
==================================
<tr><td class="vbmenu_option"><a href="profile.php?$session[sessionurl]do=addlist&userlist=buddy&u=$post[userid]"><phrase 1="$post[username]">$vbphrase[add_x_to_buddy_list]</phrase></a></td></tr>
==================================
تضيف تحتها مباشرة
==================================
<if condition="$show['admincplink']">
<tr><td class="vbmenu_option"><span onmouseover="this.style.cursor='pointer';" onClick="window.open('admincp/user.php?do=name&userid=$post[userid]','edit','width=500,height=350,scrollbars=yes')"><b>تعديل اسم $post[username] </b></span></td></tr>
<tr><td class="vbmenu_option"><span onmouseover="this.style.cursor='pointer';" onClick="window.open('admincp/user.php?do=editsig&userid=$post[userid]','edit','width=500,height=350,scrollbars=yes')"><b>تعديل توقيع $post[username] </b></span></td></tr>
<tr><td class="vbmenu_option"><span onmouseover="this.style.cursor='pointer';" onClick="window.open('admincp/user.php?do=editava&userid=$post[userid]','edit','width=500,height=350,scrollbars=yes')"><b>تعديل صورة $post[username] الرمزية</b></span></td></tr>
<tr><td class="vbmenu_option"><span onmouseover="this.style.cursor='pointer';" onClick="window.open('admincp/user.php?do=edit&userid=$post[userid]','edit','width=500,height=350,scrollbars=yes')"><b>تعديل بيانات $post[username] الشخصية</b></span></td></tr>
</if>
==================================
وصلى الله وسلم على سيدنا محمد .. تعريب أبوالريم
شبكة الريم الاسلامية - www.reeem.com
سويت كل إلي مكتوب ..
و ما نفعت الحركة ..
هل يوجد طريقة أخرى
أني أخلي الإدارة تغير اللقب و الرمزية و معلومات العضو بشكل عام ..
بدون الدخول للوحة الإدارة ؟؟؟
شاكرين لكم التعاون
رد: [مشكلة] هاك التعديل السريع للأعضاء
أستخدم هاك محرر الاعضاء
http://www.mwadah.com/t73172/
وهو مدمج ايضاً ضمن منتج ادوات المودة للإدارة سواء الاصدار الثاني او الثالث
رد: [مشكلة] هاك التعديل السريع للأعضاء
:mwalat1: مشكور أخوي ضامي
و الله جعلها في حسناتك
و يرزقك الجنة
رد: [مشكلة] هاك التعديل السريع للأعضاء
:mwalat13:
أخوي رفعت ملفات مجلد upload
لقيت أن كلها وجودة ... رغم ذلك عملت استبدال
لكن عند رفع الهاك تظهر لي (دتا بيس إيرور )
و الرسالة
كود:
Database error in vBulletin 3.7.3:
Invalid SQL:
ALTER TABLE `usergroup` ADD `que` INT UNSIGNED DEFAULT '0' NOT NULL;
MySQL Error : Duplicate column name 'que'
Error Number : 1060
Request Date : Monday, March 2nd 2009 @ 04:06:24 PM
Error Date : Monday, March 2nd 2009 @ 04:06:24 PM
Script : http://www.dddd.com/vb/admincp/plugin.php?do=productimport
Referrer : http://www.dddd.com/vb/admincp/plugin.php?do=productadd
IP Address : 00.000.000.000
Username : -----------
Classname : vB_Database
MySQL Version : 5.0.67-community
ملاحظة : أنا حذفت اليوزر و اسم الموقع و الip
رد: [مشكلة] هاك التعديل السريع للأعضاء
رد: [مشكلة] هاك التعديل السريع للأعضاء
احذف الملفات اللي رفعتها وقم برفعها من جديد
واحذف الهاك من لوحة التحكم واعد رفعه وجرب .! !.
رد: [مشكلة] هاك التعديل السريع للأعضاء
جربت أخوي
ما نفع :mwalat6:
الملفات الموجودة للرفع
include = xml = bitfield_que
vb = que.php
فقط
رد: [مشكلة] هاك التعديل السريع للأعضاء
رد: [مشكلة] هاك التعديل السريع للأعضاء
up
الله يخليكم رد
نسخة المنتدى
3.7.3 الذهبية
رد: [مشكلة] هاك التعديل السريع للأعضاء
طيب اخوي جرب أستخدم منتج ادوات المودة للإدارة الإصدار الثالث لأنة مدمج فية وشوف سوف يتم الرفع او لا
لكن قبل كل شي قم برفع الملفات أولاً على ftp بعدها قم بإستيراد المنتج