Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Systemy zarządzania treścią Wykład 3

Podobne prezentacje


Prezentacja na temat: "Systemy zarządzania treścią Wykład 3"— Zapis prezentacji:

1 Systemy zarządzania treścią Wykład 3
dr inż. Piotr Czapiewski Systemy zarządzania treścią Wykład 3

2 Rozszerzanie Joomla! Moduły, komponenty, pluginy

3 Rozszerzenia Joomla! Szablony Moduły i komponenty Pluginy
Forma prezentacji (układ strony, style, kolorystyka) Moduły i komponenty Dodatkowa funkcjonalność (zaawansowane menu, sondy, fora, galerie, itp.) Moduł – wyświetlanie Komponent – zarządzanie zawartością Pluginy Najbardziej zaawansowana forma rozszerzenia Joomla! Najniższa warstwa systemu, kontrola podstawowych funkcji

4 Rozszerzenia Joomla! Joomla! Extensions Directory
24 kategorie rozszerzeń + podkategorie Najpopularniejsze rozszerzenia Najlepiej oceniane

5 Przykłady rozszerzeń Kopie zapasowe i migracja
JoomlaPack Zarządzanie użytkownikami Community Builder E-commerce VirtueMart – ogólny sklep internetowy Rozwiązania dla konkretnych produktów, np. samochody, nieruchomości Obsługa płatności, subskrypcji, obsługa koszyka, aukcje… Galerie zdjęć i filmów Expose Flash Gallery Edytory JCE, XHTMLSuite in2it, CrossContent, JoomlaFCK Editor Wspomaganie zarządzania treścią SectionEx Mapy stron Zarządzanie plikami joomlaXplorer Remository Zarządzanie projektami, praca grupowa, kalendarze…

6 JoomlaPack Kopie zapasowe oraz migracja witryny

7 JoomlaPack Narzędzie do tworzenia kopii zapasowych witryn oraz ich odtwarzania Automatyczny backup w postaci pojedynczego archiwum ZIP Zawartość bazy danych Struktura plików Technologia AJAX Zmniejszenie liczby błędów związanych z opóźnieniem w komunikacji Możliwość stworzenia instalatora Instalacja na serwerze, gdzie nie ma jeszcze Joomla! Kopiowanie na serwer tylko archiwum ZIP i pojedynczego pliku PHP Podział zadania na mniejsze etapy ułatwia backup dużych witryn

8 JoomlaPack Zastosowania Etapy działania Kopie zapasowe Inicjalizacja
Klonowanie witryn Migracja witryny Stworzenie witryny wzorcowej Lokalne testowanie nowych wersji Lokalne debugowanie Etapy działania Inicjalizacja Zrzut bazy danych Pakowanie plików Finalizacja

9 JoomlaPack Instalacja Standardowo: Rozszerzenia->Instalator
Po zainstalowaniu pojawia się nowe menu: Komponenty->JoomlaPack

10 JoomlaPack – panel sterowania

11 JoomlaPack – opcje Podstawowe Zaawansowane Frontend
Katalogi: wyjściowy i tymczasowy Nazwa pliku wyjściowego Poziom logowania Zaawansowane Kompatybilność ze starszą wersją MySQL, algorytmy kompresji, itp. Zmieniać tylko wówczas, gdy przy parametrach domyślnych backup się nie powiedzie Frontend Możliwość wywołania backupu automatycznie (np. z użyciem cron, wget) Numeryczne Parametry Magiczne Nazwa mówi wszystko… Ruszać tylko w razie absolutnej konieczności…

12 JoomlaPack – opcje Podstawowe Zaawansowane Frontend
Katalogi: wyjściowy i tymczasowy Nazwa pliku wyjściowego Poziom logowania Zaawansowane Kompatybilność ze starszą wersją MySQL, algorytmy kompresji, itp. Zmieniać tylko wówczas, gdy przy parametrach domyślnych backup się nie powiedzie Frontend Możliwość wywołania backupu automatycznie (np. z użyciem cron, wget) Numeryczne Parametry Magiczne Nazwa mówi wszystko… Ruszać tylko w razie absolutnej konieczności…

13 JoomlaPack – opcje Podstawowe Zaawansowane Frontend
Katalogi: wyjściowy i tymczasowy Nazwa pliku wyjściowego Poziom logowania Zaawansowane Kompatybilność ze starszą wersją MySQL, algorytmy kompresji, itp. Zmieniać tylko wówczas, gdy przy parametrach domyślnych backup się nie powiedzie Frontend Możliwość wywołania backupu automatycznie (np. z użyciem cron, wget) Numeryczne Parametry Magiczne Nazwa mówi wszystko… Ruszać tylko w razie absolutnej konieczności…

