addStyleSheet('components/com_chronocontact/css/cc.css'); if ( !function_exists( 'property_exists' ) ) { function property_exists( $class, $property ) { if ( is_object( $class ) ) { $vars = get_object_vars( $class ); } else { $vars = get_class_vars( $class ); } return array_key_exists( $property, $vars ); } } class HTML_ChronoContact { function showChronoContact( $rows, $pageNav, $option ) { global $mainframe; $database =& JFactory::getDBO(); $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronocontact' AND parent='0' AND admin_menu_link='option=com_chronocontact'"; $database->setQuery( $query ); $result = $database->loadObject(); $configs = new JParameter($result->params); $showtipday = $configs->get('showtipoftheday', 1); if($showtipday){ HTML_ChronoContact::showTipOfDay(); } HTML_ChronoContact::showLicenseStatus(); ?>
Plugins
plugin_name." = new Tips($('".${$result}->plugin_name."'));"; } $tooltips .= "});"; $document->addScriptDeclaration($tooltips); ?>
result_TITLE; ?>
Chrono Forms - Forms Manager
id; ?> "> id."' ORDER BY emailid"; $database->setQuery( $query ); $emails = $database->loadObjectList(); $emails_enabled = 0; $emails_disabled = 0; if(!$row->emailresults){ $emails_enabled = '0'; $emails_disabled = count($emails); }else{ foreach($emails as $email){ $emailparams = new JParameter($email->params); if(trim($emailparams->get('enabled') == '1')){ $emails_enabled++; }else{ $emails_disabled++; } } } ?> paramsall); if($paramsvalues->get('tablenames')){ $tables = explode(",", $paramsvalues->get('tablenames')); }else{ $tables = array(); } ?> published){ ?>
# Form ID Name Link 1# Set Email Results to Yes in the General Tab
2# Set Enabled to Yes at every email area from the Email properties" ); ?> Emails
Tables Connected Publish
limitstart+1;?> id; ?> name; ?> index.php?option=com_chronocontact&chronoformname=name; ?> Enabled:
Disabled:

Published Unpublished
getListFooter(); ?>
paramsall); if ( is_array($paramsvalues->get('uploadfields')) ) { $paramsvalues->set('uploadfields', implode('|', $paramsvalues->get('uploadfields'))); } /*JHTML::_('behavior.switcher'); $contents = ''; ob_start(); require_once(JPATH_COMPONENT.DS.'tmpl'.DS.'navigation.php'); $contents = ob_get_contents(); ob_clean();*/ //$document =& JFactory::getDocument(); //$document->setBuffer($contents, 'module', 'submenu'); ?>
name; ?>
ToolTip
startPane("content-pane2"); echo $pane->startPanel( 'General', "general" ); ?>
Form Name:
must be unique between forms
Email the results ?
Form tag attachment:
something like onSubmit()
Form method:
Load Chronoforms CSS/JS Files?
Redirect URL:
Submit URL:
The form's "action" URL
Submissions limit (in seconds):
Submissions Limit error
ChronoForms handle my posted arrays:
Debug:
checkToken:
MYSQL Statement ? ENGINE or TYPE
Enable mambots?
Republish fields if error occured
Republish skip list
Renew Form Instance On Submit
Date Format:
Date Fields names:
E.g: date_1,date_2
Date Fields extras: ">
endPanel(); echo $pane->startPanel( "Setup Emails", 'semails' ); $database =& JFactory::getDBO(); $query = "SELECT * FROM #__chrono_contact_emails WHERE formid = '".$row->id."' ORDER BY emailid"; $database->setQuery( $query ); $emails = $database->loadObjectList(); $emailscounter = 0; ?>
Click Add Email to add new Email
to){ ?>
 
dto){ ?>
 
subject){ ?>
 
dsubject){ ?>
 
cc){ ?>
 
dcc){ ?>
 
bcc){ ?>
 
dbcc){ ?>
 
fromname){ ?>
 
dfromname){ ?>
 
fromemail){ ?>
 
dfromemail){ ?>
 
replytoname){ ?>
 
dreplytoname){ ?>
 
replytoemail){ ?>
 
dreplytoemail){ ?>
 
 
 
Toolbox
To
Dynamic To
Subject
Dynamic Subject
CC
Dynamic CC
BCC
Dynamic BCC
From Name
Dynamic From Name
From Email
Dynamic From Email
ReplyTo Name
Dynamic ReplyTo Name
ReplyTo Email
Dynamic ReplyTo Email
Email Properties
Email Format:
Record IP:
Enabled:
Use Template Editor:
Enable Attachments:
endPanel(); echo $pane->startPanel( "Emails Templates", 'extracodes' ); ?>
If you left your Email template empty, a template will be automaticly generated similar to your form layout!
params); $params = $emailparams->get('recordip').','.$emailparams->get('emailtype').','.$emailparams->get('enabled').','.$emailparams->get('editor').','.$emailparams->get('enable_attachments'); ?>
Email Template


