Added edit links to templates and layouts. Fixed the alias and title selection issue in admin fields area. Added all available languages in Joomla to language area.

This commit is contained in:
2018-04-19 17:52:47 +02:00
parent 48a3a49d6f
commit d1813147d3
22 changed files with 306 additions and 63 deletions

View File

@ -1362,14 +1362,14 @@ class ComponentbuilderModelAjax extends JModelList
// set table
$table = false;
// Get a db connection.
$db = JFactory::getDbo();
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
$query->select($db->quoteName(array('a.alias','a.template','b.name')));
$query->select($db->quoteName(array('a.id','a.alias','a.template','b.name','a.dynamic_get')));
$query->from($db->quoteName('#__componentbuilder_template', 'a'));
$query->join('LEFT', $db->quoteName('#__componentbuilder_dynamic_get', 'b') . ' ON (' . $db->quoteName('b.id') . ' = ' . $db->quoteName('a.dynamic_get') . ')');
$query->where($db->quoteName('a.id') . ' != '.(int) $id);
$query->where($db->quoteName('a.published') . ' = 1');
$query->where($db->quoteName('a.published') . ' = 1');
// Reset the query using our newly populated query object.
$db->setQuery($query);
$db->execute();
@ -1377,9 +1377,20 @@ class ComponentbuilderModelAjax extends JModelList
{
$results = $db->loadObjectList();
$templateString = array();
// get the view name & id
$values = $this->getViewID();
// check if we are in the correct view.
if (!is_null($values['a_id']) && $values['a_id'] > 0 && strlen($values['a_view']))
{
// set the return ref
$this->ref = '&ref=' . $values['a_view'] . '&refid=' . $values['a_id'];
}
foreach ($results as $result)
{
$templateString[] = "<td><b>".$result->name."</b></td><td><code>&lt;?php echo \$this->loadTemplate('".ComponentbuilderHelper::safeString($result->alias)."'); ?&gt;</code></td>";
$edit = ($button = $this->addEditLink($result->id, 'template', 'templates')) ? $button : '';
$editget = (isset($result->dynamic_get) && $result->dynamic_get > 0 && $button = $this->addEditLink($result->dynamic_get, 'dynamic_get', 'dynamic_gets')) ? $button : '';
$result->name = (ComponentbuilderHelper::checkString($result->name)) ? $result->name : JText::_('COM_COMPONENTBUILDER_NONE_SELECTED');
$templateString[] = "<td><b>".$result->name."</b> ".$editget."</td><td><code>&lt;?php echo \$this->loadTemplate('".ComponentbuilderHelper::safeString($result->alias)."'); ?&gt;</code> ".$edit."</td>";
}
// build the table
$table = '<h2>'.JText::_('COM_COMPONENTBUILDER_TEMPLATE_CODE_SNIPPETS').'</h2><div class="uk-scrollable-box"><table class="uk-table uk-table-hover uk-table-striped uk-table-condensed">';
@ -1396,14 +1407,14 @@ class ComponentbuilderModelAjax extends JModelList
// set table
$table = false;
// Get a db connection.
$db = JFactory::getDbo();
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
$query->select($db->quoteName(array('a.alias','a.layout','b.getcustom','b.gettype','b.name')));
$query->select($db->quoteName(array('a.id','a.alias','a.layout','b.getcustom','b.gettype','b.name','a.dynamic_get')));
$query->from($db->quoteName('#__componentbuilder_layout', 'a'));
$query->join('LEFT', $db->quoteName('#__componentbuilder_dynamic_get', 'b') . ' ON (' . $db->quoteName('b.id') . ' = ' . $db->quoteName('a.dynamic_get') . ')');
$query->where($db->quoteName('a.id') . ' != '.(int) $id);
$query->where($db->quoteName('a.published') . ' = 1');
$query->where($db->quoteName('a.published') . ' = 1');
// Reset the query using our newly populated query object.
$db->setQuery($query);
$db->execute();
@ -1411,17 +1422,29 @@ class ComponentbuilderModelAjax extends JModelList
{
$results = $db->loadObjectList();
$layoutString = array();
// get the view name & id
$values = $this->getViewID();
// check if we are in the correct view.
if (!is_null($values['a_id']) && $values['a_id'] > 0 && strlen($values['a_view']))
{
// set the return ref
$this->ref = '&ref=' . $values['a_view'] . '&refid=' . $values['a_id'];
}
foreach ($results as $result)
{
$edit = ($button = $this->addEditLink($result->id, 'layout', 'layouts')) ? $button : '';
$editget = (isset($result->dynamic_get) && $result->dynamic_get > 0 && $button = $this->addEditLink($result->dynamic_get, 'dynamic_get', 'dynamic_gets')) ? $button : '';
$result->name = (ComponentbuilderHelper::checkString($result->name)) ? $result->name : JText::_('COM_COMPONENTBUILDER_NONE_SELECTED');
switch ($result->gettype)
{
case 1:
// single
$layoutString[] = "<td><b>".$result->name."</b></td><td><code>&lt;?php echo JLayoutHelper::render('".ComponentbuilderHelper::safeString($result->alias)."', \$this->item); ?&gt;</code></td>";
$layoutString[] = "<td><b>".$result->name."</b> ".$editget."</td><td><code>&lt;?php echo JLayoutHelper::render('".ComponentbuilderHelper::safeString($result->alias)."', \$this->item); ?&gt;</code> ".$edit."</td>";
break;
case 2:
// list
$layoutString[] = "<td><b>".$result->name."</b></td><td><code>&lt;?php echo JLayoutHelper::render('".ComponentbuilderHelper::safeString($result->alias)."', \$this->items); ?&gt;</code></td>";
$layoutString[] = "<td><b>".$result->name."</b> ".$editget."</td><td><code>&lt;?php echo JLayoutHelper::render('".ComponentbuilderHelper::safeString($result->alias)."', \$this->items); ?&gt;</code> ".$edit."</td>";
break;
case 3:
case 4:
@ -1435,7 +1458,7 @@ class ComponentbuilderModelAjax extends JModelList
{
$varName = $result->getcustom;
}
$layoutString[] = "<td><b>".$result->name."</b></td><td><code>&lt;?php echo JLayoutHelper::render('".ComponentbuilderHelper::safeString($result->alias)."', \$this->".$varName."); ?&gt;</code></td>";
$layoutString[] = "<td><b>".$result->name."</b> ".$editget."</td><td><code>&lt;?php echo JLayoutHelper::render('".ComponentbuilderHelper::safeString($result->alias)."', \$this->".$varName."); ?&gt;</code> ".$edit."</td>";
break;
}
}

View File

@ -49,23 +49,23 @@ class JFormFieldLang extends JFormFieldList
*/
public function getOptions()
{
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('a.langtag','a.name'),array('langtag','language_name')));
$query->from($db->quoteName('#__componentbuilder_language', 'a'));
$query->where($db->quoteName('a.published') . ' >= 1');
$query->order('a.langtag ASC');
$db->setQuery((string)$query);
$items = $db->loadObjectList();
$options = array();
if ($items)
{
$options[] = JHtml::_('select.option', '', 'Select an option');
foreach($items as $item)
{
$options[] = JHtml::_('select.option', trim($item->langtag), $item->language_name . ' (' .$item->langtag.')');
}
}
return $options;
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('a.langtag','a.name'),array('langtag','language_name')));
$query->from($db->quoteName('#__componentbuilder_language', 'a'));
$query->where($db->quoteName('a.published') . ' >= 1');
$query->order('a.langtag ASC');
$db->setQuery((string)$query);
$items = $db->loadObjectList();
$options = array();
if ($items)
{
$options[] = JHtml::_('select.option', '', 'Select an option');
foreach($items as $item)
{
$options[] = JHtml::_('select.option', trim($item->langtag), $item->language_name . ' (' .$item->langtag.')');
}
}
return $options;
}
}

