SlideShare a Scribd company logo
1 of 37
Building Custom Applications
using Joomla! & Fabrik
Presentation by Tessa Mero – Oct 20, 2015
2
College Instructor
Open Source Contributor
Previous Systems Applications Dev
Who Am I?
3
• Why Use Joomla!
• What is Fabrik
• Creating Data Models
• Steps in Systems Development
• Create a Rudimentary Movie Rental Application
• Creating Fabrik Forms/Lists/Elements/Groups for Your Application
• Extending Your Application
• View Your Finished Product!
OVERVIEW
4
Finished Product
5
• Easy to install and set up (assuming you don’t use a crappy host)
 Set up a free subdomain and hosting account at cloudaccess.net
 Set up a free subdomain/hosting at Joomla.com (with restrictions)
• Lots of documentation especially for building your own extensions
 And several great options for using custom application building tools, such
as Fabrik, Seblod, and SobiPro. (I’m a fan of Fabrik obviously) 
• The community is amazing and very welcoming
• It’s Open Source and Downloaded over 50 MILLION times!
• Over 7,455 extensions on the Joomla Extensions Directory (JED)
• Core Devs Working Hard on New Architecture of Joomla 4
Why Use Joomla?
6
• Installable Extension for Joomla called a Component
• A Custom Application Builder
• Over 126 plugins and counting available to extend
• Check out their website at http://fabrikar.com
• You can build anywhere from a very advanced user application to a
real estate application. Simply, you can build anything!
• A lot of Joomla businesses use Fabrik for custom apps for a living!
• Integrate other Joomla Extensions easily to Fabrik
 Lots of existing integrations, and easily create your own (connect tables)
What is Fabrik?
7
• Work with clients (or users) to determine their workflow to
understand how to build the application
• Create diagrams, flowcharts, and any tools to have visual diagrams
of the workflow of the business
• Run through it with every team or department until every group
agrees.
• Avoid Scope Creep!!!!
• Build the Application!
Planning Ahead – Systems Development Process
8
• Needs to have database that stores information for 3 things: DVDs,
Customers, and Rentals
• Each DVD needs to have a QR code for scanning
• You can search customers by Email or Last Name
• Needs to have main page to be Customer list and what each has
rented out
Keeping it Simple!
Rudimentary System – Video Rental Application 1.0
9
Create Your Database Design – Part 1 – Data Diagram
10
• Define each column type (metadata): Plan Ahead.
 Date? Integer Only? Any characters allowed? Character limit?
• Plan Out Your Views
 How do you want your data displayed?
Create Your Database Design – Part 2 - MetaData
11
Overview of Fabrik in the Backend
Time to Implement!
13
Create Your Fabrik Forms
14
View Your Fabrik Lists
15
View PHPMyAdmin
16
What if I have Existing Tables?
17
View Your Fabrik Elements (Fields) – Part 1
18
View Your Fabrik Elements (Fields) – Part 2
19
Create Your Fabrik Elements
20
PHPMyAdmin View
21
Create Elements for Movies table
22
Create Elements for Rented Table
23
• We will be working with the “LEFT JOIN” keyword
 Returns all rows from left table (the table you are joining to) with any
matching rows from the right table (the other table). If there are no
matching data, it will show as NULL/Blank.
• Other Join Types
 Inner – Joins only matching records
 Right – Opposite of Left Join! (return all rows from right table with
matching from left table. Null in the left side when there is no match)
What is a Database Join?
24
Create Menus – View Your 3 Tables
25
Create a Database Join in Your List
26
What did the DatabaseJoin do?
Looking Further - Extending Your
Application
28
Adding Filters - Edit Element (Name and Email)
29
List View – Filters Enabled
30
List View – Edit movie_id field
31
Elements - Adding JavaScript Field Validations
32
• Groups are a collection of elements
• Can be used to create tabbed form data
• Considered similar to <fieldset> html element
• Every Element needs to be assigned to a group
• You can Set Groups to be Repeated Data if it’s a one to many
relationship
 Setting a group of elements on a table to “repeated data” will create a
new database table by default
 Setting a database join to “repeated data” will remain the same, but allow
you to add many items for each parent data
Working with Groups (optional)
33
Repeated Data – Rented Movies
34
Working With Access Levels
35
Template Overrides and Custom Coding
36
Menu Overrides - Custom Views
37
• Twitter: @TessaMero Follow me!!! :-D
• Website: http://tessamero.com
• Email: tessa.mero@joomla.org
Thank You!!! Questions?

More Related Content

What's hot

Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019J V
 
