Получить чужой идентификатор пользователя для сообщения

Я не могу получить чей-либо идентификатор пользователя из своего профиля Kunena, чтобы открыть новое личное сообщение с уже введенным именем получателя. Самый близкий, который я получил, был следующий код, который вставляет мое собственное имя пользователя...

defined('_JEXEC') or die ();

class KunenaPrivateUddeIM extends KunenaPrivate
{
protected $uddeim = null;
protected $params = null;

/**
 * @param $params
 */
public function __construct($params)
{
    $this->params = $params;

    if (!class_exists('uddeIMAPI'))
    {
        return;
    }

    $this->uddeim = new uddeIMAPI();

    if ($this->uddeim->version() < 1)
    {
        return;
    }
}

/**
 * @param $userid
 *
 * @return string
 */
protected function getURL($userid)
{
    static $itemid = false;

    if ($itemid === false)
    {
        $itemid = 0;

        if (method_exists($this->uddeim, 'getItemid'))
        {
            $itemid = $this->uddeim->getItemid();
        }

        if ($itemid)
        {
            $itemid = '&Itemid=' . (int) $itemid;
        }
        else
        {
            $itemid = '';
        }
    }

    return JRoute::_('index.php?option=com_uddeim&task=new&recip=' . (int) $userid . $itemid);
}

/**
 * @param $userid
 *
 * @return mixed
 */
public function getUnreadCount($userid)
{
    return $this->uddeim->getInboxUnreadMessages($userid);
}

/**
 * @param $text
 *
 * @return string
 */
public function getInboxLink($text)
{
    if (!$text)
    {
        $text = JText::_('COM_KUNENA_PMS_INBOX');
    }

    return '<a href="' . JRoute::_($this->uddeim->getLinkToBox('inbox', false)) . '" rel="follow">' . $text . '</a>';
}

/**
 * @return string
 */
public function getInboxURL()
{
$user = JFactory::getUser($userid);
return JRoute::_('index.php?option=com_uddeim&task=new&recip=' . ($user ->id));
}

}

2 ответа

Решение

Хорошо, разработчик kunena установил исправление на github для готовящегося к выпуску обновления. Вот ссылка для фиксации https://github.com/Kunena/Kunena-Forum/pull/3547

Измените эту строку:

return JRoute::_('index.php?option=com_uddeim&task=new&recip=' . (JFactory::getUser()->id));

на следующие 2 строки:

$user = JFactory::getUser($userid);
return JRoute::_('index.php?option=com_uddeim&task=new&recip=' . ($user ->id));

Вы можете проверить этот пост, который мы написали некоторое время назад (он был написан для Joomla 2.5, но он все еще работает, за исключением того, что вы должны удалить &) о том, как извлечь не кэшированных пользователей в Joomla: http: // www.itoctopus.com / как к получить-на-некэшируемой-пользовательской информацию-от-Joomla

Другие вопросы по тегам