14 JoomlaPack – opcje Podstawowe Zaawansowane Frontend
Katalogi: wyjściowy i tymczasowy Nazwa pliku wyjściowego Poziom logowania Zaawansowane Kompatybilność ze starszą wersją MySQL, algorytmy kompresji, itp. Zmieniać tylko wówczas, gdy przy parametrach domyślnych backup się nie powiedzie Frontend Możliwość wywołania backupu automatycznie (np. z użyciem cron, wget) Numeryczne Parametry Magiczne Nazwa mówi wszystko… Ruszać tylko w razie absolutnej konieczności…

15 JoomlaPack – opcje Podstawowe Zaawansowane Frontend
Katalogi: wyjściowy i tymczasowy Nazwa pliku wyjściowego Poziom logowania Zaawansowane Kompatybilność ze starszą wersją MySQL, algorytmy kompresji, itp. Zmieniać tylko wówczas, gdy przy parametrach domyślnych backup się nie powiedzie Frontend Możliwość wywołania backupu automatycznie (np. z użyciem cron, wget) Numeryczne Parametry Magiczne Nazwa mówi wszystko… Ruszać tylko w razie absolutnej konieczności…

16 JoomlaPack – uruchamianie
Wykonanie kopii Backup Now / Twórz kopię zapasową

17 JoomlaPack – uruchamianie
Wykonanie kopii Backup Now / Twórz kopię zapasową Kopiuj swoją stronę internetową Pełna kopia witryny, baza danych + pliki Kopiuj swoją bazę danych Kopia samej bazy danych, do zaimportowania np. przez phpMyAdmin

18 JoomlaPack – uruchamianie
Postęp procesu…

19 JoomlaPack – uruchamianie
…gotowe.

20 JoomlaPack Zarządzanie plikami kopii Manage Backup Files
Pobieranie lub usuwanie archiwum z kopią

21 JoomlaPack Zawartość archiwum
Instalator zbliżony do instalatora Joomla

22 JoomlaPack Przywracanie kopii zapasowej Metoda 1 Metoda 2
Rozpakowanie archiwum z kopią Wgranie na serwer Uruchomienie instalatora Metoda 2 Wgranie na serwer archiwum ZIP oraz pliku kickstart.php kickstart.php znajduje się w archiwum kickstart_1.2.2.zip, pobranym wraz z pakietem instalacyjnym JoomlaPack Uruchomienie pliku kikstart.php Skrypt rozpakuje archiwum i uruchomi instalator

23 JoomlaPack Przykład Zapisano archiwum z kopią witryny: site-localhost zip Katalog , w którym ma się znaleźć kopia witryny: c:\xampplite\htdocs\joomla5 Do powyższego katalogu kopiujemy pliki: site-localhost zip kickstart.php Uruchamiamy skrypt kickstart.php wchodząc na adres:

24 JoomlaPack Uruchomienie kickstart.php Wybór archiwum do zainstalowania

25 JoomlaPack Uruchomienie kickstart.php Postęp rozpakowywania

26 JoomlaPack Uruchomienie kickstart.php Rozpakowywanie zakończone

27 JoomlaPack Uruchomienie instalatora Nie zamykaj okna przeglądarki
Kliknij na linku

28 JoomlaPack Instalator kopii zapasowej
Kroki takie same, jak przy instalacji Joomla!

29 JoomlaPack Instalator kopii zapasowej
Kluczowy moment: konfiguracja bazy danych

30 JoomlaPack Instalator kopii zapasowej
Ponowne ustawienie hasła administratora Joomla!

31 JoomlaPack Instalator kopii zapasowej Porządki…

32 VirtueMart Moduł sklepu internetowego

33 VirtueMart Sklep internetowy http://virtuemart.net
Plugin do Joomla! realizujący pełną funkcjonalność sklepu internetowego Zarządzanie kontami użytkowników (adresy dostawy, historia zakupów, itd.) Potwierdzanie zakupów przez Bezpieczne połączenie przez SSL Obsługa płatności i wysyłki Rozszerzalny za pomocą pluginów

34 VirtueMart Katalog produktów Organizacja produktów w kategorie
Możliwość użycia jako katalog, bez funkcjonalności sklepu Ocena produktów przez użytkowników

35 Joomla! eCommerce Edition
Joomla! z preinstalowanym i skonfigurowanym sklepem VirtueMart Downloads, VirtueMart eCommerce Bundle (w. Joomla! 1.5.8) Polska wersja Polskie centrum VirtueMart Spolszczenia samego VirtueMart Specjalna wersja eCommerce Bundle PL [Jarzębina]

