--=REKLAMA=--

Więcej o szablonach Joomla!

Z Joomla!WikiPL

(Przekierowano z Poradnik:Więcej o szablonach Joomla!)

Tryb zgodności i tryb dziwactw

Aby zapewnić zgodność swoich przeglądarek z ich wcześniejszymi wersjami Microsoft wprowadził w IE6 tzw. quirks mode - tryb zgodności wstecznej, nazwany słusznie choć wbrew intencjom twórców trybem dziwności. Nie jest to bowiem tryb pracy zapewniający oczekiwaną przez projektantów zgodność ze standardami, ale tryb, w którym nowsze przeglądarki udają swoich przodków, zachowują się, jak ich poprzedniczki, naśladując ich błędy i niedoróbki.

Rozwiązanie Microsoftu można by akceptować, gdyby rzeczywiście IE6 ograniczało się tylko do interpretacji stron tak, jak to robiła IE4. Problem polega na tym, że w trybie tym nie zaimplementowano mechanizmów rozpoznających, z której wersji IE korzysta internauta. IE przechodzi w tryb dziwactw w kilku sytuacjach:

  • w dokumentach wykorzystujących stare deklaracje DOCTYPE, z niepełnym adresem specyfikacji DOCTYPE lub w ogóle bez określenia rodzaju dokumentu,
  • w dokumentach, w których przed informacją o DTD umieszczona zostanie choćby pusta linia czy prolog XML.

Na dodatek z trybu quirks korzysta nie tylko Internet Explorer, ale również inne przeglądarki jak np. Mozilla czy Opera.

Jak IE działa w trybie dziwactw?

  • przestrzeń, w której jest wyświetlany dokument, wyznacza element body (szerokość body równa szerokości okna przeglądarki, marginesy ustalone dla body były ustawiane wewnątrz ramki i suwaków okna, body "pojemnikiem" dla elementów pozycjonowanych, które nie mają wypozycjonowanego rodzica) - w standardzie element html (html, a nie body staje się "pojemnikiem" dla elementów pozycjonowanych, które nie mają wypozycjonowanego rodzica).
  • szerokość marginesów i dopełnień wliczana jest do szerokości elementu - w standardzie CSS szerokość elementu wyznacza suma tych szerokości,
  • atrybut scroll="yes|no|auto" oraz własności CSS overflow, overflow-x i overflow-y stosują się do selektora body - w trybie zgodności do selektora html,
  • domyślnej wielkości czcionki odpowiada wartość small - w trybie zgodności wartość medium,
  • własność padding dla znacznika <img> nie jest interpretowana,
  • nie ma obsługi własności min-height.

Jak unikać trybu dziwactw?

Problem można rozwiązać w dwojaki sposób:

  • korzystać ze ścisłej (strict) wersji języka HTML lub z XHTML,
  • unikać umieszczania czegokolwiek przed DOCTYPE.

Aby dowiedzieć się więcej o szczegółach trybu quirks, skorzystaj z poniższych adresów:


Dobór typu dokumentu (DOCTYPE)

Dla Joomla! zalecany typ dokumentu to XHTML 1.0 Transitional.


Deklaracja rodzaju dokumentu

Dokumenty udostępniane w Sieci rozpoczynają się od informacji o rodzaju dokumentu i zastosowanej wersji specyfikacji DTD, czyli deklaracji typu dokumentu. Szablony dla Joomla! i Mambo opieramy zwykle na standardzie XHTML 1.0.

Kod w pliku index.php

W naszej podstawie kodu szablonu dla Joomla! i Mambo informacja ta znajduje się w linii:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
   "http://www.w3.org/TR/xhtml1/transitional.dtd">

Objaśnienia

Kod HTML można wprowadzać w dokumencie PHP w sposób bezpośredni, bez stosowania jakichkolwiek instrukcji PHP. Tak też uczyniliśmy. Tuż za niezbędnym znacznikiem informującym serwer, że kończy się fragment kodu PHP (?>) umieściliśmy element DOCTYPE. Ta deklaracja typu dokumentu będzie wpisana na początku wszystkich dokumentów HTML generowanych przez szablon.

DTD jest niezbędna. Określa, jaki poziomu standardu został zastosowany w dokumencie. Informuje przeglądarki, jak mają interpretować kod. DTD jest także wykorzystywana w procesie weryfikacji poprawności szablonu przez tzw. parsery (programy przetwarzające).

Zwróć uwagę, że DTD wstawia się jeszcze przed otwarciem szkieletu dokumentu HTML, czyli przed znacznikiem <html>. Przed DTD nie powinien się znaleźć ani jeden inny znak.

Więcej o HTML i XHTML

W Internecie powszechnie wykorzystywane są dwa języki: HTML i XHTML. Rozwój HTML został zatrzymany w 1999 roku na wersji 4.01. 26 stycznia 2000 roku, ukazała się rekomendacja W3C określająca przeformułowanie HTML 4 w XML 1.0. XHTML nie jest więc nowym językiem, ale rozszerzeniem HTML do postaci XML.

W3C opublikowało wprawdzie nowszą rekomendację języka XHTML - specyfikację XHTML 1.1., ale standard ten nie jest wciąż powszechnie stosowany ze względu na niekompatybilność przeglądarki Internet Explorer.

Choć dysponujemy już nowszym standardem, to standard XHTML 1.0 jest stosowany najczęściej. Do niego również odwołujemy się zwykle w szablonach dla Joomla!. Starsze standardy - HTML 4.01 czy HTML 4.0 raczej nie powinny już być stosowane.

Trzy odmiany standardu

Specyfikacje HTML i XHTML definiują trzy wersje języka:

  • ścisłą - ang. strict,
  • przejściową - ang. transitional albo loose,
  • interpretującą ramki - ang. frameset.

