User Manual
Fabrik 2.0August 2010
Rob Clayburn
Table of Contents
What's new in Fabrik 2.0?.............................................................. 7Installation .................................................................................... 7Upgrading ...................................................................................... 8Additional Help .............................................................................. 8What is Fabrik? .............................................................................. 8
Forms .......................................................................................... 12
Groups ......................................................................................... 30
Elements...................................................................................... 33
Tables .......................................................................................... 87
Table Filters ............................................................................... 112
Connections ............................................................................... 116
Plug-ins ..................................................................................... 118Visualizations ............................................................................ 119
Packages.................................................................................... 132Scheduled Tasks ........................................................................ 133
Additional Joomla Plug-ins & Modules ....................................... 136
Troublshooting........................................................................... 141Compatibility with 3rd Party Libraries........................................ 142
Appendix.................................................................................... 143
License & Copyright
Suggestions Modifications and Corrections
Prerequisites
What's new in Fabrik 2.0?
The main menu has had some options added and some removed:
+ Plug-ins
+ Visualizations
- Validations- Validation rules
Form creation:
.
Elements:
Google map
CATCHA
RatingColour picker
Yes/no
Installation
Please do not navigate away from this page whilst this is happening.
Upgrading
Additional Help
What is Fabrik?
FormsTablesVisualizations
Scheduled tasks
Key Concepts
Placeholders
nameusernameemailusertype
blockgid
registerDatelastvisitDateguest
URL structure
Design strategy
objectsrelationships
Objects
Relationships
created by
Forms
Publish
Unpublish
Copy
Delete
Edit -
Published
Update database
View data
Editing or Adding a Form
Basic settings
Details
Label
Introduction -
Error message -
Buttons
Reset button
Reset button label
Copy button -
Copy button label
Go Back button
Go back button label
Apply button
Apply button label -
Submit label
Form Processing
Record in database -
Table name -
Ajax validation -
Success message
Spoof Check
Use cookies on multipage forms -
Note
Note
Form publishing
Published
Author
Author alias
Created Date -
Start Publishing -
Finish Publishing -
Groups
Create a group with the same name as this form -
Or select and add the following available groups
Note:a group can only be assigned to one form
Add -
Current groups
Up -
Down-
Remove-
Randomise groups
Templates
Detailed view template -
Form template
PDF template
Options
PDF icon
Print icon
Email icon -
Show title
Show title in detailed view
Show related data links
Process Joomla plug-ins
CCK
Email Submission Plug-in
Email to -
Email to (eval)
From -
Email subject line -
PHP/HTML Template - -
Article template -
Attachment type
Attachments (eval)
Condition -
Receipt Submission Plug-in
Send confirmation receipt to
Receipt title -
Message to send ...
Redirect Submission Plug-in
Jump page -
Append jump url with data -
Thanks message when form submitted -
Use as search data -
Condition -
Run PHP
Process scripts -
PHP File -
PHP code to execute on from submission
Run JS
var dostuff = new Class({
initialize: function(form){
this.form = form; //the form js object}
});
//class name needs to be the same as the file namevar example = new Class({
initialize: function(form){
this.form = form; //the form js object},//run when submit button is pressedonSubmit: function(){
alert('onSubmit');//return false if you want the form to stop submission
},//run once the form has sucessfully submitted data via ajax
onAjaxSubmitComplete: function(){alert('complete');
},onDoElementFX: function(){
alert('onDoElementFX');},//run at the start of saving a group to the db// when you move from one group to another on//multipage formssaveGroupsToDb: function(){
alert('saveGroupsToDb');},//run once the ajax call has completed when moving from one group to
another//on multipage formsonCompleteSaveGroupsToDb: function(){
alert('onCompleteSaveGroupsToDb');},//run each time you move from one group to another on//multipage formsonChangePage: function(){
alert('onChangePage');},//run if the form has ajax validaton//run at start of element validaton that occurs on that elements onblur
eventonStartElementValidation: function(){
alert('onStartElementValidation');},//run when above element validation's ajax call is completedonCompleteElementValidation: function(){
alert('onCompleteElementValidation');},//called when a repeatable group is deletedonDeleteGroup: function(){
alert('onDeleteGroup');},//called when a repeat group is duplicatedonDuplicateGroup: function(){
alert('onDuplicateGroup');},//called when the form gets updatedonUpdate: function(){
alert('onUpdate');},//called when the form is resetonReset: function(){}
});
Create a link to your form
Row id
key name -
Show random records -
Template
Groups
Published
Unpublish
Copy
Delete
Edit -
Published
Form
Number of elements -
Editing or adding a group
Details
Name
Title
CSS -
Columns
Repeat group button -
Show group in form
Javascript to run when repeat group added -
Javascript to run when repeat group removed -
Randomise elements -
Pagination
Page break -
Elements
Add to table view -
Remove from table view -
Published
Unpublish
Copy
Delete
Edit -
Published
Show in table
Order
Editing/Adding an Element
Details
Name -
Label -
Group -
Order -
Element type -
Options
Publishing
Published -
Add to page title -
Access -
Read only access -
Encrypt data -
RSS
Show in RSS feed -
Include label -
Use as pseudo key -
Tips
Hover text -
Hover text title -
Tips over element -
Show tip in detailed view
Comment -
Table settings tab
Show in table -
Link to details -
Allow ordering -
Heading label -
Icon folder -
custom link -
Use as row class
Filters
Filter type -
None -
Field -
Dropdown -
Autocomplete
Range -
Exact match -
Filter access -
Return only full word searches on field searches -
Include in advanced search -
Include in search all
Required -
Filter data
Default -
Show table data -
Show all
Table Column CSS
Heading class -
Heading CSS -
Cell class -
Cell CSS -
Calculations
Sum the column total
Sum access -
Split on
Name Surname Age
Average the column total
Average access -
Split on -
Column median -
Median access -
Split on -
Count records -
Count value -
Count access -
Split on -
Validations
Is alpha-numeric
Error message -
Condition -
Is email
Error message -
Condition -
Allow empty -
Is not
Error message -
Condition -
Is not
Is Numeric
Error message -
Condition -
Allow empty -
Is Unique
Error message -
Condition -
Case insensitive search
Not empty
Error message -
Condition -
PHP
Error message -
Condition -
PHP -
Match or Replace -
Regular Expression
Error message -
Condition -
Regular expression -
Match or Replace -
Replace string -
JavaScript
Add
Code -
Do -
That -
Is -
hide group1 when this == 1
show group1 when this != 1
Getting Element's values with JavaScript
Setting Element Values With JavaScript
Element plug-ins
Button
Checkbox
Default Value -
Default Label -
Element before label -
Options per row -
Sub Elements
Add
Value -
Label -
Default -
Delete -
Note
Add Options
Allow user to add drop down option -
Only add label -
Save new additions -
Advanced
Separator
Database join
Hidden -
Render join as -
Connection -
Table -
Key -
Label -
Or Concat label -
lastname, ' ', firstname
Joins where statement (sql) -
where 'published' = 1
Apply where beneath -
Appy where when
Value of please select option -
Label of please select option
Eval
Default
Add option in front end
Add option in front end -
Popup window Y offset -
Popup window width
Link to joined record -
Front end select
Popup form -
Advanced
Eval options -
Description field -
Apply where to table view -
Date
Width -
Hidden -
Eval -
Default -
return 'default';
Table date format -
Form date format -
Default to current date -
Always return today's date -
First Week day -
Allow typing in field -
Show time selector -
Time format -
Display text
Eval
Default -
return 'default';
Show label -
Drop down
Sub Elements
Add
Value -
Label -
Default -
Delete -
Note
Options
Multiple selections
Multiple selections height
Eval
Default -
return 'default';
Add Options
Allow user to add drop down option -
Only add label -
Save new additions -
Field
Width - -
Hidden -
Eval -
Default -
Password
Maximum length -
Format -
Integer length -
Decimal length -
Number format
Thousand Separator
Decimal Point
Format string - Applies the PHP sprintf function to the string-
Guess link type -
Disable element -
Read only -
Auto complete
File upload
Maximum file size -
Allowed file types -
.jpg, .jpeg, .gif
Upload directory -
Email uploaded file to recipients -
Obfuscate Filename
Length random filename
If existing image found?
Leave original file
Leave original file and increment new file's name
Allow subfolder selection -
Delete images? -
Display
Default image -
Link to file -
Show media in table -
Show media in form -
nothumbnail -
full size
Image library -
Max width -
Max height -
Title element
Use download script
Thumbnail
Make a thumbnail of the uploaded image -
Thumbnail directory -
Thumbnail prefix -
Thumbnail width
Thumbnail height -
Crop
Crop
Cropdir -
Cropwidth -
Cropheight -
Storage
Storage type -
Filesystem -Amazon s3 -
Amazon s3 access key id -
Amazon s3 secret key -
Amazon storage location -
Bucket name -
Export
CSV format
Relative pathFull pathRaw file streamBase 64 encoded file stream
JSON format
ID
Image
Default image -
Root folder -
Allow users to select image in front end -
Show in table -
Float image -
Link -
Link
Width -
Default label -
Default URL
Link target -
Smart link -
Bit.ly
Use bit.ly
Login name
API Key
Radio button
Element before label
Options per row -
Sub Elements
Add
Value -
Label -
Default -
Delete -
Note
Add Options
Allow user to add drop down option -
Only add label -
Save new additions -
Text area
Width -
Height -
Eval -
Default -
Use WYSIWYG Editor -
Show max limit -
Maximum length -
Tagify
Custom tagify URL
Truncate size
User
Hidden -
User Data -
Update on edit -
Update on copy
Label of 'Please select' option
Additional Element Plug-ins
Password
Form example
Administration options
Maximum length
CAPTCHA
Administration options
Show when logged in?
MethodStandard
Recaptcha -
WidthHeightPublic keyPrivate key
Subscriber Exclusive Element Plug-ins
Rating
Form example
Administration options
Rating Mode -User rating -
Creator rating -
No rating option first -
Image file type -
Rate in form -
Google Map
Form Example
Administration settings
Options
Google Map Key -
Map type -NormalSatelliteHybrid
Default lat -Default lon -Start zoom level -Map widthMap height3d Buttons -
Control -
NoneLarge map control
Small map control
Scale control -
Map Type control -
Overview control -
Use static map -
Static -
Full
Mouse scrolling -
Show lat/lng fields -
Geocoding
Enable geocodingNo -Yes -
Use Elements -
Address 1 ... Country -
Trigger geocode with -Button -
As you type -
Table settings
Use static map -Yes
NoMap width-Map height
Cascading Drop down
Form example
Administration settings
Options
Connection -
Table -ID -
Label -
Advanced
Where query -
Hidden -Show please select -
Eval -Default -
Front end
Link to joined record
Calculation
Administration settings
Hidden -Width -Calculation - MUST
MUST
Format string -
Only Calc on Save -
Colour Picker
Form example
Administration settings
Yesno
Form example
Table example
Administration settings
Default -
Parent / Child elements
Tables
Published
UnpublishCopy
DeleteEdit -
New
"import"
"parameters"
Form - edit -View data -
PublishedView details -
Deleting a Table
Parameters
Use WYSIWYG editor for element labels -
Alter filed types -
Remove tables on uninstallMootools version
none -
1.1 -
1.2
Note:
Use mediabox instead of slimbox -
Include lightbox js
Merge JS files -
Compress merged JS file -
Spoof check on form submission
This is depreciated -you should set this setting when editing each individual form
Use work in Progress -
Allow fabrikDebug
Use elements as related data -
Filter data -
Enable single ordering
Importing a CSV file to create a new table
Connection -
CSV file -
Create new table
Label -
Create primary key
import
cancel
Exporting CSV files without using the dialog
View details
Edit table
Details
Label -
Introduction
Filters
Filter trigger -On changeSubmit form -
Show Filters -
Advanced search -
Search all
Advanced search all
Search all label
Require filtering
Filter data
'Show table data'
'Show all'
Navigation
Rows per page -
Show add -
Show navigation -
Show All option
Show total
SEF Slug -
Layout
Template -
Admin template -
Detailed view link -
Empty data message -
Detail url -
PDF Icon -
PDF Template -
Notes
Note -
Advanced
Alter existing field types -
Process Joomla plug-ins
Enable Big Selects
Enable Single OrderingSingle ordering
Mutliple ordering
Work in progress
Joomfish data translation -
Title element -
The Publishing tab
Published -
Author -
Author Alias -
Created date -
Start Publishing -
Finish Publishing -
RSS
Create RSS feed -
Feed title -
Feed date -
RSS Limit -
RSS Maximum Limit -
CSV
CSV import -
CSV export -
Heading format -
Export step
Search
Include in search results -
Field -
Description -
Access
View table -
View records -
Edit records -
Or use field -
Add records -
Delete records -
Empty records -
Data Tab
Primary key
Auto increment
Connection -
Create new table -
Link to table -
Order by -
Oder direction -
Group by
Group by
Order by -
Template -
Order direction
Prefilter
Prefilter query
Field -
Condition -
Value -
Type -
Text
Johnwhere name EQUALS 'John'
Eval
return 'John';
Query
select 'John';No quotes
Apply filter beneath -
Adding an additional prefilter
Name Age Sex
where name EQUALS John (type text) age EQUALS 19 (type no quotes)
Name Age Sex
where name EQUALS John (type text) age EQUALS 19 (type no quotes)
Name Age Sex
where (name EQUALS John (type text) age EQUALS 19 (type no quotes)
Name Age Sex
Joins
Join type -
From -
To
From column
To column -
Display mode
Teacher Student
Each row separately -Merged joined records into one row -
Teacher Student
Related Data
Table -
Link to table -
Heading-
Button text
Popup -No -Yes -
Link to form
Heading-
Button text-
Popup -No -
Yes -
Table Filters
Filtering via the query string
&tablename___elementname[join]=OR
Querystring filtering to Search Across All Fields:
fabrik_table_filter_all -search-mode-advanced
all -any -exact -none
Prefilters
Get the records stored in the last 2 months:
WHERE:GREATER THAN:TYPE:
Get the records for the upcoming week:
WHERE:GREATER THAN:TYPE:
Display only the logged in users records:
WHERE:EQUALS:TYPE:
Element Filters
Clearing filters
clearfilters=1
resetfilters=1
clearorder=1 :
Copy plug-in
Create a link to you table
Reload calculations
Template
Connections
Default
Published
Unpublish
Copy
Delete
Edit -
Published
Test connection-
Add / Edit a Connection
Description -
Host -
Database -
User -
Password -
Confirm password -
Published -
Plug-ins
Visualizations
Copy
Delete
Edit -
Published
Add / Edit Visualization Standard Options
Details
Label -
Intro text -
Plugin
Publishing
Published
Author
Author alias
Created Date -
Start Publishing -
Finish Publishing -
Plug-ins
Calendar
Template -
Show legend -
Standard event table -
Day view -
Week view -
Popup window y offset -
First week day -
Connection -
Data
Table -
Start date element -
End date element -
Label element -
Color -
Month View options
Day width -
Day height -
Greyscale weekends -
Anatomy of a Fabrik Calendar
Filtering
Chart
Template -
Chart type -
Fill line graph -
Show legend -
Width -
Height -
chds
chxl
chg
chm
Connection -
Table -
Element -
Legend label -
Colour -
Axis label -
Axis measurement unit -
Where
Map
Connection - -
Repeatable controls
Table -
Bubble template -
Icon -
First icon
Last icon
Data icon -
Icon letter
Poly line element
Polyline width -
Polyline colour -
Google Map Key -
Map Type -
Start Zoom Level -
Center map on - first loads
Middle -
Last marker -
Users location -
3D buttons -
Map width (px)
Map height (px)
Template -
Controls
Control -
Scale control -
Map type control -
Overview control -
Ajax Refresh
Ajax Refresh -
Ajax re-centre -
Ajax refresh rate
Clustering
.
Clustering -
Cluster size split -
Cluster size increment
Advanced
Maximum number of markers -
Use cookies
Timeline
Table -
Start date -
End date
Bubble template -
Create links to visualizations
Packages
Scheduled Tasks
Run -
Published
Unpublish
Copy
Delete
Edit -
Published
Add/Edit a Scheduled Task
Label -
Every -
Unit -
E.g. every 1 day
Starting from -
Published -
Connection -
Table -
Plugin -
Email plugin
Eval
To -
Subject -
Message
Update
Field -
Value -
Additional Joomla Plug-ins & Modules
Modules
Form module
Title -
Enabled -
Position -
Order -
Access Level -
Menus
Menus -
Menu Selection -
Parameters
Module class suffix -
Form id -
Row id -
Table module
Parameters
Module class suffix -
Fabrik table id -
Use AJAX -
Randomize records -
Number of records to show -
Template -
Plug-ins
Fabrik
Forms
Tables
Visualisations
Element data
Common modifiers
Search System Plug-in
Search limit -Section heading
Scheduled Task System Plug-in
Troubleshooting
Problem:
"getData: The SELECT would examine more than MAX_JOIN_SIZE rows.."
Solution:
Compatibility with 3rd Party Libraries
JACL +
Joomfish
sh404SEF
Community Builder
Ensure that you have the Joomla Fabrik plug-in installed
Joomsocial
Appendix
Common Joomla PHP coding tasks
Databases