Zobacz temat
Strona 1 z 2: 12
|
MOD: kilka paneli nawigacyjnych
|
|
Wooya |
Dodany dnia 11.07.2006 07:44:00
|
Zaawansowany Postów: 1449 Pomógł: 22 Data rejestracji: 30.01.2005 15:40 |
//UWAGA! Archiwum zaktualizowane! Usunieto powazny bug :) Ponieważ dość często był poruszany temat kilku paneli nawigacyjnych na stronie, postanowiłem wziąć sprawy w swoje "rence" B) Wiem, że już takie moduły powstały, ale postanowiłem podejść do tej sprawy bardziej "systemowo" (wszystko oparte na prawie niezmienionej,standardowej tabeli site_links). Podaję na podstawie skryptów z najnowszego PHP-Fusion v6.01.3, ale akurat menu strony nie zmieniło się (o ile dobrze pamiętam) od wersji 6.00.2xx, więc z niższymi wersjami też nie powinno być problemów. 1) wchodzimy do PA > Zarządzanie Panelami > Nowy panel wklejamy kod: i robimy PODGLĄD. Jeżeli zobaczymy informację "Tabela została zmieniona", to wszystko poszło ok. 2) otwieramy plik administration/site_links.php i dokonujemy następujących zmian: + odnajdujemy linię #19: if (!isset($action)) $action = ""; i zamieniamy na: if (!isset($action)) $action = ""; if (!isset($menu_id) || !isNum($menu_id)) $menu_id = 1; + odnajdujemy linię #36: $result2 = dbquery("UPDATE ".$db_prefix."site_links SET link_order='$i' WHERE link_id='".$data['link_id']."'"); i zamieniamy na: $result2 = dbquery("UPDATE ".$db_prefix."site_links SET link_order='$i' WHERE link_id='".$data['link_id']."' AND link_menu_id='".$menu_id."'"); + odnajdujemy linie #39-54: redirect(FUSION_SELF.$aidlink); } elseif ($action == "moveup") { $data = dbarray(dbquery("SELECT * FROM ".$db_prefix."site_links WHERE link_order='$order'")); $result = dbquery("UPDATE ".$db_prefix."site_links SET link_order=link_order+1 WHERE link_id='".$data['link_id']."'"); $result = dbquery("UPDATE ".$db_prefix."site_links SET link_order=link_order-1 WHERE link_id='$link_id'"); redirect(FUSION_SELF.$aidlink); } elseif ($action == "movedown") { $data = dbarray(dbquery("SELECT * FROM ".$db_prefix."site_links WHERE link_order='$order'")); $result = dbquery("UPDATE ".$db_prefix."site_links SET link_order=link_order-1 WHERE link_id='".$data['link_id']."'"); $result = dbquery("UPDATE ".$db_prefix."site_links SET link_order=link_order+1 WHERE link_id='$link_id'"); redirect(FUSION_SELF.$aidlink); } elseif ($action == "delete") { $data = dbarray(dbquery("SELECT * FROM ".$db_prefix."site_links WHERE link_id='$link_id'")); $result = dbquery("UPDATE ".$db_prefix."site_links SET link_order=link_order-1 WHERE link_order>'".$data['link_order']."'"); $result = dbquery("DELETE FROM ".$db_prefix."site_links WHERE link_id='$link_id'"); redirect(FUSION_SELF.$aidlink."&status=del"); i zamieniamy na: redirect(FUSION_SELF.$aidlink."&menu_id=".$menu_id); } elseif ($action == "moveup") { $data = dbarray(dbquery("SELECT * FROM ".$db_prefix."site_links WHERE link_order='$order' AND link_menu_id='".$menu_id."'")); $result = dbquery("UPDATE ".$db_prefix."site_links SET link_order=link_order+1 WHERE link_id='".$data['link_id']."' AND link_menu_id='".$menu_id."'"); $result = dbquery("UPDATE ".$db_prefix."site_links SET link_order=link_order-1 WHERE link_id='$link_id' AND link_menu_id='".$menu_id."'"); redirect(FUSION_SELF.$aidlink."&menu_id=".$menu_id); } elseif ($action == "movedown") { $data = dbarray(dbquery("SELECT * FROM ".$db_prefix."site_links WHERE link_order='$order' AND link_menu_id='".$menu_id."'")); $result = dbquery("UPDATE ".$db_prefix."site_links SET link_order=link_order-1 WHERE link_id='".$data['link_id']."' AND link_menu_id='".$menu_id."'"); $result = dbquery("UPDATE ".$db_prefix."site_links SET link_order=link_order+1 WHERE link_id='$link_id' AND link_menu_id='".$menu_id."'"); redirect(FUSION_SELF.$aidlink."&menu_id=".$menu_id); } elseif ($action == "delete") { $data = dbarray(dbquery("SELECT * FROM ".$db_prefix."site_links WHERE link_id='$link_id' AND link_menu_id='".$menu_id."'")); $result = dbquery("UPDATE ".$db_prefix."site_links SET link_order=link_order-1 WHERE link_order>'".$data['link_order']."' AND link_menu_id='".$menu_id."'"); $result = dbquery("DELETE FROM ".$db_prefix."site_links WHERE link_id='$link_id' AND link_menu_id='".$menu_id."'"); redirect(FUSION_SELF.$aidlink."&status=del&menu_id='".$menu_id."'"); + odnajdujemy linie #62-70: if ($action == "edit") { $result = dbquery("UPDATE ".$db_prefix."site_links SET link_name='$link_name', link_url='$link_url', link_visibility='$link_visibility', link_position='$link_position', link_window='$link_window' WHERE link_id='$link_id'"); redirect(FUSION_SELF.$aidlink); } else { if(!$link_order) $link_order=dbresult(dbquery("SELECT MAX(link_order) FROM ".$db_prefix."site_links"),0)+1; $result = dbquery("UPDATE ".$db_prefix."site_links SET link_order=link_order+1 WHERE link_order>='$link_order'"); $result = dbquery("INSERT INTO ".$db_prefix."site_links (link_name, link_url, link_visibility, link_position, link_window, link_order) VALUES ('$link_name', '$link_url', '$link_visibility', '$link_position', '$link_window', '$link_order')"); redirect(FUSION_SELF.$aidlink); } i zamieniamy na: if ($action == "edit") { $result = dbquery("UPDATE ".$db_prefix."site_links SET link_menu_id='$menu_id', link_name='$link_name', link_url='$link_url', link_visibility='$link_visibility', link_position='$link_position', link_window='$link_window' WHERE link_id='$link_id'"); redirect(FUSION_SELF.$aidlink."&menu_id=".$menu_id); } else { if(!$link_order) $link_order=dbresult(dbquery("SELECT MAX(link_order) FROM ".$db_prefix."site_links WHERE link_menu_id='$menu_id'"),0)+1; $result = dbquery("UPDATE ".$db_prefix."site_links SET link_order=link_order+1 WHERE link_order>='$link_order' AND link_menu_id='$menu_id'"); $result = dbquery("INSERT INTO ".$db_prefix."site_links (link_menu_id, link_name, link_url, link_visibility, link_position, link_window, link_order) VALUES ('$menu_id', '$link_name', '$link_url', '$link_visibility', '$link_position', '$link_window', '$link_order')"); redirect(FUSION_SELF.$aidlink."&menu_id=".$menu_id); } + po linii #103 dodajemy kod: $menuid = "<select class='textbox' name='link_menu_id' onChange=\"location = '".FUSION_SELF.$aidlink."&menu_id=' + document.layoutform.link_menu_id.options[document.layoutform.link_menu_id.selectedIndex].value;\">"; $menuid .= "<option value='1'".($menu_id==1?" selected":"").">1</option>\n"; $menuid .= "<option value='2'".($menu_id==2?" selected":"").">2</option>\n"; $menuid .= "<option value='3'".($menu_id==3?" selected":"").">3</option>\n"; $menuid .= "<option value='4'".($menu_id==4?" selected":"").">4</option>\n"; $menuid .= "<option value='5'".($menu_id==5?" selected":"").">5</option>\n"; $menuid .= "<option value='6'".($menu_id==6?" selected":"").">6</option>\n"; $menuid .= "<option value='7'".($menu_id==7?" selected":"").">7</option>\n"; $menuid .= "<option value='8'".($menu_id==8?" selected":"").">8</option>\n"; $menuid .= "<option value='9'".($menu_id==9?" selected":"").">9</option>\n"; $menuid .= "</select>"; + po wklejeniu, ok linii #118, po kodzie: echo "<form name='layoutform' method='post' action='$formaction'> <table align='center' cellpadding='0' cellspacing='0'> wklejamy: <tr> <td class='tbl'>Menu ID:</td> <td class='tbl'>".$menuid."</td> </tr> <tr> + odnajdujemy linię ok #164: $result = dbquery("SELECT * FROM ".$db_prefix."site_links ORDER BY link_order"); i zamieniamy na: $result = dbquery("SELECT * FROM ".$db_prefix."site_links WHERE link_menu_id='".$menu_id."' ORDER BY link_order"); + odnajdujemy linie #186-207: if (dbrows($result) != 1) { $up = $data['link_order'] - 1; $down = $data['link_order'] + 1; if ($k == 1) { echo "<a href='".FUSION_SELF.$aidlink."&action=movedown&order=$down&link_id=".$data['link_id']."'><img src='".THEME."images/down.gif' alt='".$locale['441']."' title='".$locale['443']."' style='border:0px;'></a>\n"; } elseif ($k < dbrows($result)) { echo "<a href='".FUSION_SELF.$aidlink."&action=moveup&order=$up&link_id=".$data['link_id']."'><img src='".THEME."images/up.gif' alt='".$locale['440']."' title='".$locale['442']."' style='border:0px;'></a>\n"; echo "<a href='".FUSION_SELF.$aidlink."&action=movedown&order=$down&link_id=".$data['link_id']."'><img src='".THEME."images/down.gif' alt='".$locale['441']."' title='".$locale['443']."' style='border:0px;'></a>\n"; } else { echo "<a href='".FUSION_SELF.$aidlink."&action=moveup&order=$up&link_id=".$data['link_id']."'><img src='".THEME."images/up.gif' alt='".$locale['440']."' title='".$locale['442']."' style='border:0px;'></a>\n"; } } $k++; echo "</td> <td align='center' width='1%' class='tbl1' style='white-space:nowrap'><a href='".FUSION_SELF.$aidlink."&action=edit&link_id=".$data['link_id']."'>".$locale['434']."</a> - <a href='".FUSION_SELF.$aidlink."&action=delete&link_id=".$data['link_id']."'>".$locale['435']."</a></td> </tr>\n"; } } else { echo "<tr>\n<td align='center' colspan='4' class='tbl1'>".$locale['436']."</td>\n</tr>\n"; } if (dbrows($result)) echo "<tr>\n<td align='center' colspan='5' class='tbl1'>[ <a href='".FUSION_SELF.$aidlink."&action=refresh'>".$locale['444']."</a> ]</td>\n</tr>\n"; i zamieniamy na: if (dbrows($result) != 1) { $up = $data['link_order'] - 1; $down = $data['link_order'] + 1; if ($k == 1) { echo "<a href='".FUSION_SELF.$aidlink."&action=movedown&order=$down&link_id=".$data['link_id']."&menu_id=$menu_id'><img src='".THEME."images/down.gif' alt='".$locale['441']."' title='".$locale['443']."' style='border:0px;'></a>\n"; } elseif ($k < dbrows($result)) { echo "<a href='".FUSION_SELF.$aidlink."&action=moveup&order=$up&link_id=".$data['link_id']."&menu_id=$menu_id'><img src='".THEME."images/up.gif' alt='".$locale['440']."' title='".$locale['442']."' style='border:0px;'></a>\n"; echo "<a href='".FUSION_SELF.$aidlink."&action=movedown&order=$down&link_id=".$data['link_id']."&menu_id=$menu_id'><img src='".THEME."images/down.gif' alt='".$locale['441']."' title='".$locale['443']."' style='border:0px;'></a>\n"; } else { echo "<a href='".FUSION_SELF.$aidlink."&action=moveup&order=$up&link_id=".$data['link_id']."&menu_id=$menu_id'><img src='".THEME."images/up.gif' alt='".$locale['440']."' title='".$locale['442']."' style='border:0px;'></a>\n"; } } $k++; echo "</td> <td align='center' width='1%' class='tbl1' style='white-space:nowrap'><a href='".FUSION_SELF.$aidlink."&action=edit&link_id=".$data['link_id']."&menu_id=$menu_id'>".$locale['434']."</a> - <a href='".FUSION_SELF.$aidlink."&action=delete&link_id=".$data['link_id']."&menu_id=$menu_id'>".$locale['435']."</a></td> </tr>\n"; } } else { echo "<tr>\n<td align='center' colspan='4' class='tbl1'>".$locale['436']."</td>\n</tr>\n"; } if (dbrows($result)) echo "<tr>\n<td align='center' colspan='5' class='tbl1'>[ <a href='".FUSION_SELF.$aidlink."&action=refresh&menu_id=$menu_id'>".$locale['444']."</a> ]</td>\n</tr>\n"; Jedna część MODa z głowy :) 3) otwieramy plik infusions/navigation_panel/navigation_panel.php + w linii #14 dodajemy kod: global $menu_displayed_id; $menu_displayed_id++; + odnajdujemy kwerende (ok linia #18): $result = dbquery("SELECT * FROM ".$db_prefix."site_links WHERE link_position<='2' ORDER BY link_order"); i zamieniamy na: $result = dbquery("SELECT * FROM ".$db_prefix."site_links WHERE link_position<='2' AND link_menu_id='".$menu_displayed_id."' ORDER BY link_order"); Po tych wszystkich przeróbkach zyskujemy możliwość tworzenia do 9 paneli nawigacyjnych :) Aby mieć np. 2 panele nawigacyjne, jeden z lewej, drugi z prawej, wystarczy w PA > Zarządzanie Panelami dodać dwa razy Panel Nawigacyjny: po lewej i po prawej. Panele numerowane są kolejno od lewej do prawej, tzn. pierwszy dodany panel będzie wyświetlał linki ze zdefiniowanego menu nr 1, drugi z menu nr 2, trzeci z menu nr 3 itd. W załączniku gotowe pliki do PF v6.01.3.
Wooya dodał/a następującą plik:
Edytowane przez Wooya dnia 10.11.2006 12:03:02 ... Pomagam tylko przy najnowszych wersjach PHP-Fusion ... |
|
|
Wścibski Gość |
Dodany dnia 24.11.2024 04:32:36
|
Pan Kontekstualny Postów: n^x Data rejestracji: Zawsze |
|
IP: localhost | |
proton |
Dodany dnia 11.07.2006 08:46:28
|
Bywalec Postów: 945 Pomógł: 22 Data rejestracji: 10.11.2005 18:29 |
Ciekawy MOD napewno wiele osób z tego korzysta, jednak ja tam wolę zwykłe menu tworzone w html, w panelach.
|
|
|
Wooya |
Dodany dnia 11.07.2006 08:51:07
|
Zaawansowany Postów: 1449 Pomógł: 22 Data rejestracji: 30.01.2005 15:40 |
Jeden woli kredki drugi akwarium Fakt faktem, ze brakuje takiej opcji w PF... Bardzo ciekawie jest to rozwiazane w Joomla'i, choc sam panel admina jest gaszczem niezrozumialych dla mnie opcji
... Pomagam tylko przy najnowszych wersjach PHP-Fusion ... |
|
|
wlodekp |
Dodany dnia 14.07.2006 18:35:20
|
Weteran Postów: 3101 Pomógł: 29 Data rejestracji: 21.05.2005 22:27 |
Jest to bardzo profesjonalny panel. Mnie osobiście zastąpił wiele linii kodu w panelach-tyczących dostępu. I mimo, że używam @proton jednak ja tam wolę zwykłe menu tworzone w html, w panelach. to mam na stronie oprócz tego diametralnie różne nawigacje dla pracowników i gości, mało tego dostępy podzielone na user, admin, superadmin, wyświetlanie już w skryptach if member, if admin else.Panele nawigacyjne zainstalowane tylko po lewej, widoczne dokładnie tak jak chce i dla kogo chce w zależności od uprawnień. Dzięki @Wooya-Twój panel rozwiązuje tego typy problemy definitywnie. ps mały bug przy ALTER TABLE(klawiatura) jest : zamiast ;(parse error) Używam tego w 307 z pliku z moda.zip i jest OK Edytowane przez wlodekp dnia 14.07.2006 18:38:07 |
|
|
Mates2 |
Dodany dnia 28.10.2006 22:31:50
|
Przedszkolak Postów: 16 Data rejestracji: 08.02.2006 20:17 |
Pomoże ktoś z tym bo sie troszke gubie jak co to na PW |
|
|
Wooya |
Dodany dnia 10.11.2006 08:28:31
|
Zaawansowany Postów: 1449 Pomógł: 22 Data rejestracji: 30.01.2005 15:40 |
A co tu do gubienia jest? Sa zalaczone pliki. Wgraj je na serwer i tyle... PS: jesli cos ci nie gra a wgrales pliki, to wgraj je jeszcze raz Edytowane przez Wooya dnia 10.11.2006 08:49:31 ... Pomagam tylko przy najnowszych wersjach PHP-Fusion ... |
|
|
yogamaya |
Dodany dnia 07.12.2006 10:36:20
|
Przedszkolak Postów: 3 Data rejestracji: 06.12.2006 17:46 |
Wszystko działa Dięki Wuja Jedno pytanko: - Panele nazywają się po aktywacji tak samo :"Nawigacja" , czy zmienić pliki językowe, czy w bazie, czy jak to wydłubać ? |
|
|
Wooya |
Dodany dnia 07.12.2006 14:39:10
|
Zaawansowany Postów: 1449 Pomógł: 22 Data rejestracji: 30.01.2005 15:40 |
Mozna odpowiednio zmodyfikowac navigation_panel, aby pobieral swoja nazwe nie z locale, ale z nazwy panelu jaka nadales w zarzadzaniu panelami.
... Pomagam tylko przy najnowszych wersjach PHP-Fusion ... |
|
|
Pieka |
Dodany dnia 07.12.2006 19:09:04
|
Postów: 19882 Pomógł: 767 v7.02.03 Data rejestracji: 23.02.2005 18:12 |
Przyklad: Do tego wpis: Edytowane przez Pieka dnia 07.01.2010 18:08:43 Jestem jaki jestem
|
|
|
yogamaya |
Dodany dnia 08.12.2006 21:53:45
|
Przedszkolak Postów: 3 Data rejestracji: 06.12.2006 17:46 |
Dzięki |
|
|
zalew |
Dodany dnia 17.12.2006 22:13:37
|
Przedszkolak Postów: 18 Data rejestracji: 11.11.2005 14:14 |
Gdzie to wstawić ? Edytowane przez zalew dnia 18.12.2006 18:13:40 |
|
|
Wooya |
Dodany dnia 19.12.2006 06:57:26
|
Zaawansowany Postów: 1449 Pomógł: 22 Data rejestracji: 30.01.2005 15:40 |
Ta kwerenda jest zbędna. W pliku navigation_panel.php znajdz na poczatku: i zamien na: Teraz nazwy paneli beda pokazywane takie jak je nazwales. ... Pomagam tylko przy najnowszych wersjach PHP-Fusion ... |
|
|
zalew |
Dodany dnia 19.12.2006 15:17:05
|
Przedszkolak Postów: 18 Data rejestracji: 11.11.2005 14:14 |
Bardzo dziękuje za pomoc, wszystko działa jak należy . |
|
|
El_Intero |
Dodany dnia 29.12.2006 12:21:27
|
Przedszkolak Postów: 1 Data rejestracji: 29.12.2006 12:16 |
Ja mam problem z punktem 1 Otóż robie to co tu pisze, wklejam ten kod i wyskaukje mi: Duplicate column name 'link_menu_id'Tabela nie została zmieniona Robie coś żle ?? Bardzo proszę o pomoc |
|
|
Pieka |
Dodany dnia 29.12.2006 14:05:28
|
Postów: 19882 Pomógł: 767 v7.02.03 Data rejestracji: 23.02.2005 18:12 |
El_Intero napisał/a: Ja mam problem z punktem 1 Otóż robie to co tu pisze, wklejam ten kod i wyskaukje mi: Duplicate column name 'link_menu_id'Tabela nie została zmieniona Robie coś żle ?? Bardzo proszę o pomoc Po prostu masz juz te kolumne. Jestem jaki jestem
|
|
|
losiuu |
Dodany dnia 14.02.2007 17:48:54
|
Przedszkolak Postów: 3 Data rejestracji: 12.02.2007 21:24 |
Wszystko zrobiłem sprawdzilem i siku :/ nic nie ma! :/ ... mam Fusion 6.01 , moze ktoś prześle wszystko odrazu zrobione wstawione? |
|
|
szymon |
Dodany dnia 11.03.2007 22:47:16
|
Bywalec Postów: 434 Pomógł: 20 Data rejestracji: 05.02.2006 21:20 |
a Działa to z new_navigation_panel?? |
|
|
Sharky |
Dodany dnia 16.03.2007 16:31:55
|
Przedszkolak Postów: 55 Data rejestracji: 27.06.2006 18:59 |
Wszystko ok, ale jak zrobić, żeby ten drugi panel nosił inną nazwę? Tzn. np. zamiast: "Nagiwacja", "Menu"? |
|
|
szymon |
Dodany dnia 26.03.2007 22:53:47
|
Bywalec Postów: 434 Pomógł: 20 Data rejestracji: 05.02.2006 21:20 |
Wooya ?? Dużo zmian byłoby, zeby to przerobić na new_navigation_panel ?? |
|
|
maq |
Dodany dnia 10.04.2007 13:02:44
|
Bywalec Postów: 334 v7.02.03 Data rejestracji: 20.07.2006 10:35 Złamana licencja |
hmm. A dałoby się używać składni bbcode w tym modzie? Bo chcę np. nadać linkowi pogrubienie, ale nie wiem jak, bo po wpisaniu zwyczajnego <b ></b > pokazuje się <b >Strona główna</b > P.S Do n00bów: Spacje w znacznikach zrobiłem specjalnie /// Edit: Poradziłem sobie, ale mam jeszcze jedno pytanie: Czy da radę zrobić tak, żeby można było używać kolorów? Zrobiłem metodą @Pawkow'a bbcode i działa, ale jeszcze kolorki by się przydały. Wiecie może jak to zrobić? Edytowane przez maq dnia 10.04.2007 13:28:17 "Różnica między seksem i miłością jest taka, że seks rozładowuje napięcie, a miłość je wywołuje" // Woody Allen
|
|
Strona 1 z 2: 12
Przejdź do forum: |