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

roga_i_kopita

  • Осваиваюсь на форуме
  • 32
  • 4
Приветствую, уважаемые.

Кто-нибудь сталкивался с задачей разграничить доступ к статьям не по группам зарегистрированных пользователей, а по автору материала?
Т.е. чтобы статью мог видеть только пользователь, который её создал - автор. Ну и супер администратор, разумеется.

Перелопатил FAQ по Joomla 3. Не нашёл. Через поиск не нашёл.

Предполагаю, что в шаблоне нужно переопределять макет материала, вставляя в нём проверку id вошедшего на сайт пользователя и сравнивать с параметрами материала, в которых указан автор.
Но как? ID материала - это цифры, а автор - это, вроде как, логин пользователя.

Не прошу за меня всё сделать, подскажите хоть кусок кода, как реализовать сравнение зашедшего пользователя и автора статьи.
Остальное сам доделаю.
*

AlekVolsk

  • Профи
  • 6312
  • 336
В бд в таблице #__content есть поле created_by, это id пользователя, который является создателем (автором) материала. А далее - переопределение com_content, точнее - переписание
*

b2z

  • Support Team
  • 7469
  • 742
  • Разраблю понемногу
В бд в таблице #__content есть поле created_by, это id пользователя, который является создателем (автором) материала. А далее - переопределение com_content, точнее - переписание
Аха, именно так. Код для проверки простой:
Код: php
<?php $user = JFactory::getUser();

if ($user->id == $item->created_by) : ?>

// показываем материал только автору

<?php endif; ?>
*

AlekVolsk

  • Профи
  • 6312
  • 336
Только я бы при проверке условия местами поменял бы, по логике правильнее, имхо:
if ($item->created_by == $user->id) :
« Последнее редактирование: 28.05.2014, 10:24:47 от b2z »
*

b2z

  • Support Team
  • 7469
  • 742
  • Разраблю понемногу
Только я бы при проверке условия местами поменял бы, по логике правильнее, имхо:
if ($item->created_by == $user->id) :
Хех, как знаете. По сути это не имеет никакого значения  ^-^
*

mt_3000

  • Осваиваюсь на форуме
  • 91
  • 2
Вопрос знатокам: как разрешить скачивать файл только автору закачки? Условие: линк на файл доступен
*

AlekVolsk

  • Профи
  • 6312
  • 336
надо формировать ссылку примерно следующим образом:
Код: php-brief
<?php
$user = Jfactory::getUser();
if (!$user->guest && ($item->created_by == )) {
?>
<a href="<?php echo JRoute::_($item->link); ?>"><?php echo $item->linkname; ?></a>
<?php } else { ?>
<span><?php echo $item->linkname; ?></span>
<?php } ?>
*

mt_3000

  • Осваиваюсь на форуме
  • 91
  • 2
Спасибо
*

wytcorp

  • Новичок
  • 3
  • 0
Гуру, подскажите куда код вставлять. Только начал разбираться c внутренней структурой Joomla 3. Вставлять, как я понял надо com_content\views\article\tmpl\default.php
Я его туда поставил, результата не дало. Помогите...
Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_content
 *
 * @copyright   Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

JHtml::addIncludePath(JPATH_COMPONENT . '/helpers');

// Create shortcuts to some parameters.
$params  = $this->item->params;
$images  = json_decode($this->item->images);
$urls    = json_decode($this->item->urls);
$canEdit = $params->get('access-edit');
$user    = JFactory::getUser();
$info    = $params->get('info_block_position', 0);
JHtml::_('behavior.caption');
?>
<?php if (JFactory::getUser()->quest) ;
if ($user->id == $item->created_by) : ?>
<div class="item-page<?php echo $this->pageclass_sfx; ?>" itemscope itemtype="http://schema.org/Article">
<meta itemprop="inLanguage" content="<?php echo ($this->item->language === '*')? JFactory::getConfig()->get('language') : $this->item->language; ?>" />
<?php if ($this->params->get('show_page_heading')) : ?>
<div class="page-header">
<h1> <?php echo $this->escape($this->params->get('page_heading')); ?> </h1>

</div>
<?php endif;
if (!empty($this->item->pagination) && $this->item->pagination && !$this->item->paginationposition && $this->item->paginationrelative)
{
echo $this->item->pagination;
}
?>....
*

Ragivort

  • Живу я здесь
  • 1010
  • 49
  • Есть мечта-стоит жить
Цитировать
<?php if (JFactory::getUser()->quest) ;

А это зачем?
Дозволь мне свершить то добро, которое я способен свершить, теперь, ибо я могу более не вернуться сюда.
*

wytcorp

  • Новичок
  • 3
  • 0
Это случайно...пытался сделать разные вариации...  Сначала по группа, но потом заказчик захотел чтоб каждый мог свои материалы создавать, но видимы были только для автора
Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_content
 *
 * @copyright   Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

JHtml::addIncludePath(JPATH_COMPONENT . '/helpers');

// Create shortcuts to some parameters.
$params  = $this->item->params;
$images  = json_decode($this->item->images);
$urls    = json_decode($this->item->urls);
$canEdit = $params->get('access-edit');
$user    = JFactory::getUser();
$info    = $params->get('info_block_position', 0);
JHtml::_('behavior.caption');
?>
<?php $user = JFactory::getUser();
 
if ($user->id == $item->created_by) : ?>
 

<div class="item-page<?php echo $this->pageclass_sfx; ?>" itemscope itemtype="http://schema.org/Article">
<meta itemprop="inLanguage" content="<?php echo ($this->item->language === '*')? JFactory::getConfig()->get('language') : $this->item->language; ?>" />
<?php if ($this->params->get('show_page_heading')) : ?>
<div class="page-header">
<h1> <?php echo $this->escape($this->params->get('page_heading')); ?> </h1>

</div>
<?php endif;
if (!empty($this->item->pagination) && $this->item->pagination && !$this->item->paginationposition && $this->item->paginationrelative)
{
echo $this->item->pagination;
}
?>
Вот сейчас стоит все равно не работает. Вот ссылка http://project.ironwood.com.ua/en/decision-making-table/20-jbhkjh

*

Ragivort

  • Живу я здесь
  • 1010
  • 49
  • Есть мечта-стоит жить
Я думаю надо не $item->created_by  а $this->item->created_by
Дозволь мне свершить то добро, которое я способен свершить, теперь, ибо я могу более не вернуться сюда.
*

wytcorp

  • Новичок
  • 3
  • 0
Спасибо Гуру!Огромное! Заработало...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сохранение данных из элементов формы внутри редактора материала

Автор step-di

Ответов: 0
Просмотров: 40
Последний ответ 01.09.2017, 09:36:56
от step-di
заголовок материала в шаблоне

Автор joy smile

Ответов: 1
Просмотров: 56
Последний ответ 30.08.2017, 20:20:13
от voland
Убрать ID категории и материала из ссылки

Автор AlekVolsk

Ответов: 52
Просмотров: 13496
Последний ответ 22.08.2017, 11:15:54
от Septdir
Создание материала (не через админку)

Автор help-tend

Ответов: 16
Просмотров: 213
Последний ответ 15.08.2017, 16:54:31
от help-tend
Как изменить реальный url материала?

Автор DIeKon

Ответов: 23
Просмотров: 349
Последний ответ 11.08.2017, 17:18:05
от SeBun