| Current Path : /var/www/administrator/components/com_breezingforms/admin/ |
| Current File : /var/www/administrator/components/com_breezingforms/admin/element.class.php |
<?php
/**
* BreezingForms - A Joomla Forms Application
* @version 1.4.6
* @package BreezingForms
* @copyright (C) 2008-2020 by Markus Bopp
* @license Released under the terms of the GNU General Public License
**/
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
require_once($ff_admpath.'/admin/element.html.php');
class facileFormsElement
{
static function edit($option, $tabpane, $pkg, $form, $page, $ids, $newtype)
{
global $database;
$database = JFactory::getDBO();
$row = new facileFormsElements($database);
if ($newtype=='')
$row->load($ids[0]);
else {
$row->form = $form;
$row->page = $page;
$row->published = 1;
$row->logging = 1;
$row->posx = 0;
$row->posy = 0;
$row->width = 0;
$row->height = 0;
$row->flag1 = 0;
$row->flag2 = 0;
$row->script1flag1 = 1;
$row->script1flag2 = 0;
$row->script2flag1 = 1;
$row->script2flag2 = 0;
$row->script2flag3 = 0;
$row->script2flag4 = 0;
$row->script2flag5 = 0;
$database->setQuery(
"select max(ordering)+1 from #__facileforms_elements ".
"where form=$form and page=$page"
);
$row->ordering = $database->loadResult();
switch ($newtype) {
case 'Rectangle':
$row->type = $newtype;
$row->logging = 0;
$row->posx = 10;
$row->posy = 10;
$row->width = 100;
$row->height = 50;
$row->data1 = '1px solid black'; // border
$row->data2 = '#eeeeee'; // background color
break;
case 'Hidden Input':
$row->type = $newtype;
$row->data1 = 'Hiddeninput';
break;
case 'Image':
$row->type = $newtype;
$row->logging = 0;
$row->posx = 10;
$row->posy = 50;
$row->data1 = '{ff_images}/pizzashop/margherita.jpg';
$row->data2 = 'Margherita';
break;
case 'Tooltip':
$row->type = $newtype;
$row->logging = 0;
$row->posx = 100;
$row->posy = 50;
$row->flag1 = 0; // 0-tooltip 1-warning 2-custom
$row->data2 = 'Some <em>hint</em> or <strong>warning</strong> for the user';
break;
case 'Checkbox':
$row->type = $newtype;
$row->posx = 10;
$row->posy = 50;
$row->data1 = 'cb';
$row->data2 = 'Checkbox';
break;
case 'Radio Button':
$row->type = $newtype;
$row->posx = 10;
$row->posy = 50;
$row->data1 = 'rb';
$row->data2 = 'Radiobutton';
break;
case 'Regular Button':
$row->type = $newtype;
$row->class2 = 'button';
$row->logging = 0;
$row->posx = 10;
$row->posy = 100;
$row->data2 = 'Regularbutton';
break;
case 'Graphic Button':
$row->type = $newtype;
$row->class2 = 'button';
$row->logging = 0;
$row->posx = 10;
$row->posy = 40;
$row->flag1 = 1; // caption below
$row->data1 = '{ff_images}/icons/movert_f2.png';
$row->data2 = 'Next';
break;
case 'Icon':
$row->type = $newtype;
$row->logging = 0;
$row->posx = 10;
$row->posy = 80;
$row->flag1 = 1; // caption below
$row->data1 = '{mossite}/components/com_breezingforms/images/next.png';
$row->data3 = '{mossite}/components/com_breezingforms/images/next_f2.png';
$row->data2 = '<font size="2"><strong>Next</strong></font>';
break;
case 'Text':
$row->type = $newtype;
$row->class2 = 'inputbox';
$row->posx = 10;
$row->posy = 10;
$row->width = 6;
$row->height = 6;
break;
case 'File Upload':
$row->type = $newtype;
$row->class2 = 'inputbox';
$row->posx = 10;
$row->posy = 30;
$row->width = 50;
$row->height = 2000000;
$row->data1 = '{ff_uploads}';
$row->data2 = 'text/*,application/zip';
break;
case 'Textarea':
$row->type = $newtype;
$row->class2 = 'inputbox';
$row->posx = 10;
$row->posy = 20;
$row->width = 20;
$row->height = 15;
break;
case 'Select List':
$row->type = $newtype;
$row->class2 = 'inputbox';
$row->posx = 50;
$row->posy = 30;
$row->data1 = 1;
$row->data2 = "1;Select Color;''\r\n".
"0;Red;red\r\n".
"0;Green;green\r\n".
"0;Blue;blue\r\n";
break;
case 'Query List':
$row->type = $newtype;
$row->class2 = 'moduletable';
$row->posx = 5;
$row->posxmode = 1;
$row->posy = 100;
$row->width = 90;
$row->widthmode = 1;
$row->height = 15;
$row->flag1 = 1; // show header
$row->flag2 = 1; // selection checkboxes
$row->data1 = "0\n". // border
"0\n". // cellspacing
"0\n". // cellpadding
"\n". // <tr(header)> class
"\n". // <tr(row1)> class
"\n". // <tr(row2)> class
"\n"; // <tr(footer)> class
break;
case 'Captcha':
$row->type = 'Captcha';
$row->posx = 10;
$row->posy = 20;
break;
default: // assume Static Text/HTML
$row->type = 'Static Text/HTML';
$row->logging = 0;
$row->posx = 10;
$row->posy = 20;
$row->data1 = 'The text to display';
break;
} // switch
} // if
$lists = array();
$database->setQuery(
"select id, concat(package,'::',name) as text ".
"from #__facileforms_scripts ".
"where published=1 and type='Element Init' ".
"order by text, id desc"
);
$lists['scripts1'] = $database->loadObjectList();
if ($database->getErrorNum()) {
echo $database->stderr();
return false;
} // if
$database->setQuery(
"select id, concat(package,'::',name) as text ".
"from #__facileforms_scripts ".
"where published=1 and type='Element Action' ".
"order by text, id desc"
);
$lists['scripts2'] = $database->loadObjectList();
if ($database->getErrorNum()) {
echo $database->stderr();
return false;
} // if
$database->setQuery(
"select id, concat(package,'::',name) as text ".
"from #__facileforms_scripts ".
"where published=1 and type='Element Validation' ".
"order by text, id desc"
);
$lists['scripts3'] = $database->loadObjectList();
if ($database->getErrorNum()) {
echo $database->stderr();
return false;
} // if
$order = JHTML::_('list.genericordering',
"select ordering as value, title as text ".
"from #__facileforms_elements ".
"where form=$form and page=$page ".
"order by ordering"
);
$lists['ordering'] =
JHTML::_('select.genericlist',
$order, 'ordering', 'class="inputbox" size="1" style="z-index:1" ',
'value', 'text', intval($row->ordering)
);
HTML_facileFormsElement::edit($option, $tabpane, $pkg, $row, $lists);
} // edit
static function newElement($option, $pkg, $form, $page)
{
HTML_facileFormsElement::newitem($option, $pkg, $form, $page);
} // newElement
static function save($option, $pkg, $form, $page)
{
global $database;
$database = JFactory::getDBO();
$row = new facileFormsElements($database);
// bind it to the table
if (!$row->bind($_POST)) {
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit();
} // if
if ($row->script1flag1==null) $row->script1flag1=0;
if ($row->script1flag2==null) $row->script1flag2=0;
if ($row->script2flag1==null) $row->script2flag1=0;
if ($row->script2flag2==null) $row->script2flag2=0;
if ($row->script2flag3==null) $row->script2flag3=0;
if ($row->script2flag4==null) $row->script2flag4=0;
if ($row->script2flag5==null) $row->script2flag5=0;
// store it in the db
if (!$row->store()) {
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit();
} // if
$row->reorder( "form=$form and page=$page" );
// CONTENTBUILDER
jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');
if(JFile::exists(JPATH_SITE . DS . 'administrator' . DS . 'components' . DS . 'com_contentbuilder' . DS . 'classes' . DS . 'contentbuilder.php'))
{
$formId = $form;
require_once(JPATH_SITE . DS . 'administrator' . DS . 'components' . DS . 'com_contentbuilder' . DS . 'classes' . DS . 'contentbuilder.php');
$cbForm = contentbuilder::getForm('com_breezingforms', $formId);
$db = JFactory::getDBO();
$db->setQuery("Select id From #__contentbuilder_forms Where `type` = 'com_breezingforms' And `reference_id` = " . intval($formId));
jimport('joomla.version');
$version = new JVersion();
if(version_compare($version->getShortVersion(), '3.0', '>=')){
$cbForms = $db->loadColumn();
}else{
$cbForms = $db->loadResultArray();
}
if(is_object($cbForm) && count($cbForms)){
require_once(JPATH_SITE . DS . 'administrator' . DS . 'components' . DS . 'com_contentbuilder' . DS . 'tables' . DS . 'elements.php');
foreach($cbForms As $dataId){
contentbuilder::synchElements($dataId, $cbForm);
$elements_table = new TableElements($db);
$elements_table->reorder('form_id='.$dataId);
}
}
}
// CONTENTBUILDER END
JFactory::getApplication()->redirect(
"index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg",
BFText::_('COM_BREEZINGFORMS_ELEMENTS_SAVED'));
} // save
static function cancel($option, $pkg, $form, $page)
{
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg");
} // cancel
static function del($option, $pkg, $form, $page, $ids)
{
global $database;
$database = JFactory::getDBO();
$quoted_ids = array();
foreach($ids As $the_id){
$quoted_ids[] = JFactory::getDBO()->Quote($the_id);
}
$ids = implode(',', $quoted_ids);
$database->setQuery("delete from #__facileforms_elements where form=$form and page=$page and id in ($ids)");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
} // if
//$database->setQuery("delete from #__facileforms_forms where id in ($forms)");
//if (!$database->query()) {
// echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
//} // if
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg");
} // del
static function getDestination($option, $pkg, $form, $page, $ids, $action)
{
global $database;
$database = JFactory::getDBO();
$fff = array();
$database->setQuery(
"select * from #__facileforms_forms ".
"where id = $form order by ordering"
);
$rows = $database->loadObjectList();
$package = '';
if (count($rows)) foreach ($rows as $row) {
$package = $row->package;
for ($p = 1; $p <= $row->pages; $p++)
$fff[] = JHTML::_('select.option', $row->id.','.$p, $row->package.'::'.$row->name.' / '.BFText::_('COM_BREEZINGFORMS_ELEMENTS_PAGE').' '.$p);
} // for
$database->setQuery(
"select * from #__facileforms_forms ".
"where package = ".$database->Quote($package)." and id!=$form ".
"order by ordering"
);
$rows = $database->loadObjectList();
if (count($rows)) foreach ($rows as $row)
for ($p = 1; $p <= $row->pages; $p++)
$fff[] = JHTML::_('select.option', $row->id.','.$p, $row->package.'::'.$row->name.' / '.BFText::_('COM_BREEZINGFORMS_ELEMENTS_PAGE').' '.$p);
$database->setQuery(
"select * from #__facileforms_forms ".
"where package!= ".$database->Quote($package).
"order by package, ordering"
);
$rows = $database->loadObjectList();
if (count($rows)) foreach ($rows as $row)
for ($p = 1; $p <= $row->pages; $p++)
$fff[] = JHTML::_('select.option', $row->id.','.$p, $row->package.'::'.$row->name.' / '.BFText::_('COM_BREEZINGFORMS_ELEMENTS_PAGE').' '.$p);
$sellist =
JHTML::_('select.genericlist',
$fff, 'destination', 'class="inputbox" size="15"',
'value', 'text', $form.','.$page
);
HTML_facileFormsElement::getDestination($option, $pkg, $form, $page, $ids, $sellist, $action);
} // getDestination
static function copy($option, $pkg, $form, $page, $ids)
{
global $database;
$database = JFactory::getDBO();
$destination = explode( ',', JRequest::getVar('destination',''));
list($newform, $newpage ) = $destination;
if (!$newform && !$newpage)
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg&mosmsg=".BFText::_('COM_BREEZINGFORMS_ELEMENTS_ANERROR'));
$total = count($ids);
$row = new facileFormsElements($database);
if (count($ids)) foreach ($ids as $id) {
$row->load( intval($id) );
$row->id = NULL;
$row->form = $newform;
$row->page = $newpage;
$row->ordering = 999999;
$row->store();
$row->reorder( 'form='.$newform.' and page = '.$newpage );
} // foreach
$msg = $total. ' '.BFText::_('COM_BREEZINGFORMS_ELEMENTS_COPIED').$newform.', '.BFText::_('COM_BREEZINGFORMS_ELEMENTS_PAGE2').$newpage;
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg&mosmsg=$msg");
} // copy
static function move($option, $pkg, $form, $page, $ids)
{
global $database;
$database = JFactory::getDBO();
$destination = explode( ',', JRequest::getVar('destination',''));
list($newform, $newpage ) = $destination;
if (!$newform && !$newpage)
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg&mosmsg=".BFText::_('COM_BREEZINGFORMS_ELEMENTS_ANERROR'));
if ($newform != $form || $newpage != $page) {
$total = count($ids);
$row = new facileFormsElements($database);
if (count($ids)) foreach ($ids as $id) {
$row->load( intval($id) );
$row->form = $newform;
$row->page = $newpage;
$row->ordering = 999999;
$row->store();
$row->reorder( 'form='.$newform.' and page = '.$newpage );
} // foreach
$msg = $total. ' '.BFText::_('COM_BREEZINGFORMS_ELEMENTS_MOVED').$newform.', '.BFText::_('COM_BREEZINGFORMS_ELEMENTS_PAGE2').$newpage;
} else
$msg = BFText::_('COM_BREEZINGFORMS_ELEMENTS_NOTMOVED');
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg&mosmsg=$msg");
} // move
static function sort($option, $pkg, $form, $page)
{
$rows = _ff_select("select * from `#__facileforms_forms` where id = ".JFactory::getDBO()->Quote($form));
$width = $height = 600;
if (count($rows)) {
$f = $rows[0];
if ($f->widthmode ==0) $width = $f->width; else $width = $f->prevwidth;
if ($f->heightmode==0) $height = $f->height;
if ($width < 1) $width = 600;
if ($height < 1) $height = 600;
} // if
$rows = _ff_select(
"select id ".
"from `#__facileforms_elements` ".
"where form=".JFactory::getDBO()->Quote($form)." and page=".JFactory::getDBO()->Quote($page)." ".
"order by ".
"if(`type`='Hidden Input',1,0), ".
"if(`type`='Hidden Input',0,if(posy<0,".intval($height)."+if(posymode=0,posy,(posy*".intval($height).")/100),if(posymode=0,posy,(posy*".intval($height).")/100))), ".
"if(`type`='Hidden Input',0,if(posx<0,".intval($width)."+if(posxmode=0,posx,(posx*".intval($width).")/100),if(posxmode=0,posx,(posx*".intval($width).")/100))), ".
"name, title, id"
);
$o = 1;
if (count($rows)) foreach ($rows as $row) {
_ff_query("update `#__facileforms_elements` set ordering=$o where id=$row->id");
$o++;
} // foreach
JFactory::getApplication()->redirect(
"index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg",
BFText::_('COM_BREEZINGFORMS_ELEMENTS_SORTED'));
} // save
static function movePos($option, $pkg, $form, $page, $ids, $task)
{
global $ff_config, $database;
$database = JFactory::getDBO();
$ff_config->movepixels = JRequest::getVar('movepixels', '');
$ff_config->store();
$pos = explode(',', JRequest::getVar('movepositions', ''));
$cnt = floor(count($pos)/3);
$elem = new facileFormsElements($database);
$p = 0;
for ($i = 0; $i < $cnt; $i++) {
$elem->load($pos[$p++]);
$elem->posx = $pos[$p++];
$elem->posy = $pos[$p++];
$elem->store();
} // for
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg");
} // movePos
static function gridshow($option, $pkg, $form, $page, $ids, $task)
{
global $ff_config, $database;
$database = JFactory::getDBO();
$ff_config->gridshow = JRequest::getVar('gridshow', 0);
$ff_config->store();
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg&checkedIds=".implode(',', $ids));
} // gridshow
static function publish($option, $pkg, $form, $page, $ids, $publish)
{
global $database, $my;
$database = JFactory::getDBO();
$ids = implode( ',', $ids );
$database->setQuery(
"update #__facileforms_elements set published=$publish where form=$form and page=$page and id in ($ids)"
);
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
} // if
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg");
} // publish
static function order($option, $pkg, $form, $page, $ids, $inc)
{
global $database;
$database = JFactory::getDBO();
$row = new facileFormsElements($database);
$row->load($ids[0]);
$row->move($inc, "form=$form and page=$page" );
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg");
} // order
static function orderWithoutRedirect($option, $pkg, $form, $page, $positions)
{
if(trim($positions) != ''){
$database = JFactory::getDBO();
$expl = explode(',',$positions);
$explSize = count($expl);
for($i = 0; $i < $explSize;$i++){
$idAndPos = explode(':',$expl[$i]);
if(count($idAndPos) == 2 && is_numeric($idAndPos[0]) && is_numeric($idAndPos[1])){
$database->setQuery("Update #__facileforms_elements Set ordering = '".intval($idAndPos[1])."' Where id = '".intval($idAndPos[0])."' And form=$form and page=$page");
$database->query();
//$jtable = new BFTableElements($database);
//$jtable->reorder("form=$form and page=$page");
}
}
}
} // orderWithoutRedirect
static function listitems($option, $pkg, $form, $page, $prevmode)
{
global $database;
$database = JFactory::getDBO();
$database->setQuery(
"select * from #__facileforms_elements where form=$form and page=$page order by ordering"
);
$rows = $database->loadObjectList();
if ($database->getErrorNum()) {
echo $database->stderr();
return false;
} // if
$formrow = new facileFormsForms($database);
$formrow->load($form);
$checkedIds = explode(',', JRequest::getVar( 'checkedIds', ''));
HTML_facileFormsElement::listitems($option, $pkg, $formrow, $page, $rows, $prevmode, $checkedIds);
} // listitems
static function addPageBehind($option, $pkg, $form, $page)
{
global $database;
$database = JFactory::getDBO();
$row = new facileFormsForms($database);
$row->load($form);
if ($page < $row->pages) {
$database->setQuery(
"update #__facileforms_elements set page=page+1 where form=$form and page>$page"
);
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
} // if
} // if
$row->pages++;
$row->store();
$page++;
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg");
} // addPageBehind
static function addPageBefore($option, $pkg, $form, $page)
{
global $database;
$database = JFactory::getDBO();
$row = new facileFormsForms($database);
$row->load($form);
$database->setQuery(
"update #__facileforms_elements set page=page+1 where form=$form and page>=$page"
);
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
} // if
$row->pages++;
$row->store();
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg");
} // addPageBefore
static function delPage($option, $pkg, $form, $page)
{
global $database;
$database = JFactory::getDBO();
$row = new facileFormsForms($database);
$row->load($form);
$database->setQuery(
"delete from #__facileforms_elements where form=$form and page=$page"
);
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
} // if
$database->setQuery(
"update #__facileforms_elements set page=page-1 where form=$form and page>$page"
);
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
} // if
$row->pages--;
$row->store();
if ($page > $row->pages) $page--;
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg");
} // delPage
static function getPageDestination($option, $pkg, $form, $page)
{
global $database;
$database = JFactory::getDBO();
$row = new facileFormsForms($database);
$row->load($form);
$lst = array();
for($p = 1; $p <= $row->pages; $p++)
$lst[] = JHTML::_('select.option', $p, BFText::_('COM_BREEZINGFORMS_ELEMENTS_PAGE').' '.$p);
$sellist =
JHTML::_('select.genericlist',
$lst, 'destination', 'class="inputbox" size="15"',
'value', 'text', $page
);
HTML_facileFormsElement::getPagedest($option, $pkg, $form, $page, $sellist);
} // getPageDestination
static function movePage($option, $pkg, $form, $page)
{
global $database;
$database = JFactory::getDBO();
$newpage = JRequest::getInt('destination','');
if ($newpage != $page) {
$database->setQuery(
"update #__facileforms_elements set page=0 where form=$form and page=$page"
);
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
} // if
if ($newpage > $page) {
$database->setQuery(
"update #__facileforms_elements set page=page-1 where form=$form and page>$page and page<=$newpage"
);
} else {
$database->setQuery(
"update #__facileforms_elements set page=page+1 where form=$form and page>=$newpage and page<$page"
);
} // if
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
} // if
$database->setQuery(
"update #__facileforms_elements set page=$newpage where form=$form and page=0"
);
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
} // if
$page = $newpage;
} // if
JFactory::getApplication()->redirect("index.php?option=$option&act=editpage&form=$form&page=$page&pkg=$pkg");
} // movePage
} // class facileFormsElement
?>