PDA

Zobacz pełną wersję : Parametry komponentów



artekk
16-05-2007, 20:51
Witam,
Mam problem z określaniem parametrów dla komponentów w menu. Tak np. dla strony głównej czy sekcji mozna określać różne paramtry (przyrostek klasy CSS, ikona w menu i wiele innych). Jednakże praktycznie żadne parametry komponentów nie wystepują. Podobnie jest z tymi gorzej napisanymi modułami. W przypadku modułów paramert "przyrostek klasy CSS" dopisałem w pliku .xml tak jak to było w innych modułach i zadziałało.

Jak to zrobić dla komponentów? Nie zalezy mi na jakiś dziwnych opcjach. Tylko na dwóch parametrach:
przyrostek klasy CSS Ikona w menu

Rybik
18-05-2007, 19:55
Moduł sam w sobie jest formą prezentacji, komponent nie, dlatego nie posiada standardowych parametrów wyświetlania.
Zauważ, że przyrostek klasy CSS działa poza modułem, tzn. są standardowe klasy CSS w które ubrana jest przestrzeń modułu i dopiero wewnątrz masz pełną kontrole nad treścią.
W wypadku komponentu masz całkowita kontrolę nad przestrzenią mainbody. Samemu musisz ubrać treści prezentowane przez komponent w klasy contentpane, componentheading itp, żeby ujednolicić formę prezentacji (o ile Ci na tym zależy).

Parametry
Komponentom można przypisać dowolny zbiór parametrów, mogą być zdefiniowane np. w pliku
/administrator/components/com_komponent/komponent.xml
przykładowy plik:


<?xml version="1.0" encoding="iso-8859-2"?>
<mosinstall type="component" version="1.0.0">
<name>Nazwa Komponentu</name>
<author>Imię Nazwisko</author>
<creationDate>month YYYY</creationDate>
<copyright>(c) YYYY Imie Nazwisko. All rights reserved.</copyright>
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
<authorEmail>email@dzioopla.pl</authorEmail>
<authorUrl>http://www.project.site.name.com</authorUrl>
<version>1.0.0 Alpha</version>
<description>Opis komponentu i inne dyrdymały</description>
<params>
<param name="menu_image" type="text" default="" label="Obrazek w menu" description="Nazwa pliku grafiki do menu. Obraz musi znajdować się w katalogu /images/stories."/>
<param name="parametr1" type="text" default="" label="Etykieta parametru1" description="Opis parametru po najechaniu mysza na etykiete" />
</params>
</mosinstall>

Parametry te będą użyte przy dodawaniu linka do komponentu w menu (tzn dodajesz linka, zatwierdzasz i potem jak edytujesz to widac te parametry.
Załadowanie parametrów w kodzie komponentu:

$file = $mosConfig_absolute_path .'/administrator/components/com_komponent/komponent.xml';
$params =& new mosParameters( $menu->params, $file, 'component' );
Użycie konkretnych parametrów:

$zmienna = $params->get('nazwa_parametru', wartość_domyślna);
Oczywiście obsługe i przekazywanieparametrów miedzy roznymi elementami kodu (funkcje, wywolanie klas itp.) musisz sobie ładnie sam obsłużyć.

Powyższe przykłady mogą nie być wzorcowym użyciem parametrów dla komponentu ale "powinny działać" ;)

artekk
19-05-2007, 10:48
Dziękuję za wyczerpującą, bardzo pomocną odpowiedź.

Rybik
19-05-2007, 12:37
wykorzystaj, sprawdź, opowiedz, robiłem to baardzo dawno a teraz bardziej skupiam się na 1.5 i IDE Eclipse, które doczekać się powinno kilku artykułów, więc nie bardzo jak i gdzie to wszystko testować na potrzeby (bez urazy) 1 posta z forum.

W razie ewidentnych kłopotów zawsze odpowiem na maila.