Weteran
Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
Modyfikacja pozwalająca ustalać widoczność konkretnych plików w downloadzie dla grup.
Wykonana w oparciu o pliki z wersji 7.01.04.
Temat na bartek124.net DEV: http://dev.bartek...hread_id=2
Na początku wykonujemy zapytanie, wklejając poniższy kod do Dodatkowych Stron:
GeSHi: PHP <?php $result = dbquery("ALTER TABLE ".DB_DOWNLOADS." ADD COLUMN download_access TINYINT(3) UNSIGNED NOT NULL DEFAULT '0'"); ?>
Zinterpretowano w sekund: 0.050, wykorzystano GeSHi 1.0.8.10
I klikamy przycisk Podgląd. Nie zapisujemy strony!
Teraz edytujemy plik downloads.php, modyfikując linię 26, zamieniając kod:
GeSHi: PHP if ($data = dbarray(dbquery("SELECT download_url, download_file, download_cat FROM ".DB_DOWNLOADS." WHERE download_id='".$_GET['download_id']."'"))) {
Zinterpretowano w sekund: 0.033, wykorzystano GeSHi 1.0.8.10
na:
GeSHi: PHP if ($data = dbarray(dbquery("SELECT download_url, download_file, download_cat, download_access FROM ".DB_DOWNLOADS." WHERE download_id='".$_GET['download_id']."'"))) {
Zinterpretowano w sekund: 0.039, wykorzystano GeSHi 1.0.8.10
Linię 28
GeSHi: PHP if (checkgroup($cdata['download_cat_access'])) {
Zinterpretowano w sekund: 0.037, wykorzystano GeSHi 1.0.8.10
zamieniamy na
GeSHi: PHP if (checkgroup($cdata['download_cat_access']) && checkgroup($data['download_access'])) {
Zinterpretowano w sekund: 0.040, wykorzystano GeSHi 1.0.8.10
Następnie linia 58, zamieniamy:
GeSHi: PHP $num = dbcount("(download_cat)", DB_DOWNLOADS, "download_cat='".$data['download_cat_id']."'");
Zinterpretowano w sekund: 0.039, wykorzystano GeSHi 1.0.8.10
na
GeSHi: PHP $num = dbcount("(download_cat)", DB_DOWNLOADS, groupaccess('download_access')." AND download_cat='".$data['download_cat_id']."'");
Zinterpretowano w sekund: 0.040, wykorzystano GeSHi 1.0.8.10
Linia 80, fragment:
GeSHi: PHP $rows = dbcount("(download_id)", DB_DOWNLOADS, "download_cat='".$_GET['cat_id']."'");
Zinterpretowano w sekund: 0.040, wykorzystano GeSHi 1.0.8.10
zamieniamy na:
GeSHi: PHP $rows = dbcount("(download_id)", DB_DOWNLOADS, groupaccess('download_access')." AND download_cat='".$_GET['cat_id']."'");
Zinterpretowano w sekund: 0.053, wykorzystano GeSHi 1.0.8.10
Ostatnią modyfikacją w tym pliku będzie podmiana linii 83:
GeSHi: PHP $result = dbquery("SELECT download_id, download_title, download_description, download_license, download_os, download_version, download_filesize, download_datestamp, download_count FROM ".DB_DOWNLOADS." WHERE download_cat='".$_GET['cat_id']."' ORDER BY ".$cdata['download_cat_sorting']." LIMIT ".$_GET['rowstart'].",".$settings['downloads_per_page']);
Zinterpretowano w sekund: 0.043, wykorzystano GeSHi 1.0.8.10
na:
GeSHi: PHP $result = dbquery("SELECT download_id, download_title, download_description, download_license, download_os, download_version, download_filesize, download_datestamp, download_count FROM ".DB_DOWNLOADS." WHERE ".groupaccess('download_access')." AND download_cat='".$_GET['cat_id']."' ORDER BY ".$cdata['download_cat_sorting']." LIMIT ".$_GET['rowstart'].",".$settings['downloads_per_page']);
Zinterpretowano w sekund: 0.041, wykorzystano GeSHi 1.0.8.10
W pliku administration/downloads.php, pod linią 59:
GeSHi: PHP $download_filesize = stripinput($_POST['download_filesize']);
Zinterpretowano w sekund: 0.043, wykorzystano GeSHi 1.0.8.10
dodajemy:
GeSHi: PHP $download_access = isnum($_POST['download_access']) ? $_POST['download_access'] : "0";
Zinterpretowano w sekund: 0.041, wykorzystano GeSHi 1.0.8.10
Linię 115:
GeSHi: PHP $result = dbquery("UPDATE ".DB_DOWNLOADS." SET download_title='$download_title', download_description='$download_description', download_url='$download_url', download_file='$download_file', download_cat='$download_cat', download_license='$download_license', download_os='$download_os', download_version='$download_version', download_filesize='$download_filesize'".$download_datestamp." WHERE download_id='".$_GET['download_id']."'");
Zinterpretowano w sekund: 0.042, wykorzystano GeSHi 1.0.8.10
zamieniamy na:
GeSHi: PHP $result = dbquery("UPDATE ".DB_DOWNLOADS." SET download_title='$download_title', download_description='$download_description', download_url='$download_url', download_file='$download_file', download_cat='$download_cat', download_license='$download_license', download_os='$download_os', download_version='$download_version', download_filesize='$download_filesize', download_access='$download_access'".$download_datestamp." WHERE download_id='".$_GET['download_id']."'");
Zinterpretowano w sekund: 0.037, wykorzystano GeSHi 1.0.8.10
A linię 118:
GeSHi: PHP $result = dbquery ("INSERT INTO ".DB_DOWNLOADS ." (download_title, download_description, download_url, download_file, download_cat, download_license, download_os, download_version, download_filesize, download_datestamp, download_count) VALUES ('$download_title', '$download_description', '$download_url', '$download_file', '$download_cat', '$download_license', '$download_os', '$download_version', '$download_filesize', '".time()."', '0')");
Zinterpretowano w sekund: 0.042, wykorzystano GeSHi 1.0.8.10
na:
GeSHi: PHP $result = dbquery ("INSERT INTO ".DB_DOWNLOADS ." (download_title, download_description, download_url, download_file, download_cat, download_license, download_os, download_version, download_filesize, download_datestamp, download_count, download_access) VALUES ('$download_title', '$download_description', '$download_url', '$download_file', '$download_cat', '$download_license', '$download_os', '$download_version', '$download_filesize', '".time()."', '0', '$download_access')");
Zinterpretowano w sekund: 0.041, wykorzystano GeSHi 1.0.8.10
Linia 126, poniższy fragment:
GeSHi: PHP $result = dbquery("SELECT download_title, download_description, download_url, download_file, download_cat, download_license, download_os, download_version, download_filesize FROM ".DB_DOWNLOADS." WHERE download_id='".$_GET['download_id']."'");
Zinterpretowano w sekund: 0.042, wykorzystano GeSHi 1.0.8.10
zamieniamy na:
GeSHi: PHP $result = dbquery("SELECT download_title, download_description, download_url, download_file, download_cat, download_license, download_os, download_version, download_filesize, download_access FROM ".DB_DOWNLOADS." WHERE download_id='".$_GET['download_id']."'");
Zinterpretowano w sekund: 0.040, wykorzystano GeSHi 1.0.8.10
Pod linią 136:
GeSHi: PHP $download_filesize = $data['download_filesize'];
Zinterpretowano w sekund: 0.039, wykorzystano GeSHi 1.0.8.10
dodajemy:
GeSHi: PHP $download_access = $data['download_access'];
Zinterpretowano w sekund: 0.039, wykorzystano GeSHi 1.0.8.10
zaś pod linią 151:
GeSHi: PHP $download_filesize = "";
Zinterpretowano w sekund: 0.039, wykorzystano GeSHi 1.0.8.10
dodajemy:
GeSHi: PHP $download_access = "";
Zinterpretowano w sekund: 0.040, wykorzystano GeSHi 1.0.8.10
Następnie pod kodem zawartym między liniami 157-164:
GeSHi: PHP $editlist = ""; $sel = ""; $result2 = dbquery("SELECT download_cat_id, download_cat_name FROM ".DB_DOWNLOAD_CATS." ORDER BY download_cat_name"); if (dbrows($result2) != 0) { while ($data2 = dbarray($result2)) { if (isset($_GET['action']) && $_GET['action'] == "edit") { $sel = ($data['download_cat'] == $data2['download_cat_id'] ? " selected='selected'" : ""); } $editlist .= "<option value='".$data2['download_cat_id']."'$sel>".$data2['download_cat_name']."</option>\n"; } }
Zinterpretowano w sekund: 0.045, wykorzystano GeSHi 1.0.8.10
dodajemy:
GeSHi: PHP $user_groups = getusergroups(); $access_opts = ""; $sel = ""; while(list($key, $user_group) = each($user_groups)){ $sel = ($download_access == $user_group['0'] ? " selected='selected'" : ""); $access_opts .= "<option value='".$user_group['0']."'$sel>".$user_group['1']."</option>\n"; }
Zinterpretowano w sekund: 0.037, wykorzystano GeSHi 1.0.8.10
Pod liniami 208-210:
GeSHi: PHP echo "<td width='80' class='tbl'>".$locale['427']."</td>\n"; echo "<td class='tbl'><input type='text' name='download_filesize' id='download_filesize' value='".$download_filesize."' class='textbox' style='width:150px;' /></td>\n"; echo "</tr>\n<tr>\n";
Zinterpretowano w sekund: 0.047, wykorzystano GeSHi 1.0.8.10
dodajemy:
GeSHi: PHP echo "<td width='80' class='tbl'>".$locale['470']."</td>\n"; echo "<td class='tbl'><select name='download_access' class='textbox' style='width:150px;'>\n".$access_opts."</select></td>\n"; echo "</tr>\n<tr>\n";
Zinterpretowano w sekund: 0.042, wykorzystano GeSHi 1.0.8.10
Linię 224:
GeSHi: PHP $result = dbquery("SELECT download_cat_id, download_cat_name FROM ".DB_DOWNLOAD_CATS." ORDER BY download_cat_name");
Zinterpretowano w sekund: 0.042, wykorzystano GeSHi 1.0.8.10
zamieniamy na:
GeSHi: PHP $result = dbquery("SELECT download_cat_id, download_cat_name, download_cat_access FROM ".DB_DOWNLOAD_CATS." ORDER BY download_cat_name");
Zinterpretowano w sekund: 0.043, wykorzystano GeSHi 1.0.8.10
a linię 239:
GeSHi: PHP $result2 = dbquery("SELECT download_id, download_title, download_url, download_file FROM ".DB_DOWNLOADS." WHERE download_cat='".$data['download_cat_id']."' ORDER BY download_title");
Zinterpretowano w sekund: 0.048, wykorzystano GeSHi 1.0.8.10
na:
GeSHi: PHP $result2 = dbquery("SELECT download_id, download_title, download_url, download_file, download_access FROM ".DB_DOWNLOADS." WHERE download_cat='".$data['download_cat_id']."' ORDER BY download_title");
Zinterpretowano w sekund: 0.041, wykorzystano GeSHi 1.0.8.10
Linia 241, szukamy:
GeSHi: PHP echo "<tr>\n<td colspan='2'>\n";
Zinterpretowano w sekund: 0.041, wykorzystano GeSHi 1.0.8.10
i zamieniamy na:
GeSHi: PHP echo "<tr>\n<td colspan='3'>\n";
Zinterpretowano w sekund: 0.042, wykorzystano GeSHi 1.0.8.10
Ostatnią już modyfikacją w tym pliku będzie dodanie pod linią 252:
GeSHi: PHP echo "<tr>\n<td class='tbl'><a href='".$download_url."' target='_blank'>".$data2['download_title']."</a></td>\n";
Zinterpretowano w sekund: 0.041, wykorzystano GeSHi 1.0.8.10
następującego kodu:
GeSHi: PHP echo "<td align='right' width='100' class='tbl'>"; if ($data2['download_access'] > $data['download_cat_access']) { echo getgroupname($data2['download_access']); } else { echo getgroupname($data['download_cat_access']); } } else if ($data['download_cat_access'] > 0) { echo getgroupname($data['download_cat_access']); } else { echo getgroupname($data2['download_access']); } echo "</td>\n";
Zinterpretowano w sekund: 0.044, wykorzystano GeSHi 1.0.8.10
Ostatnim już działaniem będzie dodanie nowego wpisu do locali. W przypadku wersji utf-8, edytujemy plik locale/Polish-utf-8/admin/downloads.php i zaraz przed znacznikiem ?> dodajemy:
GeSHi: PHP // Download access mod by bartek124 (www.bartek124.net) $locale['470'] = "Dostęp dla:";
Zinterpretowano w sekund: 0.045, wykorzystano GeSHi 1.0.8.10
Jeśli korzystasz z wersji iso-8859-2, edytuj plik locale/Polish/admin/downloads.php i także zaraz przed znacznikiem ?> dodaj:
GeSHi: PHP // Download access mod by bartek124 (www.bartek124.net) $locale['470'] = "Dostêp dla:";
Zinterpretowano w sekund: 0.050, wykorzystano GeSHi 1.0.8.10
Widoczność plików jest sprawdzana drugorzędnie. Co to oznacza w praktyce? Jeśli kategoria downloadu widoczna jest dla konkretnej grupy, a plik zostanie zapisany jako widoczny dla wszystkich (gości), pod uwagę będzie brana widoczność kategorii, czyli pliki zostaną wyświetlone tylko tej konkretnej grupie.
W załączniku gotowe pliki do podmiany, pochodzące z wersji 7.01.04!
bartek124 dodał/a następującą plik:
Edytowane przez bartek124 dnia 22.01.2011 15:03:16
Nie pomagam na komunikatorach oraz PW!
|