Página 1 de 1

Como hacer una busqueda por campo personalizado  Tema Solucionado

Publicado: 15 Oct 2014, 19:35
por zoby
Hola de nuevo, vi un MOD, y lo postee en mods en desarrollo, tras esto, me fije en su ''código'', y vi una manera de hacer algo parecido a ese MOD.
Descripción:
Permite Buscar un usuario usando un campo personalizado

En Primer lugar, vamos a crear un campo personalizado, en este caso, pondre phpbb.
Primero, vamos a editar archivos.
Abrir: /styles/prosilver/template/memberlist_search.html
Buscar

Código: Seleccionar todo

	<dl>
		<dt><label for="username">{L_USERNAME}:</label></dt>
		<dd><input type="text" name="username" id="username" value="{USERNAME}" class="inputbox" /></dd>
	</dl>
Añadir despues en una nueva linea

Código: Seleccionar todo

	<dl>
		<dt><label for="phpbb">phpBB:</label></dt>
		<dd><input type="text" name="phpbb" id="phpbb" value="" class="inputbox" /></dd>
	</dl>	
Abrir: /memberlist.php
Buscar

Código: Seleccionar todo

$search_params = array('username', 'email', 'icq', 'aim', 'yahoo', 'msn', 'jabber', 'search_group_id', 'joined_select', 'active_select', 'count_select', 'joined', 'active', 'count', 'ip');
En Linea

Código: Seleccionar todo

'username',
Añadir Despues (en la misma linea)

Código: Seleccionar todo

 'phpbb',
Buscar

Código: Seleccionar todo

$username	= request_var('username', '', true);
Añadir Despues en una nueva linea

Código: Seleccionar todo

			$phpbb		= request_var('phpbb', '');
Buscar

Código: Seleccionar todo

			$sql_where .= ($username) ? ' AND u.username_clean ' . $db->sql_like_expression(str_replace('*', $db->any_char, utf8_clean_string($username))) : '';
Añadir Despues en una nueva linea

Código: Seleccionar todo

			$sql_where .= ($phpbb) ? ' AND fd.pf_phpbb ' . $db->sql_like_expression(str_replace('*', $db->any_char, $phpbb)) . ' ' : '';
Buscar

Código: Seleccionar todo

FROM ' . USERS_TABLE . " u$sql_from
Reemplazar por

Código: Seleccionar todo

FROM (' . USERS_TABLE . " u$sql_from) LEFT JOIN " . PROFILE_FIELDS_DATA_TABLE . " fd ON (u.user_id = fd.user_id)
Buscar

Código: Seleccionar todo

FROM " . USERS_TABLE . " u
				$sql_from
Reemplazar por

Código: Seleccionar todo

FROM (" . USERS_TABLE . " u
                 $sql_from)
			LEFT JOIN " . PROFILE_FIELDS_DATA_TABLE . " fd ON (u.user_id = fd.user_id)
Tras ello, limpiar la cache de las plantillas :wink:

Resultado:
Imagen

Para cualquier problema, usen los foros, que para eso están, y no posteen aquí, ya que no se les resolverá el problema 8-)
Para acoplar el tutorial a otro campo personalizado, tan solo hay que cambiar todas las ediciones donde pone phpbb por el nombre del nuevo campo personalizado.