CMS Eleanor - Поиск
Полная версия этой страницы: Официальный форум Eleanor CMS » Как открыть страницу со списком пользователей
Официальный форум Eleanor CMS » Поддержка пользователей системы Eleanor CMS » Первые шаги
У меня вопрос как открыть/создать страницу со списком пользователей?
Alexander
2 SQL запроса и вывод результата одного из них. У вас трудность в чем? Или вы хотите, чтобы сделали за вас?
Alexander, у меня есть код, но в статических страницах он не работает и наверное не должен, у меня вопрос где создать страницу, в каком каталоге?
Alexander
Marselqa, какой код и как он должен работать?
Alexander,
вот этот
function UserList()
{global $Mainclass;
	if(!isset($_GET['unique']))
		return FindUsers();
	if(isset($_POST['name']))
	{
		$query=' WHERE `name` LIKE \'%'.$Mainclass->Db->EscapeString($_POST['name']).'%\'';
		$Mainclass->Db->Query('SELECT COUNT(`id`) FROM `f_users`'.$query,__file__,__line__);
		list($total)=$Mainclass->Db->Fetch_row();
		$md=$Mainclass->Cache->SetSearchCache($total,$query);
		$links=array('Search'=>$md);
	}
	elseif(isset($_GET['search']))
	{
		$md=$_GET['search'];
		$links=array('Search'=>$md);
		$arr=$Mainclass->Cache->GetSearchCache($md);
		if($arr===false)
			return FindUsers();
		extract($arr);
	}
	else
	{
		$query=' ORDER BY `name` ASC';
		$Mainclass->Db->Query('SELECT COUNT(`id`) FROM `f_users`',__file__,__line__);
		list($total)=$Mainclass->Db->Fetch_row();
		$links=array();
	}
	$per_page=30;
	$Mainclass->Url->SetPrefix(array('do'=>'userlist','unique'=>isset($_GET['unique']) ? $_GET['unique'] : ''),true);
	$page=isset($_GET['page']) ? (int)$_GET['page'] : 1;
	if($page<=0)
		$page=1;
	$offset=abs(($page-1)*$per_page);
	$result=array();
	$n=$offset+1;
	$Mainclass->Db->Query('SELECT `id`, `name` FROM `f_users` '.$query.' LIMIT '.$offset.', '.$per_page,__file__,__line__);
	while($arr=$Mainclass->Db->Fetch_assoc())
	{
		$arr['name']=htmlspecialchars($arr['name'],ENT_QUOTES);
		$result[]=$n.'. <a href="#" onclick="return SelectUser(\''.$arr['name'].'\',\''.$arr['id'].'\')">'.$arr['name'].'</a>';
		$n++;
	}
	$notfound=$total==0 ? '<tr><td colspan="3" aling="center"><b>'.$Mainclass->lang['users']['users_not_found'].'</b></td></tr>' : '';
	$part1=array_splice($result,0,10);
	$part2=array_splice($result,0,10);
	$part3=array_splice($result,0,10);
	$pages=Strings::Pages($total,$per_page,$links);
	$content='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<meta http-equiv="content-type" content="text/html; charset='.ELEANOR_DISPLAYCHARSET.'" />
<title>'.$Mainclass->lang['users']['users_list'].'</title>
<style type="text/css">
	:link, :visited { color: #ff5a00; text-decoration: none; }
	:link:hover, :visited:hover { color: #ff9600; text-decoration: none; }
	ul { margin: 2px 0; padding: 0 0 0 5px; }
	ul li { margin: 5px 0; padding: 0px 0 0px 14px; list-style-type: none; background: none; }
	h2 { font-size: 18px; font-weight: normal; line-height: 133%; margin: 0.5em 0 0.2em 0; }
	input, textarea, select { font-size: 11px; font-family: Tahoma, Helvetica, sans-serif; }
	body, td, div, li { color: #6d6a65; font-size: 11px; font-family: Tahoma, Helvetica, sans-serif; }
	body { text-align: left; height: 100%; line-height: 142%; padding: 0; margin: 20px; background-color: #FFFFFF; }
	.clr {clear:both;}
	hr	{ height: 1px; border: solid #d8d8d8 0px; border-top-width: 1px; }
</style>
<script type="text/javascript" src="js/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
function SelectUser(name,id)
{
	var unique="'.(isset($_GET['unique']) ? $_GET['unique'] : '').'";
	$("#"+unique,window.opener.document).find("input:first").val(name).end().find("input:last").val(id);
	window.close();
	return false;
}
</script>
<table border="0" width="100%" cellpadding="0" cellspacing="5"><tr>
	<td colspan="3"><h2>'.$Mainclass->lang['users']['users_list'].'</h2><hr /></td>
	</tr>'.$notfound.'
	<tr>
	<td>
		<ul>
			<li>'.implode('</li><li>',$part1).'</li>
		</ul>
	</td>
	<td>
		<ul>
			<li>'.implode('</li><li>',$part2).'</li>
		</ul>
	</td>
	<td>
		<ul>
			<li>'.implode('</li><li>',$part3).'</li>
		</ul>
	</td>
	</tr>
	<tr>
	<td colspan="3">'.$pages.'
			<div class="clr"></div>
		<hr />
		<form action="'.$Mainclass->Url->ConstructUrl(array('do'=>'userlist','unique'=>$_GET['unique'])).'" method="post">
			'.$Mainclass->lang['users']['search'].Template::Edit('name',isset($_POST['name']) ? $_POST['name'] : '').Template::Button($Mainclass->lang['users']['find']).'
		</form>
	</td>
</tr>
</table>
</body>
</html>';
	$Mainclass->ShowDecoration(true,'');
	echo $content;
}
Alexander
Marselqa, версию системы уточните, пожалуйста.
Alexander, версия RC5
Alexander
Marselqa, у вас этот код взят из админки... В пользовательской части он скорее всего работать не будет. Вы хотите просто вывести список всех пользователей, зарегистрированных в системе? Все?
да именно это
Alexander
Marselqa, можете написать мне на мыло. Попробуем договориться. Если нет - попробуйте самостоятельно реализовать нужную фичу.
Loader
Цитата (Alexander @ 2020-10-27 07:21)
Marselqa, у вас этот код взят из админки... В пользовательской части он скорее всего работать не будет. Вы хотите просто вывести список всех пользователей, зарегистрированных в системе? Все?

Да всё работает я этот код давно уже адаптировал! И даже выкладывал здесь на форуме.
Alexander
Loader, дайте, пожалуйста, ссылку человеку - пусть не мучается.
Loader
Даю код для вывода списка пользователей в user части:

function UserList()
{global $Mainclass;

	$Mainclass->LoadLanguage('addons/adminka/langs','users','users-%');

	if(isset($_POST['name']) AND ($_POST['name']!=''))
	{
		$query=' WHERE `name` LIKE \'%'.$Mainclass->Db->EscapeString($_POST['name']).'%\'';
		$Mainclass->Db->Query('SELECT COUNT(`id`) FROM `f_users`'.$query,__file__,__line__);
		list($total)=$Mainclass->Db->Fetch_row();
	}
	else
	{
		$query=' ORDER BY `name` ASC';
		$Mainclass->Db->Query('SELECT COUNT(`id`) FROM `f_users`',__file__,__line__);
		list($total)=$Mainclass->Db->Fetch_row();
	}
	
	$per_page=30;
	$page=isset($_GET['page']) ? (int)$_GET['page'] : 1;
	if($page<=0)
		$page=1;
	$offset=abs(($page-1)*$per_page);
	$result=array();
	$n=$offset+1;
	$Mainclass->Db->Query('SELECT `id`, `name` FROM `f_users` '.$query.' LIMIT '.$offset.', '.$per_page,__file__,__line__);
	while($arr=$Mainclass->Db->Fetch_assoc())
	{
		$arr['name']=htmlspecialchars($arr['name'],ENT_QUOTES);
		$result[]=$n.'. <a href="#" onclick="return SelectUser(\''.$arr['name'].'\')">'.$arr['name'].'</a>';
		$n++;
	}
	$notfound=$total==0 ? '<tr><td colspan="3" aling="center"><b>'.$Mainclass->lang['users']['users_not_found'].'</b></td></tr>' : '';
	$part1=array_splice($result,0,10);
	$part2=array_splice($result,0,10);
	$part3=array_splice($result,0,10);
	
	$pages=Strings::Pages($total,$per_page,array(array('do'=>'userlist')));
	
	$content='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<meta http-equiv="content-type" content="text/html; charset='.ELEANOR_DISPLAYCHARSET.'" />
<base href="'.ELEANOR_PROTOCOL.$Mainclass->domain.$Mainclass->site_path.'/">
<title>'.$Mainclass->lang['users']['users_list'].'</title>
<style type="text/css">
	:link, :visited { color: #ff5a00; text-decoration: none; }
	:link:hover, :visited:hover { color: #ff9600; text-decoration: none; }
	ul { margin: 2px 0; padding: 0 0 0 5px; }
	ul li { margin: 5px 0; padding: 0px 0 0px 14px; list-style-type: none; background: none; }
	h2 { font-size: 18px; font-weight: normal; line-height: 133%; margin: 0.5em 0 0.2em 0; }
	input, textarea, select { font-size: 11px; font-family: Tahoma, Helvetica, sans-serif; }
	body, td, div, li { color: #6d6a65; font-size: 11px; font-family: Tahoma, Helvetica, sans-serif; }
	body { text-align: left; height: 100%; line-height: 142%; padding: 0; margin: 20px; background-color: #FFFFFF; }
	.clr {clear:both;}
	hr	{ height: 1px; border: solid #d8d8d8 0px; border-top-width: 1px; }
</style>
<script type="text/javascript" src="js/jquery.min.js"></script>
</head>
<body>

<script type="text/javascript">
function SelectUser(name)
{
	var unique="name";
	$("#"+unique,window.opener.document).find("input:first").val(name).end();
	window.close();
	return false;
}

</script>
<table border="0" width="100%" cellpadding="0" cellspacing="5"><tr>
	<td colspan="3"><h2>'.$Mainclass->lang['users']['users_list'].'</h2><hr /></td>
	</tr>'.$notfound.'
	<tr>
	<td>
		<ul>
			<li>'.implode('</li><li>',$part1).'</li>
		</ul>
	</td>
	<td>
		<ul>
			<li>'.implode('</li><li>',$part2).'</li>
		</ul>
	</td>
	<td>
		<ul>
			<li>'.implode('</li><li>',$part3).'</li>
		</ul>
	</td>
	</tr>
	<tr>
	<td colspan="3">'.$pages.'
			<div class="clr"></div>
		<hr />
		<form action="'.$Mainclass->Url->ConstructUrl(array('module'=>'pm',array('do'=>'userlist')),false).'" method="post">
			'.$Mainclass->lang['users']['search'].Template::Edit('name',isset($_POST['name']) ? $_POST['name'] : '').Template::Button($Mainclass->lang['users']['find']).'
		</form>
	</td>
</tr>
</table>
</body>
</html>';

	echo $content;
}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.