Witam, wiem, że był już taki temat, a ja nie jest on zupełnie dopracowany i nie chcąc go odświeżać, zakłam nowy temat z dokładniejszym rozwiązaniem problemu. Mam nadzieję, że administracja rozumie :)
____________________________________________
Ale do rzeczy. Ten poradnik pomoże nam dodać nowy level użytkowika, np. Redaktor. Do edycji będą nam potrzebne następujące pliki:
maincore.php
locale/Polish/global.php
locale/Polish/admin/colors.php
administration/administrators.php
administration/colors.php
infusions/eps/eps_setting.php
infusions/cautions/cautions.php
administration/administrators.php
locale/Polish/admin/admins.php
Zaczynajmy :)
maincore.php
Linie ~530-532:
if ($userlevel==101) { return $locale['user1']; }
elseif ($userlevel==102) { return $locale['user2']; }
elseif ($userlevel==103) { return $locale['user3']; }
Zamieniamy na :
if ($userlevel==101) { return $locale['user1']; }
elseif ($userlevel==102) { return $locale['user2']; }
elseif ($userlevel==103) { return $locale['user3']; }
elseif ($userlevel==104) { return $locale['user4']; }
Linie ~546-548:
if (iSUPERADMIN && ($group == "0" || $group == "101" || $group == "102" || $group == "103")) { return true; }
elseif (iADMIN && ($group == "0" || $group == "101" || $group == "102")) { return true; }
elseif (iMEMBER && ($group == "0" || $group == "101")) { return true; }
Zamieniamy na:
if (iSUPERADMIN && ($group == "0" || $group == "101" || $group == "102" || $group == "103" || $group == "104")) { return true; }
elseif (iADMIN && ($group == "0" || $group == "101" || $group == "102" || $group == "103")) { return true; }
elseif (iADMIN && ($group == "0" || $group == "101" || $group == "102")) { return true; }
elseif (iMEMBER && ($group == "0" || $group == "101")) { return true; }
Linie ~561-564:
array("0", $locale['user0']),
array("101", $locale['user1']),
array("102", $locale['user2']),
array("103", $locale['user3'])
Zamieniamy na:
array("0", $locale['user0']),
array("101", $locale['user1']),
array("102", $locale['user2']),
array("103", $locale['user3']),
array("104", $locale['user4'])
Linie ~576-579:
if ($group == "0") { return $locale['user0']; }
elseif ($group == "101") { return $locale['user1']; }
elseif ($group == "102") { return $locale['user2']; }
elseif ($group == "103") { return $locale['user3'];
Zamieniamy na:
if ($group == "0") { return $locale['user0']; }
elseif ($group == "101") { return $locale['user1']; }
elseif ($group == "102") { return $locale['user2']; }
elseif ($group == "103") { return $locale['user3']; }
elseif ($group == "104") { return $locale['user4'];
Linie ~592-594:
if (iSUPERADMIN) { $res = "($field='0' OR $field='101' OR $field='102' OR $field='103'";
} elseif (iADMIN) { $res = "($field='0' OR $field='101' OR $field='102'";
} elseif (iMEMBER) { $res = "($field='0' OR $field='101'";
Zamieniamy:
if (iSUPERADMIN) { $res = "($field='0' OR $field='101' OR $field='102' OR $field='103' OR $field='104'";
} elseif (iADMIN) { $res = "($field='0' OR $field='101' OR $field='102' OR $field='103'";
} elseif (iADMIN) { $res = "($field='0' OR $field='101' OR $field='102'";
} elseif (iMEMBER) { $res = "($field='0' OR $field='101'";
Linie ~717-720:
define("iGUEST",$userdata['user_level'] == 0 ? 1 : 0);
define("iMEMBER", $userdata['user_level'] >= 101 ? 1 : 0);
define("iADMIN", $userdata['user_level'] >= 102 ? 1 : 0);
define("iSUPERADMIN", $userdata['user_level'] == 103 ? 1 : 0);
Zamieniamy na:
define("iGUEST",$userdata['user_level'] == 0 ? 1 : 0);
define("iMEMBER", $userdata['user_level'] >= 101 ? 1 : 0);
define("iADMIN", $userdata['user_level'] >= 102 ? 1 : 0);
define("iADMIN", $userdata['user_level'] >= 103 ? 1 : 0);
define("iSUPERADMIN", $userdata['user_level'] == 104 ? 1 : 0);[/code]
Zapisujemy plik.
locale/Polish/global.php
Szukamy lini ~20-22:
$locale['user1'] = "Użytkownik";
$locale['user2'] = "Administrator";
$locale['user3'] = "Super Administrator";
Zamieniamy na:
$locale['user1'] = "Użytkownik";
$locale['user3'] = "Administrator";
$locale['user4'] = "Super Administrator";
$locale['user2'] = "Redaktor";
Zapisujemy.
locale/Polish/admin/colors.php
Linie ~7-9:
$locale['uc_005'] = "Użytkownik";
$locale['uc_006'] = "Administrator:";
$locale['uc_007'] = "Super Administrator:";
Zamieniamy na:
$locale['uc_005'] = "Użytkownik";
$locale['uc_006'] = "Administrator:";
$locale['uc_007'] = "Super Administrator:";
$locale['uc_009'] = "Redaktor:";
Zapisujemy.
administration/administrators.php
Linia ~19-21:
if (isset($_POST['add_admin'])) {
$user_id = isNum($_POST['user_id']) ? $_POST['user_id'] : "0";
$user_level = isset($_POST['make_super']) ? "103" : "102";
Zamieniamy na:
if (isset($_POST['add_admin'])) {
$user_id = isNum($_POST['user_id']) ? $_POST['user_id'] : "0";
$user_level = isset($_POST['make_super']) ? "104" : "103";
Linia ~34:
$result = dbquery("UPDATE ".$db_prefix."users SET user_level='101', user_rights='' WHERE user_id='$remove' AND user_level>='102'");
Zamieniamy na:
$result = dbquery("UPDATE ".$db_prefix."users SET user_level='101', user_rights='' WHERE user_id='$remove' AND user_level>='103'");
Linie ~49-51:
$result = dbquery("UPDATE ".$db_prefix."users SET user_rights='$user_rights' WHERE user_id='$user_id' AND user_level>='102'");
} else {
$result = dbquery("UPDATE ".$db_prefix."users SET user_rights='' WHERE user_id='$user_id' AND user_level>='102'");
Zamieniamy na:
$result = dbquery("UPDATE ".$db_prefix."users SET user_rights='$user_rights' WHERE user_id='$user_id' AND user_level>='103'");
} else {
$result = dbquery("UPDATE ".$db_prefix."users SET user_rights='' WHERE user_id='$user_id' AND user_level>='103'");
Linie ~71-73:
if ($data['user_level'] == "103" && $userdata['user_id'] == "1") { $can_edit = true;
} elseif ($data['user_level'] != "103") { $can_edit = true;
} else { $can_edit = false; }
Zamieniamy na:
if ($data['user_level'] == "104" && $userdata['user_id'] == "1") { $can_edit = true;
} elseif ($data['user_level'] != "104") { $can_edit = true;
} else { $can_edit = false; }
Zapisujemy.
administration/colors.php
Linia ~11:
if (isset($_POST['level_0_c']) && isset($_POST['level_0_p']) && isset($_POST['level_101_c']) && isset($_POST['level_101_p']) && isset($_POST['level_102_c']) && isset($_POST['level_102_p']) && isset($_POST['level_103_c']) && isset($_POST['level_103_p']))
Zamieniamy na:
if (isset($_POST['level_0_c']) && isset($_POST['level_0_p']) && isset($_POST['level_101_c']) && isset($_POST['level_101_p']) && isset($_POST['level_102_c']) && isset($_POST['level_102_p']) && isset($_POST['level_103_c']) && isset($_POST['level_103_p']) && isset($_POST['level_104_c']) && isset($_POST['level_104_p']))
Linia ~13-21:
$result = dbquery("UPDATE ".$db_prefix."colors SET user_color='".addslash($_POST['level_0_c'])."', user_prefix='".addslash($_POST['level_0_p'])."' WHERE user_level='0'");
$result = dbquery("UPDATE ".$db_prefix."colors SET user_color='".addslash($_POST['level_101_c'])."', user_prefix='".addslash($_POST['level_101_p'])."' WHERE user_level='101'");
$result = dbquery("UPDATE ".$db_prefix."colors SET user_color='".addslash($_POST['level_102_c'])."', user_prefix='".addslash($_POST['level_102_p'])."' WHERE user_level='102'");
$result = dbquery("UPDATE ".$db_prefix."colors SET user_color='".addslash($_POST['level_103_c'])."', user_prefix='".addslash($_POST['level_103_p'])."' WHERE user_level='103'");
$result = dbquery("UPDATE ".$db_prefix."users SET user_color='".addslash($_POST['level_0_c'])."', user_prefix='".addslash($_POST['level_0_p'])."' WHERE user_level='0'");
$result = dbquery("UPDATE ".$db_prefix."users SET user_color='".addslash($_POST['level_101_c'])."', user_prefix='".addslash($_POST['level_101_p'])."' WHERE user_level='101'");
$result = dbquery("UPDATE ".$db_prefix."users SET user_color='".addslash($_POST['level_102_c'])."', user_prefix='".addslash($_POST['level_102_p'])."' WHERE user_level='102'");
$result = dbquery("UPDATE ".$db_prefix."users SET user_color='".addslash($_POST['level_103_c'])."', user_prefix='".addslash($_POST['level_103_p'])."' WHERE user_level='103'");
Zamieniamy na:
$result = dbquery("UPDATE ".$db_prefix."colors SET user_color='".addslash($_POST['level_0_c'])."', user_prefix='".addslash($_POST['level_0_p'])."' WHERE user_level='0'");
$result = dbquery("UPDATE ".$db_prefix."colors SET user_color='".addslash($_POST['level_101_c'])."', user_prefix='".addslash($_POST['level_101_p'])."' WHERE user_level='101'");
$result = dbquery("UPDATE ".$db_prefix."colors SET user_color='".addslash($_POST['level_102_c'])."', user_prefix='".addslash($_POST['level_102_p'])."' WHERE user_level='102'");
$result = dbquery("UPDATE ".$db_prefix."colors SET user_color='".addslash($_POST['level_103_c'])."', user_prefix='".addslash($_POST['level_103_p'])."' WHERE user_level='103'");
$result = dbquery("UPDATE ".$db_prefix."colors SET user_color='".addslash($_POST['level_104_c'])."', user_prefix='".addslash($_POST['level_104_p'])."' WHERE user_level='104'");
$result = dbquery("UPDATE ".$db_prefix."users SET user_color='".addslash($_POST['level_0_c'])."', user_prefix='".addslash($_POST['level_0_p'])."' WHERE user_level='0'");
$result = dbquery("UPDATE ".$db_prefix."users SET user_color='".addslash($_POST['level_101_c'])."', user_prefix='".addslash($_POST['level_101_p'])."' WHERE user_level='101'");
$result = dbquery("UPDATE ".$db_prefix."users SET user_color='".addslash($_POST['level_102_c'])."', user_prefix='".addslash($_POST['level_102_p'])."' WHERE user_level='102'");
$result = dbquery("UPDATE ".$db_prefix."users SET user_color='".addslash($_POST['level_103_c'])."', user_prefix='".addslash($_POST['level_103_p'])."' WHERE user_level='103'");
$result = dbquery("UPDATE ".$db_prefix."users SET user_color='".addslash($_POST['level_104_c'])."', user_prefix='".addslash($_POST['level_104_p'])."' WHERE user_level='104'");
Linie ~27-30:
$level_0 = dbarray(dbquery("SELECT * from ".$db_prefix."colors WHERE user_level='0'"));
$level_101 = dbarray(dbquery("SELECT * from ".$db_prefix."colors WHERE user_level='101'"));
$level_102 = dbarray(dbquery("SELECT * from ".$db_prefix."colors WHERE user_level='102'"));
$level_103 = dbarray(dbquery("SELECT * from ".$db_prefix."colors WHERE user_level='103'"));
zamieniamy na:
$level_0 = dbarray(dbquery("SELECT * from ".$db_prefix."colors WHERE user_level='0'"));
$level_101 = dbarray(dbquery("SELECT * from ".$db_prefix."colors WHERE user_level='101'"));
$level_102 = dbarray(dbquery("SELECT * from ".$db_prefix."colors WHERE user_level='102'"));
$level_103 = dbarray(dbquery("SELECT * from ".$db_prefix."colors WHERE user_level='103'"));
$level_104 = dbarray(dbquery("SELECT * from ".$db_prefix."colors WHERE user_level='104'"));
Linia ~56-61:
<tr><td class='tbl2'>".$locale['uc_007']."</td></tr>
<tr><td>
<table cellpadding='0' cellspacing='0' border='0' align='center'>
<tr><td class='tbl1'>".$locale['uc_003']." <input type='text' name='level_103_c' value='".$level_103['user_color']."' class='textbox' maxlength='6' style='width:50px;'></td>
<td class='tbl1'>".$locale['uc_004']." <input type='text' name='level_103_p' value='".$level_103['user_prefix']."' class='textbox' maxlength='3' style='width:30px;'></td></tr></table>
</td></tr>
Poniżej dodajemy:
<tr><td class='tbl2'>".$locale['uc_009']."</td></tr>
<tr><td>
<table cellpadding='0' cellspacing='0' border='0' align='center'>
<tr><td class='tbl1'>".$locale['uc_003']." <input type='text' name='level_104_c' value='".$level_104['user_color']."' class='textbox' maxlength='6' style='width:50px;'></td>
<td class='tbl1'>".$locale['uc_004']." <input type='text' name='level_104_p' value='".$level_104['user_prefix']."' class='textbox' maxlength='3' style='width:30px;'></td></tr></table>
</td></tr>
Zapisujemy.
Wchodzimy w dodatkowe strony w tytule wpisujemy byle co, a w treści dajemy to:
<?php
$zapytanie = dbquery("INSERT INTO ".$db_prefix."colors VALUES ('5', '104', '000000', '$')");
if($zapytanie){
echo"Operacja wykonana prawidłowo!";
}else{
echo"Błąd";
}
?>
Dajemy podgląd, nie zapisujemy!
infusions/eps/eps_settings.php
Linie ~30-35:
if ($userdata['user_level'] == '103')
{ $levels = array(
0 => array($locale['user3'], "103"),
1 => array($locale['user2'], "102"),
2 => array($locale['user1'], "101")
);
Zamieniamy na:
if ($userdata['user_level'] == '104')
{ $levels = array(
0 => array($locale['user4'], "104"),
1 => array($locale['user3'], "103"),
2 => array($locale['user2'], "102"),
3 => array($locale['user1'], "101")
);
Linie ~39-40:
1 => array($locale['user2'], "102"),
2 => array($locale['user1'], "101")
Zamieniamy na:
1 => array($locale['user3'], "103"),
2 => array($locale['user2'], "102"),
3 => array($locale['user1'], "101")
Zapisujemy.
infusions/cautions/cautions.php
Linie ~31-36:
if ($userdata['user_level'] == '103')
{ $levels = array(
0 => array($locale['user3'], "103"),
1 => array($locale['user2'], "102"),
2 => array($locale['user1'], "101")
);
Zamieniamy na:
if ($userdata['user_level'] == '104')
{ $levels = array(
0 => array($locale['user4'], "104"),
1 => array($locale['user3'], "103"),
2 => array($locale['user2'], "102"),
3 => array($locale['user1'], "101")
);
Linie ~40-41:
1 => array($locale['user2'], "102"),
2 => array($locale['user1'], "101")
Zamieniamy na:
1 => array($locale['user3'], "103"),
2 => array($locale['user2'], "102")
3 => array($locale['user1'], "101")
administration/administrators.php
Linie ~19-30:
if (isset($_POST['add_admin'])) {
$user_id = isNum($_POST['user_id']) ? $_POST['user_id'] : "0";
$user_level = isset($_POST['make_super']) ? "103" : "102";
if (isset($_POST['all_rights']) || isset($_POST['make_super'])) {
$result = dbquery("UPDATE ".$db_prefix."users SET user_level='$user_level', user_rights='A.AC.AD.B.BP.C.CA.CO.CP.CY.DB.DC.D.EP.EN.FQ.FR.F.FU.IM.I.IP.J.M.N.NC.OP.P.PH.PI.PO.RG.RS.S.SL.S1.S2.S3.S4.S5.S6.S7.SU.UG.U.W.WC.WK' WHERE user_id='$user_id'");
} else {
$result = dbquery("UPDATE ".$db_prefix."users SET user_level='$user_level' WHERE user_id='$user_id'");
}
$d = dbarray(dbquery("SELECT * from ".$db_prefix."colors WHERE user_level='".$user_level."'"));
$result = dbquery("UPDATE ".$db_prefix."users SET user_color='".$d['user_color']."', user_prefix='".$d['user_prefix']."' WHERE user_id='$user_id'");
redirect(FUSION_SELF.$aidlink);
}
Pod tym dodajemy to:
if (isset($_POST['add_redaktor'])) {
$user_id = isNum($_POST['user_id']) ? $_POST['user_id'] : "0";
$user_level = isset($_POST['make_super']) ? "103" : "104";
if (isset($_POST['all_rights']) || isset($_POST['make_super'])) {
$result = dbquery("UPDATE ".$db_prefix."users SET user_level='$user_level', user_rights='A.AC.AD.B.BP.C.CA.CO.CP.CY.DB.DC.D.EP.EN.FQ.FR.F.FU.IM.I.IP.J.M.N.NC.OP.P.PH.PI.PO.RG.RS.S.SL.S1.S2.S3.S4.S5.S6.S7.SU.UG.U.W.WC.WK' WHERE user_id='$user_id'");
} else {
$result = dbquery("UPDATE ".$db_prefix."users SET user_level='$user_level' WHERE user_id='$user_id'");
}
$d = dbarray(dbquery("SELECT * from ".$db_prefix."colors WHERE user_level='".$user_level."'"));
$result = dbquery("UPDATE ".$db_prefix."users SET user_color='".$d['user_color']."', user_prefix='".$d['user_prefix']."' WHERE user_id='$user_id'");
redirect(FUSION_SELF.$aidlink);
}
Linie ~94-108 po edycji:
$result = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_level<'102' ORDER BY user_name");
if (dbrows($result)) {
echo "<tr>
<td align='center' colspan='3' class='tbl1'>
<form name='adminform' method='post' action='".FUSION_SELF.$aidlink."'>
<select name='user_id' class='textbox'>\n";
while ($data = dbarray($result)) {
echo "<option value='".$data['user_id']."'>".$data['user_name']."</option>\n";
}
echo "</select>
<input type='submit' name='add_admin' value='".$locale['410']."' class='button'><br>
<input type='checkbox' name='all_rights' value='1'> ".$locale['411'];
if ($userdata['user_id'] == "1") echo "<br>\n<input type='checkbox' name='make_super' value='1'> ".$locale['412'];
echo "\n</form>\n</td>\n</tr>\n";
}
Pod tym dodajemy ten fragment:
$result = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_level<'102' ORDER BY user_name");
if (dbrows($result)) {
echo "<tr>
<td align='center' colspan='3' class='tbl1'>
<form name='adminform' method='post' action='".FUSION_SELF.$aidlink."'>
<select name='user_id' class='textbox'>\n";
while ($data = dbarray($result)) {
echo "<option value='".$data['user_id']."'>".$data['user_name']."</option>\n";
}
echo "</select>
<input type='submit' name='add_redaktor' value='".$locale['414']."' class='button'><br>
<input type='checkbox' name='all_rights' value='1'> ".$locale['411'];
if ($userdata['user_id'] == "1") echo "<br>\n<input type='checkbox' name='make_super' value='1'> ".$locale['412'];
echo "\n</form>\n</td>\n</tr>\n";
}
Zapisujemy.
locale/Polish/admin/admins.php
Szukamy tego:
$locale['410'] = "Dodaj Admina";
i pod tym dodajemy to:
$locale['414'] = "Dodaj Redaktora";
Zapisujemy.
Zapisujemy i to by było na tyle z plików podstawowych. Gdyby ktoś miał jeszcze inne pliki to musi sam pozmieniać. Jeśli jest jakiś błąd proszę to zgłosić spróbuję jak najszybciej go naprawić.
Mam nadzieję, że komuśto się przyda. Pracuje jeszcze nad możliwością dodawania nowego levelu userowi z poziomu PA. Na razie jest to tylko możliwe przez baze danych, tabela ep_users.
______________________________________________________
Zakaz kopiowania i rozpowszechniania poradnika bez zgody autora.
Przeniosłem - Rafik89
|