ForumCała strona

Nawigacja

Aktualnie online

Gości online: 7

Użytkowników online: 0

Łącznie użytkowników: 25,400
Najnowszy użytkownik: AlojzyBartek

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

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

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?

piterus
30.10.2024 19:45:48
I będziemy śpiewać: "Kiedy 20 blisko, przebadaj wszystko, przebadaj wszystko..." Pfft

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
Rozwijana górna belka
Dagobah
Witam!

Od razu zaznaczam, iż przeczytałem wszystkie posty na forum dotyczące tego tematu jednakże i tak nie znalazłem odpowiedzi na swoje pytanie.

Chciałbym zrobić rozwijaną górną belkę (przy użyciu javascript) podobnie jak to wygląda na stronach: macikowo.net czy też www.serwis-masazy... Nie mam pojęcia gdzie dokonać modyfikacji, w których pliku/linijce. Próbowałem parę razy niestety w ogóle to nie wychodziło.

Jeżeli to istotne to korzystam ze skórki nillblue i wersje mam v6.01.6
 
Wścibski Gość
Dodany dnia 23.11.2024 21:31:12
Pan Kontekstualny

Postów: n^x
Data rejestracji: Zawsze

Polecamy hosting SferaHost.pl
IP: localhost  
Spoczywaj w pokoju... wlodekp
W odpowiedzi na jak? pokazuje na przykładzie plikiem wsadowym jast script menu:
http://www.dynami...uindex.htm składa się on z podstawowego kodu skrypyu:
<style type="text/css">

#dropmenudiv{
position:absolute;
border:1px solid black;
border-bottom-width: 0;
font:normal 12px Verdana;
line-height:18px;
z-index:100;
}

#dropmenudiv a{
width: 100%;
display: block;
text-indent: 3px;
border-bottom: 1px solid black;
padding: 1px 0;
text-decoration: none;
font-weight: bold;
}

#dropmenudiv a:hover{ /*hover background color*/
background-color: yellow;
}

</style>

<script type="text/javascript">

/***********************************************
* AnyLink Drop Down Menu- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynami... for full source code
***********************************************/

//Contents for menu 1
var menu1=new Array()
menu1[0]='<a href="http://www.javascriptkit.com">JavaScript Kit</a>'
menu1[1]='<a href="http://www.freewarejava.com">Freewarejava.com</a>'
menu1[2]='<a href="http://codingforums.com">Coding Forums</a>'
menu1[3]='<a href="http://www.cssdrive.com">CSS Drive</a>'

//Contents for menu 2, and so on
var menu2=new Array()
menu2[0]='<a href="http://cnn.com">CNN</a>'
menu2[1]='<a href="http://msnbc.com">MSNBC</a>'
menu2[2]='<a href="http://news.bbc.co.uk">BBC News</a>'

var menuwidth='165px' //default menu width
var menubgcolor='lightyellow' //menu bgcolor
var disappeardelay=250 //menu disappear speed onMouseout (in miliseconds)
var hidemenu_onclick="yes" //hide menu when user clicks within menu?

/////No further editting needed

var ie4=document.all
var ns6=document.getElementById&&!document.all

if (ie4||ns6)
document.write('<div id="dropmenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')

function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}


function showhide(obj, e, visible, hidden, menuwidth){
if (ie4||ns6)
dropmenuobj.style.left=dropmenuobj.style.top="-500px"
if (menuwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=menuwidth
}
if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
obj.visibility=visible
else if (e.type=="click")
obj.visibility=hidden
}

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
var edgeoffset=0
if (whichedge=="rightedge"){
var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth
}
else{
var topedge=ie4 && !window.opera? iecompattest().scrollTop : window.pageYOffset
var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure){ //move up?
edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
if ((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure) //up no good either?
edgeoffset=dropmenuobj.y+obj.offsetHeight-topedge
}
}
return edgeoffset
}

function populatemenu(what){
if (ie4||ns6)
dropmenuobj.innerHTML=what.join("")
}


function dropdownmenu(obj, e, menucontents, menuwidth){
if (window.event) event.cancelBubble=true
else if (e.stopPropagation) e.stopPropagation()
clearhidemenu()
dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv
populatemenu(menucontents)

if (ie4||ns6){
showhide(dropmenuobj.style, e, "visible", "hidden", menuwidth)
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
}

return clickreturnvalue()
}

