ForumCała strona

Nawigacja

Aktualnie online

Gości online: 14

Użytkowników online: 0

Łącznie użytkowników: 25,405
Najnowszy użytkownik: kipolas

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

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

JazOOn
25.06.2025 23:43:19
Dziadziejemy jantom...

jantom
23.06.2025 21:37:31
Z ciekawo?ci pogrzeba?em w historii i jest gorzej ni? my?la?em. Skórka Nadzieja ma ju? 17 lat.

jantom
23.06.2025 21:33:12
... troch? zasiedzia?o Wink

jantom
23.06.2025 21:32:38
Cecha tego, jak z 20+ lat temu pisano strony - tabelki wsz?dzie, szczególnie do tworzenia uk?adów stron. PF d?ugo by? wierny tej tradycji. A obecny szablon Supportu napisa?em z 15 lat temu i chyba mu

Zbigniew@
22.06.2025 17:50:03
Dlaczego forum jest dost?pne tylko dla 10% ludzi? Poniewa? wi?kszo?? osób korzysta z internetu na urz?dzeniach mobilnych.

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

RSS

Polecamy hosting SferaHost.pl

Zobacz temat

Polski Oficjalny Support PHP-Fusion » PHP-Fusion v5.00-v6.01 Support » Modyfikacje skryptów
 Drukuj temat
MOD: kilka paneli nawigacyjnych
Wooya
//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:

Pobierz kod źródłowy  Rozwiń Kod źródłowy


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 ...
koder_1.png
 
W?cibski Go??
Dodany dnia 06.09.2025 12:04:34
Pan Kontekstualny

Postów: n^x
Data rejestracji: Zawsze

Polecamy hosting SferaHost.pl
IP: localhost  
proton
Ciekawy MOD napewno wiele osób z tego korzysta, jednak ja tam wol? zwyk?e menu tworzone w html, w panelach.
 
http://www.mortek.pl
Wooya
Jeden woli kredki drugi akwarium Wink 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 Cool
... Pomagam tylko przy najnowszych wersjach PHP-Fusion ...
koder_1.png
 
Spoczywaj w pokoju... wlodekp
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
 
wlodekp.europa.pl
Mates2
Pomo?e kto? z tym bo sie troszke gubie Wink jak co to na PW Grin
 
Wooya
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 ...
koder_1.png
 
yogamaya
Wszystko dzia?a Smile 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? ?
 
http://yogamaya.pl/
Wooya
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 ...
koder_1.png
 
Pieka
Przyklad:
Pobierz kod źródłowy  Rozwiń Kod źródłowy


Do tego wpis:
Pobierz kod źródłowy  Rozwiń Kod źródłowy

Edytowane przez Pieka dnia 07.01.2010 18:08:43
Jestem jaki jestem Smile
 
www.php-fusion.pl
yogamaya
Dzi?ki Smile
 
http://yogamaya.pl/
zalew
Pieka napisa?/a:
Przyklad:

Pobierz kod źródłowy  Rozwiń Kod źródłowy


Do tego wpis:
Pobierz kod źródłowy  Rozwiń Kod źródłowy

Gdzie to wstawi? ?
Edytowane przez zalew dnia 18.12.2006 18:13:40
 
Wooya
Ta kwerenda jest zb?dna. W pliku navigation_panel.php znajdz na poczatku:
Pobierz kod źródłowy  Rozwiń Kod źródłowy

i zamien na:
Pobierz kod źródłowy  Rozwiń Kod źródłowy


Teraz nazwy paneli beda pokazywane takie jak je nazwales.
... Pomagam tylko przy najnowszych wersjach PHP-Fusion ...
koder_1.png
 
zalew
Bardzo dzi?kuje za pomoc, wszystko dzia?a jak nale?y Grin.
 
El_Intero
Ja mam problem z punktem 1 Sad 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
El_Intero napisa?/a:
Ja mam problem z punktem 1 Sad 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 Smile
 
www.php-fusion.pl
losiuu
Wszystko zrobi?em sprawdzilem i siku :/ nic nie ma! :/ Sad ...
mam Fusion 6.01 , moze kto? prze?le wszystko odrazu zrobione wstawione?
 
szymon
a Dzia?a to z new_navigation_panel??
 
www.zloteskrzydlo.pl
Sharky
Wszystko ok, ale jak zrobi?, ?eby ten drugi panel nosi? inn? nazw??
Tzn. np. zamiast: "Nagiwacja", "Menu"? Smile
 
szymon
Wooya ?? Du?o zmian by?oby, zeby to przerobi? na new_navigation_panel ??
 
www.zloteskrzydlo.pl
maq
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 Smile



/// 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
 
Przejdź do forum:
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl