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

Тема в разделе "Joomla", создана пользователем mila_serdnaya, 13 июл 2015.

  1. mila_serdnaya

    mila_serdnaya

    Регистрация:
    13 июл 2015
    Сообщения:
    19
    Симпатии:
    1
    Здравствуйте, уважаемые веб-программисты!

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

    Подскажите, пожалуйста, как это можно осуществить?
     
  2. Zulus

    Zulus Команда форума

    Регистрация:
    20 дек 2012
    Сообщения:
    681
    Симпатии:
    686
    Есть два варианта для твоей задачи:
    1. Средствами самой джумлы
    Изменить права группы для зарегистрированных, разрешив добавление материалов.
    Изменить группу для новых пользователей на Автор.
    И вывести ссылку на добавление материала, скрыв ее от незарегистрированных пользователей.
    2. Установить сторонний компонент
    Вот один из примеров, с помощью которого можно такое реализовать - Article factory manager
    Или поищи на JED'e - вот смотри, выбирай
     
    mila_serdnaya нравится это.
  3. mila_serdnaya

    mila_serdnaya

    Регистрация:
    13 июл 2015
    Сообщения:
    19
    Симпатии:
    1
    Zulus, извините, не совсем чётко сформулировала свой вопрос.
    Страничка у пользователя уже есть (если быть точнее, то у него есть свой личный кабинет). Так вот, нужно, чтобы на одной из страниц этого личного кабинета, автоматически выводился список всех произведений, опубликованный данным автором.
    Я посмотрела то, что вы предлагаете - это платно, поэтому не подходит. Может быть, вы знаете какой-то бесплатный модуль для этого?
    Или какой-то код или скрипт, который можно вставить в нужное место?

    Вот сама страничка-оригинал (сайт стихи.ру):

    http://vk.com/irinkapelsinka?z=photo304500865_374188679/photos304500865

    Вот то, что я сделала:

    http://vk.com/irinkapelsinka?z=photo304500865_374189006/photos304500865

    Нужно, чтобы под словами "Произведения, не вошедшие в сборники" выводился список произведений автора сайта. Как это должно выглядеть вы видите. Вот как это можно осуществить? Подскажите, пожалуйста!
     
  4. Zulus

    Zulus Команда форума

    Регистрация:
    20 дек 2012
    Сообщения:
    681
    Симпатии:
    686
    Понятно. Но то что ты хочешь силами самой джумлы не сделать. Или модуль дополнительный ставить (искать зануленый) или попробовать сделать по аналогии как сделал wedal у себя с помощью seoblod.
    Вот цитата вопроса:
    Здесь ответ, с ссылкой на описание решения проблемы:
     
    mila_serdnaya нравится это.
  5. mila_serdnaya

    mila_serdnaya

    Регистрация:
    13 июл 2015
    Сообщения:
    19
    Симпатии:
    1
    Zulus, я не сильна в терминологии, гугл с ответом не помог: зануленный модуль - это что за зверь (seoblod не хочу устанавливать, потому что прочитала, что его сносить тяжело будет, если захочется его удалить)?

    А что если попробовать создать собственный модуль и разместить его в тексте? Решила разбить задачу на части. Первая часть - это разместить какой-нибудь модуль (на основе уже существующих) в тексте.
    Вот мои действия:
    1. Зашла в менеджер модулей, создала модуль с названием "Список опубликованных произведений" (Тип модуля выбрала - "Материалы-последние новости") назначила модулю позицию - position-100
    2. В тексте статьи под словами "Произведения, не вошедшие в сборники" вставила конструкцию: {loadposition position-100}

    В итоге должен был появиться список последних опубликованных материалов (всех) на сайте. Но у меня почему-то ничего не опубликовалось. Где ошибка? Подскажите, пожалуйста!
     
  6. Zulus

    Zulus Команда форума

    Регистрация:
    20 дек 2012
    Сообщения:
    681
    Симпатии:
    686
    Да, что то я немного запутал сам. Зануленый (null), это тот что не требует ключей для регистарации. В общем как вариант найти нужный модуль. Версия джумлы у тебя какая? Посмотрю, вроде бы что-то видел, но для джумлы 2,5, для третьей версии не видел откуда можно скачать.
    А по поводу loadposition, все правильно делаешь. Сам плагин, что выводит модули в любой части сайта, у тебя включен?
    P.S. Совет. Не забывай делать бекапы. Лучше перед установкой любого модуля или перед выполнением каких либо глобальных действий лучше делать полный бекап.
     
    mila_serdnaya нравится это.
  7. mila_serdnaya

    mila_serdnaya

    Регистрация:
    13 июл 2015
    Сообщения:
    19
    Симпатии:
    1
    Джумла 2,5.
    Модуль с помощью loadposition вставила. Ошибка заключалась в том, что формулу первый раз вставляла через редактор JCE, вместо того, чтобы использовать редактор CodeMirror. Вот что получилось:
    http://vk.com/photo304500865_374266319

    Первая часть задачи решена. Теперь осталась вторая часть - это сам модуль.
    По ходу возник вопрос: я же могу посмотреть код страницы сайта stihi.ru, можно ли оттуда вытащить код для отображения списка последних публикаций автора (сам сайт stihi.ru выполнен не на Джумле)?
     
  8. Zulus

    Zulus Команда форума

    Регистрация:
    20 дек 2012
    Сообщения:
    681
    Симпатии:
    686
    Вот что-то модуля никак не найду, где был под j2.5, там уже ссылки битые. (Поищу еще на досуге, может получится найти, самому то же скоро понадобится что-то подобное).
    СтихиРу сделан не на джумле точно. Посмотреть то можно, но как ты это себе представляешь? Проблема в том, что это должно работать как фильтр, т.е. идет вывод всех статей и при этом, для показа статей одного автора, того кто залогинился, идет фильтрация. И что бы правильно отфильтровать, надо получить id этого автора, о чем выше было написано на примере seoblod.
     
    mila_serdnaya нравится это.
  9. mila_serdnaya

    mila_serdnaya

    Регистрация:
    13 июл 2015
    Сообщения:
    19
    Симпатии:
    1
    Zulus, на одном из форумов мне посоветовали установить flexi custom code, создать модуль с типом "flexi custom code" и туда поместить туда вот такой код:
    1. <?php $user = & JFactory::getUser();
    2. if (!$user->guest) {
    3. $db = JFactory::getDBO();
    4. $userID = $user->id;
    5. $catID = 10; // категория произведений пользователя
    6. $query = "select * from #__content where created_by = '".$userID."' and state = '1' and access = '1' and catid='".$catID."' order by ordering asc";
    7. $db->setQuery($query);
    8. $result = $db->loadObjectList();
    9. //print_r($result);
    10. if(count($result)){
    11. foreach($result as $key=>$item):?>
    12. <div id="val"><?php echo $item->title; ?></div>
    13. <?php endforeach;
    14. }
    15. }
    16. ?>
    Я модуль создала, вот он: http://vk.com/photo304500865_374468784
    Назначила модулю позицию - position-101. В тексте статьи под словами "Произведения, не вошедшие в сборники" вставила конструкцию: {loadposition position-101}. Никакого списка не отобразилось. В чём может быть ошибка, подскажите, пожалуйста!

    Или, может быть, вы знаете какой-то другой код модуля, который бы отображал список произведений, которые автор опубликовал на сайте? Задача, в общем-то, распространённая, как мне кажется....Должно же что-то быть...
    --- Добавлено, 15 июл 2015 ---
    На сайте будут регистрироваться сотни пользователей, поэтому нужно, чтобы у каждого автора автоматически выводился список его опубликованных произведений на сайте.
     
  10. gatsby

    gatsby

    Регистрация:
    27 дек 2012
    Сообщения:
    142
    Симпатии:
    75
    Код, который Вы привели Выше, выводит заголовки материалов текущего залогиненного пользователя.

    Чтобы вывести заголовки материалов пользователя, на странице которого Вы находитесь, нужно знать ID пользователя и подставить в Вашем коде вот сюда:
    Код:
    $user = & JFactory::getUser($USER_ID);
    ID пользователя скорее всего можно получить из URL вот таким образом (вариантов несколько, потому что мало данных):
    Код:
    $user_id = JFactory::getApplication()->input->getInt('id');
    или
    Код:
    $user_id = JFactory::getApplication()->input->getInt('user_id');
    или
    Код:
    $user_id = JFactory::getApplication()->input->getInt('userid');
     
    mila_serdnaya нравится это.
  11. mila_serdnaya

    mila_serdnaya

    Регистрация:
    13 июл 2015
    Сообщения:
    19
    Симпатии:
    1
    gatsby, у меня по ходу обсуждения возник вопрос: а тем ли путём я иду?
    Смотрите, задача такая: создать сайт аналогичный сайту stihi.ru
    Нужно, чтобы на сайте был отдельный вход для авторов, нажав на который они попадают в свой кабинет. В этом кабинете у них есть личная страница с фотографией и произведениями, опубликованными на сайте, которую они могут редактировать. Эту личную страницу видят читатели.
    Ну вот как-то так...
    Как можно осуществить эту задачу на Джумла быстро и с минимальными потерями? Проект этот не финансируется, всё делаем сами. Подскажите, пожалуйста, может, есть какое-то специальное расширение?
    Боюсь, что с прописыванием кодов я на месяцы засяду за компьютер. Может, есть какой-то быстрый и максимально простой способ решения вопроса?
     
  12. gatsby

    gatsby

    Регистрация:
    27 дек 2012
    Сообщения:
    142
    Симпатии:
    75
    Боюсь, что Вам или придется изучать основы программирования или финансировать проект, потому что в joomla нет кнопки "Сделать круто".

    Нестандартные вещи, которых нет "из коробки", всегда приходится допиливать. А то, что Вы хотите - это есть немного нестандартно.

    То, что Вы примерно хотите, я делал в связке Easy Profile (профили пользователей) + Zoo (материалы пользователей). Но опять же мне пришлось использовать API этих двух расширений, чтобы связать их вместе. Без программирования никуда.
     
    mila_serdnaya, Zulus и $iD нравится это.
  13. mila_serdnaya

    mila_serdnaya

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