ForumCała strona

Nawigacja

Aktualnie online

Gości online: 7

Użytkowników online: 0

Łącznie użytkowników: 25,393
Najnowszy użytkownik: Assassin

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

JazOOn
06.12.2024 23:45:46
Amen

Zbigniew@
17.11.2024 11:33:24
Nie ten grzeszy kto pije, ale ten, kto się nie upije.

JazOOn
16.11.2024 20:46:18
tja

Zbigniew@
15.11.2024 18:58:17
Kto pije, ten nie bije.

JazOOn
31.10.2024 20:49:47
Kto pije?

Pobierz nową wersję
Pobierz podręcznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Zobacz temat

 Drukuj temat
Widoczność plików w downloadzie dla określonych grup
bartek124
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

images40.fotosik.pl/534/97c9ea1e2ee89ab3med.jpg

Na początku wykonujemy zapytanie, wklejając poniższy kod do Dodatkowych Stron:
Pobierz kod źródłowy  GeSHi: PHP
  1. <?php
  2. $result = dbquery("ALTER TABLE ".DB_DOWNLOADS." ADD COLUMN download_access TINYINT(3) UNSIGNED NOT NULL DEFAULT '0'");
  3. ?>
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:
Pobierz kod źródłowy  GeSHi: PHP
  1. if ($data = dbarray(dbquery("SELECT download_url, download_file, download_cat FROM ".DB_DOWNLOADS." WHERE download_id='".$_GET&#91;'download_id'&#93;."'"))) {
Zinterpretowano w sekund: 0.033, wykorzystano GeSHi 1.0.8.10


na:
Pobierz kod źródłowy  GeSHi: PHP
  1. if ($data = dbarray(dbquery("SELECT download_url, download_file, download_cat, download_access FROM ".DB_DOWNLOADS." WHERE download_id='".$_GET&#91;'download_id'&#93;."'"))) {
Zinterpretowano w sekund: 0.039, wykorzystano GeSHi 1.0.8.10



Linię 28
Pobierz kod źródłowy  GeSHi: PHP
  1. if (checkgroup($cdata&#91;'download_cat_access'&#93;)) {
Zinterpretowano w sekund: 0.037, wykorzystano GeSHi 1.0.8.10


zamieniamy na
Pobierz kod źródłowy  GeSHi: PHP
  1. if (checkgroup($cdata&#91;'download_cat_access'&#93;) && checkgroup($data&#91;'download_access'&#93;)) {
Zinterpretowano w sekund: 0.040, wykorzystano GeSHi 1.0.8.10



Następnie linia 58, zamieniamy:
Pobierz kod źródłowy  GeSHi: PHP
  1. $num = dbcount("(download_cat)", DB_DOWNLOADS, "download_cat='".$data&#91;'download_cat_id'&#93;."'");
Zinterpretowano w sekund: 0.039, wykorzystano GeSHi 1.0.8.10


na
Pobierz kod źródłowy  GeSHi: PHP
  1. $num = dbcount("(download_cat)", DB_DOWNLOADS, groupaccess('download_access')." AND download_cat='".$data&#91;'download_cat_id'&#93;."'");
Zinterpretowano w sekund: 0.040, wykorzystano GeSHi 1.0.8.10



Linia 80, fragment:
Pobierz kod źródłowy  GeSHi: PHP
  1. $rows = dbcount("(download_id)", DB_DOWNLOADS, "download_cat='".$_GET&#91;'cat_id'&#93;."'");
Zinterpretowano w sekund: 0.040, wykorzystano GeSHi 1.0.8.10


zamieniamy na:
Pobierz kod źródłowy  GeSHi: PHP
  1. $rows = dbcount("(download_id)", DB_DOWNLOADS, groupaccess('download_access')." AND download_cat='".$_GET&#91;'cat_id'&#93;."'");
Zinterpretowano w sekund: 0.053, wykorzystano GeSHi 1.0.8.10


Ostatnią modyfikacją w tym pliku będzie podmiana linii 83:
Pobierz kod źródłowy  GeSHi: PHP
  1. $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&#91;'cat_id'&#93;."' ORDER BY ".$cdata&#91;'download_cat_sorting'&#93;." LIMIT ".$_GET&#91;'rowstart'&#93;.",".$settings&#91;'downloads_per_page'&#93;);
Zinterpretowano w sekund: 0.043, wykorzystano GeSHi 1.0.8.10


na:
Pobierz kod źródłowy  GeSHi: PHP
  1. $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&#91;'cat_id'&#93;."' ORDER BY ".$cdata&#91;'download_cat_sorting'&#93;." LIMIT ".$_GET&#91;'rowstart'&#93;.",".$settings&#91;'downloads_per_page'&#93;);
Zinterpretowano w sekund: 0.041, wykorzystano GeSHi 1.0.8.10




W pliku administration/downloads.php, pod linią 59:
Pobierz kod źródłowy  GeSHi: PHP
  1. $download_filesize = stripinput($_POST&#91;'download_filesize'&#93;);
Zinterpretowano w sekund: 0.043, wykorzystano GeSHi 1.0.8.10


dodajemy:
Pobierz kod źródłowy  GeSHi: PHP
  1. $download_access = isnum($_POST&#91;'download_access'&#93;) ? $_POST&#91;'download_access'&#93; : "0";
Zinterpretowano w sekund: 0.041, wykorzystano GeSHi 1.0.8.10



Linię 115:
Pobierz kod źródłowy  GeSHi: PHP
  1. $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&#91;'download_id'&#93;."'");
Zinterpretowano w sekund: 0.042, wykorzystano GeSHi 1.0.8.10


zamieniamy na:
Pobierz kod źródłowy  GeSHi: PHP
  1. $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&#91;'download_id'&#93;."'");
Zinterpretowano w sekund: 0.037, wykorzystano GeSHi 1.0.8.10



A linię 118:
Pobierz kod źródłowy  GeSHi: PHP
  1. $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:
Pobierz kod źródłowy  GeSHi: PHP
  1. $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:
Pobierz kod źródłowy  GeSHi: PHP
  1. $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&#91;'download_id'&#93;."'");
Zinterpretowano w sekund: 0.042, wykorzystano GeSHi 1.0.8.10


zamieniamy na:
Pobierz kod źródłowy  GeSHi: PHP
  1. $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&#91;'download_id'&#93;."'");
Zinterpretowano w sekund: 0.040, wykorzystano GeSHi 1.0.8.10



Pod linią 136:
Pobierz kod źródłowy  GeSHi: PHP
  1. $download_filesize = $data&#91;'download_filesize'&#93;;
Zinterpretowano w sekund: 0.039, wykorzystano GeSHi 1.0.8.10


dodajemy:
Pobierz kod źródłowy  GeSHi: PHP
  1. $download_access = $data&#91;'download_access'&#93;;
Zinterpretowano w sekund: 0.039, wykorzystano GeSHi 1.0.8.10



zaś pod linią 151:
Pobierz kod źródłowy  GeSHi: PHP
  1. $download_filesize = "";
Zinterpretowano w sekund: 0.039, wykorzystano GeSHi 1.0.8.10


dodajemy:
Pobierz kod źródłowy  GeSHi: PHP
  1. $download_access = "";
Zinterpretowano w sekund: 0.040, wykorzystano GeSHi 1.0.8.10



Następnie pod kodem zawartym między liniami 157-164:
Pobierz kod źródłowy  GeSHi: PHP
  1. $editlist = ""; $sel = "";
  2. $result2 = dbquery("SELECT download_cat_id, download_cat_name FROM ".DB_DOWNLOAD_CATS." ORDER BY download_cat_name");
  3. if (dbrows($result2) != 0) {
  4. while ($data2 = dbarray($result2)) {
  5. if (isset($_GET&#91;'action'&#93;) && $_GET&#91;'action'&#93; == "edit") { $sel = ($data&#91;'download_cat'&#93; == $data2&#91;'download_cat_id'&#93; ? " selected='selected'" : ""); }
  6. $editlist .= "<option value='".$data2&#91;'download_cat_id'&#93;."'$sel>".$data2&#91;'download_cat_name'&#93;."</option>\n";
  7. }
  8. }
Zinterpretowano w sekund: 0.045, wykorzystano GeSHi 1.0.8.10


dodajemy:
Pobierz kod źródłowy  GeSHi: PHP
  1.  
  2. $user_groups = getusergroups(); $access_opts = ""; $sel = "";
  3. while(list($key, $user_group) = each($user_groups)){
  4. $sel = ($download_access == $user_group&#91;'0'&#93; ? " selected='selected'" : "");
  5. $access_opts .= "<option value='".$user_group&#91;'0'&#93;."'$sel>".$user_group&#91;'1'&#93;."</option>\n";
  6. }
Zinterpretowano w sekund: 0.037, wykorzystano GeSHi 1.0.8.10



Pod liniami 208-210:
Pobierz kod źródłowy  GeSHi: PHP
  1. echo "<td width='80' class='tbl'>".$locale&#91;'427'&#93;."</td>\n";
  2. echo "<td class='tbl'><input type='text' name='download_filesize' id='download_filesize' value='".$download_filesize."' class='textbox' style='width:150px;' /></td>\n";
  3. echo "</tr>\n<tr>\n";
Zinterpretowano w sekund: 0.047, wykorzystano GeSHi 1.0.8.10


dodajemy:
Pobierz kod źródłowy  GeSHi: PHP
  1. echo "<td width='80' class='tbl'>".$locale&#91;'470'&#93;."</td>\n";
  2. echo "<td class='tbl'><select name='download_access' class='textbox' style='width:150px;'>\n".$access_opts."</select></td>\n";
  3. echo "</tr>\n<tr>\n";
Zinterpretowano w sekund: 0.042, wykorzystano GeSHi 1.0.8.10



Linię 224:
Pobierz kod źródłowy  GeSHi: PHP
  1. $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:
Pobierz kod źródłowy  GeSHi: PHP
  1. $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:
Pobierz kod źródłowy  GeSHi: PHP
  1. $result2 = dbquery("SELECT download_id, download_title, download_url, download_file FROM ".DB_DOWNLOADS." WHERE download_cat='".$data&#91;'download_cat_id'&#93;."' ORDER BY download_title");
Zinterpretowano w sekund: 0.048, wykorzystano GeSHi 1.0.8.10


na:
Pobierz kod źródłowy  GeSHi: PHP
  1. $result2 = dbquery("SELECT download_id, download_title, download_url, download_file, download_access FROM ".DB_DOWNLOADS." WHERE download_cat='".$data&#91;'download_cat_id'&#93;."' ORDER BY download_title");
Zinterpretowano w sekund: 0.041, wykorzystano GeSHi 1.0.8.10



Linia 241, szukamy:
Pobierz kod źródłowy  GeSHi: PHP
  1. echo "<tr>\n<td colspan='2'>\n";
Zinterpretowano w sekund: 0.041, wykorzystano GeSHi 1.0.8.10


i zamieniamy na:
Pobierz kod źródłowy  GeSHi: PHP
  1. 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:
Pobierz kod źródłowy  GeSHi: PHP
  1. echo "<tr>\n<td class='tbl'><a href='".$download_url."' target='_blank'>".$data2&#91;'download_title'&#93;."</a></td>\n";
Zinterpretowano w sekund: 0.041, wykorzystano GeSHi 1.0.8.10


następującego kodu:
Pobierz kod źródłowy  GeSHi: PHP
  1. echo "<td align='right' width='100' class='tbl'>";
  2. if (in_array($download_access, array(101, 102, 103))) {
  3. if ($data2&#91;'download_access'&#93; > $data&#91;'download_cat_access'&#93;) {
  4. echo getgroupname($data2&#91;'download_access'&#93;);
  5. } else {
  6. echo getgroupname($data&#91;'download_cat_access'&#93;);
  7. }
  8. } else if ($data&#91;'download_cat_access'&#93; > 0) {
  9. echo getgroupname($data&#91;'download_cat_access'&#93;);
  10. } else {
  11. echo getgroupname($data2&#91;'download_access'&#93;);
  12. }
  13. 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:
Pobierz kod źródłowy  GeSHi: PHP
  1. // Download access mod by bartek124 (www.bartek124.net)
  2. $locale&#91;'470'&#93; = "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:
Pobierz kod źródłowy  GeSHi: PHP
  1. // Download access mod by bartek124 (www.bartek124.net)
  2. $locale&#91;'470'&#93; = "Dost&#234;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:
download_access_70104.zip [10.61kB / 323 Pobrane]

Edytowane przez bartek124 dnia 22.01.2011 15:03:16
userbar_bartek124_net.png mw.gif Nie pomagam na komunikatorach oraz PW!
 
www.bartek124.net
Wścibski Gość
Dodany dnia 23.12.2024 02:11:26
Pan Kontekstualny

Postów: n^x
Data rejestracji: Zawsze

Polecamy hosting SferaHost.pl
IP: localhost  
Przejdź do forum:
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl