Перейти к публикации

Рекомендованные сообщения

 <?php

/*

=====================================================

Plugin for DataLife Engine

-----------------------------------------------------

Author: Celsoft and Nitro, 2006 email: itnitro@gmail.com

=====================================================

Файл: members.php

-----------------------------------------------------

Назначение: Выводит всех зарегистрированых пользователей

=====================================================

*/

if( ! defined('DATALIFEENGINE') )

   { die("Hacking attempt!"); }



if ($member_id['user_group'] >= 5);


else {

$tpl->load_template('members.tpl');


$number = intval(25);


$user_query = query_string($_SERVER['QUERY_STRING'], array("cstart", "userid"));


if (!isset($_REQUEST['cstart'])) $cstart = 0; else $cstart = intval($_REQUEST['cstart']);

if (!isset($_REQUEST['userid'])) $userid = 0; else $userid = intval($_REQUEST['userid']);


if ($cstart < 0) $cstart = 0;


if ($cstart){

$cstart = $cstart - 1;

$cstart = $cstart * $number;}

	$i = $cstart;

	$s = 0;




	$_SESSION['referrer'] = $_SERVER['REQUEST_URI'];


	$sql_comm = "SELECT * FROM " . PREFIX . "_users ORDER BY `lastdate` desc LIMIT ".$cstart.",".$number;

	$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_users";


	$sql_result = $db->query($sql_comm);

	$row_count  = $db->super_query($sql_count);


	if (!$db->num_rows($sql_result)) msgbox ($lang['all_info'], $lang['err_last']);


	while($row = $db->get_row($sql_result)){


	$row['date'] = strtotime($row['date']);


	$i++;$s++;




switch($row['user_group']){

		 case 1: $user_level = $lang['user_adm']; break;

		 case 2: $user_level = $lang['user_re']; break;

		 case 3: $user_level = $lang['user_ed']; break;

		 case 4: $user_level = $lang['user_mem']; break;

						 }

	 if ($row['banned'] == 'yes') $user_level = $lang['user_ban'];


	if ($row['allow_mail']){

	$email = explode("@", $row['email'], 2);

	$tpl->set('{email}', "<a href=\"$PHP_SELF?do=feedback&user=$row[user_id]\">".$lang['news_mail']."</a>");

	}

	else {

	$tpl->set('{email}', $lang['news_nomail'], $output);

	}


	$tpl->set('{pm}', "<a href=\"$PHP_SELF?do=pm&doaction=newpm&user=".$row['user_id']."\">".$lang['news_pmnew']."</a>");


	if (!$row['allow_mail']) $mailbox = "checked"; else $mailbox = "";


	if ($row['foto'] AND (file_exists(ROOT_DIR."/uploads/fotos/".$row['foto'])))

	$tpl->set('{foto}', $config['http_home_url']."uploads/fotos/".$row['foto']);

	else

	$tpl->set('{foto}', "{THEME}/images/noavatar.png");

	$tpl->set('{hidemail}', "<input type=\"checkbox\" name=\"allow_mail\" value=\"1\" ".$mailbox."> ".$lang['news_noamail'], $output);


	if ($config['allow_alt_url'] == "yes")

	$tpl->set('{usertitle}', "<a title='Полная информация (Портфолио)' target=_blank href=\"".$config['http_home_url']."user/".urlencode($row['name'])."/\">".stripslashes($row['name'])."</a>");

	else

	$tpl->set('{usertitle}', "<a title='Полная информация (Портфолио)' target=_blank href=\"$PHP_SELF?subaction=userinfo&user=".urlencode($row['name'])."\">".stripslashes($row['name'])."</a>");



	$tpl->set('{fullname}', stripslashes($row['fullname']));

	if (!$is_logged) {

	$tpl->set('{icq}', 'none');

	}

	else

	{

	$tpl->set('{icq}', stripslashes($row['icq']));

	}

	$tpl->set('{name}', stripslashes($row['name']));

	$tpl->set('{land}', stripslashes($row['land']));

	$tpl->set('{info}', stripslashes($row['info']));

	$tpl->set('{editmail}', stripslashes($row['email']));

	$tpl->set('{comm_num}', $row['comm_num']);

	$tpl->set('{news_num}', $row['news_num']);

	$tpl->set('{status}', $user_level);

	$tpl->set('{rate}', userrating ($row['name']));

	$tpl->set('{registration}', langdate($config['timestamp_active'], $row['reg_date']));

	$tpl->set('{lastdate}', langdate($config['timestamp_active'], $row['lastdate']));

	$tpl->set('{comments}', "<a target=_blank href=\"$PHP_SELF?do=lastcomments&userid=".$row['user_id']."\">".$lang['last_comm']. "</a>");


	if ($row['signature']) {

	$tpl->set_block("'\\[signature\\](.*?)\\[/signature\\]'si","\\1");

	$tpl->set('{signature}', stripslashes($row['signature']));

	} else {

	$tpl->set_block("'\\[signature\\](.*?)\\[/signature\\]'si","");

	}







		$tpl->compile('content');

}


$tpl->clear();

mysql_free_result($sql_result);





$tpl->load_template('navigation.tpl');


//----------------------------------


// Previous link


//----------------------------------

	if($cstart > 0){

	  $prev = $cstart / $number;

	  $prev_page = $PHP_SELF."?cstart=".$prev."&".$user_query;

	  $tpl->set_block("'\[prev-link\](.*?)\[/prev-link\]'si", "<a href=\"".$prev_page."\">\\1</a>");


	}else{ $tpl->set_block("'\[prev-link\](.*?)\[/prev-link\]'si", "\\1"); $no_prev = TRUE; }


	//----------------------------------

	// Pages

	//----------------------------------

	if($number){

	$count_all = $row_count['count'];


	$pages_count = @ceil($count_all/$number);

	$pages_start_from = 0;

	$pages = "";

	$pages_per_section = 3;

	if($pages_count > 10)

		 {

			for($j = 1; $j <= $pages_per_section; $j++)

			  {

			   if($pages_start_from != $cstart)

				   {

	$pages .= "<a href=\"$PHP_SELF?cstart=$j&$user_query\">$j</a> ";

					 }

					   else

						  {

						  $pages .= " [$j] ";

						  }

			  $pages_start_from += $number;

				 }

			 if(((($cstart / $number) + 1) > 1) && ((($cstart / $number) + 1) < $pages_count))

				{

			   $pages   .= ((($cstart / $number) + 1) > ($pages_per_section + 2)) ? '... ' : ' ';

			   $page_min = ((($cstart / $number) + 1) > ($pages_per_section + 1)) ? ($cstart / $number) : ($pages_per_section + 1);

			   $page_max = ((($cstart / $number) + 1) < ($pages_count - ($pages_per_section + 1))) ? (($cstart / $number) + 1) : $pages_count - ($pages_per_section + 1);


			   $pages_start_from = ($page_min - 1) * $number;


					 for($j = $page_min; $j < $page_max + ($pages_per_section - 1); $j++)

						 {

						   if($pages_start_from != $cstart)

										{


	$pages .= "<a href=\"$PHP_SELF?cstart=$j&$user_query\">$j</a> ";

									}

									else

									{

										   $pages .= " [$j] ";

									}

								   $pages_start_from += $number;

						  }

						   $pages .= ((($cstart / $number) + 1) < $pages_count - ($pages_per_section + 1)) ? '... ' : ' ';


						}

						else

						{

								$pages .= '... ';

						}


						$pages_start_from = ($pages_count - $pages_per_section) * $number;

						for($j=($pages_count - ($pages_per_section - 1)); $j <= $pages_count; $j++)

						{

								if($pages_start_from != $cstart)

								{


	$pages .= "<a href=\"$PHP_SELF?cstart=$j&$user_query\">$j</a> ";

								}

								else

								{

										$pages .= " [$j] ";

								}

								$pages_start_from += $number;

						}


				}

				else

				{

						for($j=1;$j<=$pages_count;$j++)

						{

								if($pages_start_from != $cstart)

								{

	$pages .= "<a href=\"$PHP_SELF?cstart=$j&$user_query\">$j</a> ";

								}

								else

								{

										$pages .= " [$j] ";

								}

								$pages_start_from += $number;

						}

				}

				$tpl->set('{pages}', $pages);




		}



//----------------------------------

// Next link

//----------------------------------

	if($number < $count_all and $i < $count_all){


	$next_page = $i / $number + 1;

	  $next = $PHP_SELF."?cstart=".$next_page."&".$user_query;

	$tpl->set_block("'\[next-link\](.*?)\[/next-link\]'si", "<a href=\"".$next."\">\\1</a>");


	}else{

		$tpl->set_block("'\[next-link\](.*?)\[/next-link\]'si", "\\1"); $no_next = TRUE;

	}


$tpl->copy_template .= <<<EOF

<script language="JavaScript">

  function reg_keys(key) {

  var code;

  if (!key) var key = window.event;

  if (key.keyCode) code = key.keyCode;

   else if (key.which) code = key.which;


   if ((code == 37) && (key.ctrlKey == true)) {

	 document.location = '$prev_page';

   }

   if ((code == 39) && (key.ctrlKey == true)) {

	 document.location = '$next';

   }


};


document.onkeydown = reg_keys;

</script>

EOF;


if	(!$no_prev or !$no_next){ $tpl->compile('content'); }

$tpl->clear();


}


?>
Вот этот код называешь members.php кидаешь в модули, создаешь members.tpl кидаешь в папку с шаблоном, подключаешь в engine.php вот этот код:
case "members" :

	include ENGINE_DIR.'/modules/members.php';

break;

ссылка "/index.php?do=members"

Изменено пользователем DocentX
Ссылка на сообщение
Поделиться на других сайтах

п.Ы не посчитайте за флуд... просто аффтору тпа не зачто говорить "Спасибо" (:

За то что выложил код этого мода, только у Nitro все в админке настраивалось и всем показывало, в том числе спам-ботам :( , тот что выше все в ручную и только зарегестрированным, вывод по 25 пользователей.

Советую тег или макрос {email}, как его правильно назвать, не выводить в шаблон (ихмо чисто мое мнение).

JIGSAW посмотри как сделан userinfo.tpl и на его основе сделай members.tpl

Ссылка на сообщение
Поделиться на других сайтах

M.C.,

попробуй. Откуда такая боязнь поставить и проверить.

Про шаблон тебе сказали как сделать. Ещё малюсенькое дополнение: (если используется чпу) в .htaccess можно после

RewriteRule ^stats(/?)+$ /?do=stats

дописать

RewriteRule ^members(/?)+$ /?do=members

тогда будет доступна по ссылке ваш сайт/members/

(хотя это конечно не принципиально)

M.C.,

если проблемы с самостоятельной установкой, в личку, за пару баксов поставлю.. но ты мог бы и сам попробовать, потом спрашивать.

PS: если сейчас успею, поставлю себе...

DocentX,

извини, у меня не заработал. Выдал что таких новостей нет (разбираться в чём ошибка не стал пока.....если таковая есть и это не мои личные глюки). Я впихнул туда код, что предлагал Нитро - заработало. В админку эти настройки вынести тоже минутное, просто надо в файл админки залезть и ввести пару полей...

Вот только про спам боты можно по подробнее плиз..

Ссылка на сообщение
Поделиться на других сайтах

Держи только у меня свои диз! Пример: второй сайт в подписи, только зарегится надо чтобы увидеть...

<TABLE cellSpacing=0 cellPadding=0 

					width="100%"><TBODY>

					<TR>

					  <TD>

						<TABLE cellSpacing=0 cellPadding=0 width="100%">

						  <TBODY>


							<TD height="25" class="mainbodytext" style="padding-left:10px;">

		 <B>{usertitle}</B>

<br><font size=1 color="red">{status}</font><br>

</TD></TBODY></TABLE>

						<TABLE cellSpacing=0 cellPadding=0 width="100%">

						  <TBODY>

						  <TR>

<TD class="mainbodytext">

<TR>

<td width="150" valign="top" style="padding-left:10px;"><img src="{foto}" border="0"></td>

<td valign="top" style="padding-left:5px;">

<FONT size=1>

Дата регистрации: {registration}

<br>Последнее посещение: {lastdate}


<br><br>Рейтинг: {rate}

<br><br>Место жительства: {land}

<br>Номер ICQ: {icq}

<br>Немного о себе:<br>{info}<br><br>Количество публикаций:    {news_num}

<br>Количество комментариев: {comm_num} [ {comments} ]<br>

<br>Написать: [{pm}] 

</TD></TR>



</TD></TR></TBODY></TABLE><br><TABLE cellSpacing="0" cellPadding="0" width="100%" align="center">

			  <TBODY>

			  <TR>

				<TD vAlign="top" align="left" 

				background="{THEME}/images/bottom_bg.jpg" height="3"><IMG 

				  height="3" src="{THEME}/images/bottom_bg.jpg" width="4"></TD></TR></TBODY></TABLE><br></TD></TR></TBODY></TABLE>

Изменено пользователем DocentX
Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...
  • 1 месяц спустя...

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...