mirror of
https://github.com/e107inc/e107.git
synced 2025-06-02 00:45:03 +02:00
Fix a bug that failed to generate correct user profile links in chatbox_menu view when legacy user link format was used.
This commit is contained in:
parent
a661a75fa6
commit
30139a4059
@ -21,8 +21,8 @@ class chatbox_menu_shortcodes extends e_shortcode
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
if ( ! $this->var['user_image'] ) {
|
||||
$this->addVars($this->retrieveUserDataByNick($this->var['cb_nick']));
|
||||
if ( ! isset($this->var['user_image'], $this->var['user_id'], $this->var['user_name']) ) {
|
||||
$this->addVars($this->retrieveUserDataByNick());
|
||||
}
|
||||
|
||||
}
|
||||
@ -31,36 +31,60 @@ class chatbox_menu_shortcodes extends e_shortcode
|
||||
/**
|
||||
* Returns extended user data from user object
|
||||
*
|
||||
* @param $nick string
|
||||
*
|
||||
* @return array user data
|
||||
*/
|
||||
protected function retrieveUserDataByNick($nick)
|
||||
protected function retrieveUserDataByNick()
|
||||
{
|
||||
|
||||
$tmp = explode('.', $nick);
|
||||
$userId = (int)$tmp[0];
|
||||
$userId = $this->getUserIdFromNick();
|
||||
|
||||
return e107::user($userId);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns user_id from cb_nick
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
protected function getUserIdFromNick()
|
||||
{
|
||||
$temp = explode('.', $this->var['cb_nick']);
|
||||
return $temp[0];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns user_name from cb_nick
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
protected function getUserNameFromNick()
|
||||
{
|
||||
$temp = explode('.', $this->var['cb_nick']);
|
||||
return $temp[1];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns user avatar
|
||||
*
|
||||
* @param $parm
|
||||
*
|
||||
* @return \
|
||||
* @return <img> tag of avatar
|
||||
*/
|
||||
public function sc_cb_avatar($parm = null)
|
||||
{
|
||||
$this->init();
|
||||
|
||||
$size = $parm['size'] ?: 40;
|
||||
$tp = e107::getParser();
|
||||
$size = $parm['size'] ?: 40;
|
||||
$options = array('h' => $size, 'w' => $size, 'crop' => 'C');
|
||||
|
||||
return $tp->toAvatar($this->var, ['h' => $size, 'w' => $size, 'crop' => 'C']);
|
||||
if ( ! isset($this->var['user_image']) ) {
|
||||
$this->init();
|
||||
return $tp->toAvatar($this->var, $options);
|
||||
}
|
||||
|
||||
return $tp->toAvatar($this->var, $options);
|
||||
}
|
||||
|
||||
|
||||
@ -74,28 +98,30 @@ class chatbox_menu_shortcodes extends e_shortcode
|
||||
public function sc_cb_username($parm = null)
|
||||
{
|
||||
|
||||
if (! $this->var['user_id'] && ! $this->var['user_name']) {
|
||||
if ( ! isset($this->var['user_id'], $this->var['user_name']) ) {
|
||||
|
||||
$tmp = explode('.', $this->var['cb_nick']);
|
||||
$userData = array(
|
||||
'id' => $this->getUserIdFromNick(),
|
||||
'name' => $this->getUserNameFromNick(),
|
||||
);
|
||||
|
||||
$link = e107::getUrl()->create('user/profile/view', array('id' => $tmp[0], 'name' => $tmp[1]));
|
||||
$userLink = e107::getUrl()->create('user/profile/view', $userData);
|
||||
|
||||
$userName = str_replace('Anonymous', LAN_ANONYMOUS, $tmp[1]);
|
||||
|
||||
return '<a href="' . $link . '">' . $userName . '</a>';
|
||||
$userName = str_replace('Anonymous', LAN_ANONYMOUS, $userData['name']);
|
||||
|
||||
return '<a href="' . $userLink . '">' . $userName . '</a>';
|
||||
}
|
||||
|
||||
$this->init();
|
||||
|
||||
$userData = [
|
||||
$userData = array(
|
||||
'id' => $this->var['user_id'],
|
||||
'name' => $this->var['user_name'],
|
||||
];
|
||||
);
|
||||
|
||||
$link = e107::getUrl()->create('user/profile/view', $userData);
|
||||
$userLink = e107::getUrl()->create('user/profile/view', $userData);
|
||||
|
||||
return '<a href="' . $link . '">' . $this->var['user_name'] . '</a>';
|
||||
$userName = str_replace('Anonymous', LAN_ANONYMOUS, $this->var['user_name']);
|
||||
|
||||
return '<a href="' . $userLink . '">' . $userName . '</a>';
|
||||
}
|
||||
|
||||
|
||||
@ -123,8 +149,6 @@ class chatbox_menu_shortcodes extends e_shortcode
|
||||
*/
|
||||
public function sc_cb_message($parm = null)
|
||||
{
|
||||
$this->init();
|
||||
|
||||
if ($this->var['cb_blocked']) {
|
||||
return CHATBOX_L6;
|
||||
}
|
||||
@ -135,7 +159,7 @@ class chatbox_menu_shortcodes extends e_shortcode
|
||||
|
||||
$cb_message = e107::getParser()
|
||||
->toHTML($this->var['cb_message'], false, $emotes_active,
|
||||
$this->var['user_id'], $pref['menu_wordwrap']);
|
||||
$this->getUserIdFromNick(), $pref['menu_wordwrap']);
|
||||
|
||||
return $cb_message;
|
||||
}
|
||||
@ -182,14 +206,14 @@ class chatbox_menu_shortcodes extends e_shortcode
|
||||
$modControls .= "<span class='checkbox'>";
|
||||
|
||||
$modControls .= $frm->checkbox('delete[' . $id . ']', 1, false,
|
||||
['inline' => true, 'label' => LAN_DELETE]);
|
||||
array( 'inline' => true, 'label' => LAN_DELETE ));
|
||||
|
||||
if ($this->var['cb_blocked']) {
|
||||
$modControls .= $frm->checkbox('unblock[' . $id . ']', 1, false,
|
||||
['inline' => true, 'label' => CHATBOX_L7]);
|
||||
array( 'inline' => true, 'label' => CHATBOX_L7 ));
|
||||
} else {
|
||||
$modControls .= $frm->checkbox('block[' . $id . ']', 1, false,
|
||||
['inline' => true, 'label' => CHATBOX_L9]);
|
||||
array( 'inline' => true, 'label' => CHATBOX_L9 ));
|
||||
}
|
||||
|
||||
$modControls .= '</span>';
|
||||
|
Loading…
x
Reference in New Issue
Block a user