Added option to include or exclude Joomla Plugins from being compiled or exported. Added the Joomla\Utilities\ArrayHelper to helper class header. Added option to only export words if required global option fields are set. Added option to use strict field access on all exports if required global option fields are set. Fixed gh-475 by adding the option to add a github token if needed under the global options global tab, also updated the error message.
This commit is contained in:
parent
e3f22d631c
commit
2b1e0a65fa
@ -146,12 +146,12 @@ 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*: 5th September, 2019
|
||||
+ *Last Build*: 10th September, 2019
|
||||
+ *Version*: 2.10.1
|
||||
+ *Copyright*: Copyright (C) 2015 - 2019 Vast Development Method. All rights reserved.
|
||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||
+ *Line count*: **251450**
|
||||
+ *Field count*: **1343**
|
||||
+ *Line count*: **251878**
|
||||
+ *Field count*: **1345**
|
||||
+ *File count*: **1608**
|
||||
+ *Folder count*: **253**
|
||||
|
||||
|
@ -146,12 +146,12 @@ 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*: 5th September, 2019
|
||||
+ *Last Build*: 10th September, 2019
|
||||
+ *Version*: 2.10.1
|
||||
+ *Copyright*: Copyright (C) 2015 - 2019 Vast Development Method. All rights reserved.
|
||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||
+ *Line count*: **251450**
|
||||
+ *Field count*: **1343**
|
||||
+ *Line count*: **251878**
|
||||
+ *Field count*: **1345**
|
||||
+ *File count*: **1608**
|
||||
+ *Folder count*: **253**
|
||||
|
||||
|
@ -17,6 +17,8 @@ defined('_JEXEC') or die('Restricted access');
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
use Joomla\Utilities\ArrayHelper;
|
||||
|
||||
/**
|
||||
* ###Component### component helper.
|
||||
*/
|
||||
|
@ -17,6 +17,8 @@ defined('_JEXEC') or die('Restricted access');
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
use Joomla\Utilities\ArrayHelper;
|
||||
|
||||
/**
|
||||
* ###Component### component helper
|
||||
*/
|
||||
|
@ -67,6 +67,21 @@
|
||||
folder="extension"
|
||||
filter="cmd"
|
||||
/>
|
||||
<!-- Github_access_token Field. Type: Text. (joomla) -->
|
||||
<field
|
||||
type="text"
|
||||
name="github_access_token"
|
||||
label="COM_COMPONENTBUILDER_CONFIG_GITHUB_ACCESS_TOKEN_LABEL"
|
||||
size="128"
|
||||
maxlength="128"
|
||||
description="COM_COMPONENTBUILDER_CONFIG_GITHUB_ACCESS_TOKEN_DESCRIPTION"
|
||||
class="text_area full-width"
|
||||
required="false"
|
||||
filter="STRING"
|
||||
message="COM_COMPONENTBUILDER_CONFIG_GITHUB_ACCESS_TOKEN_MESSAGE"
|
||||
hint="COM_COMPONENTBUILDER_CONFIG_GITHUB_ACCESS_TOKEN_HINT"
|
||||
autocomplete="off"
|
||||
/>
|
||||
<!-- Spacer_hr_one Field. Type: Spacer. A None Database Field. (joomla) -->
|
||||
<field type="spacer" name="spacer_hr_one" hr="true" class="spacer_hr_one" />
|
||||
<!-- Manage_jcb_package_directories Field. Type: Radio. (joomla) -->
|
||||
|
@ -60,6 +60,20 @@ class Get
|
||||
*/
|
||||
public $params;
|
||||
|
||||
/**
|
||||
* Add strict field export permissions
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
public $strictFieldExportPermissions = false;
|
||||
|
||||
/**
|
||||
* Add text only export options
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
public $exportTextOnly = false;
|
||||
|
||||
/**
|
||||
* The global placeholders
|
||||
*
|
||||
@ -1665,7 +1679,12 @@ class Get
|
||||
if (ComponentbuilderHelper::checkArray($component->addjoomla_plugins))
|
||||
{
|
||||
$joomla_plugins = array_map(function($array) use(&$component) {
|
||||
return $this->setJoomlaPlugin($array['plugin'], $component);
|
||||
// only load the plugins whose target association calles for it
|
||||
if (!isset($array['target']) || $array['target'] != 2)
|
||||
{
|
||||
return $this->setJoomlaPlugin($array['plugin'], $component);
|
||||
}
|
||||
return null;
|
||||
}, array_values($component->addjoomla_plugins));
|
||||
}
|
||||
unset($component->addjoomla_plugins);
|
||||
|
@ -9135,11 +9135,13 @@ class Interpretation extends Fields
|
||||
*/
|
||||
public function setGetItemsModelMethod($viewName_single, $viewName_list, $config = array('functionName' => 'getExportData', 'docDesc' => 'Method to get list export data.', 'type' => 'export'))
|
||||
{
|
||||
// start the query string
|
||||
$query = '';
|
||||
if ($this->eximportView[$viewName_list] || 'export' !== $config['type'])
|
||||
// check if this is the export method
|
||||
$isExport = ('export' === $config['type']);
|
||||
// check if this view has export feature, and or if this is not an export method
|
||||
if ((isset($this->eximportView[$viewName_list]) && $this->eximportView[$viewName_list]) || !$isExport)
|
||||
{
|
||||
$isExport = ('export' === $config['type']);
|
||||
|
||||
$query = PHP_EOL . PHP_EOL . $this->_t(1) . "/**";
|
||||
$query .= PHP_EOL . $this->_t(1) . " * " . $config['docDesc'];
|
||||
$query .= PHP_EOL . $this->_t(1) . " *";
|
||||
@ -9170,6 +9172,25 @@ class Interpretation extends Fields
|
||||
$query .= PHP_EOL . $this->_t(3) . "\$query->where('a.id IN (' . implode(',',\$pks) . ')');";
|
||||
// add custom filtering php
|
||||
$query .= $this->getCustomScriptBuilder('php_getlistquery', $viewName_single, PHP_EOL . PHP_EOL . $this->_t(1));
|
||||
// first check if we export of text only is avalable
|
||||
if ($this->exportTextOnly)
|
||||
{
|
||||
// add switch
|
||||
$query .= PHP_EOL . $this->_t(3) . "//" . $this->setLine(__LINE__) . " Get global switch to activate text only export";
|
||||
$query .= PHP_EOL . $this->_t(3) . "\$export_text_only = JComponentHelper::getParams('com_" . $this->componentCodeName . "')->get('export_text_only', 0);";
|
||||
// first check if we have custom queries
|
||||
$custom_query = $this->setCustomQuery($viewName_list, $viewName_single, $this->_t(2), true);
|
||||
}
|
||||
// if values were returned add the area
|
||||
if (isset($custom_query) && ComponentbuilderHelper::checkString($custom_query))
|
||||
{
|
||||
$query .= PHP_EOL . $this->_t(3) . "//" . $this->setLine(__LINE__) . " Add these queries only if text only is required";
|
||||
$query .= PHP_EOL . $this->_t(3) . "if (\$export_text_only)";
|
||||
$query .= PHP_EOL . $this->_t(3) . "{";
|
||||
// add the custom fields query
|
||||
$query .= $custom_query;
|
||||
$query .= PHP_EOL . $this->_t(3) . "}";
|
||||
}
|
||||
// add access levels if the view has access set
|
||||
if (isset($this->accessBuilder[$viewName_single]) && ComponentbuilderHelper::checkString($this->accessBuilder[$viewName_single]))
|
||||
{
|
||||
@ -9188,15 +9209,33 @@ class Interpretation extends Fields
|
||||
$query .= PHP_EOL . $this->_t(3) . "if (\$db->getNumRows())";
|
||||
$query .= PHP_EOL . $this->_t(3) . "{";
|
||||
$query .= PHP_EOL . $this->_t(4) . "\$items = \$db->loadObjectList();";
|
||||
$query .= $this->setGetItemsMethodStringFix($viewName_single, $viewName_list, $this->fileContentStatic[$this->hhh . 'Component' . $this->hhh], $this->_t(2), $isExport);
|
||||
// add translations
|
||||
if (!$isExport)
|
||||
// set the string fixing code
|
||||
$query .= $this->setGetItemsMethodStringFix($viewName_single, $viewName_list, $this->fileContentStatic[$this->hhh . 'Component' . $this->hhh], $this->_t(2), $isExport, true);
|
||||
// first check if we export of text only is avalable
|
||||
if ($this->exportTextOnly)
|
||||
{
|
||||
$query .= $this->setSelectionTranslationFix($viewName_list, $this->fileContentStatic[$this->hhh . 'Component' . $this->hhh], $this->_t(2));
|
||||
$query_translations = $this->setSelectionTranslationFix($viewName_list, $this->fileContentStatic[$this->hhh . 'Component' . $this->hhh], $this->_t(3));
|
||||
}
|
||||
// add translations
|
||||
if (isset($query_translations) && ComponentbuilderHelper::checkString($query_translations))
|
||||
{
|
||||
$query .= PHP_EOL . $this->_t(3) . "//" . $this->setLine(__LINE__) . " Add these translation only if text only is required";
|
||||
$query .= PHP_EOL . $this->_t(3) . "if (\$export_text_only)";
|
||||
$query .= PHP_EOL . $this->_t(3) . "{";
|
||||
$query .= $query_translations;
|
||||
$query .= PHP_EOL . $this->_t(3) . "}";
|
||||
}
|
||||
// add custom php to getItems method after all
|
||||
$query .= $this->getCustomScriptBuilder('php_getitems_after_all', $viewName_single, PHP_EOL . PHP_EOL . $this->_t(2));
|
||||
$query .= PHP_EOL . $this->_t(4) . "return \$items;";
|
||||
// in privacy export we must return array of arrays
|
||||
if ('privacy' === $config['type'])
|
||||
{
|
||||
$query .= PHP_EOL . $this->_t(4) . "return json_decode(json_encode(\$items), true);";
|
||||
}
|
||||
else
|
||||
{
|
||||
$query .= PHP_EOL . $this->_t(4) . "return \$items;";
|
||||
}
|
||||
$query .= PHP_EOL . $this->_t(3) . "}";
|
||||
$query .= PHP_EOL . $this->_t(2) . "}";
|
||||
$query .= PHP_EOL . $this->_t(2) . "return false;";
|
||||
@ -9521,7 +9560,7 @@ class Interpretation extends Fields
|
||||
return '';
|
||||
}
|
||||
|
||||
public function setCustomQuery($viewName_list, $viewName_single)
|
||||
public function setCustomQuery($viewName_list, $viewName_single, $tab = '', $just_text = false)
|
||||
{
|
||||
if (isset($this->customBuilder[$viewName_list]) && ComponentbuilderHelper::checkArray($this->customBuilder[$viewName_list]))
|
||||
{
|
||||
@ -9529,11 +9568,20 @@ class Interpretation extends Fields
|
||||
foreach ($this->customBuilder[$viewName_list] as $filter)
|
||||
{
|
||||
// only load this if table is set
|
||||
if (isset($this->customBuilderList[$viewName_list]) && ComponentbuilderHelper::checkArray($this->customBuilderList[$viewName_list]) && in_array($filter['code'], $this->customBuilderList[$viewName_list]) && isset($filter['custom']['table']) && ComponentbuilderHelper::checkString($filter['custom']['table']) && $filter['method'] == 0)
|
||||
if ((isset($this->customBuilderList[$viewName_list]) && ComponentbuilderHelper::checkArray($this->customBuilderList[$viewName_list]) && in_array($filter['code'], $this->customBuilderList[$viewName_list]) && isset($filter['custom']['table']) && ComponentbuilderHelper::checkString($filter['custom']['table']) && $filter['method'] == 0)
|
||||
|| ($just_text && isset($filter['custom']['table']) && ComponentbuilderHelper::checkString($filter['custom']['table']) && $filter['method'] == 0))
|
||||
{
|
||||
$query .= PHP_EOL . PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__) . " From the " . ComponentbuilderHelper::safeString(ComponentbuilderHelper::safeString($filter['custom']['table'], 'w')) . " table.";
|
||||
$query .= PHP_EOL . $this->_t(2) . "\$query->select(\$db->quoteName('" . $filter['custom']['db'] . "." . $filter['custom']['text'] . "','" . $filter['code'] . "_" . $filter['custom']['text'] . "'));";
|
||||
$query .= PHP_EOL . $this->_t(2) . "\$query->join('LEFT', \$db->quoteName('" . $filter['custom']['table'] . "', '" . $filter['custom']['db'] . "') . ' ON (' . \$db->quoteName('a." . $filter['code'] . "') . ' = ' . \$db->quoteName('" . $filter['custom']['db'] . "." . $filter['custom']['id'] . "') . ')');";
|
||||
$query .= PHP_EOL . PHP_EOL . $this->_t(2) . $tab . "//" . $this->setLine(__LINE__) . " From the " . ComponentbuilderHelper::safeString(ComponentbuilderHelper::safeString($filter['custom']['table'], 'w')) . " table.";
|
||||
// we want to at times just have the words and not the ids as well
|
||||
if ($just_text)
|
||||
{
|
||||
$query .= PHP_EOL . $this->_t(2) . $tab . "\$query->select(\$db->quoteName('" . $filter['custom']['db'] . "." . $filter['custom']['text'] . "','" . $filter['code'] . "'));";
|
||||
}
|
||||
else
|
||||
{
|
||||
$query .= PHP_EOL . $this->_t(2) . $tab . "\$query->select(\$db->quoteName('" . $filter['custom']['db'] . "." . $filter['custom']['text'] . "','" . $filter['code'] . "_" . $filter['custom']['text'] . "'));";
|
||||
}
|
||||
$query .= PHP_EOL . $this->_t(2) . $tab . "\$query->join('LEFT', \$db->quoteName('" . $filter['custom']['table'] . "', '" . $filter['custom']['db'] . "') . ' ON (' . \$db->quoteName('a." . $filter['code'] . "') . ' = ' . \$db->quoteName('" . $filter['custom']['db'] . "." . $filter['custom']['id'] . "') . ')');";
|
||||
}
|
||||
// build the field type file
|
||||
$this->setCustomFieldTypeFile($filter, $viewName_list, $viewName_single);
|
||||
@ -11804,7 +11852,7 @@ class Interpretation extends Fields
|
||||
$allow[] = $this->_t(3) . "{";
|
||||
$allow[] = $this->_t(4) . "//" . $this->setLine(__LINE__) . " We have to unset then (TODO)";
|
||||
$allow[] = $this->_t(4) . "//" . $this->setLine(__LINE__) . " Hiddend field can not handel array value";
|
||||
$allow[] = $this->_t(4) . "//" . $this->setLine(__LINE__) . " Even if we conver to json we get an error";
|
||||
$allow[] = $this->_t(4) . "//" . $this->setLine(__LINE__) . " Even if we convert to json we get an error";
|
||||
$allow[] = $this->_t(4) . "\$form->removeField('" . $fieldName . "');";
|
||||
$allow[] = $this->_t(3) . "}";
|
||||
$allow[] = $this->_t(2) . "}";
|
||||
@ -12458,7 +12506,7 @@ class Interpretation extends Fields
|
||||
|
||||
public function setPopulateState(&$view)
|
||||
{
|
||||
// rest buket
|
||||
// reset buket
|
||||
$state = '';
|
||||
// keep track of all fields already added
|
||||
$donelist = array();
|
||||
@ -12665,11 +12713,12 @@ class Interpretation extends Fields
|
||||
return $checkin;
|
||||
}
|
||||
|
||||
public function setGetItemsMethodStringFix($viewName_single, $viewName_list, $Component, $tab = '', $export = false)
|
||||
public function setGetItemsMethodStringFix($viewName_single, $viewName_list, $Component, $tab = '', $export = false, $all = false)
|
||||
{
|
||||
// add the fix if this view has the need for it
|
||||
$fix = '';
|
||||
$forEachStart = '';
|
||||
$fix_access = '';
|
||||
// encryption switches
|
||||
foreach ($this->cryptionTypes as $cryptionType)
|
||||
{
|
||||
@ -12686,21 +12735,22 @@ class Interpretation extends Fields
|
||||
// check if the item has permissions.
|
||||
if ($coreLoad && isset($core['core.access']) && isset($this->permissionBuilder[$core['core.access']]) && ComponentbuilderHelper::checkArray($this->permissionBuilder[$core['core.access']]) && in_array($viewName_single, $this->permissionBuilder[$core['core.access']]))
|
||||
{
|
||||
$fix .= PHP_EOL . $this->_t(1) . $tab . $this->_t(3) . "//" . $this->setLine(__LINE__) . " Remove items the user can't access.";
|
||||
$fix .= PHP_EOL . $this->_t(1) . $tab . $this->_t(3) . "\$access = (\$user->authorise('" . $core['core.access'] . "', 'com_" . $component . "." . $viewName_single . ".' . (int) \$item->id) && \$user->authorise('" . $core['core.access'] . "', 'com_" . $component . "'));";
|
||||
$fix .= PHP_EOL . $this->_t(1) . $tab . $this->_t(3) . "if (!\$access)";
|
||||
$fix .= PHP_EOL . $this->_t(1) . $tab . $this->_t(3) . "{";
|
||||
$fix .= PHP_EOL . $this->_t(1) . $tab . $this->_t(4) . "unset(\$items[\$nr]);";
|
||||
$fix .= PHP_EOL . $this->_t(1) . $tab . $this->_t(4) . "continue;";
|
||||
$fix .= PHP_EOL . $this->_t(1) . $tab . $this->_t(3) . "}" . PHP_EOL;
|
||||
$fix_access = PHP_EOL . $this->_t(1) . $tab . $this->_t(3) . "//" . $this->setLine(__LINE__) . " Remove items the user can't access.";
|
||||
$fix_access .= PHP_EOL . $this->_t(1) . $tab . $this->_t(3) . "\$access = (\$user->authorise('" . $core['core.access'] . "', 'com_" . $component . "." . $viewName_single . ".' . (int) \$item->id) && \$user->authorise('" . $core['core.access'] . "', 'com_" . $component . "'));";
|
||||
$fix_access .= PHP_EOL . $this->_t(1) . $tab . $this->_t(3) . "if (!\$access)";
|
||||
$fix_access .= PHP_EOL . $this->_t(1) . $tab . $this->_t(3) . "{";
|
||||
$fix_access .= PHP_EOL . $this->_t(1) . $tab . $this->_t(4) . "unset(\$items[\$nr]);";
|
||||
$fix_access .= PHP_EOL . $this->_t(1) . $tab . $this->_t(4) . "continue;";
|
||||
$fix_access .= PHP_EOL . $this->_t(1) . $tab . $this->_t(3) . "}" . PHP_EOL;
|
||||
}
|
||||
if (!$export)
|
||||
// get the correct array
|
||||
if ($export || $all)
|
||||
{
|
||||
$methodName = 'getItemsMethodListStringFixBuilder';
|
||||
$methodName = 'getItemsMethodEximportStringFixBuilder';
|
||||
}
|
||||
else
|
||||
{
|
||||
$methodName = 'getItemsMethodEximportStringFixBuilder';
|
||||
$methodName = 'getItemsMethodListStringFixBuilder';
|
||||
}
|
||||
// load the relations before modeling
|
||||
if (isset($this->fieldRelations[$viewName_list]) && ComponentbuilderHelper::checkArray($this->fieldRelations[$viewName_list]))
|
||||
@ -12922,10 +12972,10 @@ class Interpretation extends Fields
|
||||
}
|
||||
}
|
||||
// close the foreach if needed
|
||||
if (ComponentbuilderHelper::checkString($fix) || $export)
|
||||
if (ComponentbuilderHelper::checkString($fix) || ComponentbuilderHelper::checkString($fix_access) || $export || $all)
|
||||
{
|
||||
// start the loop
|
||||
$forEachStart = PHP_EOL . PHP_EOL . $this->_t(1) . $tab . $this->_t(1) . "//" . $this->setLine(__LINE__) . " set values to display correctly.";
|
||||
$forEachStart = PHP_EOL . PHP_EOL . $this->_t(1) . $tab . $this->_t(1) . "//" . $this->setLine(__LINE__) . " Set values to display correctly.";
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(1) . "if (" . $Component . "Helper::checkArray(\$items))";
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(1) . "{";
|
||||
// do not add to export since it is already done
|
||||
@ -12937,19 +12987,43 @@ class Interpretation extends Fields
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(3) . "\$user = JFactory::getUser();";
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(2) . "}";
|
||||
}
|
||||
// the permissional acttion switch
|
||||
$hasPermissional = false;
|
||||
// add the permissional removal of values the user has not right to view or access
|
||||
if (isset($this->permissionFields[$viewName_single]) && ComponentbuilderHelper::checkArray($this->permissionFields[$viewName_single]))
|
||||
if ($this->strictFieldExportPermissions && isset($this->permissionFields[$viewName_single]) && ComponentbuilderHelper::checkArray($this->permissionFields[$viewName_single]))
|
||||
{
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(2) . "//" . $this->setLine(__LINE__) . " -- get global permissional control activation. (default is inactive) ---";
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(2) . "//" . $this->setLine(__LINE__) . " to use this feature add a global option radio button to your";
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(2) . "//" . $this->setLine(__LINE__) . " component with a value of 1 as on/activate and 0 as inactive/off";
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(2) . "//" . $this->setLine(__LINE__) . " make sure it has the name: strict_permission_per_field";
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(2) . "\$strict_permission_per_field = JComponentHelper::getParams('com_" . $component . "')->get('strict_permission_per_field', 0);" . PHP_EOL;
|
||||
foreach ($this->permissionFields[$viewName_single] as $fieldName => $permission_options)
|
||||
{
|
||||
if (!$hasPermissional)
|
||||
{
|
||||
foreach($permission_options as $permission_option => $fieldType)
|
||||
{
|
||||
if (!$hasPermissional)
|
||||
{
|
||||
switch ($permission_option)
|
||||
{
|
||||
case 'access':
|
||||
case 'view':
|
||||
$hasPermissional = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// add the notes and get the global switch
|
||||
if ($hasPermissional)
|
||||
{
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(2) . "//" . $this->setLine(__LINE__) . " Get global permissional control activation. (default is inactive)";
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(2) . "\$strict_permission_per_field = JComponentHelper::getParams('com_" . $component . "')->get('strict_permission_per_field', 0);" . PHP_EOL;
|
||||
}
|
||||
}
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(2) . "foreach (\$items as \$nr => &\$item)";
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(2) . "{";
|
||||
// add the access options
|
||||
$forEachStart .= $fix_access;
|
||||
// add the permissional removal of values the user has not right to view or access
|
||||
if (isset($this->permissionFields[$viewName_single]) && ComponentbuilderHelper::checkArray($this->permissionFields[$viewName_single]))
|
||||
if ($hasPermissional)
|
||||
{
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(3) . "//" . $this->setLine(__LINE__) . " use permissional control if globaly set.";
|
||||
$forEachStart .= PHP_EOL . $this->_t(1) . $tab . $this->_t(3) . "if (\$strict_permission_per_field)";
|
||||
|
@ -12,6 +12,8 @@
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
use Joomla\Utilities\ArrayHelper;
|
||||
|
||||
/**
|
||||
* Componentbuilder component helper.
|
||||
*/
|
||||
@ -61,14 +63,14 @@ abstract class ComponentbuilderHelper
|
||||
/**
|
||||
* The VDM packages paths
|
||||
**/
|
||||
public static $vdmGithubPackagesUrl = "https://api.github.com/repos/vdm-io/JCB-Packages/git/trees/master";
|
||||
public static $vdmGithubPackageUrl = "https://github.com/vdm-io/JCB-Packages/raw/master/";
|
||||
public static $vdmGithubPackagesUrl = "https://api.github.com/repos/vdm-io/JCB-Packages/git/trees/master";
|
||||
|
||||
/**
|
||||
* The JCB packages paths
|
||||
**/
|
||||
public static $jcbGithubPackagesUrl = "https://api.github.com/repos/vdm-io/JCB-Community-Packages/git/trees/master";
|
||||
public static $jcbGithubPackageUrl = "https://github.com/vdm-io/JCB-Community-Packages/raw/master/";
|
||||
public static $jcbGithubPackagesUrl = "https://api.github.com/repos/vdm-io/JCB-Community-Packages/git/trees/master";
|
||||
|
||||
/**
|
||||
* The bolerplate paths
|
||||
@ -76,9 +78,6 @@ abstract class ComponentbuilderHelper
|
||||
public static $bolerplatePath = 'https://raw.githubusercontent.com/vdm-io/boilerplate/jcb/';
|
||||
public static $bolerplateAPI = 'https://api.github.com/repos/vdm-io/boilerplate/git/trees/jcb';
|
||||
|
||||
// not needed at this time (maybe latter)
|
||||
public static $accessToken = "";
|
||||
|
||||
/**
|
||||
* The array of constant paths
|
||||
*
|
||||
@ -2413,66 +2412,163 @@ abstract class ComponentbuilderHelper
|
||||
|
||||
|
||||
/**
|
||||
* get the github repo file list
|
||||
*
|
||||
* @return array on success
|
||||
*
|
||||
*/
|
||||
* The github access token
|
||||
**/
|
||||
protected static $gitHubAccessToken = "";
|
||||
|
||||
/**
|
||||
* The github repo get data errors
|
||||
**/
|
||||
public static $githubRepoDataErrors = array();
|
||||
|
||||
/**
|
||||
* get the github repo file list
|
||||
*
|
||||
* @return array on success
|
||||
*
|
||||
*/
|
||||
public static function getGithubRepoFileList($type, $target)
|
||||
{
|
||||
// get the current Packages (public)
|
||||
if (!$repoData = self::get($type))
|
||||
// get the repo data
|
||||
if (($repoData = self::getGithubRepoData($type, $target, 'tree')) !== false)
|
||||
{
|
||||
if (self::urlExists($target))
|
||||
{
|
||||
$repoData = self::getFileContents($target);
|
||||
if (self::checkJson($repoData))
|
||||
{
|
||||
$test = json_decode($repoData);
|
||||
if (self::checkObject($test) && isset($test->tree) && self::checkArray($test->tree) )
|
||||
{
|
||||
// remember to set it
|
||||
self::set($type, $repoData);
|
||||
}
|
||||
// check if we have error message from github
|
||||
elseif ($errorMessage = self::githubErrorHandeler(array('error' => null), $test))
|
||||
{
|
||||
if (self::checkString($errorMessage['error']))
|
||||
{
|
||||
JFactory::getApplication()->enqueueMessage($errorMessage['error'], 'Error');
|
||||
}
|
||||
$repoData = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$repoData = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
JFactory::getApplication()->enqueueMessage(JText::sprintf('COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_EXIST', $target), 'Error');
|
||||
}
|
||||
}
|
||||
// check if we could find packages
|
||||
if (isset($repoData) && self::checkJson($repoData))
|
||||
{
|
||||
$repoData = json_decode($repoData);
|
||||
if (self::checkObject($repoData) && isset($repoData->tree) && self::checkArray($repoData->tree) )
|
||||
{
|
||||
return $repoData->tree;
|
||||
}
|
||||
return $repoData->tree;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the github error messages
|
||||
*
|
||||
* @return array of errors on success
|
||||
*
|
||||
*/
|
||||
protected static function githubErrorHandeler($message, &$github)
|
||||
* get the github repo file list
|
||||
*
|
||||
* @return array on success
|
||||
*
|
||||
*/
|
||||
public static function getGithubRepoData($type, $url, $target = null, $return_type = 'object')
|
||||
{
|
||||
// always reset errors per/request
|
||||
self::$githubRepoDataErrors = array();
|
||||
// get the current Packages (public)
|
||||
if ('nomemory' === $type || !$repoData = self::get($type))
|
||||
{
|
||||
// add the token if not already added
|
||||
$_url = self::setGithubToken($url);
|
||||
// check if the url exist
|
||||
if (self::urlExists($_url))
|
||||
{
|
||||
// get the data from github
|
||||
if (($repoData = self::getFileContents($_url)) !== false && self::checkJson($repoData))
|
||||
{
|
||||
$github_returned = json_decode($repoData);
|
||||
if (self::checkString($target) && self::checkObject($github_returned) &&
|
||||
isset($github_returned->{$target}) && self::checkArray($github_returned->{$target}) )
|
||||
{
|
||||
if ('nomemory' !== $type)
|
||||
{
|
||||
// remember to set it
|
||||
self::set($type, $repoData);
|
||||
}
|
||||
}
|
||||
elseif (!self::checkString($target) && self::checkObject($github_returned) && !isset($github_returned->message))
|
||||
{
|
||||
if ('nomemory' !== $type)
|
||||
{
|
||||
// remember to set it
|
||||
self::set($type, $repoData);
|
||||
}
|
||||
}
|
||||
// check if we have error message from github
|
||||
elseif (($errorMessage = self::githubErrorHandeler(array('error' => null), $github_returned, $type)) !== false)
|
||||
{
|
||||
if (isset($errorMessage['error']) && self::checkString($errorMessage['error']))
|
||||
{
|
||||
// set the error in the application
|
||||
JFactory::getApplication()->enqueueMessage($errorMessage['error'], 'Error');
|
||||
// set the error also in the class encase it is and Ajax call
|
||||
self::$githubRepoDataErrors[] = $errorMessage['error'];
|
||||
}
|
||||
return false;
|
||||
}
|
||||
elseif (self::checkString($target))
|
||||
{
|
||||
// setup error string
|
||||
$error = JText::sprintf('COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DID_NOT_RETURN_S_DATA', $url, $target);
|
||||
// set the error in the application
|
||||
JFactory::getApplication()->enqueueMessage($error, 'Error');
|
||||
// set the error also in the class encase it is and Ajax call
|
||||
self::$githubRepoDataErrors[] = $error;
|
||||
// we are done here
|
||||
return false;
|
||||
}
|
||||
elseif ('nomemory' !== $type)
|
||||
{
|
||||
// setup error string
|
||||
$error = JText::sprintf('COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DID_NOT_RETURN_S_DATA', $url, $type);
|
||||
// set the error in the application
|
||||
JFactory::getApplication()->enqueueMessage($error, 'Error');
|
||||
// set the error also in the class encase it is and Ajax call
|
||||
self::$githubRepoDataErrors[] = $error;
|
||||
// we are done here
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
// setup error string
|
||||
$error = JText::sprintf('COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DID_NOT_RETURN_VALID_DATA', $url, $type);
|
||||
// set the error in the application
|
||||
JFactory::getApplication()->enqueueMessage($error, 'Error');
|
||||
// set the error also in the class encase it is and Ajax call
|
||||
self::$githubRepoDataErrors[] = $error;
|
||||
// we are done here
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// setup error string
|
||||
$error = JText::sprintf('COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_RETURN_ANY_DATA', $url);
|
||||
// set the error in the application
|
||||
JFactory::getApplication()->enqueueMessage($error, 'Error');
|
||||
// set the error also in the class encase it is and Ajax call
|
||||
self::$githubRepoDataErrors[] = $error;
|
||||
// we are done here
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// setup error string
|
||||
$error = JText::sprintf('COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_EXIST', $url);
|
||||
// set the error in the application
|
||||
JFactory::getApplication()->enqueueMessage($error, 'Error');
|
||||
// set the error also in the class encase it is and Ajax call
|
||||
self::$githubRepoDataErrors[] = $error;
|
||||
// we are done here
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// check if we could find packages
|
||||
if (isset($repoData) && self::checkJson($repoData))
|
||||
{
|
||||
if ('object' === $return_type)
|
||||
{
|
||||
return json_decode($repoData);
|
||||
}
|
||||
elseif ('array' === $return_type)
|
||||
{
|
||||
return json_decode($repoData, true);
|
||||
}
|
||||
return $repoData;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the github error messages
|
||||
*
|
||||
* @return array of errors on success
|
||||
*
|
||||
*/
|
||||
protected static function githubErrorHandeler($message, &$github, $type)
|
||||
{
|
||||
if (self::checkObject($github) && isset($github->message) && self::checkString($github->message))
|
||||
{
|
||||
@ -2481,13 +2577,17 @@ abstract class ComponentbuilderHelper
|
||||
// add the documentation URL
|
||||
if (isset($github->documentation_url) && self::checkString($github->documentation_url))
|
||||
{
|
||||
$errorMessage = $errorMessage.'<br />'.$github->documentation_url;
|
||||
$errorMessage = $errorMessage . '<br />' . $github->documentation_url;
|
||||
}
|
||||
// check the message
|
||||
if (strpos($errorMessage, 'Authenticated') !== false)
|
||||
{
|
||||
if ('nomemory' === $type)
|
||||
{
|
||||
$type = 'data';
|
||||
}
|
||||
// add little more help if it is an access token issue
|
||||
$errorMessage = JText::sprintf('COM_COMPONENTBUILDER_SBR_YOU_CAN_ADD_AN_BACCESS_TOKENB_TO_GETBIBLE_GLOBAL_OPTIONS_TO_MAKE_AUTHENTICATED_REQUESTS_AN_ACCESS_TOKEN_WITH_ONLY_PUBLIC_ACCESS_WILL_DO', $errorMessage);
|
||||
$errorMessage = JText::sprintf('COM_COMPONENTBUILDER_SBR_YOU_CAN_ADD_A_BGITHUB_ACCESS_TOKENB_TO_COMPONENTBUILDER_GLOBAL_OPTIONS_TO_MAKE_AUTHENTICATED_REQUESTS_TO_GITHUB_AN_ACCESS_TOKEN_WITH_ONLY_PUBLIC_ACCESS_WILL_DO_TO_RETRIEVE_S', $errorMessage, $type);
|
||||
}
|
||||
// set error notice
|
||||
$message['error'] = $errorMessage;
|
||||
@ -2497,6 +2597,36 @@ abstract class ComponentbuilderHelper
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* set the github token
|
||||
*
|
||||
* @return array of errors on success
|
||||
*
|
||||
*/
|
||||
protected static function setGithubToken($url)
|
||||
{
|
||||
// first check if token already set
|
||||
if (strpos($url, 'access_token=') !== false)
|
||||
{
|
||||
// make sure the token is loaded
|
||||
if (!self::checkString(self::$gitHubAccessToken))
|
||||
{
|
||||
// get the global settings
|
||||
if (!self::checkObject(self::$params))
|
||||
{
|
||||
self::$params = JComponentHelper::getParams('com_componentbuilder');
|
||||
}
|
||||
self::$gitHubAccessToken = self::$params->get('github_access_token', null);
|
||||
}
|
||||
// make sure the token is loaded at this point
|
||||
if (self::checkString(self::$gitHubAccessToken))
|
||||
{
|
||||
$url .= '&access_token=' . self::$gitHubAccessToken;
|
||||
}
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get Dynamic Scripts
|
||||
|
@ -3031,12 +3031,15 @@ COM_COMPONENTBUILDER_COMPONENT_PLUGINS="Component Plugins"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_ADDJOOMLA_PLUGINS="Addjoomla Plugins"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_ADDJOOMLA_PLUGINS_DESCRIPTION="Setup the Joomla plugins for this component."
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_ADDJOOMLA_PLUGINS_LABEL="Joomla Plugins"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_COMPILE_AMP_EXPORT="Compile & Export"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_COMPILE_ONLY="Compile (only)"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_CREATED_BY_DESC="The user that created this Component Plugins."
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_CREATED_BY_LABEL="Created By"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_CREATED_DATE_DESC="The date this Component Plugins was created."
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_CREATED_DATE_LABEL="Created Date"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_EDIT="Editing the Component Plugins"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_ERROR_UNIQUE_ALIAS="Another Component Plugins has the same alias."
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_EXPORT_ONLY="Export (only)"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_ID="Id"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_JOOMLA_COMPONENT="Joomla Component"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_JOOMLA_COMPONENT_DESCRIPTION="Select a Joomla Component"
|
||||
@ -3056,6 +3059,8 @@ COM_COMPONENTBUILDER_COMPONENT_PLUGINS_PLUGIN_LABEL="Plugins"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_PUBLISHING="Publishing"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Component Plugins to customise the alias."
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_STATUS="Status"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_TARGET_DESCRIPTION="Association"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_TARGET_LABEL="Target"
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_VERSION_DESC="A count of the number of times this Component Plugins has been revised."
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_VERSION_LABEL="Revision"
|
||||
COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS="Component Site Views"
|
||||
@ -3375,6 +3380,10 @@ COM_COMPONENTBUILDER_CONFIG_FORCE_LOAD="Force"
|
||||
COM_COMPONENTBUILDER_CONFIG_FROMNAME_DESCRIPTION="Text displayed in the header "From:" field when sending a site email. Usually the site name."
|
||||
COM_COMPONENTBUILDER_CONFIG_FROMNAME_HINT="From Name Here"
|
||||
COM_COMPONENTBUILDER_CONFIG_FROMNAME_LABEL="From Name"
|
||||
COM_COMPONENTBUILDER_CONFIG_GITHUB_ACCESS_TOKEN_DESCRIPTION="This is only needed when you are on a shared IP or/and have reached the public free limit of API queries to gitHub. So unless you have seen some kind of error that directed you here to add an <b>access token</b> you can just ignore this field."
|
||||
COM_COMPONENTBUILDER_CONFIG_GITHUB_ACCESS_TOKEN_HINT="OAUTH-TOKEN"
|
||||
COM_COMPONENTBUILDER_CONFIG_GITHUB_ACCESS_TOKEN_LABEL="gitHub Access Token<br /><small>Check <a href='https://developer.github.com/v3/#authentication' target='_blank'>https://developer.github.com/v3/#authentication</a> for more info.</small>"
|
||||
COM_COMPONENTBUILDER_CONFIG_GITHUB_ACCESS_TOKEN_MESSAGE="Error! Please add token here."
|
||||
COM_COMPONENTBUILDER_CONFIG_GIT_FOLDER_PATH_DESCRIPTION="Here you can set the path to the git folder."
|
||||
COM_COMPONENTBUILDER_CONFIG_GIT_FOLDER_PATH_HINT="/home/user/git"
|
||||
COM_COMPONENTBUILDER_CONFIG_GIT_FOLDER_PATH_LABEL="Git Folder Path"
|
||||
@ -7269,7 +7278,7 @@ COM_COMPONENTBUILDER_RIGHT_OF_TABS="Right of Tabs"
|
||||
COM_COMPONENTBUILDER_RUN_EXPANSION="Run Expansion"
|
||||
COM_COMPONENTBUILDER_SAVE_SUCCESS="Great! Item successfully saved."
|
||||
COM_COMPONENTBUILDER_SAVE_WARNING="The value already existed so please select another."
|
||||
COM_COMPONENTBUILDER_SBR_YOU_CAN_ADD_AN_BACCESS_TOKENB_TO_GETBIBLE_GLOBAL_OPTIONS_TO_MAKE_AUTHENTICATED_REQUESTS_AN_ACCESS_TOKEN_WITH_ONLY_PUBLIC_ACCESS_WILL_DO="%s<br />You can add an <b>access token<b/> to getBible global options to make authenticated requests. An access token with only public access will do."
|
||||
COM_COMPONENTBUILDER_SBR_YOU_CAN_ADD_A_BGITHUB_ACCESS_TOKENB_TO_COMPONENTBUILDER_GLOBAL_OPTIONS_TO_MAKE_AUTHENTICATED_REQUESTS_TO_GITHUB_AN_ACCESS_TOKEN_WITH_ONLY_PUBLIC_ACCESS_WILL_DO_TO_RETRIEVE_S="%s<br />You can add a <b>gitHub Access Token</b> to Componentbuilder global options to make authenticated requests to gitHub. An access token with only public access will do to retrieve %s."
|
||||
COM_COMPONENTBUILDER_SEARCHABLE="Searchable"
|
||||
COM_COMPONENTBUILDER_SEE_ALL_IMPORT_INFO="See All Import Info"
|
||||
COM_COMPONENTBUILDER_SELECTION="selection"
|
||||
@ -8313,7 +8322,10 @@ COM_COMPONENTBUILDER_THE_SEARCH_FOR_THE_SNIPPETS_ARE_CASE_SENSITIVE_SO_IF_YOU_CH
|
||||
COM_COMPONENTBUILDER_THE_SERVER_DETAILS_FOR_BID_SB_COULD_NOT_BE_RETRIEVED="The server details for <b>(ID: %s)</b> could not be retrieved!"
|
||||
COM_COMPONENTBUILDER_THE_SNIPPETS_WERE_SUCCESSFULLY_EXPORTED="The Snippets Were Successfully Exported!"
|
||||
COM_COMPONENTBUILDER_THE_SNIPPET_WAS_SUCCESSFULLY_EXPORTED="The Snippet Was Successfully Exported!"
|
||||
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DID_NOT_RETURN_S_DATA="The url (%s) set to retrieve the packages did not return %s data!"
|
||||
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DID_NOT_RETURN_VALID_DATA="The url (%s) set to retrieve the packages did not return valid data!"
|
||||
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_EXIST="The url (%s) set to retrieve the packages does not exist!"
|
||||
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_RETURN_ANY_DATA="The url (%s) set to retrieve the packages does not return any data!"
|
||||
COM_COMPONENTBUILDER_THE_WIKI_IS_LOADING="The wiki is loading"
|
||||
COM_COMPONENTBUILDER_THIS_BSB_IS_NOT_LINKED_TO_ANY_OTHER_AREAS_OF_JCB_AT_THIS_TIME="This <b>%s</b> is not linked to any other areas of JCB at this time!"
|
||||
COM_COMPONENTBUILDER_THIS_PACKAGE_BPASSEDB_THE_CHECKSUM_VALIDATIONBR_BR_SMALLMANUALLY_ALSO_VALIDATE_THAT_THE_CORRECT_CHECKSUM_WAS_USEDSMALLBR_THIS_CHECKSUM_BSB_MUST_BE_THE_SAME_AS_THE_ONE_FOUND_A_S_SA="This package <b>PASSED</b> the checksum validation!<br /><br /><small>Manually also validate that the correct checksum was used.</small><br />This checksum: <b>%s</b> must be the same as the one found @ <a %s %s</a>"
|
||||
|
@ -114,7 +114,7 @@ class ComponentbuilderModelAdmin_views extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -376,7 +376,7 @@ class ComponentbuilderModelAdmin_views extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelAdmins_custom_tabs extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelAdmins_fields extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelAdmins_fields_conditions extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelAdmins_fields_relations extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -3212,13 +3212,14 @@ class ComponentbuilderModelAjax extends JModelList
|
||||
{
|
||||
// secure path
|
||||
$path = ComponentbuilderHelper::safeString(str_replace('.json','',$path), 'filename', '', false).'.json';
|
||||
// base path
|
||||
$base_path = basename($path);
|
||||
// set url
|
||||
$url = ComponentbuilderHelper::$snippetPath.rawurlencode(basename($path));
|
||||
$url = ComponentbuilderHelper::$snippetPath.rawurlencode($base_path);
|
||||
// get the snippets
|
||||
$snippet = ComponentbuilderHelper::getFileContents($url);
|
||||
if (ComponentbuilderHelper::checkJson($snippet))
|
||||
if (($snippet = ComponentbuilderHelper::getGithubRepoData('lib_snippet_' . $base_path, $url)) !== false)
|
||||
{
|
||||
return $this->saveSnippet(json_decode($snippet, true), $status, $user);
|
||||
return $this->saveSnippet($snippet, $status, $user);
|
||||
}
|
||||
return array('message' => JText::_('COM_COMPONENTBUILDER_ERROR_THE_PATH_HAS_A_MISMATCH_AND_COULD_THEREFORE_NOT_RETRIEVE_THE_SNIPPET_FROM_GITHUB'), 'status' => 'danger');
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ class ComponentbuilderModelClass_extendings extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -94,7 +94,7 @@ class ComponentbuilderModelClass_methods extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -303,7 +303,7 @@ class ComponentbuilderModelClass_methods extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -94,7 +94,7 @@ class ComponentbuilderModelClass_properties extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -303,7 +303,7 @@ class ComponentbuilderModelClass_properties extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelComponents_admin_views extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelComponents_config extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelComponents_custom_admin_menus extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelComponents_custom_admin_views extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelComponents_dashboard extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelComponents_files_folders extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelComponents_mysql_tweaks extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelComponents_placeholders extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelComponents_plugins extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelComponents_site_views extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelComponents_updates extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -106,7 +106,7 @@ class ComponentbuilderModelCustom_admin_views extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -317,7 +317,7 @@ class ComponentbuilderModelCustom_admin_views extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -102,7 +102,7 @@ class ComponentbuilderModelCustom_codes extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -350,7 +350,7 @@ class ComponentbuilderModelCustom_codes extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -94,7 +94,7 @@ class ComponentbuilderModelDynamic_gets extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -300,7 +300,7 @@ class ComponentbuilderModelDynamic_gets extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -118,7 +118,7 @@ class ComponentbuilderModelFields extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -415,7 +415,7 @@ class ComponentbuilderModelFields extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -264,7 +264,7 @@ class ComponentbuilderModelFieldtype extends JModelAdmin
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -102,7 +102,7 @@ class ComponentbuilderModelFieldtypes extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -269,7 +269,7 @@ class ComponentbuilderModelFieldtypes extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -120,6 +120,23 @@
|
||||
default="0"
|
||||
button="false"
|
||||
/>
|
||||
<!-- Target Field. Type: List. (joomla) -->
|
||||
<field
|
||||
type="list"
|
||||
name="target"
|
||||
label="COM_COMPONENTBUILDER_COMPONENT_PLUGINS_TARGET_LABEL"
|
||||
description="COM_COMPONENTBUILDER_COMPONENT_PLUGINS_TARGET_DESCRIPTION"
|
||||
class="list_class"
|
||||
multiple="false"
|
||||
default="0">
|
||||
<!-- Option Set. -->
|
||||
<option value="1">
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_COMPILE_ONLY</option>
|
||||
<option value="2">
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_EXPORT_ONLY</option>
|
||||
<option value="0">
|
||||
COM_COMPONENTBUILDER_COMPONENT_PLUGINS_COMPILE_AMP_EXPORT</option>
|
||||
</field>
|
||||
</form>
|
||||
</field>
|
||||
<!-- Note_on_joomla_plugins Field. Type: Note. A None Database Field. (joomla) -->
|
||||
|
@ -102,7 +102,7 @@ class ComponentbuilderModelHelp_documents extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -306,7 +306,7 @@ class ComponentbuilderModelHelp_documents extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -2032,7 +2032,7 @@ class ComponentbuilderModelJoomla_components extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -2190,7 +2190,7 @@ class ComponentbuilderModelJoomla_components extends JModelList
|
||||
// Get the encryption object.
|
||||
$basic = new FOFEncryptAes($basickey);
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -45,28 +45,23 @@ class ComponentbuilderModelJoomla_plugins extends JModelList
|
||||
public function getBoilerplate()
|
||||
{
|
||||
// get boilerplate repo root details
|
||||
if (($result = ComponentbuilderHelper::getFileContents(ComponentbuilderHelper::$bolerplateAPI)) !== false && ComponentbuilderHelper::checkJson($result))
|
||||
if (($repo_tree = ComponentbuilderHelper::getGithubRepoFileList('boilerplate', ComponentbuilderHelper::$bolerplateAPI)) !== false)
|
||||
{
|
||||
$result = json_decode($result);
|
||||
// check if we have a three
|
||||
if (isset($result->tree) && ComponentbuilderHelper::checkArray($result->tree))
|
||||
{
|
||||
$found = array_values(array_filter(
|
||||
$result->tree,
|
||||
function($tree) {
|
||||
if (isset($tree->path) && $tree->path === 'plugins')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
$found = array_values(array_filter(
|
||||
$repo_tree,
|
||||
function($tree) {
|
||||
if (isset($tree->path) && $tree->path === 'plugins')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
));
|
||||
// make sure we have the correct boilerplate
|
||||
if (ComponentbuilderHelper::checkArray($found) && count($found) == 1 && method_exists(__CLASS__, 'getPluginsBoilerplate'))
|
||||
{
|
||||
// get the plugins boilerplate
|
||||
return $this->getPluginsBoilerplate($found[0]->url);
|
||||
return false;
|
||||
}
|
||||
));
|
||||
// make sure we have the correct boilerplate
|
||||
if (ComponentbuilderHelper::checkArray($found) && count($found) == 1 && method_exists(__CLASS__, 'getPluginsBoilerplate'))
|
||||
{
|
||||
// get the plugins boilerplate
|
||||
return $this->getPluginsBoilerplate($found[0]->url);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@ -81,85 +76,80 @@ class ComponentbuilderModelJoomla_plugins extends JModelList
|
||||
protected function getPluginsBoilerplate($url)
|
||||
{
|
||||
// get boilerplate root for plugins
|
||||
if (($result = ComponentbuilderHelper::getFileContents($url)) !== false && ComponentbuilderHelper::checkJson($result))
|
||||
if (($plugin_tree = ComponentbuilderHelper::getGithubRepoFileList('boilerplate_plugins', $url)) !== false)
|
||||
{
|
||||
$result = json_decode($result);
|
||||
// check if we have a tree
|
||||
if (isset($result->tree) && ComponentbuilderHelper::checkArray($result->tree))
|
||||
{
|
||||
// get the app object
|
||||
$app = JFactory::getApplication();
|
||||
// set the table names
|
||||
$tables = array();
|
||||
$tables['e'] = 'class_extends';
|
||||
$tables['g'] = 'joomla_plugin_group';
|
||||
$tables['m'] = 'class_method';
|
||||
$tables['p'] = 'class_property';
|
||||
// load the needed models
|
||||
$models = array();
|
||||
$models['e'] = ComponentbuilderHelper::getModel($tables['e']);
|
||||
$models['g'] = ComponentbuilderHelper::getModel($tables['g']);
|
||||
$models['p'] = ComponentbuilderHelper::getModel($tables['p']);
|
||||
$models['m'] = ComponentbuilderHelper::getModel($tables['m']);
|
||||
// get the needed data of each plugin group
|
||||
$groups = array_map(
|
||||
function($tree) use(&$app, &$models, &$tables){
|
||||
if (($fooClass = ComponentbuilderHelper::getFileContents(ComponentbuilderHelper::$bolerplatePath . '/plugins/' . $tree->path . '/foo.php')) !== false && ComponentbuilderHelper::checkString($fooClass))
|
||||
// get the app object
|
||||
$app = JFactory::getApplication();
|
||||
// set the table names
|
||||
$tables = array();
|
||||
$tables['e'] = 'class_extends';
|
||||
$tables['g'] = 'joomla_plugin_group';
|
||||
$tables['m'] = 'class_method';
|
||||
$tables['p'] = 'class_property';
|
||||
// load the needed models
|
||||
$models = array();
|
||||
$models['e'] = ComponentbuilderHelper::getModel($tables['e']);
|
||||
$models['g'] = ComponentbuilderHelper::getModel($tables['g']);
|
||||
$models['p'] = ComponentbuilderHelper::getModel($tables['p']);
|
||||
$models['m'] = ComponentbuilderHelper::getModel($tables['m']);
|
||||
// get the needed data of each plugin group
|
||||
$groups = array_map(
|
||||
function($tree) use(&$app, &$models, &$tables){
|
||||
if (($fooClass = ComponentbuilderHelper::getFileContents(ComponentbuilderHelper::$bolerplatePath . '/plugins/' . $tree->path . '/foo.php')) !== false && ComponentbuilderHelper::checkString($fooClass))
|
||||
{
|
||||
// extract the boilerplate class extends and check if already set
|
||||
if (($classExtends = ComponentbuilderHelper::extractBoilerplateClassExtends($fooClass, 'plugins')) !== false &&
|
||||
($classExtendsID = ComponentbuilderHelper::getVar('class_extends', $classExtends, 'name', 'id')) === false)
|
||||
{
|
||||
// extract the boilerplate class extends and check if already set
|
||||
if (($classExtends = ComponentbuilderHelper::extractBoilerplateClassExtends($fooClass, 'plugins')) !== false &&
|
||||
($classExtendsID = ComponentbuilderHelper::getVar('class_extends', $classExtends, 'name', 'id')) === false)
|
||||
// load the extends class name
|
||||
$class = array('id' => 0, 'published' => 1, 'version' => 1, 'name' => $classExtends);
|
||||
// extract the boilerplate class header
|
||||
$class['head'] = ComponentbuilderHelper::extractBoilerplateClassHeader($fooClass, $classExtends, 'plugins');
|
||||
// extract the boilerplate class comment
|
||||
$class['comment'] = ComponentbuilderHelper::extractBoilerplateClassComment($fooClass, $classExtends, 'plugins');
|
||||
// set the extension type
|
||||
$class['extension_type'] = 'plugins';
|
||||
// store the class
|
||||
$this->storePluginBoilerplate($tables['e'], $models['e'], $class, $app);
|
||||
// work around
|
||||
$classExtendsID = ComponentbuilderHelper::getVar('class_extends', $classExtends, 'name', 'id');
|
||||
}
|
||||
// set plugin group if not already set
|
||||
if (($pluginGroupID = ComponentbuilderHelper::getVar('joomla_plugin_group', $tree->path, 'name', 'id')) === false)
|
||||
{
|
||||
// load the plugin group name
|
||||
$pluginGroup = array('id' => 0, 'published' => 1, 'version' => 1, 'name' => $tree->path, 'class_extends' => $classExtendsID);
|
||||
// store the group
|
||||
$this->storePluginBoilerplate($tables['g'], $models['g'], $pluginGroup, $app);
|
||||
// work around
|
||||
$pluginGroupID = ComponentbuilderHelper::getVar('joomla_plugin_group', $tree->path, 'name', 'id');
|
||||
}
|
||||
// extract the boilerplate class property and methods
|
||||
if (($classProperiesMethods = ComponentbuilderHelper::extractBoilerplateClassPropertiesMethods($fooClass, $classExtends, 'plugins', $pluginGroupID)) !== false)
|
||||
{
|
||||
// create the properties found
|
||||
if (isset($classProperiesMethods['property']) && ComponentbuilderHelper::checkArray($classProperiesMethods['property']))
|
||||
{
|
||||
// load the extends class name
|
||||
$class = array('id' => 0, 'published' => 1, 'version' => 1, 'name' => $classExtends);
|
||||
// extract the boilerplate class header
|
||||
$class['head'] = ComponentbuilderHelper::extractBoilerplateClassHeader($fooClass, $classExtends, 'plugins');
|
||||
// extract the boilerplate class comment
|
||||
$class['comment'] = ComponentbuilderHelper::extractBoilerplateClassComment($fooClass, $classExtends, 'plugins');
|
||||
// set the extension type
|
||||
$class['extension_type'] = 'plugins';
|
||||
// store the class
|
||||
$this->storePluginBoilerplate($tables['e'], $models['e'], $class, $app);
|
||||
// work around
|
||||
$classExtendsID = ComponentbuilderHelper::getVar('class_extends', $classExtends, 'name', 'id');
|
||||
}
|
||||
// set plugin group if not already set
|
||||
if (($pluginGroupID = ComponentbuilderHelper::getVar('joomla_plugin_group', $tree->path, 'name', 'id')) === false)
|
||||
{
|
||||
// load the plugin group name
|
||||
$pluginGroup = array('id' => 0, 'published' => 1, 'version' => 1, 'name' => $tree->path, 'class_extends' => $classExtendsID);
|
||||
// store the group
|
||||
$this->storePluginBoilerplate($tables['g'], $models['g'], $pluginGroup, $app);
|
||||
// work around
|
||||
$pluginGroupID = ComponentbuilderHelper::getVar('joomla_plugin_group', $tree->path, 'name', 'id');
|
||||
}
|
||||
// extract the boilerplate class property and methods
|
||||
if (($classProperiesMethods = ComponentbuilderHelper::extractBoilerplateClassPropertiesMethods($fooClass, $classExtends, 'plugins', $pluginGroupID)) !== false)
|
||||
{
|
||||
// create the properties found
|
||||
if (isset($classProperiesMethods['property']) && ComponentbuilderHelper::checkArray($classProperiesMethods['property']))
|
||||
foreach ($classProperiesMethods['property'] as $_property)
|
||||
{
|
||||
foreach ($classProperiesMethods['property'] as $_property)
|
||||
{
|
||||
// force update by default
|
||||
$this->storePluginBoilerplate($tables['p'], $models['p'], $_property, $app);
|
||||
}
|
||||
// force update by default
|
||||
$this->storePluginBoilerplate($tables['p'], $models['p'], $_property, $app);
|
||||
}
|
||||
// create the method found (TODO just create for now but we could later add a force update)
|
||||
if (isset($classProperiesMethods['method']) && ComponentbuilderHelper::checkArray($classProperiesMethods['method']))
|
||||
}
|
||||
// create the method found (TODO just create for now but we could later add a force update)
|
||||
if (isset($classProperiesMethods['method']) && ComponentbuilderHelper::checkArray($classProperiesMethods['method']))
|
||||
{
|
||||
foreach ($classProperiesMethods['method'] as $_method)
|
||||
{
|
||||
foreach ($classProperiesMethods['method'] as $_method)
|
||||
{
|
||||
// force update by default
|
||||
$this->storePluginBoilerplate($tables['m'], $models['m'], $_method, $app);
|
||||
}
|
||||
// force update by default
|
||||
$this->storePluginBoilerplate($tables['m'], $models['m'], $_method, $app);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
$result->tree
|
||||
);
|
||||
}
|
||||
}
|
||||
},
|
||||
$plugin_tree
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -215,6 +205,7 @@ class ComponentbuilderModelJoomla_plugins extends JModelList
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Method to auto-populate the model state.
|
||||
*
|
||||
@ -273,7 +264,7 @@ class ComponentbuilderModelJoomla_plugins extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelJoomla_plugins_files_folders_urls extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelJoomla_plugins_updates extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -86,7 +86,7 @@ class ComponentbuilderModelLanguage_translations extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -318,7 +318,7 @@ class ComponentbuilderModelLanguage_translations extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -213,7 +213,7 @@ class ComponentbuilderModelLanguages extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -356,7 +356,7 @@ class ComponentbuilderModelLanguages extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -98,7 +98,7 @@ class ComponentbuilderModelLayouts extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -289,7 +289,7 @@ class ComponentbuilderModelLayouts extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -98,7 +98,7 @@ class ComponentbuilderModelLibraries extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelLibraries_config extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -84,7 +84,7 @@ class ComponentbuilderModelLibraries_files_folders_urls extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -90,7 +90,7 @@ class ComponentbuilderModelPlaceholders extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -235,7 +235,7 @@ class ComponentbuilderModelPlaceholders extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -244,7 +244,7 @@ class ComponentbuilderModelServer extends JModelAdmin
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -90,7 +90,7 @@ class ComponentbuilderModelServers extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -283,7 +283,7 @@ class ComponentbuilderModelServers extends JModelList
|
||||
// Get the encryption object.
|
||||
$basic = new FOFEncryptAes($basickey);
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -110,7 +110,7 @@ class ComponentbuilderModelSite_views extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -321,7 +321,7 @@ class ComponentbuilderModelSite_views extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -90,7 +90,7 @@ class ComponentbuilderModelSnippet_types extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
|
@ -216,7 +216,7 @@ class ComponentbuilderModelSnippets extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -377,7 +377,7 @@ class ComponentbuilderModelSnippets extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -98,7 +98,7 @@ class ComponentbuilderModelTemplates extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -289,7 +289,7 @@ class ComponentbuilderModelTemplates extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -90,7 +90,7 @@ class ComponentbuilderModelValidation_rules extends JModelList
|
||||
// load parent items
|
||||
$items = parent::getItems();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
// Get the user object if not set.
|
||||
@ -233,7 +233,7 @@ class ComponentbuilderModelValidation_rules extends JModelList
|
||||
{
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
// set values to display correctly.
|
||||
// Set values to display correctly.
|
||||
if (ComponentbuilderHelper::checkArray($items))
|
||||
{
|
||||
foreach ($items as $nr => &$item)
|
||||
|
@ -18,7 +18,7 @@ JHtml::_('script', 'system/core.js', false, true);
|
||||
JHtml::_('behavior.keepalive');
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
<?php if ($this->hasPackage && $this->dataType === 'smart_package'): ?>
|
||||
<?php if (isset($this->hasPackage) && $this->hasPackage && $this->dataType === 'smart_package'): ?>
|
||||
Joomla.continueExtImport = function()
|
||||
{
|
||||
var form = document.getElementById('adminForm');
|
||||
@ -168,7 +168,7 @@ jQuery(document).ready(function($) {
|
||||
<div style="text-align:right;"><small><a href="https://github.com/Llewellynvdm" target="_blank" style="color:gray"><<ewe>>yn</a></small></div>
|
||||
</div>
|
||||
<div id="installer-import">
|
||||
<?php if ($this->hasPackage && $this->dataType === 'smart_package') : ?>
|
||||
<?php if (isset($this->hasPackage) && $this->hasPackage && $this->dataType === 'smart_package') : ?>
|
||||
<?php
|
||||
if (isset($this->packageInfo['name']) && ComponentbuilderHelper::checkArray($this->packageInfo['name']))
|
||||
{
|
||||
@ -277,7 +277,7 @@ jQuery(document).ready(function($) {
|
||||
</fieldset>
|
||||
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
||||
|
||||
<?php if ($this->vdmPackages && ComponentbuilderHelper::checkArray($this->vdmPackages)): ?>
|
||||
<?php if (isset($this->vdmPackages) && ComponentbuilderHelper::checkArray($this->vdmPackages)): ?>
|
||||
<?php echo JHtml::_('bootstrap.addTab', 'jcbImportTab', 'url_vdm', JText::_('COM_COMPONENTBUILDER_VDM_PACKAGES', true)); ?>
|
||||
<div class="span12" id="vdm_packages_installer">
|
||||
<div class="alert alert-success">
|
||||
@ -308,7 +308,7 @@ jQuery(document).ready(function($) {
|
||||
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($this->jcbPackages && ComponentbuilderHelper::checkArray($this->jcbPackages)) : ?>
|
||||
<?php if (isset($this->jcbPackages) && ComponentbuilderHelper::checkArray($this->jcbPackages)) : ?>
|
||||
<?php echo JHtml::_('bootstrap.addTab', 'jcbImportTab', 'url_jcb', JText::_('COM_COMPONENTBUILDER_JCB_COMMUNITY_PACKAGES', true)); ?>
|
||||
<div class="span12" id="jcb_packages_installer">
|
||||
<div class="alert alert-success">
|
||||
@ -349,12 +349,12 @@ jQuery(document).ready(function($) {
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
<?php if (($this->vdmPackages && ComponentbuilderHelper::checkArray($this->vdmPackages)) || ($this->jcbPackages && ComponentbuilderHelper::checkArray($this->jcbPackages))): ?>
|
||||
<?php if ((isset($this->vdmPackages) && $this->vdmPackages && ComponentbuilderHelper::checkArray($this->vdmPackages)) || (isset($this->jcbPackages) && $this->jcbPackages && ComponentbuilderHelper::checkArray($this->jcbPackages))): ?>
|
||||
// set packages that are on the page
|
||||
var packages = {};
|
||||
jQuery(document).ready(function($)
|
||||
{
|
||||
<?php if ($this->jcbPackages && ComponentbuilderHelper::checkArray($this->jcbPackages)): ?>
|
||||
<?php if (isset($this->jcbPackages) && $this->jcbPackages && ComponentbuilderHelper::checkArray($this->jcbPackages)): ?>
|
||||
// get all jcb packages
|
||||
jQuery("#jcb_package option").each(function()
|
||||
{
|
||||
@ -362,7 +362,7 @@ jQuery(document).ready(function($)
|
||||
packages[key] = 'jcb';
|
||||
});
|
||||
<?php endif; ?>
|
||||
<?php if ($this->vdmPackages && ComponentbuilderHelper::checkArray($this->vdmPackages)): ?>
|
||||
<?php if (isset($this->vdmPackages) && $this->vdmPackages && ComponentbuilderHelper::checkArray($this->vdmPackages)): ?>
|
||||
// get all vdm packages
|
||||
jQuery("#vdm_package option").each(function()
|
||||
{
|
||||
|
@ -310,7 +310,7 @@ class ComponentbuilderViewImport_joomla_components extends JViewLegacy
|
||||
$form[] = $sleutle;
|
||||
}
|
||||
}
|
||||
elseif ('vdm_package' === $type && in_array('vdm', $this->directories) && $vdmListObjects = ComponentbuilderHelper::getGithubRepoFileList('vdmGithubPackages', ComponentbuilderHelper::$vdmGithubPackagesUrl.ComponentbuilderHelper::$accessToken))
|
||||
elseif ('vdm_package' === $type && in_array('vdm', $this->directories) && $vdmListObjects = ComponentbuilderHelper::getGithubRepoFileList('vdmGithubPackages', ComponentbuilderHelper::$vdmGithubPackagesUrl))
|
||||
{
|
||||
if (ComponentbuilderHelper::checkArray($vdmListObjects))
|
||||
{
|
||||
@ -354,7 +354,7 @@ class ComponentbuilderViewImport_joomla_components extends JViewLegacy
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ('jcb_package' === $type && in_array('jcb', $this->directories) && $jcbListObjects = ComponentbuilderHelper::getGithubRepoFileList('communityGithubPackages', ComponentbuilderHelper::$jcbGithubPackagesUrl.ComponentbuilderHelper::$accessToken))
|
||||
elseif ('jcb_package' === $type && in_array('jcb', $this->directories) && $jcbListObjects = ComponentbuilderHelper::getGithubRepoFileList('communityGithubPackages', ComponentbuilderHelper::$jcbGithubPackagesUrl))
|
||||
{
|
||||
if (ComponentbuilderHelper::checkArray($jcbListObjects))
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension type="component" version="3.2" method="upgrade">
|
||||
<name>COM_COMPONENTBUILDER</name>
|
||||
<creationDate>5th September, 2019</creationDate>
|
||||
<creationDate>10th September, 2019</creationDate>
|
||||
<author>Llewellyn van der Merwe</author>
|
||||
<authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail>
|
||||
<authorUrl>http://www.joomlacomponentbuilder.com</authorUrl>
|
||||
|
@ -5630,7 +5630,7 @@ class com_componentbuilderInstallerScript
|
||||
$admin_view_action_log_config->type_title = 'ADMIN_VIEW';
|
||||
$admin_view_action_log_config->type_alias = 'com_componentbuilder.admin_view';
|
||||
$admin_view_action_log_config->id_holder = 'id';
|
||||
$admin_view_action_log_config->title_holder = '';
|
||||
$admin_view_action_log_config->title_holder = 'system_name';
|
||||
$admin_view_action_log_config->table_name = '#__componentbuilder_admin_view';
|
||||
$admin_view_action_log_config->text_prefix = 'COM_COMPONENTBUILDER';
|
||||
|
||||
@ -7721,7 +7721,7 @@ class com_componentbuilderInstallerScript
|
||||
$admin_view_action_log_config->type_title = 'ADMIN_VIEW';
|
||||
$admin_view_action_log_config->type_alias = 'com_componentbuilder.admin_view';
|
||||
$admin_view_action_log_config->id_holder = 'id';
|
||||
$admin_view_action_log_config->title_holder = '';
|
||||
$admin_view_action_log_config->title_holder = 'system_name';
|
||||
$admin_view_action_log_config->table_name = '#__componentbuilder_admin_view';
|
||||
$admin_view_action_log_config->text_prefix = 'COM_COMPONENTBUILDER';
|
||||
|
||||
|
@ -12,6 +12,8 @@
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
use Joomla\Utilities\ArrayHelper;
|
||||
|
||||
/**
|
||||
* Componentbuilder component helper
|
||||
*/
|
||||
@ -61,14 +63,14 @@ abstract class ComponentbuilderHelper
|
||||
/**
|
||||
* The VDM packages paths
|
||||
**/
|
||||
public static $vdmGithubPackagesUrl = "https://api.github.com/repos/vdm-io/JCB-Packages/git/trees/master";
|
||||
public static $vdmGithubPackageUrl = "https://github.com/vdm-io/JCB-Packages/raw/master/";
|
||||
public static $vdmGithubPackagesUrl = "https://api.github.com/repos/vdm-io/JCB-Packages/git/trees/master";
|
||||
|
||||
/**
|
||||
* The JCB packages paths
|
||||
**/
|
||||
public static $jcbGithubPackagesUrl = "https://api.github.com/repos/vdm-io/JCB-Community-Packages/git/trees/master";
|
||||
public static $jcbGithubPackageUrl = "https://github.com/vdm-io/JCB-Community-Packages/raw/master/";
|
||||
public static $jcbGithubPackagesUrl = "https://api.github.com/repos/vdm-io/JCB-Community-Packages/git/trees/master";
|
||||
|
||||
/**
|
||||
* The bolerplate paths
|
||||
@ -76,9 +78,6 @@ abstract class ComponentbuilderHelper
|
||||
public static $bolerplatePath = 'https://raw.githubusercontent.com/vdm-io/boilerplate/jcb/';
|
||||
public static $bolerplateAPI = 'https://api.github.com/repos/vdm-io/boilerplate/git/trees/jcb';
|
||||
|
||||
// not needed at this time (maybe latter)
|
||||
public static $accessToken = "";
|
||||
|
||||
/**
|
||||
* The array of constant paths
|
||||
*
|
||||
@ -2413,66 +2412,163 @@ abstract class ComponentbuilderHelper
|
||||
|
||||
|
||||
/**
|
||||
* get the github repo file list
|
||||
*
|
||||
* @return array on success
|
||||
*
|
||||
*/
|
||||
* The github access token
|
||||
**/
|
||||
protected static $gitHubAccessToken = "";
|
||||
|
||||
/**
|
||||
* The github repo get data errors
|
||||
**/
|
||||
public static $githubRepoDataErrors = array();
|
||||
|
||||
/**
|
||||
* get the github repo file list
|
||||
*
|
||||
* @return array on success
|
||||
*
|
||||
*/
|
||||
public static function getGithubRepoFileList($type, $target)
|
||||
{
|
||||
// get the current Packages (public)
|
||||
if (!$repoData = self::get($type))
|
||||
// get the repo data
|
||||
if (($repoData = self::getGithubRepoData($type, $target, 'tree')) !== false)
|
||||
{
|
||||
if (self::urlExists($target))
|
||||
{
|
||||
$repoData = self::getFileContents($target);
|
||||
if (self::checkJson($repoData))
|
||||
{
|
||||
$test = json_decode($repoData);
|
||||
if (self::checkObject($test) && isset($test->tree) && self::checkArray($test->tree) )
|
||||
{
|
||||
// remember to set it
|
||||
self::set($type, $repoData);
|
||||
}
|
||||
// check if we have error message from github
|
||||
elseif ($errorMessage = self::githubErrorHandeler(array('error' => null), $test))
|
||||
{
|
||||
if (self::checkString($errorMessage['error']))
|
||||
{
|
||||
JFactory::getApplication()->enqueueMessage($errorMessage['error'], 'Error');
|
||||
}
|
||||
$repoData = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$repoData = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
JFactory::getApplication()->enqueueMessage(JText::sprintf('COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_EXIST', $target), 'Error');
|
||||
}
|
||||
}
|
||||
// check if we could find packages
|
||||
if (isset($repoData) && self::checkJson($repoData))
|
||||
{
|
||||
$repoData = json_decode($repoData);
|
||||
if (self::checkObject($repoData) && isset($repoData->tree) && self::checkArray($repoData->tree) )
|
||||
{
|
||||
return $repoData->tree;
|
||||
}
|
||||
return $repoData->tree;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the github error messages
|
||||
*
|
||||
* @return array of errors on success
|
||||
*
|
||||
*/
|
||||
protected static function githubErrorHandeler($message, &$github)
|
||||
* get the github repo file list
|
||||
*
|
||||
* @return array on success
|
||||
*
|
||||
*/
|
||||
public static function getGithubRepoData($type, $url, $target = null, $return_type = 'object')
|
||||
{
|
||||
// always reset errors per/request
|
||||
self::$githubRepoDataErrors = array();
|
||||
// get the current Packages (public)
|
||||
if ('nomemory' === $type || !$repoData = self::get($type))
|
||||
{
|
||||
// add the token if not already added
|
||||
$_url = self::setGithubToken($url);
|
||||
// check if the url exist
|
||||
if (self::urlExists($_url))
|
||||
{
|
||||
// get the data from github
|
||||
if (($repoData = self::getFileContents($_url)) !== false && self::checkJson($repoData))
|
||||
{
|
||||
$github_returned = json_decode($repoData);
|
||||
if (self::checkString($target) && self::checkObject($github_returned) &&
|
||||
isset($github_returned->{$target}) && self::checkArray($github_returned->{$target}) )
|
||||
{
|
||||
if ('nomemory' !== $type)
|
||||
{
|
||||
// remember to set it
|
||||
self::set($type, $repoData);
|
||||
}
|
||||
}
|
||||
elseif (!self::checkString($target) && self::checkObject($github_returned) && !isset($github_returned->message))
|
||||
{
|
||||
if ('nomemory' !== $type)
|
||||
{
|
||||
// remember to set it
|
||||
self::set($type, $repoData);
|
||||
}
|
||||
}
|
||||
// check if we have error message from github
|
||||
elseif (($errorMessage = self::githubErrorHandeler(array('error' => null), $github_returned, $type)) !== false)
|
||||
{
|
||||
if (isset($errorMessage['error']) && self::checkString($errorMessage['error']))
|
||||
{
|
||||
// set the error in the application
|
||||
JFactory::getApplication()->enqueueMessage($errorMessage['error'], 'Error');
|
||||
// set the error also in the class encase it is and Ajax call
|
||||
self::$githubRepoDataErrors[] = $errorMessage['error'];
|
||||
}
|
||||
return false;
|
||||
}
|
||||
elseif (self::checkString($target))
|
||||
{
|
||||
// setup error string
|
||||
$error = JText::sprintf('COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DID_NOT_RETURN_S_DATA', $url, $target);
|
||||
// set the error in the application
|
||||
JFactory::getApplication()->enqueueMessage($error, 'Error');
|
||||
// set the error also in the class encase it is and Ajax call
|
||||
self::$githubRepoDataErrors[] = $error;
|
||||
// we are done here
|
||||
return false;
|
||||
}
|
||||
elseif ('nomemory' !== $type)
|
||||
{
|
||||
// setup error string
|
||||
$error = JText::sprintf('COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DID_NOT_RETURN_S_DATA', $url, $type);
|
||||
// set the error in the application
|
||||
JFactory::getApplication()->enqueueMessage($error, 'Error');
|
||||
// set the error also in the class encase it is and Ajax call
|
||||
self::$githubRepoDataErrors[] = $error;
|
||||
// we are done here
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
// setup error string
|
||||
$error = JText::sprintf('COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DID_NOT_RETURN_VALID_DATA', $url, $type);
|
||||
// set the error in the application
|
||||
JFactory::getApplication()->enqueueMessage($error, 'Error');
|
||||
// set the error also in the class encase it is and Ajax call
|
||||
self::$githubRepoDataErrors[] = $error;
|
||||
// we are done here
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// setup error string
|
||||
$error = JText::sprintf('COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_RETURN_ANY_DATA', $url);
|
||||
// set the error in the application
|
||||
JFactory::getApplication()->enqueueMessage($error, 'Error');
|
||||
// set the error also in the class encase it is and Ajax call
|
||||
self::$githubRepoDataErrors[] = $error;
|
||||
// we are done here
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// setup error string
|
||||
$error = JText::sprintf('COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_EXIST', $url);
|
||||
// set the error in the application
|
||||
JFactory::getApplication()->enqueueMessage($error, 'Error');
|
||||
// set the error also in the class encase it is and Ajax call
|
||||
self::$githubRepoDataErrors[] = $error;
|
||||
// we are done here
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// check if we could find packages
|
||||
if (isset($repoData) && self::checkJson($repoData))
|
||||
{
|
||||
if ('object' === $return_type)
|
||||
{
|
||||
return json_decode($repoData);
|
||||
}
|
||||
elseif ('array' === $return_type)
|
||||
{
|
||||
return json_decode($repoData, true);
|
||||
}
|
||||
return $repoData;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the github error messages
|
||||
*
|
||||
* @return array of errors on success
|
||||
*
|
||||
*/
|
||||
protected static function githubErrorHandeler($message, &$github, $type)
|
||||
{
|
||||
if (self::checkObject($github) && isset($github->message) && self::checkString($github->message))
|
||||
{
|
||||
@ -2481,13 +2577,17 @@ abstract class ComponentbuilderHelper
|
||||
// add the documentation URL
|
||||
if (isset($github->documentation_url) && self::checkString($github->documentation_url))
|
||||
{
|
||||
$errorMessage = $errorMessage.'<br />'.$github->documentation_url;
|
||||
$errorMessage = $errorMessage . '<br />' . $github->documentation_url;
|
||||
}
|
||||
// check the message
|
||||
if (strpos($errorMessage, 'Authenticated') !== false)
|
||||
{
|
||||
if ('nomemory' === $type)
|
||||
{
|
||||
$type = 'data';
|
||||
}
|
||||
// add little more help if it is an access token issue
|
||||
$errorMessage = JText::sprintf('COM_COMPONENTBUILDER_SBR_YOU_CAN_ADD_AN_BACCESS_TOKENB_TO_GETBIBLE_GLOBAL_OPTIONS_TO_MAKE_AUTHENTICATED_REQUESTS_AN_ACCESS_TOKEN_WITH_ONLY_PUBLIC_ACCESS_WILL_DO', $errorMessage);
|
||||
$errorMessage = JText::sprintf('COM_COMPONENTBUILDER_SBR_YOU_CAN_ADD_A_BGITHUB_ACCESS_TOKENB_TO_COMPONENTBUILDER_GLOBAL_OPTIONS_TO_MAKE_AUTHENTICATED_REQUESTS_TO_GITHUB_AN_ACCESS_TOKEN_WITH_ONLY_PUBLIC_ACCESS_WILL_DO_TO_RETRIEVE_S', $errorMessage, $type);
|
||||
}
|
||||
// set error notice
|
||||
$message['error'] = $errorMessage;
|
||||
@ -2497,6 +2597,36 @@ abstract class ComponentbuilderHelper
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* set the github token
|
||||
*
|
||||
* @return array of errors on success
|
||||
*
|
||||
*/
|
||||
protected static function setGithubToken($url)
|
||||
{
|
||||
// first check if token already set
|
||||
if (strpos($url, 'access_token=') !== false)
|
||||
{
|
||||
// make sure the token is loaded
|
||||
if (!self::checkString(self::$gitHubAccessToken))
|
||||
{
|
||||
// get the global settings
|
||||
if (!self::checkObject(self::$params))
|
||||
{
|
||||
self::$params = JComponentHelper::getParams('com_componentbuilder');
|
||||
}
|
||||
self::$gitHubAccessToken = self::$params->get('github_access_token', null);
|
||||
}
|
||||
// make sure the token is loaded at this point
|
||||
if (self::checkString(self::$gitHubAccessToken))
|
||||
{
|
||||
$url .= '&access_token=' . self::$gitHubAccessToken;
|
||||
}
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get Dynamic Scripts
|
||||
|
@ -62,7 +62,7 @@ COM_COMPONENTBUILDER_PACKAGE_OWNER_DETAILS_NOT_FOUND="Package owner details not
|
||||
COM_COMPONENTBUILDER_PACKAGE_OWNER_NOT_SET="Package Owner Not Set"
|
||||
COM_COMPONENTBUILDER_PAIDLOCKED="Paid/Locked"
|
||||
COM_COMPONENTBUILDER_PROPERTY="Property"
|
||||
COM_COMPONENTBUILDER_SBR_YOU_CAN_ADD_AN_BACCESS_TOKENB_TO_GETBIBLE_GLOBAL_OPTIONS_TO_MAKE_AUTHENTICATED_REQUESTS_AN_ACCESS_TOKEN_WITH_ONLY_PUBLIC_ACCESS_WILL_DO="%s<br />You can add an <b>access token<b/> to getBible global options to make authenticated requests. An access token with only public access will do."
|
||||
COM_COMPONENTBUILDER_SBR_YOU_CAN_ADD_A_BGITHUB_ACCESS_TOKENB_TO_COMPONENTBUILDER_GLOBAL_OPTIONS_TO_MAKE_AUTHENTICATED_REQUESTS_TO_GITHUB_AN_ACCESS_TOKEN_WITH_ONLY_PUBLIC_ACCESS_WILL_DO_TO_RETRIEVE_S="%s<br />You can add a <b>gitHub Access Token</b> to Componentbuilder global options to make authenticated requests to gitHub. An access token with only public access will do to retrieve %s."
|
||||
COM_COMPONENTBUILDER_SINCE_THE_OWNER_DETAILS_ARE_DISPLAYED_DURING_BIMPORT_PROCESSB_BEFORE_ADDING_THE_KEY_THIS_WAY_IF_THE_USERDEV_BDOES_NOTB_HAVE_THE_KEY_THEY_CAN_SEE_BWHERE_TO_GET_ITB="Since the owner details are displayed during <b>import process</b> before adding the key, this way if the user/dev <b>does not</b> have the key they can see <b>where to get it</b>."
|
||||
COM_COMPONENTBUILDER_SINCE_THE_OWNER_DETAILS_ARE_DISPLAYED_DURING_IMPORT_PROCESS_BEFORE_ADDING_THE_KEY_THIS_WAY_IF_THE_USERDEV_DOES_NOT_HAVE_THE_KEY_THEY_CAN_SEE_WHERE_TO_GET_IT="Since the owner details are displayed during import process before adding the key, this way if the user/dev does not have the key they can see where to get it."
|
||||
COM_COMPONENTBUILDER_SORRY_THIS_PLACEHOLDER_IS_ALREADY_IN_USE="Sorry this placeholder is already in use!"
|
||||
@ -86,7 +86,10 @@ COM_COMPONENTBUILDER_THE_S_WAS_NOT_INSTALLED_BY_YOUR_REQUEST_AND_IS_ALSO_REMOVED
|
||||
COM_COMPONENTBUILDER_THE_S_WAS_NOT_INSTALLED_BY_YOUR_REQUEST_AND_IS_STILL_IN_THE_TEMP_FOLDER="The %s was not Installed by your request and is still in the temp folder."
|
||||
COM_COMPONENTBUILDER_THE_S_WAS_SUCCESSFULLY_COMPILED="The %s was successfully compiled."
|
||||
COM_COMPONENTBUILDER_THE_S_WAS_SUCCESSFULLY_INSTALLED_AND_REMOVED_FROM_TEMP_FOLDER="The %s was successfully Installed and removed from temp folder."
|
||||
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DID_NOT_RETURN_S_DATA="The url (%s) set to retrieve the packages did not return %s data!"
|
||||
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DID_NOT_RETURN_VALID_DATA="The url (%s) set to retrieve the packages did not return valid data!"
|
||||
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_EXIST="The url (%s) set to retrieve the packages does not exist!"
|
||||
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_RETURN_ANY_DATA="The url (%s) set to retrieve the packages does not return any data!"
|
||||
COM_COMPONENTBUILDER_THIS_PACKAGE_HAS_NO_KEY="This package has no key."
|
||||
COM_COMPONENTBUILDER_TO_CHANGE_THE_PACKAGE_OWNER_DEFAULTS_OPEN_THE_BJCB_GLOBAL_OPTIONSB_GO_TO_THE_BCOMPANYB_TAB_AND_ADD_THE_CORRECT_COMPANY_DETAILS_THERE="To change the package owner defaults. Open the <b>JCB Global Options</b>, go to the <b>Company</b> tab and add the correct company details there."
|
||||
COM_COMPONENTBUILDER_TO_CHANGE_THE_PACKAGE_OWNER_DEFAULTS_OPEN_THE_JCB_GLOBAL_OPTIONS_GO_TO_THE_COMPANY_TAB_AND_ADD_THE_CORRECT_COMPANY_DETAILS_THERE="To change the package owner defaults. Open the JCB Global Options, go to the Company tab and add the correct company details there."
|
||||
|
Loading…
Reference in New Issue
Block a user