SlideShare a Scribd company logo
1 of 56
Download to read offline
JUG Bussum okt 2017 :: Custom Fields - the next level - 1 of 56
JUG Bussum okt 2017 :: Custom Fields - the next level - 2 of 56
De basis
Een goed begin, is het halve werk
JUG Bussum okt 2017 :: Custom Fields - the next level - 3 of 56
Een basis template
Om mee te beginnen
JUG Bussum okt 2017 :: Custom Fields - the next level - 4 of 56
Handig... maar....
Veel tijd kwijt met
via Joomla.org meest recente versie downloaden
installeren op hostingomgeving
handige extensies downloaden en installeren
tof template downloaden en installeren
standaard instellingen wijzigen
accounts aanmaken
JUG Bussum okt 2017 :: Custom Fields - the next level - 5 of 56
Dus... een basis website
Investeer eenmalig tijd in een goede basis
Gebruik als kickstart voor ieder template-project
Beheer basis via bijvoorbeeld een github-repo
Maak bibliotheek van overrides, JavaScript, SCSS
JUG Bussum okt 2017 :: Custom Fields - the next level - 6 of 56
De PWT basis website
JUG Bussum okt 2017 :: Custom Fields - the next level - 7 of 56
Het begin is vrij leeg
JUG Bussum okt 2017 :: Custom Fields - the next level - 8 of 56
Zo moet het straks worden
JUG Bussum okt 2017 :: Custom Fields - the next level - 9 of 56
Aan het werk
Stap voor stap alle designs doornemen
JUG Bussum okt 2017 :: Custom Fields - the next level - 10 of 56
Waar mogelijk alleen com_content
Homepage -> com_content category blog weergave
Team -> com_content category blog weergave
Team member -> com_content article
Expertise -> com_content article met modules
Expertise selectie -> com_content category blog weergave
Opdrachtgevers -> com_content category blog weergave
Opdrachtgevers item -> com_content article
Nieuws -> com_content category blog weergave
Nieuws item -> com_content article
Contact -> com_content article
JUG Bussum okt 2017 :: Custom Fields - the next level - 11 of 56
Opdrachtgevers
image_intro van alle artikelen in category
JUG Bussum okt 2017 :: Custom Fields - the next level - 12 of 56
Opdrachtgevers
image_intro van alle artikelen in category
JUG Bussum okt 2017 :: Custom Fields - the next level - 13 of 56
Template override
van com_content/views/category/tmpl/
- blog.php
- blog.xml
- blog_item.php
naar templates/bla/html/com_content/category/
- clients.php
- clients.xml
- clients_item.php
JUG Bussum okt 2017 :: Custom Fields - the next level - 14 of 56
Client.xml
van
<layout title="COM_CONTENT_CATEGORY_VIEW_BLOG_TITLE"
option="COM_CONTENT_CATEGORY_VIEW_BLOG_OPTION">
<help key = "JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORY_BLOG" />
<message>
<![CDATA[COM_CONTENT_CATEGORY_VIEW_BLOG_DESC]]>
</message>
</layout>
naar
<layout title="COM_CONTENT_CATEGORY_VIEW_CLIENTS_TITLE"
option="COM_CONTENT_CATEGORY_VIEW_CLIENTS_OPTION">
<help key = "JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORY_BLOG" />
<message>
<![CDATA[COM_CONTENT_CATEGORY_VIEW_CLIENTS_DESC]]>
</message>
</layout>
JUG Bussum okt 2017 :: Custom Fields - the next level - 15 of 56
Taalstrings
administrator/language/overrides/nl-NL.overrides.ini
COM_CONTENT_CATEGORY_VIEW_CLIENTS_TITLE="Categorieblog Opdrachtgevers p
COM_CONTENT_CATEGORY_VIEW_CLIENTS_OPTION="Categoryblogclientpage"
COM_CONTENT_CATEGORY_VIEW_CLIENTS_DESC="Weergave van artikelintroductie
JUG Bussum okt 2017 :: Custom Fields - the next level - 16 of 56
Menu type
Nieuwe optie beschikbaar bij aanmaken menu item
JUG Bussum okt 2017 :: Custom Fields - the next level - 17 of 56
Override van cateogory blog
blog.php gekopieerd naar clients.php
<?php if (!empty($this->intro_items)) : ?>
<section class="section section__client-items<?php echo $this->para
<div class="container">
<div class="section__content">
Hier de plaatjes van alle opdrachtgevers
</div>
</div>
</section>
<?php endif; ?>
JUG Bussum okt 2017 :: Custom Fields - the next level - 18 of 56
Override van category blog
oproepen van alle plaatjes
<?php
foreach ($this->intro_items as $key => &$item)
{
$this->item = &$item;
echo $this->loadTemplate('item');
}
?>
Waar zijn die plaatjes? Die zitten in clients_item.php
JUG Bussum okt 2017 :: Custom Fields - the next level - 19 of 56
Override van category blog_item
eindelijk die plaatjes
<?php $images = json_decode($this->item->images); ?>
<?php if (isset($images->image_intro) && !empty($images->image_intro))
<figure class="section__image">
<?php echo JHtml::_('image', $images->image_intro, $this->item-
</figure>
<?php endif; ?>
JUG Bussum okt 2017 :: Custom Fields - the next level - 20 of 56
Wat styling erover
.section__client-items {
padding-top: 2rem;
padding-bottom: 5rem;
.section__content {
@include grid-column(12);
@include grid-media($grid-charlie) {
@include grid-column(10);
@include grid-push(1);
}
}
.section__image {
@include grid-column(1 of 2);
padding: $spacing-xs;
@include grid-media($grid-alpha--plus) {
@include grid-column(1 of 3);
}
@include grid-media($grid-beta) {
@include grid-column(1 of 4);
}
@include grid-media($grid-charlie) {
@include grid column(1 of 5);
JUG Bussum okt 2017 :: Custom Fields - the next level - 21 of 56
Het resultaat met com_content
JUG Bussum okt 2017 :: Custom Fields - the next level - 22 of 56
Die was eenvoudig
Nu een pittige
JUG Bussum okt 2017 :: Custom Fields - the next level - 23 of 56
JUG Bussum okt 2017 :: Custom Fields - the next level - 24 of 56
Team member
Header toont article title
Sidebar: afbeelding link is image_intro, typisch via custom
elds, plaatjes via custom elds, stuk tekst via taalstring
Main-top: Quote via custom elds, LinkedIn via custom elds,
telefoon via custom elds, e-mail via custom elds
Content: drie velden via custom elds
Main-bottom: twee modules
JUG Bussum okt 2017 :: Custom Fields - the next level - 25 of 56
Overzicht van aangemaakte elds
JUG Bussum okt 2017 :: Custom Fields - the next level - 26 of 56
Template override
van com_content/views/article/tmpl/
- default.php
naar templates/bla/html/com_content/article/
- vennoot.php
JUG Bussum okt 2017 :: Custom Fields - the next level - 27 of 56
Template override
van com_content/views/article/tmpl/
- default.php
naar templates/bla/html/com_content/article/
- vennoot.php
let op: dit keer geen vennoot.xml
JUG Bussum okt 2017 :: Custom Fields - the next level - 28 of 56
Weergave override via Opties
Bij aanmaken nieuw com_content article
JUG Bussum okt 2017 :: Custom Fields - the next level - 29 of 56
Overzicht door templates
<?php echo Jlayouts::render('content.heading', array('title' => $this->
<section class="section section__vennoot">
<div class="container">
<div class="section__content section__content--vennoot">
<div class="block__vennoot-top">
<?php echo $this->loadTemplate('top'); ?>
</div>
<div class="block__vennoot-main">
<?php echo $this->item->event->beforeDisplayContent; ?>
<?php echo $this->loadTemplate('body'); ?>
<?php echo $this->item->event->afterDisplayContent; ?>
</div>
<div class="block__vennoot-bottom">
<?php echo $this->loadTemplate('bottom-opdrachten'); ?>
<?php echo $this->loadTemplate('bottom-publicaties'); ?
</div>
</div>
<div class="section__content section__content--aside">
<div class="block__vennoot-image">
<?php echo $this->loadTemplate('image'); ?>
</div>
<?php echo $this->loadTemplate('aside'); ?>
/di
JUG Bussum okt 2017 :: Custom Fields - the next level - 30 of 56
heading
html/layouts/template/content/heading.php
<?php echo Jlayouts::render('content.heading',
array('title' => $this->item->title, 'bgcolor' => 'white')); ?>
JUG Bussum okt 2017 :: Custom Fields - the next level - 31 of 56
heading
html/layouts/template/content/heading.php
<?php echo Jlayouts::render('content.heading',
array('title' => $this->item->title, 'bgcolor' => 'white')); ?>
eigen JLayout
<section class="section section__heading <?php echo 'section__heading--
<div class="container">
<h1><?php
echo $displayData['title'] ? $displayData['title'] : '';
?></h1>
</div>
</section>
<?php endif; ?>
JUG Bussum okt 2017 :: Custom Fields - the next level - 32 of 56
Overzicht door templates - herhaling
<?php echo Jlayouts::render('content.heading', array('title' => $this->
<section class="section section__vennoot">
<div class="container">
<div class="section__content section__content--vennoot">
<div class="block__vennoot-top">
<?php echo $this->loadTemplate('top'); ?>
</div>
<div class="block__vennoot-main">
<?php echo $this->item->event->beforeDisplayContent; ?>
<?php echo $this->loadTemplate('body'); ?>
<?php echo $this->item->event->afterDisplayContent; ?>
</div>
<div class="block__vennoot-bottom">
<?php echo $this->loadTemplate('bottom-opdrachten'); ?>
<?php echo $this->loadTemplate('bottom-publicaties'); ?
</div>
</div>
<div class="section__content section__content--aside">
<div class="block__vennoot-image">
<?php echo $this->loadTemplate('image'); ?>
</div>
<?php echo $this->loadTemplate('aside'); ?>
/di
JUG Bussum okt 2017 :: Custom Fields - the next level - 33 of 56
loadTemplate('top')
html/com_content/article/vennoot_top.php
JUG Bussum okt 2017 :: Custom Fields - the next level - 34 of 56
loadTemplate('top')
html/com_content/article/vennoot_top.php
viertal Custom Fields
Quote
LinkedIn
Telefoon
E-mail
JUG Bussum okt 2017 :: Custom Fields - the next level - 35 of 56
Weergave in beheer van artikel
Inhoud > Artikelen
JUG Bussum okt 2017 :: Custom Fields - the next level - 36 of 56
Overzicht van de Custom Fields
Inhoud > Velden
JUG Bussum okt 2017 :: Custom Fields - the next level - 37 of 56
Oproepen in een override
<?php echo $this->item->jcfields[2]->value; ?>
JUG Bussum okt 2017 :: Custom Fields - the next level - 38 of 56
Oproepen in een override
<?php echo $this->item->jcfields[2]->value; ?>
2? Wat is 2? Veldnaam quote zou handiger zijn toch?
JUG Bussum okt 2017 :: Custom Fields - the next level - 39 of 56
mapping aanmaken van naam -> id
foreach ($this->item->jcfields as $jcfield)
{
$this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id;
}
$jcfield_name_id_map = $this->item->jcfield_name_id_map;
echo $this->item->jcfields[$jcfield_name_id_map['quote']]->value;
JUG Bussum okt 2017 :: Custom Fields - the next level - 40 of 56
loadTemplate('top')
html/com_content/article/vennoot_top.php
<?php
foreach ($this->item->jcfields as $jcfield)
{
$this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id;
}
$jcfield_name_id_map = $this->item->jcfield_name_id_map;
?>
<div class="block__vennoot-top-headline">
<?php
if (!empty($quote =
$this->item->jcfields[$jcfield_name_id_map['quote']]->value))
{
echo $quote;
}
?>
</div>
Herhalen voor LinkedIn, Telefoon en E-mail
JUG Bussum okt 2017 :: Custom Fields - the next level - 41 of 56
loadTemplate('body')
html/com_content/article/vennoot_body.php
JUG Bussum okt 2017 :: Custom Fields - the next level - 42 of 56
loadTemplate('body')
html/com_content/article/vennoot_body.php
foreach ($this->item->jcfields as $jcfield)
{
$this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id;
}
$jcfield_name_id_map = $this->item->jcfield_name_id_map;
$fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem
if ($this->item->language == 'en-GB')
{
$fields = array('background-and-experience','leadership-vision-and-
}
foreach ($fields as $field)
{
$vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]]
if ($vennoot_body->value)
{
echo JText::_('<h2>' . $vennoot_body->title . '</h2>');
echo JText::_($vennoot_body->value);
}
}
JUG Bussum okt 2017 :: Custom Fields - the next level - 43 of 56
dafuq?
JUG Bussum okt 2017 :: Custom Fields - the next level - 44 of 56
loadTemplate('body')
html/com_content/article/vennoot_body.php
foreach ($this->item->jcfields as $jcfield)
{
$this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id;
}
$jcfield_name_id_map = $this->item->jcfield_name_id_map;
$fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem
if ($this->item->language == 'en-GB')
{
$fields = array('background-and-experience','leadership-vision-and-
}
foreach ($fields as $field)
{
$vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]]
if ($vennoot_body->value)
{
echo JText::_('<h2>' . $vennoot_body->title . '</h2>');
echo JText::_($vennoot_body->value);
}
}
JUG Bussum okt 2017 :: Custom Fields - the next level - 45 of 56
loadTemplate('body')
html/com_content/article/vennoot_body.php
foreach ($this->item->jcfields as $jcfield)
{
$this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id;
}
$jcfield_name_id_map = $this->item->jcfield_name_id_map;
$fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem
if ($this->item->language == 'en-GB')
{
$fields = array('background-and-experience','leadership-vision-and-
}
foreach ($fields as $field)
{
$vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]]
if ($vennoot_body->value)
{
echo JText::_('<h2>' . $vennoot_body->title . '</h2>');
echo JText::_($vennoot_body->value);
}
}
JUG Bussum okt 2017 :: Custom Fields - the next level - 46 of 56
loadTemplate('body')
html/com_content/article/vennoot_body.php
foreach ($this->item->jcfields as $jcfield)
{
$this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id;
}
$jcfield_name_id_map = $this->item->jcfield_name_id_map;
$fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem
if ($this->item->language == 'en-GB')
{
$fields = array('background-and-experience','leadership-vision-and-
}
foreach ($fields as $field)
{
$vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]]
if ($vennoot_body->value)
{
echo JText::_('<h2>' . $vennoot_body->title . '</h2>');
echo JText::_($vennoot_body->value);
}
}
JUG Bussum okt 2017 :: Custom Fields - the next level - 47 of 56
loadTemplate('body')
html/com_content/article/vennoot_body.php
foreach ($this->item->jcfields as $jcfield)
{
$this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id;
}
$jcfield_name_id_map = $this->item->jcfield_name_id_map;
$fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem
if ($this->item->language == 'en-GB')
{
$fields = array('background-and-experience','leadership-vision-and-
}
foreach ($fields as $field)
{
$vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]]
if ($vennoot_body->value)
{
echo JText::_('<h2>' . $vennoot_body->title . '</h2>');
echo JText::_($vennoot_body->value);
}
}
JUG Bussum okt 2017 :: Custom Fields - the next level - 48 of 56
loadTemplate('body')
html/com_content/article/vennoot_body.php
foreach ($this->item->jcfields as $jcfield)
{
$this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id;
}
$jcfield_name_id_map = $this->item->jcfield_name_id_map;
$fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem
if ($this->item->language == 'en-GB')
{
$fields = array('background-and-experience','leadership-vision-and-
}
foreach ($fields as $field)
{
$vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]]
if ($vennoot_body->value)
{
echo JText::_('<h2>' . $vennoot_body->title . '</h2>');
echo JText::_($vennoot_body->value);
}
}
JUG Bussum okt 2017 :: Custom Fields - the next level - 49 of 56
loadTemplate('body')
html/com_content/article/vennoot_body.php
foreach ($this->item->jcfields as $jcfield)
{
$this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id;
}
$jcfield_name_id_map = $this->item->jcfield_name_id_map;
$fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem
if ($this->item->language == 'en-GB')
{
$fields = array('background-and-experience','leadership-vision-and-
}
foreach ($fields as $field)
{
$vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]]
if ($vennoot_body->value)
{
echo JText::_('<h2>' . $vennoot_body->title . '</h2>');
echo JText::_($vennoot_body->value);
}
}
JUG Bussum okt 2017 :: Custom Fields - the next level - 50 of 56
loadTemplate('body')
html/com_content/article/vennoot_body.php
foreach ($this->item->jcfields as $jcfield)
{
$this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id;
}
$jcfield_name_id_map = $this->item->jcfield_name_id_map;
$fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem
if ($this->item->language == 'en-GB')
{
$fields = array('background-and-experience','leadership-vision-and-
}
foreach ($fields as $field)
{
$vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]]
if ($vennoot_body->value)
{
echo JText::_('<h2>' . $vennoot_body->title . '</h2>');
echo JText::_($vennoot_body->value);
}
}
JUG Bussum okt 2017 :: Custom Fields - the next level - 51 of 56
Het resultaat
JUG Bussum okt 2017 :: Custom Fields - the next level - 52 of 56
Het resultaat - Engels
JUG Bussum okt 2017 :: Custom Fields - the next level - 53 of 56
Overzicht door templates - herhaling
<?php echo Jlayouts::render('content.heading', array('title' => $this->
<section class="section section__vennoot">
<div class="container">
<div class="section__content section__content--vennoot">
<div class="block__vennoot-top">
<?php echo $this->loadTemplate('top'); ?>
</div>
<div class="block__vennoot-main">
<?php echo $this->item->event->beforeDisplayContent; ?>
<?php echo $this->loadTemplate('body'); ?>
<?php echo $this->item->event->afterDisplayContent; ?>
</div>
<div class="block__vennoot-bottom">
<?php echo $this->loadTemplate('bottom-opdrachten'); ?>
<?php echo $this->loadTemplate('bottom-publicaties'); ?
</div>
</div>
<div class="section__content section__content--aside">
<div class="block__vennoot-image">
<?php echo $this->loadTemplate('image'); ?>
</div>
<?php echo $this->loadTemplate('aside'); ?>
/di
JUG Bussum okt 2017 :: Custom Fields - the next level - 54 of 56
loadTemplate('image')
html/com_content/article/vennoot_image.php
<?php
$images = json_decode($this->item->images);
if(isset($images->image_teammember) && !empty($images->image_teammember
{
echo '<figure>';
echo JHtml::_('image', $images->image_teammember, $this->item->titl
echo '</figure>';
}
JUG Bussum okt 2017 :: Custom Fields - the next level - 55 of 56
Dank voor jullie
aandacht
Hans Kuijpers
@hans2103
JUG Bussum okt 2017 :: Custom Fields - the next level - 56 of 56

More Related Content

What's hot

WordPress development paradigms, idiosyncrasies and other big words
WordPress development paradigms, idiosyncrasies and other big wordsWordPress development paradigms, idiosyncrasies and other big words
WordPress development paradigms, idiosyncrasies and other big wordsTomAuger
 
Essential html tweaks for accessible themes
Essential html tweaks for accessible themesEssential html tweaks for accessible themes
Essential html tweaks for accessible themesMartin Stehle
 
Inchoo s magento posts
Inchoo s magento postsInchoo s magento posts
Inchoo s magento postsTuyến Trần
 
PSD to WordPress
PSD to WordPressPSD to WordPress
PSD to WordPressNile Flores
 
7 reasons why developers should love Joomla!
7 reasons why developers should love Joomla!7 reasons why developers should love Joomla!
7 reasons why developers should love Joomla!Bartłomiej Krztuk
 
How to Develop Your First Ever Joomla Template?
How to Develop Your First Ever Joomla Template?How to Develop Your First Ever Joomla Template?
How to Develop Your First Ever Joomla Template?damienwoods
 
Introduction to building joomla! components using FOF
Introduction to building joomla! components using FOFIntroduction to building joomla! components using FOF
Introduction to building joomla! components using FOFTim Plummer
 
Rapid application development with FOF
Rapid application development with FOFRapid application development with FOF
Rapid application development with FOFNicholas Dionysopoulos
 
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...Peter Martin
 
Joomla Day UK 2009 Menus Presentation
Joomla Day UK 2009 Menus PresentationJoomla Day UK 2009 Menus Presentation
Joomla Day UK 2009 Menus PresentationChris Davenport
 
Build a Better Editing Experience with Advanced Custom Fields - #WCTO16
Build a Better Editing Experience with Advanced Custom Fields - #WCTO16Build a Better Editing Experience with Advanced Custom Fields - #WCTO16
Build a Better Editing Experience with Advanced Custom Fields - #WCTO16Jeseph Meyers
 
Drupal 8 templating with twig
Drupal 8 templating with twigDrupal 8 templating with twig
Drupal 8 templating with twigTaras Omelianenko
 
Introduction to Using PHP & MVC Frameworks
Introduction to Using PHP & MVC FrameworksIntroduction to Using PHP & MVC Frameworks
Introduction to Using PHP & MVC FrameworksGerald Krishnan
 
Gentle Intro to Drupal Code
Gentle Intro to Drupal CodeGentle Intro to Drupal Code
Gentle Intro to Drupal CodeAddison Berry
 
Rapid application development using Akeeba FOF and Joomla 3.2
Rapid application development using Akeeba FOF and Joomla 3.2Rapid application development using Akeeba FOF and Joomla 3.2
Rapid application development using Akeeba FOF and Joomla 3.2Tim Plummer
 
J!Layout Overrides Einstieg und Beispiele
J!Layout Overrides Einstieg und BeispieleJ!Layout Overrides Einstieg und Beispiele
J!Layout Overrides Einstieg und BeispieleNiels Nübel
 
Joomla! Components - Uma visão geral
Joomla! Components - Uma visão geralJoomla! Components - Uma visão geral
Joomla! Components - Uma visão geralFábrica Livre
 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsNathan Smith
 

What's hot (20)

WordPress development paradigms, idiosyncrasies and other big words
WordPress development paradigms, idiosyncrasies and other big wordsWordPress development paradigms, idiosyncrasies and other big words
WordPress development paradigms, idiosyncrasies and other big words
 
Essential html tweaks for accessible themes
Essential html tweaks for accessible themesEssential html tweaks for accessible themes
Essential html tweaks for accessible themes
 
Inchoo s magento posts
Inchoo s magento postsInchoo s magento posts
Inchoo s magento posts
 
PSD to WordPress
PSD to WordPressPSD to WordPress
PSD to WordPress
 
7 reasons why developers should love Joomla!
7 reasons why developers should love Joomla!7 reasons why developers should love Joomla!
7 reasons why developers should love Joomla!
 
How to Develop Your First Ever Joomla Template?
How to Develop Your First Ever Joomla Template?How to Develop Your First Ever Joomla Template?
How to Develop Your First Ever Joomla Template?
 
Django cms best practices
Django cms best practicesDjango cms best practices
Django cms best practices
 
Introduction to building joomla! components using FOF
Introduction to building joomla! components using FOFIntroduction to building joomla! components using FOF
Introduction to building joomla! components using FOF
 
Rapid application development with FOF
Rapid application development with FOFRapid application development with FOF
Rapid application development with FOF
 
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
 
Joomla Day UK 2009 Menus Presentation
Joomla Day UK 2009 Menus PresentationJoomla Day UK 2009 Menus Presentation
Joomla Day UK 2009 Menus Presentation
 
Build a Better Editing Experience with Advanced Custom Fields - #WCTO16
Build a Better Editing Experience with Advanced Custom Fields - #WCTO16Build a Better Editing Experience with Advanced Custom Fields - #WCTO16
Build a Better Editing Experience with Advanced Custom Fields - #WCTO16
 
Drupal 8 templating with twig
Drupal 8 templating with twigDrupal 8 templating with twig
Drupal 8 templating with twig
 
Introduction to Using PHP & MVC Frameworks
Introduction to Using PHP & MVC FrameworksIntroduction to Using PHP & MVC Frameworks
Introduction to Using PHP & MVC Frameworks
 
Gentle Intro to Drupal Code
Gentle Intro to Drupal CodeGentle Intro to Drupal Code
Gentle Intro to Drupal Code
 
Rapid application development using Akeeba FOF and Joomla 3.2
Rapid application development using Akeeba FOF and Joomla 3.2Rapid application development using Akeeba FOF and Joomla 3.2
Rapid application development using Akeeba FOF and Joomla 3.2
 
J!Layout Overrides Einstieg und Beispiele
J!Layout Overrides Einstieg und BeispieleJ!Layout Overrides Einstieg und Beispiele
J!Layout Overrides Einstieg und Beispiele
 
Joomla! Components - Uma visão geral
Joomla! Components - Uma visão geralJoomla! Components - Uma visão geral
Joomla! Components - Uma visão geral
 
Seven deadly theming sins
Seven deadly theming sinsSeven deadly theming sins
Seven deadly theming sins
 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile Apps
 

Similar to Joomla Custom Fields - the next level

computerscience-170129081612.pdf
computerscience-170129081612.pdfcomputerscience-170129081612.pdf
computerscience-170129081612.pdfKiranKumari204016
 
Computer science class 12 project on Super Market Billing
Computer science class 12 project on Super Market BillingComputer science class 12 project on Super Market Billing
Computer science class 12 project on Super Market BillingHarsh Kumar
 
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013Build WordPress themes like a heavyweight - WordCamp Lancaster 2013
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013Jonny Allbut
 
Virtual Environment and Web development using Django
Virtual Environment and Web development using DjangoVirtual Environment and Web development using Django
Virtual Environment and Web development using DjangoSunil kumar Mohanty
 
Building Potent WordPress Websites
Building Potent WordPress WebsitesBuilding Potent WordPress Websites
Building Potent WordPress WebsitesKyle Cearley
 
Implement rich snippets in your webshop
Implement rich snippets in your webshopImplement rich snippets in your webshop
Implement rich snippets in your webshopArjen Miedema
 
Jquery tutorial
Jquery tutorialJquery tutorial
Jquery tutorialBui Kiet
 
How to Build ToDo App with Vue 3 + TypeScript
How to Build ToDo App with Vue 3 + TypeScriptHow to Build ToDo App with Vue 3 + TypeScript
How to Build ToDo App with Vue 3 + TypeScriptKaty Slemon
 
WordPress 15th Meetup - Build a Theme
WordPress 15th Meetup - Build a ThemeWordPress 15th Meetup - Build a Theme
WordPress 15th Meetup - Build a ThemeFadi Nicolas Zahhar
 
WordPress customizer for themes and more
WordPress customizer for themes and moreWordPress customizer for themes and more
WordPress customizer for themes and moreSantosh Kunwar
 
PHP and MySQL : Server Side Scripting For Web Development
PHP and MySQL : Server Side Scripting For Web DevelopmentPHP and MySQL : Server Side Scripting For Web Development
PHP and MySQL : Server Side Scripting For Web DevelopmentEdureka!
 
Custom gutenberg block development in react
Custom gutenberg block development in reactCustom gutenberg block development in react
Custom gutenberg block development in reactImran Sayed
 
Magento2 Basics for Frontend Development
Magento2 Basics for Frontend DevelopmentMagento2 Basics for Frontend Development
Magento2 Basics for Frontend DevelopmentKapil Dev Singh
 
Magento 2 Development
Magento 2 DevelopmentMagento 2 Development
Magento 2 DevelopmentDuke Dao
 
Social Connections VI — IBM Connections Extensions and Themes Demystified
Social Connections VI — IBM Connections Extensions and Themes DemystifiedSocial Connections VI — IBM Connections Extensions and Themes Demystified
Social Connections VI — IBM Connections Extensions and Themes DemystifiedClaudio Procida
 
Magento2 frontend development
Magento2   frontend developmentMagento2   frontend development
Magento2 frontend developmentKapil Dev Singh
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentationguest5d87aa6
 
PRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docx
PRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docxPRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docx
PRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docxharrisonhoward80223
 
Turbogears2 tutorial to create mvc app
Turbogears2 tutorial to create mvc appTurbogears2 tutorial to create mvc app
Turbogears2 tutorial to create mvc appfRui Apps
 

Similar to Joomla Custom Fields - the next level (20)

computerscience-170129081612.pdf
computerscience-170129081612.pdfcomputerscience-170129081612.pdf
computerscience-170129081612.pdf
 
Computer science class 12 project on Super Market Billing
Computer science class 12 project on Super Market BillingComputer science class 12 project on Super Market Billing
Computer science class 12 project on Super Market Billing
 
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013Build WordPress themes like a heavyweight - WordCamp Lancaster 2013
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013
 
Virtual Environment and Web development using Django
Virtual Environment and Web development using DjangoVirtual Environment and Web development using Django
Virtual Environment and Web development using Django
 
Building Potent WordPress Websites
Building Potent WordPress WebsitesBuilding Potent WordPress Websites
Building Potent WordPress Websites
 
Implement rich snippets in your webshop
Implement rich snippets in your webshopImplement rich snippets in your webshop
Implement rich snippets in your webshop
 
Jquery tutorial
Jquery tutorialJquery tutorial
Jquery tutorial
 
How to Build ToDo App with Vue 3 + TypeScript
How to Build ToDo App with Vue 3 + TypeScriptHow to Build ToDo App with Vue 3 + TypeScript
How to Build ToDo App with Vue 3 + TypeScript
 
WordPress 15th Meetup - Build a Theme
WordPress 15th Meetup - Build a ThemeWordPress 15th Meetup - Build a Theme
WordPress 15th Meetup - Build a Theme
 
WordPress customizer for themes and more
WordPress customizer for themes and moreWordPress customizer for themes and more
WordPress customizer for themes and more
 
PHP and MySQL : Server Side Scripting For Web Development
PHP and MySQL : Server Side Scripting For Web DevelopmentPHP and MySQL : Server Side Scripting For Web Development
PHP and MySQL : Server Side Scripting For Web Development
 
Custom gutenberg block development in react
Custom gutenberg block development in reactCustom gutenberg block development in react
Custom gutenberg block development in react
 
Magento2 Basics for Frontend Development
Magento2 Basics for Frontend DevelopmentMagento2 Basics for Frontend Development
Magento2 Basics for Frontend Development
 
Magento 2 Development
Magento 2 DevelopmentMagento 2 Development
Magento 2 Development
 
Social Connections VI — IBM Connections Extensions and Themes Demystified
Social Connections VI — IBM Connections Extensions and Themes DemystifiedSocial Connections VI — IBM Connections Extensions and Themes Demystified
Social Connections VI — IBM Connections Extensions and Themes Demystified
 
Magento2 frontend development
Magento2   frontend developmentMagento2   frontend development
Magento2 frontend development
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentation
 
PRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docx
PRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docxPRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docx
PRG 420 Week 3 Individual Assignment Netbeans Project (annual co.docx
 
Vanjs backbone-powerpoint
Vanjs backbone-powerpointVanjs backbone-powerpoint
Vanjs backbone-powerpoint
 
Turbogears2 tutorial to create mvc app
Turbogears2 tutorial to create mvc appTurbogears2 tutorial to create mvc app
Turbogears2 tutorial to create mvc app
 

More from Hans Kuijpers

JD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts
JD19NL - Joomla Template Overrides, Alternate Layouts en JLayoutsJD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts
JD19NL - Joomla Template Overrides, Alternate Layouts en JLayoutsHans Kuijpers
 
RSForm!pro jug073 maart 2019
RSForm!pro  jug073 maart 2019RSForm!pro  jug073 maart 2019
RSForm!pro jug073 maart 2019Hans Kuijpers
 
Template overrides in joomla jug073 februari 2019
Template overrides in joomla   jug073 februari 2019Template overrides in joomla   jug073 februari 2019
Template overrides in joomla jug073 februari 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
 
Best Practice: Joomla! templating
Best Practice: Joomla! templatingBest Practice: Joomla! templating
Best Practice: Joomla! templatingHans 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
 

More from Hans Kuijpers (20)

JD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts
JD19NL - Joomla Template Overrides, Alternate Layouts en JLayoutsJD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts
JD19NL - Joomla Template Overrides, Alternate Layouts en JLayouts
 
RSForm!pro jug073 maart 2019
RSForm!pro  jug073 maart 2019RSForm!pro  jug073 maart 2019
RSForm!pro jug073 maart 2019
 
Template overrides in joomla jug073 februari 2019
Template overrides in joomla   jug073 februari 2019Template overrides in joomla   jug073 februari 2019
Template overrides in joomla jug073 februari 2019
 
Joomla Website optimaliseren - jug073 augustus 2018
Joomla Website optimaliseren - jug073 augustus 2018Joomla Website optimaliseren - jug073 augustus 2018
Joomla Website optimaliseren - jug073 augustus 2018
 
Best Practice: Joomla! templating
Best Practice: Joomla! templatingBest Practice: Joomla! templating
Best Practice: Joomla! templating
 
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
 

Recently uploaded

Topology of the Network class 8 .ppt pdf
Topology of the Network class 8 .ppt pdfTopology of the Network class 8 .ppt pdf
Topology of the Network class 8 .ppt pdfAnushkaTripathi61
 
Pvtaan Social media marketing proposal.pdf
Pvtaan Social media marketing proposal.pdfPvtaan Social media marketing proposal.pdf
Pvtaan Social media marketing proposal.pdfPvtaan
 
Cyber Security Services Unveiled: Strategies to Secure Your Digital Presence
Cyber Security Services Unveiled: Strategies to Secure Your Digital PresenceCyber Security Services Unveiled: Strategies to Secure Your Digital Presence
Cyber Security Services Unveiled: Strategies to Secure Your Digital PresencePC Doctors NET
 
How Do I Begin the Linksys Velop Setup Process?
How Do I Begin the Linksys Velop Setup Process?How Do I Begin the Linksys Velop Setup Process?
How Do I Begin the Linksys Velop Setup Process?Linksys Velop Login
 
Development Lifecycle.pptx for the secure development of apps
Development Lifecycle.pptx for the secure development of appsDevelopment Lifecycle.pptx for the secure development of apps
Development Lifecycle.pptx for the secure development of appscristianmanaila2
 
Thank You Luv I’ll Never Walk Alone Again T shirts
Thank You Luv I’ll Never Walk Alone Again T shirtsThank You Luv I’ll Never Walk Alone Again T shirts
Thank You Luv I’ll Never Walk Alone Again T shirtsrahman018755
 
iThome_CYBERSEC2024_Drive_Into_the_DarkWeb
iThome_CYBERSEC2024_Drive_Into_the_DarkWebiThome_CYBERSEC2024_Drive_Into_the_DarkWeb
iThome_CYBERSEC2024_Drive_Into_the_DarkWebJie Liau
 
Premier Mobile App Development Agency in USA.pdf
Premier Mobile App Development Agency in USA.pdfPremier Mobile App Development Agency in USA.pdf
Premier Mobile App Development Agency in USA.pdfappinfoedgeca
 
Bug Bounty Blueprint : A Beginner's Guide
Bug Bounty Blueprint : A Beginner's GuideBug Bounty Blueprint : A Beginner's Guide
Bug Bounty Blueprint : A Beginner's GuideVarun Mithran
 
TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.
TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.
TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.Tortogel
 
I’ll See Y’All Motherfuckers In Game 7 Shirt
I’ll See Y’All Motherfuckers In Game 7 ShirtI’ll See Y’All Motherfuckers In Game 7 Shirt
I’ll See Y’All Motherfuckers In Game 7 Shirtrahman018755
 
The Use of AI in Indonesia Election 2024: A Case Study
The Use of AI in Indonesia Election 2024: A Case StudyThe Use of AI in Indonesia Election 2024: A Case Study
The Use of AI in Indonesia Election 2024: A Case StudyDamar Juniarto
 
audience research (emma) 1.pptxkkkkkkkkkkkkkkkkk
audience research (emma) 1.pptxkkkkkkkkkkkkkkkkkaudience research (emma) 1.pptxkkkkkkkkkkkkkkkkk
audience research (emma) 1.pptxkkkkkkkkkkkkkkkkklolsDocherty
 
Reggie miller choke t shirtsReggie miller choke t shirts
Reggie miller choke t shirtsReggie miller choke t shirtsReggie miller choke t shirtsReggie miller choke t shirts
Reggie miller choke t shirtsReggie miller choke t shirtsrahman018755
 
Production 2024 sunderland culture final - Copy.pptx
Production 2024 sunderland culture final - Copy.pptxProduction 2024 sunderland culture final - Copy.pptx
Production 2024 sunderland culture final - Copy.pptxChloeMeadows1
 
Statistical Analysis of DNS Latencies.pdf
Statistical Analysis of DNS Latencies.pdfStatistical Analysis of DNS Latencies.pdf
Statistical Analysis of DNS Latencies.pdfOndejSur
 

Recently uploaded (16)

Topology of the Network class 8 .ppt pdf
Topology of the Network class 8 .ppt pdfTopology of the Network class 8 .ppt pdf
Topology of the Network class 8 .ppt pdf
 
Pvtaan Social media marketing proposal.pdf
Pvtaan Social media marketing proposal.pdfPvtaan Social media marketing proposal.pdf
Pvtaan Social media marketing proposal.pdf
 
Cyber Security Services Unveiled: Strategies to Secure Your Digital Presence
Cyber Security Services Unveiled: Strategies to Secure Your Digital PresenceCyber Security Services Unveiled: Strategies to Secure Your Digital Presence
Cyber Security Services Unveiled: Strategies to Secure Your Digital Presence
 
How Do I Begin the Linksys Velop Setup Process?
How Do I Begin the Linksys Velop Setup Process?How Do I Begin the Linksys Velop Setup Process?
How Do I Begin the Linksys Velop Setup Process?
 
Development Lifecycle.pptx for the secure development of apps
Development Lifecycle.pptx for the secure development of appsDevelopment Lifecycle.pptx for the secure development of apps
Development Lifecycle.pptx for the secure development of apps
 
Thank You Luv I’ll Never Walk Alone Again T shirts
Thank You Luv I’ll Never Walk Alone Again T shirtsThank You Luv I’ll Never Walk Alone Again T shirts
Thank You Luv I’ll Never Walk Alone Again T shirts
 
iThome_CYBERSEC2024_Drive_Into_the_DarkWeb
iThome_CYBERSEC2024_Drive_Into_the_DarkWebiThome_CYBERSEC2024_Drive_Into_the_DarkWeb
iThome_CYBERSEC2024_Drive_Into_the_DarkWeb
 
Premier Mobile App Development Agency in USA.pdf
Premier Mobile App Development Agency in USA.pdfPremier Mobile App Development Agency in USA.pdf
Premier Mobile App Development Agency in USA.pdf
 
Bug Bounty Blueprint : A Beginner's Guide
Bug Bounty Blueprint : A Beginner's GuideBug Bounty Blueprint : A Beginner's Guide
Bug Bounty Blueprint : A Beginner's Guide
 
TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.
TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.
TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.
 
I’ll See Y’All Motherfuckers In Game 7 Shirt
I’ll See Y’All Motherfuckers In Game 7 ShirtI’ll See Y’All Motherfuckers In Game 7 Shirt
I’ll See Y’All Motherfuckers In Game 7 Shirt
 
The Use of AI in Indonesia Election 2024: A Case Study
The Use of AI in Indonesia Election 2024: A Case StudyThe Use of AI in Indonesia Election 2024: A Case Study
The Use of AI in Indonesia Election 2024: A Case Study
 
audience research (emma) 1.pptxkkkkkkkkkkkkkkkkk
audience research (emma) 1.pptxkkkkkkkkkkkkkkkkkaudience research (emma) 1.pptxkkkkkkkkkkkkkkkkk
audience research (emma) 1.pptxkkkkkkkkkkkkkkkkk
 
Reggie miller choke t shirtsReggie miller choke t shirts
Reggie miller choke t shirtsReggie miller choke t shirtsReggie miller choke t shirtsReggie miller choke t shirts
Reggie miller choke t shirtsReggie miller choke t shirts
 
Production 2024 sunderland culture final - Copy.pptx
Production 2024 sunderland culture final - Copy.pptxProduction 2024 sunderland culture final - Copy.pptx
Production 2024 sunderland culture final - Copy.pptx
 
Statistical Analysis of DNS Latencies.pdf
Statistical Analysis of DNS Latencies.pdfStatistical Analysis of DNS Latencies.pdf
Statistical Analysis of DNS Latencies.pdf
 

Joomla Custom Fields - the next level

  • 1. JUG Bussum okt 2017 :: Custom Fields - the next level - 1 of 56
  • 2. JUG Bussum okt 2017 :: Custom Fields - the next level - 2 of 56
  • 3. De basis Een goed begin, is het halve werk JUG Bussum okt 2017 :: Custom Fields - the next level - 3 of 56
  • 4. Een basis template Om mee te beginnen JUG Bussum okt 2017 :: Custom Fields - the next level - 4 of 56
  • 5. Handig... maar.... Veel tijd kwijt met via Joomla.org meest recente versie downloaden installeren op hostingomgeving handige extensies downloaden en installeren tof template downloaden en installeren standaard instellingen wijzigen accounts aanmaken JUG Bussum okt 2017 :: Custom Fields - the next level - 5 of 56
  • 6. Dus... een basis website Investeer eenmalig tijd in een goede basis Gebruik als kickstart voor ieder template-project Beheer basis via bijvoorbeeld een github-repo Maak bibliotheek van overrides, JavaScript, SCSS JUG Bussum okt 2017 :: Custom Fields - the next level - 6 of 56
  • 7. De PWT basis website JUG Bussum okt 2017 :: Custom Fields - the next level - 7 of 56
  • 8. Het begin is vrij leeg JUG Bussum okt 2017 :: Custom Fields - the next level - 8 of 56
  • 9. Zo moet het straks worden JUG Bussum okt 2017 :: Custom Fields - the next level - 9 of 56
  • 10. Aan het werk Stap voor stap alle designs doornemen JUG Bussum okt 2017 :: Custom Fields - the next level - 10 of 56
  • 11. Waar mogelijk alleen com_content Homepage -> com_content category blog weergave Team -> com_content category blog weergave Team member -> com_content article Expertise -> com_content article met modules Expertise selectie -> com_content category blog weergave Opdrachtgevers -> com_content category blog weergave Opdrachtgevers item -> com_content article Nieuws -> com_content category blog weergave Nieuws item -> com_content article Contact -> com_content article JUG Bussum okt 2017 :: Custom Fields - the next level - 11 of 56
  • 12. Opdrachtgevers image_intro van alle artikelen in category JUG Bussum okt 2017 :: Custom Fields - the next level - 12 of 56
  • 13. Opdrachtgevers image_intro van alle artikelen in category JUG Bussum okt 2017 :: Custom Fields - the next level - 13 of 56
  • 14. Template override van com_content/views/category/tmpl/ - blog.php - blog.xml - blog_item.php naar templates/bla/html/com_content/category/ - clients.php - clients.xml - clients_item.php JUG Bussum okt 2017 :: Custom Fields - the next level - 14 of 56
  • 15. Client.xml van <layout title="COM_CONTENT_CATEGORY_VIEW_BLOG_TITLE" option="COM_CONTENT_CATEGORY_VIEW_BLOG_OPTION"> <help key = "JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORY_BLOG" /> <message> <![CDATA[COM_CONTENT_CATEGORY_VIEW_BLOG_DESC]]> </message> </layout> naar <layout title="COM_CONTENT_CATEGORY_VIEW_CLIENTS_TITLE" option="COM_CONTENT_CATEGORY_VIEW_CLIENTS_OPTION"> <help key = "JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORY_BLOG" /> <message> <![CDATA[COM_CONTENT_CATEGORY_VIEW_CLIENTS_DESC]]> </message> </layout> JUG Bussum okt 2017 :: Custom Fields - the next level - 15 of 56
  • 17. Menu type Nieuwe optie beschikbaar bij aanmaken menu item JUG Bussum okt 2017 :: Custom Fields - the next level - 17 of 56
  • 18. Override van cateogory blog blog.php gekopieerd naar clients.php <?php if (!empty($this->intro_items)) : ?> <section class="section section__client-items<?php echo $this->para <div class="container"> <div class="section__content"> Hier de plaatjes van alle opdrachtgevers </div> </div> </section> <?php endif; ?> JUG Bussum okt 2017 :: Custom Fields - the next level - 18 of 56
  • 19. Override van category blog oproepen van alle plaatjes <?php foreach ($this->intro_items as $key => &$item) { $this->item = &$item; echo $this->loadTemplate('item'); } ?> Waar zijn die plaatjes? Die zitten in clients_item.php JUG Bussum okt 2017 :: Custom Fields - the next level - 19 of 56
  • 20. Override van category blog_item eindelijk die plaatjes <?php $images = json_decode($this->item->images); ?> <?php if (isset($images->image_intro) && !empty($images->image_intro)) <figure class="section__image"> <?php echo JHtml::_('image', $images->image_intro, $this->item- </figure> <?php endif; ?> JUG Bussum okt 2017 :: Custom Fields - the next level - 20 of 56
  • 21. Wat styling erover .section__client-items { padding-top: 2rem; padding-bottom: 5rem; .section__content { @include grid-column(12); @include grid-media($grid-charlie) { @include grid-column(10); @include grid-push(1); } } .section__image { @include grid-column(1 of 2); padding: $spacing-xs; @include grid-media($grid-alpha--plus) { @include grid-column(1 of 3); } @include grid-media($grid-beta) { @include grid-column(1 of 4); } @include grid-media($grid-charlie) { @include grid column(1 of 5); JUG Bussum okt 2017 :: Custom Fields - the next level - 21 of 56
  • 22. Het resultaat met com_content JUG Bussum okt 2017 :: Custom Fields - the next level - 22 of 56
  • 23. Die was eenvoudig Nu een pittige JUG Bussum okt 2017 :: Custom Fields - the next level - 23 of 56
  • 24. JUG Bussum okt 2017 :: Custom Fields - the next level - 24 of 56
  • 25. Team member Header toont article title Sidebar: afbeelding link is image_intro, typisch via custom elds, plaatjes via custom elds, stuk tekst via taalstring Main-top: Quote via custom elds, LinkedIn via custom elds, telefoon via custom elds, e-mail via custom elds Content: drie velden via custom elds Main-bottom: twee modules JUG Bussum okt 2017 :: Custom Fields - the next level - 25 of 56
  • 26. Overzicht van aangemaakte elds JUG Bussum okt 2017 :: Custom Fields - the next level - 26 of 56
  • 27. Template override van com_content/views/article/tmpl/ - default.php naar templates/bla/html/com_content/article/ - vennoot.php JUG Bussum okt 2017 :: Custom Fields - the next level - 27 of 56
  • 28. Template override van com_content/views/article/tmpl/ - default.php naar templates/bla/html/com_content/article/ - vennoot.php let op: dit keer geen vennoot.xml JUG Bussum okt 2017 :: Custom Fields - the next level - 28 of 56
  • 29. Weergave override via Opties Bij aanmaken nieuw com_content article JUG Bussum okt 2017 :: Custom Fields - the next level - 29 of 56
  • 30. Overzicht door templates <?php echo Jlayouts::render('content.heading', array('title' => $this-> <section class="section section__vennoot"> <div class="container"> <div class="section__content section__content--vennoot"> <div class="block__vennoot-top"> <?php echo $this->loadTemplate('top'); ?> </div> <div class="block__vennoot-main"> <?php echo $this->item->event->beforeDisplayContent; ?> <?php echo $this->loadTemplate('body'); ?> <?php echo $this->item->event->afterDisplayContent; ?> </div> <div class="block__vennoot-bottom"> <?php echo $this->loadTemplate('bottom-opdrachten'); ?> <?php echo $this->loadTemplate('bottom-publicaties'); ? </div> </div> <div class="section__content section__content--aside"> <div class="block__vennoot-image"> <?php echo $this->loadTemplate('image'); ?> </div> <?php echo $this->loadTemplate('aside'); ?> /di JUG Bussum okt 2017 :: Custom Fields - the next level - 30 of 56
  • 31. heading html/layouts/template/content/heading.php <?php echo Jlayouts::render('content.heading', array('title' => $this->item->title, 'bgcolor' => 'white')); ?> JUG Bussum okt 2017 :: Custom Fields - the next level - 31 of 56
  • 32. heading html/layouts/template/content/heading.php <?php echo Jlayouts::render('content.heading', array('title' => $this->item->title, 'bgcolor' => 'white')); ?> eigen JLayout <section class="section section__heading <?php echo 'section__heading-- <div class="container"> <h1><?php echo $displayData['title'] ? $displayData['title'] : ''; ?></h1> </div> </section> <?php endif; ?> JUG Bussum okt 2017 :: Custom Fields - the next level - 32 of 56
  • 33. Overzicht door templates - herhaling <?php echo Jlayouts::render('content.heading', array('title' => $this-> <section class="section section__vennoot"> <div class="container"> <div class="section__content section__content--vennoot"> <div class="block__vennoot-top"> <?php echo $this->loadTemplate('top'); ?> </div> <div class="block__vennoot-main"> <?php echo $this->item->event->beforeDisplayContent; ?> <?php echo $this->loadTemplate('body'); ?> <?php echo $this->item->event->afterDisplayContent; ?> </div> <div class="block__vennoot-bottom"> <?php echo $this->loadTemplate('bottom-opdrachten'); ?> <?php echo $this->loadTemplate('bottom-publicaties'); ? </div> </div> <div class="section__content section__content--aside"> <div class="block__vennoot-image"> <?php echo $this->loadTemplate('image'); ?> </div> <?php echo $this->loadTemplate('aside'); ?> /di JUG Bussum okt 2017 :: Custom Fields - the next level - 33 of 56
  • 34. loadTemplate('top') html/com_content/article/vennoot_top.php JUG Bussum okt 2017 :: Custom Fields - the next level - 34 of 56
  • 36. Weergave in beheer van artikel Inhoud > Artikelen JUG Bussum okt 2017 :: Custom Fields - the next level - 36 of 56
  • 37. Overzicht van de Custom Fields Inhoud > Velden JUG Bussum okt 2017 :: Custom Fields - the next level - 37 of 56
  • 38. Oproepen in een override <?php echo $this->item->jcfields[2]->value; ?> JUG Bussum okt 2017 :: Custom Fields - the next level - 38 of 56
  • 39. Oproepen in een override <?php echo $this->item->jcfields[2]->value; ?> 2? Wat is 2? Veldnaam quote zou handiger zijn toch? JUG Bussum okt 2017 :: Custom Fields - the next level - 39 of 56
  • 40. mapping aanmaken van naam -> id foreach ($this->item->jcfields as $jcfield) { $this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id; } $jcfield_name_id_map = $this->item->jcfield_name_id_map; echo $this->item->jcfields[$jcfield_name_id_map['quote']]->value; JUG Bussum okt 2017 :: Custom Fields - the next level - 40 of 56
  • 41. loadTemplate('top') html/com_content/article/vennoot_top.php <?php foreach ($this->item->jcfields as $jcfield) { $this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id; } $jcfield_name_id_map = $this->item->jcfield_name_id_map; ?> <div class="block__vennoot-top-headline"> <?php if (!empty($quote = $this->item->jcfields[$jcfield_name_id_map['quote']]->value)) { echo $quote; } ?> </div> Herhalen voor LinkedIn, Telefoon en E-mail JUG Bussum okt 2017 :: Custom Fields - the next level - 41 of 56
  • 42. loadTemplate('body') html/com_content/article/vennoot_body.php JUG Bussum okt 2017 :: Custom Fields - the next level - 42 of 56
  • 43. loadTemplate('body') html/com_content/article/vennoot_body.php foreach ($this->item->jcfields as $jcfield) { $this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id; } $jcfield_name_id_map = $this->item->jcfield_name_id_map; $fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem if ($this->item->language == 'en-GB') { $fields = array('background-and-experience','leadership-vision-and- } foreach ($fields as $field) { $vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]] if ($vennoot_body->value) { echo JText::_('<h2>' . $vennoot_body->title . '</h2>'); echo JText::_($vennoot_body->value); } } JUG Bussum okt 2017 :: Custom Fields - the next level - 43 of 56
  • 44. dafuq? JUG Bussum okt 2017 :: Custom Fields - the next level - 44 of 56
  • 45. loadTemplate('body') html/com_content/article/vennoot_body.php foreach ($this->item->jcfields as $jcfield) { $this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id; } $jcfield_name_id_map = $this->item->jcfield_name_id_map; $fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem if ($this->item->language == 'en-GB') { $fields = array('background-and-experience','leadership-vision-and- } foreach ($fields as $field) { $vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]] if ($vennoot_body->value) { echo JText::_('<h2>' . $vennoot_body->title . '</h2>'); echo JText::_($vennoot_body->value); } } JUG Bussum okt 2017 :: Custom Fields - the next level - 45 of 56
  • 46. loadTemplate('body') html/com_content/article/vennoot_body.php foreach ($this->item->jcfields as $jcfield) { $this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id; } $jcfield_name_id_map = $this->item->jcfield_name_id_map; $fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem if ($this->item->language == 'en-GB') { $fields = array('background-and-experience','leadership-vision-and- } foreach ($fields as $field) { $vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]] if ($vennoot_body->value) { echo JText::_('<h2>' . $vennoot_body->title . '</h2>'); echo JText::_($vennoot_body->value); } } JUG Bussum okt 2017 :: Custom Fields - the next level - 46 of 56
  • 47. loadTemplate('body') html/com_content/article/vennoot_body.php foreach ($this->item->jcfields as $jcfield) { $this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id; } $jcfield_name_id_map = $this->item->jcfield_name_id_map; $fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem if ($this->item->language == 'en-GB') { $fields = array('background-and-experience','leadership-vision-and- } foreach ($fields as $field) { $vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]] if ($vennoot_body->value) { echo JText::_('<h2>' . $vennoot_body->title . '</h2>'); echo JText::_($vennoot_body->value); } } JUG Bussum okt 2017 :: Custom Fields - the next level - 47 of 56
  • 48. loadTemplate('body') html/com_content/article/vennoot_body.php foreach ($this->item->jcfields as $jcfield) { $this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id; } $jcfield_name_id_map = $this->item->jcfield_name_id_map; $fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem if ($this->item->language == 'en-GB') { $fields = array('background-and-experience','leadership-vision-and- } foreach ($fields as $field) { $vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]] if ($vennoot_body->value) { echo JText::_('<h2>' . $vennoot_body->title . '</h2>'); echo JText::_($vennoot_body->value); } } JUG Bussum okt 2017 :: Custom Fields - the next level - 48 of 56
  • 49. loadTemplate('body') html/com_content/article/vennoot_body.php foreach ($this->item->jcfields as $jcfield) { $this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id; } $jcfield_name_id_map = $this->item->jcfield_name_id_map; $fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem if ($this->item->language == 'en-GB') { $fields = array('background-and-experience','leadership-vision-and- } foreach ($fields as $field) { $vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]] if ($vennoot_body->value) { echo JText::_('<h2>' . $vennoot_body->title . '</h2>'); echo JText::_($vennoot_body->value); } } JUG Bussum okt 2017 :: Custom Fields - the next level - 49 of 56
  • 50. loadTemplate('body') html/com_content/article/vennoot_body.php foreach ($this->item->jcfields as $jcfield) { $this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id; } $jcfield_name_id_map = $this->item->jcfield_name_id_map; $fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem if ($this->item->language == 'en-GB') { $fields = array('background-and-experience','leadership-vision-and- } foreach ($fields as $field) { $vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]] if ($vennoot_body->value) { echo JText::_('<h2>' . $vennoot_body->title . '</h2>'); echo JText::_($vennoot_body->value); } } JUG Bussum okt 2017 :: Custom Fields - the next level - 50 of 56
  • 51. loadTemplate('body') html/com_content/article/vennoot_body.php foreach ($this->item->jcfields as $jcfield) { $this->item->jcfield_name_id_map[$jcfield->name] = $jcfield->id; } $jcfield_name_id_map = $this->item->jcfield_name_id_map; $fields = array('achtergrond-en-ervaring','leiderschapsvisie-en-managem if ($this->item->language == 'en-GB') { $fields = array('background-and-experience','leadership-vision-and- } foreach ($fields as $field) { $vennoot_body = $this->item->jcfields[$jcfield_name_id_map[$field]] if ($vennoot_body->value) { echo JText::_('<h2>' . $vennoot_body->title . '</h2>'); echo JText::_($vennoot_body->value); } } JUG Bussum okt 2017 :: Custom Fields - the next level - 51 of 56
  • 52. Het resultaat JUG Bussum okt 2017 :: Custom Fields - the next level - 52 of 56
  • 53. Het resultaat - Engels JUG Bussum okt 2017 :: Custom Fields - the next level - 53 of 56
  • 54. Overzicht door templates - herhaling <?php echo Jlayouts::render('content.heading', array('title' => $this-> <section class="section section__vennoot"> <div class="container"> <div class="section__content section__content--vennoot"> <div class="block__vennoot-top"> <?php echo $this->loadTemplate('top'); ?> </div> <div class="block__vennoot-main"> <?php echo $this->item->event->beforeDisplayContent; ?> <?php echo $this->loadTemplate('body'); ?> <?php echo $this->item->event->afterDisplayContent; ?> </div> <div class="block__vennoot-bottom"> <?php echo $this->loadTemplate('bottom-opdrachten'); ?> <?php echo $this->loadTemplate('bottom-publicaties'); ? </div> </div> <div class="section__content section__content--aside"> <div class="block__vennoot-image"> <?php echo $this->loadTemplate('image'); ?> </div> <?php echo $this->loadTemplate('aside'); ?> /di JUG Bussum okt 2017 :: Custom Fields - the next level - 54 of 56
  • 55. loadTemplate('image') html/com_content/article/vennoot_image.php <?php $images = json_decode($this->item->images); if(isset($images->image_teammember) && !empty($images->image_teammember { echo '<figure>'; echo JHtml::_('image', $images->image_teammember, $this->item->titl echo '</figure>'; } JUG Bussum okt 2017 :: Custom Fields - the next level - 55 of 56
  • 56. Dank voor jullie aandacht Hans Kuijpers @hans2103 JUG Bussum okt 2017 :: Custom Fields - the next level - 56 of 56