joomla api
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 :)