Paha_W
Full Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору -------------------------------------------------- Member level for PHP-Fusion v6 -------------------------------------------------- Version: 1.5 Author: PahaW Email: PM Date: Sep 29, 2006 -------------------------------------------------- тетсировал на 307 -------------------------------------------------- [mod]Уровень(Прозвище) пользователя, "mlevel" Загрузите на сервер, соблюдая вложенноть папок: administration\forums.php administration\members.php administration\updateuser.php forum\viewthread.php locale\Ваш язык\admin\forums.php locale\Ваш язык\members.php sql.sql -------------------------------------------------- Сделай резервную копию базы и файлов Загрузите файл и загрузите в базу из файле sql.sql Или сделайте как все описанно ниже. SQL: Создание базы: Скопируйте в корневой каталог (sql.php). В адресной строке браузера введите вот это: http://you_site/sql.php Если появится текс зеленого цвета, значит все нормально, если красного значит смотрите ошибку. PHP: открываем файл administration\forums.php: находим строчки: --- Код: } elseif ($action == "delete" && $t == "forum") { if (dbcount("(*)", "posts", "forum_id='$forum_id'") == 0) { $data = dbarray(dbquery("SELECT * FROM ".$db_prefix."forums WHERE forum_id='$forum_id'")); $result = dbquery("UPDATE ".$db_prefix."forums SET forum_order=forum_order-1 WHERE forum_cat='".$data['forum_cat']."' AND forum_order>'".$data['forum_order']."'"); $result = dbquery("DELETE FROM ".$db_prefix."forums WHERE forum_id='$forum_id'"); redirect(FUSION_SELF."?status=delf1"); } else { redirect(FUSION_SELF."?status=delf2"); } } else { | заменяем на: --- Код: } elseif ($action == "delete" && $t == "forum") { if (dbcount("(*)", "posts", "forum_id='$forum_id'") == 0) { $data = dbarray(dbquery("SELECT * FROM ".$db_prefix."forums WHERE forum_id='$forum_id'")); $result = dbquery("UPDATE ".$db_prefix."forums SET forum_order=forum_order-1 WHERE forum_cat='".$data['forum_cat']."' AND forum_order>'".$data['forum_order']."'"); $result = dbquery("DELETE FROM ".$db_prefix."forums WHERE forum_id='$forum_id'"); redirect(FUSION_SELF."?status=delf1"); } else { redirect(FUSION_SELF."?status=delf2"); } /////////////////// } elseif (isset($_POST['add_tname'])&&($mpost!="")&&($mlevel!="")){ $mlevel = trim(eregi_replace(" +", " ", $mlevel)); $forum_level = dbrows(dbquery("SELECT * FROM ".$db_prefix."forum_nmember"))+1; $result = dbquery("INSERT INTO ".$db_prefix."forum_nmember (forum_mpost, forum_mlevel, forum_level) VALUES ('{$mpost}', '{$mlevel}', '{$forum_level}')"); $mlevel = ""; $mpost = ""; $lev_action = FUSION_SELF."?status=add_member_level"; redirect(FUSION_SELF); } elseif (isset($_POST['save_tname'])&&($mpost!="")&&($mlevel!="")){ $result = dbquery("UPDATE ".$db_prefix."forum_nmember SET forum_mpost='{$mpost}', forum_mlevel='{$mlevel}' WHERE forum_lev_id='{$_GET['forum_lev_id']}'"); if (!$result){echo "11";} $mlevel = ""; $mpost = ""; $lev_action = FUSION_SELF."?status=save_member_level"; redirect(FUSION_SELF); } elseif (isset($_POST['delete_tname'])){ $result = dbquery("DELETE FROM ".$db_prefix."forum_nmember WHERE forum_lev_id='{$_GET['forum_lev_id']}'"); if (!$result){echo "11";} $mlevel = ""; $mpost = ""; $lev_action = FUSION_SELF."?status=delete_member_level"; redirect(FUSION_SELF); /////////////////// } else { | находим строчку: --- Код: if ($action == "edit") { if ($t == "cat") { $result = dbquery("SELECT * FROM ".$db_prefix."forums WHERE forum_id='$forum_id'"); $data = dbarray($result); $cat_name = $data['forum_name']; $cat_title = $locale['420']; $cat_action = FUSION_SELF."?action=edit&forum_id=".$data['forum_id']."&t=cat"; $forum_title = $locale['421']; $forum_action = FUSION_SELF; } elseif ($t == "forum") { $result = dbquery("SELECT * FROM ".$db_prefix."forums WHERE forum_id='$forum_id'"); $data = dbarray($result); $forum_name = $data['forum_name']; $forum_description = $data['forum_description']; $forum_cat = $data['forum_cat']; $forum_access = $data['forum_access']; $forum_posting = $data['forum_posting']; $forum_title = $locale['422']; $forum_action = FUSION_SELF."?action=edit&forum_id=".$data['forum_id']."&t=forum"; $cat_title = $locale['423']; $cat_action = FUSION_SELF; } } else { $cat_name = ""; $cat_order = ""; $cat_title = $locale['423']; $cat_action = FUSION_SELF; $forum_name = ""; $forum_description = ""; $forum_cat = ""; $forum_order = ""; $forum_access = ""; $forum_posting = ""; $forum_title = $locale['421']; $forum_action = FUSION_SELF; $lev_action = FUSION_SELF; } | и заменяем на эту: --- Код: if ($action == "edit") { if ($t == "cat") { $result = dbquery("SELECT * FROM ".$db_prefix."forums WHERE forum_id='$forum_id'"); $data = dbarray($result); $cat_name = $data['forum_name']; $cat_title = $locale['420']; $cat_action = FUSION_SELF."?action=edit&forum_id=".$data['forum_id']."&t=cat"; $forum_title = $locale['421']; $forum_action = FUSION_SELF; } elseif ($t == "forum") { $result = dbquery("SELECT * FROM ".$db_prefix."forums WHERE forum_id='$forum_id'"); $data = dbarray($result); $forum_name = $data['forum_name']; $forum_description = $data['forum_description']; $forum_cat = $data['forum_cat']; $forum_access = $data['forum_access']; $forum_posting = $data['forum_posting']; $forum_title = $locale['422']; $forum_action = FUSION_SELF."?action=edit&forum_id=".$data['forum_id']."&t=forum"; $cat_title = $locale['423']; $cat_action = FUSION_SELF; } } elseif (($action == "edit_tname")&&($t == "nmember")){ $forum_lev_id = $_GET['forum_lev_id']; if ($forum_lev_id > 0){ $data = dbarray(dbquery("SELECT * FROM ".$db_prefix."forum_nmember WHERE forum_lev_id='{$forum_lev_id}'")); $mpost = $data['forum_mpost']; $mlevel = $data['forum_mlevel']; $lev_action = FUSION_SELF."?action=save_tname&forum_lev_id={$forum_lev_id}&t=nmember"; } else { redirect(FUSION_SELF); } $cat_name = ""; $cat_order = ""; $cat_title = $locale['423']; $cat_action = FUSION_SELF; $forum_name = ""; $forum_description = ""; $forum_cat = ""; $forum_order = ""; $forum_access = ""; $forum_posting = ""; $forum_title = $locale['421']; $forum_action = FUSION_SELF; } else { $cat_name = ""; $cat_order = ""; $cat_title = $locale['423']; $cat_action = FUSION_SELF; $forum_name = ""; $forum_description = ""; $forum_cat = ""; $forum_order = ""; $forum_access = ""; $forum_posting = ""; $forum_title = $locale['421']; $forum_action = FUSION_SELF; $lev_action = FUSION_SELF; } | находим строчку: --- Код: if ($t != "forum") { opentable($cat_title); echo "<form name='addcat' method='post' action='$cat_action'> <table align='center' cellpadding='0' cellspacing='0' width='300'> <tr> | и выше нее вставляем вот это: --- Код: opentable($locale['ml494']); echo "<SCRIPT LANGUAGE=\"JavaScript\"> <!-- function menu(){ var URL = document.addlm.level.options[document.addlm.level.selectedIndex].value; top.location.href = URL; target = '_self'; } // --> </SCRIPT>"; echo "<form method='post' action='$lev_action' name='addlm'> <table align='center' border='0' cellpadding='0' cellspacing='0' width='500' class='border'> <tr><td>Выберите уровень</td><td>"; echo " <select name='level' onchange=\"menu()\" class='font'> <option value='?'> --- </option>"; $query=dbquery("SELECT * FROM ".$db_prefix."forum_nmember"); while($data=dbarray($query)) { echo "<option value='forums.php?action=edit_tname&forum_lev_id=".$data['forum_lev_id']."&t=nmember' target='_self'"; if (isset($forum_lev_id)&&($forum_lev_id==$data['forum_lev_id'])){ echo "selected>"; } else { echo ">"; } echo $locale['ml495']." ".$data['forum_level']." ".$locale['ml496']."</option>"; } echo "</select>"; echo "</td></tr> <tr><td class='tbl2' colspan='2' align='center'><b>".$locale['ml495']." "; if ($forum_lev_id > 0) echo $forum_lev_id; echo " ".$locale['ml496']."</b></td></tr> <tr><td> </td></tr> <tr><td class='tbl1' style='white-space:nowrap'><b>".$locale['ml495']." ".$locale['ml497']."</b></td> <td class='tbl1'><input type='text' name='mpost' value='$mpost' class='textbox' style='width:230px;'></td> </tr> <tr><td class='tbl1' style='white-space:nowrap'><b>".$locale['ml495']." ".$locale['ml498']."</b></td> <td class='tbl1'><input type='text' name='mlevel' value='$mlevel' class='textbox' style='width:230px;'></td> </tr> <tr> <tr><td class='tbl2' colspan='2'> </td></tr> <td align='center' colspan='2' class='tbl'>"; if ($action == "edit_tname"){ echo "<input type='submit' name='save_tname' value='".$locale['ml502']."' class='button'> "; echo "<input type='submit' name='delete_tname' value='".$locale['ml503']."' class='button'>"; } else { echo " <input type='submit' name='add_tname' value='".$locale['ml499']."' class='button'></td>"; } echo "</tr> </table> </form>\n"; closetable(); tablebreak(); | идем в категорию locale\Russian\admin\forum.php и там в коонце перед ?> вставляем код: --- Код: // Mlevel Forums $locale['ml494'] = "Персональные статусы"; $locale['ml495'] = "Уровень"; $locale['ml496'] = "подробности"; $locale['ml497'] = "отмечать сообщений"; $locale['ml498'] = "название"; $locale['ml499'] = "Добавить"; $locale['ml500'] = "Выберите"; $locale['ml501'] = "уровень"; $locale['ml502'] = "Сохранить изменения"; $locale['ml503'] = "Удалить"; | закрываем этот файл. открываем файл administration\members.php находим строчку: --- Код: $username = trim(eregi_replace(" +", " ", $_POST['username'])); | после нее добавляем: --- Код: if ($_POST['mlevel'] == "") { $mlevel = "none"; } else { $mlevel = trim(eregi_replace(" +", " ", $_POST['mlevel'])); if (!preg_match("/^[-0-9A-Z_@\s]+$/i", $mlevel)) $error .= $locale['452']."<br>\n"; } | находим строчку: --- Код: $result = dbquery("INSERT INTO ".$db_prefix."users (user_name, user_password, user_email, user_hide_email, user_location, user_birthdate, user_aim, user_icq, user_msn, user_yahoo, user_web, user_theme, user_offset, user_avatar, user_sig, user_posts, user_joined, user_lastvisit, user_ip, user_rights, user_groups, user_level, user_status) VALUES ('$username', md5('$password1'), '$email', '$hide_email', '', '0000-00-00', '', '', '', '', '', 'Default', '0', '', '', '0', '".time()."', '0', '".USER_IP."', '', '', '101', '0')"); | заменяем на: --- Код: $result = dbquery("INSERT INTO ".$db_prefix."users (user_name, user_mlevel, user_password, user_email, user_hide_email, user_location, user_birthdate, user_aim, user_icq, user_msn, user_yahoo, user_web, user_theme, user_offset, user_avatar, user_sig, user_posts, user_joined, user_lastvisit, user_ip, user_rights, user_groups, user_level, user_status) VALUES ('$username', '$mlevel', md5('$password1'), '$email', '$hide_email', '', '0000-00-00', '', '', '', '', '', 'Default', '0', '', '', '0', '".time()."', '0', '".USER_IP."', '', '', '101', '0')"); | находим строчку: --- Код: <tr> <td class='tbl'>".$locale['u001']."<span style='color:#ff0000'>*</span></td> <td class='tbl'><input type='text' name='user_name' maxlength='30' class='textbox' style='width:200px;'></td> </tr> | после нее добавляем: --- Код: <tr> <td class='tbl'>".$locale['ml482']."</b></td> <td class='tbl'><input type='text' name='mlevel' value='' maxlength='30' class='textbox' style='width:200px;'></td> </tr> | находим строчку: --- Код: <tr> <td class='tbl'>".$locale['u001']."<font color='red'>* </font></td> <td class='tbl'><input type='text' name='user_name' value='".$data['user_name']."' maxlength='30' class='textbox' style='width:200px;'></td> </tr> | после нее добавляем: --- Код: <tr> <td class='tbl'>".$locale['ml482']."</b></td> <td class='tbl'><input type='text' name='mlevel' value='".$data['user_mlevel']."' maxlength='30' class='textbox' style='width:200px;'></td> </tr> | закрываем этот файл. открываем файл locale\Russian\admin\members.php перед ?> добавляем: --- Код: $locale['ml482'] = "Уровень пользователя:"; | закрываем этот файл. октрываем administration\updateuser.php находим строчку: --- Код: $user_name = trim(eregi_replace(" +", " ", $_POST['user_name'])); | и после нее вставляем: --- Код: $mlevel = trim(eregi_replace(" +", " ", $_POST['mlevel'])); | находим строчку: --- Код: if (!preg_match("/^[-0-9A-Z_@\s]+$/i", $user_name)) $error .= $locale['452']."<br>\n"; | и после нее вставляем: --- Код: if ($_POST['mlevel'] == "") $mlevel = "none"; | находим строчку: --- Код: $result = dbquery("UPDATE ".$db_prefix."users SET user_name='$user_name',".$newpass."user_email='".$_POST['user_email']."', user_hide_email='$user_hide_email', user_location='$user_location', user_birthdate='$user_birthdate', user_aim='$user_aim', user_icq='$user_icq', user_msn='$user_msn', user_yahoo='$user_yahoo', user_web='$user_web', user_theme='$user_theme', user_offset='$user_offset', ".$set_avatar."user_sig='$user_sig' WHERE user_id='$user_id'"); | и ее заменяем на: --- Код: $result = dbquery("UPDATE ".$db_prefix."users SET user_name='$user_name',user_mlevel='$mlevel',".$newpass."user_email='".$_POST['user_email']."', user_hide_email='$user_hide_email', user_location='$user_location', user_birthdate='$user_birthdate', user_aim='$user_aim', user_icq='$user_icq', user_msn='$user_msn', user_yahoo='$user_yahoo', user_web='$user_web', user_theme='$user_theme', user_offset='$user_offset', ".$set_avatar."user_sig='$user_sig' WHERE user_id='$user_id'"); | закрываем этот файл. октрываем forum\viewthread.php находим строчку: --- Код: <a href='../profile.php?lookup=".$data['user_id']."'>".$data['user_name']."</a><br> | и заменяем на: --- Код: <a href='../profile.php?lookup=".$data['user_id']."'>".$data['user_name']."</a><br>"; | находим строчку: Код: <span class='alt'>".($is_mod ? $locale['userf1'] : getuserlevel($data['user_level']))."</span>\n"; | и заменяем на: --- Код: if (($data['user_level'] >= "102") && ($data['user_mlevel']=="")){ echo "<span class='alt'>".getuserlevel($data['user_level'])."</span>\n"; } elseif ($data['user_mlevel']!="none"){ echo "<span class='alt'>".$data['user_mlevel']."</span>\n"; } else { $query = dbquery("SELECT * FROM ".$db_prefix."forum_nmember"); while ($data2 = dbarray($query)){ if ($data['user_posts'] < $data2['forum_mpost']){ echo "<span class='alt'>".$data2['forum_mlevel']."</span>\n"; break; } } } | закрываем этот файл. открываете css файл вашей темы и в конце него добаляете: Код: select.font { border: 1px solid #e1e1e1; color : #555; background-color : #fff; font: 11px Verdana; } | теперь в админке по адресу http://localhost/fusion/administration/members.php выбираем нужно пользователя у него появиться новое поле "Уровень пользователя:" здесь вы можете сделать ему личный уровень(прозвище) если вы убирете личное прозвище, то у него будет присваиваться уровень (прозвище) которое находится по адресу http://localhost/fusion/administration/forums.php по этому адресу вы сами забиваете сколько вам нужно прозвищь и уровни их определения. Потом идем на форум и смотрим адрес viewthread.php у пользователя под именем будет уровень(прозвище). Вот и все пользуйтесь на здоровье.
---------- Far Far Away У каждого в голове свои тараканы... |
| Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 09:04 29-09-2006 | Исправлено: Paha_W, 03:30 10-10-2006 |
|