Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Amigos aleatorios en el perfil con Profile Friends List MODTema Solucionado

Soporte de MODs para phpBB 3.0.x
Dudas sobre AutoMOD aquí por favor.
Cerrado

0
No hay votos
 
Votos totales: 0

towen
Moderador
Mensajes: 489
Registrado: 27 Dic 2011, 05:17
Género:
Edad: 28

Amigos aleatorios en el perfil con Profile Friends List MOD  Tema Solucionado

#1

Mensaje por towen »

Bueno el Profile Friends List MOD versión 1.2.0 muestra en el perfil una lista de tus amigos ordenados alfabéticamente, y los que no quepan se muestran en otro página mediante una paginación.
Como normalmente los usuarios no revisan el resto de las páginas siempre van a estar en la primera los mismos usuarios, y esta guía es para no se muestren siempre los mismos.
Primero abrir memberlist.php

Buscar:

Código: Seleccionar todo

// friend list mod by ian-taylor.ca


	$user_id = request_var('u', 0);
	$start   = request_var('start', 0);
	$limit = request_var('limit', intval($config['number_friends']));
	$sql = $db->sql_build_query('SELECT', array(
	'SELECT'	=> 'u.user_avatar, u.username, u.user_colour, u.user_avatar_type, u.user_avatar_width, u.user_avatar_height, z.user_id, u.user_regdate, u.user_lastvisit, user_posts, z.zebra_id, z.friend',
	'FROM'		=> array(
		USERS_TABLE		=> 'u',
	),
	'LEFT_JOIN'	=> array(
		array(
			'FROM'	=> array(ZEBRA_TABLE => 'z'),
			'ON'	=> 'u.user_id=z.zebra_id'		
		)
	),
		'WHERE'		=> " u.user_id=z.zebra_id AND z.friend = 1 AND z.user_id = $user_id",
		'ORDER_BY'	=> 'z.zebra_id'
	));
	$result = $db->sql_query_limit($sql, $limit, $start);
         
	while($row_av = $db->sql_fetchrow( $result )) 
	{
		$avatar_friend = get_user_avatar($row_av['user_avatar'], $row_av['user_avatar_type'], $row_av['user_avatar_width'], 		$row_av['user_avatar_height']);
		$friend_id = $row_av['zebra_id'];
		$avatar_size_size = $config['friend_avatar_size'];

		$template->assign_block_vars('fri',array(

      		'FRI_ID'   			=> $row_av['zebra_id'],
      		'FRI_AV'   			=> $avatar_friend,
      		'USERNAME'   		=> $row_av['username'],
      		'WIDTH'				=> $config['friend_avatar_size'],
         	'USER_COLOR' 		=> $row_av['user_colour'],
      		'AV_LINK'   		=> append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=viewprofile&u=$friend_id"),  
      		'FRI_AV_THUMB'   	=>   ($row_av['user_avatar']) ? get_user_avatar($row_av['user_avatar'], $row_av['user_avatar_type'], ($row_av['user_avatar_width'] > $row_av['user_avatar_height']) ? $avatar_size_size : ($avatar_size_size / $row_av['user_avatar_height']) * $row_av['user_avatar_width'], ($row_av['user_avatar_height'] > $row_av['user_avatar_width']) ? $avatar_size_size : ($avatar_size_size / $row_av['user_avatar_width']) * $row_av['user_avatar_height']) : '',
      		'ONLINE_USER'		=> is_user_online($row_av['zebra_id'])
));
}

    
// count some stuff up for the pagination
$profile = request_var('u', 0);
$sql = 'SELECT COUNT(zebra_id) AS number_friends FROM '. ZEBRA_TABLE ." WHERE user_id=$profile AND friend = 1";
$result = $db->sql_query($sql);
$pagination_friend = append_sid($phpbb_root_path . 'memberlist.' . $phpEx ,'mode=viewprofile&u='.$user_id);

	$total_friends = $db->sql_fetchfield('number_friends');
	$db->sql_freeresult($result);

	$template->assign_vars(array(
    	'FRINATION'        => generate_pagination($pagination_friend, $total_friends, $limit, $start),
    	'PAGE_NUMBER_F'       => on_page($total_friends, $limit, $start),
    	'TOTAL_FRIENDS'       => ($total_friends == 1) ? $user->lang['LIST_FRIEND'] : sprintf($user->lang['LIST_FRIENDS'], $total_friends),
    	'U_VIEW_ALL' 		=> append_sid("{$phpbb_root_path}friend_list.$phpEx", "u=$user_id"),


	));

// end friend list mod by ian-taylor.ca
Y reemplazar por:

Código: Seleccionar todo