endPanel(); echo $pane->startPanel( "Form Code", 'codes' ); ?>
Hint: Don't use <html> - <body> - <head> - <form> - <script> -<style> tags in the 2 boxes below!
Form HTML:
(May contain PHP code with tags)
[+/-]
Form JavaScript:
(May contain PHP code with tags)
[+/-]
CSS Styles
(May override Chronoforms CSS)
[+/-]
Hint: The simplest usage of the next 2 boxes is to show a thank you message after the form is submitted.
On Submit code - before sending email:
(May contain PHP code with tags)
[+/-]
On Submit code - after sending email:
(May contain PHP code with tags)
[+/-]
Info: This code will run if task=extra is provided in the form URL
Extra code 1: [+/-]
Extra code 2: [+/-]
Extra code 3: [+/-]
Extra code 4: [+/-]
Extra code 5: [+/-]
endPanel(); echo $pane->startPanel( "DB Connection", 'dbconnection' ); $database =& JFactory::getDBO(); $tables = $database->getTableList(); $storedtables = explode(",", $paramsvalues->get('tablenames')); ?>
Enable Data storage:
TableName(s):
Saving Data/Emails order:
Extra dataview columns fields names: get('dvfields');} ?>">
: get('dvrecord'))){$paramsvalues->set('dvrecord', "Record #n");} ?>
endPanel(); echo $pane->startPanel( "AutoGenerated code", 'autogen' ); ?>
Hint The data below is auto generated by Chronoforms and will be regenerated everytime the form is saved, editing it is worthless.
Auto generated:
Dont touch this unless you know what you are doing
[+/-]
Form Fields names:
E.g: field_name_1,field_name_2
Form Fields types:
E.g: input_text,select,file
endPanel(); echo $pane->startPanel( "File Uploads", 'uploads' ); ?>
Enable uploads:
Field names/allowed Extensions/sizes(KB)
Full upload Path: name){ $uploadpath = JPATH_SITE.DS."components".DS."com_chronocontact".DS.'uploads'.DS.$row->name.DS; }else{ $uploadpath = ''; } ?>
get('uploadpath') ? $paramsvalues->get('uploadpath') : JPATH_SITE.DS."components".DS."com_chronocontact".DS.'uploads'.DS.$row->name.DS; if(is_writable($uploadpath)){echo "Writable";}else{echo "Not Writable";} ?>
FileName format ">
Default Path:name.DS; ?>
Size Exceeded error
Size less error
Type not allowed error
endPanel(); echo $pane->startPanel( "Anti Spam", 'antispam' ); // :: HACK :: show GD capability if(function_exists('gd_info')){ $gd_info = gd_info(); $imagever_ok = true; }else{ $imagever_ok = false; } if($imagever_ok){ if ( !$gd_info['GD Version'] ) { $imagever_ok = false; $gd_info['GD Version'] = "GD library not found."; } else { if ( $gd_info['FreeType Support'] ) { $gd_info['FreeType Support'] = 'Yes'; } else { $gd_info['FreeType Support'] = 'No'; $imagever_ok = false; } if ( $gd_info['PNG Support'] ) { $gd_info['PNG Support'] = 'Yes'; } else { $gd_info['PNG Support'] = 'No'; $imagever_ok = false; } } } ?>
Use Image verification:
What type of image to show ? "; }*/ ?>
Error Message
GD Version
FreeType Support
PNG Support
Sample image: '>
endPanel(); echo $pane->startPanel( "Validation", 'validation' ); ?>
Enable Validation
Run Validation onlyOnBlur
Waiting time
Run Validation onlyOnSubmit
Validation Messages type
Hint If you need a custom error message then put it at your field title attribute! e.g: <input name="field1" title="Enter your first name here">
1 - required (not blank)
2- validate-number (a valid number)
3- validate-digits (digits only)
4- validate-alpha (letters only)
5- validate-alphanum (only letters and numbers)
6- validate-date (a valid date value)
7- validate-email (a valid email address)
8- validate-url (a valid URL)
9- validate-date-au (a date formatted as; dd/mm/yyyy)
10- validate-currency-dollar (a valid dollar value)
11- validate-selection
12- validate-one-required
13- validate-confirmation
Special thanks to "bouton" for referring to this feature!!
Enable Server Side Validation
Server Side validation Code: [+/-]
Example Code <?php
if($_POST['accept_terms'] != 'yes')
return 'Sorry, but you need to accept our terms to proceed';
?>
endPanel(); echo $pane->startPanel( "Plugins", 'plugins' ); ?>
get('mplugins_order', '')); $plugins = explode(",", $paramsvalues->get('plugins')); sort($results); $neworder = array(); foreach($results as $k => $result){ require_once(JPATH_SITE."/components/com_chronocontact/plugins/".$result.".php"); ${$result} = new $result(); if(!in_array($result, $plugins)){ for($i = 0; $i < count($results); $i++){ if(!in_array(($i + 1), $mplugins_order) && empty($neworder[$i])){ $neworder[$i] = $result; break; } } } } if($paramsvalues->get('mplugins_order', '')){ foreach($mplugins_order as $k => $mplugin_order){ $neworder[$mplugin_order - 1] = $plugins[$k]; } } ksort($neworder); //print_r($neworder); $results = $neworder; foreach($results as $k => $result){ require_once(JPATH_SITE."/components/com_chronocontact/plugins/".$result.".php"); ${$result} = new $result(); ?> get('plugins')))){ $plugin_state = 'disable'; $plugin_row_color = "#00BB00"; $plugin_enabled = "1"; }else{ $plugin_state = 'enable'; $plugin_row_color = "#DD0000"; $plugin_enabled = "0"; } ?>
result_TITLE; ?>
get('plugins')))){ $order++; } } ?>
endPanel(); echo $pane->startPanel( 'RunOrder', 'RunOrder' ); if((!$paramsvalues->get('autogenerated_order'))||(!$paramsvalues->get('onsubmitcode_order'))||(!$paramsvalues->get('plugins_order'))){ $paramsvalues->set('autogenerated_order', 3); $paramsvalues->set('onsubmitcode_order', 2); $paramsvalues->set('plugins_order', 1); } ?>
[+]  [-]
[+]  [-]
[+]  [-]
endPanel(); echo $pane->endPane(); ?>
Table Name: name; ?>" />
Field name
$fielddata){ ?> Key == 'PRI'){ $key_state = 'key'; $iskey = $field; } if($fielddata->Extra == 'auto_increment'){ $increment_state = 'increment'; $isautoincrement = $field; } }else{ $field_state = 'enable'; $field_row_color = "#FF3333"; $field_enabled = "0"; $key_state = 'keyd'; $increment_state = 'incrementd'; } ?>
Type){ ?> Type; ?>
$table){ ?>
ChronoForms Global Settings
Parameters
render(); ?>
setQuery( "SELECT * FROM #__chrono_contact WHERE id='".$formid."'" ); $formdata = $database->loadObjectList(); $paramsvalues = new JParameter($formdata[0]->paramsall); $dvfields = $paramsvalues->get('dvfields', ''); if ( !empty($dvfields) ) { $dvlist = explode(",", $dvfields); } }else{ $paramsvalues = new JParameter(''); $formid = 0; } # get primary key $tables = array(); $tables[] = $table; $result = $database->getTableFields( $tables, false ); $table_fields = $result[$table]; $primary = 'cf_id'; foreach($table_fields as $table_field => $field_data){ if($field_data->Key == 'PRI')$primary = $table_field; } ?>
">
# get('dvrecord', 'Record #n')); ?>
limitstart+1;?> get('dvrecord', 'Record #n'); foreach($table_fields as $fname => $field_data){//echo $fname; if ( property_exists($row, $fname) ) { $dvrecord = str_replace("{".$fname."}", $row->$fname, $dvrecord); } } echo str_replace("#n", $i+$pageNav->limitstart+1, $dvrecord); ?> $dvitem; ?>
getListFooter(); ?>
setQuery("SELECT titlesall FROM #__chrono_contact WHERE id='".$formid."'"); $titles = $database->loadResult(); $titles_lines = explode("\n", $titles); $tables = array( $tablename ); $result = $database->getTableFields( $tables ); $table_fields = array_keys($result[$tablename]); ?>
">
Field nameField Data
: $table_field ; ?>
Choose your .cfbak/.cfxbak form file:  
This page is to help you add a menu link to the admin components menu to take you directly to the "show saved data" of some form you choose

:
:
:
:
:
setQuery("SELECT * FROM #__components WHERE admin_menu_link LIKE '%option=com_chronocontact&task=show%'"); $rows = $database->loadObjectList(); ?>
Chrono Forms - Menu Remover
id; ?> ">
# Name Delete
name; ?> Published
addCustomTag($header_code); ?>
Toolbox
Text
Heading
TextBox
PasswordBox
TextArea
DropDown
CheckBox
RadioButton
DateTimePicker
FileUpload
HiddenField
Captcha
MultiHolder
Button
setQuery( $query ); $wizardelements = $database->loadObjectList(); ?> title){ ?>
params); ?>">title; ?>
Properties
Text:
Text:
Text:
Size:
Label:
Small Label:
Size:
Max Size:
Validation:
 
 
 
 
 
 
 
 
 
 