Linux Como Tudo Começou
Linux Como Tudo ComeçouLinux Como Tudo Começou
Linux Como Tudo Começouguestaa94fe
 
Object storage의 이해와 활용
Object storage의 이해와 활용Object storage의 이해와 활용
Object storage의 이해와 활용Seoro Kim
 
How to Hijack a Pizza Delivery Robot with Injection Flaws
How to Hijack a Pizza Delivery Robot with Injection FlawsHow to Hijack a Pizza Delivery Robot with Injection Flaws
How to Hijack a Pizza Delivery Robot with Injection FlawsSecurity Innovation
 
Árvores binárias
Árvores bináriasÁrvores binárias
Árvores bináriasLucas Santos
 
instalacion-y-configuracion-de-un-servidor-dns-bind-en-ubuntu
instalacion-y-configuracion-de-un-servidor-dns-bind-en-ubuntuinstalacion-y-configuracion-de-un-servidor-dns-bind-en-ubuntu
instalacion-y-configuracion-de-un-servidor-dns-bind-en-ubuntuRis Fernandez
 
Modelo documentacao-rede
Modelo documentacao-redeModelo documentacao-rede
Modelo documentacao-redeRod Deville
 
Intro to the Alfresco Public API
Intro to the Alfresco Public APIIntro to the Alfresco Public API
Intro to the Alfresco Public APIJeff Potts
 
O que é OpenShift ?
O que é OpenShift ?O que é OpenShift ?
O que é OpenShift ?Raul Leite
 
DSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDuraSpace
 
Capitulo i equipamento de rede como funcionam os switches lan
Capitulo i equipamento de rede como funcionam os switches lanCapitulo i equipamento de rede como funcionam os switches lan
Capitulo i equipamento de rede como funcionam os switches lanPortal_do_Estudante_Redes
 
Building and deploying PHP applications with Phing
Building and deploying PHP applications with PhingBuilding and deploying PHP applications with Phing
Building and deploying PHP applications with PhingMichiel Rook
 
Sistema de arquivos - HPFS e ReiserFS/4
Sistema de arquivos - HPFS e ReiserFS/4Sistema de arquivos - HPFS e ReiserFS/4
Sistema de arquivos - HPFS e ReiserFS/4Anderson Rodrigues
 
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...Leinylson Fontinele
 
Aula04 - cabeamento estruturado - parte 01
Aula04 - cabeamento estruturado - parte 01Aula04 - cabeamento estruturado - parte 01
Aula04 - cabeamento estruturado - parte 01Carlos Veiga
 
Aula05 - cabeamento estruturado - parte 02
Aula05 - cabeamento estruturado - parte 02Aula05 - cabeamento estruturado - parte 02
Aula05 - cabeamento estruturado - parte 02Carlos Veiga
 
Sistemas de arquivos
Sistemas de arquivosSistemas de arquivos
Sistemas de arquivosJoao Ferreira
 

What's hot (20)

06 - Servidor Apache
06 - Servidor Apache06 - Servidor Apache
06 - Servidor Apache
 
Administração de Redes Linux - II
Administração de Redes Linux - IIAdministração de Redes Linux - II
Administração de Redes Linux - II
 
Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019
 
Linux Como Tudo Começou
Linux Como Tudo ComeçouLinux Como Tudo Começou
Linux Como Tudo Começou
 
Object storage의 이해와 활용
Object storage의 이해와 활용Object storage의 이해와 활용
Object storage의 이해와 활용
 
How to Hijack a Pizza Delivery Robot with Injection Flaws
How to Hijack a Pizza Delivery Robot with Injection FlawsHow to Hijack a Pizza Delivery Robot with Injection Flaws
How to Hijack a Pizza Delivery Robot with Injection Flaws
 
Árvores binárias
Árvores bináriasÁrvores binárias
Árvores binárias
 
instalacion-y-configuracion-de-un-servidor-dns-bind-en-ubuntu
instalacion-y-configuracion-de-un-servidor-dns-bind-en-ubuntuinstalacion-y-configuracion-de-un-servidor-dns-bind-en-ubuntu
instalacion-y-configuracion-de-un-servidor-dns-bind-en-ubuntu
 
Modelo documentacao-rede
Modelo documentacao-redeModelo documentacao-rede
Modelo documentacao-rede
 
Intro to the Alfresco Public API
Intro to the Alfresco Public APIIntro to the Alfresco Public API
Intro to the Alfresco Public API
 
O que é OpenShift ?
O que é OpenShift ?O que é OpenShift ?
O que é OpenShift ?
 
DSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & Configuration
 
Historia Sistema Operacional Linux
Historia Sistema Operacional LinuxHistoria Sistema Operacional Linux
Historia Sistema Operacional Linux
 