// friend list mod by ian-taylor.ca
//modificado por Kazekage para listar  los usuarios aleatorios
	$user_id = request_var('u', 0);
	$limit = request_var('limit', intval($config['number_friends']));

	$sql = $db->sql_build_query('SELECT', array(
	'SELECT'	=> 'u.user_avatar, u.username, u.user_colour, u.user_avatar_type, u.user_avatar_width, u.user_avatar_height, z.user_id, z.zebra_id, z.friend',
	'FROM'		=> array(
		USERS_TABLE		=> 'u',
	),
	'LEFT_JOIN'	=> array(
		array(
			'FROM'	=> array(ZEBRA_TABLE => 'z'),
			'ON'	=> 'u.user_id=z.zebra_id'		
		)
	),
		'WHERE'		=> " u.user_id=z.zebra_id AND z.friend = 1 AND z.user_id = $user_id",
		'ORDER_BY'	=> 'Rand()'
	));
	$result = $db->sql_query_limit($sql, $limit);
	while($row_av = $db->sql_fetchrow($result)) 
	{
	
		$avatar_friend = get_user_avatar($row_av['user_avatar'], $row_av['user_avatar_type'], $row_av['user_avatar_width'], 		$row_av['user_avatar_height']);
		$friend_id = $row_av['zebra_id'];
		$avatar_size_size = $config['friend_avatar_size'];

		$template->assign_block_vars('fri',array(

      		'FRI_ID'   			=> $row_av['zebra_id'],
      		'FRI_AV'   			=> $avatar_friend,
      		'USERNAME'   		=> $row_av['username'],
      		'WIDTH'				=> $config['friend_avatar_size'],
         	'USER_COLOR' 		=> $row_av['user_colour'],
      		'AV_LINK'   		=> append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=viewprofile&u=$friend_id"),  
      		'FRI_AV_THUMB'   	=>   ($row_av['user_avatar']) ? get_user_avatar($row_av['user_avatar'], $row_av['user_avatar_type'], ($row_av['user_avatar_width'] > $row_av['user_avatar_height']) ? $avatar_size_size : ($avatar_size_size / $row_av['user_avatar_height']) * $row_av['user_avatar_width'], ($row_av['user_avatar_height'] > $row_av['user_avatar_width']) ? $avatar_size_size : ($avatar_size_size / $row_av['user_avatar_width']) * $row_av['user_avatar_height']) : '',
      		'ONLINE_USER'		=> is_user_online($row_av['zebra_id'])
));
}

    
// count some stuff up for the pagination
$profile = request_var('u', 0);
$sql = 'SELECT COUNT(zebra_id) AS number_friends FROM '. ZEBRA_TABLE ." WHERE user_id=$profile AND friend = 1";
$result = $db->sql_query($sql);
$total_friends = $db->sql_fetchfield('number_friends');
$db->sql_freeresult($result);

	$template->assign_vars(array(
    	'TOTAL_FRIENDS'       => ($total_friends == 1) ? $user->lang['LIST_FRIEND'] : sprintf($user->lang['LIST_FRIENDS'], $total_friends),
    	'U_VIEW_ALL' 		=> append_sid("{$phpbb_root_path}friend_list.$phpEx", "u=$user_id"),
	));

// end friend list mod by ian-taylor.ca
Hasta ahora lo que hemos hecho es cambiar el criterio de ordenamiento (ahora es aleatorio) y eliminar la paginación ya que no será necesaria.

Abrir styles/<tu estilo basado en prosilver>/template/memberlist_view.html
Buscar

Código: Seleccionar todo

<div class="panel bg1">
	<div class="inner"><span class="corners-top"><span></span></span>
		<h3>{L_FRIEND_LIST}&nbsp;(<a href="{U_VIEW_ALL}">{L_VIEW_ALL}</a>)</h3>
		<!-- BEGIN fri -->
		<a class="thumbnail" href="{fri.AV_LINK}" style="text-decoration:none">
	<span>

		<!-- IF fri.USER_COLOR --><b style="color:#{fri.USER_COLOR}"> <!-- ELSE --><b style="color:#000;"><!-- ENDIF -->{fri.USERNAME}</b>						<!-- IF fri.ONLINE_USER -->(<strong>{L_ONLINE}</strong>)<!-- ENDIF -->
<br /><!-- IF fri.FRI_AV -->{fri.FRI_AV}</span>{fri.FRI_AV_THUMB} <!-- ELSE --> <img src="{ROOT_PATH}images/no_avatar.gif" alt="noavatar" />

		</span><img src="images/no_avatar.gif" alt="noavatar"  width="{fri.WIDTH}" /><!-- ENDIF -->

		</a>
		<!-- END fri -->
<ul class="linklist">
    <li class="rightside pagination">{TOTAL_FRIENDS} &bull; <!-- IF FRINATION --><a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER_F}</a> &bull; <span>{FRINATION}</span><!-- ELSE -->{PAGE_NUMBER_F}<!-- ENDIF --></li>
</ul>

<span class="corners-bottom"><span></span></span></div>
	</div>
y reemplazarlo por

Código: Seleccionar todo

<div class="panel bg1">
	<div class="inner"><span class="corners-top"><span></span></span>
		<h3>{L_FRIEND_LIST}&nbsp; &bull; <a href="{U_VIEW_ALL}">{L_VIEW_ALL} ({TOTAL_FRIENDS}</a>)</h3>
		<!-- BEGIN fri -->
		<a class="thumbnail" href="{fri.AV_LINK}" style="text-decoration:none">
	<span>

		<!-- IF fri.USER_COLOR --><b style="color:#{fri.USER_COLOR}"> <!-- ELSE --><b style="color:#000;"><!-- ENDIF -->{fri.USERNAME}</b>						<!-- IF fri.ONLINE_USER -->(<strong>{L_ONLINE}</strong>)<!-- ENDIF -->
<br /><!-- IF fri.FRI_AV -->{fri.FRI_AV}</span>{fri.FRI_AV_THUMB} <!-- ELSE --> <img src="{ROOT_PATH}images/no_avatar.gif" alt="noavatar" />

		</span><img src="images/no_avatar.gif" alt="noavatar"  width="{fri.WIDTH}" /><!-- ENDIF -->

		</a>
		<!-- END fri -->

<span class="corners-bottom"><span></span></span></div>
	</div>
Y eso es todo, solo queda actualizar la plantilla y limpiar la caché.....

Cerrado

Volver a “Soporte de MODs”