PDA

Zobacz pełną wersję : Parametry komponentu po stronie administratora



Pawelo31
13-12-2012, 15:17
Witam
Mam problem z odczytaniem parametrów własnego komponentu (j2.5) po stronie administratora. Może ktoś będzie miał więcej wiedzy na ten temat ode mnie. Chociaż do tej pory sobie poradziłem ze wszystkimi błędami jakie się wiążą z pisaniem własnych komponentów. Aby odczytać parametry po stronie frontowej trzeba dodać trochę kodu w odpowiednich plikach komponentu. Podam przykład na jednym parametrze

trzeba stworzyć plik config.xml w głównym katalogu komponentu po stronie administracyjnej a w nim:

<?xml version="1.0" encoding="UTF-8"?>
<config>

<fieldset
name="cities"
label="Ogólne"
description="Ustawienia ogólne"
>

<field
name="show_pozycji"
type="list"
default="10"
label="Pozycji na stronie"
description="Określa ile ma się wyświetlać pozycji na stronie"
>
<option value="5">5</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
<option value="50">50</option>
<option value="60">60</option>
</field>

</fieldset>


</config>


w pliku view.html.php po stronie frontowej

class AukcjeViewWeryfikacja extends JView
{
protected $configs;

function display($tpl = null)
{
$this->configs = JFactory::getApplication()->getParams();
.
.
.




w widoku w pliku default.php po stronie frontowej


$itemsPerPage = $this->configs->get('show_pozycji');

w odpowiednim miejscu w pliku view.html.php po stronie administracyjnej trzeba dodać przycisk

JToolBarHelper::preferences('com_aukcje');
Po wciśnięci przycisku ustawień wyświetlą się ustawienia komponentu, które definiowaliśmy w pliku config.xml czyli lista (type="list") i wartości np ile pozycji ma się wyświetlić na stronie.

w widoku pod zmienną $itemsPerPage będzie zapisana nasza wartość. A to wszystko zapisywane jest w bazie. Joomla poradzi sobie z zapisaniem parametrów bez definiowania tabel itp.

wszystko jest ok do momentu jak się chce odczytać tą zmienną po stronie administracyjnej. Otrzymuje błąd:
Fatal error: Call to undefined method JAdministrator::getParams() in C:\xampp\htdocs\joomla2.5wielojezyczna\administrat or\components\com_aukcje\views\weryfikacja\view.ht ml.php on line 19
czyli linijka $this->configs = JFactory::getApplication()->getParams();

Byłbym bardzo wdzięczny za wskazówkę jeśli ktoś wie w czym jest problem. Dziękuję jeśli ktoś przeczytał do końca.
Pozdrawiam

pawelSafiStudio
13-12-2012, 15:46
Hmm, widzę na wstępie jedną nieprawidłowość.
Nadajesz zmiennej configs dostęp protected, następnie chcesz się do niej odwołać w widoku. Jeśli tak, to chyba nie powinieneś dawać protected?
Druga sprawa to chyba lepiej jest korzystać z metody statycznej JComponentHelper::getParams('com_nazwa');. Sprawdź czy to załatwi problem.

Pawelo31
13-12-2012, 18:42
załatwiło
odwołuje się do parametru w ten sposób
$p24_id_sprzedawcy = JComponentHelper::getParams('com_aukcje')->get('show_p24_id_sprzedawcy');
punkcik dla Ciebie