Как получить количество материалов пользователя?

  • 5 Ответов
  • 493 Просмотров

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

*

Виталик1985

  • Осваиваюсь на форуме
  • ***
  • 27
  • 0
Вопрос вот в чем. Хочу ограничить количество добавляемых материалов пользователем.
Для этого как понимаю нужно получить общее количество всех его материалов и если оно превышает разрешенное, то, соответственно, сделать добавление материала невозможным.

Как я могу получить это количество используя код?
Подскажите, поажалуйста...

*

SeBun

  • Практически профи
  • *******
  • 3076
  • 186
  • @SeBun48
Запросом в базу данных. Вы пишите модуль?
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование | Разработка
Ник занят

*

Виталик1985

  • Осваиваюсь на форуме
  • ***
  • 27
  • 0
Нет... не модуль.
мне нужно сделать условие на странице добавления материала, если пользователь например добавил уже 3 материала, то ему больше нельзя их добавлять.
Для этого хочу получить именно количество материалов конкретного пользователя.
запрос не подскажете?

*

SeBun

  • Практически профи
  • *******
  • 3076
  • 186
  • @SeBun48
Не подскажу - нет под рукой возможности потестить код. Вот пример:

Код
$db = JFactory::getDbo();
$query = $db->getQuery(true);
 
$query->select('COUNT(b.id)'); // меняете тут на свои таблицы
$query->from('#__categories AS a');
$query->join('LEFT', '#__content AS b ON b.catid = a.id');
$query->where('a.parent_id = 1');
$db->setQuery($query);
$count = $db->loadResult();


Этот запрос возвращает количество материалов в категории. Замените на свой. Справочник по MySQL и по работе с JDatabase в помощь.
Шпаргалка: у вас, скорее всего, будет запрос по ID пользователя. Получить его можно так:
Код
$user = &JFactory::getUser();
$id = $user->id;

Справочку можно почитать тут.
« Последнее редактирование: 13.08.2015, 14:43:42 от SeBun »
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование | Разработка
Ник занят

*

Виталик1985

  • Осваиваюсь на форуме
  • ***
  • 27
  • 0
Все оказалось намного проще))))

вот код, который выводит количество материалов пользователя....

Код
<?php echo count($this->items)?>

*

Виталик1985

  • Осваиваюсь на форуме
  • ***
  • 27
  • 0
И так. решил свой вопрос. спасибо большое за подсказки
опишу решение

получаем количество материалов пользователя
Код
<?php 
$db = JFactory::getDBO();
$user = JFactory::getUser();
$id = $user->id;
$db->setQuery("SELECT id FROM #_k2_items WHERE created_by ='$id' ORDER BY id ASC");
$db->query();
$user_item = $db->getAffectedRows ();
echo $user_item;
?>

Для того что бы ограничить количество добавляемых материалов пользователя
в файл itemform.php вставляем условие

Код
<?php if ($user_item > 2) { // тут 2 - это ограничение на материалы?>
    Тут текст если у пользователя больше 2х материалов
<?php } else { ?>
    Тут форма добавления материала
<?php ?>