36 Joomla! eCommerce Edition
Panel administracyjny polskiej wersji VirtueMart

37 Tworzenie szablonów

38 Szablony Nazwa szablonu – bez spacji i znaków specjalnych
Katalogi szablonu [joomla]/templates/nazwa_szablonu/ [joomla]/templates/nazwa_szablonu/CSS/ [joomla]/templates/nazwa_szablonu/images/ Podstawowe pliki szablonu index.php – główny plik szablonu; układ i logika strony templateDetails.xml – plik z metadanymi template.css – główny arkusz CSS template_thumbnail.png – podgląd szablonu

39 Metadane szablonu Zawartość pliku templateDetails.xml
Nazwa szablonu, opis, autor, wersja, data utworzenia Informacja dla instalatora – lista plików szablonu <?xml version="1.0" encoding="windows-1250"?> <!DOCTYPE install PUBLIC "-//Joomla! 1.5//DTD template 1.0//EN" "http://dev.joomla.org/xml/1.5/template-install.dtd"> <install version="1.5" type="template"> <?xml version="1.0" encoding="windows-1250"?> <!DOCTYPE install PUBLIC "-//Joomla! 1.5//DTD template 1.0//EN" "http://dev.joomla.org/xml/1.5/template-install.dtd"> <install version="1.5" type="template"> <name>SzablonTestowy</name> <creationDate>04 June 2008</creationDate> <author>Jan Kowalski</author> <authorUrl>www.kowal.pl</authorUrl> <copyright></copyright> <license>GNU/GPL</license> <version>1.0.0</version> <description>Przykładowy szablon</description> <files> <filename>index.php</filename> <filename>css/template.css</filename> </files> </install> <name>SzablonTestowy</name> <creationDate>04 June 2008</creationDate> <author>Jan Kowalski</author> <authorUrl>www.kowal.pl</authorUrl> <copyright></copyright> <license>GNU/GPL</license> <version>1.0.0</version> <description>Przykładowy szablon</description> <files> <filename>index.php</filename> <filename>css/template.css</filename> </files>

40 Główny plik szablonu Główny (i jedyny wymagany) plik szablonu – index.php Mieszanka HTML i PHP Określenie struktury strony, wyświetlanie modułów i komponentów, układ strony Wywołanie funkcji Joomla Framework Logika strony, zachowanie, funkcje JavaScript

41 ścieżka nawigacji (breadcrumbs)
Struktura strony Typowy układ strony nagłówek szukaj ścieżka nawigacji (breadcrumbs) lewe menu część główna prawe menu stopka

42 Definicja układu strony
Najprostsza zawartość pliku index.php <html> <body> <table width="800px"> <tr> <td colspan="2" id="header">header</td> <td rowspan="2" id="search">search</td> </tr> <td colspan="2" id="breadcrumbs">breadcrumbs</td> <td id="left_menu">left_menu</td> <td id="main">main</td> <td id="right_menu">right_menu</td> <td colspan="3" id="footer">footer</td> </table> </body> </html>

43 Wypełnianie struktury treścią
Wywołanie metod klasy JDocument Obiekt jdoc, wywołanie metody: <jdoc:nazwa_metody parametry /> Dodawanie nagłówka <jdoc:include type="head" /> Dodawanie modułów <jdoc:include type="modules" name= "top" style= "xhtml" /> Dodawanie komponentu głównego <jdoc:include type="component" style="xhtml" />

44 Wyświetlanie modułów Funkcja wyświetlająca moduł:
<jdoc:include type="modules" name= "nazwa" style= "styl" /> Nazwa odpowiada pozycji modułu top, left, user1, user2, user3 Styl określa sposób opakowania kodu HTML modułu Nie determinuje dokładnego sposobu formatowania, dopiero CSS wprowadza właściwe formatowanie Dostępne style: table – moduł wyświetlany w tabeli horz – moduł wyświetlany horyzontalnie, w komórce otaczającej tabeli xhtml – moduł wyświetlany wewnątrz elementu div rounded – przystosowanie do wyświetlania zaokrąglonych narożników none – brak dodatkowego formatowania modułu

45 Style wyświetlania modułów
none – brak dodatkowego formatowania modułu

46 Style wyświetlania modułów
table – moduł wyświetlany w tabeli

47 Style wyświetlania modułów
horz – moduł wyświetlany w zagnieżdżonej tabeli

