Follow me on...

  • FeedBurner: Joomla15Joomla15
  • Twitter: alexkurgan

Добавление ACL (Access Control List) или контроль доступа. Часть 3

E-mail Печать

3. Для отображения поля для редактирования прав пользователя при редактировании сообщения нам нужно в файл admin/models/forms/helloworld.xml добавить следующие строки:

<fieldset>  	
	<field
		name="rules"
		type="rules"
		label="JFIELD_RULES_LABEL"
		translate_label="false"
		filter="rules"
		validate="rules"
		class="inputbox"
		component="com_helloworld" 
	        section="message"
	/>		
</fieldset>

Так же нужно отредактировать шаблон, откройте файл admin/views/helloworld/tmpl/edit.php и замените в нем код на следующий:

<?php
// No direct access
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
$params = $this->form->getFieldsets('params');
?>
<form action="<?php echo JRoute::_('index.php?option=com_helloworld&layout=edit&id='.(int) $this->item->id); ?>" method="post" name="adminForm" id="helloworld-form" class="form-validate">
 
	<div class="width-60 fltlft">
		<fieldset class="adminform">
			<legend><?php echo JText::_( 'COM_HELLOWORLD_HELLOWORLD_DETAILS' ); ?></legend>
			<ul class="adminformlist">
<?php foreach($this->form->getFieldset('details') as $field): ?>
				<li><?php echo $field->label;echo $field->input;?></li>
<?php endforeach; ?>
			</ul>
		</fieldset>
	</div>
 
	<div class="width-40 fltrt">
<?php        echo JHtml::_('sliders.start', 'helloworld-slider');
             foreach ($params as $name => $fieldset):
                echo JHtml::_('sliders.panel', JText::_($fieldset->label), $name.'-params');
                if (isset($fieldset->description) && trim($fieldset->description)): ?>
    	        	<p class="tip"><?php echo $this->escape(JText::_($fieldset->description));?></p>
<?php           endif;?>
		<fieldset class="panelform" >
			<ul class="adminformlist">
<?php foreach ($this->form->getFieldset($name) as $field) : ?>
				<li><?php echo $field->label; ?><?php echo $field->input; ?></li>
<?php endforeach; ?>
			</ul>
		</fieldset>
<?php        endforeach; ?>
 
		<?php echo JHtml::_('sliders.end'); ?>
	</div>
 
	<!-- begin ACL definition-->
 
   <div class="clr"></div>
 
   <?php if ($this->canDo->get('core.admin')): ?>
      <div class="width-100 fltlft">
         <?php echo JHtml::_('sliders.start', 'permissions-sliders-'.$this->item->id, array('useCookie'=>1)); ?>
            <?php echo JHtml::_('sliders.panel', JText::_('COM_HELLOWORLD_FIELDSET_RULES'), 'access-rules'); ?>
            <fieldset class="panelform">
               <?php echo $this->form->getLabel('rules'); ?>
               <?php echo $this->form->getInput('rules'); ?>
            </fieldset>
 
         <?php echo JHtml::_('sliders.end'); ?>
      </div>
   <?php endif; ?>
 
   <!-- end ACL definition-->
 
  <div>
		<input type="hidden" name="task" value="helloworld.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</form>

Здесь добавились следующие строки:

<!-- begin ACL definition-->
 
   <div class="clr"></div>
 
   <?php if ($this->canDo->get('core.admin')): ?>
      <div class="width-100 fltlft">
         <?php echo JHtml::_('sliders.start', 'permissions-sliders-'.$this->item->id, array('useCookie'=>1)); ?>
            <?php echo JHtml::_('sliders.panel', JText::_('COM_HELLOWORLD_FIELDSET_RULES'), 'access-rules'); ?>
            <fieldset class="panelform">
               <?php echo $this->form->getLabel('rules'); ?>
               <?php echo $this->form->getInput('rules'); ?>
            </fieldset>
 
         <?php echo JHtml::_('sliders.end'); ?>
      </div>
   <?php endif; ?>
 
   <!-- end ACL definition-->

которые и будут выводить форму для редактирования прав пользователя.

Продолжение

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Mark
 
Интересная статья? Поделись ей с другими: