Strona główna arrow Artykuły arrow Wyskakujące pole logowania13 Maj 2008, 10:11
Menu serwisu
Strona główna
Archiwum
Artykuły
Czym jest Mambo?
Licencja Mambo
Napisz do nas
Szukaj
Mambo FAQ
Samouczki
Szablony WWW
Forum
Download
Przydatne lektury
Mambo hosting - PROMOCJA
Książki o Mambo

Mambo - tworzenie wydajnych serwisów internetowych    Mambo - ćwiczenia
 39,00 zł               19,00 zł 
Ciekawe książki:


   23,70 zł        19,97 zł
e-książki, e-prasa
Domeny za 90gr.!
Polecamy
We have 89 guests online
    
Wyskakujące pole logowania Print E-mail
Written by Dylek   
02 Kwi 2005, 10:49

Wyskakujące pole logowania

Pytano mnie WIELE razy (no dobrze, co najmniej dwa), jak zrobiłem pole logowania w formie Pop-Up (aktualnie do zobaczenia na www.andy-stewart.com).  To jest coś, co pierwszy raz zobaczyłem na stronie Jasona Murphy'ego i pomyślałem, że to doskonałe miejsce do umieszczenia pola logowania. Schowane ono było gdzieś na stronie, a ja chciałbym żeby moje również było niewiele bardziej oczywiste.

Wykonanie formularza logowania w stylu Pop-Up możemy podzielić na trzy etapy:

  • Stworzyć skrypt języka Javascript, który będzie odpowiadał za okienko Pop-Up.
  • Stworzyć pole za pomocą znaczników <div>, w którym umieści się formularz logowania
  • Stworzyć link pokaż/ukryj okienko z formularzem logowania.

JavaScript


Ten skrypt musi zostać wstawiony pomiędzy elementy <head> .... </head> w pliku index.php Twojej templatki;
 
<script language="JavaScript" type="text/javascript">
<!--
function toggleBox(szDivID, iState) // 1 visible, 0 hidden
{
  if(document.layers)  // NN4
  {
    document.layers[szDivID].visibility = iState ? "show" : "hide";
  }
  else if(document.getElementById) // gecko(NN6) + IE5+
  {
    var obj = document.getElementById(szDivID);
    obj.style.visibility = iState ? "visible" : "hidden";
  }
  else if(document.all) //IE 4
  {
    document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
  }
}
// -->
</script>


Pole <div>

Zdecydowałem, że bardziej niż powyższy kod pasowałaby mi własna procedura logowania. Umieściłbym pozycję 'inset' Mambo wewnątrz ukrytego pola <div> i w nim właśnie opublikowałbym moduł logowania. To pozwoliłoby mi nie martwić się o ewentualne zmiany procesu logowania w przyszłych wersjach Mambo. Pozwoliłoby to również na umieszczanie tam w miarę potrzeb innych modułów, poprzez opublikowanie danego modułu wewnątrz pozycji 'inset'. Kod pola DIV umieszczony jest wewnątrz sekcji <body> ... </body> Twojej templatki.

<div id="LoginBox">
  <table>
  <tr>
    <td colspan="2">
        <?php mosLoadModules( 'inset' ); ?>
    </td>
  </tr>
  <tr>
    <td width="50%">
      <a href="administrator/index.php">
        <img src="images/M_images/con_info.png" width="16" height="16" border="0" />
        <font size="1"><strong>Admin</strong></font>
      </a>
    </td>
    <td width="50%" align="right">
      <a href="#" onClick="toggleBox('LoginBox',0); return false;">
      <img src="images/cancel_f2.png" width="20" height="20" border="0" />
      </a>
    </td>
  </tr>
  </table>
</div>


Odnośnik do logowania

Teraz musimy gdzieś umieścić link, który wyświetli ukrytą warstwę <div>, co spowoduje pokazanie pola logowania.
 

<a href="#" onClick="toggleBox('LoginBox',1); return false;">
<img src="/templates/andy/images/password.png" width="75" height="75" border="0" />
</a>

Ważną częścią tutaj jest dyrektywa "OnClick=", która wykonuje wyświetlenie pola logowania. Jeśli spojrzysz na dyrektywy dla pola logowania DIV, zauważysz że umieściłem na dole obrazek z elementem "OnClick=", który chowa z powrotem pole logowania.

Ustawienia stylów CSS
Ostatnią rzeczą, jaką musimy zrobić, jest zdefiniowanie umiejscowienia i wyglądu pola DIV poprzez odpowiednie wpisy w arkuszu stylów CSS wewnątrz pliku template_css.css Twojej templatki.

 

#LoginBox {
position: absolute;
top: 0px;
left: 0px;
width: 200px;
visibility: hidden;
border: 1px solid;
background-color: #ffffff;
}

Testowałem te rozwiązanie w przeglądarkach IE, FireFox i Opera pod Windows, plus Mozilla i Opera pod systemem Linux i wszystko działało bez problemów - nie zrobiłem jeszcze testów pod MacOS, więc niestety nie mogę zweryfikować czy wszystko działa jak należy. 

To wszystko zaimplementowane zostało z niewielkimi różnicami w stosunku do strony Jasona Murphy'ego i nie wiem jakie są wady/korzyści płynące z tych różnic. Zostawiam to większym umysłom niż mój. Mam nadzieję, że będzie to dla kogoś przydatne i proszę o kontakt poprzez moją stronę, jeśli masz jakieś pytania lub coś do dodania ;-)

 

Kilka uwag od tłumaczącego to na "nasze" :)
W stosunku do oryginału Andy'ego dopisałem znaczniki kodu Javascript - nie każdy przecież musi wiedzieć, że są (sam się na tym potknąłem). Następna sprawa to pamiętajcie o zmianie ścieżek do grafiki - tu jest tylko przykład odnoszący się do templatki Andy'ego. Podobnie kod CSS - akurat ten pasuje do jego templatki - do Waszej nie musi i może zajść konieczność zmiany np. kolorów linków. To chyba tyle, pamiętajcie tylko o wklejaniu fragmentów kodu dokładnie w te miejsca, o których mówi tutorial.

Oryginał tego dokumentu zaczerpnięto za zgodą autora ze strony Troozers Learns to Mambo
Polska adaptacja: Dylek, MamboPL.com Team


Last Updated ( 02 Kwi 2005, 10:53 )
<Previous   Next>
    
UWAGA Promocja!!
Polecamy eHost.pl

eHost.pl
gotowe skrypty, statystyki, panel administracyjny, konta email
testuj za darmo!!!

TwójKiosk.pl
Nasi partnerzy
LinkMe
Strony vj - serwis partnerski Template Monster
LinkiSEO.pl
JoomlaPL.com

Silikonki.PL



Design & CSS © 2004 Bolo - Wszelkie prawa zastrzeżone.

Mambo is Free Software released under the GNU/GPL License.