Search code examples
joomlamessagekunena

Get someone else's User ID for Message


I'm unable to get someone's user ID from their Kunena profile to open a new private message with the recipient name already inserted. The closest I got was the following code, which inserts my own username...

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));
}

}


Solution

  • Ok kunena developer has a hotfix on github for the upcomming release update. Here is the commit link https://github.com/Kunena/Kunena-Forum/pull/3547