Ręczna instalacja komponentu
Ręczna instalacja jest nieco bardziej skomplikowana niż automatyczna. Polega na założeniu odpowiednich katalogów na serwerze i przekopiowaniu do nich plików oraz operacji w bazie danych. Sposób instalacji "ręcznej" przedstawimy na przykładzie komponentu Glossary

Przed rozpocęciem ręcznej instalacji komponentu, otwórz w dowolnym edytorze umieszczony w pakiecie instalacyjnym plik pn. komponent.xml, w naszym przypadku - glossary.xml. Plik te zawiera wszystkie instrukcje dla instalatora. W tym przypadku - dla Ciebie.

W instrukcji dla instalatora można wyodrębnić kilka sekcji:

Sekcja: files

Zawarty jest w niej wykaz plików, które należy umieścić w katalogu twoja_joomla/com_components z zachowaniem struktury katalogu. Nie jest to trudne, bo w pakiecie instalacyjnym znajdziesz taką samą strukturę katalogów i plików. W przypadku komponentu Glossary ta sekcja wygląda tak:

<files>
<filename>glossary.php</filename>
<filename>glossary.html.php</filename>
<filename>glossary.class.php</filename>
<filename>images/e-mail.gif</filename>
<filename>images/homepage.gif</filename>
<filename>languages/english.php</filename>
<filename>languages/polish.php</filename>
</files>

Wynika z tego, że pierwsze trzy pliki umieszczamy w gónym katalogu komponentu - com_glossary, a następne w podkatalogach: images/ oraz languages/

Sekcja queries

Ta sekcja zawierać może kikla ujętych w znaczniki <query> zapytań do bazy danych. W przypadku komponentu Glossary pierwsza kwerenda wygląda następująco

 
      <query>
       CREATE TABLE IF NOT EXISTS `#__glossary` (
          `id` int(10) NOT NULL auto_increment,
          `tterm` varchar(40) NOT NULL default '',
          `tdefinition` text NOT NULL,
          `tname` varchar(20) NOT NULL default '',
          `tloca` varchar(60) default NULL,
          `tmail` varchar(60) default NULL,
          `tpage` varchar(150) default NULL,
          `tdate` datetime default NULL,
          `tcomment` text,
          `tedit` enum('y','n') NOT NULL default 'n',
          `teditdate` datetime default NULL,
          `published` tinyint(1) NOT NULL default '0',
          `catid` int(3) NOT NULL default '0',
          `checked_out` int(11) NOT NULL default '0',
         UNIQUE KEY `term` (`tterm`),
          PRIMARY KEY  (`id`),
         FULLTEXT (`tdefinition`)
        ) TYPE=MyISAM
      </query>

To i następne zapytania należy skopiować i wykonać za pomocą programu obsługi bazy danych. Kopiujemy jedynie zawartość między znacznikiem początkowym <query> a końcowym </query>

Sekcja administration

Sekcja Komponenty, następne, ujęte w znacznikach <submenu>, to pozycje podrzędne. W przypadku komponentu Glossary sekcja ta wygląda następująco:

 
    <menu>Glossary</menu>
    <submenu>
      <menu task="view">Terminy</menu>
      <menu task="categories">Kategorie</menu>
      <menu task="config">Konfiguracja</menu>
      <menu task="language">Plik jezyka</menu>
      <menu task="about">O Glossariuszu</menu>
    </submenu<
 

Na tej podstawie trzeba stworzyć zapytania do bazy danych i wykonać je albo założyć w bazie danych odpowiednie rekordy w tabeli jos_components

W drugiej części sekcji administration znajdują się polecenia przesłania plików do katalogu administrator/com_components/com_nazwakomponentu. W naszym przypadku wygląda ona następująco:

 
    <files>
      <filename>admin.glossary.php</filename>
      <filename>admin.glossary.html.php</filename>
      <filename>class.glossary.php</filename>
      <filename>config.glossary.php</filename>
      <filename>install.glossary.php</filename>
      <filename>toolbar.glossary.php</filename>
      <filename>toolbar.glossary.html.php</filename>
      <filename>uninstall.glossary.php</filename>
    </files>

Dla tych plików konieczne będzie stworzenie katalogu com_glossary w katalogu administrator/com_components/

Jak zainstalować komponent

Wiesz już, jak zbudowany jest plik komponent.xml zawierający polecenia dla instalatora. Wykonajmy je zatem dla instalowanego przez nas ręcznie komponentu Glossary:

  1. Rozpakuj plik archiwum com_glossary_1.8_PL.zip do katalogu na dysku lokalnym.
  2. Przejdź na serwerze do Twojego katalogu Joomla: twoj_katalog/components i utwórz katalog o nazwie com_glossary
  3. Prześlij do tego katalogu wszystkie katalogi i pliki wg pierwszego wykazu umieszczonego w pliku glossary.xml
  4. Przejdź na serwerze do Twojego katalogu Joomla: twoj_katalog/administrator/components i utwórz katalog o nazwie com_glossary
  5. Prześlij do tego katalogu wszystkie katalogi i pliki wg drugiego wykazu umieszczonego w pliku glossary.xml w sekcji administration
  6. Otwórz swój program do obslugi bazy danych MySQL, np. phpMyAdmin i wybierz bazę danych Twojego serwisu.

    Ikona artykułu

  7. Odszukaj tabelę jos_components

    Wybór bazy danych

  8. Kliknij na umieszczony pod tabelą odnośnik: Dodanie nowego rekordu
    Wybór tabeli bazy danych

  9. Ukaże się formularz umożliwiający dodanie nowego rekordu. Wypełnij pole formularza zgodnie instrukcjami w tabeli poniżej:
    Wybór opcji Dodanie nowego rekordu

 