W XHTML 1.1. istnieje już tylko jedna odmiana - ścisła.

Wersja ścisła - STRICT

Ścisła wersja DTD, oznaczona słowem strict, wyklucza wszelkie elementy prezentacyjne, których nie ma w specyfikacji HTML 4.01 oraz elementy wycofywane z użycia [deprecated]. Oznacza to, że wszystkie te elementy - jeśli znajdą się w dokumencie - zostaną uznane za nieprawidłowe i nie będą poprawnie interpretowane. W związku z tym cały dokument zostanie uznany za niepoprawny. Deklarację wersji strict zapisujemy tak:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

lub tak:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

W odwołaniu do wersji strict nie trzeba - jak widać - podawać URL specyfikacji DTD.

Wersja przejściowa - LOOSE [TRANSITIONAL]

Przejściowa wersja DTD, oznaczona słowem transitional albo krócej loose - deklaruje, że dokument zawiera wszelkie możliwe elementy i atrybuty HTML 4.0, łącznie z wycofywanymi z użycia. Jest zatem wyborem bezpieczniejszym. Deklarację wersji przejściowej zapisujemy tak:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">

albo

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Możliwy jest wprawdzie także zapis bez URL do specyfikacji, ale powoduje on, że przeglądarki przechodzą do trybu quirks, więc nie należy tej skróconej wersji stosować.

Wersja z ramkami - FRAMESET

Wersja frameset deklaruje, podobnie jak transitional, że dokument zawiera wszelkie możliwe elementy i atrybuty HTML 4.0, łącznie z wycofywanymi, a ponadto interpretuje ramki. Ale w szablonach dla Joomla! i Mambo nie korzystamy z tej wersji, ponieważ nie ma potrzeby korzystania z przestarzałych już ramek.

Lista zalecanych typów dokumentów (DOCTYPE) - sposób oznaczania


Opracowania poświęcone problematyce typu dokumentu (DocTypes):



Ikona przetlumacz.png
 Uwaga o zawartości

