SlideShare ist ein Scribd-Unternehmen logo
1 von 132
Downloaden Sie, um offline zu lesen
WORKSHOPWORKSHOP
TEMPLATETEMPLATE
OVERRIDES &OVERRIDES &
JLAYOUTSJLAYOUTS
Hans Kuijpers, 17-05-2019
JoomlaDagen, Utrecht
HANS KUIJPERSHANS KUIJPERS
Frontend webdeveloper
@hans2103
TEMPLATE OVERRIDETEMPLATE OVERRIDE
V.S.V.S.
ALTERNATE LAYOUTALTERNATE LAYOUT
1. Copy & Change bestaande weergave...
bijv. com_content/category/blog.php
2. Creatie nieuwe weergave...
bijv. com_content/category/calendar.php
WAAROM HEB IK DAT VOORWAAROM HEB IK DAT VOOR
NODIG?NODIG?
VOORBEELDENVOORBEELDEN
Joomla 3 vol Bootstrap 2 vervangen door ander css
framework.
Eigen weergave maken zonder 3th party extensie.
Custom Fields plaatsen waar jij wil.
WAAROM HEB IK DAT NODIG?WAAROM HEB IK DAT NODIG?
REDENENREDENEN
Geen toepassen core-hacks in Joomla.
Gewoon niet doen!
Voorkom 3th party extensies.
En onderhoud daarvan.
WAAROM WERKT HET?WAAROM WERKT HET?
Omdat Joomla met MVC model gemaakt is.
Omdat 3th party extensies ook met MVC model
gemaakt zijn... hoop ik
Dus logica en output zijn gescheiden.
VOORBEELD: COM_CONTENTVOORBEELD: COM_CONTENT
Template override is
mogelijk met alle views.
Alternate layout is
mogelijk met:
Articles
Category
Alternate layout met
eigen menu type is
mogelijk met alle views.
INSTELLEN ALTERNATE LAYOUTINSTELLEN ALTERNATE LAYOUT
Globaal via opties van com_content
INSTELLEN ALTERNATE LAYOUTINSTELLEN ALTERNATE LAYOUT
Per categorie / artikel tabblad opties
INSTELLEN ALTERNATE LAYOUTINSTELLEN ALTERNATE LAYOUT
Indien .xml file bestaat
kun je een eigen menu
type maken.
HOE MAAK JE EEN OVERRIDE?HOE MAAK JE EEN OVERRIDE?
Kopieer default.php van een view.
En soms heet het anders, zoals blog.php.
components/com_content/views/article/tmpl/defau
Plak in de html map van je template.
templates/.../html/com_content/article/default.php
Wijzig PHP / HTML naar jouw wens
Klaar... de standaard output van com_content/article
aangepast.
HOE MAAK JE EEN ALTERNATEHOE MAAK JE EEN ALTERNATE
LAYOUT?LAYOUT?
Kopieer default.php van een view.
En soms heet het anders, zoals blog.php.
components/com_content/views/article/tmpl/defau
Plak in de html map van je template met een andere n
templates/.../html/com_content/article/home.php
Wijzig PHP / HTML naar jouw wens
Wijzig (in dit geval) de layout van het artikel.
Klaar... de alternate layout voor com_content/article i
gebruik.
HOE MAAK JE EEN EIGEN MENUHOE MAAK JE EEN EIGEN MENU
ITEM?ITEM?
Herhaal de vorige stappen.
Kopieer default.xml van een view.
En soms heet het anders, zoals blog.xml.
components/com_content/views/article/tmpl/defau
Plak in de html map van je template met een andere n
templates/.../html/com_content/article/home.xml
Wijzig XML naar jouw wens. (in ieder geval layout=>titl
layout=>option en layout=>message)
Maak een nieuw menu item aan en selecteer je nieuwe
INSTELLEN ALTERNATE LAYOUTINSTELLEN ALTERNATE LAYOUT
MODULEMODULE
Module tabblad Uitgebreid
HOE MAAK JE EEN MODULEHOE MAAK JE EEN MODULE
OVERRIDE?OVERRIDE?
Kopieer default.php van een view.
modules/mod_articles_category/tmpl/default.php
Plak in de html map van je template.
templates/.../html/mod_articles_category/default.p
Wijzig PHP / HTML naar jouw wens
Klaar... de standaard output van mod_articles_catego
is aangepast.
HOE MAAK JE EEN ALTERNATEHOE MAAK JE EEN ALTERNATE
LAYOUT VAN EEN MODULE?LAYOUT VAN EEN MODULE?
Kopieer default.php van een view.
modules/mod_articles_category/tmpl/default.php
Plak in de html map van je template met een andere
naam.
templates/.../html/mod_articles_category/list.php
Wijzig PHP / HTML naar jouw wens
Klaar... de alternate layout van
mod_articles_category kan toegepast worden.
EN VERDER...EN VERDER...
Plugins => mits tmpl aanwezig, op dezelfde manier
Taalbestanden => anders...
language/overrides/nl-NL.override.ini
Of via Joomla Administrator > Extensies > Talen >
Overrides
jLayouts => straks meer hierover.
Eerst zelf aan de slag.
ONZE BASIS VAN VANDAAG:ONZE BASIS VAN VANDAAG:
Joomla 3.9.6 met Sample Data Blog English
OPDRACHT - TEMPLATEOPDRACHT - TEMPLATE
OVERRIDEOVERRIDE
Maak een template override van
com_content/article.
Zoek de plek op waar de tekst opgeroepen wordt.
Plaats direct daarna een paragraaf met "Hello
world!".
<p>Hello world!</p>
STAPPENPLANSTAPPENPLAN
Kopieer default.php van de view van com_content/art
components/com_content/views/article/tmpl/defau
Plak in de html map van je template.
templates/protostar/html/com_content/article/defa
Zoek <?php echo $this->item->text; ?>
Plak daarachter de code: <p>Hello world!</p>
En aanschouw het resultaat. :-)
OPDRACHT - ALTERNATE LAYOUTOPDRACHT - ALTERNATE LAYOUT
Maak een alternate layout van com_content/article.
Verwijder alle code... alle code
Plaats een paragraaf met "Hello world!".
<p>Hello world!</p>
Wijs een artikel toe aan deze nieuwe weergave.
STAPPENPLANSTAPPENPLAN
Kopieer default.php van de view van com_content/art
components/com_content/views/article/tmpl/defau
Plak in de html map van je template.
templates/protostar/html/com_content/article/hom
Verwijder alle code.
Plak de volgende code: <p>Hello world!</p>
Open artikel in Joomla Administrator en wijs via tabbl
Opties de nieuwe weergave toe.
En aanschouw het resultaat. :-)
OPDRACHT - ALTERNATE LAYOUTOPDRACHT - ALTERNATE LAYOUT
MET MENU ITEMMET MENU ITEM
Maak een alternate layout met menu item van
com_content/article.
Hergebruik de alternate layout van de vorige
opdracht.
Maak een nieuw menu item van dit nieuwe type.
Wijs toe aan een willekeurig artikel.
STAPPENPLANSTAPPENPLAN
Kopieer default.xml van de view van com_content/art
components/com_content/views/article/tmpl/defau
Plak in de html map van je template.
templates/protostar/html/com_content/article/hom
wijzig op z'n minst het volgende:
layout attribuut title ( Home
)
layout attribuut option ( Homepage
)
layout > message ( Weergave van de homepage
)
Maak in Joomla Administrator een menu itemn van he
nieuwe menu type verwijzend naar aan willekeurig art
En aanschouw het resultaat. :-)
VEELGESTELDE VRAGENVEELGESTELDE VRAGEN
Lijst van uitvouwbare vragen en antwoorden.
Te plaatsen onder een artikel.
Alternate layout voor mod_articles_category
DETAILS & SUMMARYDETAILS & SUMMARY
Details
Informatie via:
Browser support:
<details>
<summary>Details</summary>
Something small enough to escape casual notice.
</details>
MDN web docs
caniuse.com
OPDRACHT - ALTERNATE LAYOUTOPDRACHT - ALTERNATE LAYOUT
MODULEMODULE
Voorbereiding
Maak een nieuwe module aan voor
mod_articles_category.
Titel: Veelgestelde vragen
Modulepositie: middenboven (position-3)
Menutoewijzing: alleen op pagina About
Opties voor filteren: Categorie = Blog
Toon opties: Introtekst = Toon
Toon opties: Toon "Lees meer" = Toon
Toon opties: Toon titel in lees-meer = Verberg
OPDRACHT - ALTERNATE LAYOUTOPDRACHT - ALTERNATE LAYOUT
MODULEMODULE
Maak een alternate layout faq van
mod_articles_category.
Hergebruik de foreach loop in de code voor de
nieuwe HTML elementen.
Wijs de alternate layout toe aan de zojuist
aangemaakte module.
<details>
<summary>Titel van artikel</summary>
Introtext en readmore link
</details>
STAPPENPLANSTAPPENPLAN
Kopieer default.php van mod_articles_category.
modules/mod_articles_category/tmpl/default.php
Plak in de html map van je template.
templates/protostar/html/mod_articles_category/f
Verwijder alle code op de foreach loop na.
<?php defined('_JEXEC') or die; ?>
<?php foreach ($list as $item) : ?>
bla
<?php endforeach; ?>
STAPPENPLAN - VERVOLGSTAPPENPLAN - VERVOLG
<details>
<summary><?php echo $item->title; ?></summary>
<div>bla</div>
</details>
<?php defined('_JEXEC') or die; ?>1
<?php foreach ($list as $item) : ?>2
3
4
5
6
<?php endforeach; ?>7
Kopieer displayIntrotext en readmore uit origineel.
<?php echo $item->displayIntrotext; ?>
<p class="mod-articles-category-readmore">
<a class="mod-articles-category-title <?php echo $item-
<?php if ($item->params->get('access-view') == false)
<?php echo JText::_('MOD_ARTICLES_CATEGORY_REGISTER_T
<?php elseif ($readmore = $item->alternative_readmore)
<?php echo $readmore; ?>
<?php echo JHTML::_('string.truncate', $item->title,
<?php elseif ($params->get('show_readmore_title', 0) =
<?php echo JText::sprintf('MOD_ARTICLES_CATEGORY_READ
<?php defined('_JEXEC') or die; ?>1
<?php foreach ($list as $item) : ?>2
<details>3
<summary><?php echo $item->title; ?></summary>4
<div>5
6
7
8
9
10
11
12
13
14
15
Voeg css toe via template/protostar/css/user.css
details {
border: 1px solid #aaa;
border-radius: 4px;
padding: .5em .5em 0;
text-align: left;
}
summary {
font-weight: bold;
margin: -.5em -.5em 0;
padding: .5em;
}
details[open] {
padding: .5em;
WAT IS EEN JLAYOUT?WAT IS EEN JLAYOUT?
Bestanden met code,
toepasbaar op
verschillende plaatsen in
Joomla!
Duplicate code wordt
hiermee bespaard.
Bijvoorbeeld de Lees-
meer button.
WAAR EN HOE ZIE IK DAT TERUG?WAAR EN HOE ZIE IK DAT TERUG?
components/content/views/category/tmpl/default_ite
components/content/views/category/tmpl/blog_item
<?php echo JLayoutHelper::render('joomla.content.readmore', ar
<?php echo JLayoutHelper::render('joomla.content.readmore', ar
layouts/joomla/content/readmore.php
<?php
/**
* @package Joomla.Site
* @subpackage Layout
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters,
* @license GNU General Public License version 2 or later;
*/
defined('_JEXEC') or die;
$params = $displayData['params'];
$item = $displayData['item'];
$direction = JFactory::getLanguage()->isRtl() ? 'left' : 'righ
?>
HOE MAAK JE EEN OVERRIDE?HOE MAAK JE EEN OVERRIDE?
Kopieer layouts/joomla/content/readmore.php
Plak in de html map van je template.
Wijzig PHP / HTML naar jouw wens
Klaar... de jLayout readmore is aangepast.
En geldt voor alle plaatsen waar readmore
opgeroepen wordt.
templates/.../html/layouts/joomla/content/readmore.php
HOE MAAK JE EEN EIGENHOE MAAK JE EEN EIGEN
JLAYOUT FILE?JLAYOUT FILE?
Maak een eigen map in layouts map van html map
van je template.
Voeg code toe aan het nieuwe bestand.
Roep je eigen jLayout op waar je maar wil.
templates/.../html/layouts/template/helloworld.php
<p>Hello world!</p>
<?php echo JLayoutHelper::render('template.helloworld'); ?>
OPDRACHT: VERVANG HELLOOPDRACHT: VERVANG HELLO
WORLD!WORLD!
Verplaats de hard-coded <p>Hello world!</p>
uit de eerdere opdracht naar een jLayout.
Roep de jLayout op in de eerder gemaakte template
override en eerder gemaakte alternate layout.
STAPPENPLANSTAPPENPLAN
Creëer het bestand helloworld.php in je template map
html/layouts/template/
Vul dit bestand met
Roep dit bestand op in
templates/.../html/com_content/article/default.php
templates/.../html/com_content/article/home.php
<?php defined('_JEXEC') or die; ?>
<p>Hello world!</p>
<?php echo JLayoutHelper::render('template.helloworld'); ?>
VAN STATISCHE NAARVAN STATISCHE NAAR
DYNAMISCHE JLAYOUTSDYNAMISCHE JLAYOUTS
Meegeven van data voor weergave van de jLayout.
HOE GA JE TE WERK?HOE GA JE TE WERK?
Wijziging in home.php
Wijziging in de jLayout
<?php
$data = array(
'aanhef' => 'Hello',
'naam' => 'world!'
);
echo JLayoutHelper::render('template.helloworld', $data);
<?php defined('_JEXEC') or die; ?>
<p><?php echo $displayData['aanhef'] . " " . $displayData['naa
HOE GA JE TE WERK?HOE GA JE TE WERK?
Wijziging in default.php
<?php
$data = array(
'aanhef' => 'Hello',
'naam' => $this->item->author
);
echo JLayoutHelper::render('template.helloworld', $data);
?>
AANKOMENDE EVENTSAANKOMENDE EVENTS
De output van een mod_articles_category waarbij de
artikelen gesorteerd staan op publicatiedatum.
CodePen.io is a social development environment.
Een handige plek om je html, css, javascript en andere
programmeertalen te testen, te bewaren en te delen.
OPDRACHT - ALTERNATE LAYOUTOPDRACHT - ALTERNATE LAYOUT
MODULEMODULE
Voorbereiding
Maak een nieuwe module mod_articles_category.
Titel: Evenementen
Modulepositie: middenboven (position-3)
Menutoewijzing: alleen op pagina Home
Opties voor filteren: Categorie = Blog
Toon opties: Gelinkte titels = Ja
Toon opties: Daatom = Toon, Startdatum publicatie
Toon opties: Introtekst = Toon
OPDRACHT - ALTERNATE LAYOUTOPDRACHT - ALTERNATE LAYOUT
MODULEMODULE
Maak een alternate layout event van
mod_articles_category.
Hergebruik de foreach loop in de code voor de
nieuwe HTML elementen.
En plaats daarin één <li> uit de codepen.
Wijs de alternate layout toe aan de zojuist
aangemaakte module.
https://codepen.io/hans2103/pen/OYyRPK
STAPPENPLANSTAPPENPLAN
Kopieer CSS vanuit Codepen.io naar user.css.
Kopieer default.php van mod_articles_category.
modules/mod_articles_category/tmpl/default.php
Plak in de html map van je template.
templates/protostar/html/mod_articles_category/e
Verwijder alle code op de foreach loop na.
<?php defined('_JEXEC') or die; ?>
<?php foreach ($list as $item) : ?>
bla
<?php endforeach; ?>
STAPPENPLAN - VERVOLGSTAPPENPLAN - VERVOLG
Wrap de foreach loop in een unordered list.
<ul class="events__list">
</ul>
<?php defined('_JEXEC') or die; ?>1
2
<?php foreach ($list as $item) : ?>3
bla4
<?php endforeach; ?>5
6
STAPPENPLAN - VERVOLGSTAPPENPLAN - VERVOLG
Kopieer en plak één list-item vanuit Codepen.
<li class="events__item event">
<div class="event__date">
<div class="event__day">11</div>
<div class="event__month">nov</div>
</div>
<div class="event__body">
<div class="event__title">
D'n elfde van d'n elfde
</div>
<div class="event__content">
Een mooie gelegenheid om een biertje te
</div>
<?php defined('_JEXEC') or die; ?>1
<ul class="events__list">2
<?php foreach ($list as $item) : ?>3
4
5
6
7
8
9
10
11
12
13
14
15
STAPPENPLAN - VERVOLGSTAPPENPLAN - VERVOLG
Statische tekst dynamisch maken.
PHP commando var_dump() is handig om de items
op te zoeken die je gebruiken wil in de override.
<?php var_dump($item); >
<?php defined('_JEXEC') or die; ?>1
<ul class="events__list">2
<?php foreach ($list as $item) : ?>3
4
<?php endforeach; ?>5
</ul>6
STAPPENPLAN - VERVOLGSTAPPENPLAN - VERVOLG
Statische tekst dynamisch maken.
Gebruik de items teruggevonden in de resultaten van
var_dump().
<?php defined('_JEXEC') or die; ?>
<ul class="events__list">
<?php foreach ($list as $item) : ?>
<li class="events__item event">
<div class="event__date">
<div class="event__day"><?php echo JHtml::_('date', $i
<div class="event__month"><?php echo JHtml::_('date',
</div>
<div class="event__body">
<div class="event__title">
<?php echo $item->title; ?>
</div>
<div class="event__content">
<?php echo $item->displayIntrotext; ?>
</div>
STAPPENPLAN - VERVOLGSTAPPENPLAN - VERVOLG
Statische tekst dynamisch maken.
Vier maal dezelfde datum. Deden we iets fout?
Daarom echo $item->created zonder opmaak
toevoegen.
<?php echo $item->created; ?>
<?php defined('_JEXEC') or die; ?>1
<ul class="events__list">2
<?php foreach ($list as $item) : ?>3
<li class="events__item event">4
<div class="event__date">5
<div class="event__day"><?php echo JHtml::_('date',6
<div class="event__month"><?php echo JHtml::_('date7
</div>8
<div class="event__body">9
<div class="event__title">10
11
<?php echo $item->title; ?>12
</div>13
<div class="event__content">14
<?php echo $item->displayIntrotext; ?>15
DEMO DATADEMO DATA
Vier maal dezelfde komt waarschijnlijk door de demo
data.
SOCIAL SHARESOCIAL SHARE
Artikelen makkelijk delen op Social Media.
Niet meer dan een lijst van linkjes met popup.
website: nporadio1.nl
social share via Facebook
social share via Twitter
social share via mail
social share via LinkedIn
HOE IN TE BOUWEN...HOE IN TE BOUWEN...
easy...
met een jLayout
maar eerst in Codepen.io
https://codepen.io/hans2103/pen/VOLobN
OPDRACHT - JLAYOUT SOCIALOPDRACHT - JLAYOUT SOCIAL
SHARESHARE
Verwerk een nieuw jLayout onder de overrides
van com_content/article
Roep de jLayout op in je overrides
https://codepen.io/hans2103/pen/VOLobN
regel 86 protostar/index.php
JHtml::_('stylesheet', '//cdnjs.cloudflare.com/ajax/libs/font-
<?php echo JLayoutHelper::render('template.share'); ?>
STAPPENPLANSTAPPENPLAN
Kopieer JS vanuit Codepen.io naar user.js
Kopieer CSS vanuit Codepen.io naar user.css
Maak share.php aan in html/jlayouts/template/
Kopieer het block <div
class="share__wrapper"> naar share.php
Wijzig protostar/index.php zodat font-awesome.css
ingeladen wordt.
Roep je nieuwe jLayout op waar je maar wil...
<?php echo JLayoutHelper::render('template.share'); ?>
SLIDESHOW - BONUS SLIDESSLIDESHOW - BONUS SLIDES
Gebruik geen slideshow in de header van je homepage.
Mooie uitleg op de website
Maar voor wie het toch wil...
middels Bootstrap 2
default aanwezig in Joomla 3
middels Bootstrap 3
en de andere CSS frameworks kun je daarna zelf
shouldiuseacarousel.com
BOOTSTRAP 2BOOTSTRAP 2
Bootstrap 2 carousel
CODEVOORBEELD OPCODEVOORBEELD OP
GETBOOTSTRAP.COMGETBOOTSTRAP.COM
<div id="myCarousel" class="carousel slide">
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="act
<li data-target="#myCarousel" data-slide-to="1"></li>
<li data-target="#myCarousel" data-slide-to="2"></li>
</ol>
<!-- Carousel items -->
<div class="carousel-inner">
<div class="active item">…</div>
<div class="item">…</div>
<div class="item">…</div>
</div>
<!-- Carousel nav -->
<a class="carousel-control left" href="#myCarousel" data-sli
<a class="carousel-control right" href="#myCarousel" data-sl
STAPPENPLANSTAPPENPLAN
Maak een alternate layout slideshow.php van
mod_articles_category.
Hergebruik de foreach loop in de code voor de
nieuwe HTML elementen.
Zoe dat de foreach loop zowel bij carousel-
indicators als bij carousel-inner toegepast
moet worden.
Plaats bla in de foreach loop en zie het resultaat.
Wijs de layout toe als weergave van een nieuwe
module.
GEHELE CODE VOOR BS2GEHELE CODE VOOR BS2
<?php
defined('_JEXEC') or die;
$count = count($list);
?><div id="myCarousel" class="carousel slide" data-ride="carou
<ol class="carousel-indicators">
<?php for ($i = 0; $i < $count; $i++) : ?>
<li data-target="#myCarousel" data-slide-to="<?php ech
class="<?php echo $i == 0 ? 'active' : ''; ?>"></l
<?php endfor; ?>
</ol>
<div class="carousel-inner">
<?php for ($i = 0; $i < $count; $i++) : ?>
<?php $images = json_decode($list[$i]->images); ?>
<div class="item <?php echo $i == 0 ? 'active' : '
<img src="<?php echo htmlspecialchars($images-
BOOTSTRAP 3BOOTSTRAP 3
Bootstrap 3 carousel
CODEVOORBEELD OPCODEVOORBEELD OP
GETBOOTSTRAP.COMGETBOOTSTRAP.COM
<div id="carousel-example-generic" class="carousel slide" data
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#carousel-example-generic" data-slide
<li data-target="#carousel-example-generic" data-slide
<li data-target="#carousel-example-generic" data-slide
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
<div class="item active">
<img src="..." alt="...">
<div class="carousel-caption">
...
</div>
STAPPENPLANSTAPPENPLAN
Maak een alternate layout slideshow.php van
mod_articles_category.
Hergebruik de foreach loop in de code voor de
nieuwe HTML elementen.
Zoe dat de foreach loop zowel bij carousel-
indicators als bij carousel-inner toegepast
moet worden.
Plaats bla in de foreach loop en zie het resultaat.
Wijs de layout toe als weergave van een nieuwe
module.
GEHELE CODE VOOR BS3GEHELE CODE VOOR BS3
<?php
/**
* @package Joomla.Site
* @subpackage mod_articles_category
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters,
* @license GNU General Public License version 2 or later;
*/
defined('_JEXEC') or die;
$count = count($list);
?>
<div id="carousel-example-generic" class="carousel slide" data
<!-- Indicators -->
VERSCHILLENVERSCHILLEN
Zie dat de html ietwat afwijkt, maar de manier verder
gelijk blij ... voor elk item in de aangeboden lijst wordt
een div gemaakt die gevuld wordt met afbeelding,
tekst, link en titel. Pas dezelfde werkwijze toe op de
implementaties van andere frameworks.
HANS KUIJPERSHANS KUIJPERS
Veel plezier met het maken van eigen overrides,
alternate layouts en jlayout implementaties.
Frontend webdeveloper
@hans2103

Weitere ähnliche Inhalte

Was ist angesagt?

Drupal Views Cck Hans Rossel
Drupal Views Cck Hans RosselDrupal Views Cck Hans Rossel
Drupal Views Cck Hans RosselHans Rossel
 
Joomladagen 2015 Joomla Performance
Joomladagen 2015 Joomla PerformanceJoomladagen 2015 Joomla Performance
Joomladagen 2015 Joomla PerformanceSimon Kloostra
 
Joomladagen 2019 joomla advanced seo
Joomladagen 2019 joomla advanced seoJoomladagen 2019 joomla advanced seo
Joomladagen 2019 joomla advanced seoSimon Kloostra
 
JD14nl Form2content VS Zoo GJ-R
JD14nl Form2content VS Zoo GJ-RJD14nl Form2content VS Zoo GJ-R
JD14nl Form2content VS Zoo GJ-RGert-Jan Radstaake
 
Drupal 7 Theming
Drupal 7 ThemingDrupal 7 Theming
Drupal 7 ThemingHans Rossel
 
1.7 html css terugblik
1.7 html css terugblik1.7 html css terugblik
1.7 html css terugblikmvanginkel
 
Html5 jeugdwerknet
Html5 jeugdwerknetHtml5 jeugdwerknet
Html5 jeugdwerknetHans Rossel
 
Presentatie WordPress Theme Frameworks WordCamp NL 2010
Presentatie WordPress Theme Frameworks WordCamp NL 2010Presentatie WordPress Theme Frameworks WordCamp NL 2010
Presentatie WordPress Theme Frameworks WordCamp NL 2010Remkus de Vries
 
R2H ImageManager en slim omgaan met afbeeldingen in Joomla!
R2H ImageManager en slim omgaan met afbeeldingen in Joomla!R2H ImageManager en slim omgaan met afbeeldingen in Joomla!
R2H ImageManager en slim omgaan met afbeeldingen in Joomla!Rick Spaan
 
Cursus Zend Framework - 1
Cursus Zend Framework - 1Cursus Zend Framework - 1
Cursus Zend Framework - 1bartjeukendrup
 
Document added by me on 19 may 2014
Document added by me on 19 may 2014Document added by me on 19 may 2014
Document added by me on 19 may 2014Aish Cash
 
Grandma & Joomla - Make Joomla User Friendly
Grandma & Joomla - Make Joomla User FriendlyGrandma & Joomla - Make Joomla User Friendly
Grandma & Joomla - Make Joomla User FriendlySander Potjer
 
Magento cursus: theme opzetten & beheren
Magento cursus: theme opzetten & beherenMagento cursus: theme opzetten & beheren
Magento cursus: theme opzetten & beherenMichel Doens
 
Presentatie joomla3 responsive Protostar template
Presentatie joomla3 responsive Protostar templatePresentatie joomla3 responsive Protostar template
Presentatie joomla3 responsive Protostar templateHan Maassen
 
JCE editor optimaliseren (Joomla Den Bosc­h 2016)
JCE editor optimaliseren (Joomla Den Bosc­h 2016)JCE editor optimaliseren (Joomla Den Bosc­h 2016)
JCE editor optimaliseren (Joomla Den Bosc­h 2016)Peter Martin
 
Joomla backend-beheer vereenvoudigen - Joomladagen 2016
Joomla backend-beheer vereenvoudigen - Joomladagen 2016Joomla backend-beheer vereenvoudigen - Joomladagen 2016
Joomla backend-beheer vereenvoudigen - Joomladagen 2016Rick Spaan
 
Mijn eerste Joomla! plugin
Mijn eerste Joomla! pluginMijn eerste Joomla! plugin
Mijn eerste Joomla! pluginStudioDeOorzaak
 
Css positioning
Css positioningCss positioning
Css positioningohmdesign
 

Was ist angesagt? (20)

Drupal Views Cck Hans Rossel
Drupal Views Cck Hans RosselDrupal Views Cck Hans Rossel
Drupal Views Cck Hans Rossel
 
Joomladagen 2015 Joomla Performance
Joomladagen 2015 Joomla PerformanceJoomladagen 2015 Joomla Performance
Joomladagen 2015 Joomla Performance
 
Joomladagen 2019 joomla advanced seo
Joomladagen 2019 joomla advanced seoJoomladagen 2019 joomla advanced seo
Joomladagen 2019 joomla advanced seo
 
JD14nl Form2content VS Zoo GJ-R
JD14nl Form2content VS Zoo GJ-RJD14nl Form2content VS Zoo GJ-R
JD14nl Form2content VS Zoo GJ-R
 
Drupal 7 Theming
Drupal 7 ThemingDrupal 7 Theming
Drupal 7 Theming
 
1.7 html css terugblik
1.7 html css terugblik1.7 html css terugblik
1.7 html css terugblik
 
Joomla & Bootstrap 3
Joomla & Bootstrap 3Joomla & Bootstrap 3
Joomla & Bootstrap 3
 
Html5 jeugdwerknet
Html5 jeugdwerknetHtml5 jeugdwerknet
Html5 jeugdwerknet
 
Presentatie WordPress Theme Frameworks WordCamp NL 2010
Presentatie WordPress Theme Frameworks WordCamp NL 2010Presentatie WordPress Theme Frameworks WordCamp NL 2010
Presentatie WordPress Theme Frameworks WordCamp NL 2010
 
R2H ImageManager en slim omgaan met afbeeldingen in Joomla!
R2H ImageManager en slim omgaan met afbeeldingen in Joomla!R2H ImageManager en slim omgaan met afbeeldingen in Joomla!
R2H ImageManager en slim omgaan met afbeeldingen in Joomla!
 
Cursus Zend Framework - 1
Cursus Zend Framework - 1Cursus Zend Framework - 1
Cursus Zend Framework - 1
 
Document added by me on 19 may 2014
Document added by me on 19 may 2014Document added by me on 19 may 2014
Document added by me on 19 may 2014
 
Grandma & Joomla - Make Joomla User Friendly
Grandma & Joomla - Make Joomla User FriendlyGrandma & Joomla - Make Joomla User Friendly
Grandma & Joomla - Make Joomla User Friendly
 
Magento cursus: theme opzetten & beheren
Magento cursus: theme opzetten & beherenMagento cursus: theme opzetten & beheren
Magento cursus: theme opzetten & beheren
 
Presentatie joomla3 responsive Protostar template
Presentatie joomla3 responsive Protostar templatePresentatie joomla3 responsive Protostar template
Presentatie joomla3 responsive Protostar template
 
JCE editor optimaliseren (Joomla Den Bosc­h 2016)
JCE editor optimaliseren (Joomla Den Bosc­h 2016)JCE editor optimaliseren (Joomla Den Bosc­h 2016)
JCE editor optimaliseren (Joomla Den Bosc­h 2016)
 
Joomla backend-beheer vereenvoudigen - Joomladagen 2016
Joomla backend-beheer vereenvoudigen - Joomladagen 2016Joomla backend-beheer vereenvoudigen - Joomladagen 2016
Joomla backend-beheer vereenvoudigen - Joomladagen 2016
 
Mijn eerste Joomla! plugin
Mijn eerste Joomla! pluginMijn eerste Joomla! plugin
Mijn eerste Joomla! plugin
 
Css positioning
Css positioningCss positioning
Css positioning
 
Symfony and Angularjs
Symfony and AngularjsSymfony and Angularjs
Symfony and Angularjs
 

Ähnlich wie JD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts

Template overrides - Joomladagen 2010 #jd10nl
Template overrides - Joomladagen 2010 #jd10nlTemplate overrides - Joomladagen 2010 #jd10nl
Template overrides - Joomladagen 2010 #jd10nlSander Potjer
 
1.7 terugblik module 1
1.7 terugblik module 11.7 terugblik module 1
1.7 terugblik module 1mvanginkel
 
Zelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginnersZelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginnersRachel Walraven
 
Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...
Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...
Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...Triquanta
 
Presentatie JUG plugin Merka
Presentatie JUG plugin MerkaPresentatie JUG plugin Merka
Presentatie JUG plugin MerkaKarel Mertens
 
Joomla 3.0
Joomla 3.0Joomla 3.0
Joomla 3.0bparthoe
 
Lucius Drupal Development Cursus
Lucius Drupal Development CursusLucius Drupal Development Cursus
Lucius Drupal Development CursusLuciuswebsystems
 
1.3 html css basis 2
1.3 html css basis 21.3 html css basis 2
1.3 html css basis 2mvanginkel
 
Basisuitleg over webpagina’s
Basisuitleg over webpagina’sBasisuitleg over webpagina’s
Basisuitleg over webpagina’sgspeekenbrink
 
Joomla licht gevorderd
Joomla licht gevorderdJoomla licht gevorderd
Joomla licht gevorderdbparthoe
 
Plone add-on packages uit Nederland - Fred van Dijk
Plone add-on packages uit Nederland - Fred van DijkPlone add-on packages uit Nederland - Fred van Dijk
Plone add-on packages uit Nederland - Fred van DijkZest Software
 
Magento webwinkel starten & optimaliseren
Magento webwinkel starten & optimaliserenMagento webwinkel starten & optimaliseren
Magento webwinkel starten & optimaliserenMichel Doens
 
Html les 2.2_positioneren
Html les 2.2_positionerenHtml les 2.2_positioneren
Html les 2.2_positionerenmvanginkel
 
Drupal7 Development
Drupal7 DevelopmentDrupal7 Development
Drupal7 DevelopmentHans Rossel
 
Drag and-drop met-j_query
Drag and-drop met-j_queryDrag and-drop met-j_query
Drag and-drop met-j_queryeaskum
 
1.5 html css basis 4
1.5 html css basis 41.5 html css basis 4
1.5 html css basis 4mvanginkel
 
Daarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publicerenDaarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publicerenSander Potjer
 

Ähnlich wie JD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts (20)

Template overrides - Joomladagen 2010 #jd10nl
Template overrides - Joomladagen 2010 #jd10nlTemplate overrides - Joomladagen 2010 #jd10nl
Template overrides - Joomladagen 2010 #jd10nl
 
1.7 terugblik module 1
1.7 terugblik module 11.7 terugblik module 1
1.7 terugblik module 1
 
Zelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginnersZelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginners
 
Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...
Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...
Hoe CMI in Drupal features overbodig maakt (of toch niet) - Drupal Tech Talk ...
 
Presentatie JUG plugin Merka
Presentatie JUG plugin MerkaPresentatie JUG plugin Merka
Presentatie JUG plugin Merka
 
Joomla
JoomlaJoomla
Joomla
 
Joomla 3.0
Joomla 3.0Joomla 3.0
Joomla 3.0
 
Lucius Drupal Development Cursus
Lucius Drupal Development CursusLucius Drupal Development Cursus
Lucius Drupal Development Cursus
 
Cooking Cake
Cooking CakeCooking Cake
Cooking Cake
 
1.3 html css basis 2
1.3 html css basis 21.3 html css basis 2
1.3 html css basis 2
 
Basisuitleg over webpagina’s
Basisuitleg over webpagina’sBasisuitleg over webpagina’s
Basisuitleg over webpagina’s
 
Joomla licht gevorderd
Joomla licht gevorderdJoomla licht gevorderd
Joomla licht gevorderd
 
Drupal7 Theming
Drupal7 ThemingDrupal7 Theming
Drupal7 Theming
 
Plone add-on packages uit Nederland - Fred van Dijk
Plone add-on packages uit Nederland - Fred van DijkPlone add-on packages uit Nederland - Fred van Dijk
Plone add-on packages uit Nederland - Fred van Dijk
 
Magento webwinkel starten & optimaliseren
Magento webwinkel starten & optimaliserenMagento webwinkel starten & optimaliseren
Magento webwinkel starten & optimaliseren
 
Html les 2.2_positioneren
Html les 2.2_positionerenHtml les 2.2_positioneren
Html les 2.2_positioneren
 
Drupal7 Development
Drupal7 DevelopmentDrupal7 Development
Drupal7 Development
 
Drag and-drop met-j_query
Drag and-drop met-j_queryDrag and-drop met-j_query
Drag and-drop met-j_query
 
1.5 html css basis 4
1.5 html css basis 41.5 html css basis 4
1.5 html css basis 4
 
Daarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publicerenDaarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publiceren
 

Mehr von Hans Kuijpers

RSForm!pro jug073 maart 2019
RSForm!pro  jug073 maart 2019RSForm!pro  jug073 maart 2019
RSForm!pro jug073 maart 2019Hans Kuijpers
 
Joomla Website optimaliseren - jug073 augustus 2018
Joomla Website optimaliseren - jug073 augustus 2018Joomla Website optimaliseren - jug073 augustus 2018
Joomla Website optimaliseren - jug073 augustus 2018Hans Kuijpers
 
Joomla Custom Fields - the next level
Joomla Custom Fields - the next level Joomla Custom Fields - the next level
Joomla Custom Fields - the next level Hans Kuijpers
 
JD17NL Joomla! Overrides and alternate layouts
JD17NL Joomla! Overrides and alternate layoutsJD17NL Joomla! Overrides and alternate layouts
JD17NL Joomla! Overrides and alternate layoutsHans Kuijpers
 
Maak je website geschikt voor mobiel
Maak je website geschikt voor mobielMaak je website geschikt voor mobiel
Maak je website geschikt voor mobielHans Kuijpers
 
Bootstrap 3 in Joomla!
Bootstrap 3 in Joomla!Bootstrap 3 in Joomla!
Bootstrap 3 in Joomla!Hans Kuijpers
 
Google Webmasters Tools
Google Webmasters ToolsGoogle Webmasters Tools
Google Webmasters ToolsHans Kuijpers
 
Google Tag Manager #jd14nl
Google Tag Manager #jd14nlGoogle Tag Manager #jd14nl
Google Tag Manager #jd14nlHans Kuijpers
 
Social Share Buttons - #jd14nl
Social Share Buttons - #jd14nlSocial Share Buttons - #jd14nl
Social Share Buttons - #jd14nlHans Kuijpers
 
Site Performance Optimization for Joomla #jwc13
Site Performance Optimization for Joomla #jwc13Site Performance Optimization for Joomla #jwc13
Site Performance Optimization for Joomla #jwc13Hans Kuijpers
 
Rich Snippets in Joomla - #JUG073
Rich Snippets in Joomla - #JUG073Rich Snippets in Joomla - #JUG073
Rich Snippets in Joomla - #JUG073Hans Kuijpers
 
Rich Snippets in Magento product page - #MUG020
Rich Snippets in Magento product page - #MUG020Rich Snippets in Magento product page - #MUG020
Rich Snippets in Magento product page - #MUG020Hans Kuijpers
 
Rich Snippets in Magento product page
Rich Snippets in Magento product pageRich Snippets in Magento product page
Rich Snippets in Magento product pageHans Kuijpers
 
CSS with LESS for #jd13nl
CSS with LESS for #jd13nlCSS with LESS for #jd13nl
CSS with LESS for #jd13nlHans Kuijpers
 
Site Speed Optimisation for JWC2012
Site Speed Optimisation for JWC2012Site Speed Optimisation for JWC2012
Site Speed Optimisation for JWC2012Hans Kuijpers
 
Form2content case for #JUG073
Form2content case for #JUG073Form2content case for #JUG073
Form2content case for #JUG073Hans Kuijpers
 
Magento Theme - set the basics right - mm12nl
Magento Theme - set the basics right - mm12nlMagento Theme - set the basics right - mm12nl
Magento Theme - set the basics right - mm12nlHans Kuijpers
 
Google analytics - jd12nl met Byte Internet
Google analytics - jd12nl met Byte InternetGoogle analytics - jd12nl met Byte Internet
Google analytics - jd12nl met Byte InternetHans Kuijpers
 
Joomla extensies kiezen-jd12nl
Joomla extensies kiezen-jd12nlJoomla extensies kiezen-jd12nl
Joomla extensies kiezen-jd12nlHans Kuijpers
 
Meet magento 2011-templating
Meet magento 2011-templatingMeet magento 2011-templating
Meet magento 2011-templatingHans Kuijpers
 

Mehr von Hans Kuijpers (20)

RSForm!pro jug073 maart 2019
RSForm!pro  jug073 maart 2019RSForm!pro  jug073 maart 2019
RSForm!pro jug073 maart 2019
 
Joomla Website optimaliseren - jug073 augustus 2018
Joomla Website optimaliseren - jug073 augustus 2018Joomla Website optimaliseren - jug073 augustus 2018
Joomla Website optimaliseren - jug073 augustus 2018
 
Joomla Custom Fields - the next level
Joomla Custom Fields - the next level Joomla Custom Fields - the next level
Joomla Custom Fields - the next level
 
JD17NL Joomla! Overrides and alternate layouts
JD17NL Joomla! Overrides and alternate layoutsJD17NL Joomla! Overrides and alternate layouts
JD17NL Joomla! Overrides and alternate layouts
 
Maak je website geschikt voor mobiel
Maak je website geschikt voor mobielMaak je website geschikt voor mobiel
Maak je website geschikt voor mobiel
 
Bootstrap 3 in Joomla!
Bootstrap 3 in Joomla!Bootstrap 3 in Joomla!
Bootstrap 3 in Joomla!
 
Google Webmasters Tools
Google Webmasters ToolsGoogle Webmasters Tools
Google Webmasters Tools
 
Google Tag Manager #jd14nl
Google Tag Manager #jd14nlGoogle Tag Manager #jd14nl
Google Tag Manager #jd14nl
 
Social Share Buttons - #jd14nl
Social Share Buttons - #jd14nlSocial Share Buttons - #jd14nl
Social Share Buttons - #jd14nl
 
Site Performance Optimization for Joomla #jwc13
Site Performance Optimization for Joomla #jwc13Site Performance Optimization for Joomla #jwc13
Site Performance Optimization for Joomla #jwc13
 
Rich Snippets in Joomla - #JUG073
Rich Snippets in Joomla - #JUG073Rich Snippets in Joomla - #JUG073
Rich Snippets in Joomla - #JUG073
 
Rich Snippets in Magento product page - #MUG020
Rich Snippets in Magento product page - #MUG020Rich Snippets in Magento product page - #MUG020
Rich Snippets in Magento product page - #MUG020
 
Rich Snippets in Magento product page
Rich Snippets in Magento product pageRich Snippets in Magento product page
Rich Snippets in Magento product page
 
CSS with LESS for #jd13nl
CSS with LESS for #jd13nlCSS with LESS for #jd13nl
CSS with LESS for #jd13nl
 
Site Speed Optimisation for JWC2012
Site Speed Optimisation for JWC2012Site Speed Optimisation for JWC2012
Site Speed Optimisation for JWC2012
 
Form2content case for #JUG073
Form2content case for #JUG073Form2content case for #JUG073
Form2content case for #JUG073
 
Magento Theme - set the basics right - mm12nl
Magento Theme - set the basics right - mm12nlMagento Theme - set the basics right - mm12nl
Magento Theme - set the basics right - mm12nl
 
Google analytics - jd12nl met Byte Internet
Google analytics - jd12nl met Byte InternetGoogle analytics - jd12nl met Byte Internet
Google analytics - jd12nl met Byte Internet
 
Joomla extensies kiezen-jd12nl
Joomla extensies kiezen-jd12nlJoomla extensies kiezen-jd12nl
Joomla extensies kiezen-jd12nl
 
Meet magento 2011-templating
Meet magento 2011-templatingMeet magento 2011-templating
Meet magento 2011-templating
 

JD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts

  • 2.
  • 3. HANS KUIJPERSHANS KUIJPERS Frontend webdeveloper @hans2103
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. TEMPLATE OVERRIDETEMPLATE OVERRIDE V.S.V.S. ALTERNATE LAYOUTALTERNATE LAYOUT 1. Copy & Change bestaande weergave... bijv. com_content/category/blog.php 2. Creatie nieuwe weergave... bijv. com_content/category/calendar.php
  • 9. WAAROM HEB IK DAT VOORWAAROM HEB IK DAT VOOR NODIG?NODIG? VOORBEELDENVOORBEELDEN Joomla 3 vol Bootstrap 2 vervangen door ander css framework. Eigen weergave maken zonder 3th party extensie. Custom Fields plaatsen waar jij wil.
  • 10. WAAROM HEB IK DAT NODIG?WAAROM HEB IK DAT NODIG? REDENENREDENEN Geen toepassen core-hacks in Joomla. Gewoon niet doen! Voorkom 3th party extensies. En onderhoud daarvan.
  • 11. WAAROM WERKT HET?WAAROM WERKT HET? Omdat Joomla met MVC model gemaakt is. Omdat 3th party extensies ook met MVC model gemaakt zijn... hoop ik Dus logica en output zijn gescheiden.
  • 12.
  • 13. VOORBEELD: COM_CONTENTVOORBEELD: COM_CONTENT Template override is mogelijk met alle views. Alternate layout is mogelijk met: Articles Category Alternate layout met eigen menu type is mogelijk met alle views.
  • 14.
  • 15. INSTELLEN ALTERNATE LAYOUTINSTELLEN ALTERNATE LAYOUT Globaal via opties van com_content
  • 16. INSTELLEN ALTERNATE LAYOUTINSTELLEN ALTERNATE LAYOUT Per categorie / artikel tabblad opties
  • 17. INSTELLEN ALTERNATE LAYOUTINSTELLEN ALTERNATE LAYOUT Indien .xml file bestaat kun je een eigen menu type maken.
  • 18. HOE MAAK JE EEN OVERRIDE?HOE MAAK JE EEN OVERRIDE? Kopieer default.php van een view. En soms heet het anders, zoals blog.php. components/com_content/views/article/tmpl/defau Plak in de html map van je template. templates/.../html/com_content/article/default.php Wijzig PHP / HTML naar jouw wens Klaar... de standaard output van com_content/article aangepast.
  • 19. HOE MAAK JE EEN ALTERNATEHOE MAAK JE EEN ALTERNATE LAYOUT?LAYOUT? Kopieer default.php van een view. En soms heet het anders, zoals blog.php. components/com_content/views/article/tmpl/defau Plak in de html map van je template met een andere n templates/.../html/com_content/article/home.php Wijzig PHP / HTML naar jouw wens Wijzig (in dit geval) de layout van het artikel. Klaar... de alternate layout voor com_content/article i gebruik.
  • 20. HOE MAAK JE EEN EIGEN MENUHOE MAAK JE EEN EIGEN MENU ITEM?ITEM? Herhaal de vorige stappen. Kopieer default.xml van een view. En soms heet het anders, zoals blog.xml. components/com_content/views/article/tmpl/defau Plak in de html map van je template met een andere n templates/.../html/com_content/article/home.xml Wijzig XML naar jouw wens. (in ieder geval layout=>titl layout=>option en layout=>message) Maak een nieuw menu item aan en selecteer je nieuwe
  • 21. INSTELLEN ALTERNATE LAYOUTINSTELLEN ALTERNATE LAYOUT MODULEMODULE Module tabblad Uitgebreid
  • 22. HOE MAAK JE EEN MODULEHOE MAAK JE EEN MODULE OVERRIDE?OVERRIDE? Kopieer default.php van een view. modules/mod_articles_category/tmpl/default.php Plak in de html map van je template. templates/.../html/mod_articles_category/default.p Wijzig PHP / HTML naar jouw wens Klaar... de standaard output van mod_articles_catego is aangepast.
  • 23. HOE MAAK JE EEN ALTERNATEHOE MAAK JE EEN ALTERNATE LAYOUT VAN EEN MODULE?LAYOUT VAN EEN MODULE? Kopieer default.php van een view. modules/mod_articles_category/tmpl/default.php Plak in de html map van je template met een andere naam. templates/.../html/mod_articles_category/list.php Wijzig PHP / HTML naar jouw wens Klaar... de alternate layout van mod_articles_category kan toegepast worden.
  • 24. EN VERDER...EN VERDER... Plugins => mits tmpl aanwezig, op dezelfde manier Taalbestanden => anders... language/overrides/nl-NL.override.ini Of via Joomla Administrator > Extensies > Talen > Overrides jLayouts => straks meer hierover. Eerst zelf aan de slag.
  • 25.
  • 26. ONZE BASIS VAN VANDAAG:ONZE BASIS VAN VANDAAG: Joomla 3.9.6 met Sample Data Blog English
  • 27.
  • 28.
  • 29.
  • 30.
  • 31. OPDRACHT - TEMPLATEOPDRACHT - TEMPLATE OVERRIDEOVERRIDE Maak een template override van com_content/article. Zoek de plek op waar de tekst opgeroepen wordt. Plaats direct daarna een paragraaf met "Hello world!". <p>Hello world!</p>
  • 32. STAPPENPLANSTAPPENPLAN Kopieer default.php van de view van com_content/art components/com_content/views/article/tmpl/defau Plak in de html map van je template. templates/protostar/html/com_content/article/defa Zoek <?php echo $this->item->text; ?> Plak daarachter de code: <p>Hello world!</p> En aanschouw het resultaat. :-)
  • 33.
  • 34. OPDRACHT - ALTERNATE LAYOUTOPDRACHT - ALTERNATE LAYOUT Maak een alternate layout van com_content/article. Verwijder alle code... alle code Plaats een paragraaf met "Hello world!". <p>Hello world!</p> Wijs een artikel toe aan deze nieuwe weergave.
  • 35. STAPPENPLANSTAPPENPLAN Kopieer default.php van de view van com_content/art components/com_content/views/article/tmpl/defau Plak in de html map van je template. templates/protostar/html/com_content/article/hom Verwijder alle code. Plak de volgende code: <p>Hello world!</p> Open artikel in Joomla Administrator en wijs via tabbl Opties de nieuwe weergave toe. En aanschouw het resultaat. :-)
  • 36.
  • 37.
  • 38.
  • 39. OPDRACHT - ALTERNATE LAYOUTOPDRACHT - ALTERNATE LAYOUT MET MENU ITEMMET MENU ITEM Maak een alternate layout met menu item van com_content/article. Hergebruik de alternate layout van de vorige opdracht. Maak een nieuw menu item van dit nieuwe type. Wijs toe aan een willekeurig artikel.
  • 40. STAPPENPLANSTAPPENPLAN Kopieer default.xml van de view van com_content/art components/com_content/views/article/tmpl/defau Plak in de html map van je template. templates/protostar/html/com_content/article/hom wijzig op z'n minst het volgende: layout attribuut title ( Home ) layout attribuut option ( Homepage ) layout > message ( Weergave van de homepage ) Maak in Joomla Administrator een menu itemn van he nieuwe menu type verwijzend naar aan willekeurig art En aanschouw het resultaat. :-)
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47. VEELGESTELDE VRAGENVEELGESTELDE VRAGEN Lijst van uitvouwbare vragen en antwoorden. Te plaatsen onder een artikel. Alternate layout voor mod_articles_category
  • 48. DETAILS & SUMMARYDETAILS & SUMMARY Details Informatie via: Browser support: <details> <summary>Details</summary> Something small enough to escape casual notice. </details> MDN web docs caniuse.com
  • 49. OPDRACHT - ALTERNATE LAYOUTOPDRACHT - ALTERNATE LAYOUT MODULEMODULE Voorbereiding
  • 50. Maak een nieuwe module aan voor mod_articles_category. Titel: Veelgestelde vragen Modulepositie: middenboven (position-3) Menutoewijzing: alleen op pagina About Opties voor filteren: Categorie = Blog Toon opties: Introtekst = Toon Toon opties: Toon "Lees meer" = Toon Toon opties: Toon titel in lees-meer = Verberg
  • 51.
  • 52. OPDRACHT - ALTERNATE LAYOUTOPDRACHT - ALTERNATE LAYOUT MODULEMODULE Maak een alternate layout faq van mod_articles_category. Hergebruik de foreach loop in de code voor de nieuwe HTML elementen. Wijs de alternate layout toe aan de zojuist aangemaakte module. <details> <summary>Titel van artikel</summary> Introtext en readmore link </details>
  • 53. STAPPENPLANSTAPPENPLAN Kopieer default.php van mod_articles_category. modules/mod_articles_category/tmpl/default.php Plak in de html map van je template. templates/protostar/html/mod_articles_category/f Verwijder alle code op de foreach loop na. <?php defined('_JEXEC') or die; ?> <?php foreach ($list as $item) : ?> bla <?php endforeach; ?>
  • 54.
  • 55. STAPPENPLAN - VERVOLGSTAPPENPLAN - VERVOLG <details> <summary><?php echo $item->title; ?></summary> <div>bla</div> </details> <?php defined('_JEXEC') or die; ?>1 <?php foreach ($list as $item) : ?>2 3 4 5 6 <?php endforeach; ?>7
  • 56.
  • 57. Kopieer displayIntrotext en readmore uit origineel. <?php echo $item->displayIntrotext; ?> <p class="mod-articles-category-readmore"> <a class="mod-articles-category-title <?php echo $item- <?php if ($item->params->get('access-view') == false) <?php echo JText::_('MOD_ARTICLES_CATEGORY_REGISTER_T <?php elseif ($readmore = $item->alternative_readmore) <?php echo $readmore; ?> <?php echo JHTML::_('string.truncate', $item->title, <?php elseif ($params->get('show_readmore_title', 0) = <?php echo JText::sprintf('MOD_ARTICLES_CATEGORY_READ <?php defined('_JEXEC') or die; ?>1 <?php foreach ($list as $item) : ?>2 <details>3 <summary><?php echo $item->title; ?></summary>4 <div>5 6 7 8 9 10 11 12 13 14 15
  • 58. Voeg css toe via template/protostar/css/user.css details { border: 1px solid #aaa; border-radius: 4px; padding: .5em .5em 0; text-align: left; } summary { font-weight: bold; margin: -.5em -.5em 0; padding: .5em; } details[open] { padding: .5em;
  • 59.
  • 60. WAT IS EEN JLAYOUT?WAT IS EEN JLAYOUT? Bestanden met code, toepasbaar op verschillende plaatsen in Joomla! Duplicate code wordt hiermee bespaard. Bijvoorbeeld de Lees- meer button.
  • 61.
  • 62. WAAR EN HOE ZIE IK DAT TERUG?WAAR EN HOE ZIE IK DAT TERUG? components/content/views/category/tmpl/default_ite components/content/views/category/tmpl/blog_item <?php echo JLayoutHelper::render('joomla.content.readmore', ar <?php echo JLayoutHelper::render('joomla.content.readmore', ar
  • 63. layouts/joomla/content/readmore.php <?php /** * @package Joomla.Site * @subpackage Layout * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, * @license GNU General Public License version 2 or later; */ defined('_JEXEC') or die; $params = $displayData['params']; $item = $displayData['item']; $direction = JFactory::getLanguage()->isRtl() ? 'left' : 'righ ?>
  • 64. HOE MAAK JE EEN OVERRIDE?HOE MAAK JE EEN OVERRIDE? Kopieer layouts/joomla/content/readmore.php Plak in de html map van je template. Wijzig PHP / HTML naar jouw wens Klaar... de jLayout readmore is aangepast. En geldt voor alle plaatsen waar readmore opgeroepen wordt. templates/.../html/layouts/joomla/content/readmore.php
  • 65. HOE MAAK JE EEN EIGENHOE MAAK JE EEN EIGEN JLAYOUT FILE?JLAYOUT FILE? Maak een eigen map in layouts map van html map van je template. Voeg code toe aan het nieuwe bestand. Roep je eigen jLayout op waar je maar wil. templates/.../html/layouts/template/helloworld.php <p>Hello world!</p> <?php echo JLayoutHelper::render('template.helloworld'); ?>
  • 66. OPDRACHT: VERVANG HELLOOPDRACHT: VERVANG HELLO WORLD!WORLD! Verplaats de hard-coded <p>Hello world!</p> uit de eerdere opdracht naar een jLayout. Roep de jLayout op in de eerder gemaakte template override en eerder gemaakte alternate layout.
  • 67. STAPPENPLANSTAPPENPLAN Creëer het bestand helloworld.php in je template map html/layouts/template/ Vul dit bestand met Roep dit bestand op in templates/.../html/com_content/article/default.php templates/.../html/com_content/article/home.php <?php defined('_JEXEC') or die; ?> <p>Hello world!</p> <?php echo JLayoutHelper::render('template.helloworld'); ?>
  • 68.
  • 69.
  • 70. VAN STATISCHE NAARVAN STATISCHE NAAR DYNAMISCHE JLAYOUTSDYNAMISCHE JLAYOUTS Meegeven van data voor weergave van de jLayout.
  • 71. HOE GA JE TE WERK?HOE GA JE TE WERK? Wijziging in home.php Wijziging in de jLayout <?php $data = array( 'aanhef' => 'Hello', 'naam' => 'world!' ); echo JLayoutHelper::render('template.helloworld', $data); <?php defined('_JEXEC') or die; ?> <p><?php echo $displayData['aanhef'] . " " . $displayData['naa
  • 72.
  • 73. HOE GA JE TE WERK?HOE GA JE TE WERK? Wijziging in default.php <?php $data = array( 'aanhef' => 'Hello', 'naam' => $this->item->author ); echo JLayoutHelper::render('template.helloworld', $data); ?>
  • 74.
  • 75. AANKOMENDE EVENTSAANKOMENDE EVENTS De output van een mod_articles_category waarbij de artikelen gesorteerd staan op publicatiedatum.
  • 76. CodePen.io is a social development environment. Een handige plek om je html, css, javascript en andere programmeertalen te testen, te bewaren en te delen.
  • 77.
  • 78. OPDRACHT - ALTERNATE LAYOUTOPDRACHT - ALTERNATE LAYOUT MODULEMODULE Voorbereiding Maak een nieuwe module mod_articles_category. Titel: Evenementen Modulepositie: middenboven (position-3) Menutoewijzing: alleen op pagina Home Opties voor filteren: Categorie = Blog Toon opties: Gelinkte titels = Ja Toon opties: Daatom = Toon, Startdatum publicatie Toon opties: Introtekst = Toon
  • 79.
  • 80. OPDRACHT - ALTERNATE LAYOUTOPDRACHT - ALTERNATE LAYOUT MODULEMODULE Maak een alternate layout event van mod_articles_category. Hergebruik de foreach loop in de code voor de nieuwe HTML elementen. En plaats daarin één <li> uit de codepen. Wijs de alternate layout toe aan de zojuist aangemaakte module. https://codepen.io/hans2103/pen/OYyRPK
  • 81. STAPPENPLANSTAPPENPLAN Kopieer CSS vanuit Codepen.io naar user.css. Kopieer default.php van mod_articles_category. modules/mod_articles_category/tmpl/default.php Plak in de html map van je template. templates/protostar/html/mod_articles_category/e Verwijder alle code op de foreach loop na. <?php defined('_JEXEC') or die; ?> <?php foreach ($list as $item) : ?> bla <?php endforeach; ?>
  • 82.
  • 83. STAPPENPLAN - VERVOLGSTAPPENPLAN - VERVOLG Wrap de foreach loop in een unordered list. <ul class="events__list"> </ul> <?php defined('_JEXEC') or die; ?>1 2 <?php foreach ($list as $item) : ?>3 bla4 <?php endforeach; ?>5 6
  • 84. STAPPENPLAN - VERVOLGSTAPPENPLAN - VERVOLG Kopieer en plak één list-item vanuit Codepen. <li class="events__item event"> <div class="event__date"> <div class="event__day">11</div> <div class="event__month">nov</div> </div> <div class="event__body"> <div class="event__title"> D'n elfde van d'n elfde </div> <div class="event__content"> Een mooie gelegenheid om een biertje te </div> <?php defined('_JEXEC') or die; ?>1 <ul class="events__list">2 <?php foreach ($list as $item) : ?>3 4 5 6 7 8 9 10 11 12 13 14 15
  • 85.
  • 86.
  • 87. STAPPENPLAN - VERVOLGSTAPPENPLAN - VERVOLG Statische tekst dynamisch maken. PHP commando var_dump() is handig om de items op te zoeken die je gebruiken wil in de override. <?php var_dump($item); > <?php defined('_JEXEC') or die; ?>1 <ul class="events__list">2 <?php foreach ($list as $item) : ?>3 4 <?php endforeach; ?>5 </ul>6
  • 88.
  • 89.
  • 90. STAPPENPLAN - VERVOLGSTAPPENPLAN - VERVOLG Statische tekst dynamisch maken. Gebruik de items teruggevonden in de resultaten van var_dump(). <?php defined('_JEXEC') or die; ?> <ul class="events__list"> <?php foreach ($list as $item) : ?> <li class="events__item event"> <div class="event__date"> <div class="event__day"><?php echo JHtml::_('date', $i <div class="event__month"><?php echo JHtml::_('date', </div> <div class="event__body"> <div class="event__title"> <?php echo $item->title; ?> </div> <div class="event__content"> <?php echo $item->displayIntrotext; ?> </div>
  • 91.
  • 92.
  • 93. STAPPENPLAN - VERVOLGSTAPPENPLAN - VERVOLG Statische tekst dynamisch maken. Vier maal dezelfde datum. Deden we iets fout? Daarom echo $item->created zonder opmaak toevoegen. <?php echo $item->created; ?> <?php defined('_JEXEC') or die; ?>1 <ul class="events__list">2 <?php foreach ($list as $item) : ?>3 <li class="events__item event">4 <div class="event__date">5 <div class="event__day"><?php echo JHtml::_('date',6 <div class="event__month"><?php echo JHtml::_('date7 </div>8 <div class="event__body">9 <div class="event__title">10 11 <?php echo $item->title; ?>12 </div>13
  • 94. <div class="event__content">14 <?php echo $item->displayIntrotext; ?>15
  • 95.
  • 96. DEMO DATADEMO DATA Vier maal dezelfde komt waarschijnlijk door de demo data.
  • 97. SOCIAL SHARESOCIAL SHARE Artikelen makkelijk delen op Social Media. Niet meer dan een lijst van linkjes met popup.
  • 98.
  • 100.
  • 101. social share via Facebook
  • 102.
  • 103. social share via Twitter
  • 104.
  • 106.
  • 107. social share via LinkedIn
  • 108.
  • 109.
  • 110. HOE IN TE BOUWEN...HOE IN TE BOUWEN... easy... met een jLayout maar eerst in Codepen.io https://codepen.io/hans2103/pen/VOLobN
  • 111.
  • 112. OPDRACHT - JLAYOUT SOCIALOPDRACHT - JLAYOUT SOCIAL SHARESHARE Verwerk een nieuw jLayout onder de overrides van com_content/article Roep de jLayout op in je overrides https://codepen.io/hans2103/pen/VOLobN regel 86 protostar/index.php JHtml::_('stylesheet', '//cdnjs.cloudflare.com/ajax/libs/font- <?php echo JLayoutHelper::render('template.share'); ?>
  • 113. STAPPENPLANSTAPPENPLAN Kopieer JS vanuit Codepen.io naar user.js Kopieer CSS vanuit Codepen.io naar user.css Maak share.php aan in html/jlayouts/template/ Kopieer het block <div class="share__wrapper"> naar share.php Wijzig protostar/index.php zodat font-awesome.css ingeladen wordt. Roep je nieuwe jLayout op waar je maar wil... <?php echo JLayoutHelper::render('template.share'); ?>
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120. SLIDESHOW - BONUS SLIDESSLIDESHOW - BONUS SLIDES Gebruik geen slideshow in de header van je homepage. Mooie uitleg op de website Maar voor wie het toch wil... middels Bootstrap 2 default aanwezig in Joomla 3 middels Bootstrap 3 en de andere CSS frameworks kun je daarna zelf shouldiuseacarousel.com
  • 122.
  • 123. CODEVOORBEELD OPCODEVOORBEELD OP GETBOOTSTRAP.COMGETBOOTSTRAP.COM <div id="myCarousel" class="carousel slide"> <ol class="carousel-indicators"> <li data-target="#myCarousel" data-slide-to="0" class="act <li data-target="#myCarousel" data-slide-to="1"></li> <li data-target="#myCarousel" data-slide-to="2"></li> </ol> <!-- Carousel items --> <div class="carousel-inner"> <div class="active item">…</div> <div class="item">…</div> <div class="item">…</div> </div> <!-- Carousel nav --> <a class="carousel-control left" href="#myCarousel" data-sli <a class="carousel-control right" href="#myCarousel" data-sl
  • 124. STAPPENPLANSTAPPENPLAN Maak een alternate layout slideshow.php van mod_articles_category. Hergebruik de foreach loop in de code voor de nieuwe HTML elementen. Zoe dat de foreach loop zowel bij carousel- indicators als bij carousel-inner toegepast moet worden. Plaats bla in de foreach loop en zie het resultaat. Wijs de layout toe als weergave van een nieuwe module.
  • 125. GEHELE CODE VOOR BS2GEHELE CODE VOOR BS2 <?php defined('_JEXEC') or die; $count = count($list); ?><div id="myCarousel" class="carousel slide" data-ride="carou <ol class="carousel-indicators"> <?php for ($i = 0; $i < $count; $i++) : ?> <li data-target="#myCarousel" data-slide-to="<?php ech class="<?php echo $i == 0 ? 'active' : ''; ?>"></l <?php endfor; ?> </ol> <div class="carousel-inner"> <?php for ($i = 0; $i < $count; $i++) : ?> <?php $images = json_decode($list[$i]->images); ?> <div class="item <?php echo $i == 0 ? 'active' : ' <img src="<?php echo htmlspecialchars($images-
  • 127.
  • 128. CODEVOORBEELD OPCODEVOORBEELD OP GETBOOTSTRAP.COMGETBOOTSTRAP.COM <div id="carousel-example-generic" class="carousel slide" data <!-- Indicators --> <ol class="carousel-indicators"> <li data-target="#carousel-example-generic" data-slide <li data-target="#carousel-example-generic" data-slide <li data-target="#carousel-example-generic" data-slide </ol> <!-- Wrapper for slides --> <div class="carousel-inner" role="listbox"> <div class="item active"> <img src="..." alt="..."> <div class="carousel-caption"> ... </div>
  • 129. STAPPENPLANSTAPPENPLAN Maak een alternate layout slideshow.php van mod_articles_category. Hergebruik de foreach loop in de code voor de nieuwe HTML elementen. Zoe dat de foreach loop zowel bij carousel- indicators als bij carousel-inner toegepast moet worden. Plaats bla in de foreach loop en zie het resultaat. Wijs de layout toe als weergave van een nieuwe module.
  • 130. GEHELE CODE VOOR BS3GEHELE CODE VOOR BS3 <?php /** * @package Joomla.Site * @subpackage mod_articles_category * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, * @license GNU General Public License version 2 or later; */ defined('_JEXEC') or die; $count = count($list); ?> <div id="carousel-example-generic" class="carousel slide" data <!-- Indicators -->
  • 131. VERSCHILLENVERSCHILLEN Zie dat de html ietwat afwijkt, maar de manier verder gelijk blij ... voor elk item in de aangeboden lijst wordt een div gemaakt die gevuld wordt met afbeelding, tekst, link en titel. Pas dezelfde werkwijze toe op de implementaties van andere frameworks.
  • 132. HANS KUIJPERSHANS KUIJPERS Veel plezier met het maken van eigen overrides, alternate layouts en jlayout implementaties. Frontend webdeveloper @hans2103