%PDF- %PDF-
| Direktori : /home1/lightco1/www/administrator/components/com_baforms/models/ |
| Current File : //home1/lightco1/www/administrator/components/com_baforms/models/form.php |
<?php
/**
* @package BaForms
* @author Balbooa http://www.balbooa.com/
* @copyright Copyright @ Balbooa
* @license http://www.gnu.org/licenses/gpl.html GNU/GPL
*/
defined('_JEXEC') or die;
jimport('joomla.application.component.modeladmin');
class baformsModelForm extends JModelAdmin
{
public function getTable($type = 'Forms', $prefix = 'formsTable', $config = array())
{
return JTable::getInstance($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
$form = $this->loadForm(
$this->option . '.form', 'form', array('control' => 'jform', 'load_data' => $loadData)
);
if (empty($form))
{
return false;
}
return $form;
}
protected function loadFormData()
{
$data = JFactory::getApplication()->getUserState($this->option . '.edit.form.data', array());
if (empty($data))
{
$data = $this->getItem();
$id = $data->id;
if (isset($id)) {
$elem = '';
$column = '';
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select("settings");
$query->from("#__baforms_columns");
$query->where("form_id=" . $id);
$query->order("id ASC");
$db->setQuery($query);
$items = $db->loadObjectList();
foreach ($items as $item) {
$elem .= $item->settings . '|';
}
$data->form_columns = $elem;
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select("settings");
$query->from("#__baforms_items");
$query->where("form_id=" . $id);
$query->order("id ASC");
$db->setQuery($query);
$items = $db->loadObjectList();
foreach ($items as $item) {
$column .= $item->settings . '|_-_|';
}
$data->form_content = $column;
}
}
return $data;
}
public function save($data)
{
if(parent::save($data)) {
$formId = $this->getState($this->getName() . '.id');
$db = JFactory::getDBO();
$query = 'DELETE FROM `#__baforms_columns` WHERE `form_id`=' . $formId;
$db->setQuery($query);
$db->query();
$query = 'DELETE FROM `#__baforms_items` WHERE `form_id`=' . $formId;
$db->setQuery($query);
$db->query();
$newdata = explode('|', $data['form_columns']);
foreach ($newdata as $dat) {
if ($dat != '') {
$table = JTable::getInstance('Columns', 'FormsTable');
$table->bind(array('form_id'=>$formId, 'settings'=>$dat));
$table->store();
}
}
$newdata = explode('|_-_|', $data['form_content']);
foreach ($newdata as $dat) {
if ($dat != '') {
$table = JTable::getInstance('Items', 'FormsTable');
$table->bind(array('form_id'=>$formId, 'column_id'=>'2','settings'=>$dat));
$table->store();
}
}
return true;
} else {
return false;
}
}
public function delete(&$pks)
{
$pks = (array) $pks;
foreach ($pks as $i => $pk)
{
$id = $pk;
if (parent::delete($pk))
{
$this->_db->setQuery("DELETE FROM #__baforms_items WHERE `form_id`=". $id);
$this->_db->execute();
$this->_db->setQuery("DELETE FROM #__baforms_columns WHERE `form_id`=". $id);
$this->_db->execute();
} else {
return false;
}
}
return true;
}
public function duplicate(&$pks)
{
$db = $this->getDbo();
foreach ($pks as $pk) {
$table = $this->getTable();
$table->load($pk, true);
$table->id = 0;
$table->title .= ' (1)';
$table->published = 0;
$table->store();
$formId = $this->getState($this->getName() . '.id');
$query = $db->getQuery(true);
$query->select("*");
$query->from("#__baforms_columns");
$query->where("form_id=" . $pk);
$query->order("id ASC");
$db->setQuery($query);
$id = $table->id;
//print_r($id);exit;
$items = $db->loadObjectList();
foreach ($items as $item) {
if ($item != '') {
$table = JTable::getInstance('Columns', 'FormsTable');
$table->bind(array('form_id'=>$id, 'settings'=>$item->settings));
$table->store();
}
}
$query = $db->getQuery(true);
$query->select("*");
$query->from("#__baforms_items");
$query->where("form_id=" . $pk);
$query->order("id ASC");
$db->setQuery($query);
$items = $db->loadObjectList();
foreach ($items as $item) {
if ($item != '') {
$table = JTable::getInstance('Items', 'FormsTable');
$table->bind(array('form_id'=>$id, 'column_id'=>'2','settings'=>$item->settings));
$table->store();
}
}
}
}
}