Capitulo i equipamento de rede como funcionam os switches lan
Capitulo i equipamento de rede como funcionam os switches lanCapitulo i equipamento de rede como funcionam os switches lan
Capitulo i equipamento de rede como funcionam os switches lan
 
Building and deploying PHP applications with Phing
Building and deploying PHP applications with PhingBuilding and deploying PHP applications with Phing
Building and deploying PHP applications with Phing
 
Sistema de arquivos - HPFS e ReiserFS/4
Sistema de arquivos - HPFS e ReiserFS/4Sistema de arquivos - HPFS e ReiserFS/4
Sistema de arquivos - HPFS e ReiserFS/4
 
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
 
Aula04 - cabeamento estruturado - parte 01
Aula04 - cabeamento estruturado - parte 01Aula04 - cabeamento estruturado - parte 01
Aula04 - cabeamento estruturado - parte 01
 
Aula05 - cabeamento estruturado - parte 02
Aula05 - cabeamento estruturado - parte 02Aula05 - cabeamento estruturado - parte 02
Aula05 - cabeamento estruturado - parte 02
 
Sistemas de arquivos
Sistemas de arquivosSistemas de arquivos
Sistemas de arquivos
 

Viewers also liked

Build custom applications with fabrik
Build custom applications with fabrikBuild custom applications with fabrik
Build custom applications with fabrikRodger Fields
 
Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3Gunjan Patel
 
How to create a joomla component from scratch
How to create a joomla component from scratchHow to create a joomla component from scratch
How to create a joomla component from scratchTim Plummer
 
Develop Basic joomla! MVC component for version 3
Develop Basic joomla! MVC component for version 3Develop Basic joomla! MVC component for version 3
Develop Basic joomla! MVC component for version 3Gunjan Patel
 
Building Custom Applications with Fabrik
Building Custom Applications with FabrikBuilding Custom Applications with Fabrik
Building Custom Applications with FabrikRobbie Adair
 
Fabrik - Joomla app builder
Fabrik - Joomla app builderFabrik - Joomla app builder
Fabrik - Joomla app builderFlorian Pinard
 
DevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot WorkshopDevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot WorkshopTessa Mero
 
JDeveloper - create component
JDeveloper - create componentJDeveloper - create component
JDeveloper - create componentjcmsdevelopment
 
JDeveloper - table relations
JDeveloper - table relationsJDeveloper - table relations
JDeveloper - table relationsjcmsdevelopment
 
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
 
SharePoint Server 2013 - Digital Asset Management System
SharePoint Server 2013 - Digital Asset Management SystemSharePoint Server 2013 - Digital Asset Management System
SharePoint Server 2013 - Digital Asset Management SystemAhmed Said Moussa
 
Joomla componenten bouwen met Component Creator
Joomla componenten bouwen met Component CreatorJoomla componenten bouwen met Component Creator
Joomla componenten bouwen met Component CreatorRené Kreijveld
 

Viewers also liked (12)

Build custom applications with fabrik
Build custom applications with fabrikBuild custom applications with fabrik
Build custom applications with fabrik
 
Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3
 
How to create a joomla component from scratch
How to create a joomla component from scratchHow to create a joomla component from scratch
How to create a joomla component from scratch
 
Develop Basic joomla! MVC component for version 3
Develop Basic joomla! MVC component for version 3Develop Basic joomla! MVC component for version 3
Develop Basic joomla! MVC component for version 3
 
Building Custom Applications with Fabrik
Building Custom Applications with FabrikBuilding Custom Applications with Fabrik
Building Custom Applications with Fabrik
 
Fabrik - Joomla app builder
Fabrik - Joomla app builderFabrik - Joomla app builder
Fabrik - Joomla app builder
 
DevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot WorkshopDevNet 1056 WIT Spark API and Chat Bot Workshop
DevNet 1056 WIT Spark API and Chat Bot Workshop
 
JDeveloper - create component
JDeveloper - create componentJDeveloper - create component
JDeveloper - create component
 
JDeveloper - table relations
JDeveloper - table relationsJDeveloper - table relations
JDeveloper - table relations
 
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
 
SharePoint Server 2013 - Digital Asset Management System
SharePoint Server 2013 - Digital Asset Management SystemSharePoint Server 2013 - Digital Asset Management System
SharePoint Server 2013 - Digital Asset Management System
 
Joomla componenten bouwen met Component Creator
Joomla componenten bouwen met Component CreatorJoomla componenten bouwen met Component Creator
Joomla componenten bouwen met Component Creator
 