Ta strona wymaga przetłumaczenia lub jest w trakcie tłumaczenia! Pomoc jest mile widziana. Ostatnio edytowane przez Zwiastun (dyskusja. Data edycji: Tue, 26 May 2009 01:47:17 +0000

Some templates provide the opportunity to select the type of page width, through its parameter settings. In case this does not meet the requirements, the template manager also allows the modification of the cascading style sheets. It is in those files, usually with the extension .css, that most, if not all, of the style (graphical) attributes are defined.

What is CSS?

CSS stands for Cascading Style Sheet. HTML tags specify the graphical flow of the elements, be it text, images or flash animations, on a webpage. CSS allows us to define the appearances of those html tags with their content, somewhere, so that other pages, if want be, may adhere to. This brings along consistency throughout a website. The cascading effect stipulates that the style of a tag (parent) may be inherited by other tags (children) inside it.

CSS Statements

The definition of an html tag is as follows:

tagname { attribute: value; attribute: value; }

Tagname may be any html tag but for the sake of setting up page width, what is of interest to us is an html tag that gives structure to a webpage. Some webpages are constructed from div tags while others are constructed on table tags. Usually, the tag has a 'width' attribute. You set up a page width by varying the value of the 'width' attribute.

Sometimes, html tags are not defined directly. They are given an id or a class name and CSS refers to those specific tags by their ids or their class names.

The definition of an id in CSS is as follows:

#idname { attribute: value; attribute: value; }

while the definition of a class in CSS is as follows:

.classname { attribute: value; attribute: value; }

Again setting up a page width means modifying the value of the 'width' attribute of any one of these definitions.

Value of the 'width' attribute

The value of the 'width' attribute may be in pixels or percentage. Pixels are fixed values; hence in this case, the width does not vary according to window resizing or changing screen resolutions. Percentage usually means that the width is a fraction of the width of its container. So if we have a screen resolution of 1024 pixels by 768 pixels and our page width is set to 80% of the browser window container, our page would be approximately 820 pixels (80% of 1024) provided that the window browser is open at its fullest.

Profesjonalne strony internetowe cechuje oddzielenie formatowania od treści. Jest wiele powodów oddzielania treści od formatowania. Najbardziej oczywisty to możliwość zmiany wyglądu wielu stron w rezultacie modyfikacji wprowadzanych w jednym pliku. Informacje stylizujące określają parametry czcionek, tła, grafiki (pojawiającej się na wszystkich stronach), położenie oraz wymiary elementów strony. Twój plik HTML będzie teraz zbudowany z danych nagłówka, serii elementów obejmujących tekst (treść) strony internetowej. Ponieważ tworzysz szablon Joomla!, będziesz mieć dane nagłówka oraz kod PHP, który generuje pozostałe informacje, serię elementów, kod wywołujący treści modułów oraz kod wywołujący treść główną.

Informacja o stylu kodowane są w CSS - kaskadowych arkuszach stylów i umieszczane w plikach z rozszerzeniem .css. Plik główny szablonu zawiera łącze do arkusza stylów (pliku .css), więc przeglądarka może znaleźć odpowiednie informacje o stylu i zastosować przy wyświetlaniu strony. CSS może być również umieszczony wewnątrz pliku HTML za pomocą znacznika <style type="text/css"></style>.

Kod CSS zawsze odnosi się do jakiegoś elementu strony html/xml. Jeśli chcesz, by styl dotyczył całej strony, zastosujesz go najprawdopodobniej do elementu <body>. Style można stosować do dowolnych elementów, takich jak <p>, <table> czy <div>. Aby nadać styl szczególnemu elementowi, potrzebny jest identyfikator ID, na przykład aby zastosować styl do elementu <div> z tytułem, najpierw trzeba włączyć ID do kodu HTML: <div id="title">


Kolejność źródłowa i jej znaczenie

W projektowaniu układu strony ważne znaczenie ma kolejność źródłowa [Source ordering], czyli kolejność pojawiania się elementów strony w pliku HTML. W szablonach dla Joomla!/Mambo zależy ona od kolejności wpisywania elementów strony w pliku lub plikach generujących dokument HTML (zwykle w pliku index.php - głównym pliku szablonu; w rozbudowanych rozwiązaniach, w których część kodu jest przenoszona do plików dołączanych, o kolejności źródłowej decyduje kolejność wywoływania plików dołączonych).

Zarówno przeglądarki, jak i inne urządzenia odczytujące dokumenty HTML, a więc czytniki ekranu czy wyszukiwarki internetowe, odczytują treść stron internetowych w takiej kolejności, w jakiej została ona umieszczona w dokumencie HTML.

Nie zawsze, a nawet dość często, kolejność źródłowa nie jest zgodna z wymogami dostępności strony czy optymalności pod kątem wyszukiwarek internetowych. Dostępność wymaga, aby użytkownicy dotarli do najważniejszych treści strony jak najszybciej, a więc najlepiej byłoby, aby treść główna znajdowała się jak najbliżej początku dokumentu. Podobnie jest z optymalizacją pod kątem wyszukiwarek internetowych. Większość wyszukiwarek ogranicza podczas przeszukiwania ilość czytanego kodu. Jeśli więc na początku dokumentu znajduje się dużo kodu z treściami pobocznymi, może się zdarzyć, że wyszukiwarki w ogóle nie dotrą do treści głównej.

Kolejność źródłowa a prezentacja wizualna

Jeśli wyświetlić stronę bez żadnego formatowania, to elementy blokowe umieszczane są od góry w dół, a elementy liniowe kolejno od lewej do prawej krawędzi, a następnie w dół - w językach lewostronnych, albo od prawej do lewej krawędzi w językach z odwrotnym kierunkiem pisma.

Domyślny układ treści można modyfikować za pomocą udostępnianych przez CSS właściwości pozycjonujących wyszczególnionych w dalszej części. Projektant może rozmieszczać elementy strony w dość swobodny sposób, niekoniecznie w takiej kolejności, w jakiej są umieszczone w dokumencie HTML. O wizualnym rozmieszczeniu elementów na stronie, o ich wzajemnym układzie decyduje określone w arkuszu CSS właściwości formatujące. Inaczej mówiąc, projektant może zmieniać kolejność pojawiania się elementów w kodzie HTML tak, by dostosować ją do wymagań witryny, w tym zapewniających większą dostępność oraz optymalizację pod kątem wyszukiwarek internetowych.

Pozycjonujące właściwości CSS

CSS udostępnia bogaty zestaw właściwości pozycjonujących:

  • position:
    • absolute - bezwzględna albo absolutna,
    • relative - względna albo relatywna
    • fixed - stała albo ustalona,
    • static - statyczna
  • left, right, top, bottom,
  • visibility
    • visible: widoczny
    • hidden: ukryty
    • collapse: złożony
    • inherit: odziedziczone (wartość domyślna)
  • display
    • block: przekształca w element blokowy, dodaje znaczniki początku i końca wiersza
    • inline: przekształca element w liniowy (wstawkę)
    • list-item: ustala element jako element listy
    • none: wyłącza wyświetlanie elementu
  • float:
    • left: przemieszcza do lewej krawędzi elementu obejmującego
    • right: przemieszcza do prawej krawędzi elementu obejmującego
    • none: powstrzymuje pływanie elementów (wartość domyślna)
  • clear:
    • left: tamuje opływanie elementu z lewej strony
    • right: tamuje opływanie elementu z prawej strony
    • both: tamuje opływanie elementu z obu stron
    • none: pozwala na opływanie elementu z obu stron; wartość domyślna

Kilka zasad ogólnych

  • Elementy pozycjonowane bezwzględnie (position: absolute;) można umieszczać w dokumencie (x)HTML w dowolnej kolejności. Elementy pozycjonowane bezwzględnie zachowują się tak, jakby zostały wyjęte z toku dokumentu, zajmowana przez nie przestrzeń jest usuwana, tak jakby element nie istniał w ogóle. Rozmiar i położenie ustalane są w stosunku do bloku obejmującego za pomocą własności width i height oraz left, right, top, bottom.Elementy pozycjonowane bezwzględnie nie wpływają na inne ani swoim rozmiarem, ani swoim położeniem.
  • Elementy pozycjonowane względnie (position: relative;) są przemieszczane o wartości left, right, top i bottom w stosunku do swojego "naturalnego" położenia, wyznaczanego przez kolejność źródłową. Elementy pozycjonowane względnie tworzą nowy kontekst dla elementów umieszczonych wewnątrz (stają się elementami obejmującymi albo zawierającymi)
  • Kod HTML elementu pływającego (opływanego, z właściwością float: left | right | none) musi się znajdować przed kodem elementu opływającego; swobodę w ustalaniu kolejności źródłowej zapewnia możliwość zamiany w elementy pływające wszystkich elementów, które chcemy pozycjonować za pomocą właściwości float, np. kolumny z treścią główną i bocznych pasków.



Ikona przetlumacz.png
 Uwaga o zawartości

Ta strona wymaga przetłumaczenia lub jest w trakcie tłumaczenia! Pomoc jest mile widziana. Ostatnio edytowane przez Zwiastun (dyskusja. Data edycji: Tue, 26 May 2009 01:47:17 +0000


Using CSS files

To center any of the object in html document using .css or center tag .If you are using Joomla your joomla menu are unordered list
    and items in side the menu are with
  • .You can use following css in your css script file. CSS file with file name centerObj.css for 100X100 object. .centerelement { width: 100px; height: 100px; position: absolute; top: 50%; left: 50%; margin-left: -50px; margin-top: -50px; } or you can use: .centerelement { margin-left:0px; margin-right:0px; } and import it into your joomla document using JHTML::stylesheet(centerObj, $path); $path = path to your document.

    In joomla sites:

    For ordered and unordered List in joomla.Add the below code to your template.css related to joomla template.

    1. navcontainer ul

    {text-align: center; padding-bottom: 5px; padding-top: 5px; padding-left: 0; margin-top: 0; /* cancels gap caused by top padding in Opera 7.54 */ margin-left: 0; background-color: #036; color: white; width: 100%; font-family: Arial,Helvetica,sans-serif; line-height: 18px; /* fixes Firefox 0.9.3 */ }

    1. navcontainer ul li

    { display: inline; padding-left: 0; padding-right: 0; padding-bottom: 5px; /* matches link padding except for left and right */ padding-top: 5px; }

    1. navcontainer ul li a

    { padding-left: 10px; padding-right: 10px; padding-bottom: 5px; padding-top: 5px; color: white; text-decoration: none; border-right: 1px solid #fff; }

    1. navcontainer ul li a:hover

    { background-color: #369; color: white; }

    © Ten materiał jest dokładnym albo swobodnym tłumaczeniem artykułu http://docs.joomla.org/Horizontal_and_vertical_centering udostępnionego na licencji JEDL na witrynie: Joomla! Official Documentation Wiki
    Zmiana ścieżek obrazów – domyślny katalog obrazków systemowych
    Ikona przetlumacz.png
     Uwaga o zawartości

    Ta strona wymaga przetłumaczenia lub jest w trakcie tłumaczenia! Pomoc jest mile widziana. Ostatnio edytowane przez Zwiastun (dyskusja. Data edycji: Tue, 26 May 2009 01:47:17 +0000

    PHP essentials

    Wielu projektantów i właścicieli witryn internetowych nie ma doświadczeń z PHP, w którym napisane jest Joomla! i który wykorzystywany jest w szablonach dla Joomla!. Znajomość podstawowych instrukcji Joomla! jest niezbędna, by tworzyć szablony albo dostosowywać je do własnych potrzeb. Ten fragment (rozdział) przedstawia w prosty sposób, jak korzystać z różnych aspektów PHP w kontekście szablonów Joomla!. Przykładowo, objaśnia w prosty sposób składnię instrukcji warunkowej if-then-else stosowanej we fragmentach szablonów.

    Najlepszym sposobem opanowania PHP jest prawdopodobnie doświadczenie praktyczne. To może być kłopotliwe dla osób, które nigdy wcześniej nie programowały. Chociaż Joomla! jest wystarczająco łatwy, by go z pomocą społeczności zainstalować.

    Jednym z miejsc, gdzie znajdziesz listę funkcji i przykłady jest http://en.wikiversity.org/wiki/25_Essential_PHP_Functions, wystarczające, aby zaznajomić się z PHP, ale pełną listę funkcji, objaśnienia i przykłady znajdziesz na http://www.php.net.

    Gdy zdobędziesz podstawy PHP, będziesz potrzebować podstaw składni PHP w Joomla!. Pewne spojrzenie na początek znajdziesz, przeglądając kod wybranych rozszerzeń oraz czytając znajdujące się w tym samym miejscu poradniki:

    Przegląd tych materiałów będzie pomocny w zapoznaniu się z dostępnymi w Joomla! funkcjami i ich działaniem (stosowaniem API). Szczególnie poświęć swoją uwagę zrozumieniu koncepcji MCV (model - view - control).

    Jeśli jednak jesteś zupełnym nowicjuszem w PHP, poniżej znajdziesz zwięzłe wprowadzenie.

    Wprowadzenie do PHP

    PHP jest językiem skryptowym przeznaczonym do tworzenia dynamicznych stron internetowych. Ogólnie rzecz mówiąc jest osadzany wewnątrz HTML za pomocą znaczników takich jak <?php ... ?>. When such a page is passed on to the PHP engine, the engine translates the PHP tags into HTML and which can then be rendered by a browser. Further during translation the script may require to pull data from a database and thus a database is needed. So for creating PHP pages we require in general, the PHP engine, a database typically MySQL and finally the webserver which will co-ordinate these actions and forward the final HTML to the browser. Te 3 składniki można zainstalować odrębnie, ale dla istnieją wygodne pakiety WAMP dla Windows. MAMP dla Mac oraz LAMP dla Linux, umożliwiające kompleksową instalację. Instalowanie pakietów omówione zostało dalej.

    Instalacja PHP

    Pakiet instalacyjny można pobrać ze strony WAMP. Akronim WAMP oznacza: Windows, Apache, MySQL, PHP. Instalacja jet bardzo prosta. Można jej dokonać w dowolnym katalogu (D:/wamp). Po zainstalowaniu można rozpocząć działanie programu ->start -WampSerwer. W wyniku instalacji na pulpicie powinna się pojawić ikona skrótu, umożliwiająca start /zatrzymanie/restart serwera, a także udostępniająca odnośniki do ważnych plików, np. php.ini czy innych plików konfiguracyjnych. Dla systemów Mac można skorzystać z MAM dostępnego tutaj. Można również wykorzystać XAMPP.

    PHP Round trip

    Naszym pierwszym celem jest napisanie niewielkiego skryptu PHP i przetworzenie go przez serwer internetowy Apache. WAMP domyślnie szuka stron do przetwarzania w katalogu dokumentów, który odtąd dla wygody nazwiemy WAMP_HOME. Otwórz więc swój ulubiony edytor tekstowy i stwórz stronę ze skryptem nazwaną pierwszy.php, a następnie zapisz ją w katalogu WAMP_HOME/www/x/y, gdzie x, y są folderami (które stworzysz, aby uporządkować swoje skrypty). Umieść w pliku następujący skrypt:

    <html>
    <head>
       <title>Podstawowa strona PHP</title>
    </head>
    <body>
    <?php
    echo ("Mój pierwszy urywek PHP");
    ?>
    </body>
    </html>

    Zapisz plik, a następnie wywołaj w przeglądarce http://localhost/x/y/pierwszy.php. Powinieneś zobaczyć komunikat wysłany przez instrukcję echo.

    Najważniejsze rzeczy, na które powinieneś zwrócić tutaj uwagę:

    1. Zaleca się, aby rozpocząć skrypt znacznikiem "<?php" i zakończyć znacznikiem "?>".
    2. Każdą instrukcję kończymy średnikiem.
    3. Katalog, w którym umieszczany jest skrypt, musi zostać dodany do URL

    To kończy naszą podróż. Teraz dla nauki możesz dodawać do tego pliku kolejne elementy albo możesz tworzyć odrębne skrypty i załadować je w przeglądarce, aby sprawdzić efekt działania.

    Deklaracje zmiennych i typy danych PHP

    Programowanie zawsze wymaga jakichś danych. W PHP dane możemy przechowywać w następujący sposób:

    1. $nazwa_zmiennej = 0;
    2. Zauważ, że nie określiliśmy typu zmiennej. PHP nie wymaga określania typu zmiennych. Zmienna może przechowywać wartość dowolnego typu, pierwsze przypisanie wartości zmiennej tworzy zmienna, możliwe jest zastąpienie wartości zmiennej inną wartością o innym typie. Typ zmiennych nie jest sprawdzany ani w trakcie kompilacji, ani w trakcie wykonywania. W razie potrzeby PHP sam dokonuje konwersji typu zmiennych.
    3. nazwa zmiennej rozpoczyna się znakiem $ i może się składać z liter (małych bądź wielkich), cyfr (0-9) oraz znaku podkreślenia. Pierwszy znak po znaku $ nie może być cyfrą!
    4. deklarowanie stałych -
       define ("NAZWA_STALEJ" , $wartosc);

    Stała jest identyfikatorem prostej wartości. Raz ustalona wartość stałej jest niezmienna. Odnośnikiem do stałych są ich identyfikatory. Wartość nadaje się słowem define.

    Podstawowe operatory

    Poniżej zestawiamy podstawowe operatory z krótkim objaśnieniem.

    Operator Przykład Objaśnienie
    + 6 + 3 operator dodawania, wynikiem jest 9
    6 - 3 operator odejmowania, wynikiem jest 3
    / 6 / 3 operator dzielenia, wynikiem jest 2
    * 6 * 3 operator mnożenia, wynikiem jest 18
    % 6 % 3 reszta z dzielenia, wynikiem jest 0
    . '6'.'3' operator scalania (kontaminacji), efektem jest napis '63'
    += $x += 6 dodaje 6
    -= $x -= 6 odejmuje 6
    /= $x /= 6 dzieli przez 6
    %= $x %= 6 zwraca resztę z dzielenia przez 6
    .= $x .= '6' dołącza 6 do x
    < $x < $y mniejsze niż; zwraca wartość true (prawda), jeżeli $x jest < $y
    > $x > $y większe niż; zwraca wartość true (prawda), jeżeli $x jest > $y
    == $x == $y równe'; zwraca wartość true (prawda), jeżeli wartość $x jest równa wartości $y
    != $x != $y nierówne; zwraca wartość true (prawda), jeżeli wartość $x nie jest równa wartości $y
    === $x === $y identyczne; zwraca wartość true (prawda), jeżeli $x oraz $y są identyczne oraz są tego samego typu
    >= $x >= $y większe niż lub równe; zwraca wartość true (prawda), jeżeli $x jest >= $y
    <= $x <= $y dmniejsze niż lub równe; zwraca wartość true (prawda), jeżeli $x jest <= $y
    && ($x == 2 && $y == 3) logiczne i, and; zwraca wartość true (prawda), jeżeli $x jest równe 2 oraz $y jest równe 3 (jeśli oba argumenty są prawdziwe)
    || ($x == 2 || $y == 3) logiczne lub, or; zwraca wartość true (prawda), jeżeli jedna z wartości jest prawdziwa: $x jest równe 2 albo $y jest równe 3
    xor ($x == 2 xor $y == 3) logiczna różnica symetryczna; zwraca wartość true (prawda), jeżeli jeden z argumentów, ale nie oba, są prawdziwe: $x jest równe 2 albo $y jest równe 3, ale nie oba!
    ++ $x++ operator inkrementacji (zwiększania) $x
    –- $x-- operator dekrementacji (zmniejszania) $x

    Definiowanie struktury tablic

    Sposoby tworzenia tablic
    Tablice można tworzyć w PHP na trzy sposoby: przypisując wartość do jednego klucza, używając konstrukcji array () oraz wywołując funkcję, która zwraca jako wartość tablicę.

    Prostą metodą jest zadeklarowanie w konstrukcji array () listy wartości, ale nie jest to metoda zbyt elegancka, gdy np. chcemy umieścić w tablicy 100 zmiennych. Zauważ, że PHP rozpoczyna indeksowanie od 0.

    $moi_bohaterowie_gitary = array ("Hendrix", "Schenker", "Gilmour", "niewiele_nazw!");
    

    Albo

    $moi_bohaterowie_gitary [] = "Hendrix";
    $moi_bohaterowie_gitary [] = "Schenker";
    $moi_bohaterowie_gitary [] = "Gilmour";
    $moi_bohaterowie_gitary [] = "niewiele_nazw!";
    

    W tym przypadku PHP przypisuje indeks automatycznie. Albo

    $moi_bohaterowie_gitary [0] = "Hendrix";
    $moi_bohaterowie_gitary [10000] = "Mainak";
    

    W tym przypadku znałem pierwszy i 10001 wpis (pamiętamy że numeracja zaczyna się od 0)

    Albo kombinacja obu sposobów.

    Albo

    // Umieść elementy w pozycjach o wartości od 1 do 9999, "do decyzji".
    $moi_bohaterowie_gitary  = array_fill( 1, 9999, "do decyzji" ); 
    

    Uzyskanie dostępu do tablic

    Bezpośrednią metodą odczytywania wartości z tablic jest użycie indeksu:

    print $moi_bohaterowie_gitary[2]; //dostęp do 2. elementu
    

    Albo

    // Dostęp do ostatniego elementu (Zwróć uwagę, że pozycje elementu numerowane są od zera do 
    // [ilosc elementow] minus jeden.)
    $moi_bohaterowie_gitary[count($moi_bohaterowie_gitary)-1]; 
    

    Albo

    // Dostęp do ostatniego elementu za pomocą funkcji.
    end($moi_bohaterowie_gitary); 
    

    Przeglądanie elementów tablicy za pomocą iteracji

    foreach ( $moi_bohaterowie_gitary as $temp) {
      print "$temp<br />";
    }
    

    Instrukcja spowoduje przejrzenie tablicy $moi_bohaterowie_gitary i ustalenie wartości $temp, która zostanie następnie wypisana na ekranie.

    Instrukcje sterujące

    Do wykonania poleceń i kolekcji poleceń używane są różne instrukcje sterujące. Przykłady poniżej obrazują składnię wyrażeń.

    Konstrukcja if

    Instrukcja if sprawdza prawdziwość wyrażenia i - jeśli jest prawdziwe - wykonuje polecenia:

    if( $x > 0) {	
     print("$x jest dodatnie");
    }  else if( $x < 0 ) {	
     print("$x jst ujemne");
    } else {
     print("$x wynosi 0");
    }

    Pętla for Najpierw jeden raz wykonywane jest wyrażenie początkowe (zwykle używane do inicjalizacji zmiennych), następnie sprawdzany jest warunek zakończenia - jeżeli ma wartość false, pętla się kończy i wykonywane jest wyrażenie końcowe.

    for ( $x=1; $x<= 10; $x++ ) {
     print "$x<br />";
    }

    Pętla while

    Pętla oblicza wartość wyrażenia warunkowego, traktując je jako logiczne i wykonuje instrukcje ciała pętli, a następnie ponownie wylicza warunek. Jeżeli warunek jest fałszywy, wykonywanie jest kończone.

    $x = 1
    while ( $x <= 10 ) {
     print "$x<br />";
    }

    Pętla do while

    Jest podobna do pętli while, ale tutaj najpierw wykonywane są instrukcje ciała pętli, a dopiero potem sprawdzany jest warunek. Jedyną praktyczną różnicą pomiędzy while i do-while jest to, że ciało pętli zostanie wykonane co najmniej raz.

    $x = 1;
    do {
     print "$x<br />";
     $x++;
    }while($x <= 10);

    Definiowanie funkcji

    Kod, który jest powtarzany w wielu miejscach najlepiej umieścić w funkcji. Poniżej przedstawiono sposoby definiowania funkcji.

    function nazwa_funkcji( $argumenty, $rozmiar='jakas_domyslna_wartosc' ) {
      print "tutaj rozpoczyna się kod"; 
      return "ta wartość zostanie zwrócona, instrukcja return jest opcjonalna";
    }

    Argumenty w powyższym przykładzie są przekazywane przez wartość. Jeśli chcesz przekazać argument przez odwołanie (referencję), musisz go poprzedzić znakiem "&", jak poniżej:

    function nazwa_funkcji( &$argumenty, $rozmiar='jakas_domyslna_wartosc' ) {
      print "tutaj rozpoczyna się kod"; 
      return "ta wartość zostanie zwrócona, instrukcja return jest opcjonalna";
    }

    Zasięg zmiennych zdefiniowanych w funkcji jest ograniczony tylko do funkcji (zmienne zdefiniowane w funkcji są dostępne tylko wewnątrz funkcji.

    Wywołanie funkcji

    $x = add(5, 3);

    Debagowanie

    Podstawowe opcje wypisywania
    Podstawowym sposobem debagowania jest wypisanie wartości zmiennej. Oto podstawowe reguły wyświetlania:

    • echo "zmienna z dolarem ujęta w podwójny cudzysłów, jest rozwijana (zastępowana wartością)";
    • echo 'zmienna z dolarem ujęta w pojedynczym apostrof, nie jest rozwijana';
    • print "inny sposób wypisywania zamiast echo";
    • nl2br("dowolna nowa linia ze znakami jak \n automatycznie rozpoczynana jest w HTML od nowej linii ");

    W debagowaniu pomocne są pliki dzienników, które można znaleźć w katalogu WAMP_HOME/logs..

    Handling forms

    PHP does not change any HTML structure, thus any syntax of HTML remains the same. The part that PHP plays is making any part dynamic for e.g the action attribute of a form can be coded as action=<?php my_own_action(); ?> so that it is dynamically generated. The part where PHP kicks in is after the form is submitted, to say obtain the values of the form fields, set cookies etc. For this super global variables are used which are always available to PHP code. Some of these are

    1. $_GET - przechowuje wszystkie parametry, które są częścią żądania GET.
    2. $_POST - przechowuje wszystkie parametry, które są częścią żądania POST.
    3. $_REQUEST - przechowuje żądanie
    4. $_COOKIE - zawiera wszystkie wartości cookie przekazane jako część żądania
    5. $_SESSION - zawiera dane sesji

    Wszystkie zmienne globalne są tablicami i zachowują się jak tablice.

    PHP nie zmienia żadnej struktury HTML. Składnia HTML pozostaje taka sama.




    (np. echo, if-then-else)
    Ikona przetlumacz.png
     Uwaga o zawartości

    Ta strona wymaga przetłumaczenia lub jest w trakcie tłumaczenia! Pomoc jest mile widziana. Ostatnio edytowane przez Zwiastun (dyskusja. Data edycji: Tue, 26 May 2009 01:47:17 +0000

    • Wczytywanie za pomocą menedżera Media

    The simplest way to add images is to upload them from your computer using the Media Manager. First, of course, you have to download the image onto your computer and be able to find it. Then, from the Control Panel (back-end administrative interface) navigate to Site -> Media Manager.

    On the left is a directory tree, with the root directory "Media". This corresponds to the default "images" directory, yoursite/joomla/images. Pick a subdirectory where you want the image located, or else do nothing to upload the image to the default images directory.

    At the bottom of the page is a typical Upload box. Click "Browse" to locate the image on your computer, then "Upload" to upload the file to the server.

    • FTP

    Of course, you can upload images to a server using any standard FTP client. You might find this handier for adding images to template directories; however, if you have FTP set up, you probably don't need an explanation of how to add an image. Also, many server administration panels such as Cpanel and Plesk have upload capabilities.

    • Rozszerzenia

    There are several extensions, available from the Joomla extensions section, that handle image uploads.

    Deklarowanie pozycji modułów

    Żeby w edytorze modułów na liście wyboru pozycji pojawiły się pozycje do wyboru, trzeba je zadeklarować w pliku templateDetails.xml szablonu. Element <positions> w tym pliku zawiera elementy <position> - każdy z nich deklaruje jedną pozycję typową modułów.

    Na przykład poniższy element <positions> w templateDetails.xml zawiera deklaracje sześciu typowych pozycji:

    <positions>
    	<position>left</position>
    	<position>right</position>
    	<position>top</position>
    	<position>user1</position>
    	<position>user2</position>
    	<position>user3</position>
    	<position>user4</position>
    </positions>

    Można dodawać nowe pozycje i nazywać je dowolnie. Zalecane jest wszakże, aby w pliku templateDetails.xml znalazły się wszystkie typowe pozycje, umieszczone w przykładzie powyżej. Ten zestaw powszechnie stosowanych pozycji gwarantuje, że przełączając szablony albo korzystając z wielu szablonów na jednej witrynie, honorowane będą typowe ustawienia.

    Więcej informacji na temat rozmieszczenia pozycji modułów w pliku szablonu znajdziesz na stronie Use and Implementation.



    Jak znaleźć pozycje modułów na dowolnej stronie

    Aby zobaczyć rozplanowanie pozycji modułów zastosowane na jakiejś stronie Joomla!, postępuj według poniższej procedury:

    1. Otwórz w przeglądarce wybraną stronę.
    2. Kliknij w pasku adresu przeglądarki, aby umieścić w nim kursor.
    3. Przyjrzyj się parametrom na końcu adresu. Parametry są oddzielone znakiem zapytania. Na przykład w adresie http://moja-domena.com/index.php?id=17 napis "id=17" to parametr.
    4. Jeśli nie ma tam żadnych parametrów, dodaj do adresu napis "?tp=1" i naciśnij klawisz ENTER. Na przykład: http://moja-domena.com/index.php?tp=1.
    5. Jeśli są jakieś parametry, dodaj na końcu adresu "?tp=1" i naciśnij klawisz ENTER. Na przykład: http://moja-domena.com/index.php?id=17&tp=1.
    6. Pozycje modułów zostaną oznaczone czerwoną otoczką.

    Uwaga: w pewnych okolicznościach pozycje modułów nie zostaną otoczone czerwonym obramowaniem. Może się tak zdarzyć w przypadku pozycji, które są objęte instrukcją warunkową, powodującą ich wyświetlanie tylko wówczas, gdy w pozycji zostały umieszczone jakiś moduły. Jeśli w takiej pozycji nie będzie akurat żadnego modułu, to nie będzie ona widoczna w podglądzie.

    Zmiana ikony favicon

    Favicon - ikona ulubionych albo ikona witryny to niewielki kwadratowy obrazek, który pojawia się przed adresem w polu adresowym przeglądarki internetowej (jeśli przeglądarka obsługuje favicon - zobacz). Ikona ta ma postać obrazka 16x16 lub 32x32 pikseli.

    Przeglądarki wyświetlają favicon:

    • jeśli zostanie zdefiniowana znacznikiem <link rel="icon".... >, umieszczonym w nagłówku HTML (XHTML) szablonu witryny lub dokumentu strony.
    • gdy zostanie ona umieszczona w głównym katalogu witryny

    Konsorcjum W3C zaleca stosowanie pierwszego sposobu, uznając drugi za niezgodny ze standardami Sieci.

    Joomla! sprawdza ponadto, czy ikona witryny została umieszczona w głównym katalogu używanego szablonu i - jeśli ma do niej dostęp - wyświetla ją bez względu na to, czy została zdefiniowana w kodzie szablonu.

    Ikona informacja.png
     Informacja

     W Joomla 1.0 plik favico.ico znajdował się w katalogu /images i tam był poszukiwany, o ile szablon nie zawierał kodu przekierowującego przeglądarkę np. do katalogu /templates/nazwa_szablonu/icon.


    Aby zmodyfikować favicon:

    1. Stwórz obrazek wielkości 16x16 pikseli.
      Możesz skorzystać z dowolnych programów graficznych, jak Photoshop, Gimp lub Windows Paint albo sieciowego narzędzia do tworzenia ikon, jak np. http://antifavicon.com/ albo icofx http://www.dobreprogramy.pl/IcoFX,Program,Windows,12448.html
      Uwaga! Możesz także stworzyć obrazek wielkości 32x32px, 48x48, 64x64 a nawet 128x128px. Co więcej, tworząc ikonę w większym rozmiarze, uzyskasz - w przypadku bardziej skomplikowanych obrazków ładniejszy wygląd. Oczywiście, nie można przesadzać - większy obrazek to większy rozmiar pliku, a więc i nico dłuższy czas ładowania strony. Ale ikona witryny powinna się ładnie prezentować. A przeglądarki automatycznie przeskalują ją do standardowego rozmiaru, bez dużej straty walorów estetycznych.
    2. Przekonwertuj go do formatu ico korzystając z narzędzi w Sieci:
    3. Przekopiuj plik do folderu według lokalizacji powyżej. (do katalogu /joomla/templates/twoj_szablon)
    4. Nazwij plik favicon.ico.
      Alternatywnie można zmodyfikować plik index.php szablonu, aby wskazywał preferowany plik nazwa.ico.
    5. Otwórz przeglądarkę. Widzisz nową ikonę? Jeśli tak, gratulacje. Jeśli nie, to niekoniecznie oznacza, że coś zrobiłeś źle. Przeglądarki zaprojektowane zostały tak, aby minimalizować ruch w sieci, nie zawsze więc pobierają (odświeżają) favicon. Nawet jeśli użyjesz do odświeżenia klawisza F5. Trzeba dokonać gruntownego wyczyszczenia pamięci podręcznej (odświeżenia):
      • Mozilla / Firefox / Safari: naciśnij klawisz Shift i przycisk Odśwież albo naciśnij kombinację klawiszy Ctrl-Shift-R (Cmd-Shift-R w Apple Mac);
      • IE: : naciśnij klawisz Ctrl i przycisk Odśwież albo naciśnij kombinację klawiszy Ctrl-F5;
      • Konqueror: po prostu naciśnij przycisk Odśwież lub klawisz F5;
      • Opera: wyczyść pamięć podręczną, korzystając z narzędzi Tools → Preferences.

    Jeśli te sposoby zawiodą, konieczne będzie wyczyszczenie katalogu tymczasowego i historii przeglądarki.

    Favicon.png


    Niektóre szablony zawierają kod, który przekierowuje przeglądarkę do innego katalogu albo innego pliku. Aby ustalić, gdzie powinien być plik z ikoną witryny, przejrzyj plik http://twoja_domena.com/templates/nazwa_szablonu/index.php i znajdź tekst zawierający <link rel="shortcut icon" albo - poprawniej - <link rel="shortcut icon". W wierszu tym znajdziesz nazwę katalogu i nazwę pliku z grafiką ikony. Skopiuj swoją ikonę do tego katalogu i nadaj jej nazwę określoną w tym wierszu. Upewnij się, że plik ma poprawne uprawnienia (do odczytu - 0644) i że serwer internetowy ma dostęp do tego katalogu (755). Zobacz przykład poniżej.

    <link rel="icon" href="http://twoja_domena.com/templates/nazwa_szablonu/icon/favicon.ico" />
    <link rel="icon" type="image/ico" href="http://twoja_domena.com/templates/nazwa_szablonu/icon/favicon.ico" />
    <link rel="icon" type="image/x-icon" href="http://twoja_domena.com/templates/nazwa_szablonu/icon/favicon.ico" />

    Składnia relacji przewiduje możliwość zastosowania relacji specjalnej - powiązania z plikiem ikony. Ale IE rozpoznaje jedynie atrybut "shortcut icon". Aby rozwiązać wynikający stąd problem, proponuje się stosować składnię link rel="icon" z dowolną grafiką oraz umieszczenie w głównym katalogu witryny ikony nazwanej favicon.ico. Można też użyć składni link rel="shortcut icon".

    Kod sprawdzający, czy w głównym katalogu używanego szablonu znajduje się plik z ikoną witryny, można znaleźć w pliku katalog_joomla/libraries/joomla/document/html/html.php - około wiersza 343. Jeśli nie chcesz, aby Joomla! sprawdzał katalog szablonu w poszukiwaniu ikony witryny, możesz opatrzyć kod znakami komentarza, jak poniżej:

    From the html.php

    #		// Try to find a favicon by checking the template and root folder
    #		$path = $directory . DS;
    #			$dirs = array( $path, JPATH_BASE . DS );
    #			foreach ($dirs as $dir )
    #			{
    #				$icon =   $dir . 'favicon.ico';
    #				if (file_exists( $icon ))
    #				{
    #					$path = str_replace( JPATH_BASE . DS, '', $dir );
    #					$path = str_replace( '\\', '/', $path );
    #					$this->addFavicon( JURI::base(true).'/'.$path . 'favicon.ico' );
    #					break;
    #			}
    #		}

    Dodanie Favicon poprzez funkcję Joomla

    Jedną z prostszych metod dodania favicon do naszej strony jest umieszczenie w pliku szablonu takiej oto funkcji:

    <?php $this->addFavicon('sciezka_do_pliku.ico'); ?>

    Gdzie sciezka_do_pliku.ico jest pełną ścieżką do naszej ikonki czyli np. /templates/naszszablon/favicon.ico

    Zobacz także

    © Ten materiał jest dokładnym albo swobodnym tłumaczeniem artykułu http://docs.joomla.org/Changing_the_site_favicon udostępnionego na licencji JEDL na witrynie: Joomla! Official Documentation Wiki