48 Style wyświetlania modułów
xhtml – moduł wyświetlany wewnątrz elementu div

49 Style wyświetlania modułów
rounded – przystosowanie do wyświetlania zaokrąglonych narożników

50 Style wyświetlania modułów
rounded – przystosowanie do wyświetlania zaokrąglonych narożników

51 Wywołanie funkcji PHP Oprócz dyrektywy jdoc:include w pliku index.php można wykorzystywać dowolne funkcje PHP, w tym funkcje udostępniane przez Joomla Framework Przykłady: $this – bieżący obiekt, w przypadku szablonu – obiekt klasy JDocumentHTML <?php echo $this->language; ?> Inne dostępne pola: template, title, description, link

52 Wywołanie funkcji PHP Przydatne metody klasy JDocumentHTML: Przykład:
$this->countModules(‘user1’); $this->countModules(‘user1 + user2’); Przykład: sprawdź, czy w górnej części strony znajdują się jakieś moduły jeśli tak – wyświetl moduły; jeśli nie – wyświetl obrazek <?php if($this->countModules('top')) : ?> <jdoc:include type="modules" name="top" /> <?php else : ?> <img src='placeholder.gif'> <?php endif; ?>

53 Parametry szablonu Definicja parametrów – plik templateDetails.xml
Wartości parametrów – plik params.ini Dostęp do parametrów z poziomu kodu: $this->params->get('nazwaParametru') <params> <param name="authorCopyright" type="radio" default="1" label="Author Copyright" description="Show/Hide copyright."> <option value="0">hide</option> <option value="1">show</option> </param> </params>

54 Bezpieczeństwo Zabezpieczenie szablonu przed wywołaniem z zewnątrz (nie za pośrednictwem Joomla!) defined(‘_JEXEC’) or die(‘No access available’); Powyższy kod należy umieszczać zawsze przed kodem wykonywalnym, np. na początku pliku index.php

55 Arkusze stylów CSS Dodanie odwołania standardowego arkusza CSS (zdefiniowanego przez Joomla!): <link rel="stylesheet" href="templates/system/css/general.css " type="text/css" /> Dodanie odwołania do arkusza CSS szablonu: <link href="templates/nazwa_szablonu/css/template.css " rel="stylesheet" type="text/css" /> lub bardziej uniwersalnie: <link rel="stylesheet" href="templates/ <?php echo $this->template ?> /css/template.css" type="text/css" />

56 Arkusze stylów CSS Do przygotowania arkusza CSS konieczna jest znajomość nazw stylów/klas stosowanych przez główny komponent oraz moduły Joomla Przykładowe style: article_separator, author, componentheading, contentpane, module, sectiontableentry, sectiontablefooter, title, … Definiujemy tylko te style, które są nam potrzebne Lista wszystkich stylów pliki przykładowych szablonów

57 Arkusze stylów CSS Narzędzie pomocne w identyfikacji właściwych stylów
CSSViewer – wtyczka do przeglądarki Firefox https://addons.mozilla.org/pl/firefox/addon/2104

58 Dystrybucja szablonów
Przygotowanie szablonu do dystrybucji Pakowanie Plik templateDetails.xml musi zawierać listę wszystkich plików szablonu Katalog szablonu pakujemy do pliku .zip Instalacja Standardowo, z poziomu panelu administracyjnego Joomla: Rozszerzenia  Instalator <files> <filename>index.php</filename> <filename>css/template.css</filename> <filename>images/logo.jpg</filename> </files>

59 Szablony Joomla! 1.0 Szablony dla wersji 1.0 i 1.5 nie są ze sobą kompatybilne Dwie możliwości: Użycie szablonu przez włączenie trybu legacy Konwersja szablonu do wersji 1.5

60 Konwersja szablonu do wersji 1.5
Zmiany konieczne w pliku index.php: Joomla 1.0 Joomla 1.5 _VALID_MOS _JEXEC $mosConfig_absolute_path $this->baseUrl $mosConfig_live_site $mainframe->getCfg( 'live_site' ) Stałe łańcuchy tekstowe echo 'Hello' Wywołania funkcji – wsparcie dla wielu wersji językowych echo JText::_( 'Hello' ) mosGetParam $id = mosGetParam( $_REQUEST, 'id', 0 ); JRequest::getVar $id = JRequest::getVar( 'id', 0 ); mosShowHead() <jdoc:include type="head" /> mosMainBody() <jdoc:include type="component" /> mosLoadModules($position_name, $style); <jdoc:include type="modules" name=$position_name style=$style />

