0 Пользователей и 1 Гость просматривают эту тему.
  • 12 Ответов
  • 1652 Просмотров
*

name

  • Захожу иногда
  • 123
  • 1 / 0
Необходимо разрешить пользователям редактировать определенные материалы в К2, но запретить изменять даты соднания и публикации? Как вообще запретить пользователям боковую панель или может удалить ее совсем в лицевой части?
Подскажите какой файл ковырять?
*

SDKiller

  • Moderator
  • 2706
  • 329 / 5
  • ...ergo sum
В версии 2.5.x файл шаблона itemform.php
Можно например закомментировать переключатель боковой панели, чтобы её нельзя было открыть.
Либо поставить там условие на группу пользователей.
*

name

  • Захожу иногда
  • 123
  • 1 / 0
Спасибо. Помогло.
На счет условия на группу вот пример бы кто привел. Хочется чтоб некоторые вкладки, например Галерея изображений, были только у отдельной группы.
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Спасибо. Помогло.
На счет условия на группу вот пример бы кто привел. Хочется чтоб некоторые вкладки, например Галерея изображений, были только у отдельной группы.

Условия на группу я описывал в этом решении.
*

name

  • Захожу иногда
  • 123
  • 1 / 0
Условия на группу я описывал в этом решении.

   
Код
 <!-- K2 Plugins: K2AfterDisplayContent -->
<?php $user = &JFactory::getUser();
$k2_user = K2HelperPermissions::getK2User($user->id);
if($k2_user->group >= 2 ){ ?>
<?php echo $this->item->event->K2AfterDisplayContent; ?>
<?php } else echo  '<h5>Более подробная информация обо всех рекламных услугах доступна только членам <a href="club.html">клуба!</a></h5>'  ?

Это и есть условие на группу? В какойм месте файла надо вставлять код?
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
само условие вот:

ПОЛУЧАЕМ id ГРУППЫ ДАННОГО ЮЗЕРА:
Код
<?php $user = &JFactory::getUser(); 
$k2_user = K2HelperPermissions::getK2User($user->id);

ЕСЛИ (проверка условия)
Код
if($k2_user->group >= 2 ){ ?>
ТО (здесь выполняется разрешённое для этой группы действие). В приведённом примере - ЕСЛИ id ГРУППЫ БОЛЬШЕ ИЛИ РАВНО 2. В Вашем случае здесь должен быть вывод галереи изображений.

ИНАЧЕ
Код
<?php } else echo  '<h5>Вместо тэга h5 - условие, при котором срабатывает запрет, напр., сообщение о недопустимости данного действия</h5>'  ?>

А вот в каком месте это условие реализовывать - это и есть как раз решение Вашей задачи
« Последнее редактирование: 15.12.2011, 09:52:23 от Dorfman »
*

name

  • Захожу иногда
  • 123
  • 1 / 0
Помогитек, пожалуйста, разобраться в коде

Код
<?php $user = &JFactory::getUser(); 
$k2_user = K2HelperPermissions::getK2User($user->id);
if($k2_user->group = 4 ){ ?>


<?php if ($this->params->get('showImageGalleryTab')): ?>
<li id="tabImageGallery"><a href="#k2Tab3"><?php echo JText::_('K2_IMAGE_GALLERY'); ?></a></li>
<?php endif; ?>
} <?php endif; ?>

Выдает ошибку
Parse error: syntax error, unexpected T_ENDIF in .........\components\com_k2\templates\default\itemform.php on line 122. Строка 122 это
Код
} <?php endif; ?>
*

name

  • Захожу иногда
  • 123
  • 1 / 0
Исправил
Parse error: syntax error, unexpected $end in .....components\com_k2\templates\default\itemform.php on line 830


830 это самая последняя строка
*

name

  • Захожу иногда
  • 123
  • 1 / 0
Тоже самое, таже ошибка

Parse error: syntax error, unexpected $end in .......components\com_k2\templates\default\itemform.php on line 836
*

name

  • Захожу иногда
  • 123
  • 1 / 0
