--=REKLAMA=--

Szablon

Kodowanie własnego typu parametru

Z Joomla!WikiPL

Najprostszym sposobem napisania kodu nowego parametru jest skopiowanie kodu istniejącego podobnego typu parametru i dostosować go do własnych potrzeb. Podstawowa klasa JElement zawiera prawie wszystko, co potrzebne, więc w przypadku większości nowych własnych typów parametrów wystarczy zastosowanie metody fetchElement, by rozszerzyć klasę JElement.

Metoda fetchElement zwraca kod HTML wymagany, by przetworzyć pole, które zostanie zastosowane do ustawienia wartości parametru. Wymaga czterech argumentów:

fetchElement( $name, $value, &$node, $control_name )

gdzie:

$name jest unikalną nazwą parametru, z argumentu name.
$value jest bieżącą wartością parametru.
$node jest obiektem JSimpleXMLElement reprezentujacym element <param>.
$control_name jest typem parametru z argumentu type (np. 'category' albo 'nowyparm')

Aby otrzymać wartość argumentu w elemencie <param>, używamy metody attribute z obiektu JSimpleXMLElement passed in $node. Na przykład, aby otrzymać wartość argumentu class, możesz użyć kodu jak poniżej:

$class = $node->attributes( 'class' );

Przykładowo, poniżej zastosowano metodę fetchElement w prostej wersji parametru typu text (faktyczna wersja jest bardziej wyszukana - skomplikowana):

function fetchElement( $name, $value, &$node, $control_name )
{ 
    $class = $node->attributes( 'class' ) ? $node->attributes( 'class' ) : "text_area";
 
    $return = '<input type="text"' .
                     'name="' . $control_name . '[' . $name . ']"' .
                     'id="'   . $control_name . '[' . $name . ']"' .
                     'value="' . $value . '"' .
                     'class="' . $class . '" />'; 
    return $return;
}
Ikona informacja.png
 Informacja

 Zauważ, że pole parametru musi mieć cechę id, z wartością pokazaną w tym przykładzie, więc, że < etykieta > element HTML dał plony przez domyślną metodę fetchTooltip będą pasowali z tym poprawnie.


Jedyną inną metodą klasy JElement, którą można chcieć nadpisać, jest metoda fetchTooltip. Metoda ta zwraca kod HTML potrzebny, by dodać do pola dymek (poradę, objaśnienie). W większości przypadków odpowiedni będzie standardowy kod i nie będziesz potrzebował nadpisywać (zmieniać?, modyfikować) tej metody. Wymaga ona pięciu argumentów.

fetchTooltip( $label, $description, &$node, $control_name=,$name= )

gdzie:

$label jest napisem otrzymywanym z argumentu label w definicji <param>. Napis należy przed użyciem poddać tłumaczeniu
$description jest napisem otrzymywanym z argumentu description w definicji <param>. Napis należy przed użyciem poddać tłumaczeniu ( It should be passed through the language translation system before being used).
$node jest obiektem JSimpleXMLElement reprezentujacym element <param>.
$control_name jest typem parametru z argumentu type (np. 'category' albo 'nowyparm').
$name jest unikalną nazwą parametru, z argumentu name.

Aby przekazać napis do systemu tłumaczenia (Aby poddać napis systemowi tłumaczenia), musimy użyć statycznej klasy 'JText, jak poniżej:

$output = JText::_( 'ten napis będzie tłumaczony' );
© Tłumaczenie: zwiastun. Tłumaczenie wykonano na warunkach licencji JEDL.