Validation Message:
Tooltip:
Hide Label:
Label Width: px
Field Name:
Label:
Small Label:
Size:
Max Size:
Validation:
 

Validation Message:
Tooltip:
Hide Label:
Label Width: px
Field Name:
Label:
Small Label:
Validation:
 

Validation Message:
Size:
Options:
Add Choose Option:
Choose Option Text:
Tooltip:
Hide Label:
Label Width: px
Field Name:
Label:
Small Label:
Rows:
Columns:
Validation:
 

Validation Message:
Tooltip:
Hide Label:
Label Width: px
Field Name:
Label:
Small Label:
Validation:
 

Validation Message:
Options:
Tooltip:
Hide Label:
Label Width: px
Label:
Small Label:
Validation:
 

Validation Message:
Options:
Tooltip:
Hide Label:
Label Width: px
Label:
Add Reset:
Tooltip:
Label:
Small Label:
Tooltip:
Allowed Extensions:
Maximum File Size in KB:
Minimum File Size in KB:
Validation:
 

Validation Message:
Hide Label:
Label Width: px
Field Name:
Label:
Small Label:
Size:
Validation:
 

Validation Message:
Tooltip:
Hide Label:
Label Width: px
Field Name:
Label:
Tooltip:
Hide Label:
Label Width: px
Name:
Value:
params); foreach($wizardelementparams as $wizardelementparam){ if(trim($wizardelementparam)){ $paramdata = explode('=', $wizardelementparam); ?> :
Label:
Small Label:
Elements:
Hide Label:
Label Width: px
paramsall); if ( is_array($paramsvalues->get('uploadfields')) ) { $paramsvalues->set('uploadfields', implode('|', $paramsvalues->get('uploadfields'))); } } ?> paramsall); foreach($paramsall as $params){ $param = array(); $param = explode("=", $params); ?>
Select Which theme you would like your form to be converted to, Please note that if you used the "preview" option ONLY then this will not affect your form, however, if you used the "Transform & Save" then your form code will be completely overwritten and you will lose any code changes you made earlier to the HTML code box contents since you created the form in the "form wizard" and before you come here!
'; } ?>

ChronoForms - Wizard's Custom Elements Manager
">
# ID Placeholder Description
limitstart+1;?> id; ?> placeholder; ?> desc; ?>
getListFooter(); ?>
params); ?>
Wizard Title
Placeholder
Description
Code
Param name:
Default value if any:
title = $rssDoc->get_title(); $feed->link = $rssDoc->get_link(); $feed->description = $rssDoc->get_description(); // channel image if exists $feed->image->url = $rssDoc->get_image_url(); $feed->image->title = $rssDoc->get_image_title(); // items $items = $rssDoc->get_items(); // feed elements shuffle($items); $feed->items = array_slice($items, 0, 1); } else { $feed = false; } if( $feed != false ) { //image handling $iUrl = isset($feed->image->url) ? $feed->image->url : null; $iTitle = isset($feed->image->title) ? $feed->image->title : null; ?> items ); $setItems = 3; if ($setItems > $actualItems) { $totalItems = $actualItems; } else { $totalItems = $setItems; } ?>
ChronoEngine's Tip Of the Day
title; ?>
description; ?>
<?php echo @$iTitle; ?>
    items[$j]; // item title ?>
  • get_link() ) ) { ?> get_title(); ?> get('rssitemdesc', 1)) { // item description $text = $currItem->get_description(); $text = str_replace(''', "'", $text); // word limit check if ($words) { $texts = explode(' ', $text); $count = count($texts); if ($count > $words) { $text = ''; for ($i = 0; $i < $words; $i ++) { $text .= ' '.$texts[$i]; } $text .= '...'; } } ?>
'; return $tip; } function showLicenseStatus(){ global $mainframe; $database =& JFactory::getDBO(); $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronocontact' AND parent='0' AND admin_menu_link='option=com_chronocontact'"; $database->setQuery( $query ); $result = $database->loadObject(); //$configs = JComponentHelper::getParams('com_chronocontact'); $configs = new JParameter($result->params); if($configs->get('licensevalid', '')){ ?> getSiteURL(), $matches); //print_r($matches); ?> Your Chronoforms install at is Validated getSiteURL(), $matches); //print_r($matches); ?> Your Chronoforms install at is NOT Validated, No limited features but for a small fee you get link free forms and help us continue the development and support getSiteURL(), $matches); $database =& JFactory::getDBO(); $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronocontact' AND parent='0' AND admin_menu_link='option=com_chronocontact'"; $database->setQuery( $query ); $result = $database->loadObject(); //$configs = JComponentHelper::getParams('com_chronocontact'); $configs = new JParameter($result->params); /*if(JRequest::getVar('pid')){ }*/ ?> We are about to validate the details below, please double check that everything is correct and hit "Validate"

Domain name:
Key Code: get('licensecode', '')){ ?> Please add your key code to the parameters box in the forms management area first! get('licensecode', ''); } ?>
Product:
Instant Code: