BUILD YOUR OWN custom field Joomladay NL 2018 #jd18nl I AM EliSa - - PowerPoint PPT Presentation

build your own custom field
SMART_READER_LITE
LIVE PREVIEW

BUILD YOUR OWN custom field Joomladay NL 2018 #jd18nl I AM EliSa - - PowerPoint PPT Presentation

BUILD YOUR OWN custom field Joomladay NL 2018 #jd18nl I AM EliSa Twitter: @elisasophia HOW CAN I CONTROL THE OUTPUT? 1. CREATE AN OVERRIDE OF A VIEW OR LAYOUT 2. CREATE AN OVERRIDE OF A FIELDS PLUGIN 3. MEDIA OVERRIDES 4.


slide-1
SLIDE 1

BUILD YOUR OWN custom field

Joomladay NL 2018 #jd18nl

slide-2
SLIDE 2

I AM EliSa

Twitter: @elisasophia

slide-3
SLIDE 3

1. CREATE AN OVERRIDE OF A VIEW OR LAYOUT


  • 2. CREATE AN OVERRIDE 


OF A FIELDS PLUGIN


  • 3. MEDIA OVERRIDES

  • 4. CREATE AN OWN

CUSTOM FIELD PLUGIN HOW CAN I CONTROL THE OUTPUT?

slide-4
SLIDE 4

EXAMPLE: VIEW OVERRIDE / ALTERNATE LAYOUT

USE THE FIELD VALUE IN YOUR OVERRIDE TO CHANGE THE OUTPUT ON YOUR PAGE

protostar html com_content article default.php

<?php echo $this->data->jcfields[21]->value; ?> <?php echo $customFields[‘myfield']->value; ?>

If you map the fields to the field-alias you can use something like that:

slide-5
SLIDE 5

// call the user object $user = JFactory::getUser($this->item->created_by); JEventDispatcher::getInstance()->trigger('onContentPrepare', array(‘com_users.user',&$user,&$user->params, 0 )); // map the fields $userFields = $user->jcfields; foreach ($userFields as $userField) { $userFields[$userField->name] = $userField; } // transform value to rgb $color = $userFields['companycolor']->value; list($r, $g, $b) = sscanf($color, "#%02x%02x%02x"); $rgbcolor = $r.','.$g.','.$b; // define css $css = "body.site { background:".$color ."; }\n"; $css .= ".companybox { background-color:rgba(". $rgbcolor .",0.5) }\n"; // call document object $doc = JFactory::getDocument(); // add local style declaration $doc->addStyleDeclaration($css, $type= 'text/css');

slide-6
SLIDE 6

protostar html layouts com_fields field render.php fields render.php

EXAMPLE: LAYOUT OVERRIDE

CREATE A Global LAYOUT OVERRIDE 
 OF THE FIELD Or FIelds ContAINER

slide-7
SLIDE 7

protostar html layouts com_content field render.php fields render.php

EXAMPLE: LAYOUT OVERRIDE

CREATE A COMPONENT-WISE LAYOUT OVERRIDE OF THE FIELD Or FIelds ContAINER

slide-8
SLIDE 8

protostar html layouts com_content field netherlands.php {field 1, netherlands}

EXAMPLE: ALTERNATE LAYOUT

CREATE AN ALTERNATE LAYOUT OF THE FIELD 
 (GLOBALLY OR COMPONENT-WISE)

slide-9
SLIDE 9

EXAMPLE: PLUGIN OVERRIDE


CREATE aN OVERRIDE OF THE FIELDS PLUGIN ITSELF AND PLACE IT IN YOUR TEMPLATE.

plugins fields imagelist tmpl imagelist.php protostar html plg_fields_imagelist imagelist.php

slide-10
SLIDE 10

media system css fields calendar.css

protostar css system fields calendar.css EXAMPLE: MEDIA OVERRIDE


CREATE A MEDIA OVERRIDE TO 
 CONTROL THE CSS OF EXISTING FIELDS

slide-11
SLIDE 11

CREATE YOUR OWN FIELD PLUGIN

1. EASIER INSTALLATION

  • 2. Easier to KEEP IT UP To DATE 


THROUGH YOUR PROJECTS


  • 3. EASIER SHARING wiTH OTHERS
  • 4. MAKE CHANGES EASIER AND FASTER
slide-12
SLIDE 12

Galleries Sliders

Lightboxes

VIdeo embed

DaTEPICKER

Calendars

AUTOCOMPLETE

weather Widget

Audio Embed

PDF Display

slideshare

Maps

WHAT CAN 
 I CREATE?

slide-13
SLIDE 13

DOWNLOAD BASIC EXAMPLE PROJECT

https://github.com
 /coolcat-creations/ plg_fields_addresscomplete

slide-14
SLIDE 14

BASIC
 STRUCTURE

addresscomplete.xml addresscomplete.php params addresscomplete.xml fields addresscomplete.php tmpl addresscompletephp language en-GB en-GB.plg_fields_addresscomplete.ini en-GB.plg_fields_addresscomplete.sys.ini

slide-15
SLIDE 15

The file is the manifest file 
 for your fields plugin.

  • All important informations for the installation
  • Global field parameters
  • List Update Server
  • List Post Install Scripts

ADDRESSCOMPLETE.xml

slide-16
SLIDE 16

PARAMS/ ADDRESSCOMPLETE.xml

  • Possible to add 


field specific parameters here

slide-17
SLIDE 17

<?xml version="1.0" encoding="utf-8"?> <form> <fields name="fieldparams"> <fieldset name=“fieldparams"> // Here you can add fields </fieldset> </fields> </form>

slide-18
SLIDE 18
  • Create the input field
  • Extending a Field or Custom Form Field


https://docs.joomla.org/Creating_a_custom_form_field_type

  • r short-url: https://bit.ly/2GTbOCq

FIELDS/ ADDRESSCOMPLETE.PHP

slide-19
SLIDE 19

Documentation Algolia: https://community.algolia.com/places/ Example field is a simple text field

  • extending JFormText Field
  • adding a special class
  • adding a script

class JFormFieldAdresscomplete extends JFormFieldText
 Namespaced Example will follow soon!

FIELDS/ ADDRESSCOMPLETE.PHP

slide-20
SLIDE 20

INITIALISE THE FIELD PLUGIN ADDRESSCOMPLETE.php

To show the field at all we have to initialise 
 it in the main plugin file defined('_JEXEC') or die; JLoader::import('components.com_fields.libra ries.fieldsplugin', JPATH_ADMINISTRATOR); class PlgFieldsAddresscomplete extends FieldsPlugin { }

slide-21
SLIDE 21

TMPL /ADDRESSCOMPLETE.PHP

In the example the user entry is saved as value and will be returned in the frontend like that: defined('_JEXEC') or die; if (!$field->value) { return; } echo $field->value;

slide-22
SLIDE 22

READY! INPUT

slide-23
SLIDE 23

READY! OUTPUT

slide-24
SLIDE 24

BORING!

slide-25
SLIDE 25

GET CREATIVE

Do MORE!

travel.Custom-FielDs.NET

Different uses of the user input 
 value “Address”

slide-26
SLIDE 26

TMPL/SUBTEMPLATES
 /FLICKR.PHP

ADDING A FLICKR GALLERY

slide-27
SLIDE 27

TMPL/SUBTEMPLAteS /WEATHER.PHP

ADDING A FORECAST

slide-28
SLIDE 28

TMPL/SUBTEMPLATES /MAP.PHP

ADDING A MAP

slide-29
SLIDE 29

ANOTHER TUTORIAL OWL CAROUSEL GALLERY

coolcat-creations.com/blog