Similar to Developing Custom Applications with Joomla! and Fabrik

Power BI vs Tableau
Power BI vs TableauPower BI vs Tableau
Power BI vs TableauDon Hyun
 
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...Srinath Reddy
 
Tableau Visual analytics complete deck 2
Tableau Visual analytics complete deck 2Tableau Visual analytics complete deck 2
Tableau Visual analytics complete deck 2Arun K
 
Tableau7 0prsentation-120704025343-phpapp02
Tableau7 0prsentation-120704025343-phpapp02Tableau7 0prsentation-120704025343-phpapp02
Tableau7 0prsentation-120704025343-phpapp02Rahul Jain
 
How to broadcast a b ex report through e
How to broadcast a b ex report through eHow to broadcast a b ex report through e
How to broadcast a b ex report through eZaynab Fadlallah
 
Data Visualization_ Power BI vs. Tableau.pptx
Data Visualization_ Power BI vs. Tableau.pptxData Visualization_ Power BI vs. Tableau.pptx
Data Visualization_ Power BI vs. Tableau.pptxHakimAlHuribi
 
Why Information Architecture is Vital for Office 365 Adoption and Governance ...
Why Information Architecture is Vital for Office 365 Adoption and Governance ...Why Information Architecture is Vital for Office 365 Adoption and Governance ...
Why Information Architecture is Vital for Office 365 Adoption and Governance ...J. Kevin Parker, CIP
 
Audit your existing code in Domino - Collabsphere2022_v5.pdf
Audit your existing code in Domino  - Collabsphere2022_v5.pdfAudit your existing code in Domino  - Collabsphere2022_v5.pdf
Audit your existing code in Domino - Collabsphere2022_v5.pdfDominiquePerarnaud
 
Tableau overview presentation
Tableau overview presentationTableau overview presentation
Tableau overview presentationSuresh Singh
 
Tableau Overview Presentation.pptx
Tableau Overview Presentation.pptxTableau Overview Presentation.pptx
Tableau Overview Presentation.pptxSrikanthS494888
 
Getting Started Using ACL in Your Next Audit
Getting Started Using ACL in Your Next AuditGetting Started Using ACL in Your Next Audit
Getting Started Using ACL in Your Next AuditJim Kaplan CIA CFE
 
Tableau Basic Questions
Tableau Basic QuestionsTableau Basic Questions
Tableau Basic QuestionsSooraj Vinodan
 
Microsoft office 365 & Knowledge Management
Microsoft office 365 & Knowledge ManagementMicrosoft office 365 & Knowledge Management
Microsoft office 365 & Knowledge Managementsarvenaz arianfar
 
Introducing file maker pro 12
Introducing file maker pro 12Introducing file maker pro 12
Introducing file maker pro 12Juragan Pitware
 

Similar to Developing Custom Applications with Joomla! and Fabrik (20)

Power BI vs Tableau
Power BI vs TableauPower BI vs Tableau
Power BI vs Tableau
 
Power bi vs tableau
Power bi vs tableauPower bi vs tableau
Power bi vs tableau
 
Test data generation
Test data generationTest data generation
Test data generation
 
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
 
Tableau Visual analytics complete deck 2
Tableau Visual analytics complete deck 2Tableau Visual analytics complete deck 2
Tableau Visual analytics complete deck 2
 
05 entity framework
05 entity framework05 entity framework
05 entity framework
 
Project report
Project report Project report
Project report
 
Tableau7 0prsentation-120704025343-phpapp02
Tableau7 0prsentation-120704025343-phpapp02Tableau7 0prsentation-120704025343-phpapp02
Tableau7 0prsentation-120704025343-phpapp02
 
How to broadcast a b ex report through e
How to broadcast a b ex report through eHow to broadcast a b ex report through e
How to broadcast a b ex report through e
 
Data Visualization_ Power BI vs. Tableau.pptx
Data Visualization_ Power BI vs. Tableau.pptxData Visualization_ Power BI vs. Tableau.pptx
Data Visualization_ Power BI vs. Tableau.pptx
 
Fundamentals of Computing Chapter 8
Fundamentals of Computing Chapter 8Fundamentals of Computing Chapter 8
Fundamentals of Computing Chapter 8
 
Why Information Architecture is Vital for Office 365 Adoption and Governance ...
Why Information Architecture is Vital for Office 365 Adoption and Governance ...Why Information Architecture is Vital for Office 365 Adoption and Governance ...
Why Information Architecture is Vital for Office 365 Adoption and Governance ...
 
