vmRulesJ25(); } else { if (version_compare (JVERSION, '3.5.0', 'lt')) { return $this->vmRules(); } else { return parent::getInput(); } } } private function vmRules(){ // Initialise some field attributes. $section = $this->element['section'] ? (string)$this->element['section'] : ''; $component = $this->element['component'] ? (string)$this->element['component'] : ''; $assetField = $this->element['asset_field'] ? (string)$this->element['asset_field'] : 'asset_id'; // Get the actions for the asset. $actions = JAccess::getActionsFromFile(JPATH_ADMINISTRATOR . '/components/' . $component . '/access.xml', "/access/section[@name='" . $section . "']/"); //$actions = JAccess::getActions($component, $section); // Iterate over the children and add to the actions. foreach ($this->element->children() as $el) { if ($el->getName() == 'action') { $actions[] = (object)array('name' => (string)$el['name'], 'title' => (string)$el['title'], 'description' => (string)$el['description']); } } // Get the explicit rules for this asset. $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select($db->quoteName('id')); $query->from($db->quoteName('#__assets')); $query->where($db->quoteName('name') . ' = ' . $db->quote($component)); $db->setQuery($query); $assetId = (int)$db->loadResult(); if ($error = $db->getErrorMsg()) { vmError($error); } // Full width format. // Get the rules for just this asset (non-recursive). $assetRules = JAccess::getAssetRules($assetId); // Get the available user groups. $groups = $this->getUserGroups(); // Build the form control. $curLevel = 0; // Prepare output $html = array(); $html[] = '

' . vmText::_('JLIB_RULES_SETTINGS_DESC') . '

'; $html[] = '
'; $html[] = ''; $html[] = '
'; $per = 1 ; foreach ($groups as $group) { $perlevel = $per++; if ($perlevel == 1) { $active ="active"; } else { $active =""; } $html[] = '
'; $html[] = ''; $html[] = ''; $html[] = ''; $html[] = ''; $html[] = ''; // The calculated setting is not shown for the root group of global configuration. $canCalculateSettings = ($group->parent_id || !empty($component)); if ($canCalculateSettings) { $html[] = ''; } $html[] = ''; $html[] = ''; $html[] = ''; foreach ($actions as $action) { $html[] = ''; $html[] = ''; $html[] = ''; // Build the Calculated Settings column. // The inherited settings column is not displayed for the root group in global configuration. if ($canCalculateSettings) { $html[] = ''; } $html[] = ''; } $html[] = ''; $html[] = '
'; $html[] = '' . vmText::_('JLIB_RULES_ACTION') . ''; $html[] = ''; $html[] = '' . vmText::_('JLIB_RULES_SELECT_SETTING') . ''; $html[] = ''; $html[] = '' . vmText::_('JLIB_RULES_CALCULATED_SETTING') . ''; $html[] = '
'; $html[] = ''; $html[] = ''; //$html[] = $this->formControl.'-'.$this->fieldname; $this->name = $this->formControl . '[rules]'; $html[] = '  '; // If this asset's rule is allowed, but the inherited rule is deny, we have a conflict. if (($assetRule === true) && ($inheritedRule === false)) { $html[] = vmText::_('JLIB_RULES_CONFLICT'); } $html[] = ''; // This is where we show the current effective settings considering currrent group, path and cascade. // Check whether this is a component or global. Change the text slightly. if (JAccess::checkGroup($group->value, 'core.admin', $assetId) !== true) { if ($inheritedRule === null) { $html[] = '' . vmText::_('JLIB_RULES_NOT_ALLOWED') . ''; } elseif ($inheritedRule === true) { $html[] = '' . vmText::_('JLIB_RULES_ALLOWED') . ''; } elseif ($inheritedRule === false) { if ($assetRule === false) { $html[] = '' . vmText::_('JLIB_RULES_NOT_ALLOWED') . ''; } else { $html[] = '' . vmText::_('JLIB_RULES_NOT_ALLOWED_LOCKED') . ''; } } } elseif (!empty($component)) { $html[] = '' . vmText::_('JLIB_RULES_ALLOWED_ADMIN') . ''; } else { // Special handling for groups that have global admin because they can't be denied. // The admin rights can be changed. if ($action->name === 'core.admin') { $html[] = '' . vmText::_('JLIB_RULES_ALLOWED') . ''; } elseif ($inheritedRule === false) { // Other actions cannot be changed. $html[] = '' . vmText::_('JLIB_RULES_NOT_ALLOWED_ADMIN_CONFLICT') . ''; } else { $html[] = '' . vmText::_('JLIB_RULES_ALLOWED_ADMIN') . ''; } } $html[] = '
'; } $html[] = '
'; $html[] = '
'; if ($section == 'component' || $section == null) { $html[] = vmText::_('JLIB_RULES_SETTING_NOTES'); } else { $html[] = vmText::_('JLIB_RULES_SETTING_NOTES_ITEM'); } $html[] = '
'; $css = " .form-horizontal .controls { margin-left:0; } "; JFactory::getDocument()->addStyleDeclaration($css); return implode("\n", $html); } public function vmRulesJ25(){ // Initialise some field attributes. $section = $this->element['section'] ? (string)$this->element['section'] : ''; $component = $this->element['component'] ? (string)$this->element['component'] : ''; $assetField = $this->element['asset_field'] ? (string)$this->element['asset_field'] : 'asset_id'; // Get the actions for the asset. $actions = JAccess::getActionsFromFile(JPATH_ADMINISTRATOR . '/components/' . $component . '/access.xml', "/access/section[@name='" . $section . "']/"); //$actions = JAccess::getActions($component, $section); // Iterate over the children and add to the actions. foreach ($this->element->children() as $el) { if ($el->getName() == 'action') { $actions[] = (object)array('name' => (string)$el['name'], 'title' => (string)$el['title'], 'description' => (string)$el['description']); } } // Get the explicit rules for this asset. $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select($db->quoteName('id')); $query->from($db->quoteName('#__assets')); $query->where($db->quoteName('name') . ' = ' . $db->quote($component)); $db->setQuery($query); $assetId = (int)$db->loadResult(); if ($error = $db->getErrorMsg()) { vmError($error); } //VmConfig::$echoDebug = true; //vmdebug('my query ',$query,$assetId); //die; // Full width format. // Get the rules for just this asset (non-recursive). $assetRules = JAccess::getAssetRules($assetId); // Get the available user groups. $groups = $this->getUserGroups(); // Build the form control. $curLevel = 0; // Prepare output $html = array(); $html[] = '
'; $html[] = '
'; $html[] = '

' . vmText::_('JLIB_RULES_SETTINGS_DESC') . '

'; $html[] = '', $curLevel); $html[] = '
'; if ($section == 'component' || $section == null) { $html[] = vmText::_('JLIB_RULES_SETTING_NOTES'); } else { $html[] = vmText::_('JLIB_RULES_SETTING_NOTES_ITEM'); } $html[] = '
'; $js = "window.addEvent('domready', function(){ new Fx.Accordion($$('div#permissions-sliders-" . $section . " div#permissions-sliders.pane-sliders .panel h3.pane-toggler')," . "$$('div#permissions-sliders-" . $section . " div#permissions-sliders.pane-sliders .panel div.pane-slider'), {onActive: function(toggler, i) {toggler.addClass('pane-toggler-down');" . "toggler.removeClass('pane-toggler');i.addClass('pane-down');i.removeClass('pane-hide');Cookie.write('jpanesliders_permissions-sliders-" . $section . $component . "',$$('div#permissions-sliders-" . $section . " div#permissions-sliders.pane-sliders .panel h3').indexOf(toggler));}," . "onBackground: function(toggler, i) {toggler.addClass('pane-toggler');toggler.removeClass('pane-toggler-down');i.addClass('pane-hide');" . "i.removeClass('pane-down');}, duration: 300, display: " . (int)vRequest::getInt('jpanesliders_permissions-sliders' . $component, '0', 'cookie') . ", show: " . (int)vRequest::getInt('jpanesliders_permissions-sliders' . $component, '0', 'cookie') . ", alwaysHide:true, opacity: false}); });"; JFactory::getDocument()->addScriptDeclaration($js); return implode("\n", $html); } }