Получить чужой идентификатор пользователя для сообщения
Я не могу получить чей-либо идентификатор пользователя из своего профиля 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