Source for file rules.php
Documentation is available at rules.php
* @package Joomla.Libraries
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
* Extended Utility class for all HTML drawing classes.
* @package Joomla.Libraries
* Creates the HTML for the permissions widget
* @param array $actions Array of action objects
* @param integer $assetId Id of a specific asset to create a widget for.
* @param integer $parent Id of the parent of the asset
* @param string $control The form control
* @param string $idPrefix Prefix for the ids assigned to specific action-group pairs
* @return string HTML for the permissions widget
public static function assetFormWidget($actions, $assetId =
null, $parent =
null, $control =
'jform[rules]', $idPrefix =
'jform_rules')
$images =
static::_getImagesArray();
$groups =
static::_getUserGroups();
// Get the incoming inherited rules as well as the asset specific rules.
$inheriting =
JAccess::getAssetRules($parent ?
$parent :
static::_getParentAssetId($assetId), true);
$html[] =
'<div class="acl-options">';
$html[] =
JHtml::_('tabs.start', 'acl-rules-' .
$assetId, array('useCookie' =>
1));
$html[] =
JHtml::_('tabs.panel', JText::_('JLIB_HTML_ACCESS_SUMMARY'), 'summary');
$html[] =
' <p>' .
JText::_('JLIB_HTML_ACCESS_SUMMARY_DESC') .
'</p>';
$html[] =
' <table class="aclsummary-table" summary="' .
JText::_('JLIB_HTML_ACCESS_SUMMARY_DESC') .
'">';
$html[] =
' <caption>' .
JText::_('JLIB_HTML_ACCESS_SUMMARY_DESC_CAPTION') .
'</caption>';
$html[] =
' <th class="col1 hidelabeltxt">' .
JText::_('JLIB_RULES_GROUPS') .
'</th>';
foreach ($actions as $i =>
$action)
$html[] =
' <th class="col' .
($i +
2) .
'">' .
JText::_($action->title) .
'</th>';
foreach ($groups as $i =>
$group)
$html[] =
' <tr class="row' .
($i %
2) .
'">';
$html[] =
' <td class="col1">' .
$group->text .
'</td>';
foreach ($actions as $j =>
$action)
$html[] =
' <td class="col' .
($j +
2) .
'">'
.
($assetId ?
($inherited->allow($action->name, $group->identities) ?
$images['allow'] :
$images['deny'])
:
($inheriting->allow($action->name, $group->identities) ?
$images['allow'] :
$images['deny'])) .
'</td>';
foreach ($actions as $action)
$actionTitle =
JText::_($action->title);
$actionDesc =
JText::_($action->description);
$html[] =
JHtml::_('tabs.panel', $actionTitle, $action->name);
$html[] =
' <p>' .
$actionDesc .
'</p>';
$html[] =
' <table class="aclmodify-table" summary="' .
strip_tags($actionDesc) .
'">';
$html[] =
' <caption>' .
JText::_('JLIB_HTML_ACCESS_MODIFY_DESC_CAPTION_ACL') .
' ' .
$actionTitle .
' '
.
JText::_('JLIB_HTML_ACCESS_MODIFY_DESC_CAPTION_TABLE') .
'</caption>';
$html[] =
' <th class="col1 hidelabeltxt">' .
JText::_('JLIB_RULES_GROUP') .
'</th>';
$html[] =
' <th class="col2">' .
JText::_('JLIB_RULES_INHERIT') .
'</th>';
$html[] =
' <th class="col3 hidelabeltxt">' .
JText::_('JMODIFY') .
'</th>';
$html[] =
' <th class="col4">' .
JText::_('JCURRENT') .
'</th>';
foreach ($groups as $i =>
$group)
$selected =
$rules->allow($action->name, $group->value);
$html[] =
' <tr class="row' .
($i %
2) .
'">';
$html[] =
' <td class="col1">' .
$group->text .
'</td>';
$html[] =
' <td class="col2">'
.
($inheriting->allow($action->name, $group->identities) ?
$images['allow-i'] :
$images['deny-i']) .
'</td>';
$html[] =
' <td class="col3">';
$html[] =
' <select id="' .
$idPrefix .
'_' .
$action->name .
'_' .
$group->value
.
'" class="inputbox" size="1" name="' .
$control .
'[' .
$action->name .
'][' .
$group->value .
']" title="'
.
JText::sprintf('JLIB_RULES_SELECT_ALLOW_DENY_GROUP', $actionTitle, $group->text) .
'">';
$html[] =
' <option value=""' .
($selected ===
null ?
' selected="selected"' :
'') .
'>'
.
JText::_('JLIB_RULES_INHERIT') .
'</option>';
$html[] =
' <option value="1"' .
($selected ===
true ?
' selected="selected"' :
'') .
'>'
.
JText::_('JLIB_RULES_ALLOWED') .
'</option>';
$html[] =
' <option value="0"' .
($selected ===
false ?
' selected="selected"' :
'') .
'>'
.
JText::_('JLIB_RULES_DENIED') .
'</option>';
$html[] =
' <td class="col4">'
.
($assetId ?
($inherited->allow($action->name, $group->identities) ?
$images['allow'] :
$images['deny'])
:
($inheriting->allow($action->name, $group->identities) ?
$images['allow'] :
$images['deny'])) .
'</td>';
$html[] =
JHtml::_('tabs.end');
// Build the footer with legend and special purpose buttons.
$html[] =
' <div class="clr"></div>';
$html[] =
' <ul class="acllegend fltlft">';
$html[] =
' <li class="acl-allowed">' .
JText::_('JLIB_RULES_ALLOWED') .
'</li>';
$html[] =
' <li class="acl-denied">' .
JText::_('JLIB_RULES_DENIED') .
'</li>';
* Get the id of the parent asset
* @param integer $assetId The asset for which the parentid will be returned
* @return integer The id of the parent asset
// Get a database object.
$query =
$db->getQuery(true);
// Get the user groups from the database.
$query->select($db->quoteName('parent_id'))
->from($db->quoteName('#__assets'))
->where($db->quoteName('id') .
' = ' . (int)
$assetId);
return (int)
$db->loadResult();
* @return array Array of user groups
// Get a database object.
// Get the user groups from the database.
'SELECT a.id AS value, a.title AS text, b.id as parent'
.
' FROM #__usergroups AS a LEFT JOIN #__usergroups AS b ON a.lft >= b.lft AND a.rgt <= b.rgt'
.
' ORDER BY a.lft ASC, b.lft ASC'
$result =
$db->loadObjectList();
// Pre-compute additional values.
foreach ($result as $option)
if ($end ===
false ||
$end->value !=
$option->value)
$end->identities[] =
$option->parent;
* Get the array of images associate with specific permissions
* @return array An associative array of permissions and images
$images['allow-l'] =
'<label class="icon-16-allow" title="' .
JText::_('JLIB_RULES_ALLOWED') .
'">' .
JText::_('JLIB_RULES_ALLOWED')
$images['deny-l'] =
'<label class="icon-16-deny" title="' .
JText::_('JLIB_RULES_DENIED') .
'">' .
JText::_('JLIB_RULES_DENIED') .
'</label>';
$images['allow'] =
'<a class="icon-16-allow" title="' .
JText::_('JLIB_RULES_ALLOWED') .
'"> </a>';
$images['deny'] =
'<a class="icon-16-deny" title="' .
JText::_('JLIB_RULES_DENIED') .
'"> </a>';
$images['allow-i'] =
'<a class="icon-16-allowinactive" title="' .
JText::_('JRULE_ALLOWED_INHERITED') .
'"> </a>';
$images['deny-i'] =
'<a class="icon-16-denyinactive" title="' .
JText::_('JRULE_DENIED_INHERITED') .
'"> </a>';
Documentation generated on Tue, 19 Nov 2013 15:12:33 +0100 by phpDocumentor 1.4.3