Joomla 3.x Как сделать имя автора ссылкой на его профиль?

Тема в разделе "Программирование", создана пользователем GarryMilord, 14.01.2017.

  1. Offline

    GarryMilord Недавно здесь

    Регистрация:
    04.04.2013
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Мужской
    Очень нужна помощь! Хочу сделать имя автора статьи, ссылкой на его профиль (стоит EasyProfile)
    В данный момент в профиль пользователя можно попасть если нажать на его аватар в комментариях (jcomments) Это хорошо но.. Получается, если пользователь не отпишется в комментариях, его не найти, а это не очень хорошо, т.к. у него в профиле можно просматривать все материалы которые он выложил. Поэтому хочется поправить код и сделать имя автора статьи активной ссылкой на его профиль. Задача с виду не сложная, но до сих пор я ничего толком не нашел.

    Если не ошибаюсь вот код который за это отвечает:
    (путь: ...\components\com_content\views\category\tmpl\default_articles.php)

    <?php endif; ?>
    <?php if ($this->params->get('list_show_author', 1)) : ?>
    <td headers="categorylist_header_author" class="list-author">
    <?php if (!empty($article->author) || !empty($article->created_by_alias)) : ?>
    <?php $author = $article->author ?>
    <?php $author = ($article->created_by_alias ? $article->created_by_alias : $author);?>
    <?php if (!empty($article->contact_link) && $this->params->get('link_author') == true) : ?>
    <?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', JHtml::_('link', $article->contact_link, $author)); ?>
    <?php else: ?>
    <?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', $author); ?>
    <?php endif; ?>
    <?php endif; ?>

    Как я понял, он начинает работать если создать контакт и связать его с пользователем. (Да, я проверял, автор становиться ссылкой на контакты.)

    Понятное дело, тут нужно, если не все, то многое менять. Если кто-то может чем-то помочь, подсказать, помогите пожалуйста!
     

    Вложения:

    • 1.jpg
      1.jpg
      Размер файла:
      39.5 КБ
      Просмотров:
      2
  2.  
  3. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Убери условие показа автора если есть контакт
    Код (PHP):
    1. <?php if ($this->params->get('link_author') == true) : ?>
    2. <?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY',  $author); ?>
    3. <?php endif; ?>
     
  4. Offline

    GarryMilord Недавно здесь

    Регистрация:
    04.04.2013
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Мужской
    Я нашел список api разработчиков:
    http://docs.easy-profile.com/index.php/article/jsnuser-object
    Только, не очень разбираюсь в этом, можете подсказать? как мне это использовать, для формирования "автора как ссылки"

    Вот немного кода нашел, на форуме, но это про "аватары", как я понимаю:

    require_once(JPATH_SITE.'/components/com_jsn/helpers/helper.php');
    $user=new JsnUser($id_of_user);
    echo $user->getValue('avatar');

    Если я правильно понял, мне нужно формировать что-то вроде этого:

    require_once(JPATH_SITE.'/components/com_jsn/helpers/helper.php');
    $user=JsnHelper::getUser($id_of_user); echo $user->getLink('profile');

    ?
     
  5. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Ну так проверь что находится в $user и напишешь на форуме.
    А это $id_of_user должен быть ID юзера ?
     
  6. Offline

    GarryMilord Недавно здесь

    Регистрация:
    04.04.2013
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Мужской
    Ого) там много чего написано, прикрепил в виде txt
    "А это $id_of_user должен быть ID юзера ?" - Я так понял - да.
     

    Вложения:

  7. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Так в аттаче хелпер,а не дамп . Ну есть ссылка на профиль в $user->getLink('profile'); ? Ты же написал готовый код, что не получается ?
     
  8. Offline

    GarryMilord Недавно здесь

    Регистрация:
    04.04.2013
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Мужской
    Неа) Нашел куски кода, сижу голову ломаю, как это склеить вместе...:rolleyes:

    require_once (JPATH_SITE.'/components/com_jsn/helpers/helper.php');
    include_once (JPATH_SITE.'/components/com_jsn/helpers/helper.php');
    <?php $api = JPATH_SITE.'/components/com_jsn/helpers/helper.php'; ?>
    <?php $userLink=JsnHelper::get_user_profile_url($userid, 'name', true, null, true); ?>
    <?php $user=JsnHelper::getUser($id_of_user); echo $user->getLink('profile'); ?>
    <?php $user=JsnHelper::getUser($id_of_user); $user->field_alias=value; ?>
    <?php $user=JsnHelper::getUser($author_id);?>
    <?$user=JsnHelper::getUser($user_id); ?>
     
  9. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Ну так начинай шаг за шагом . Получи ID автора, подключи один раз хелпер,а не несколько раз как у тебя. И используй методы с api разработчиков. И кстати там же заметка , что JsnUser наследует JUser, и можно использовать методы Джумла .
     
    GarryMilord нравится это.

Поделиться этой страницей

Загрузка...