PoleZnaczenie
idunikalny identyfikator rekordu, nadawany automatycznie, pozostaw puste,
nameWpisz Glossary - ta nazwa pokazuje się w menu administratora: Komponenty
linkWpisz: option=com_glossary - jest to odnośnik do katalogu komponentu
menuidWpisz 0
parentWpisz 0
admin_menu_linkWpisz option=com_glossary; odnośnik do katalogu komponentu z plikami administracyjnymi
admin_menu_altWpisz: Zarządzaj słownikiem;tekst ten ukazuje się na pasku stanu przeglądarki internetowej
optionPozostaw niewypełnione
orderingWpisz 0 - jest to kolejny numer w pozycjach menu komponentu
admin_menu_imgWpisz: js/ThemeOffice/component.png - nazwa pliku ikony ukazującej się w menu panelu administracyjnego
iscoreWpisz: 0
paramsPozostaw niewypełnione

  1. Po wpisaniu i sprawdzeniu wszystkich wartości, kliknij na przycisk Dodaj (Wykonanie)
  2. Dodaj w tabeli jos_components rekordy dla pozycji submenu, zgodnie z instrukcjami w sekcji administration w pliku glossary.xml. Możesz też stworzyć kwerendę dokonującą równocześnie wszystkich wpisów - zobacz objaśnienia poniżej.

Kolejne rekordy w tabeli jos_components będą się różnić wpisami w polach ID, NAME, LINK, MENUID, PARENTID, ADMIN_MENU_LINK, ADMIN_MENU_ALT i OPTION. Opracujemy kwerendę, aby objaśnić dokładnie znaczenie wpisów w pliku glossary.xml i podobnych. Musimy utworzyć 5 rekordów, bo tyle jest pozycji submenu.

W rekordzie dla komponentu ID zostalo utworzone automatycznie, i jest to 26. Zatem kolejnym rekordom nadamy ID: 27, 28.29.30.31.

Pola LINK i MENUID pozostawiamy niewypełnioone. W polu PARENTID wpiszemy 26, bo takie ID ma rekord dla nadrzędnego menu.

Kolejne pole ADMIN_MENU_LINK wymaga pełniejszej charakterystyki. Spójrz do pliku glossary.xml. Dla każdej pozycji submenu zostałokreślony atrybut, w tym przypadku task z różnymi argumentami. Ten atrybut i argumenty są odnośnikami do funkcji w skryptach komponentu, odpowiedzialnych za wywołanie formularzy edycji terminów, kategorii, itd. Na tej podstawie tworzymy wpisy w polu ADMIN_MENU_LINK, dodając do znanego już odnośnika do całego komponentu: com_option argument z atrybutem. Wpis dla pozycji Terminy wygląda następująco: com_option&task=view.

A oto całe zapytanie:

 
INSERT INTO jos_components VALUES (27, 'Terminy', '', 0, 26, 
'option=com_glossary&task=view', 'Terminy', 'com_glossary', 0, 
'js/ThemeOffice/edit.png', 0, '');

Możesz teraz powielić tę kwerendę cztery razy i dokonać zmian w polach NAME, ADMIN_MENU_LINK i ADMIN_MENU_ALT. A oto całość:

INSERT INTO jos_components VALUES (28, 'Kategorie', '', 0, 26,
'option=com_glossary&task=categories', 'Kategorie', 'com_glossary', 1,
'js/ThemeOffice/component.png', 0, '');
 
INSERT INTO jos_components VALUES (29, 'Konfiguracja', '', 0, 26,
'option=com_glossary&task=config', 'Konfiguracja', 'com_glossary', 2,
'js/ThemeOffice/config.png', 0, '');
 
INSERT INTO jos_components VALUES (30, 'Plik jezyka', '', 0, 26,
 'option=com_glossary&task=language', 'Plik jezyka', 'com_glossary', 3,
'js/ThemeOffice/user.png', 0, '');
 
INSERT INTO jos_components VALUES (31, 'O Glossariuszu', '', 0, 26, 
'option=com_glossary&task=about', 'O Glossariuszu', 'com_glossary', 4, 
'js/ThemeOffice/credits.png', 0, '');

Wystarczy teraz wykonać to zapytanie w bazie danych i komponent będzie w całości zainstalowany.


Uwagi, źródła

Jeżeli masz sugestie odnośnie treści lub chcesz zgłosić poprawki do tego rozdziału, skomentuj go albo umieść wiadomość na forum: Dokumentacja - Propozycje, zmiany, poprawki

Dziękujemy!

Stefan Wajda, Zespół Dokumentacji PCJ

Zmieniony ( 20.02.2007. )