Konfigurowanie sprzętu i oprogramowania

§2. Jak zrobić pionowe menu rozwijane w php

Ponieważ eksponuje zawartość modułu menu.php. Poniżej zaprezentujemy własne opracowanie menu w języku PHP, które zostało napisane od podstaw w notatniku.

Ten kod będzie szczególnie przydatny w przypadku dynamicznych witryn, które mają niestandardowe silniki. Zaproponuję dwie opcje kodu, które różnią się niewielkimi różnicami (różnice zostaną wyjaśnione później).

Na początek podam przybliżoną strukturę witryny, dla której odpowiednie jest to menu. Struktura witryny powinna wyglądać następująco (widok klasyczny):

/index.html /razdel_1/ /razdel_1/artykuły_1.html /razdel_1/artykuły_2.html ... /razdel_2/ /razdel_2/artykuły_1.html /razdel_2/artykuły_2.html ... ... ... /razdel_N/artykuły_2 .html

Witryna może również zawierać podsekcje dla sekcji:

/razdel_1/podzaderl_1/ /razdel_1/podzaderl_1/articles_1.html /razdel_1/podzaderl_1/articles_2.html ... /razdel_1/podzaderl_2/articles_1.html /razdel_1/podzaderl_2/articles_2.html

Ta struktura będzie działać również w naszym menu, z niewielkimi różnicami.

Sugeruję utworzenie osobnego pliku dla menu w php. Na przykład menu.php byłoby świetną nazwą dla takiego pliku. Aby zaimplementować menu, udostępniono również styl menu w CSS, który natychmiast czyni go mniej lub bardziej pięknym. Oczywiście ten styl jest podany wyłącznie w celach informacyjnych, ponieważ projekty witryn są bardzo różne.

Kod do stylizacji menu w CSS:

.menu ( wysokość:42px; dopełnienie:0 0 0 16px; tło:url(images/spacer.png) powtórz; ) .menu li ( display:block; float:left; ) .menu li.active ( tło: #000011 ; ) .menu a ( kolor:#FFF; wyświetlacz: blok; wysokość linii: 42 pikseli; dekoracja tekstu: brak; dopełnienie: 0 14 pikseli; ) .menu a: najechanie ( tło: url (images/spacer.png) powtórz ;)

Przyjrzyjmy się teraz pierwszej opcji implementacji menu w PHP, która jest nieco uproszczona.

Pierwsza wersja kodu menu w PHP

\n"; dla ($i=0;$i ": "
  • "; Echo " ".$array_menu[$i]["nazwa"]."
  • \n"; ) echo ""; ?>

    Menu można podzielić na dwie części. Pierwsza zawiera tablicę informacyjną $array_menu, która zawiera nazwy naszych sekcji wraz z linkami do sekcji. Istnieje możliwość wprowadzenia tych danych do bazy dane MySQL'a, ale nie ma w tym szczególnego punktu, ponieważ próbka jest bardzo mała, więc nie wpłynie to na szybkość pracy.

    Druga część zawiera wyjście menu poprzez dla pętli. Cykl porównuje adres witryny z adresem z tablicy $array_menu. Jeśli jest dopasowanie, wyświetlamy kolejną sekcję menu ze specjalną aktywną klasą:

  • , inaczej po prostu
  • . Dzięki temu możemy wyróżnić kolorem część menu, w której znajduje się użytkownik. Moim zdaniem jest to niezbędna rzecz w przypadku każdej witryny, aby użytkownik mógł zrozumieć, w której sekcji się znajduje.

    Kolejność w tablicy zostanie zachowana po wyświetleniu menu na stronie. Oznacza to, że tablicę należy wypełnić w kolejności, w jakiej menu powinno być wyświetlane.

    Notatka:
    Jeżeli adresy URL (adresy) nagłówków sekcji wyglądają następująco:
    /Sekcja 1
    lub tak
    /razdel_1/nazvanie_razdela.html
    następnie musisz napisać dokładne dopasowanie w array_menu:
    $array_menu[$i]["url"]="/razdel_1"
    lub w drugim przypadku:
    $array_menu[$i]["url"]="/razdel_1/nazvanie_razdela.html";

    Jak działa pierwsza opcja menu?
    Podświetla menu tylko wtedy, gdy znajdujesz się pod adresem nagłówka sekcji. Przykładowo jeśli adres strony to /razdel_1/articles_1.html to menu nie zostanie w żaden sposób podświetlone.

    Druga wersja kodu jest zmodyfikowaną wersją pierwszej i zapewnia możliwość podświetlania menu nawet w artykułach, które znajdują się w sekcjach.

    Druga wersja kodu menu w PHP

    "; dla ($i=0;$i ": "
  • "; echo "".$array_menu[$i]["tytuł"]."
  • "; ) else ( echo ($URL) == ($array_menu[$i]["url"]) ? "
  • ": "
  • "; echo "".$array_menu[$i]["tytuł"]."
  • "; ) ) Echo ""; ?>

    Żadna strona internetowa nie jest kompletna bez nawigacji lub, jak to nazywają, „menu witryny”. Zatem menu witryny może być jednopoziomowe lub wielopoziomowe w formie drzewa. Jeśli nie ma szczególnych trudności we wdrożeniu menu jednopoziomowego, wówczas tworząc menu wielopoziomowe należy dokładnie przemyśleć.

    Najważniejszą rzeczą w tym zadaniu jest zaprojektowanie bazy danych dla naszego wielopoziomowego menu. Utwórzmy tabelę Kategorie z trzema polami ID, tytuł, rodzic Gdzie:

    • ID- identyfikator
    • Tytuł- Nazwa menu
    • Rodzic- Domyślny rodzic kategorii 0

    Pole odpowiada za rozgałęzienie menu Rodzic Jeśli Rodzic = 0, wówczas ta kategoria jest kategorią nadrzędną. Aby dodać potomków do kategorii nadrzędnej, należy określić w polu nadrzędnym ID właściwym rodzicem. Na przykład:

    Tabele z kategoriami

    Jak widać z tabeli, kategoria nadrzędna Samochody jest dwóch potomków - to jest Mazdy I Hondy powiązane według dziedzin Rodzic. I kategoria Motocykle jest dwóch potomków Kawasaki I Harley. Jednocześnie kategoria Łodzie nie ma potomków. Mam nadzieję, że rozumiesz, jak łączyć kategorie.

    Następnie przechodzimy od słów do praktyki. Utwórzmy tabelę Kategorie.

    UTWÓRZ TABELĘ JEŚLI NIE ISTNIEJE `kategorie` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `parent` int(10) unsigned NOT NULL, KLUCZ PODSTAWOWY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ; -- -- Zrzut danych z tabeli `kategorie` -- WSTAW DO `kategorii` (`id`, `title`, `parent`) WARTOŚCI (1, "Samochody", 0), (2, "Motocykle", 0 ) , (3, „Mazda”, 1), (4, „Honda”, 1), (5, „Kawasaki”, 2), (6, „Harley”, 2), (7, „Mazda 3”, 3 ), (8, „Mazda 6”, 3), (9, „Sedan”, 7), (10, „Hatchback”, 7), (11, „Łodzie”, 0), (12, „Liftback” , 8), (13, „Crossover”, 8), (14, „biały”, 13), (15, „czerwony”, 13), (16, „czarny”, 13), (17, „zielony” , 13), (18, „Mazda CX”, 3), (19, „Mazda MX”, 3);

    Algorytm pracy składa się z następujących elementów:

    Utwórz połączenie z bazą danych

    zapytanie("USTAW NAZWY "utf8""); /* * Jest to „oficjalny” sposób zorientowany obiektowo, * jednak $connect_error nie działał aż do wersji PHP 5.2.9 i 5.3.0. */ if ($mysqli->connect_error) ( die("Błąd połączenia (" . $mysqli->connect_errno. ") " . $mysqli->connect_error); ) /* * Jeśli chcesz mieć pewność kompatybilności z wersjami przed wersją 5.2 .9, * lepiej jest użyć tego kodu */ if (mysqli_connect_error()) ( die("Błąd połączenia (" . mysqli_connect_errno() . ") " . mysqli_connect_error()); )

    Napisanie funkcji pobierającej dane z tabeli Kategorie

    //Pobierz tablicę naszego menu z bazy danych jako funkcję tablicową getCat($mysqli)( $sql = "WYBIERZ * Z `kategorii`"; $res = $mysqli->query($sql); //Utwórz tablica, gdzie kluczem tablicy jest identyfikator menu $cat = array(); while($row = $res->fetch_assoc())( $cat[$row["id"]] = $row; ) return $ kot; )

    Otrzymujemy taką tablicę, gdzie kluczem tablicy jest identyfikator kategorii.

    Funkcja konstrukcji z litego drewna firmy Tommy Lacroix

    //Funkcja do budowania drzewa z tablicy Tommy'ego Lacroix funkcja getTree($dataset) ( $tree = array(); foreach ($dataset as $id => &$node) ( //Jeśli nie ma żadnych załączników if ( !$node[" parent"])( $tree[$id] = &$node; )else( //Jeśli istnieją dzieci, wykonaj iterację po tablicy $dataset[$node["parent"]]["childs "][$id] = &$ węzeł; ) ) zwraca $drzewo; )

    Otrzymujemy tablicę w postaci drzewa

    Cały skrypt

    zapytanie("USTAW NAZWY "utf8""); /* * Jest to „oficjalny” sposób zorientowany obiektowo, * jednak $connect_error nie działał aż do wersji PHP 5.2.9 i 5.3.0. */ if ($mysqli->connect_error) ( die("Błąd połączenia (" . $mysqli->connect_errno. ") " . $mysqli->connect_error); ) /* * Jeśli chcesz mieć pewność kompatybilności z wersjami przed wersją 5.2 .9, * lepiej jest użyć tego kodu */ if (mysqli_connect_error()) ( die("Błąd połączenia (" . mysqli_connect_errno() . ") " . mysqli_connect_error()); ) //Pobierz tablicę naszego menu z bazy danych jako funkcja tablicowa getCat($mysqli)( $sql = "WYBIERZ * Z `kategorii`"; $res = $mysqli->query($sql); //Utwórz tablicę, w której klucz tablicy to identyfikator menu $cat = array(); while ($row = $res->fetch_assoc())( $cat[$row["id"]] = $row; ) return $cat; ) //Funkcja dla budowanie drzewa z tablicy z funkcji Tommy'ego Lacroix getTree($dataset) ( $tree = array(); foreach ($dataset as $id => &$node) ( //Jeśli nie ma żadnych załączników if (!$node[ "parent"])( $tree[$id] = &$node; )else( //Jeśli istnieją potomki, przejdź przez tablicę $dataset[$node["parent"]]["childs"][$ id] = &$node; ) ) return $tree; ) //Pobierz przygotowaną tablicę z danymi $cat = getCat($mysqli); //Utwórz menu w kształcie drzewa $tree = getTree($cat); //Szablon wyświetlania menu w postaci funkcji drzewiastej tplMenu($kategoria)( $menu = "
  • ". $kategoria["tytuł"].""; if(isset($kategoria["dzieci"]))( $menu .= "
      ". showCat($kategoria["dzieci"]) ."
    "; ) $menu .= "
  • "; return $menu; ) /** * Przeczytaj nasz szablon rekurencyjnie **/ funkcja showCat($data)( $string = ""; foreach($data as $item)( $string .= tplMenu($item); ) return $string; ) //Pobierz znaczniki HTML $cat_menu = showCat($tree); //Wyświetl echo "
      „.$kot_menu.”
    "; ?>

    Wynik pracy

    Wielopoziomowe menu w PHP + MySQL dla panelu administracyjnego

    Jeśli chcesz korzystać z tego menu w panelu administracyjnym swojej witryny, musisz przepisać kilka funkcji tplMenu(), pokażKota().

    „.$kategoria[„tytuł”].”"; )else( $menu = " "; ) if(isset($kategoria["dzieci"]))( $i = 1; for($j = 0; $j< $i; $j++){ $str .= "→"; } $i++; $menu .= showCat($category["childs"], $str); } return $menu; } /** * Рекурсивно считываем наш шаблон **/ function showCat($data, $str){ $string = ""; $str = $str; foreach($data as $item){ $string .= tplMenu($item, $str); } return $string; } //Получаем HTML разметку $cat_menu = showCat($tree, ""); //Выводим на экран echo ""; ?>

    Wynik pracy

    Wybierz samochody → Mazda → → Mazda 3 → → → Sedan → → → Hatchback → → Mazda 6 → → → Liftback → → → Crossover → → → → Biały → → → → Czerwony → → → → Czarny → → → → Zielony → → Mazda CX → → Mazda MX → Motocykle Honda → Kawasaki → Łodzie Harley

    Ogólnie rzecz biorąc, zadanie stworzenia menu obejmuje:

    • podświetlanie elementów HTML w celu zbudowania menu;
    • tworzenie szablonu menu (tworzenie szablonu komponentu Menu);
    • włączenie funkcji wyświetlania menu (wywołanie komponentu Menu) w szablonie ogólnym („prolog” i „epilog”);
    • wypełnienie menu zgodnie ze strukturą serwisu.

    Struktura menu

    Każde menu na stronie internetowej zbudowane jest w oparciu o dwa komponenty:

    • tablica danych $aMenuLinks, która definiuje skład menu, określa nazwy i łącza do wszystkich pozycji menu. Tablicą danych zarządza się poprzez interfejs administracyjny;
    • szablon prezentacji menu zewnętrznego. Szablon menu to kod PHP, który definiuje wygląd menu (szablon komponentu Menu). Szablon menu przetwarza tablicę danych, tworząc kod HTML jako wynik.

    Tablica danych menu

    Dane dla każdego typu menu przechowywane są w osobnym pliku, którego nazwa ma następujący format: .<тип меню>.menu.php. Na przykład, aby zapisać dane menu, takie jak lewy plik zostanie użyty .lewe.menu.php i do przechowywania danych menu, takich jak szczyt- plik .top.menu.php.

    Menu jest dziedziczone hierarchicznie. Pliki menu umieszczane są w folderach tych sekcji serwisu, w których wymagane jest wyświetlenie odpowiednich typów menu. Jeśli za ta sekcja odpowiedni plik menu nie został utworzony, system szuka pliku w katalogu na wyższym poziomie.

    Na przykład, ponieważ menu główne (w wersji demonstracyjnej produktu jest to menu typu szczyt) powinien zostać wyświetlony we wszystkich sekcjach, a następnie w pliku to menu umieszczane wyłącznie w katalogu głównym witryny.

    Odpowiednio menu drugiego poziomu (w wersji demonstracyjnej produktu to menu lewy) jest wyświetlany oddzielnie dla każdej sekcji serwisu. Dlatego w folderze każdej sekcji tworzony jest własny plik tego typu menu.

    Inny przykład: gość znajduje się w sekcji /ru/company/about/. Aby wyświetlić lewe menu, system przeszukuje plik menu w następującej kolejności:

    1. /ru/company/about/.left.menu.php
    2. /ru/company/.left.menu.php
    3. /ru/.left.menu.php
    4. /.lewe.menu.php

    Jeśli w jednym z katalogów zostanie znalezione menu, wyszukiwanie zostanie zatrzymane i nie będzie już przeszukiwane w kolejnych katalogach.

    System Bitrix Framework umożliwia także tworzenie menu typ dynamiczny Aby to zrobić, musisz włączyć tę opcję w komponencie Menu Dołącz pliki o nazwach takich jak.menu_type.menu_ext.php(„USE_EXT” => „Y”), które jest domyślnie wyłączone.. Te. tablica danych dla takich menu jest generowana automatycznie na podstawie niektórych danych uzyskanych za pomocą kodu programu. Ten kod powinny być przechowywane w folderze odpowiedniej sekcji witryny w pliku o nazwie .<тип меню>.menu_ext.php.

    Głównym zadaniem takich plików jest manipulowanie tablicą $aMenuLinks. Pliki te nie są edytowane wizualnie w module Zarządzanie strukturą, aby nie można było ich przypadkowo edytować podczas wizualnej edycji menu. Tworząc ten plik, użyj komponentu Elementy menu (bitrix:menu.sekcje).

    Notatka: W powyższym akapicie mówimy jedynie o uzupełnieniu utworzonego menu o nazwy sekcji bloku informacyjnego. Na przykład ta opcja nie nadaje się do dodawania nazw forów do menu.

    Uwaga! Jeśli jako pozycje menu używane są sekcje katalogu inne niż NC, należy określić zmienne w istotnych zmiennych zapytania.

    Przykładem takiego menu może być lewe menu Sekcja Katalog książek, prezentowane w wersji demonstracyjnej produktu. Oto dwie pierwsze pozycje menu Autorski I Opinie Utworzony w zwykły sposób, i reszta ( Literatura biznesowa, Literatura dziecięca itp.) powstają dynamicznie.

    W tym przypadku nazwy grup katalogów używane są jako pozycje menu Książki, utworzone na podstawie bloków informacyjnych. Kod programu, na podstawie którego generowane jest menu, zapisywane jest w pliku .left.menu_ext.php w folderze /e-sklep/książki/.


    W plikach .<тип меню>.menu.php Można zastosować następujące zmienne standardowe:

    • $sMenuTemplate - bezwzględna ścieżka do szablonu menu (ta zmienna jest używana niezwykle rzadko);
    • $aMenuLinks to tablica, której każdy element opisuje inną pozycję menu.

      Struktura tej tablicy:

      Tablica ( => pozycja menu 1 Tablica ( => tytuł pozycji menu => link w pozycji menu => tablica dodatkowych linków do wyróżnienia pozycji menu: Tablica ( => link 1 => link 2 ...) => tablica dodatkowych zmiennych przekazanych do szablonu menu: Array ([nazwa zmiennej 1] => wartość zmiennej 1 [nazwa zmiennej 2] => wartość zmiennej 2 ...) => warunkiem pojawienia się pozycji menu jest PHP wyrażenie, które powinno zwrócić „true”) => pozycja menu 2 => pozycja menu 3 ...)

    Przykładowe pliki menu

    IsAuthorized()"), Array("Dziennik szkoleń", "gradebook.php", Array(), Array(), "\$GLOBALS["USER"]->IsAuthorized()"), Array("Kwestionariusz specjalisty" , "profile.php", Array(), Array(), "\$GLOBALS["USER"]->IsAuthorized()"),); ?>IncludeComponent("bitrix:menu.sections", "", Array("ID" => $_REQUEST["ELEMENT_ID"], "IBLOCK_TYPE" => "książki", "IBLOCK_ID" => "30", "SECTION_URL" = > "/e-store/books/index.php?SECTION_ID=#ID#", "CACHE_TIME" => "3600")); $aMenuLinks = array_merge($aMenuLinks, $aMenuLinksExt); ?>

    Organizacja wyświetlania menu

    Wyświetlanie menu na stronach serwisu odbywa się za pomocą komponentu Menu (bitrix:menu). Na przykład wywołanie górnego menu na stronie demonstracyjnej wygląda następująco.

    Menu witryny w PHP, kontrolowane przez skrypty PHP, ma swoją własną charakterystykę. Nie są to tylko linki bezwzględne czy względne, chociaż może tak być, ale z reguły dynamicznie generowane bloki linków z bocznych paneli z sekcjami i podsekcjami oraz bloki linków z strony wewnętrzne strona. Dynamicznie generowane menu jest bardzo wygodne, ponieważ można je wstawić w dowolnym miejscu serwisu i co najważniejsze, odpowiedni czas. Oznacza to, że przechodząc do różnych sekcji i podsekcji, możesz dynamicznie rozwijać i różne bloki menu. Co więcej, mogą różnić się nie tylko treścią, ale także formą i designem. W witrynie statycznej można również wykonywać takie sztuczki, ale będzie to kosztować dodatkowe pliki szablon i wiele innych sztuczek. Podczas gdy witryna napisana w PHP nie wymaga tego. Szablon pozostanie taki, jaki był. Całość będzie kontrolowana przez jeden lub więcej prostych skryptów PHP.

    Aby to zweryfikować wystarczy napisać skrypt PHP, który dynamicznie wygeneruje menu np. pierwszej kategorii i wymusi na nim rozwinięcie menu tej kategorii poprzez wcześniej napisany skrypt. Pozostałe nagłówki można utworzyć w podobny sposób. Co więcej, sam kod skryptu pozostanie praktycznie niezmieniony. Zmieni się jedynie plik tekstowy, który będzie decydował o nazwach linków i samych linkach. Kod takiego skryptu podano poniżej.

    // Kreator menu
    $menu = @plik($rubric1_menu);
    $linie = liczba($menu);
    dla ($i = 0; $i< $lines; $i++)
    {
    list($menu_link,$menu_name,$menu_title)=eksplode("::", $menu[$i]);
    if($page == rub1_part1 i $i == 0) ($refcolor = "style="color:#cc0000"";)
    elseif($page == rub1_part2 i $i == 1) ($refcolor = "style="color:#cc0000"";)
    elseif($page == rub1_part3 i $i == 2) ($refcolor = "style="color:#cc0000"";)
    else ($refcolor = "";)
    $rubryka1.="

  • „.$nazwa_menu.”
  • ";
    }
    ?>

    Aby taki skrypt zadziałał potrzebny jest plik tekstowy, w którym będą zapisane nazwy linków menu, same linki oraz ich tytuł. Utworzenie takiego pliku nie jest trudne, wystarczy uruchomić polecenie Plik -> Nowy z głównego menu programu Dreamweaver, utworzyć nowy dokument HTML zgodnie z wcześniejszym opisem sprawdź i w razie potrzeby zmień kodowanie nowego pliku na UTF-8, a następnie zapisz go pod nazwą rubric1.dat w utworzonym wcześniej dla niego folderze data. Pełna ścieżka do tego pliku to D:/Mysitephp/data/rubric1.dat. Zawartość poniższego pliku to same linki, ich nazwy i tytuł (wskazówki). W dodatku do biegania ten skrypt do działania, należy go podłączyć za pomocą funkcji włączać() w silniku szablonów main.php.

    Rub1_part1::Sekcja 1::Sekcja 1 rubryka 1::
    rub1_part2::Sekcja 2::Sekcja 2 rubryka 1::
    rub1_part3::Sekcja 3::Sekcja 3 rubryka 1::

    Dodatkowo należy także utworzyć mały skrypt z ustawieniami, który będzie przechowywał pełny adres witryny, ścieżki do folderów stron i metaopisy witryny, ścieżki do plików menu witryny i połączyć go za pomocą funkcji włączać() w silniku szablonów main.php. Aby to zrobić, musisz utworzyć nowy plik php i zapisać go pod nazwą taką jak settings.php w folderze php. Pełna ścieżka do pliku to D:/Mysitephp/php/settings.php, a jego zawartość podano poniżej.

    # folder z dokumentami HTML
    $doctemplates = "szablony";
    # pełna ścieżka do katalogu skryptów
    $turl="http://mysitephp.ru";
    #baza danych z danymi
    $rubric1_menu = "dane/rubric1.dat";
    ?>

    Jak działa skrypt PHP do tworzenia menu? Najpierw przejdź do zmiennej $menu za pomocą funkcji plik() Umieszczana jest zawartość pliku tekstowego rubric1.dat. Następnie funkcja liczyć() liczy liczbę linii plik tekstowy i funkcje lista() I eksplodować() samo menu rozwijane jest w pętli, gdzie opisano sposób sklejania linii (operacja kropka . ) tworzone są wiersze linków z ich nazwami i tytułami, które następnie umieszczane są w zmiennej $rubric1. Następny jest skrypt silnika szablonów, w którym skrypt menu jest połączony funkcją włączać(), przenosi zawartość zmiennej $rubric1 w żądane miejsce w serwisie za pomocą opisanej wcześniej funkcji odp().

    Takie menu jeszcze nie będzie działać, ponieważ zawiera tylko same linki ze wszystkimi niezbędnymi atrybutami, ale nie ma skryptu, który zapewniłby przejście do tych linków i otwarcie stron witryny, które będą odpowiadać tym linkom. Ten skrypt php zajmiemy się tym dalej.

    Następnie możesz zaktualizować projekt za pomocą skryptu generowania menu. Zaktualizowany projekt możesz także pobrać na stronie, która otworzy się po rejestracji i aktywacji bezpłatna subskrypcja na panelu po prawej stronie. Adres strony musi zostać zapisany. To na tej stronie będą się w przyszłości pojawiać linki do pobierania aktualizacji projektu, różnych przydatnych skryptów, programów, lekcji i samouczków wideo na temat projektowania obwodów, programowania i tworzenia stron internetowych. dla nowicjuszy.

    Pobrany projekt strony php zaktualizowany o nowe skrypty można teraz porównać z tym, co stało się w wyniku opisanych powyżej kroków. Następnie, aby wyeliminować rozbieżności, przydałoby się całkowicie zastąpić projekt pobranym, wykonać operację, uruchomić serwer Denwer, wpisać w oknie przeglądarki mysitephp.ru i zobaczyć, co z tego wyjdzie. Menu pierwszej sekcji powinno rozwinąć się w lewej górnej części szablonu, jak pokazano na poniższym obrazku.

    Idź i wtop się w swoją ulubioną sieć społecznościową

    Jeśli interesuje Cię odpowiedź na pytanie jak stworzyć menu strony internetowej to dobrze trafiłeś.

    Przyjrzymy się stworzeniu dynamicznego menu w PHP, napisanego specjalnie dla manekinów programowania, a także dla tych, którzy są jeszcze w zbiorniku.

    Lekcja 3. Tworzenie dynamicznego menu w php dla strony internetowej - dla opornych

    Stwórzmy przyszły układ naszej strony internetowej. Aby to zrobić, narysujemy w Photoshopie super piękną stronę internetową i pokroimy ją na kawałki. Wyobraźmy sobie, że nagłówek, logo, menu i stopka nie są zapisane słownie, jak w w tym przykładzie, a są to znakomicie i kolorowo zaprojektowane elementy strony internetowej.

    Stwórzmy na przykład trzy strony i nazwijmy je Sekcja 1, Sekcja 2, Sekcja 3

    Ten tekst jest dla różne strony będzie inaczej, ale nie będziemy się tym przejmować i zostawimy to tak, jak jest na wszystkich stronach.

    Zacznijmy od tworzenia strony internetowej w języku PHP.

    1. Wybierz bloki nagłówka, logo, menu, stopki do osobnych plików z rozszerzeniem php lub html

    nagłówek.html

    logo.html

    menu.html

    stopka.html

    Dodajmy plik z tym tekstem, abyśmy mogli go zobaczyć na wszystkich stronach. Zadzwońmy do niego tekst.html

    Notatka. Od tej chwili dalsze zapisy będę prowadzić bezpośrednio w teczce. tekst.html

    2. Stwórzmy szablon naszej strony internetowej w języku PHP.

    Aby to zrobić, zrobimy prostą rzecz - zapiszemy prawdziwy plik, ale z rozszerzeniem php i usuniemy całą zawartość tekstową. Może nie jest to profesjonalne, ale zrozumiałe, ale później wszystko skomplikujemy. Teraz najważniejsze jest zrozumienie zasady układu.

    3. Teraz nie potrzebujemy już pliku template.html.

    Dzięki niemu mamy wyobrażenie o tym jak będzie wyglądać nasza strona.

    4. Nasz szablon to plik template.php

    Teraz wstawimy do niego wszystkie elementy witryny za pomocą polecenia include.

    5. Stwórzmy trzy strony, tak jak mieliśmy to zrobić na początku.

    Sekcja 1, zadzwońmy 1.php

    Sekcja 2, zadzwońmy 2.php

    Sekcja 3, zadzwońmy 3.php

    Aby to zrobić, możesz użyć najprostszego polecenia Zapisz jako...

    Pozwólcie, że wyjaśnię najmłodszym: otwórz plik szablon.php, następnie naciśnij Zapisz jako... i zapisz go pod nazwą 1.php, powtórz procedurę i zapisz strony witryny po kolei 2.php, 3.php

    Skończyło się na 3 stronach z tym samym projektem. Po prostu wklej go zamiast pliku tekst.html inny, uzupełnij różnymi obrazami lub dowolnymi kody HTML, skrypty i zawartość każdej strony będą unikalne.

    Uwaga!

    Jeśli plik nie został utworzony indeks.php dla strony głównej, następnie w przeglądarce wpisując adres witryny, nie zobaczymy samej witryny, a jedynie strukturę katalogów (listę folderów).

    Możesz zajrzeć do Denver i przekonać się sam. Naprawmy sytuację - utwórz plik indeks.php i zadzwońmy bez zbędnych ceregieli dom. W tym samym czasie utwórzmy plik tekst-home.html i za pomocą polecenia włączać wklej go do tego, który właśnie utworzyliśmy strona główna strona.

    6. Jak wyświetlić stronę internetową w php?

    Po prostu nie zobaczymy, co się stało. To nie jest już szablon z rozszerzeniem HTML.

    Ale to też nie jest problem. Potrzebujemy własnego, tj. serwer lokalny na komputerze. Aby to zrobić, zainstalujemy Denver i obejrzymy wynik naszej pracy w przeglądarce bez konieczności łączenia się z Internetem.

    Teraz to porządek. Wpisałem adres strony i zobaczyłem wszystko, co właśnie zostało utworzone normalna forma z projektem.

    Zajmijmy się teraz menu PHP witryny.

    1. Otwórz plik menu.html i zamień sekcje 1, 2 i 3 w linki na stronie. Linki w PHP tworzone są na różne sposoby.

    Naszym zadaniem jest nauczyć się czuć stronę stworzoną w PHP. Dlatego będziemy tworzyć linki jak na zwykłej stronie statycznej Sekcja 1 itd.

    Bardzo podoba mi się ten proces tworzenia linków w Macromedia Dreamweaver. Miej czas na zbieranie plonów OK i napić się kawy.

    2. Jak sprawić, aby link w menu był nieaktywny, jeśli odwiedzający znajduje się na tej stronie.

    Wygodniejsze będzie dla odwiedzającego poruszanie się po witrynie, wiedząc, na której stronie się znajduje.

    Jeśli wykonałeś wszystkie kroki ściśle punkt po punkcie, zobaczysz, że wszystkie linki w menu są zawsze aktywne. Jak to naprawić?

    Na początek przypomnijmy sobie definicję tego, co to jest Instrukcje warunkowe

    – ma to miejsce, gdy jakaś akcja jest wykonywana lub nie, w zależności od warunków.

    Wykonajmy następujące czynności:

    • Będziemy potrzebować zmienne i jeden operatora warunkowego:

    if ($master == „Główny”)//ten warunek. Jeśli zostanie wykonany, to w tym miejscu menu za pomocą polecenia echo wstawiane są zwykłe znaczniki HTML, które wyświetlają napis „Strona główna”.

    Echo "

    dom

    ";

    w przeciwnym razie// oznacza „inaczej” - co się stanie, jeśli warunek nie zostanie spełniony. W takim przypadku, jeśli warunek nie zostanie spełniony, napis „Strona główna” będzie linkiem prowadzącym do strony głównej.

    Echo "

    dom

    ";

    • Wymyśliliśmy warunek, ale tak sprawdź zmiennąmusisz o to zapytać.

    W tym celu na wszystkich stronach umieścimy następujące bloki kodu:

    $master = "Główny";

    $master = "Sekcja 1";

    $master = "Sekcja 2";

    $master = "Sekcja 3";

    Jak widać, każda strona ma swój własny kod.

    Zatem nasze praktyczne kroki tworzenia menu PHP będą następujące:

    1) Otwórz plik indeks.php

    i wklej kod

    $master = "Główny";

    do miejsca, w którym wstawisz kod wyświetlający samo menu witryny dołącz „menu.html”;
    ?>

    2) Otwórz plik menu.html i wstaw kod z warunkiem zamiast prostego linku HTML do strony głównej.

    Patrzymy w przeglądarkę i podziwiamy! Jeśli przejdziemy na stronę główną, link nie będzie już aktywny!

    3) Powtórz punkty 1 i 2 ze stronami 1.php, 2.php, 3.php

    Powtórzenie 1:

    1) Otwórz plik 1.php i wstaw przed kodem wyświetlającym blok menu z podaną zmienną

    $master = "Sekcja 1";

    2) Otwórz plik menu.html i wstaw kod z warunkiem zamiast prostego linku Sekcja 1, wprowadzając następujące zmiany:

    if ($master == „Sekcja 1”)//ten warunek. Jeśli zostanie wykonany, to w tym miejscu menu za pomocą polecenia echo wstawiane są zwykłe znaczniki HTML, które wyświetlają napis „Sekcja 1”.

    Echo "

    Sekcja 1

    ";

    w przeciwnym razie// oznacza „inaczej” - co się stanie, jeśli warunek nie zostanie spełniony. W takim przypadku, jeśli warunek nie zostanie spełniony, napis „Sekcja 1” będzie linkiem prowadzącym do strony głównej.

    Echo "

    Sekcja 1

    ";

    Cud się powtórzył! Teraz, jeśli jesteśmy na stronie Sekcja 1, link w menu jest nieaktywny.

    Powtarzanie jest matką nauki! Albo dla tych w zbiorniku! Ponownie

    Powtórzenie 2

    1) Otwórz plik 2.php i wklej kod.

    $master = "Sekcja 2";

    2) Otwórz ponownie plik menu.html i wklej kod z warunkiem

    if ($master == „Sekcja 2”)//ten warunek. Jeśli zostanie wykonany, to w tym miejscu menu za pomocą polecenia echo wstawiane są zwykłe znaczniki HTML, które wyświetlają napis „Sekcja 2”.

    Echo "

    Sekcja 2

    ";

    w przeciwnym razie// oznacza „inaczej” - co się stanie, jeśli warunek nie zostanie spełniony. W takim przypadku, jeśli warunek nie zostanie spełniony, napis „Sekcja 2” będzie linkiem prowadzącym do strony głównej.

    Echo "

    Sekcja 2

    ";

    Powtórzenie 3

    1) Otwarcie plik 3.php i ustaw zmienną.

    $master = "Sekcja 3";

    2) W pliku menu.html zamiast linku wstawiamy kod z warunkiem Sekcja 3, zmiany są następujące:

    if ($master == „Sekcja 3”)//ten warunek. Jeśli zostanie wykonany, to w tym miejscu menu za pomocą polecenia echo wstawiane są zwykłe znaczniki HTML, które wyświetlają napis „Sekcja 3”.

    Echo "

    Sekcja 3

    ";

    w przeciwnym razie// oznacza „inaczej” - co się stanie, jeśli warunek nie zostanie spełniony. W takim przypadku, jeśli warunek nie zostanie spełniony, napis „Sekcja 3” będzie linkiem prowadzącym do strony głównej.

    Echo "

    Sekcja 3

    ";

    Konkluzja: zamiast linków w tego typu menu

    dom


    Sekcja 1

    Sekcja 2


    Sekcja 3

    Ta lekcja o php została napisana w odpowiedzi na liczne prośby odwiedzających witrynę i jest praktycznym przewodnikiem do nauki tworzenia dynamicznego menu dla witryny w php.

    Ściągawka następnego webmastera powie Ci, jak stworzyć unikalne tytuły, opisy i słowa kluczowe dla każdej strony w PHP.

    Możesz pobrać archiwum ze wszystkimi plikami szablonów witryny i menu php. Zalecane dla osób rozpoczynających przygodę z programowaniem.

    Jeśli jesteś gotowy, aby poważnie studiować PHP, trudno jest znaleźć lepszy kurs wideo od Popova. Ma duże doświadczenie i dobry styl.

    ]]> ]]>

    Spodobał Ci się artykuł? Podziel się z przyjaciółmi!
    Czy ten artykuł był pomocny?
    Tak
    NIE
    Dziekuję za odpowiedź!
    Coś poszło nie tak i Twój głos nie został policzony.
    Dziękuję. Twoja wiadomość została wysłana
    Znalazłeś błąd w tekście?
    Wybierz, kliknij Ctrl + Enter a my wszystko naprawimy!