Все, я понял.
Вот как надо было

Код
<?php $user = &JFactory::getUser(); 
$k2_user = K2HelperPermissions::getK2User($user->id);
if($k2_user->group ==3 ){ ?>

<?php if ($this->params->get('showImageGalleryTab')): ?>
<li id="tabImageGallery"><a href="#k2Tab3"><?php echo JText::_('K2_IMAGE_GALLERY'); ?></a></li>
<?php endif; ?>
<? } ?>
*

SDKiller

  • Moderator
  • 2706
  • 329 / 5
  • ...ergo sum
Всё-таки я не досмотрел:

Код
<?php if ($this->params->get('showImageGalleryTab')) {

    $user = &JFactory::getUser();
    $k2_user = K2HelperPermissions::getK2User($user->id);

    if($k2_user->group == 4 ){ ?>

        <li id="tabImageGallery"><a href="#k2Tab3"><?php echo JText::_('K2_IMAGE_GALLERY'); ?></a></li>
<?php
    }
}
?>
*

name

  • Захожу иногда
  • 123
  • 1 / 0
Интересная особенность обнаружилась после добавления условия на группу.
В Опере и мозиле все в норме, работает как надо, а вот в IE панель принимает вид



Все что на вкладках Галерея Изображений, Медиа и Допполя появляется на вкладке Контент.

Вот фрагмент кода, в котором прописана проверка на группу. Если пользователь из группа Администраторы (ID=3), то вкладка видна.
Код
<?php if ($this->params->get('showImageGalleryTab')) {

    $user = &JFactory::getUser();
    $k2_user = K2HelperPermissions::getK2User($user->id);

    if($k2_user->group == 3 ){ ?>

        <li id="tabImageGallery"><a href="#k2Tab3"><?php echo JText::_('K2_IMAGE_GALLERY'); ?></a></li>
<?php
    }
}
?>

Пробовал также поставить усливие ва тут часть файла где идет вывод содержимого вкладки Галерея

Код
<?php if ($this->params->get('showImageGalleryTab')) {

    $user = &JFactory::getUser();
    $k2_user = K2HelperPermissions::getK2User($user->id);

    if($k2_user->group == 3 ){ ?>

<!-- Tab image gallery -->
<div class="simpleTabsContent" id="k2Tab3">
<?php if ($this->lists['checkSIG']): ?>
<table class="admintable" id="item_gallery_content">
<tr>
<td align="right" valign="top" class="key">
<?php echo JText::_('K2_UPLOAD_A_ZIP_FILE_WITH_IMAGES'); ?>
</td>
<td valign="top">
<input type="file" name="gallery" class="fileUpload" />
<i>(<?php echo JText::_('K2_MAX_UPLOAD_SIZE'); ?>: <?php echo ini_get('upload_max_filesize'); ?>)</i>
<br />
<br />
<?php echo JText::_('K2_OR_ENTER_A_FLICKR_SET_URL'); ?>
<input type="text" name="flickrGallery" size="50" value="<?php echo ($this->row->galleryType == 'flickr')? $this->row->galleryValue : ''; ?>" />
<?php if (!empty($this->row->gallery)): ?>
<div id="itemGallery"> <?php echo $this->row->gallery; ?>
<input type="checkbox" name="del_gallery" id="del_gallery"/>
<label for="del_gallery"><?php echo JText::_('K2_CHECK_THIS_BOX_TO_DELETE_CURRENT_IMAGE_GALLERY_OR_JUST_UPLOAD_A_NEW_IMAGE_GALLERY_TO_REPLACE_THE_EXISTING_ONE'); ?></label>
</div>
<?php endif; ?>
</td>
</tr>
</table>
<?php else: ?>
<dl id="system-message">
<dt class="notice"><?php echo JText::_('K2_NOTICE'); ?></dt>
<dd class="notice message fade">
<ul>
<li><?php echo JText::_('K2_NOTICE_PLEASE_INSTALL_JOOMLAWORKS_SIMPLE_IMAGE_GALLERY_PRO_PLUGIN_IF_YOU_WANT_TO_USE_THE_IMAGE_GALLERY_FEATURES_OF_K2'); ?></li>
</ul>
</dd>
</dl>
<?php endif; ?>
<?php if (count($this->K2PluginsItemGallery)): ?>
<div class="itemPlugins">
<?php foreach($this->K2PluginsItemGallery as $K2Plugin): ?>
<?php if(!is_null($K2Plugin)): ?>
<fieldset>
<legend><?php echo $K2Plugin->name; ?></legend>
<?php echo $K2Plugin->fields; ?>
</fieldset>
<?php endif; ?>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>

<?php
    }
}
?>