Audit your existing code in Domino - Collabsphere2022_v5.pdf
Audit your existing code in Domino  - Collabsphere2022_v5.pdfAudit your existing code in Domino  - Collabsphere2022_v5.pdf
Audit your existing code in Domino - Collabsphere2022_v5.pdf
 
Tableau overview presentation
Tableau overview presentationTableau overview presentation
Tableau overview presentation
 
Tableau Overview Presentation.pptx
Tableau Overview Presentation.pptxTableau Overview Presentation.pptx
Tableau Overview Presentation.pptx
 
Database
DatabaseDatabase
Database
 
Getting Started Using ACL in Your Next Audit
Getting Started Using ACL in Your Next AuditGetting Started Using ACL in Your Next Audit
Getting Started Using ACL in Your Next Audit
 
Tableau Basic Questions
Tableau Basic QuestionsTableau Basic Questions
Tableau Basic Questions
 
Microsoft office 365 & Knowledge Management
Microsoft office 365 & Knowledge ManagementMicrosoft office 365 & Knowledge Management
Microsoft office 365 & Knowledge Management
 
Introducing file maker pro 12
Introducing file maker pro 12Introducing file maker pro 12
Introducing file maker pro 12
 

More from Tessa Mero

Developer relations KPIs
Developer relations KPIsDeveloper relations KPIs
Developer relations KPIsTessa Mero
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
5 ways to simply add media accessibility (m16y) to your jamstack app
5 ways to simply add media accessibility (m16y) to your jamstack app5 ways to simply add media accessibility (m16y) to your jamstack app
5 ways to simply add media accessibility (m16y) to your jamstack appTessa Mero
 
I'm Graduating Soon. Help! How Do I Get into the Tech Field?
I'm Graduating Soon. Help! How Do I Get into the Tech Field?I'm Graduating Soon. Help! How Do I Get into the Tech Field?
I'm Graduating Soon. Help! How Do I Get into the Tech Field?Tessa Mero
 
Optimize media performance in wordpress with cloudinary
Optimize media performance in wordpress with cloudinaryOptimize media performance in wordpress with cloudinary
Optimize media performance in wordpress with cloudinaryTessa Mero
 
Joining a developer experts program to leverage your career
Joining a developer experts program to leverage your careerJoining a developer experts program to leverage your career
Joining a developer experts program to leverage your careerTessa Mero
 
Finding the Jelly in the JAMstack
Finding the Jelly in the JAMstackFinding the Jelly in the JAMstack
Finding the Jelly in the JAMstackTessa Mero
 
Building APIs the serverless way
Building APIs the serverless wayBuilding APIs the serverless way
Building APIs the serverless wayTessa Mero
 
Don't let FaaS do a BaaS job
Don't let FaaS do a BaaS jobDon't let FaaS do a BaaS job
Don't let FaaS do a BaaS jobTessa Mero
 
Finding the jelly in the jam stack
Finding the jelly in the jam stackFinding the jelly in the jam stack
Finding the jelly in the jam stackTessa Mero
 
Chatbots Workshop SF JS Meetup May 2018
Chatbots Workshop SF JS Meetup May 2018Chatbots Workshop SF JS Meetup May 2018
Chatbots Workshop SF JS Meetup May 2018Tessa Mero
 
ChatOps Workshop
ChatOps WorkshopChatOps Workshop
ChatOps WorkshopTessa Mero
 
Cisco CMX Location Services
Cisco CMX Location ServicesCisco CMX Location Services
Cisco CMX Location ServicesTessa Mero
 
DeveloperWeek2018 - Let's Build a Chatbot
DeveloperWeek2018 - Let's Build a ChatbotDeveloperWeek2018 - Let's Build a Chatbot
DeveloperWeek2018 - Let's Build a ChatbotTessa Mero
 
Learn to Code with JavaScript - Choose Your Own Adventures
Learn to Code with JavaScript - Choose Your Own AdventuresLearn to Code with JavaScript - Choose Your Own Adventures
Learn to Code with JavaScript - Choose Your Own AdventuresTessa Mero
 
Revolutionize Your Workflow with ChatOps
Revolutionize Your Workflow with ChatOpsRevolutionize Your Workflow with ChatOps
Revolutionize Your Workflow with ChatOpsTessa Mero
 
Let's Build a Chatbot
Let's Build a ChatbotLet's Build a Chatbot
Let's Build a ChatbotTessa Mero
 
Building Chatbots
Building ChatbotsBuilding Chatbots
Building ChatbotsTessa Mero
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsTessa Mero
 

More from Tessa Mero (20)

