joomla api

Post on 27-Jan-2017

908 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Joomla! API

Roland DalmulderPLT member

Roland DalmulderJoomla! API

API

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

Application Programming Interface

JHtml

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

Roland DalmulderJoomla! API

Stylesheets

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

3 argumenten:BestandAttributenRelatief pad

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

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

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

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/

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

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

Roland DalmulderJoomla! API

Override van JHtml

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

Je eigen manier

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

Roland DalmulderJoomla! API

Uitbreiden

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

);

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

Je eigen methodes

JLayouts

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/

Roland DalmulderJoomla! API

Code

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

echo $layout->render($data);

Roland DalmulderJoomla! API

Layout

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

Gedeelde opmaak

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

Roland DalmulderJoomla! API

Sublayout

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

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

JHttpFactory

Roland DalmulderJoomla! API

Externe connecties

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

Verbinden met de buitenwereld

Roland DalmulderJoomla! API

Praten met de serverDe woordenlijst

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

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

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

Roland DalmulderJoomla! API

HeadersAchtergrondinformatie

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

Roland DalmulderJoomla! API

BodyDe gevraagde informatie

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

Bedankt :)

top related