Все ровно в IE показывает то что на кратинке изображено.

Версия IE 8

Что не так? Что исправить надо?
*

name

  • Захожу иногда
  • 123
  • 1 / 0
Решил немного именить код, оставил все вкладки для всех пользователей, но добавил условие

Код
<!-- условие на группу. Если пользователь относится к группе - см. ID группы в CB - то выводится вкладка Галерея. --!>
<?php

    $user = &JFactory::getUser();
    $k2_user = K2HelperPermissions::getK2User($user->id);

    if($k2_user->group == 3 ){ ?>
<div class="simpleTabsContent" id="k2Tab3">



<?php if ($this->lists['checkSIG']): ?>
<table class="admintable" id="item_gallery_content">
      <tr>
<td align="right" valign="top" class="key">
<?php echo JText::_('K2_UPLOAD_A_ZIP_FILE_WITH_IMAGES'); ?>
</td>
<td valign="top">
<input type="file" name="gallery" class="fileUpload" />
<i>(<?php echo JText::_('K2_MAX_UPLOAD_SIZE'); ?>: <?php echo ini_get('upload_max_filesize'); ?>)</i>
<br />
<br />
<?php echo JText::_('K2_OR_ENTER_A_FLICKR_SET_URL'); ?>
<input type="text" name="flickrGallery" size="50" value="<?php echo ($this->row->galleryType == 'flickr')? $this->row->galleryValue : ''; ?>" />
<?php if (!empty($this->row->gallery)): ?>
<div id="itemGallery"> <?php echo $this->row->gallery; ?>
<input type="checkbox" name="del_gallery" id="del_gallery"/>
<label for="del_gallery"><?php echo JText::_('K2_CHECK_THIS_BOX_TO_DELETE_CURRENT_IMAGE_GALLERY_OR_JUST_UPLOAD_A_NEW_IMAGE_GALLERY_TO_REPLACE_THE_EXISTING_ONE'); ?></label>
</div>
<?php endif; ?>
</td>
</tr>
</table>
<?php else: ?>
<dl id="system-message">
<dt class="notice"><?php echo JText::_('K2_NOTICE'); ?></dt>
<dd class="notice message fade">
<ul>
<li><?php echo JText::_('K2_NOTICE_PLEASE_INSTALL_JOOMLAWORKS_SIMPLE_IMAGE_GALLERY_PRO_PLUGIN_IF_YOU_WANT_TO_USE_THE_IMAGE_GALLERY_FEATURES_OF_K2'); ?></li>
</ul>
</dd>
</dl>
<?php endif; ?>
<?php if (count($this->K2PluginsItemGallery)): ?>
<div class="itemPlugins">
<?php foreach($this->K2PluginsItemGallery as $K2Plugin): ?>
<?php if(!is_null($K2Plugin)): ?>
<fieldset>
<legend><?php echo $K2Plugin->name; ?></legend>
<?php echo $K2Plugin->fields; ?>
</fieldset>
<?php endif; ?>
<?php endforeach; ?>
</div>


<?php endif; ?>

 
</div>
<?php



}
?>

Если пользователь из группы админов, то содержимое вкладки доступно, иначе вкладка видна но перейти на нее невозможно, тыкай хоть обтыкайся.
Помогите, пожалуйста, вставить сюда код, который выводил бы сообщение об отсутствии прав доступа к владке, если пользователь не из админов.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться