|
|
|
nanel
|
|
|
Enviado: 07/09/2004 a las 20:09 |
|
Novato
Karma: 0 (0 Votos)
Registrado: 14/05/04
Mensajes: 20
Estado: Desconectado Ultima visita: 10/04/05 |
Hola a todos
Creo que hubo algunos posts para saber si era posible en el modulo Member_list de hacer búsquedas según otras tablas que "url", "nombre real" o "nickname". Después de dos días de trabajo sobre el código php, ahora lo puedo hacer en mi sitio y no resisto a la tentación de poner una solución aquí, porque estoy seguro que servirá a muchos. Preciso que la semana pasada no conocía nada de php.
Precisiones importantes: vamos a modificar directamente el código fuente del módulo Member_list, así que como siempre, hacer una copia del archivo index.php antes de hacer cualquiera cosa.
Modifico el archivo index.php del módulo [z-Mods] - zMEMBERS2.0b Pero supongo que no cambia nada si utilizáis el modulo de origen de postnuke, sólo los números de líneas cambian.
Vamos a insertar como ejemplo la tabla user_from, que corresponde a la úbicación del usuario.
Abrir el archivo index.php en modules/Members_List
Primero en la function search(), lineas 127 y siguientes. Después de
<input type=\"radio\" name=\"sorting\" value=\"url\">"._MURL."
insertar la linea
<input type=\"radio\" name=\"sorting\" value=\"user_from\">"._LOCATION."
Eso pone un nuevo butón abajo de donde ponemos el texto a buscar.
Linea 181
Antes había:
if ( (empty($sortby)) || ( ($sortby != "name") && ($sortby != "uname") && ($sortby != "femail") && ($sortby != "url") ) ){
Cambiar por:
if ( (empty($sortby)) || ( ($sortby != "name") && ($sortby != "uname") && ($sortby != "femail") && ($sortby != "url") && ($sortby != "user_from") ) ){
Eso es para clasificar según la tabla user_from
Línea 310
Antes había:
$myquery = buildSimpleQuery('users', array('uid', 'name', 'uname', 'femail', 'url', 'user_avatar','user_icq'), $where, "", $max, $min); //select our data
Cambiar por:
$myquery = buildSimpleQuery('users', array('uid', 'name', 'uname', 'femail', 'url','user_avatar','user_icq','user_from'), $where, "", $max, $min); //select our data
Eso es para buscar dentro de la tabla user_from
Linea 337
Después de
echo "<a class=\"pn-normal\" href=\"modules.php?op=modload&name=$GLOBALS[ModName]&file=index&letter=".pnVarPrepForDisplay($letter)."&sortby=name\">"._MREALNAME."";
}
echo" | \n";
Poner:
echo "<td align=\"center\">";
if ($GLOBALS['sortby'] == "user_from") {
echo "<font class=\"pn-normal\">"._LOCATION." ";
} else {
echo "<a class=\"pn-normal\" href=\"modules.php?op=modload&name=$GLOBALS[ModName]&file=index&letter=".pnVarPrepForDisplay($letter)."&sortby=user_from\">"._LOCATION."";
}
echo"\n";
Eso es para escribir _LOCATION en la primera linea del cuadro.
Linea 395
Despúes de
echo "<td bgcolor=\"$dcolor\"> <font class=\"pn-normal\">".pnVarPrepForDisplay($user['name'])." \n";
Poner
echo "<td bgcolor=\"$dcolor\"> <font class=\"pn-normal\">".pnVarPrepForDisplay($user['user_from'])." \n";
Eso es para escribir el dato de la tabla user_from
Linea 527
Antes había
$myquery2 = buildSimpleQuery('users', array('uid', 'name', 'uname', 'femail', 'url','user_regdate'),'pn_uname NOT LIKE "Anonymous"' , 'pn_user_regdate DESC' , 10);
Cambiar por:
$myquery2 = buildSimpleQuery('users', array('uid', 'name', 'uname', 'femail', 'url','user_regdate','user_from'),'pn_uname NOT LIKE "Anonymous"' , 'pn_user_regdate DESC' , 10);
Eso es para buscar dentro de la tabla user_from
Luego abrir el archivo modules/Member_list/lang/[lengua]/global.php y añadir al final una linea
define('_LOCATION','Localidad');
Cuiadar que todas las líneas terminan bien por un ";" en el global.php
Ya está!
Un saludo
Emmanuel
|
|
|
|
|
|
|
|