Новости Joomla

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

roga_i_kopita

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

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

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

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

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

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
В бд в таблице #__content есть поле created_by, это id пользователя, который является создателем (автором) материала. А далее - переопределение com_content, точнее - переписание
*

b2z

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

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

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

<?php endif; ?>
*

AlekVolsk

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

b2z

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

mt_3000

  • Захожу иногда
  • 93
  • 2 / 0
Вопрос знатокам: как разрешить скачивать файл только автору закачки? Условие: линк на файл доступен
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
надо формировать ссылку примерно следующим образом:
Код: 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

  • Захожу иногда
  • 93
  • 2 / 0
Спасибо
*

wytcorp

  • Новичок
  • 3
  • 0 / 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

  • Завсегдатай
  • 1154
  • 58 / 2
  • Такая Life
Цитировать
<?php if (JFactory::getUser()->quest) ;

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

wytcorp

  • Новичок
  • 3
  • 0 / 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

  • Завсегдатай
  • 1154
  • 58 / 2
  • Такая Life
Я думаю надо не $item->created_by  а $this->item->created_by
Дозволь мне свершить то добро, которое я способен свершить, теперь, ибо я могу более не вернуться сюда.
*

wytcorp

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

Вывод даты материала в списке тегов

Автор androv77

Ответов: 2
Просмотров: 876
Последний ответ 09.11.2023, 16:33:08
от denxio
Вывод дополнительного поля материала в модуле

Автор timofe

Ответов: 10
Просмотров: 1481
Последний ответ 06.10.2023, 14:02:24
от Mitriy
Как сделать отображение времени создания материала?

Автор Pzhigalov

Ответов: 0
Просмотров: 311
Последний ответ 27.09.2023, 22:45:29
от Pzhigalov
[Решено] Получить список тегов каждого материала в блоге категории

Автор goga_pgasovav

Ответов: 1
Просмотров: 394
Последний ответ 02.03.2023, 14:20:21
от goga_pgasovav
ajax загрузка компонента на странице материала К2

Автор Divn

Ответов: 0
Просмотров: 520
Последний ответ 13.01.2023, 15:05:52
от Divn