TYPO3 eid : AJAX i nie tylko. Artur Cichosz Quintinity Interactive

Podobne dokumenty
MVC w praktyce tworzymy system artykułów. cz. 1

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...

TECHNOLOGIE SIECI WEB

Optymalizacja pracy z instancjami local / staging / production. Krystian Szymukowicz (k.szymukowicz@sourcebroket.net)

W tej części dowiemy się, jak rozszerzyć WordPress za pomocą JSON-API. Oto kilka rzeczy, które będziemy robić z wtyczką JSON-API:

PRZETWARZANIE ROZPROSZONE ZADAN` Mariusz Gil 4Developers 2012, Poznań

NoSQL Not Only SQL: CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Przetwarzanie dokumentów i widoków.

Programowanie zorientowane obiektowo. Mateusz Kołecki

Programowanie i projektowanie obiektowe

Zaawansowane aplikacje internetowe

Czym jest AJAX. AJAX wprowadzenie. Obiekt XMLHttpRequest (XHR) Niezbędne narzędzia. Standardowy XHR. XHR z obsługą baz danych

Zaawansowane aplikacje internetowe laboratorium REST

Bazy Danych i Usługi Sieciowe

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Programowanie internetowe

Podstawy wzorca MVC MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę.

Szybko, prosto i tanio - ale czy na pewno?

RESTful WCF Services. Autor ćwiczenia: Piotr Ostrowski. Kroki ćwiczenia : 1. Utworzenie nowego projektu RESTful WCF.

OPT Open Power Template. System szablonów OPT. Przykładowy skrypt oraz szablon OPT OPT API

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

JavaScript obiektowość

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I


Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Projekt z Technologii Internetowych

FLEX ( ) Przygotowanie środowiska developerskiego Hello world w MXML Hello world w ActionScript

Projektowanie Aplikacji Internetowych Temat: Serwer wymiany plików Documentation Page 1

Server setup. #include <SPI.h> #include <Ethernet.h> boolean incoming = 0;

Dokumentacja techniczna API systemu SimPay.pl

Plan wykładu. 1. Protokół FTP. 2. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Bazy Danych i Usługi Sieciowe

Studium Podyplomowe Aplikacje i Us ugi Internetowe Tworzenie witryn internetowych 2012/2013. CakePHP część II

Budowa nowoczesnej aplikacji SPA z wykorzystaniem biblioteki Ember.js

Realizacja Aplikacji Internetowych 2013 laboratorium cz. 2 K.M. Ocetkiewicz

Podstawy programowania w języku JavaScript

Spis treści. Wstęp 5 Rozdział 1. Praca z AJAX-em 9. Rozdział 2. Współpraca ze skryptami PHP 55. Rozdział 3. Obsługa formularzy 81

Podstawy programowania III WYKŁAD 6

JavaScript funkcyjność

PODSTAWY BAZ DANYCH 13. PL/SQL

Zaawansowany kurs języka Python

Programowanie Komputerów

Testy aplikacji webowych

XML extensible Markup Language. część 5

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

KUP KSIĄŻKĘ NA: PRZYKŁADOWY ROZDZIAŁ KOMUNIKATY DLA UŻYTKOWNIKA I ROLE UŻYTKOWNIKÓW

HTTP W 5-CIU PYTANIACH MICHAŁ KOPACZ

Ćwiczenia 2 IBM DB2 Data Studio

Jak okiełznać frontend w Django? Piotr Maliński

Internet Engineering LAB 2

I.Wojnicki, PHP. Smarty. Igor Wojnicki. Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie. 28 marca 2014

1. Otwórz app_advanced.html i skopiuj i wklej następujący kod bezpośrednio w tagach <head>:

Materiały dla studentów Informatyki WSZiB w Krakowie

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Elementy JEE. 1. Wprowadzenie. 2. Prerekwizyty. 3. Pierwszy servlet. obsługa parametrów żądań 4. JavaServer Pages.

NoSQL Not Only SQL, CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Igor Wojnicki

Technologie Obiektowe PK WFMI 2010/2011

Programowanie Systemów Rozproszonych - WCF REST

Walidacja po stronie serwera Walidacja po stronie klienta:

Specyfikacja wysyłek marketingowych v1.10

DOM (Document Object Model)

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

I.Wojnicki, Tech.Inter.

Wykład 03 JavaScript. Michał Drabik

Wykład 12. Programowanie serwera MS SQL 2005 w C#

3. Silnik MVC Opis rozdziału Organizacja plików. Mini poradnik: Jak stworzyć grę via WWW.

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Zaawansowany kurs języka Python

PDW Sp. z o. o. Dokumentacja techniczna API. Przygotował: Tomasz Meka (tomek@elibri.com.pl)

Przykładowa implementacja

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Sieci Komputerowe. Laboratorium 5 - usługi sieciowe cz. 1 Maciej Szymański 28 kwietnia 2014

Angular, cz. II. Tworzenie serwisów Web 2.0. dr inż. Robert Perliński

Programowanie w Sieci Internet jquery - nowy aromat kawy angular.js. Kraków, 24 października 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Zaawansowany kurs języka Python

Plan prezentacji. System szablonów OPT. OPT Open Power Template. System szablonów. Przedmiot: Internet i jego zastosowanie. Wstęp

Dane opatrzone informacją o położeniu obiektów w świecie rzeczywistym. Współrzędne geograficzne. Geokodowanie

PRZEGLĄDARKA I JEJ OTOCZENIE

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Zielona Szkoła Czaplinek 2010

Google Web Toolkit. Piotr Findeisen

Zaawansowane bazy danych i hurtownie danych

SOAP. Autor: Piotr Sobczak

E.14 Bazy Danych cz. 19 SQL i PHP współpraca przez stronę internetową

Systemy internetowe Wykład 3 PHP

Zagadnienia. Konstrukcja bibliotek mysql i mysqli w PHP. Dynamiczne generowanie stron. Połączenie, zapytanie i sesja

PHP. Tematyka wykładów: Język PHP PHP i bazy danych Rozszerzenia PHP

Co, gdzie, jak, kiedy? kiedy co gdzie jak jak I jeszcze trochę jak

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

Java wybrane technologie

Przykład programu w PHP. Wykład10.PHP ciągdalszy,str.1

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Należy ściągnąć oprogramowanie Apache na platformę

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Transkrypt:

TYPO3 eid : AJAX i nie tylko Artur Cichosz Quintinity Interactive

eid czyli extension ID Alternatywna rendering engine TYPO3 Bardzo okrojone srodowisko TYPO3 Podstawowe stale systemowe Dostep do bazy danych localconf.php / ext_localconf.php => czesciowo zaladowane rozszerzenia bez $TCA

Co z tego mamy? Krotki czas odpowiedzi. Standard / typenum=x < 1 sec eid < 0,2 sec

eid zastosowanie : 1. deklaracja EXT:myExt/ext_localconf.php <?php $TYPO3_CONF_VARS['FE']['eID_include']['hello_eID'] = 'EXT:myExt/eID_myTest.php';?>

eid - zastosowanie: 2. scrypt EXT:myExt/eID_myTest.php <?php if (!defined ('PATH_typo3conf')) die ('Could not access this script directly!'); echo 'Hello World at '. date('c');?>

eid - zastosowanie: 3. wywolanie URL: http://www.myproject.pl/?eid=hello_eid OUTPUT: Hello World at 2011-11-04T19:15:28+01:00 CET

AJAX & eid request AJAX Server eid event AJAX Client jquery & Co. response AJAX App TYPO3 content

AJAX App <script type="text/javascript" src="typo3conf/ext/myext/pi1/ajaxtest.js"></script> <input type="button" id="button" onclick="doajax()" value="do AJAX" /> <div id="ajaxoutput"> </div>

AJAX Client / jquery EXT:myExt/pi1/ajaxTest.js function doajax(){ $.ajax({ url: "index.php", type: "GET", cache: false, async: true, data: { eid: "hello_eid",, datatype: "json", success: function(response) { $("#ajaxoutput").html(response[`content`]);, error: function(xmlhttprequest, textstatus, errorthrown) { alert(xmlhttprequest.responsetext); ); return false;

AJAX serwer / eid EXT:myExt/eID_myTest.php <?php if (!defined ('PATH_typo3conf')) die ('Could not access this script directly!'); class ajax_controller { function construct() { tslib_eidtools::connectdb(); //Connect to database function dispatch(){ $data['content'] = 'Hello World at '. date('c'). ' CET'; echo json_encode($data); try { $controller = t3lib_div::makeinstance('ajax_controller'); $controller->dispatch(); catch(exception $e) { header('http/1.1 500 Internal Server Error'); echo $e->getmessage();?>

eid & FE-User session (+ $GLOBALS['TCA']) <?php if (!defined ('PATH_typo3conf')) die ('Could not access this script directly!'); class ajax_controller { var $feuserobj; function construct() { tslib_eidtools::connectdb(); //Connect to database $this->feuserobj = tslib_eidtools::initfeuser(); // Initialize FE user object function dispatch(){ $data['content'] = 'Hello World at '. date('c'). ' CET'; echo json_encode($data); try { $controller = t3lib_div::makeinstance('ajax_controller'); $controller->dispatch(); catch(exception $e) { header('http/1.1 500 Internal Server Error'); echo $e->getmessage();?>

eid + $GLOBALS['TSFE'] <?php [...] function construct() { tslib_eidtools::connectdb(); //Connect to database $this->feuserobj = tslib_eidtools::initfeuser(); // Initialize FE user object // create tsfe and page object instances: $temp_tsfeclassname = t3lib_div::makeinstanceclassname('tslib_fe'); $TSFE = new $temp_tsfeclassname($typo3_conf_vars, $page=($_get['id']?$_get['id']:1), 0, true); $GLOBALS['TSFE'] = & $TSFE; $TSFE->sys_page = t3lib_div::makeinstance('t3lib_pageselect'); // template object $TSFE->tmpl = t3lib_div::makeinstance('t3lib_tstemplate'); $TSFE->tmpl->init(); // fetch rootline and extract ts setup: $TSFE->rootLine = $TSFE->sys_page->getRootLine(intval($page)); $TSFE->getConfigArray(); [...]?> // transfer user session to TSFE-Object $TSFE->fe_user = $feuserobj; $TSFE->initUserGroups();

eid & TYPO3 plugins <?php [...] function dispatch(){ // instantiate plugin object include_once('typo3conf/ext/myext/pi1/class.tx_myext_pi1.php'); $piobj = t3lib_div::makeinstance("tx_myext_pi1"); // cobj needed for link operations $piobj->cobj = t3lib_div::makeinstance('tslib_cobj'); $piconfig = $TSFE->tmpl->setup['plugin.']["{$piObj->prefixId."]; $piconfig['whattoshow'] = 'ajaxtest'; $data = $piobj->main('',$piconfig); echo json_encode($data); [...]?>

eid & Cache (EXT:enetcache) <?php [...] function construct() { tslib_eidtools::connectdb(); //Connect to database # init caching framework $GLOBALS['typo3CacheManager'] = t3lib_div::makeinstance('t3lib_cache_manager'); $GLOBALS['typo3CacheFactory'] = t3lib_div::makeinstance('t3lib_cache_factory'); $GLOBALS['typo3CacheFactory']->setCacheManager($GLOBALS['typo3CacheManager']); t3lib_cache::initpagecache(); function dispatch() { $cacheid = Array("eID-Test"=>1); $cached = t3lib_div::makeinstance('tx_enetcache')->get($cacheid, false); if ($cached) { $data= $cached; else { $data['content'] = 'Hello World at '. date('c'). ' CET'; $cachetags[] = 'eid_content'; t3lib_div::makeinstance('tx_enetcache')->set( $cacheid, $data, $cachetags, '3600', false ); echo json_encode($data); [...]?>

Dziekuje za uwage!