function clickreturnvalue(){
if (ie4||ns6) return false
else return true
}

function contains_ns6(a, b) {
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}

function dynamichide(e){
if (ie4&&!dropmenuobj.contains(e.toElement))
delayhidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
delayhidemenu()
}

function hidemenu(e){
if (typeof dropmenuobj!="undefined"){
if (ie4||ns6)
dropmenuobj.style.visibility="hidden"
}
}

function delayhidemenu(){
if (ie4||ns6)
delayhide=setTimeout("hidemenu()",disappeardelay)
}

function clearhidemenu(){
if (typeof delayhide!="undefined")
clearTimeout(delayhide)
}

if (hidemenu_onclick=="yes")
document.onclick=hidemenu

</script>

I części ROZRUCHOWEJ:
<a href="default.htm" onClick="return clickreturnvalue()" onMouseover="dropdownmenu(this, event, menu1, '150px')" onMouseout="delayhidemenu()">Web Design</a> |

<a href="default2.htm" onClick="return dropdownmenu(this, event, menu2, '200px')" onMouseout="delayhidemenu()">News Sites</a> (onclick)

Pierwszą część skryptu zapisujemy (treść) do pliku o nazwie menu.js Tak zapisany plik umieszczmy w swoim katalogu includes. przechodzimy do swojego używanego obecnie pliku theme.php. Nowe menu ma nam zastąpić górną belkę staregu-szukamy sekcji z datą - przed nia jest właśnie górna belka i zastępujemy ją całą wpisem : dołączenien js inklude i wstawieniem kodu zwanego wyżej ROZRUCHOWYM
include INCLUDES.("menu.js");
echo " <a href="default.htm" onClick="return clickreturnvalue()" onMouseover="dropdownmenu(this, event, menu1, '150px')" onMouseout="delayhidemenu()">Web Design</a> |

<a href="default2.htm" onClick="return dropdownmenu(this, event, menu2, '200px')" onMouseout="delayhidemenu()">News Sites</a> (onclick)</td>

W techeme którego dotyczy temat( nillblue)wygląda to tak:
</table>\n";

echo "
<table width='100%' cellspacing='0' cellpadding='0'>
<tr>
<td class='white-header'>";
include INCLUDES.("menu.js");

echo " <a href='../index.php' onClick='return clickreturnvalue()' onMouseover='dropdownmenu(this, event, menu1, 150)' onMouseout='delayhidemenu()'><font color='#FFFFFF'>Web Design</a> |
<a href='../index.php' onClick='return dropdownmenu(this, event, menu2, 200)' onMouseout='delayhidemenu()'><font color='#FFFFFF'>News Sites</font></a></td>

<td align='right' class='white-header' style='padding-right:6px;'>".ucwords(showdate("%A, %B %d, %Y", time()))."</td>

</tr>
</table>\n";

echo " <table width='100%' cellspacing='0' cellpadding='0'>
<tr>\n";

}

function render_footer($license=false) {

Proszę zwrócić uwagę zastąpiono " na ' i usunięto ' przy funkcjach ROZRUCH px.
Jest to tylko przykładowe menu JS pierwsze rozwija się po najechaniu drygie po kliknięciu na belkę. Nie ma problemu z podłożeniem tła na bęlkę pod font-można to zrobić podobnie jak ja w rozruchu modyfikacja dopis koloru fontu-bo w tym theme jest grzbnat i czarnego nie widać.
Na stronie z linkiem głównej jest wiele rodzajów tego typu menu. To moje pisanie dotyczy tylko WJAKI SPOSÓB WSTAWIĆ DO FUSION I NICZEGO WIĘCEJ.
Wygląda tak:
wlodekp.ovh.org
 
wlodekp.europa.pl
Dagobah
wlodekp napisał/a:


Dziękuje Ci za pokazanie w jaki sposób to zrobić. Wczoraj wieczorem (tzn. dzisiaj w nocy) udało mi się to zrobić - tzn. zrobił mi to praktycznie jeden z użytkowników php-fusion - ZSZYWAK (jeszcze raz dzięki Smile ). Pokazał mi w jaki inny sposób to można zmienić i też ładnie śmiga.

Temat do zablokowania

PS. Link do skrypty Zszywaka http://macikowo.n...-z-css.zip
Edytowane przez Pieka dnia 30.09.2007 11:07:10
 
Pieka
Swietne Wlodku!! Dziekuje za odpowiedz na moj apel Smile
Oby wiecej tego typu ludzi.
Jestem jaki jestem Smile
 
www.php-fusion.pl
szopik
Witam!
Z menu poradziłam sobie bez problemu, ale ponieważ nie znam js mam pytanie
jak dorobić do tego przykładu submenu? (chodzi mi o dwa poziomy rozwijania np. oferta -> kategoria -> podkategoria
Próbowałam robić coś sama "na chłopski rozum" ale nic mi z tego nie wyszło.

Będę wdzięczna za podpowiedź.
 
kraski1
witajcie, zastosowałem ten drugi sposób lecz mi sie strona rozjechała i nie wiem co robić, proszę zobaczyć www.pship.dl.pl

ma też inny błąd który się pokazał przed chwilą,

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


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


Chcę aby strona nie była na cały ekran tylko na 75 :/
Edytowane przez Pieka dnia 16.04.2007 18:42:54
 
Miki
PHP Layers Menu 3.0.2 (C) 2001-2004 Marco Pratesi - http://www.marcop...

- nic nie trzeba kombinować, zainstalować i śmiga. Zmiany tylko w subheader i footer, polegają na zaincludowaniu odpowiednich plików i wywołaniu kilku procedur. Reszta tworzy się automatycznie, na podstawie zapisu w bazie, albo pliku tekstowego o tak prostej strukturze, że bez trudu można ją edytować z palca.

.|menu pierwszego poziomu|viewpage.php?page_id=11|napis do dymka po najechaniu myszką|obrazek.jpg

..|menu drugiego poziomu|viewpage.php?page_id=11|napis do dymka po najechaniu myszką|obrazek.jpg

...|menu trzeciego poziomu|viewpage.php?page_id=11|napis do dymka po najechaniu myszką|obrazek.jpg

Do edycji menu wykorzystałem stronę informacyjną, wciągam ją w subheader i śmiga.
Samo menu wywołuje się w dodatkowym bloku, lub w stronie - wszędzie gdzie zawartość jest przepuszczana przez eval.
Demo modułu tutaj: http://www.sklep.....org/menu/
Edytowane przez szer dnia 16.04.2007 17:09:56
 
www.maxcomp.prv.pl
Bebop
Miki napisał/a:
- nic nie trzeba kombinować, zainstalować i śmiga. Zmiany tylko w subheader i footer, polegają na zaincludowaniu odpowiednich plików i wywołaniu kilku procedur. Reszta tworzy się automatycznie, na podstawie zapisu w bazie, albo pliku tekstowego o tak prostej strukturze, że bez trudu można ją edytować z palca.

Do edycji menu wykorzystałem stronę informacyjną, wciągam ją w subheader i śmiga.
Samo menu wywołuje się w dodatkowym bloku, lub w stronie - wszędzie gdzie zawartość jest przepuszczana przez eval.


Miki, jesteś w stanie opisać to łopatologicznie? Szukam rozwiązania na menu górne, ale także boczne treemenu i wydaje się, że to może się doskonale nadać.
1/ Jak dokładnie to dodać (jakiś szybki tutorial plz... co, gdzie i jak dodać)
2/ Jak wykorzystać stronę informacyjną do edycji menu (strasznie podoba mi się ten pomysł)
Edytowane przez Bebop dnia 16.04.2007 20:42:02
______
Bebop
 
Miki
Pobierz kod źródłowy  Rozwiń Kod źródłowy


To są zmiany w subheader - jak widać do tworzenia samego menu wykorzystuję stronę o id=20, ale może być dowolna. Strukturę menu podałem w pierwszym poście. Kropka na początku oznacza pierwszy level, dwie drugi itp, kolejność od góry do dołu. Pola separowane | (pionowa kreska) pierwsze to widoczny odnosnik, drugie url, trzecie zawartość alt-a, czwarte ikonka pozycji. Wymagane tylko pierwsze pole, stworzy wtedy pusty link.

Zresztą w przykładowym pliku index.php to widać doskonale.

w funkcji render_footer() każdego template'u trzeba wywołać funkcję $mid->printFooter();

A samo menu odpalamy w dodatkowym bloku którąś z poniższych funkcji:
Pobierz kod źródłowy  Rozwiń Kod źródłowy


Nazwy w nawiasach oznaczają zdeklarowane w nagłówku menu - w tym przypadku zawsze powinno być vermenu2, bo tylko takie jest zadeklarowane.

Aby zadeklarować większą ilość trzeba zdublować sekcję w nagłówku, zmieniając nazwę z nawiasu.

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


Ta przykładowa sekcja zawiera kolejno: definicję strałki w dół, strzałki w przód, wskazuje plik ze strukturą menu umieszczony zgodnie ze ścieżką includującą, funkcję parsującą ów plik, funkcję wczytującą analogicznie szablon menu horyzontalnego, dwie funkcje inicjujace z wcześniej wczytanego pliku dwa różne menu o tej samej zawartości, dwie funkcje wczytujące szablony menu i submenu, oraz funkcję inicjującą kolejne menu o tej samej treści, ale korzystające z całkiem innych szablonów.

System jest jeszcze bogatszy, menu można zapisywać w bazie, wydobywać z bazy do pliku tekstowego, z pliku tekstowego ładować do bazy, tworzyć kolejne szablony.

Biorąc pod uwagę, że po raz pierwszy zetknąłem się z nim wczoraj, a dziś już prawie gotowa jest rozległa witryna zbudowana na phpfusion, z którego praktycznie wykorzystuję jedynie edytor stron informacyjnych i to menu, oznacza to dużą wygodę budowania contentu.
 
www.maxcomp.prv.pl
Bebop
Dzięki Miki, całość wygląda dość prosto, ale mam kilka dodatkowych pytań:

1/
Miki napisał/a:
w funkcji render_footer() każdego template'u trzeba wywołać funkcję $mid->printFooter();

Mogę prosić o wersję dla laika? Jak wywoływać taką funkcję?

2/
Miki napisał/a:
A samo menu odpalamy w dodatkowym bloku którąś z poniższych funkcji

Blok = panel? Jeśli tak to czy wymienione przez Ciebie funkcje są jedynymi wpisami w treści panelu?

Jutro zabieram się za implementację. Mam nadzieję, że jakoś pójdzie Smile
______
Bebop
 
Miki
1.) wklejając te linijkę np przed ostatnim nawiasem klamrowym funkcji renderującej stopkę.

2.) wklejająclinijkę wywołującą menu w tym bloku/panelu/boxie jak byś tego nie nazwał, chodzi o system dodawania nowych bloków w bocznych menu. Jeżeli chodzi o wertykalne menu w nagłówku, to jeszcze się nie zastanawiałem jak je tam osadzić, ale metoda jest dokładnie taka sama - prawdopodobnie wystarczy to wywołane dać w render_header() templatki
 
www.maxcomp.prv.pl
kraski1
cały czs poszukuje jakiegoś szybkiego i dobrego, chciałbvym coś podobnego jak na www.gunners.com.pl :/
 
szer
No to ich poproś o udostępnienie...
 
kraski1
a ja mam problem z pokazanym przez wlodka kod, mam szablon blackf i jest on troche bardziej skomplikowany kod wyglada tak :

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



Bardzo chcialbym te menu ale coś gdzieś źle wklejam i niee dziala :((
Edytowane przez kraski1 dnia 19.04.2007 19:24:59
 
szer
Podaj adres strony to może coś pomogę
 
kraski1
www.pship.dl.pl / Jeszcze nic tam nie wkleiłem, próbowałem ale dużo błędów wyskakiwało związanych z syntaxem (" na ' było zamienione) też związane z innymi liniami jak 92 na której wszystko jest ok i nic nie tyczyło się tego :/
 
szer
A jaki błąd wyskakuje?
 
kraski1
dobra wkleiłem to znowu, prosze popatrzyć http://img182.ima...gjgfn8.jpg i na strone www.pship.dl.pl
 
szer
Jak coś dodajesz w echo to później zamknij to echo.... Brakuje w lini 61 na końcu
Pobierz kod źródłowy  Rozwiń Kod źródłowy
 
kraski1
teraz działa lecz ukazało się cos takiego : ďťż możesz zobaczyć to na stronie w lewym rogu.
 
Przejdź do forum:
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl