Blog

Post

Biała księga Joomla

31 Aug Joomla

W tym poście zostały opisane różne przykłady skryptów używane w Joomla 3.6 API, przydatne podczas pisania pluginów, modułow lub komponentów.

To są raczej moje prywatne notatki mogą zawierać błędy i niedomówienia. Bedę to z czasem aktualizował.

Przy programowaniu warto posiłkować się dokumentacją Joomla. Warto pamiętać że w dokumentacji poszczególnych klas przyciski filtrujące clasy to przyciski typu on off a nie switch. Wato o tym pamiętać bo na zle skalibrorowanych monitorach i dla mniej uważnych może się wydawać że dużo funkcji nie jest opisanych.  

pobiera rekord o podanym id nie działa w controlerze. Jako nazwe modelu wpisujemy nazwe schemy xml z katalogu forms z dużej litery jako id podajemy primaryKey

okazuje sie że jednak działa w kontrolerze ale trzeba dopisać:

JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_recipes/tables');

 

$obj = JTable::getInstance('NazwaModelu', 'FscalendarTable', array());
$obj->load($id);

 

aby podobny skrypt zadziała w controlerze piszemy tak:

$model = $this->getModel('Nazwa model', 'FscalendarModel', array());
$item = $model->getItem();

 

ustawianie domyślnej wartości w formularzu. polecanie można uzyć w view.html.php np na ukrytych polach. Uzywa się tego w plikach widoku view.html.php

$this->form->setValue('imie', null, $value);

Tak mozna poznać czy jest sie na czesci admin lub site

$app = JFactory::getApplication();

if ($app->isSite()) {
   echo 'Client is site';
}

if ($app->isAdmin()) {
	echo 'Client is administrator';
}

Tak pobieramy dane z formularza

 $item = JFactory::getApplication()->input->get('jform', array(), 'array');

przy używaniu metody $mailer->Send(); trzeba pamietać że metoda ta zwraca tylko true w przypadku powodzenie w przypadku niepowodzenia zwraca obiekt z błędami i innymi rzeczami

 

Tak pobieramy wartości get i chyba nawet post. pierwszy paramet to nazwa zmiennej druga jaka ma być wartość jak nie będzie zmiennej i trzeci filtr typu

$var = JFactory::getApplication()->input->get('nazwa_zmiennej', null, 'int');

uzywanie zapytania z klauzulą or wykunujemy przy pomocy metodą  orWhere

 

pobieranie parametrów ustawień komponentu

$params = JComponentHelper::getParams('com_nazwakomponetu');

 

jeżeli w polu typu kalendarz "calendar" przestawia sie godzina mimo prawidłowych ustawien zwiazanych z czasem na serverze itp należy uzyć filtra w xml na tym polu filter="none"

sprawdzanie czy dany komponent jest zainstalowany

if (JComponentHelper::getComponent('com_nazwakomponetu', true)->enabled) {
}

dodanie komunikatu do kolejki komunikatów

JFactory::getApplication()->enqueueMessage(JText::_('MOD_TŁUMACZONAFRAZA'), 'error');

Jak odczytać gdzie sie jest

$joomlaApp = JFactory::getApplication()->input;
$option = $joomlaApp->getCmd('option');
$view = $joomlaApp->getCmd('view');
$layout = $joomlaApp->getCmd('layout');

JURI::root() VS JURI::base()

Root zawsze daje ścieżkę do głównego korzenia instancji joomla base daje rózne sciezki w zaleznosci od miejsca użycia. po stronie site daje sciezke do głównego folderu aplikacji po stronie admina zwraca sciezke do zaplecza

niestandardowe reguły walidacji pisze sie w katalogu rules a potem przypisuje do pól w xml. metoda test to domyślana metoda która sie uruchmia. Walidacje nie działają na liście tylko przy dodawania i edycji. Może to można zmienić ale nie wiem.

https://docs.joomla.org/J3.x:Server-side_form_validation

© 2011-2020 taipa.pl RODO | Cookies

Polityka RODO

1. Firma Taipa wyznaczyła inspektora ochrony danych osobowych. Dane kontaktowe inspektora:

Michał Myśliński
poczta@taipa.pl

2. Przekazane dane osobowe przetwarzane będą w celu realizacji usług, obsługi zgłoszeń i udzielania odpowiedzi na zgłoszenia;

3. Kategorie danych osobowych obejmują m.in. imię i nazwisko, numer telefonu, adres e-mail, adres, dane dedykowane do procesu/usługi/projektu;

4. Pani / Pana dane osobowe mogą być przekazywane podmiotom przetwarzającym dane osobowe na zlecenie administratora: dostawcy usług IT;

5. Państwa dane osobowe będą przechowywane przez okres istnienia prawnie uzasadnionego interesu administratora, chyba że Pani / Pan wyrazi sprzeciw wobec przetwarzania danych;

6. Państwa dane nie będą przekazywane do państwa trzeciego ani organizacji międzynarodowej;

7. Posiadają Państwo prawo dostępu do treści swoich danych oraz prawo ich sprostowania, usunięcia, ograniczenia przetwarzania, prawo do przenoszenia danych, prawo wniesienia sprzeciwu, prawo do cofnięcia zgody w dowolnym momencie bez wpływu na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej cofnięciem;

8. Mają Państwo prawo wniesienia skargi do organu nadzorczego zajmującego się ochroną danych osobowych, którym jest Prezes Urzędu Ochrony Danych Osobowych, gdy uznają Państwo, iż przetwarzanie Państwa danych osobowych narusza przepisy ustawy z dnia 10 maja 2018 r. o ochronie danych osobowych (tekst jednolity Dz. U. z 2018 r., poz. 1000) lub przepisy Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (ogólne rozporządzenie o ochronie danych) z dnia 27 kwietnia 2016 r. (Dz.Urz.UE.L Nr 119, str. 1);

9. Dane udostępnione przez Panią/Pana nie będą podlegały zautomatyzowanemu podejmowaniu decyzji oraz profilowaniu;

10. Dane pochodzą od osób, których dane dotyczą;

11. Podanie przez Państwa danych osobowych jest dobrowolne;

Polityka Cookies

Ta strona korzysta z plików cookies. Dowiedz się więcej.

Wykorzystujemy pliki cookies. Tutaj znajdziesz informację o rodzaju ciasteczek oraz możliwości zmiany ustawień przeglądarki.

Używamy cookies w celu świadczenia usług i statystyk. Brak zmiany ustawień przeglądarki oznacza, że będą one umieszczane na Twoim urządzeniu. Możesz zmienić te ustawienia.