61 Konwersja szablonu do wersji 1.5
Odpowiedniki stylu wyświetlania modułu: Zmiany w templateDetails.xml <mosinstall type="template">  <install version="1.5" type="template"> Joomla 1.0 Joomla 1.5 -3 rounded -2 xhtml -1 none table

62 Literatura Materiały dotyczące budowy szablonów
D. Rahmel, Professional Joomla!, Wrox 2007 T. B. Silver, Joomla! Template Design, Packt Publishing 2007

63 Tworzenie rozszerzeń Programowanie modułów

64 Programowanie modułów
Najprostszy moduł – Hello World Przygotuj katalog dla modułu: mod_helloworld Stwórz główny plik modułu: mod_helloworld.php <?php defined( '_JEXEC‘ ) or die( 'Dostep zabroniony!' ); echo JText::_( 'Hello World!‘ ); ?>

65 Programowanie modułów
Najprostszy moduł – Hello World Stwórz plik deskryptora modułu: mod_helloworld.xml <?xml version="1.0" encoding="Windows-1250"?> <install type="module" version="1.5.0"> <name>Hello World</name> <author>Jan Kowalski</author> <creationDate>Listopad 2008</creationDate> <copyright>(C) 2008 Jan Kowalski</copyright> <license>GNU/GPL</license> <authorUrl>www.jasiokowalski.pl</authorUrl> <version>1.0.0</version> <description>Moduł Hello World</description> <files> <filename module="mod_helloworld">mod_helloworld.php</filename> </files> </install>

66 Programowanie modułów
Instalacja modułu Hello World Moduł musi zostać zarejestrowany w Joomla! Konieczne jest spakowanie plików modułu do archiwum ZIP i zainstalowanie przez panel administracyjny Spakuj katalog mod_helloworld do archiwum mod_helloworld.zip Zainstaluj moduł przez panel administracyjny (Rozszerzenia->Instalator) Umieść moduł na pozycji top (Rozszerzenia->Moduły->Nowy->Hello World, Pozycja=top)

67 Programowanie modułów
Moduł Hello World widoczny na stronie głównej witryny

68 Przykład 1 Moduł wyświetlający wpisy z bash.org.pl
<?xml version="1.0" encoding="Windows-1250"?> <install type="module" version="1.5.0"> <name>Modul bash.org.pl</name> <author>Jan Kowalski</author> <creationDate>Listopad 2008</creationDate> <copyright>(C) 2008 Jan Kowalski</copyright> <license>GNU/GPL</license> <authorUrl>www.jasiokowalski.pl</authorUrl> <version>1.0.0</version> <description> Moduł wyświetlający najnowszy wpis ze strony bash.org.pl </description> <files> <filename module="mod_bash">mod_bash.php</filename> </files> </install>

69 Przykład 1 Moduł wyświetlający wpisy z bash.org.pl
<?php defined('_JEXEC') or die( 'Dostep zabroniony!' ); $ch = curl_init('http://bash.org.pl/latest/'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $page = curl_exec($ch); curl_close($ch); $pattern = '#<div class="quote post-content post-body">(.*?)</div>.*#s'; preg_match($pattern, $page, $out); $msg = trim($out[1]); echo $msg; ?>

70 Przykład 1 Moduł wyświetlający wpisy z bash.org.pl

71 Przykład 2 Moduł wyświetlający komiks z dilbert.com
<?xml version="1.0" encoding="Windows-1250"?> <install type="module" version="1.5.0"> <name>Modul Dilbert</name> <author>Jan Kowalski</author> <creationDate>Listopad 2008</creationDate> <copyright>(C) 2008 Jan Kowalski</copyright> <license>GNU/GPL</license> <authorUrl>www.jasiokowalski.pl</authorUrl> <version>1.0.0</version> <description> Moduł wyświetlający najnowszy komiks ze strony dilbert.com </description> <files> <filename module="mod_dilbert">mod_dilbert.php</filename> </files> </install>

72 Przykład 2 Moduł wyświetlający komiks z dilbert.com
<?php defined('_JEXEC') or die( 'Dostep zabroniony!' ); $ch = curl_init('http://dilbert.com/strips/'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $page = curl_exec($ch); curl_close($ch); $pattern = '#<div class="STR_Image">.*?<img src="(.*?)".*#s'; preg_match($pattern, $page, $out); $img = '<img src="http://dilbert.com/' . $out[1] . '" />'; echo $img; ?>

73 Przykład 2 Moduł wyświetlający komiks z dilbert.com


Pobierz ppt "Systemy zarządzania treścią Wykład 3"

Podobne prezentacje


Reklamy Google