joomla api

25
Joomla! API Roland Dalmulder PLT member

Upload: roland-dalmulder

Post on 27-Jan-2017

906 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Joomla API

Joomla! API

Roland DalmulderPLT member

Page 2: Joomla API

Roland DalmulderJoomla! API

API

Een verzameling definities op basis waarvan computerprogramma’s kunnen communiceren.

Application Programming Interface

Page 3: Joomla API

JHtml

Page 4: Joomla API

Roland DalmulderJoomla! API

Stylesheets, Scripts en Plaatjes

Gebruikt altijd de locatie:

Media beheer

Automatisch wordt er -uncompressed aan het bestand toegevoegd als de debug mode aan staat.

/media/extensie/type/bestand

Page 5: Joomla API

Roland DalmulderJoomla! API

Stylesheets

JHtml::stylesheet('com_foo/foo.css', array(), true);

3 argumenten:BestandAttributenRelatief pad

Locatie: /media/com_helloworld/css/helloworld.css

Page 6: Joomla API

Roland DalmulderJoomla! API

Scripts

JHtml::script('com_foo/foo.js', false, true);

3 argumenten:BestandMooTools FrameworkRelatief pad

Locatie:Locatie: /media/com_helloworld/js/helloworld.js

Page 7: Joomla API

Roland DalmulderJoomla! API

Plaatjes

JHtml::image('com_foo/foo.png', 'Hello world', null, true);

4 argumenten:BestandAlt tekstAttributenRelatief pad

Locatie: /media/com_helloworld/images/helloworld.png

Page 8: Joomla API

Roland DalmulderJoomla! API

Andere mogelijkheden

De JHtml class kent veel meer mogelijkheden dan alleen media beheer.

Er is meer dan media beheer

libraries/cms/html/

Page 9: Joomla API

Roland DalmulderJoomla! API

Voorbeelden

De JHtml class kent veel meer mogelijkheden dan alleen media beheer.

JHtml::calendar(); JHtml::iframe(); JHtmlJquery::framework();

Voorbeelden van andere JHtml opties

Page 10: Joomla API

Roland DalmulderJoomla! API

Aanroepen van JHtml

De JHtml functies kunnen op 2 manieren worden aangeroepen:

JHtml::_('script', 'com_foo/foo.js', false, true); JHtml::script('com_foo/foo.js', false, true);

Meerdere wegen naar Rome

Page 11: Joomla API

Roland DalmulderJoomla! API

Override van JHtml

JHtml::register('jquery.framework', 'ClassToLoad::MethodToCall')

Je eigen manier

https://github.com/mbabker/bs3-demo/

Page 12: Joomla API

Roland DalmulderJoomla! API

Uitbreiden

JLoader::register( 'JHtmlUsers', JPATH_COMPONENT . '/helpers/html/users.php'

);

echo JHtml::_('users.value', $field->value);

Je eigen methodes

Page 13: Joomla API

JLayouts

Page 14: Joomla API

Roland DalmulderJoomla! API

Layouts

Joomla layouts staan in de map:

Gedeelde opmaak

Component layouts staan in de map:

Alle data staat in $displayData

layouts/joomla/

components/com_foo/layouts/administrator/components/com_foo/layouts/

Page 15: Joomla API

Roland DalmulderJoomla! API

Code

$data = array( 'text' => 'Hello world'); $layout = new JLayoutFile('foo.greetings.welkom');

echo $layout->render($data);

Page 16: Joomla API

Roland DalmulderJoomla! API

Layout

<h2><?php echo $displayData['text']; ?></h2>

Gedeelde opmaak

components/com_foo/layouts/foo/greetings/welkom.php

Page 17: Joomla API

Roland DalmulderJoomla! API

Sublayout

echo $this->sublayout('holidays', $displayData['text']);

components/com_foo/layouts/foo/greetings/welkom/holidays.php

Page 18: Joomla API

JHttpFactory

Page 19: Joomla API

Roland DalmulderJoomla! API

Externe connecties

$http = JHttpFactory::getHttp(null, array('curl', 'stream'));

Verbinden met de buitenwereld

Page 20: Joomla API

Roland DalmulderJoomla! API

Praten met de serverDe woordenlijst

Er zijn verschillende manieren om te communiceren:* options* head* get* post* put* delete* trace* patch

Page 21: Joomla API

Roland DalmulderJoomla! API

AntwoordKrijg je wat je gevraagd heb?

Het antwoord is altijd een JHttpResponse object. Dit object bestaat uit 3 onderdelen:* code* headers* body

Page 22: Joomla API

Roland DalmulderJoomla! API

CodeDe status

Het code veld geeft aan welke status er van de server is terug gekomen. Denk hierbij aan:* 200 OK* 500 Internal Server Error* 501 Not Implemented* 405 Method Not Allowed

Page 23: Joomla API

Roland DalmulderJoomla! API

HeadersAchtergrondinformatie

Dit is een array met allerlei informatie verstrekt door de server.

Page 24: Joomla API

Roland DalmulderJoomla! API

BodyDe gevraagde informatie

Dit is de gevraagde informatie indien het verzoek succesvol is geweest, anders kan er andere informatie in staan.

Page 25: Joomla API

Bedankt :)