Witam,
Gdzie wykonać mogę kod PHP (np. zapisujący session_id do bazy mySQL) w systemie JOOMLA - aby każde zapytanie lecące do bazy danych następowało po tym kodzie.
Tomek
Witam,
Gdzie wykonać mogę kod PHP (np. zapisujący session_id do bazy mySQL) w systemie JOOMLA - aby każde zapytanie lecące do bazy danych następowało po tym kodzie.
Tomek
w pliku startowym index.php?
No mam nadzieje, ze zadziała, bo jeśli komponenty łączą się z bazą danych (np. za pomocą ajaxa) - to pytanie czy w tej samej sesji... ale no już testuję. To że w pliku index.php to wiem, ale. np. jak jest ajax to trzeba osobno robic to w pliku ajax.php... wiec nie wiem czy to tutaj zadziała. Stąd moje pytanie dla tych co znają joomle, czy to zadziała. Pytanie czy jak komponent pyta sie o dane, to raczej index.php nie jest już przetwarzany...i będzie kupa, bo będzie to osobna sesja z innym numerem...
...
sprawdziłem, kupa, komponenty odczytują dane z bazy danych bez udziału pliku index.php i w osobnej sesji, więc mają już inny connection_id()... ;(
A jak odczytać czy ktoś jest zalogowany czy nie w pliku, który jest ładowany ajaxem. Tam takie coś $user =& JFactory::getUser(); nie zadziała. Joomla coś trzyma w ciastku o losowej nazwie i zawartości, jednak nie można tego powiązać z pozycjami tabeli session. Idzie to jakoś sensownie i prosto zrobić?
Tu się kłania zasada działania modelu MVC oraz klasa odpowiedzialna za zarządzanie sesjami http
https://api.joomla.org/cms-3/classes/Joomla.CMS.Session.Session.html#method_getId
jeśli chcesz operować na ajaxie to musisz przekazywać zmienne z ajax'a do controllera, a potem już z górki
tu mały przykład na pobieranie danych sesji:
na koniec wrzućKod:public function add (){ $session = JFactory::getSession(); $value = ??? ; $group = array(); $group['item'] = array('id' => $value); $session->set('group', $group); }
var_dump($session)
POPRAWIONE
Kod:public function add() { // pobierz dane joomla: $input = JFactory::getApplication()->input; // pobierz zmienne $value = $input->get('id'); $session = JFactory::getSession(); $group = array(); $group['item'] = array('id' => $value); $session->set('group', $group); }
Dzięki. Światełko w tunelu się zapaliło :-)