Форум русской поддержки Joomla!® CMS
08.12.2016, 06:11:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 337 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Виталик1985
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 15


« : 12.08.2015, 17:49:30 »

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

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

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2286



« Ответ #1 : 12.08.2015, 18:26:53 »

Запросом в базу данных. Вы пишите модуль?
Записан
Виталик1985
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 15


« Ответ #2 : 12.08.2015, 22:27:33 »

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

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2286



« Ответ #3 : 13.08.2015, 13:31:47 »

Не подскажу - нет под рукой возможности потестить код. Вот пример:

Код:
$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, 13:43:42 от SeBun » Записан
Виталик1985
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 15


« Ответ #4 : 16.08.2015, 13:55:36 »

Все оказалось намного проще))))

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

Код:
<?php echo count($this->items)?>
Записан
Виталик1985
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 15


« Ответ #5 : 16.08.2015, 15:27:30 »

И так. решил свой вопрос. спасибо большое за подсказки
опишу решение

получаем количество материалов пользователя
Код:
<?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 ?>
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet