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

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

Список опубликованных произведений пользователя

 (Прочитано 375 раз)
0 Пользователей и 1 Гость смотрят эту тему.
mila_serdnaya
Завсегдатай
*****

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

Сообщений: 419


« : 13.07.2015, 06:04:20 »

Здравствуйте, уважаемые веб-программисты!

Нужно, чтобы у зарегистрированного пользователя сайта была своя страничка, на которой отображались бы все произведения, опубликованные этим пользователем.

Подскажите, пожалуйста, как это можно осуществить?
Записан
Ilhom666
Живу я здесь
******

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

Сообщений: 1333



« Ответ #1 : 13.07.2015, 10:06:47 »

Создайте Контакт, привяжите к нему вашего пользователя и в настройках Контактов включите "Показывать материалы пользователя"
Записан
Shustry
Moderator
*****

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

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


Рисую дизайны


« Ответ #2 : 13.07.2015, 12:05:41 »

http://extensions.joomla.org/extension/author-list
Записан
mila_serdnaya
Завсегдатай
*****

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

Сообщений: 419


« Ответ #3 : 16.07.2015, 00:06:50 »

Страничка у пользователя уже есть (если быть точнее, то у него есть свой личный кабинет, сделанный по подобию личного кабинета автора сайта stihi.ru). Так вот, нужно, чтобы на одной из страниц этого личного кабинета (под словами "Произведения, не вошедшие в сборники" - см. ссылку ниже), автоматически выводился список всех произведений, опубликованный данным автором.
http://vk.com/photo304500865_374189006

Задачу, насколько я поняла, можно решить созданием специального модуля и вставкой этого модуля в нужное место в тексте.
Как вставить модуль в текст я разобралась: назначить модулю позицию, например "position-100", а в нужное место в тексте вставить формулу: {loadposition position-100}
Осталось разобраться с самим модулем.
На одном из форумов мне посоветовали установить flexi custom code, создать модуль с типом " flexi custom code" и поместить в него такой код:
 <?php $user = & JFactory::getUser();
    if (!$user->guest) {
        $db = JFactory::getDBO();
        $userID = $user->id;
        $catID = 10; // категория произведений пользователя
        $query = "select * from #__content where created_by = '".$userID."' and state = '1' and access = '1' and catid='".$catID."' order by ordering asc";
        $db->setQuery($query);
        $result = $db->loadObjectList();
    
        //print_r($result);
        if(count($result)){
            foreach($result as $key=>$item):?>
            <div id="val"><?php echo $item->title; ?></div>
            <?php endforeach;  
        
        }
    
    }
?>

Модуль я создала: http://vk.com/photo304500865_374468784, назначила ему позицию "position-101". В тексте статьи под словами "Произведения, не вошедшие в сборники" вставила конструкцию: {loadposition position-101}. Никакого списка не отобразилось. В чём может быть ошибка, подскажите, пожалуйста!

Или, может быть, задачу можно решить как-то иначе? Подскажите, пожалуйста!
Записан
passer
Живу я здесь
******

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

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



« Ответ #4 : 16.07.2015, 00:17:28 »

$user = & JFactory::getUser();
Это текущий пользователь.
  $query = "select * from #__content where created_by = '".$userID."' and state = '1' and access = '1' and catid='".$catID."' order by ordering asc";
Надо чтобы:
1.У пользователя под которым вы вошли были статьи.
2. Статьи пользователя были в категории с id = 10
3. Статьи опубликованы и у пользователя есть к ним доступ.
Записан
mila_serdnaya
Завсегдатай
*****

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

Сообщений: 419


« Ответ #5 : 16.07.2015, 00:22:35 »

Shustry, прошла по ссылке. Установочные файлы скачала, но устанавливать не стала - испугал английский язык. Может быть, есть ещё какой-то вариант решения задачи?
Записан
mila_serdnaya
Завсегдатай
*****

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

Сообщений: 419


« Ответ #6 : 16.07.2015, 00:38:56 »

passer, вы пишите: "надо чтобы ....статьи пользователя были в категории с id = 10". Я правильно поняла, что id статей для каждого нового пользователя нужно набирать вручную?

На сайте будут регистрироваться сотни пользователей, поэтому нужно, чтобы на одной из страниц личного кабинета (под словами "Произведения, не вошедшие в сборники"), автоматически выводился список всех произведений, опубликованный данным автором.
Подскажите, пожалуйста, как это можно осуществить?

На данный момент я смогла только вывести в нужное место модуль с типом "Материалы-последние новости": http://vk.com/photo304500865_374266319 - это для примерного понимания картины.
 
Записан
passer
Живу я здесь
******

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

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



« Ответ #7 : 16.07.2015, 00:45:38 »

Код
$query = "select * from #__content where created_by = '".$userID."' and state = '1' and access = '1' and catid='".$catID."' order by ordering asc";
заменить на
Код
$query = "select * from #__content where created_by = '".$userID."' and state = '1' and access = '1' order by ordering asc";
Записан
mila_serdnaya
Завсегдатай
*****

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

Сообщений: 419


« Ответ #8 : 16.07.2015, 01:37:36 »

passer, спасибо, код поменяла. Это решило вопрос, (правда, как выяснилось, частично) получилась такая картина: http://vk.com/photo304500865_374490079
Сразу возник вопрос другой:
Как сделать ссылки на опубликованные произведения кликабельными, чтобы они вели на опубликованное произведение?
 
Вот пример: при нажатии на стихотворение "Украине" http://vk.com/irinkapelsinka?z=photo304500865_374492747%2Fphotos304500865 открывается страница с самим стихотворением: http://vk.com/irinkapelsinka?z=photo304500865_374492754%2Fphotos304500865

« Последнее редактирование: 16.07.2015, 01:41:37 от mila_serdnaya » Записан
Shustry
Moderator
*****

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

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


Рисую дизайны


« Ответ #9 : 16.07.2015, 15:33:02 »

Shustry, прошла по ссылке. Установочные файлы скачала, но устанавливать не стала - испугал английский язык. Может быть, есть ещё какой-то вариант решения задачи?
Ну я использовал этот компонент успешно. Английский в админке не смущает. Несколько фраз на фронте перевёл, дело минутное.
Записан
passer
Живу я здесь
******

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

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



« Ответ #10 : 16.07.2015, 16:53:28 »

Как сделать ссылки на опубликованные произведения кликабельными, чтобы они вели на опубликованное произведение?
Как-то так.
Код
if(count($result)){
    foreach($result as $key=>$item):
       $link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catid, $item->language));
    ?>
       <div id="val"><a href="<?php echo $link; ?>"><?php echo $item->title; ?></a></div>
       <?php endforeach;  
 
 }
Но может не найти какие-то классы типа Fatal error: Class ... not found
Это уж надо конкретно смотреть какие и подключать по мере необходимости.
Может кто-то и с ходу подскажет. Я в Jooml-е не великий спец.
Записан
mila_serdnaya
Завсегдатай
*****

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

Сообщений: 419


« Ответ #11 : 19.07.2015, 02:35:39 »

passer, вопрос со списком произведений, которые автор опубликовал на сайте, в итоге решён проще: с помощью функции {loadposition position-100} в нужное место в тексте страницы вставляется модуль с названием "Список опубликованных произведений" (Тип модуля выбрала - "Материалы-последние новости"), назначила модулю позицию - position-100.
Важно: в основных параметрах создаваемого модуля в пункте авторы указать "добавлены или изменены мной", вместо "кто угодно".
http://vk.com/irinkapelsinka?z=photo304500865_374834090/photos304500865
Записан
Страниц: [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