Developer relations KPIs
Developer relations KPIsDeveloper relations KPIs
Developer relations KPIs
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
5 ways to simply add media accessibility (m16y) to your jamstack app
5 ways to simply add media accessibility (m16y) to your jamstack app5 ways to simply add media accessibility (m16y) to your jamstack app
5 ways to simply add media accessibility (m16y) to your jamstack app
 
I'm Graduating Soon. Help! How Do I Get into the Tech Field?
I'm Graduating Soon. Help! How Do I Get into the Tech Field?I'm Graduating Soon. Help! How Do I Get into the Tech Field?
I'm Graduating Soon. Help! How Do I Get into the Tech Field?
 
Optimize media performance in wordpress with cloudinary
Optimize media performance in wordpress with cloudinaryOptimize media performance in wordpress with cloudinary
Optimize media performance in wordpress with cloudinary
 
Joining a developer experts program to leverage your career
Joining a developer experts program to leverage your careerJoining a developer experts program to leverage your career
Joining a developer experts program to leverage your career
 
Finding the Jelly in the JAMstack
Finding the Jelly in the JAMstackFinding the Jelly in the JAMstack
Finding the Jelly in the JAMstack
 
Building APIs the serverless way
Building APIs the serverless wayBuilding APIs the serverless way
Building APIs the serverless way
 
Don't let FaaS do a BaaS job
Don't let FaaS do a BaaS jobDon't let FaaS do a BaaS job
Don't let FaaS do a BaaS job
 
Finding the jelly in the jam stack
Finding the jelly in the jam stackFinding the jelly in the jam stack
Finding the jelly in the jam stack
 
Chatbots Workshop SF JS Meetup May 2018
Chatbots Workshop SF JS Meetup May 2018Chatbots Workshop SF JS Meetup May 2018
Chatbots Workshop SF JS Meetup May 2018
 
ChatOps Workshop
ChatOps WorkshopChatOps Workshop
ChatOps Workshop
 
Cisco CMX Location Services
Cisco CMX Location ServicesCisco CMX Location Services
Cisco CMX Location Services
 
DeveloperWeek2018 - Let's Build a Chatbot
DeveloperWeek2018 - Let's Build a ChatbotDeveloperWeek2018 - Let's Build a Chatbot
DeveloperWeek2018 - Let's Build a Chatbot
 
Learn to Code with JavaScript - Choose Your Own Adventures
Learn to Code with JavaScript - Choose Your Own AdventuresLearn to Code with JavaScript - Choose Your Own Adventures
Learn to Code with JavaScript - Choose Your Own Adventures
 
Revolutionize Your Workflow with ChatOps
Revolutionize Your Workflow with ChatOpsRevolutionize Your Workflow with ChatOps
Revolutionize Your Workflow with ChatOps
 
Let's Build a Chatbot
Let's Build a ChatbotLet's Build a Chatbot
Let's Build a Chatbot
 
Chatbots
ChatbotsChatbots
Chatbots
 
Building Chatbots
Building ChatbotsBuilding Chatbots
Building Chatbots
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
 

Recently uploaded

Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 

Recently uploaded (20)

Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 

