Added Wiki to JCB. Resolved gh-125 to insure phone numbers are treated as strings. Resolved gh-128 by adding field to Joomla Component View that allows javascript to be added globaly. Converted a few more repeatable fields to subform fields, this is an ongoing project to remove repeatable fields from JCB.
This commit is contained in:
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.5
|
||||
@build 20th September, 2017
|
||||
@version 2.5.6
|
||||
@build 6th October, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage ajax.php
|
||||
@ -319,248 +319,6 @@ class ComponentbuilderModelAjax extends JModelList
|
||||
}
|
||||
|
||||
// Used in layout
|
||||
public function getSnippetDetails($id)
|
||||
{
|
||||
// Get a db connection.
|
||||
$db = JFactory::getDbo();
|
||||
|
||||
// Create a new query object.
|
||||
$query = $db->getQuery(true);
|
||||
$query->select($db->quoteName(array('name', 'heading', 'usage', 'description', 'type', 'snippet', 'url')));
|
||||
$query->from($db->quoteName('#__componentbuilder_snippet'));
|
||||
$query->where($db->quoteName('published') . ' = 1');
|
||||
$query->where($db->quoteName('id') . ' = '. (int) $id);
|
||||
|
||||
// Reset the query using our newly populated query object.
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
if ($db->getNumRows())
|
||||
{
|
||||
$model = ComponentbuilderHelper::getModel('snippets');
|
||||
$snippet = $db->loadObject();
|
||||
$snippet->type = JText::_($model->selectionTranslation($snippet->type,'type'));
|
||||
$snippet->snippet = base64_decode($snippet->snippet);
|
||||
// return found snippet settings
|
||||
return $snippet;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getDynamicValues($id,$view)
|
||||
{
|
||||
// Get a db connection.
|
||||
$db = JFactory::getDbo();
|
||||
|
||||
// Create a new query object.
|
||||
$query = $db->getQuery(true);
|
||||
$query->select($db->quoteName(array('getcustom', 'gettype', 'main_source', 'view_selection', 'db_selection', 'join_view_table', 'join_db_table', 'addcalculation', 'php_calculation')));
|
||||
$query->from($db->quoteName('#__componentbuilder_dynamic_get'));
|
||||
$query->where($db->quoteName('published') . ' = 1');
|
||||
$query->where($db->quoteName('id') . ' = '. (int) $id);
|
||||
|
||||
// Reset the query using our newly populated query object.
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
if ($db->getNumRows())
|
||||
{
|
||||
$result = $db->loadObject();
|
||||
// reset buket
|
||||
$selections = array();
|
||||
$selectionsList = array();
|
||||
// get the main values (name)
|
||||
if ($result->main_source == 1)
|
||||
{
|
||||
$selections[] = explode("\n",$result->view_selection);
|
||||
}
|
||||
elseif ($result->main_source == 2)
|
||||
{
|
||||
$selections[] = explode("\n",$result->db_selection);
|
||||
}
|
||||
elseif ($result->main_source == 3)
|
||||
{
|
||||
return '<br /><br /><h2>Custom get source! You will need to transpose the variables manually.</h2>';
|
||||
}
|
||||
// get the joined values (name)
|
||||
$join_view_table = json_decode($result->join_view_table,true);
|
||||
unset($result->join_view_table);
|
||||
if (ComponentbuilderHelper::checkArray($join_view_table))
|
||||
{
|
||||
foreach ($join_view_table as $option => $values)
|
||||
{
|
||||
foreach ($values as $nr => $value)
|
||||
{
|
||||
$result->join_view_table[$nr][$option] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($join_view_table);
|
||||
$join_db_table = json_decode($result->join_db_table,true);
|
||||
unset($result->join_db_table);
|
||||
if (ComponentbuilderHelper::checkArray($join_db_table))
|
||||
{
|
||||
foreach ($join_db_table as $option => $values)
|
||||
{
|
||||
foreach ($values as $nr => $value)
|
||||
{
|
||||
$result->join_db_table[$nr][$option] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($join_db_table);
|
||||
// now load the joined values to the selection set
|
||||
if (isset($result->join_view_table) && ComponentbuilderHelper::checkArray($result->join_view_table))
|
||||
{
|
||||
foreach ($result->join_view_table as $join_view_table)
|
||||
{
|
||||
if ($join_view_table['row_type'] == '1')
|
||||
{
|
||||
$selections[] = explode("\n",$join_view_table['selection']);
|
||||
}
|
||||
elseif ($join_view_table['row_type'] == '2')
|
||||
{
|
||||
$names = $this->setListMethodName(array($join_view_table['on_field'],$join_view_table['join_field']),$join_view_table['view_table'],$join_view_table['as'],1);
|
||||
$selectionsList[implode('',$names)] = explode("\n",$join_view_table['selection']);
|
||||
}
|
||||
}
|
||||
unset($result->join_view_table);
|
||||
}
|
||||
if (isset($result->join_db_table) && ComponentbuilderHelper::checkArray($result->join_db_table))
|
||||
{
|
||||
foreach ($result->join_db_table as $join_db_table)
|
||||
{
|
||||
if ($join_db_table['row_type'] == '1')
|
||||
{
|
||||
$selections[] = explode("\n",$join_db_table['selection']);
|
||||
}
|
||||
elseif ($join_db_table['row_type'] == '2')
|
||||
{
|
||||
$names = $this->setListMethodName(array($join_db_table['on_field'],$join_db_table['join_field']),$join_db_table['db_table'],$join_db_table['as'],2);
|
||||
$selectionsList[implode('',$names)] = explode("\n",$join_db_table['selection']);
|
||||
}
|
||||
}
|
||||
unset($result->join_db_table);
|
||||
}
|
||||
// get the calculation reult values (name)
|
||||
if ($result->addcalculation == 1)
|
||||
{
|
||||
$php_calculation = base64_decode($result->php_calculation);
|
||||
$phpSelections = ComponentbuilderHelper::getAllBetween($php_calculation,'cal__',' ');
|
||||
$selections[] = array_unique($phpSelections);
|
||||
unset($php_calculation);
|
||||
unset($phpSelections);
|
||||
unset($result->php_calculation);
|
||||
}
|
||||
// name the main var based on view
|
||||
if ($view == 'template')
|
||||
{
|
||||
switch ($result->gettype)
|
||||
{
|
||||
case 1:
|
||||
// single
|
||||
$buketName = 'this->item';
|
||||
break;
|
||||
case 2:
|
||||
// list
|
||||
$buketName = 'this->items';
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
// custom
|
||||
$result->getcustom = ComponentbuilderHelper::safeString($result->getcustom);
|
||||
if (substr($result->getcustom, 0, strlen('get')) == 'get')
|
||||
{
|
||||
$varName = substr($result->getcustom, strlen('get'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$varName = $result->getcustom;
|
||||
}
|
||||
$buketName = 'this->'.$varName;
|
||||
break;
|
||||
}
|
||||
}
|
||||
elseif ($view == 'layout')
|
||||
{
|
||||
$buketName = 'displayData';
|
||||
}
|
||||
// now build the return values
|
||||
if (ComponentbuilderHelper::checkArray($selections))
|
||||
{
|
||||
$buket = array();
|
||||
switch ($result->gettype)
|
||||
{
|
||||
case 1:
|
||||
case 3:
|
||||
// single
|
||||
$ur = '<?php echo $'.$buketName;
|
||||
$cf = '; ?>';
|
||||
break;
|
||||
case 2:
|
||||
case 4:
|
||||
// list
|
||||
$ur = '<?php echo $item';
|
||||
$cf = '; ?>';
|
||||
$buket[] = '<code><?php foreach ($'.$buketName.' as $item): ?></code><br />';
|
||||
break;
|
||||
}
|
||||
foreach ($selections as $selection)
|
||||
{
|
||||
if (ComponentbuilderHelper::checkArray($selection))
|
||||
{
|
||||
foreach ($selection as $value)
|
||||
{
|
||||
if (strpos($value,'AS') !== false)
|
||||
{
|
||||
list($table,$key) = explode('AS',$value);
|
||||
$buket[] = '<code>'.$ur.'->'.trim($key).$cf.'</code>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$buket[] = '<code>'.$ur.'->'.trim($value).$cf.'</code>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ComponentbuilderHelper::checkArray($selectionsList))
|
||||
{
|
||||
$buket[] = '<hr />';
|
||||
foreach ($selectionsList as $name => $selectionList)
|
||||
{
|
||||
if (ComponentbuilderHelper::checkArray($selectionList))
|
||||
{
|
||||
$ur = '<?php echo $'.$name;
|
||||
$cf = '; ?>';
|
||||
$buket[] = '<code><?php foreach ($item->'.$name.' as $'.$name.'): ?></code><br />';
|
||||
foreach ($selectionList as $value)
|
||||
{
|
||||
if (strpos($value,'AS') !== false)
|
||||
{
|
||||
list($table,$key) = explode('AS',$value);
|
||||
$buket[] = '<code>'.$ur.'->'.trim($key).$cf.'</code>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$buket[] = '<code>'.$ur.'->'.trim($value).$cf.'</code>';
|
||||
}
|
||||
}
|
||||
$buket[] = '<br /><code><?php endforeach; ?></code><hr />';
|
||||
}
|
||||
}
|
||||
}
|
||||
switch ($result->gettype)
|
||||
{
|
||||
case 2:
|
||||
case 4:
|
||||
// list
|
||||
$buket[] = '<br /><code><?php endforeach; ?></code>';
|
||||
break;
|
||||
}
|
||||
return implode(' ',$buket);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getLayoutDetails($id)
|
||||
{
|
||||
// Get a db connection.
|
||||
@ -613,129 +371,17 @@ class ComponentbuilderModelAjax extends JModelList
|
||||
return implode("\n",$layoutString);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getDynamicFormDetails($id)
|
||||
{
|
||||
// Get a db connection.
|
||||
$db = JFactory::getDbo();
|
||||
|
||||
// Create a new query object.
|
||||
$query = $db->getQuery(true);
|
||||
$query->select($db->quoteName(array('a.name','a.name_code','a.filterbuilder_map')));
|
||||
$query->from($db->quoteName('#__componentbuilder_dynamic_form', 'a'));
|
||||
$query->where($db->quoteName('a.id') . ' != '.(int) $id);
|
||||
$query->where($db->quoteName('a.published') . ' = 1');
|
||||
|
||||
// Reset the query using our newly populated query object.
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
if ($db->getNumRows())
|
||||
{
|
||||
$results = $db->loadObjectList();
|
||||
$string = array('<h3>Dynamic Form Links</h3><div class="row-fluid form-horizontal-desktop">');
|
||||
foreach ($results as $result)
|
||||
{
|
||||
$dynamicIds = array();
|
||||
$result->filterbuilder_map = base64_decode($result->filterbuilder_map);
|
||||
if (ComponentbuilderHelper::checkString($result->filterbuilder_map) && strpos($result->filterbuilder_map, PHP_EOL) !== false)
|
||||
{
|
||||
$filters = explode(PHP_EOL, $result->filterbuilder_map);
|
||||
if (ComponentbuilderHelper::checkArray($filters))
|
||||
{
|
||||
foreach ($filters as $filter)
|
||||
{
|
||||
if (strpos($filter, 'Id') !== false || strpos($filter, 'id') !== false)
|
||||
{
|
||||
list($idkey, $dump) = explode('=>', $filter);
|
||||
$dynamicIds[] = "&".trim($idkey)."=<?php echo \$displayData->".trim($idkey)."; ?>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$string[] = "<div>dynamicForm: <b>".$result->name."</b><br /><code><a href=\"index.php?option=com_[[[component]]]&task=form." . $result->name_code . implode('',$dynamicIds) ."&ref=compiler\">" . $result->name . "</a></code></div>";
|
||||
}
|
||||
$string[] = "</div><hr />";
|
||||
return implode("\n",$string);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function setListMethodName($names,$table,$as,$type)
|
||||
{
|
||||
$methodNames = array();
|
||||
if (ComponentbuilderHelper::checkArray($names))
|
||||
{
|
||||
foreach ($names as $nr => $name)
|
||||
{
|
||||
if (ComponentbuilderHelper::checkString($name))
|
||||
{
|
||||
if (strpos($name,'.') !== false)
|
||||
{
|
||||
list($dump,$var) = explode('.',$name);
|
||||
}
|
||||
else
|
||||
{
|
||||
$var = $name;
|
||||
}
|
||||
if ($nr > 0)
|
||||
{
|
||||
$methodNames[] = ComponentbuilderHelper::safeString($var,'F');
|
||||
}
|
||||
else
|
||||
{
|
||||
$methodNames[] = ComponentbuilderHelper::safeString($var);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
switch ($type)
|
||||
{
|
||||
// set view name
|
||||
case 1:
|
||||
$methodNames[] = ComponentbuilderHelper::safeString($this->getViewName($table),'F');
|
||||
break;
|
||||
// set db name
|
||||
case 2:
|
||||
$methodNames[] = ComponentbuilderHelper::safeString($table,'F');
|
||||
break;
|
||||
|
||||
}
|
||||
// make sure there is uniqe method names
|
||||
$methodNames[] = ComponentbuilderHelper::safeString($as,'U');
|
||||
return $methodNames;
|
||||
}
|
||||
|
||||
protected function getViewName($id)
|
||||
{
|
||||
// Get a db connection.
|
||||
$db = JFactory::getDbo();
|
||||
|
||||
// Create a new query object.
|
||||
$query = $db->getQuery(true);
|
||||
$query->select($db->quoteName(array('name_single')));
|
||||
$query->from($db->quoteName('#__componentbuilder_admin_view'));
|
||||
$query->where($db->quoteName('id') . ' = '. (int) $id);
|
||||
|
||||
// Reset the query using our newly populated query object.
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
if ($db->getNumRows())
|
||||
{
|
||||
return $db->loadResult();
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
// Used in dynamic_get
|
||||
public function getViewTableColumns($id,$as,$type)
|
||||
public function getViewTableColumns($id, $as, $type)
|
||||
{
|
||||
// Get a db connection.
|
||||
$db = JFactory::getDbo();
|
||||
|
||||
// Create a new query object.
|
||||
$query = $db->getQuery(true);
|
||||
$query->select($db->quoteName(array('addfields','name_single')));
|
||||
$query->select($db->quoteName(array('addfields', 'name_single')));
|
||||
$query->from($db->quoteName('#__componentbuilder_admin_view'));
|
||||
$query->where($db->quoteName('published') . ' = 1');
|
||||
$query->where($db->quoteName('id') . ' = '. $id);
|
||||
@ -747,14 +393,11 @@ class ComponentbuilderModelAjax extends JModelList
|
||||
{
|
||||
$result = $db->loadObject();
|
||||
$description = '';
|
||||
$tableName = '';
|
||||
if (1 == $type)
|
||||
{
|
||||
$tableName = ComponentbuilderHelper::safeString($result->name_single).'_';
|
||||
}
|
||||
else
|
||||
{
|
||||
$tableName = '';
|
||||
}
|
||||
$addfields = json_decode($result->addfields,true);
|
||||
if (ComponentbuilderHelper::checkArray($addfields))
|
||||
{
|
||||
@ -878,23 +521,294 @@ class ComponentbuilderModelAjax extends JModelList
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getDbTableColumns($tableName,$as,$type)
|
||||
public function getDbTableColumns($tableName, $as, $type)
|
||||
{
|
||||
// Get a db connection.
|
||||
$db = JFactory::getDbo();
|
||||
// get the columns
|
||||
$columns = $db->getTableColumns("#__".$tableName);
|
||||
// set the type (multi or single)
|
||||
$unique = '';
|
||||
if (1 == $type)
|
||||
{
|
||||
$unique = ComponentbuilderHelper::safeString($tableName).'_';
|
||||
}
|
||||
if (ComponentbuilderHelper::checkArray($columns))
|
||||
{
|
||||
// build the return string
|
||||
$tableColumns = array();
|
||||
foreach ($columns as $column => $type)
|
||||
foreach ($columns as $column => $typeCast)
|
||||
{
|
||||
$tableColumns[] = $as.".".$column . ' AS ' . $column;
|
||||
$tableColumns[] = $as.".".$column . ' AS ' . $unique . $column;
|
||||
}
|
||||
return implode("\n",$tableColumns);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getDynamicValues($id, $view)
|
||||
{
|
||||
// Get a db connection.
|
||||
$db = JFactory::getDbo();
|
||||
|
||||
// Create a new query object.
|
||||
$query = $db->getQuery(true);
|
||||
$query->select($db->quoteName(array('getcustom', 'gettype', 'main_source', 'view_selection', 'db_selection', 'join_view_table', 'join_db_table', 'addcalculation', 'php_calculation')));
|
||||
$query->from($db->quoteName('#__componentbuilder_dynamic_get'));
|
||||
$query->where($db->quoteName('published') . ' = 1');
|
||||
$query->where($db->quoteName('id') . ' = '. (int) $id);
|
||||
|
||||
// Reset the query using our newly populated query object.
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
if ($db->getNumRows())
|
||||
{
|
||||
$result = $db->loadObject();
|
||||
// reset buket
|
||||
$selections = array();
|
||||
$selectionsList = array();
|
||||
// get the main values (name)
|
||||
if ($result->main_source == 1)
|
||||
{
|
||||
$selections[] = explode("\n",$result->view_selection);
|
||||
}
|
||||
elseif ($result->main_source == 2)
|
||||
{
|
||||
$selections[] = explode("\n",$result->db_selection);
|
||||
}
|
||||
elseif ($result->main_source == 3)
|
||||
{
|
||||
return '<br /><br /><h2>Custom get source! You will need to transpose the variables manually.</h2>';
|
||||
}
|
||||
// get the joined values (name)
|
||||
$result->join_view_table = json_decode($result->join_view_table, true);
|
||||
if (!ComponentbuilderHelper::checkArray($result->join_view_table))
|
||||
{
|
||||
unset($result->join_view_table);
|
||||
}
|
||||
$result->join_db_table = json_decode($result->join_db_table, true);
|
||||
if (!ComponentbuilderHelper::checkArray($result->join_db_table))
|
||||
{
|
||||
unset($result->join_db_table);
|
||||
}
|
||||
// now load the joined values to the selection set
|
||||
if (isset($result->join_view_table) && ComponentbuilderHelper::checkArray($result->join_view_table))
|
||||
{
|
||||
foreach ($result->join_view_table as $join_view_table)
|
||||
{
|
||||
if ($join_view_table['row_type'] == '1')
|
||||
{
|
||||
$selections[] = explode("\n",$join_view_table['selection']);
|
||||
}
|
||||
elseif ($join_view_table['row_type'] == '2')
|
||||
{
|
||||
$names = $this->setListMethodName(array($join_view_table['on_field'],$join_view_table['join_field']),$join_view_table['view_table'],$join_view_table['as'],1);
|
||||
$selectionsList[implode('',$names)] = explode("\n",$join_view_table['selection']);
|
||||
}
|
||||
}
|
||||
unset($result->join_view_table);
|
||||
}
|
||||
if (isset($result->join_db_table) && ComponentbuilderHelper::checkArray($result->join_db_table))
|
||||
{
|
||||
foreach ($result->join_db_table as $join_db_table)
|
||||
{
|
||||
if ($join_db_table['row_type'] == '1')
|
||||
{
|
||||
$selections[] = explode("\n",$join_db_table['selection']);
|
||||
}
|
||||
elseif ($join_db_table['row_type'] == '2')
|
||||
{
|
||||
$names = $this->setListMethodName(array($join_db_table['on_field'],$join_db_table['join_field']),$join_db_table['db_table'],$join_db_table['as'],2);
|
||||
$selectionsList[implode('',$names)] = explode("\n",$join_db_table['selection']);
|
||||
}
|
||||
}
|
||||
unset($result->join_db_table);
|
||||
}
|
||||
// get the calculation result values (name)
|
||||
if ($result->addcalculation == 1)
|
||||
{
|
||||
$php_calculation = base64_decode($result->php_calculation);
|
||||
$phpSelections = ComponentbuilderHelper::getAllBetween($php_calculation,'cal__',' ');
|
||||
$selections[] = array_unique($phpSelections);
|
||||
unset($php_calculation);
|
||||
unset($phpSelections);
|
||||
unset($result->php_calculation);
|
||||
}
|
||||
// name the main var based on view
|
||||
if ($view == 'template')
|
||||
{
|
||||
switch ($result->gettype)
|
||||
{
|
||||
case 1:
|
||||
// single
|
||||
$buketName = 'this->item';
|
||||
break;
|
||||
case 2:
|
||||
// list
|
||||
$buketName = 'this->items';
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
// custom
|
||||
$result->getcustom = ComponentbuilderHelper::safeString($result->getcustom);
|
||||
if (substr($result->getcustom, 0, strlen('get')) == 'get')
|
||||
{
|
||||
$varName = substr($result->getcustom, strlen('get'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$varName = $result->getcustom;
|
||||
}
|
||||
$buketName = 'this->'.$varName;
|
||||
break;
|
||||
}
|
||||
}
|
||||
elseif ($view == 'layout')
|
||||
{
|
||||
$buketName = 'displayData';
|
||||
}
|
||||
// now build the return values
|
||||
if (ComponentbuilderHelper::checkArray($selections))
|
||||
{
|
||||
$buket = array();
|
||||
switch ($result->gettype)
|
||||
{
|
||||
case 1:
|
||||
case 3:
|
||||
// single
|
||||
$ur = '<?php echo $'.$buketName;
|
||||
$cf = '; ?>';
|
||||
break;
|
||||
case 2:
|
||||
case 4:
|
||||
// list
|
||||
$ur = '<?php echo $item';
|
||||
$cf = '; ?>';
|
||||
$buket[] = '<code><?php foreach ($'.$buketName.' as $item): ?></code><br />';
|
||||
break;
|
||||
}
|
||||
foreach ($selections as $selection)
|
||||
{
|
||||
if (ComponentbuilderHelper::checkArray($selection))
|
||||
{
|
||||
foreach ($selection as $value)
|
||||
{
|
||||
if (strpos($value,'AS') !== false)
|
||||
{
|
||||
list($table,$key) = explode('AS',$value);
|
||||
$buket[] = '<code>'.$ur.'->'.trim($key).$cf.'</code>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$buket[] = '<code>'.$ur.'->'.trim($value).$cf.'</code>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ComponentbuilderHelper::checkArray($selectionsList))
|
||||
{
|
||||
$buket[] = '<hr />';
|
||||
foreach ($selectionsList as $name => $selectionList)
|
||||
{
|
||||
if (ComponentbuilderHelper::checkArray($selectionList))
|
||||
{
|
||||
$ur = '<?php echo $'.$name;
|
||||
$cf = '; ?>';
|
||||
$buket[] = '<code><?php foreach ($item->'.$name.' as $'.$name.'): ?></code><br />';
|
||||
foreach ($selectionList as $value)
|
||||
{
|
||||
if (strpos($value,'AS') !== false)
|
||||
{
|
||||
list($table,$key) = explode('AS',$value);
|
||||
$buket[] = '<code>'.$ur.'->'.trim($key).$cf.'</code>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$buket[] = '<code>'.$ur.'->'.trim($value).$cf.'</code>';
|
||||
}
|
||||
}
|
||||
$buket[] = '<br /><code><?php endforeach; ?></code><hr />';
|
||||
}
|
||||
}
|
||||
}
|
||||
switch ($result->gettype)
|
||||
{
|
||||
case 2:
|
||||
case 4:
|
||||
// list
|
||||
$buket[] = '<br /><code><?php endforeach; ?></code>';
|
||||
break;
|
||||
}
|
||||
return implode(' ',$buket);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function setListMethodName($names,$table,$as,$type)
|
||||
{
|
||||
$methodNames = array();
|
||||
if (ComponentbuilderHelper::checkArray($names))
|
||||
{
|
||||
foreach ($names as $nr => $name)
|
||||
{
|
||||
if (ComponentbuilderHelper::checkString($name))
|
||||
{
|
||||
if (strpos($name,'.') !== false)
|
||||
{
|
||||
list($dump,$var) = explode('.',$name);
|
||||
}
|
||||
else
|
||||
{
|
||||
$var = $name;
|
||||
}
|
||||
if ($nr > 0)
|
||||
{
|
||||
$methodNames[] = ComponentbuilderHelper::safeString($var,'F');
|
||||
}
|
||||
else
|
||||
{
|
||||
$methodNames[] = ComponentbuilderHelper::safeString($var);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
switch ($type)
|
||||
{
|
||||
// set view name
|
||||
case 1:
|
||||
$methodNames[] = ComponentbuilderHelper::safeString($this->getViewName($table),'F');
|
||||
break;
|
||||
// set db name
|
||||
case 2:
|
||||
$methodNames[] = ComponentbuilderHelper::safeString($table,'F');
|
||||
break;
|
||||
|
||||
}
|
||||
// make sure there is uniqe method names
|
||||
$methodNames[] = ComponentbuilderHelper::safeString($as,'U');
|
||||
return $methodNames;
|
||||
}
|
||||
|
||||
protected function getViewName($id)
|
||||
{
|
||||
// Get a db connection.
|
||||
$db = JFactory::getDbo();
|
||||
|
||||
// Create a new query object.
|
||||
$query = $db->getQuery(true);
|
||||
$query->select($db->quoteName(array('name_single')));
|
||||
$query->from($db->quoteName('#__componentbuilder_admin_view'));
|
||||
$query->where($db->quoteName('id') . ' = '. (int) $id);
|
||||
|
||||
// Reset the query using our newly populated query object.
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
if ($db->getNumRows())
|
||||
{
|
||||
return $db->loadResult();
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
// Used in custom_code
|
||||
@ -1073,6 +987,34 @@ class ComponentbuilderModelAjax extends JModelList
|
||||
return false;
|
||||
}
|
||||
|
||||
// Used in snippet
|
||||
public function getSnippetDetails($id)
|
||||
{
|
||||
// Get a db connection.
|
||||
$db = JFactory::getDbo();
|
||||
|
||||
// Create a new query object.
|
||||
$query = $db->getQuery(true);
|
||||
$query->select($db->quoteName(array('name', 'heading', 'usage', 'description', 'type', 'snippet', 'url')));
|
||||
$query->from($db->quoteName('#__componentbuilder_snippet'));
|
||||
$query->where($db->quoteName('published') . ' = 1');
|
||||
$query->where($db->quoteName('id') . ' = '. (int) $id);
|
||||
|
||||
// Reset the query using our newly populated query object.
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
if ($db->getNumRows())
|
||||
{
|
||||
$model = ComponentbuilderHelper::getModel('snippets');
|
||||
$snippet = $db->loadObject();
|
||||
$snippet->type = JText::_($model->selectionTranslation($snippet->type,'type'));
|
||||
$snippet->snippet = base64_decode($snippet->snippet);
|
||||
// return found snippet settings
|
||||
return $snippet;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Used in field
|
||||
public function getFieldOptions($id)
|
||||
{
|
||||
|
Reference in New Issue
Block a user