View File

@ -158,6 +158,7 @@
required="false"
description="COM_COMPONENTBUILDER_ADMIN_FIELDS_TITLE_DESCRIPTION"
class="inputbox"
onchange="checkTitle(this)"
/>
<!-- Alias Field. Type: Checkbox. (joomla) -->
<field
@ -168,6 +169,7 @@
required="false"
description="COM_COMPONENTBUILDER_ADMIN_FIELDS_ALIAS_DESCRIPTION"
class="inputbox"
onchange="checkAlias(this)"
/>
<!-- Sort Field. Type: Checkbox. (joomla) -->
<field

View File

@ -544,7 +544,7 @@ function getDynamicValues(id){
}
function getLayoutDetails_server(id){
var getUrl = "index.php?option=com_componentbuilder&task=ajax.getLayoutDetails&format=json";
var getUrl = "index.php?option=com_componentbuilder&task=ajax.getLayoutDetails&format=json&vdm="+vastDevMod;
if(token.length > 0 && id > 0){
var request = 'token='+token+'&id='+id;
}
@ -570,7 +570,7 @@ function getLayoutDetails(id){
}
function getTemplateDetails_server(id){
var getUrl = "index.php?option=com_componentbuilder&task=ajax.templateDetails&format=json";
var getUrl = "index.php?option=com_componentbuilder&task=ajax.templateDetails&format=json&vdm="+vastDevMod;
if(token.length > 0 && id > 0){
var request = 'token='+token+'&id='+id;
}

View File

@ -178,7 +178,7 @@ function getDynamicValues(id){
}
function getLayoutDetails_server(id){
var getUrl = "index.php?option=com_componentbuilder&task=ajax.getLayoutDetails&format=json";
var getUrl = "index.php?option=com_componentbuilder&task=ajax.getLayoutDetails&format=json&vdm="+vastDevMod;
if(token.length > 0 && id > 0){
var request = 'token='+token+'&id='+id;
}

View File

@ -585,7 +585,7 @@ function getDynamicValues(id){
}
function getLayoutDetails_server(id){
var getUrl = "index.php?option=com_componentbuilder&task=ajax.getLayoutDetails&format=json";
var getUrl = "index.php?option=com_componentbuilder&task=ajax.getLayoutDetails&format=json&vdm="+vastDevMod;
if(token.length > 0 && id > 0){
var request = 'token='+token+'&id='+id;
}
@ -611,7 +611,7 @@ function getLayoutDetails(id){
}
function getTemplateDetails_server(id){
var getUrl = "index.php?option=com_componentbuilder&task=ajax.templateDetails&format=json";
var getUrl = "index.php?option=com_componentbuilder&task=ajax.templateDetails&format=json&vdm="+vastDevMod;
if(token.length > 0 && id > 0){
var request = 'token='+token+'&id='+id;
}

View File

@ -178,7 +178,7 @@ function getDynamicValues(id){
}
function getLayoutDetails_server(id){
var getUrl = "index.php?option=com_componentbuilder&task=ajax.getLayoutDetails&format=json";
var getUrl = "index.php?option=com_componentbuilder&task=ajax.getLayoutDetails&format=json&vdm="+vastDevMod;
if(token.length > 0 && id > 0){
var request = 'token='+token+'&id='+id;
}
@ -204,7 +204,7 @@ function getLayoutDetails(id){
}
function getTemplateDetails_server(id){
var getUrl = "index.php?option=com_componentbuilder&task=ajax.templateDetails&format=json";
var getUrl = "index.php?option=com_componentbuilder&task=ajax.templateDetails&format=json&vdm="+vastDevMod;
if(token.length > 0 && id > 0){
var request = 'token='+token+'&id='+id;
}

View File

@ -138,6 +138,13 @@ class ComponentbuilderModelLanguages extends JModelList
$languages[$language->name] = $language;
}
// we must add the British language en-GB (since Joomla Ships with it)
$language = new stdClass;
$language->name = 'English GB';
$language->element = 'pkg_en-GB';
$language->type = 'package';
$languages[$language->name] = $language;
usort($languages, function($a, $b)
{
return strcmp($a->name, $b->name);

View File

@ -64,6 +64,11 @@ class ComponentbuilderModelLayout extends JModelAdmin
public function getTable($type = 'layout', $prefix = 'ComponentbuilderTable', $config = array())
{
return JTable::getInstance($type, $prefix, $config);
}
public function getVDM()
{
return $this->vastDevMod;
}
/**
@ -113,6 +118,27 @@ class ComponentbuilderModelLayout extends JModelAdmin
{
// base64 Decode layout.
$item->layout = base64_decode($item->layout);
}
if (empty($item->id))
{
$id = 0;
}
else
{
$id = $item->id;
}
// set the id and view name to session
if ($vdm = ComponentbuilderHelper::get('layout__'.$id))
{
$this->vastDevMod = $vdm;
}
else
{
$this->vastDevMod = ComponentbuilderHelper::randomkey(50);
ComponentbuilderHelper::set($this->vastDevMod, 'layout__'.$id);
ComponentbuilderHelper::set('layout__'.$id, $this->vastDevMod);
}
if (!empty($item->id))

View File

@ -64,6 +64,11 @@ class ComponentbuilderModelTemplate extends JModelAdmin
public function getTable($type = 'template', $prefix = 'ComponentbuilderTable', $config = array())
{
return JTable::getInstance($type, $prefix, $config);
}
public function getVDM()
{
return $this->vastDevMod;
}
/**
@ -113,6 +118,27 @@ class ComponentbuilderModelTemplate extends JModelAdmin
{
// base64 Decode template.
$item->template = base64_decode($item->template);
}
if (empty($item->id))
{
$id = 0;
}
else
{
$id = $item->id;
}
// set the id and view name to session
if ($vdm = ComponentbuilderHelper::get('template__'.$id))
{
$this->vastDevMod = $vdm;
}
else
{
$this->vastDevMod = ComponentbuilderHelper::randomkey(50);
ComponentbuilderHelper::set($this->vastDevMod, 'template__'.$id);
ComponentbuilderHelper::set('template__'.$id, $this->vastDevMod);
}
if (!empty($item->id))