Developing Custom Applications with Joomla! and Fabrik

  • 1. Building Custom Applications using Joomla! & Fabrik Presentation by Tessa Mero – Oct 20, 2015
  • 2. 2 College Instructor Open Source Contributor Previous Systems Applications Dev Who Am I?
  • 3. 3 • Why Use Joomla! • What is Fabrik • Creating Data Models • Steps in Systems Development • Create a Rudimentary Movie Rental Application • Creating Fabrik Forms/Lists/Elements/Groups for Your Application • Extending Your Application • View Your Finished Product! OVERVIEW
  • 5. 5 • Easy to install and set up (assuming you don’t use a crappy host)  Set up a free subdomain and hosting account at cloudaccess.net  Set up a free subdomain/hosting at Joomla.com (with restrictions) • Lots of documentation especially for building your own extensions  And several great options for using custom application building tools, such as Fabrik, Seblod, and SobiPro. (I’m a fan of Fabrik obviously)  • The community is amazing and very welcoming • It’s Open Source and Downloaded over 50 MILLION times! • Over 7,455 extensions on the Joomla Extensions Directory (JED) • Core Devs Working Hard on New Architecture of Joomla 4 Why Use Joomla?
  • 6. 6 • Installable Extension for Joomla called a Component • A Custom Application Builder • Over 126 plugins and counting available to extend • Check out their website at http://fabrikar.com • You can build anywhere from a very advanced user application to a real estate application. Simply, you can build anything! • A lot of Joomla businesses use Fabrik for custom apps for a living! • Integrate other Joomla Extensions easily to Fabrik  Lots of existing integrations, and easily create your own (connect tables) What is Fabrik?
  • 7. 7 • Work with clients (or users) to determine their workflow to understand how to build the application • Create diagrams, flowcharts, and any tools to have visual diagrams of the workflow of the business • Run through it with every team or department until every group agrees. • Avoid Scope Creep!!!! • Build the Application! Planning Ahead – Systems Development Process
  • 8. 8 • Needs to have database that stores information for 3 things: DVDs, Customers, and Rentals • Each DVD needs to have a QR code for scanning • You can search customers by Email or Last Name • Needs to have main page to be Customer list and what each has rented out Keeping it Simple! Rudimentary System – Video Rental Application 1.0
  • 9. 9 Create Your Database Design – Part 1 – Data Diagram
  • 10. 10 • Define each column type (metadata): Plan Ahead.  Date? Integer Only? Any characters allowed? Character limit? • Plan Out Your Views  How do you want your data displayed? Create Your Database Design – Part 2 - MetaData
  • 11. 11 Overview of Fabrik in the Backend
  • 16. 16 What if I have Existing Tables?
  • 17. 17 View Your Fabrik Elements (Fields) – Part 1
  • 18. 18 View Your Fabrik Elements (Fields) – Part 2
  • 21. 21 Create Elements for Movies table
  • 22. 22 Create Elements for Rented Table
  • 23. 23 • We will be working with the “LEFT JOIN” keyword  Returns all rows from left table (the table you are joining to) with any matching rows from the right table (the other table). If there are no matching data, it will show as NULL/Blank. • Other Join Types  Inner – Joins only matching records  Right – Opposite of Left Join! (return all rows from right table with matching from left table. Null in the left side when there is no match) What is a Database Join?
  • 24. 24 Create Menus – View Your 3 Tables
  • 25. 25 Create a Database Join in Your List
  • 26. 26 What did the DatabaseJoin do?
  • 27. Looking Further - Extending Your Application
  • 28. 28 Adding Filters - Edit Element (Name and Email)
  • 29. 29 List View – Filters Enabled
  • 30. 30 List View – Edit movie_id field
  • 31. 31 Elements - Adding JavaScript Field Validations
  • 32. 32 • Groups are a collection of elements • Can be used to create tabbed form data • Considered similar to <fieldset> html element • Every Element needs to be assigned to a group • You can Set Groups to be Repeated Data if it’s a one to many relationship  Setting a group of elements on a table to “repeated data” will create a new database table by default  Setting a database join to “repeated data” will remain the same, but allow you to add many items for each parent data Working with Groups (optional)
  • 33. 33 Repeated Data – Rented Movies
  • 35. 35 Template Overrides and Custom Coding
  • 36. 36 Menu Overrides - Custom Views
  • 37. 37 • Twitter: @TessaMero Follow me!!! :-D • Website: http://tessamero.com • Email: tessa.mero@joomla.org Thank You!!! Questions?

