impoved the request linking options, fixed few bugs in compiler (#52)
This commit is contained in:
@ -2318,7 +2318,11 @@ class Get
|
||||
$langHolders["JText::sprintf('".$string."',"] = "JText::sprintf('".$keyLang."',";
|
||||
$langHolders['JText::sprintf("'.$string.'",'] = 'JText::sprintf("'.$keyLang.'",';
|
||||
}
|
||||
$content = $this->setPlaceholders($content, $langHolders);
|
||||
// only continue if we have value to replace
|
||||
if (isset($langHolders) && ComponentbuilderHelper::checkArray($langHolders))
|
||||
{
|
||||
$content = $this->setPlaceholders($content, $langHolders);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $content;
|
||||
@ -2733,7 +2737,11 @@ class Get
|
||||
*/
|
||||
public function setDynamicValues($string)
|
||||
{
|
||||
return $this->setLangStrings($this->setCustomCodeData($string));
|
||||
if (ComponentbuilderHelper::checkString($string))
|
||||
{
|
||||
return $this->setLangStrings($this->setCustomCodeData($string));
|
||||
}
|
||||
return $string;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -455,18 +455,13 @@ class Fields extends Structure
|
||||
}
|
||||
// start adding dynamc fields
|
||||
$dynamcfields = '';
|
||||
// place holders
|
||||
$placeholders = array(
|
||||
'###component###' => $component,
|
||||
'###view###' => $viewName,
|
||||
'###views###' => $listViewName);
|
||||
$spacerCounter = 'a';
|
||||
// set the custom table key
|
||||
$dbkey = 'g';
|
||||
// TODO we should add the global and local view switch if field for front end
|
||||
foreach ($view['settings']->fields as $field)
|
||||
{
|
||||
$dynamcfields .= $this->setDynamicField($field, $view, $view['settings']->type, $langView, $viewName, $listViewName, $spacerCounter, $placeholders, $dbkey, true);
|
||||
$dynamcfields .= $this->setDynamicField($field, $view, $view['settings']->type, $langView, $viewName, $listViewName, $spacerCounter, $this->placeholders, $dbkey, true);
|
||||
}
|
||||
|
||||
// set the defautl fields
|
||||
@ -1247,7 +1242,7 @@ class Fields extends Structure
|
||||
{
|
||||
// quick check if this is a category linked to view page
|
||||
$requeSt_id = ComponentbuilderHelper::getBetween($field['settings']->xml, 'name="', '"');
|
||||
if (strpos($requeSt_id, '_request_id') !== false)
|
||||
if (strpos($requeSt_id, '_request_id') !== false || strpos($requeSt_id, '_request_catid') !== false)
|
||||
{
|
||||
// keep it then, don't change
|
||||
$xmlValue = $requeSt_id;
|
||||
@ -1301,7 +1296,7 @@ class Fields extends Structure
|
||||
{
|
||||
// make sure the XML name is uniqe, so we can add one field multiple times
|
||||
$xmlValue = $this->uniqueName($xmlValue, $viewName);
|
||||
$name = $this->setPlaceholders($xmlValue);
|
||||
$name = $this->setPlaceholders($xmlValue, $placeholders);
|
||||
}
|
||||
}
|
||||
elseif ($property['name'] === 'extension' || $property['name'] === 'directory')
|
||||
|
@ -48,6 +48,9 @@ class Interpretation extends Fields
|
||||
public $otherWhere = array();
|
||||
public $DashboardGetCustomData = array();
|
||||
public $customAdminAdded = array();
|
||||
|
||||
protected $hasCatIdRequest = array();
|
||||
protected $hasIdRequest = array();
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
@ -1073,15 +1076,27 @@ class Interpretation extends Fields
|
||||
$xml .= PHP_EOL."\t\t\t".'<![CDATA['.$lang.'_DESC]]>';
|
||||
$xml .= PHP_EOL."\t\t".'</message>';
|
||||
$xml .= PHP_EOL."\t".'</layout>';
|
||||
if (isset($this->hasIdRequest[$view['settings']->code]))
|
||||
if (isset($this->hasIdRequest[$view['settings']->code]) || isset($this->hasCatIdRequest[$view['settings']->code]))
|
||||
{
|
||||
$requestField = str_replace($view['settings']->code.'_request_id', 'id', $this->hasIdRequest[$view['settings']->code]);
|
||||
|
||||
$xml .= PHP_EOL."\t".'<!--'.$this->setLine(__LINE__).' Add fields to the request variables for the layout. -->';
|
||||
$xml .= PHP_EOL."\t".'<fields name="request">';
|
||||
$xml .= PHP_EOL."\t\t".'<fieldset name="request"';
|
||||
$xml .= PHP_EOL."\t\t\t".'addfieldpath="/administrator/components/com_'.$this->fileContentStatic['###component###'].'/models/fields">';
|
||||
$xml .= PHP_EOL."\t\t\t".$requestField;
|
||||
if (isset($this->hasIdRequest[$view['settings']->code]) && ComponentbuilderHelper::checkArray($this->hasIdRequest[$view['settings']->code]))
|
||||
{
|
||||
foreach($this->hasIdRequest[$view['settings']->code] as $requestFieldXML)
|
||||
{
|
||||
$xml .= PHP_EOL."\t\t\t".$requestFieldXML;
|
||||
}
|
||||
}
|
||||
if (isset($this->hasCatIdRequest[$view['settings']->code]) && ComponentbuilderHelper::checkArray($this->hasCatIdRequest[$view['settings']->code]))
|
||||
{
|
||||
foreach($this->hasCatIdRequest[$view['settings']->code] as $requestFieldXML)
|
||||
{
|
||||
$xml .= PHP_EOL."\t\t\t".$requestFieldXML;
|
||||
}
|
||||
}
|
||||
$xml .= PHP_EOL."\t\t".'</fieldset>';
|
||||
$xml .= PHP_EOL."\t".'</fields>';
|
||||
}
|
||||
@ -2804,7 +2819,14 @@ class Interpretation extends Fields
|
||||
$keyCode = ComponentbuilderHelper::safeString($custom_button['name']);
|
||||
$this->langContent[$this->lang][$keyLang] = trim($custom_button['name']);
|
||||
// add cpanel button TODO does not work well on site with permissions
|
||||
$buttons[] = "\t".$tab."\tif (\$this->canDo->get('".$viewName.".".$keyCode."'))";
|
||||
if ($custom_button['target'] == 2)
|
||||
{
|
||||
$buttons[] = "\t".$tab."\tif (\$this->user->authorise('".$viewName.".".$keyCode."'))";
|
||||
}
|
||||
else
|
||||
{
|
||||
$buttons[] = "\t".$tab."\tif (\$this->canDo->get('".$viewName.".".$keyCode."'))";
|
||||
}
|
||||
$buttons[] = "\t".$tab."\t{";
|
||||
$buttons[] = "\t".$tab."\t\t//".$this->setLine(__LINE__)." add ".$custom_button['name']." button.";
|
||||
$buttons[] = "\t".$tab."\t\tJToolBarHelper::custom('".$viewName.".".$custom_button['method']."', '".$custom_button['icomoon']."', '', '".$keyLang."', false);";
|
||||
@ -2818,7 +2840,7 @@ class Interpretation extends Fields
|
||||
$keyCode = ComponentbuilderHelper::safeString($custom_button['name']);
|
||||
$this->langContent[$this->lang][$keyLang] = trim($custom_button['name']);
|
||||
// add cpanel button TODO does not work well on site with permissions
|
||||
$buttons[] = "\t".$tab."\tif (\$this->canDo->get('".$viewName.".".$keyCode."'))";
|
||||
$buttons[] = "\t".$tab."\tif (\$this->user->authorise('".$viewName.".".$keyCode."'))";
|
||||
$buttons[] = "\t".$tab."\t{";
|
||||
$buttons[] = "\t".$tab."\t\t//".$this->setLine(__LINE__)." add ".$custom_button['name']." button.";
|
||||
$buttons[] = "\t".$tab."\t\tJToolBarHelper::custom('".$viewsName.".".$custom_button['method']."', '".$custom_button['icomoon']."', '', '".$keyLang."', false);";
|
||||
@ -2850,7 +2872,7 @@ class Interpretation extends Fields
|
||||
if (ComponentbuilderHelper::checkString($view['settings']->php_controller) && $view['settings']->php_controller != '//')
|
||||
{
|
||||
// set the custom buttons ###CUSTOM_BUTTONS_CONTROLLER###
|
||||
$this->fileContentDynamic[$viewName]['###'.$TARGET.'_CUSTOM_BUTTONS_CONTROLLER'.$list.'###'] =
|
||||
$this->fileContentDynamic[$viewName]['###'.$TARGET.'_CUSTOM_BUTTONS_CONTROLLER###'] =
|
||||
PHP_EOL.PHP_EOL.$this->setPlaceholders($view['settings']->php_controller, $this->placeholders);
|
||||
if ('site' === $this->target)
|
||||
{
|
||||
@ -2865,7 +2887,7 @@ class Interpretation extends Fields
|
||||
if (ComponentbuilderHelper::checkString($view['settings']->php_model) && $view['settings']->php_model != '//')
|
||||
{
|
||||
// set the custom buttons ###CUSTOM_BUTTONS_METHOD###
|
||||
$this->fileContentDynamic[$viewName]['###'.$TARGET.'_CUSTOM_BUTTONS_METHOD'.$list.'###'] =
|
||||
$this->fileContentDynamic[$viewName]['###'.$TARGET.'_CUSTOM_BUTTONS_METHOD###'] =
|
||||
PHP_EOL.PHP_EOL.$this->setPlaceholders($view['settings']->php_model, $this->placeholders);
|
||||
}
|
||||
}
|
||||
@ -11883,25 +11905,43 @@ class Interpretation extends Fields
|
||||
$tabCode = ComponentbuilderHelper::safeString($tab).'_custom_config';
|
||||
$tabUpper = ComponentbuilderHelper::safeString($tab,'U');
|
||||
$tabLower = ComponentbuilderHelper::safeString($tab);
|
||||
// load the regust id setters for menu views
|
||||
$viewRequest = 'name="'.$tabLower.'_request_id"';
|
||||
// load the request id setters for menu views
|
||||
$viewRequest = 'name="'.$tabLower.'_request_id';
|
||||
foreach($tabFields as $et => $id_field)
|
||||
{
|
||||
if(strpos($id_field,$viewRequest) !== false)
|
||||
{
|
||||
// set the values needed to insure route is done correclty
|
||||
$this->hasIdRequest[$tabLower] = $id_field;
|
||||
$this->setRequestValues($tabLower, $id_field, $viewRequest, 'id', 'hasIdRequest');
|
||||
unset($tabFields[$et]);
|
||||
}
|
||||
elseif (strpos($id_field,'_request_id"') !== false)
|
||||
elseif (strpos($id_field,'_request_id') !== false)
|
||||
{
|
||||
// not loaded to a tab "view" name
|
||||
$_viewRequest = ComponentbuilderHelper::getBetween($id_field,'name="','_request_id"');
|
||||
// set the values needed to insure route is done correclty
|
||||
$this->hasIdRequest[$_viewRequest] = $id_field;
|
||||
$_viewRequest = ComponentbuilderHelper::getBetween($id_field,'name="','_request_id');
|
||||
$searchIdKe = 'name="'.$_viewRequest.'_request_id';
|
||||
$this->setRequestValues($_viewRequest, $id_field, $searchIdKe, 'id', 'hasIdRequest');
|
||||
unset($tabFields[$et]);
|
||||
}
|
||||
}
|
||||
// load the request catid setters for menu views
|
||||
$viewRequestC = 'name="'.$tabLower.'_request_catid';
|
||||
foreach($tabFields as $ci => $catid_field)
|
||||
{
|
||||
if(strpos($catid_field,$viewRequestC) !== false)
|
||||
{
|
||||
|
||||
$this->setRequestValues($tabLower, $catid_field, $viewRequestC, 'catid', 'hasCatIdRequest');
|
||||
unset($tabFields[$ci]);
|
||||
}
|
||||
elseif (strpos($catid_field,'_request_catid') !== false)
|
||||
{
|
||||
// not loaded to a tab "view" name
|
||||
$_viewRequestC = ComponentbuilderHelper::getBetween($catid_field,'name="','_request_catid');
|
||||
$searchCatidKe = 'name="'.$_viewRequestC.'_request_catid';
|
||||
$this->setRequestValues($_viewRequestC, $catid_field, $searchCatidKe, 'catid', 'hasCatIdRequest');
|
||||
unset($tabFields[$ci]);
|
||||
}
|
||||
}
|
||||
// load the global menu setters for single fields
|
||||
$menuSetter = $tabLower.'_menu';
|
||||
$pageSettings = array();
|
||||
@ -11932,6 +11972,29 @@ class Interpretation extends Fields
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function setRequestValues($view, $field, $search, $target, $store)
|
||||
{
|
||||
$key = ComponentbuilderHelper::getBetween($field, $search, '"');
|
||||
if (!ComponentbuilderHelper::checkString($key))
|
||||
{
|
||||
// is not having special var
|
||||
$key = $target;
|
||||
// update field
|
||||
$field = str_replace($search . '"', 'name="'. $key . '"', $field);
|
||||
}
|
||||
else
|
||||
{
|
||||
// update field
|
||||
$field = str_replace($search . $key . '"', 'name="'. $key . '"', $field);
|
||||
}
|
||||
if (!isset($this->{$store}[$view]))
|
||||
{
|
||||
$this->{$store}[$view] = array();
|
||||
}
|
||||
// set the values needed for view requests to be made
|
||||
$this->{$store}[$view][$key] = $field;
|
||||
}
|
||||
|
||||
public function setCustomControlConfigFieldsets($lang)
|
||||
{
|
||||
@ -13391,30 +13454,8 @@ function vdm_dkim() {
|
||||
$this->langContent['admin'][$siteDesc] = ' Allows the users in this group to access site '.ComponentbuilderHelper::safeString($siteName,'w').'.';
|
||||
$this->componentGlobal[$sortKey] = "\t\t".'<action name="site.'.$siteCode.'.access" title="'.$siteTitle.'" description="'.$siteDesc.'" />';
|
||||
}
|
||||
// add the custom permissions to use the buttons of this view
|
||||
/* if (ComponentbuilderHelper::checkArray($site_view['settings']->custom_buttons))
|
||||
{
|
||||
foreach ($site_view['settings']->custom_buttons as $custom_buttons)
|
||||
{
|
||||
$siteButtonName = $custom_buttons['name'];
|
||||
$siteButtonCode = ComponentbuilderHelper::safeString($siteButtonName);
|
||||
$siteButtonTitle = $this->langPrefix.'_'.ComponentbuilderHelper::safeString($siteName.' '.$siteButtonName.' Button Access','U');
|
||||
$siteButtonDesc = $this->langPrefix.'_'.ComponentbuilderHelper::safeString($siteName.' '.$siteButtonName.' Button Access','U').'_DESC';
|
||||
$sortButtonKey = ComponentbuilderHelper::safeString($siteButtonTitle);
|
||||
$this->langContent['admin'][$siteButtonTitle] = $siteName.' '.$siteButtonName.' Button Access';
|
||||
$this->langContent['admin'][$siteButtonDesc] = ' Allows the users in this group to access the '.ComponentbuilderHelper::safeString($siteButtonName,'w').' button.';
|
||||
$this->componentGlobal[$sortButtonKey] = "\t\t".'<action name="'.$siteCode.'.'.$siteButtonCode.'" title="'.$siteButtonTitle.'" description="'.$siteButtonDesc.'" />';
|
||||
}
|
||||
}
|
||||
// add menu controll view that has menus options
|
||||
foreach ($menuControllers as $menuController)
|
||||
{
|
||||
// add menu controll view that has menus options
|
||||
if ($site_view[$menuController])
|
||||
{
|
||||
// TODO for CUSTOM MENUS!!!
|
||||
}
|
||||
} */
|
||||
// add the custom permissions to use the buttons of this view
|
||||
$this->addCustomButtonPermissions($site_view['settings'], $siteName, $siteCode);
|
||||
}
|
||||
}
|
||||
if (isset($this->componentData->admin_views) && ComponentbuilderHelper::checkArray($this->componentData->admin_views))
|
||||
|
Reference in New Issue
Block a user