Added notice to the compiler where it detects mismatching category view target names. Added the update script for categories in JCB. Made adjustments all across JCB to act according to gh-561 implementation.
This commit is contained in:
@ -144,11 +144,11 @@ TODO
|
||||
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
|
||||
+ *First Build*: 30th April, 2015
|
||||
+ *Last Build*: 29th May, 2020
|
||||
+ *Last Build*: 30th May, 2020
|
||||
+ *Version*: 2.11.2
|
||||
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
|
||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||
+ *Line count*: **282456**
|
||||
+ *Line count*: **282524**
|
||||
+ *Field count*: **1522**
|
||||
+ *File count*: **1785**
|
||||
+ *Folder count*: **295**
|
||||
|
@ -4112,7 +4112,7 @@ class Fields extends Structure
|
||||
{
|
||||
$this->setScriptMediaSwitch[$typeName] = $typeName;
|
||||
}
|
||||
// setup gategory for this view
|
||||
// setup category for this view
|
||||
if ($dbSwitch && $typeName === 'category')
|
||||
{
|
||||
if (isset($this->catOtherName[$view_name_list])
|
||||
@ -4134,13 +4134,37 @@ class Fields extends Structure
|
||||
$field['settings']->xml, 'extension="', '"'
|
||||
), $this->placeholders
|
||||
);
|
||||
// if they left out the extention for some reason
|
||||
// if they left out the extension for some reason
|
||||
if (!ComponentbuilderHelper::checkString($_extension))
|
||||
{
|
||||
$_extension = 'com_' . $this->componentCodeName . '.'
|
||||
. $otherView;
|
||||
}
|
||||
// load the category builder
|
||||
// check the context (does our target match)
|
||||
if (strpos($_extension, '.') !== false)
|
||||
{
|
||||
$target_view = trim(explode('.', $_extension)[1]);
|
||||
// from my understanding the target extension view and the otherView must align
|
||||
// so I will here check that it does, and if not raise an error message to fix this
|
||||
if ($target_view !== $otherView)
|
||||
{
|
||||
$target_extension = trim(explode('.', $_extension)[0]);
|
||||
$correction = $target_extension . '.' . $otherView;
|
||||
$this->app->enqueueMessage(
|
||||
JText::sprintf('<hr /><h3>Category targeting view mismatch</h3>
|
||||
<a>The <a href="index.php?option=com_componentbuilder&view=fields&task=field.edit&id=%s" target="_blank" title="open field">
|
||||
category field</a> in <b>(%s) admin view</b> has a mismatching target view.
|
||||
<br />To correct the mismatch, the <b>extension</b> value <code>%s</code> in the <a href="index.php?option=com_componentbuilder&view=fields&task=field.edit&id=%s" target="_blank" title="open category field">
|
||||
field</a> must be changed to <code>%s</code>
|
||||
for <a href="https://github.com/vdm-io/Joomla-Component-Builder/issues/561" target="_blank" title="view issue on gitHub">
|
||||
best category integration with Joomla</a>.
|
||||
<br /><b>Please watch <a href="https://youtu.be/R4WQgcu6Xns" target="_blank" title="very important info on the topic">
|
||||
this tutorial</a> before proceeding!!!</b>,
|
||||
<a href="https://gist.github.com/Llewellynvdm/e053dc39ae3b2bf769c76a3e62c75b95" target="_blank" title="first watch the tutorial to understand how to use this code">code fix</a></p>', $field['field'], $view_name_single, $_extension, $field['field'], $correction), 'Error'
|
||||
);
|
||||
}
|
||||
}
|
||||
// load the category builder - TODO must move all to single view
|
||||
$this->categoryBuilder[$view_name_list] = array('code' => $name,
|
||||
'name' => $listLangName,
|
||||
'extension' => $_extension);
|
||||
|
@ -8476,19 +8476,21 @@ class Interpretation extends Fields
|
||||
|
||||
public function getCategoryContentType($view, $views, $component)
|
||||
{
|
||||
// get the other view
|
||||
$otherView = $this->catCodeBuilder[$view]['view'];
|
||||
$category = $this->catCodeBuilder[$view]['code'];
|
||||
$Component = ComponentbuilderHelper::safeString($component, 'F');
|
||||
$View = ComponentbuilderHelper::safeString($view, 'F');
|
||||
// build uninstall script for content types
|
||||
$this->uninstallScriptBuilder[$View . ' ' . $category] = 'com_'
|
||||
. $component . '.' . $views . '.category';
|
||||
. $component . '.' . $otherView . '.category';
|
||||
$this->uninstallScriptContent[$View . ' ' . $category] = $View . ' '
|
||||
. $category;
|
||||
// set the title
|
||||
$array['type_title'] = $Component . ' ' . $View . ' '
|
||||
. ComponentbuilderHelper::safeString($category, 'F');
|
||||
// set the alias
|
||||
$array['type_alias'] = 'com_' . $component . '.' . $views . '.category';
|
||||
$array['type_alias'] = 'com_' . $component . '.' . $otherView . '.category';
|
||||
// set the table
|
||||
$array['table']
|
||||
= '{"special":{"dbtable":"#__categories","key":"id","type":"Category","prefix":"JTable","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"JTable","config":"array()"}}';
|
||||
@ -11450,13 +11452,10 @@ class Interpretation extends Fields
|
||||
// if to be linked
|
||||
if ($item['type'] === 'category' && !$item['title'])
|
||||
{
|
||||
// get the other view
|
||||
$otherViews = $this->catCodeBuilder[$viewName_single]['views'];
|
||||
|
||||
// return the link to category
|
||||
return 'index.php?option=com_categories&task=category.edit&id=<?php echo (int)$item->'
|
||||
. $item['code'] . '; ?>&extension=com_'
|
||||
. $this->componentCodeName . '.' . $otherViews;
|
||||
. $item['code'] . '; ?>&extension='
|
||||
. $this->categoryBuilder[$viewName_list]['extension'];
|
||||
}
|
||||
elseif ($item['type'] === 'user' && !$item['title'])
|
||||
{
|
||||
@ -11517,11 +11516,10 @@ class Interpretation extends Fields
|
||||
if ($item['type'] === 'category' && !$item['title'])
|
||||
{
|
||||
// get the other view
|
||||
$otherViews = $this->catCodeBuilder[$viewName_single]['views'];
|
||||
|
||||
$otherView = $this->catCodeBuilder[$viewName_single]['view'];
|
||||
// return the authority to category
|
||||
return $user . "->authorise('core.edit', 'com_"
|
||||
. $this->componentCodeName . "." . $otherViews
|
||||
. $this->componentCodeName . "." . $otherView
|
||||
. ".category.' . (int)\$item->" . $item['code'] . ")";
|
||||
}
|
||||
elseif ($item['type'] === 'user' && !$item['title'])
|
||||
@ -17459,6 +17457,10 @@ class Interpretation extends Fields
|
||||
$otherViews = $viewName_list;
|
||||
$otherView = $viewName_single;
|
||||
}
|
||||
// set the OtherView value
|
||||
$this->fileContentDynamic['category' . $otherView][$this->hhh
|
||||
. 'otherview' . $this->hhh]
|
||||
= $otherView;
|
||||
// load the category helper details in not already loaded
|
||||
if (!isset(
|
||||
$this->fileContentDynamic['category' . $otherView][$this->hhh
|
||||
@ -17593,7 +17595,7 @@ class Interpretation extends Fields
|
||||
. " If the category has been passed in the URL check it.";
|
||||
$allow[] = $this->_t(3)
|
||||
. "\$allow = \$user->authorise('core.create', \$this->option . '."
|
||||
. $otherViews . ".category.' . \$categoryId);";
|
||||
. $otherView . ".category.' . \$categoryId);";
|
||||
$allow[] = $this->_t(2) . "}";
|
||||
$allow[] = PHP_EOL . $this->_t(2) . "if (\$allow === null)";
|
||||
$allow[] = $this->_t(2) . "{";
|
||||
@ -18168,6 +18170,8 @@ class Interpretation extends Fields
|
||||
) . " Check for existing item.";
|
||||
$getForm[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
|
||||
. " Modify the form based on Edit State access controls.";
|
||||
// get the other view
|
||||
$otherView = $this->catCodeBuilder[$viewName_single]['view'];
|
||||
// check if the item has permissions.
|
||||
if ($coreLoad && isset($core['core.edit.state'])
|
||||
&& isset($this->permissionBuilder[$core['core.edit.state']])
|
||||
@ -18185,7 +18189,7 @@ class Interpretation extends Fields
|
||||
. $viewName_single . ".' . (int) \$id))";
|
||||
$getForm[] = $this->_t(3)
|
||||
. "|| (isset(\$catid) && \$catid != 0 && !\$user->authorise('core.edit.state', 'com_"
|
||||
. $component . "." . $viewName_list
|
||||
. $component . "." . $otherView
|
||||
. ".category.' . (int) \$catid))";
|
||||
$getForm[] = $this->_t(3)
|
||||
. "|| (\$id == 0 && !\$user->authorise('"
|
||||
@ -18199,7 +18203,7 @@ class Interpretation extends Fields
|
||||
. $component . "." . $viewName_single . ".' . (int) \$id))";
|
||||
$getForm[] = $this->_t(3)
|
||||
. "|| (isset(\$catid) && \$catid != 0 && !\$user->authorise('core.edit.state', 'com_"
|
||||
. $component . "." . $viewName_list
|
||||
. $component . "." . $otherView
|
||||
. ".category.' . (int) \$catid))";
|
||||
$getForm[] = $this->_t(3)
|
||||
. "|| (\$id == 0 && !\$user->authorise('core.edit.state', 'com_"
|
||||
@ -18728,7 +18732,7 @@ class Interpretation extends Fields
|
||||
$allow[] = PHP_EOL . $this->_t(3) . "\$user = JFactory::getUser();";
|
||||
$allow[] = $this->_t(3)
|
||||
. "\$allow = \$user->authorise('core.delete', 'com_"
|
||||
. $component . "." . $otherViews
|
||||
. $component . "." . $otherView
|
||||
. ".category.' . (int) \$record->catid);";
|
||||
// check if the item has permissions.
|
||||
if ($coreLoad
|
||||
@ -18882,7 +18886,7 @@ class Interpretation extends Fields
|
||||
$allow[] = $this->_t(2) . "{";
|
||||
$allow[] = $this->_t(3)
|
||||
. "\$catpermission = \$user->authorise('core.edit.state', 'com_"
|
||||
. $component . "." . $otherViews
|
||||
. $component . "." . $otherView
|
||||
. ".category.' . (int) \$record->catid);";
|
||||
$allow[] = $this->_t(3)
|
||||
. "if (!\$catpermission && !is_null(\$catpermission))";
|
||||
|
@ -6033,12 +6033,12 @@ abstract class ComponentbuilderHelper
|
||||
if ($user->authorise('field.access', 'com_componentbuilder') && $user->authorise('field.submenu', 'com_componentbuilder'))
|
||||
{
|
||||
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_FIELDS'), 'index.php?option=com_componentbuilder&view=fields', $submenu === 'fields');
|
||||
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_FIELD_FIELDS_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_componentbuilder.fields', $submenu === 'categories.fields');
|
||||
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_FIELD_FIELDS_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_componentbuilder.field', $submenu === 'categories.field');
|
||||
}
|
||||
if ($user->authorise('fieldtype.access', 'com_componentbuilder') && $user->authorise('fieldtype.submenu', 'com_componentbuilder'))
|
||||
{
|
||||
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_FIELDTYPES'), 'index.php?option=com_componentbuilder&view=fieldtypes', $submenu === 'fieldtypes');
|
||||
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_FIELDTYPE_FIELDTYPES_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_componentbuilder.fieldtypes', $submenu === 'categories.fieldtypes');
|
||||
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_FIELDTYPE_FIELDTYPES_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_componentbuilder.fieldtype', $submenu === 'categories.fieldtype');
|
||||
}
|
||||
if ($user->authorise('language_translation.access', 'com_componentbuilder') && $user->authorise('language_translation.submenu', 'com_componentbuilder'))
|
||||
{
|
||||
|
@ -118,8 +118,8 @@ $can = ComponentbuilderHelper::getActions('field');
|
||||
<?php echo JText::_($item->store); ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php if ($user->authorise('core.edit', 'com_componentbuilder.fields.category.' . (int)$item->catid)): ?>
|
||||
<a href="index.php?option=com_categories&task=category.edit&id=<?php echo (int)$item->catid; ?>&extension=com_componentbuilder.fields"><?php echo $displayData->escape($item->category_title); ?></a>
|
||||
<?php if ($user->authorise('core.edit', 'com_componentbuilder.field.category.' . (int)$item->catid)): ?>
|
||||
<a href="index.php?option=com_categories&task=category.edit&id=<?php echo (int)$item->catid; ?>&extension=com_componentbuilder.field"><?php echo $displayData->escape($item->category_title); ?></a>
|
||||
<?php else: ?>
|
||||
<?php echo $displayData->escape($item->category_title); ?>
|
||||
<?php endif; ?>
|
||||
|
@ -227,8 +227,7 @@
|
||||
type="category"
|
||||
name="catid"
|
||||
label="COM_COMPONENTBUILDER_FIELD_CATID_LABEL"
|
||||
extension="com_componentbuilder.fields"
|
||||
default=""
|
||||
extension="com_componentbuilder.field"
|
||||
description="COM_COMPONENTBUILDER_FIELD_CATID_DESCRIPTION"
|
||||
class="inputbox"
|
||||
/>
|
||||
|
@ -449,7 +449,7 @@
|
||||
type="category"
|
||||
name="catid"
|
||||
label="COM_COMPONENTBUILDER_FIELDTYPE_CATID_LABEL"
|
||||
extension="com_componentbuilder.fieldtypes"
|
||||
extension="com_componentbuilder.fieldtype"
|
||||
default=""
|
||||
description="COM_COMPONENTBUILDER_FIELDTYPE_CATID_DESCRIPTION"
|
||||
class="inputbox"
|
||||
|
@ -95,8 +95,8 @@ $edit = "index.php?option=com_componentbuilder&view=fields&task=field.edit";
|
||||
</td>
|
||||
<td class="nowrap">
|
||||
<div class="name">
|
||||
<?php if ($this->user->authorise('core.edit', 'com_componentbuilder.fields.category.' . (int)$item->catid)): ?>
|
||||
<a href="index.php?option=com_categories&task=category.edit&id=<?php echo (int)$item->catid; ?>&extension=com_componentbuilder.fields"><?php echo $this->escape($item->category_title); ?></a>
|
||||
<?php if ($this->user->authorise('core.edit', 'com_componentbuilder.field.category.' . (int)$item->catid)): ?>
|
||||
<a href="index.php?option=com_categories&task=category.edit&id=<?php echo (int)$item->catid; ?>&extension=com_componentbuilder.field"><?php echo $this->escape($item->category_title); ?></a>
|
||||
<?php else: ?>
|
||||
<?php echo $this->escape($item->category_title); ?>
|
||||
<?php endif; ?>
|
||||
|
@ -196,7 +196,7 @@ class ComponentbuilderViewFields extends JViewLegacy
|
||||
JHtmlSidebar::addFilter(
|
||||
JText::_('JOPTION_SELECT_CATEGORY'),
|
||||
'filter_category_id',
|
||||
JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.fields'), 'value', 'text', $this->state->get('filter.category_id'))
|
||||
JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.field'), 'value', 'text', $this->state->get('filter.category_id'))
|
||||
);
|
||||
|
||||
if ($this->canBatch && $this->canCreate && $this->canEdit)
|
||||
@ -205,7 +205,7 @@ class ComponentbuilderViewFields extends JViewLegacy
|
||||
JHtmlBatch_::addListSelection(
|
||||
JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_CATEGORY'),
|
||||
'batch[category]',
|
||||
JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.fields'), 'value', 'text')
|
||||
JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.field'), 'value', 'text')
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -77,8 +77,8 @@ $edit = "index.php?option=com_componentbuilder&view=fieldtypes&task=fieldtype.ed
|
||||
</td>
|
||||
<td class="nowrap">
|
||||
<div class="name">
|
||||
<?php if ($this->user->authorise('core.edit', 'com_componentbuilder.fieldtypes.category.' . (int)$item->catid)): ?>
|
||||
<a href="index.php?option=com_categories&task=category.edit&id=<?php echo (int)$item->catid; ?>&extension=com_componentbuilder.fieldtypes"><?php echo $this->escape($item->category_title); ?></a>
|
||||
<?php if ($this->user->authorise('core.edit', 'com_componentbuilder.fieldtype.category.' . (int)$item->catid)): ?>
|
||||
<a href="index.php?option=com_categories&task=category.edit&id=<?php echo (int)$item->catid; ?>&extension=com_componentbuilder.fieldtype"><?php echo $this->escape($item->category_title); ?></a>
|
||||
<?php else: ?>
|
||||
<?php echo $this->escape($item->category_title); ?>
|
||||
<?php endif; ?>
|
||||
|
@ -191,7 +191,7 @@ class ComponentbuilderViewFieldtypes extends JViewLegacy
|
||||
JHtmlSidebar::addFilter(
|
||||
JText::_('JOPTION_SELECT_CATEGORY'),
|
||||
'filter_category_id',
|
||||
JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.fieldtypes'), 'value', 'text', $this->state->get('filter.category_id'))
|
||||
JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.fieldtype'), 'value', 'text', $this->state->get('filter.category_id'))
|
||||
);
|
||||
|
||||
if ($this->canBatch && $this->canCreate && $this->canEdit)
|
||||
@ -200,7 +200,7 @@ class ComponentbuilderViewFieldtypes extends JViewLegacy
|
||||
JHtmlBatch_::addListSelection(
|
||||
JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_CATEGORY'),
|
||||
'batch[category]',
|
||||
JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.fieldtypes'), 'value', 'text')
|
||||
JHtml::_('select.options', JHtml::_('category.options', 'com_componentbuilder.fieldtype'), 'value', 'text')
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user