206 lines
4.9 KiB
PHP
206 lines
4.9 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* @package Joomla.Administrator
|
||
|
* @subpackage com_users
|
||
|
*
|
||
|
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||
|
*/
|
||
|
|
||
|
defined('_JEXEC') or die;
|
||
|
|
||
|
/**
|
||
|
* Extended Utility class for the Users component.
|
||
|
*
|
||
|
* @package Joomla.Administrator
|
||
|
* @subpackage com_users
|
||
|
* @since 2.5
|
||
|
*/
|
||
|
class JHtmlUsers
|
||
|
{
|
||
|
/**
|
||
|
* Display an image.
|
||
|
*
|
||
|
* @param string $src The source of the image
|
||
|
*
|
||
|
* @return string A <img> element if the specified file exists, otherwise, a null string
|
||
|
*
|
||
|
* @since 2.5
|
||
|
*/
|
||
|
public static function image($src)
|
||
|
{
|
||
|
$src = preg_replace('#[^A-Z0-9\-_\./]#i', '', $src);
|
||
|
$file = JPATH_SITE . '/' . $src;
|
||
|
|
||
|
jimport('joomla.filesystem.path');
|
||
|
JPath::check($file);
|
||
|
|
||
|
if (!file_exists($file))
|
||
|
{
|
||
|
return '';
|
||
|
}
|
||
|
|
||
|
return '<img src="' . JUri::root() . $src . '" alt="" />';
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Displays an icon to add a note for this user.
|
||
|
*
|
||
|
* @param integer $userId The user ID
|
||
|
*
|
||
|
* @return string A link to add a note
|
||
|
*
|
||
|
* @since 2.5
|
||
|
*/
|
||
|
public static function addNote($userId)
|
||
|
{
|
||
|
$title = JText::_('COM_USERS_ADD_NOTE');
|
||
|
|
||
|
return '<a href="' . JRoute::_('index.php?option=com_users&task=note.add&u_id=' . (int) $userId) . '">'
|
||
|
. '<span class="label label-info"><i class="icon-vcard"></i>' . $title . '</span></a>';
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Displays an icon to filter the notes list on this user.
|
||
|
*
|
||
|
* @param integer $count The number of notes for the user
|
||
|
* @param integer $userId The user ID
|
||
|
*
|
||
|
* @return string A link to apply a filter
|
||
|
*
|
||
|
* @since 2.5
|
||
|
*/
|
||
|
public static function filterNotes($count, $userId)
|
||
|
{
|
||
|
if (empty($count))
|
||
|
{
|
||
|
return '';
|
||
|
}
|
||
|
|
||
|
$title = JText::_('COM_USERS_FILTER_NOTES');
|
||
|
|
||
|
return '<a href="' . JRoute::_('index.php?option=com_users&view=notes&filter_search=uid:' . (int) $userId) . '">'
|
||
|
. JHtml::_('image', 'admin/filter_16.png', 'COM_USERS_NOTES', array('title' => $title), true) . '</a>';
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Displays a note icon.
|
||
|
*
|
||
|
* @param integer $count The number of notes for the user
|
||
|
* @param integer $userId The user ID
|
||
|
*
|
||
|
* @return string A link to a modal window with the user notes
|
||
|
*
|
||
|
* @since 2.5
|
||
|
*/
|
||
|
public static function notes($count, $userId)
|
||
|
{
|
||
|
if (empty($count))
|
||
|
{
|
||
|
return '';
|
||
|
}
|
||
|
|
||
|
$title = JText::plural('COM_USERS_N_USER_NOTES', $count);
|
||
|
|
||
|
return '<a class="modal"'
|
||
|
. ' href="' . JRoute::_('index.php?option=com_users&view=notes&tmpl=component&layout=modal&u_id=' . (int) $userId) . '"'
|
||
|
. ' rel="{handler: \'iframe\', size: {x: 800, y: 450}}">'
|
||
|
. '<span class="label label-info"><i class="icon-drawer-2"></i>' . $title . '</span></a>';
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Build an array of block/unblock user states to be used by jgrid.state,
|
||
|
* State options will be different for any user
|
||
|
* and for currently logged in user
|
||
|
*
|
||
|
* @param boolean $self True if state array is for currently logged in user
|
||
|
*
|
||
|
* @return array a list of possible states to display
|
||
|
*
|
||
|
* @since 3.0
|
||
|
*/
|
||
|
public static function blockStates( $self = false)
|
||
|
{
|
||
|
if ($self)
|
||
|
{
|
||
|
$states = array(
|
||
|
1 => array(
|
||
|
'task' => 'unblock',
|
||
|
'text' => '',
|
||
|
'active_title' => 'COM_USERS_USER_FIELD_BLOCK_DESC',
|
||
|
'inactive_title' => '',
|
||
|
'tip' => true,
|
||
|
'active_class' => 'unpublish',
|
||
|
'inactive_class' => 'unpublish'
|
||
|
),
|
||
|
0 => array(
|
||
|
'task' => 'block',
|
||
|
'text' => '',
|
||
|
'active_title' => '',
|
||
|
'inactive_title' => 'COM_USERS_USERS_ERROR_CANNOT_BLOCK_SELF',
|
||
|
'tip' => true,
|
||
|
'active_class' => 'publish',
|
||
|
'inactive_class' => 'publish'
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$states = array(
|
||
|
1 => array(
|
||
|
'task' => 'unblock',
|
||
|
'text' => '',
|
||
|
'active_title' => 'COM_USERS_TOOLBAR_UNBLOCK',
|
||
|
'inactive_title' => '',
|
||
|
'tip' => true,
|
||
|
'active_class' => 'unpublish',
|
||
|
'inactive_class' => 'unpublish'
|
||
|
),
|
||
|
0 => array(
|
||
|
'task' => 'block',
|
||
|
'text' => '',
|
||
|
'active_title' => 'COM_USERS_USER_FIELD_BLOCK_DESC',
|
||
|
'inactive_title' => '',
|
||
|
'tip' => true,
|
||
|
'active_class' => 'publish',
|
||
|
'inactive_class' => 'publish'
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
return $states;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Build an array of activate states to be used by jgrid.state,
|
||
|
*
|
||
|
* @return array a list of possible states to display
|
||
|
*
|
||
|
* @since 3.0
|
||
|
*/
|
||
|
public static function activateStates()
|
||
|
{
|
||
|
$states = array(
|
||
|
1 => array(
|
||
|
'task' => 'activate',
|
||
|
'text' => '',
|
||
|
'active_title' => 'COM_USERS_TOOLBAR_ACTIVATE',
|
||
|
'inactive_title' => '',
|
||
|
'tip' => true,
|
||
|
'active_class' => 'unpublish',
|
||
|
'inactive_class' => 'unpublish'
|
||
|
),
|
||
|
0 => array(
|
||
|
'task' => '',
|
||
|
'text' => '',
|
||
|
'active_title' => '',
|
||
|
'inactive_title' => 'COM_USERS_ACTIVATED',
|
||
|
'tip' => true,
|
||
|
'active_class' => 'publish',
|
||
|
'inactive_class' => 'publish'
|
||
|
)
|
||
|
);
|
||
|
return $states;
|
||
|
}
|
||
|
}
|