Editor's Notes

  1. FINISHED PRODUCT Customers Data with the Movies Rented information joined. The Rented movie information has a database join from the Movies table.
  2. 20 new extensions per day added to the directory
  3. To keep things very simple, this application will need to have a database that stores information for 3 things. DVD’s, Customers, and Rentals. There has to be a main page to manage with a customer list and what they have rented out. The application needs to send automated emails out everyday to customers with overdue rentals. Total development time: 1 hour. Note, this is only a basic edition of a video rental application. It would take a little bit more than an hour to make it very professional and ready to be used. It would also need scanning technology. Your homework would be to make a version 2.0 of this application.
  4. Go over every tabbed section. Lists – Shows the list of forms that you can manage the way it lists the data Forms – Shows the list of forms you have and you can manage your form options Groups – Manage groups of fields in each form, and manage the joined data to each form Elements – Manage the fields in each form Visualizations – Create graphical representation of your data Packages – Create all your fabrik/lists as one installable package to import into other fabrik sites Connections – Manage all your database connections. You can use as many databases as you want Schedule – Create Cron jobs to automate scripts
  5. This is the screen you will be on. At this point, you will have a fresh Joomla 3.4 installed. You’ll have Fabrik installed, which you can find on the Joomla Extensions Directory, and you will have a template installed and configured. If these are steps that you do not understand, come find me later on and I’ll help you get Joomla set up on your computer. You can also find me at the Joomla sponsor booth and I can get you set up!
  6. Your next step would be to click on the “Lists” tab on the Fabrik tools list. Your list automatically generates when you create a form. You can add elements (fields), edit the forms, and view the data from this view as well, but I will be showing the longer method to make things less confusing.
  7. As you can see, when you create a new form, it adds a new table in your Database.
  8. If you have existing database tables that you want to input into fabrik, you can go to “List” and create a new List. Then select a database table.
  9. So what happens after you create a form? Your next step would be to create elements, which are the fields of your form. The first thing you’ll need to do is click on “Elements” on the Fabrik tools. And filter by the Form you want to add elements to.
  10. You will notice that each form has 2 elements. The “id” and the “date_time” field. Every form you create will come with this by default. You can remove or unpublish the date_time field, but every form will have to have the “id” field, which is the primary key, or the unique identifier of the database table.
  11. I will demonstrate how to create elements on your form. Remember, elements are also known as fields in your database table. And another note: I have cropped the top part of the page, so it does say which element, form, or list you are working on, but I had no room to display it. There are a lot of options you can add to each element. In a production scenario, you’d have the city/state as dropdowns.
  12. So now we are creating fields to the movies tables. As for elements, you can have as many elements as you want, but if it becomes a long list and unmanagemeable, you should create the list as a separate database table and connect it as a databasejoin dropdown instead, which I will show you later. You can set your field to show up as a QR code for scanning, which will be great for the Movie rental database.\ Then we will click all and show in list for now, so we can see what it looks like.
  13. So now we are creating rented table with dropdown fields from the customer table and movie table. So start by filtering the form to the Rented table, you can create a new field of the databasejoin type, and click on data to connect to the database. The ID will be the value stored in the database, and the value is what you’ll see in the frontend dropdown list. As for the customers, you’ll want to concat the label of the first and last name so they are combined. Do the same for the movie table. Date Rented field. Date due field – it will require a plugin called the “Calc Element” where you can create custom php code, which is only good for a few lines of code. Anything more than that will require custom coding, which I’ll show you later how that works. In this example, I downloaded the calc plugin from the fabrikar website and installed it like a regular extension in Joomla. Then I go into the plugin manager and enable it. It will immediately show up in the dropdown list of element types. (or field types). In this PHP code, I’m making the due date automatically be set to 3 days after it was rented. Then using the “Ajax Calculation” to automatically update without saving first.
  14. The next step we’ll want to do is create a database join from the Rented table to the customer table so we can see full information about what each customer rented. But what is a database join? There are 3 types of joins,.
  15. Just a note: I have pre imported data to save time. You can import data by the fabrik import function or doing it straight from PHPMyAdmin
  16. We are going to want to make a View where you can add multiple rented movies for each customers. So you’ll want to make a copy of your Customers List before you join data from the Rented table. The JOIN options is basically saying “SELECT * FROM tbl_customers LEFT JOIN tbl_rented ON tbl_customers.id = tbl_rented.customer_id You can unshow columns by clicking on “Remove from List” to get rid of stuff that doesn’t need to be displayed.
  17. So to make it make more sense, what Fabrik is doing is running a MySQL statement for that List View to JOIN the 2 tables together and display the data on your custom List view called Customers Rented.
  18. When you go to your Elements section and filter by the “Customers Rented” page, you will see this screen here. You can set your list view settings and filters to search by auto-complete, which is an ajax search method. Set this for the email field as well.
  19. At this point, you will want to show the movie_id field, change the label to “Movie” and set it to display in the list. You will now be able to see what movies are rented out.
  20. You can select from a range of actions for basic JavaScript validations by clicking on your element and click on “Validations” tab on the left. Then select the action, and an error message. You can select the “JavaScript” tab on the left and write your own custom code for validation errors.
  21. You can set Access Level Controls for the following: Form/List – View, edit, Use Field, Add Records Element – Access per user group or Read Only Access for user group Menu – Joomla Access Level, which will override the fabrik ACL
  22. Three major ways of custom Coding: Custom Template PHP Code: Edit the layout and make your page look completely different. For custom PHP and JavaScript plugins, you can add the files in these particular directories, and go into the List or Form options and click on the PHP or JavaScript tab and your files will display on the Plugin list. Custom PHP Plugins – Create your own PHP plugin Custom JavaScript Plugins – Create your own JavaScript files – You can also set it in the list options to fire off your javascript plugin for specific event handlers.
  23. You can control the way each list is represented in each menu with using the same exact List data. You can edit the “ADD URL”. You can change the template it’s using with your custom code. You can set what columns to “Show in List” which will override the List data, and you can set pre-filters. This was very useful when I had an application built for multiple user groups in different brands in the company to view the same data set but for their brand, so when someone from Brand A would log in, they would see the data for only their brand and wouldn’t have to filter it out each time. It is also useful when I had multiple company vendors being able to view/edit data without seeing the list of other vendor data as well.