| Current Path : /home/bateauecpx/www/administrator/components/com_creativecontactform/models/ |
| Current File : /home/bateauecpx/www/administrator/components/com_creativecontactform/models/creativefield.php |
<?php
/**
* Joomla! component Creative Contact Form
*
* @version $Id: 2012-04-05 14:30:25 svn $
* @author creative-solutions.net
* @package Creative Contact Form
* @subpackage com_creativecontactform
* @license GNU/GPL
*
*/
// no direct access
defined('_JEXEC') or die('Restircted access');
// import Joomla modelform library
jimport('joomla.application.component.modeladmin');
class CreativeContactFormModelCreativeField extends JModelAdmin
{
//get max id
public function getMax_id()
{
// Create a new query object.
$db = $this->getDbo();
$query = 'SELECT COUNT(id) AS count_id FROM #__creative_fields';
$db->setQuery($query);
$max_id = $db->loadResult();
return $max_id;
}
/**
* Returns a reference to the a Table object, always creating it.
*
* @param type The table type to instantiate
* @param string A prefix for the table class name. Optional.
* @param array Configuration array for model. Optional.
* @return JTable A database object
* @since 1.6
*/
public function getTable($type = 'CreativeField', $prefix = 'CreativeFieldTable', $config = array())
{
return JTable::getInstance($type, $prefix, $config);
}
/**
* Method to get the record form.
*
* @param array $data Data for the form.
* @param boolean $loadData True if the form is to load its own data (default case), false if not.
* @return mixed A JForm object on success, false on failure
* @since 1.6
*/
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_creativecontactform.creativefield', 'creativefield', array('control' => 'jform', 'load_data' => $loadData));
if (empty($form))
{
return false;
}
return $form;
}
/**
* Method to get the data that should be injected in the form.
*
* @return mixed The data for the form.
* @since 1.6
*/
protected function loadFormData()
{
// Check the session for previously entered form data.
$data = JFactory::getApplication()->getUserState('com_creativecontactform.edit.creativefield.data', array());
if (empty($data))
{
$data = $this->getItem();
}
$data = $this->getItem();
return $data;
}
protected function canEditState($record)
{
return parent::canEditState($record);
}
/**
* Method to toggle the featured setting of contacts.
*
* @param array $pks The ids of the items to toggle.
* @param int $value The value to toggle to.
*
* @return boolean True on success.
* @since 1.6
*/
public function featured($pks, $value = 0)
{
// Sanitize the ids.
$pks = (array) $pks;
JArrayHelper::toInteger($pks);
if (empty($pks)) {
$this->setError(JText::_('COM_CREATIVECONTACTFORM_NO_ITEM_SELECTED'));
return false;
}
$table = $this->getTable();
try
{
$db = $this->getDbo();
$db->setQuery(
'UPDATE #__creative_field' .
' SET featured = '.(int) $value.
' WHERE id IN ('.implode(',', $pks).')'
);
if (!$db->query()) {
throw new Exception($db->getErrorMsg());
}
}
catch (Exception $e)
{
$this->setError($e->getMessage());
return false;
}
$table->reorder();
// Clean component's cache
$this->cleanCache();
return true;
}
/**
* Method to save field
*/
function saveField()
{
$date = new JDate();
$id = JRequest::getInt('id',0);
$req = new JObject();
$req->id_form = (int)$_REQUEST['jform']['id_form'];
$req->id_user = 0;
$req->name = $_REQUEST['jform']['name'];
$req->tooltip_text = strip_tags($_REQUEST['jform']['tooltip_text']);
$req->id_type = (int)$_REQUEST['jform']['id_type'];
$req->created = '0000-00-00 00:00:00';
$req->publish_up = '0000-00-00 00:00:00';
$req->publish_down = '0000-00-00 00:00:00';
$req->published = (int)$_REQUEST['jform']['published'];
$req->checked_out = 0;
$req->checked_out_time = '0000-00-00 00:00:00';
$req->access = 1;
$req->featured = 0;
$req->required = (int)$_REQUEST['jform']['required'];
$req->width = strip_tags($_REQUEST['jform']['width']);
$req->field_margin_top = strip_tags($_REQUEST['jform']['field_margin_top']);
$req->select_show_scroll_after = isset($_REQUEST['jform']['select_show_scroll_after']) ? (int)$_REQUEST['jform']['select_show_scroll_after'] : 10;
$req->select_show_search_after = isset($_REQUEST['jform']['select_show_search_after']) ? (int)$_REQUEST['jform']['select_show_search_after'] : 10;
$req->message_required = strip_tags($_REQUEST['jform']['message_required']);
$req->message_invalid = strip_tags($_REQUEST['jform']['message_invalid']);
$req->show_parent_label = isset($_REQUEST['jform']['show_parent_label']) ? (int)$_REQUEST['jform']['show_parent_label'] : 1;
$req->message_invalid = strip_tags($_REQUEST['jform']['message_invalid']);
$req->select_default_text = strip_tags($_REQUEST['jform']['select_default_text']);
$req->select_no_match_text = strip_tags($_REQUEST['jform']['select_no_match_text']);
$req->upload_button_text = strip_tags($_REQUEST['jform']['upload_button_text']);
$req->upload_minfilesize = strip_tags($_REQUEST['jform']['upload_minfilesize']);
$req->upload_maxfilesize = strip_tags($_REQUEST['jform']['upload_maxfilesize']);
$req->upload_acceptfiletypes = strip_tags($_REQUEST['jform']['upload_acceptfiletypes']);
$req->upload_minfilesize_message = strip_tags($_REQUEST['jform']['upload_minfilesize_message']);
$req->upload_maxfilesize_message = strip_tags($_REQUEST['jform']['upload_maxfilesize_message']);
$req->upload_acceptfiletypes_message = strip_tags($_REQUEST['jform']['upload_acceptfiletypes_message']);
$req->captcha_wrong_message = strip_tags($_REQUEST['jform']['captcha_wrong_message']);
$req->datepicker_date_format = strip_tags($_REQUEST['jform']['datepicker_date_format']);
$req->datepicker_animation = strip_tags($_REQUEST['jform']['datepicker_animation']);
$req->datepicker_style = (int)$_REQUEST['jform']['datepicker_style'];
$req->datepicker_icon_style = (int)$_REQUEST['jform']['datepicker_icon_style'];
$req->datepicker_show_icon = isset($_REQUEST['jform']['datepicker_show_icon']) ? (int)$_REQUEST['jform']['datepicker_show_icon'] : 1;
$req->datepicker_input_readonly = (int)$_REQUEST['jform']['datepicker_input_readonly'];
$req->datepicker_number_months = isset($_REQUEST['jform']['datepicker_number_months']) ? (int)$_REQUEST['jform']['datepicker_number_months'] : 1;
$req->datepicker_mindate = strip_tags($_REQUEST['jform']['datepicker_mindate']);
$req->datepicker_maxdate = strip_tags($_REQUEST['jform']['datepicker_maxdate']);
$req->datepicker_changemonths = (int)$_REQUEST['jform']['datepicker_changemonths'];
$req->datepicker_changeyears = (int)$_REQUEST['jform']['datepicker_changeyears'];
$req->column_type = (int)$_REQUEST['jform']['column_type'];
$req->custom_html = $_REQUEST['jform']['custom_html'];
$req->google_maps = $_REQUEST['jform']['google_maps'];
$req->heading = $_REQUEST['jform']['heading'];
$req->recaptcha_site_key = strip_tags($_REQUEST['jform']['recaptcha_site_key']);
$req->recaptcha_security_key = strip_tags($_REQUEST['jform']['recaptcha_security_key']);
$req->recaptcha_wrong_message = strip_tags($_REQUEST['jform']['recaptcha_wrong_message']);
$req->recaptcha_theme = strip_tags($_REQUEST['jform']['recaptcha_theme']);
$req->recaptcha_type = strip_tags($_REQUEST['jform']['recaptcha_type']);
$req->contact_data = $_REQUEST['jform']['contact_data'];
$req->contact_data_width = $_REQUEST['jform']['contact_data_width'];
$req->creative_popup = $_REQUEST['jform']["creative_popup"];
$req->creative_popup_embed = $_REQUEST['jform']["creative_popup_embed"];
// v4.5.0
$req->m_recipients_value = $_REQUEST['jform']["m_recipients_value"];
$req->m_recipients_multiple = $_REQUEST['jform']["m_recipients_multiple"];
$req->pagebreak_type = $_REQUEST['jform']["pagebreak_type"];
$req->pagebreak_page_title = $_REQUEST['jform']["pagebreak_page_title"];
$req->if_id = $_REQUEST['jform']["if_id"];
$req->if_val = $_REQUEST['jform']["if_val"];
$req->then_id = $_REQUEST['jform']["then_id"];
$req->hidden_val = $_REQUEST['jform']["hidden_val"];
$response = array(0=>"no","1"=>0);
if($req->id_type == 13 || $req->id_type == 19) { // for captchas, set required to yes
$req->required = 1;
}
if($id == 0) {//if id ==0, we add the record
$req->id = NULL;
if($req->id_type == 20) { // for contact data, set show parent label to 0
$req->show_parent_label = 0;
}
//get max ordering
$query = "SELECT MAX(`ordering`) FROM `#__creative_fields` WHERE `id_form` = '".$req->id_form."'";
$this->_db->setQuery($query);
$max_order = $this->_db->loadResult();
$max_order ++;
$req->ordering = $max_order;
if (!$this->_db->insertObject( '#__creative_fields', $req, 'id' )) {
$cis_error = "COM_CREATIVECONTACTFORM_ERROR_FIELD_SAVED";
$response[0] = $cis_error;
return $response;
}
$new_insert_id = $this->_db->insertid();
$response[1] = $new_insert_id;
}
else { //else update the record
$req->id = $id;
if (!$this->_db->updateObject( '#__creative_fields', $req, 'id' )) {
$cis_error = "COM_CREATIVECONTACTFORM_ERROR_FIELD_SAVED";
$response[0] = $cis_error;
return $response;
}
}
return $response;
}
/**
* Method to copy field
*/
function copyField()
{
$date = new JDate();
$id = JRequest::getInt('id',0);
$req = new JObject();
$req->id_form = (int)$_REQUEST['jform']['id_form'];
$req->id_user = 0;
$req->name = $_REQUEST['jform']['name'] . ' (copy)';
$req->tooltip_text = strip_tags($_REQUEST['jform']['tooltip_text']);
$req->id_type = (int)$_REQUEST['jform']['id_type'];
$req->created = '0000-00-00 00:00:00';
$req->publish_up = '0000-00-00 00:00:00';
$req->publish_down = '0000-00-00 00:00:00';
$req->published = (int)$_REQUEST['jform']['published'];
$req->checked_out = 0;
$req->checked_out_time = '0000-00-00 00:00:00';
$req->access = 1;
$req->featured = 0;
$req->required = (int)$_REQUEST['jform']['required'];
$req->width = strip_tags($_REQUEST['jform']['width']);
$req->field_margin_top = strip_tags($_REQUEST['jform']['field_margin_top']);
$req->select_show_scroll_after = (int)$_REQUEST['jform']['select_show_scroll_after'];
$req->select_show_search_after = (int)$_REQUEST['jform']['select_show_search_after'];
$req->message_required = strip_tags($_REQUEST['jform']['message_required']);
$req->message_invalid = strip_tags($_REQUEST['jform']['message_invalid']);
$req->show_parent_label = isset($_REQUEST['jform']['show_parent_label']) ? (int)$_REQUEST['jform']['show_parent_label'] : 1;
$req->message_invalid = strip_tags($_REQUEST['jform']['message_invalid']);
$req->select_default_text = strip_tags($_REQUEST['jform']['select_default_text']);
$req->select_no_match_text = strip_tags($_REQUEST['jform']['select_no_match_text']);
$req->upload_button_text = strip_tags($_REQUEST['jform']['upload_button_text']);
$req->upload_minfilesize = strip_tags($_REQUEST['jform']['upload_minfilesize']);
$req->upload_maxfilesize = strip_tags($_REQUEST['jform']['upload_maxfilesize']);
$req->upload_acceptfiletypes = strip_tags($_REQUEST['jform']['upload_acceptfiletypes']);
$req->upload_minfilesize_message = strip_tags($_REQUEST['jform']['upload_minfilesize_message']);
$req->upload_maxfilesize_message = strip_tags($_REQUEST['jform']['upload_maxfilesize_message']);
$req->upload_acceptfiletypes_message = strip_tags($_REQUEST['jform']['upload_acceptfiletypes_message']);
$req->captcha_wrong_message = strip_tags($_REQUEST['jform']['captcha_wrong_message']);
$req->datepicker_date_format = strip_tags($_REQUEST['jform']['datepicker_date_format']);
$req->datepicker_animation = strip_tags($_REQUEST['jform']['datepicker_animation']);
$req->datepicker_style = (int)$_REQUEST['jform']['datepicker_style'];
$req->datepicker_icon_style = (int)$_REQUEST['jform']['datepicker_icon_style'];
$req->datepicker_show_icon = (int)$_REQUEST['jform']['datepicker_show_icon'];
$req->datepicker_input_readonly = (int)$_REQUEST['jform']['datepicker_input_readonly'];
$req->datepicker_number_months = (int)$_REQUEST['jform']['datepicker_number_months'];
$req->datepicker_mindate = strip_tags($_REQUEST['jform']['datepicker_mindate']);
$req->datepicker_maxdate = strip_tags($_REQUEST['jform']['datepicker_maxdate']);
$req->datepicker_changemonths = (int)$_REQUEST['jform']['datepicker_changemonths'];
$req->datepicker_changeyears = (int)$_REQUEST['jform']['datepicker_changeyears'];
$req->column_type = (int)$_REQUEST['jform']['column_type'];
$req->custom_html = $_REQUEST['jform']['custom_html'];
$req->google_maps = $_REQUEST['jform']['google_maps'];
$req->heading = $_REQUEST['jform']['heading'];
$req->recaptcha_site_key = strip_tags($_REQUEST['jform']['recaptcha_site_key']);
$req->recaptcha_security_key = strip_tags($_REQUEST['jform']['recaptcha_security_key']);
$req->recaptcha_wrong_message = strip_tags($_REQUEST['jform']['recaptcha_wrong_message']);
$req->recaptcha_theme = strip_tags($_REQUEST['jform']['recaptcha_theme']);
$req->recaptcha_type = strip_tags($_REQUEST['jform']['recaptcha_type']);
$req->contact_data = $_REQUEST['jform']['contact_data'];
$req->contact_data_width = $_REQUEST['jform']['contact_data_width'];
$req->creative_popup = $_REQUEST['jform']["creative_popup"];
$req->creative_popup_embed = $_REQUEST['jform']["creative_popup_embed"];
// v4.5.0
$req->m_recipients_value = $_REQUEST['jform']["m_recipients_value"];
$req->m_recipients_multiple = $_REQUEST['jform']["m_recipients_multiple"];
$req->pagebreak_type = $_REQUEST['jform']["pagebreak_type"];
$req->pagebreak_page_title = $_REQUEST['jform']["pagebreak_page_title"];
$req->if_id = $_REQUEST['jform']["if_id"];
$req->if_val = $_REQUEST['jform']["if_val"];
$req->then_id = $_REQUEST['jform']["then_id"];
$req->hidden_val = $_REQUEST['jform']["hidden_val"];
$response = array(0=>"no","1"=>0);
if($req->id_type == 13 || $req->id_type == 19) { // for captchas, set required to yes
$req->required = 1;
}
//if id ==0, we add the record
$req->id = NULL;
//get max ordering
$query = "SELECT MAX(`ordering`) FROM `#__creative_fields` WHERE `id_form` = '".$req->id_form."'";
$this->_db->setQuery($query);
$max_order = $this->_db->loadResult();
$max_order ++;
$req->ordering = $max_order;
if (!$this->_db->insertObject( '#__creative_fields', $req, 'id' )) {
$cis_error = "COM_CREATIVECONTACTFORM_ERROR_FIELD_COPIED";
$response[0] = $cis_error;
return $response;
}
$new_insert_id = $this->_db->insertid();
$response[1] = $new_insert_id;
//copy child fields
$query = "SELECT * FROM `#__creative_form_options` WHERE `id_parent` = '".$id."'";
$this->_db->setQuery($query);
$options = $this->_db->loadAssocList();
if(is_array($options)) {
foreach($options as $option) {
$query = "INSERT INTO `#__creative_form_options` (`id_parent`,`name`,`value`,`ordering`,`showrow`,`selected`)
VALUES ('".$new_insert_id."','".$option['name']."','".$option['value']."','".$option['ordering']."','".$option['showrow']."','".$option['selected']."') ";
$this->_db->setQuery($query);
$this->_db->query();
}
}
return $response;
}
}