es malo usar loadMemberData y loadMemberContext?

Started by Dhayzon, July 10, 2016, 05:30:39 PM

Previous topic - Next topic

Dhayzon

loadMemberData
loadMemberContext

siempre lo uso cada que quiero información de algún usuario .. vicram me enseño  como se usa , ahora me entro la duda si es adecuado usarlo en archivos de plantillas por ejemplo ... es facil usarlo y eso me da miedo... esta bien que lo incluya en el index.template o display o menssage template?

Gluz

Lo recomendable es usarlo en los archivos donde se computa todo y no en las plantillas, osea, usarlo en Display.php en /Sources en vez de Display.template.php del tema que usas.

Aunque en el index, display, message, ya debería estar cargada toda la información del usuario, y volver a cargarla es solo usar mas recursos en lo mismo.

^HeRaCLeS^

Quote from: Gluz on July 10, 2016, 08:10:55 PM
Aunque en el index, display, message, ya debería estar cargada toda la información del usuario, y volver a cargarla es solo usar mas recursos en lo mismo.

Si pero del usuario que esta viendo la pagina, si lo que vos queres es poner informacion de otro usuario pues no estan cargados los datos.. Creo que a eso se refiere el... A utilizar esas funciones para mostrar informacion del usuario que el quiera.




Con respecto al tema, pues depende que tan vital sea lo que quieras mostrar... si solo queres mostrar un dato insignificante pues yo no las utilizaria.... Ahora si estas desarrollando una modificacion y necesitas muchos datos pues podria valer la pena..

En cuanto a si utilizarlos directamente en los templates, pues podrias crear la funcion en el archivo Subs.php y llamar dicha funcion desde la seccion que la necesites, asi no estarias rompiendo la estructura (Sources - Templates) propia de smf.

^HeRaCLeS^
*¤×• Ni te molestes en enviarme un Mp porque el soporte lo doy solo por el foro •×¤*


SMFPersonal

Suki

Depende de como lo uses.

Si vas a cargar info de varios usuarios lo mejor es recoger los Ids de todos ellos en un array y pasar ese array en lugar de hacerlo para cada usuario.

loadMemberData acepta un array de Ids:

loadMemberData(array(1,2,3,4,5));

Disclaimer: unless otherwise stated, all my posts are personal and does not represent any views or opinions held by Simple Machines.

#jsDotx3

Quote from: ^HeRaCLeS^ on July 10, 2016, 08:16:46 PM
Quote from: Gluz on July 10, 2016, 08:10:55 PM
Aunque en el index, display, message, ya debería estar cargada toda la información del usuario, y volver a cargarla es solo usar mas recursos en lo mismo.

Si pero del usuario que esta viendo la pagina, si lo que vos queres es poner informacion de otro usuario pues no estan cargados los datos.. Creo que a eso se refiere el... A utilizar esas funciones para mostrar informacion del usuario que el quiera.




Con respecto al tema, pues depende que tan vital sea lo que quieras mostrar... si solo queres mostrar un dato insignificante pues yo no las utilizaria.... Ahora si estas desarrollando una modificacion y necesitas muchos datos pues podria valer la pena..

En cuanto a si utilizarlos directamente en los templates, pues podrias crear la funcion en el archivo Subs.php y llamar dicha funcion desde la seccion que la necesites, asi no estarias rompiendo la estructura (Sources - Templates) propia de smf.
Exacto. Por ejemplo, si quiero visualizar los datos del creador de un tema creo que no se puede realizar directamente (hacer fuera del while) [desconozco en verde], en mi caso, deseaba mostrar 3 o 5 campos aproximadamente. Preferí hacer una función en el Subs y llamar a esos  3 - 5 campos que estar llamando a la función completa. ¿Qué quieres hacer exactamente?.

Saludos.

Solved
(Life would be easy with a simple solution.)

Dhayzon

por ejemplo yo lo uso para  hacer  todo lo que hace este mod http://custom.simplemachines.org/mods/index.php?mod=4107

tanto en el display template como en el menssage template, el mod hace muchas modificaciones, pero con
loadMemberData
loadMemberContext


lo hago con  5 lineas ._. esa es mi duda   no quiero quemar mi servidor


#jsDotx3

Quote from: Dhayzon on July 12, 2016, 02:45:46 AM
por ejemplo yo lo uso para  hacer  todo lo que hace este mod http://custom.simplemachines.org/mods/index.php?mod=4107

tanto en el display template como en el menssage template, el mod hace muchas modificaciones, pero con
loadMemberData
loadMemberContext


lo hago con  5 lineas ._. esa es mi duda   no quiero quemar mi servidor
¿Por que no recuperar el avatar con una sola función? (no tengo idea si en SMF existe dicha función por defecto).


function showAvatar($iduser)
{
global $smcFunc, $scripturl, $settings, $modSettings;
$idusuario = $iduser;
$sql = $smcFunc['db_query']('','
SELECT mem.id_member, mem.avatar,
IFNULL(a.id_attach, 0) AS id_attach, a.filename, a.attachment_type
FROM {db_prefix}members AS mem
LEFT JOIN {db_prefix}attachments AS a ON (a.id_member = mem.id_member)
WHERE mem.id_member = {int:id}
',
array(
'id' => $idusuario,
)
);
while ($row = $smcFunc['db_fetch_assoc']($sql))
{
$user_avatar =  $row['avatar'] == '' ? ($row['id_attach'] > 0 ? '' . (empty($row['attachment_type']) ? $scripturl . '?action=dlattach;attach=' . $row['id_attach'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $row['filename']) . '' : '') : (stristr($row['avatar'], 'http://') ? '' . $row['avatar'] . '' : '' . $modSettings['avatar_url'] . '/' . $smcFunc['htmlspecialchars']($row['avatar']) . '');
}
$smcFunc['db_free_result']($sql);

if (!empty($user_avatar))
$user_avatar = $user_avatar;
else
$user_avatar = $settings['images_url'].'/no_avatar.png';
return $user_avatar;
}


Después para ocupar es sencillo

<img src="',showAvatar(id_user),'" class="avatar" title="Avatar" alt="*"/>


Saludos!

Solved
(Life would be easy with a simple solution.)

Dhayzon

a si como dice ^HeRaCLeS^ , incluir esa función en una carpeta sources para el tema, yo básicamente lo que busco al usar
loadMemberData
loadMemberContext

es no hacer consultas en plantillas, XD pero no se si es bueno o malo pero parece que si Jjjj, quiero crear temas con su propio source/ e.e sera posible eso .. mi duda que jamás fue resuelta

#jsDotx3

Quote from: Dhayzon on July 12, 2016, 10:57:17 PM
a si como dice ^HeRaCLeS^ , incluir esa función en una carpeta sources para el tema, yo básicamente lo que busco al usar
loadMemberData
loadMemberContext

es no hacer consultas en plantillas, XD pero no se si es bueno o malo pero parece que si Jjjj, quiero crear temas con su propio source/ e.e sera posible eso .. mi duda que jamás fue resuelta

Lo que Heracles dice, es que no se pueden hacer funciones dentro del template porque rompe el esquema template - sources. a eso se refiere si no me equivoco

Solved
(Life would be easy with a simple solution.)

Príncipe_Azul

Hola, las funciones deben ser creadas en los archivos Sources y las llamadas a esas funciones deben ser desde los templates.

Saludos!!
Foro ArgentinaIRC - Ayuda de Programación General, Informática, IRC y mIRC Scripting.

Foro de Artesanías, Recetas de cocina, Ropa para perros, Tejidos, Bijouterie, Porcelana, Chocolatería, Fondos de pantalla, Noticias, Belleza, Medicina natural, Videos y Programas: http://www.misartesanias.net/

Suki

Depende enteramente de lo que realmente queires hacer.

Si lo que realmente buscas es una forma de mostrar los avatares en el theme que estás haciendo no va a ser posible, necesitarías crear un mod aparte.

Pero para poder ayudarte mejor se necesitaría saber que es en relaidad lo que quieres, para que lo quieres?  para tu uso personal? para algún theme que estás haciendo?  dependiendo de lo que quieras hacer es será la respuesta.
Disclaimer: unless otherwise stated, all my posts are personal and does not represent any views or opinions held by Simple Machines.

vicram10

solo hay que usarlo si los datos que necesitas no estan en cualquiera de las variables que SMF ya los guarda por defecto, este tipo de consultas lo unico que hace es mandar mas selects e informacion contra la base de datos.

pero asi como dice Suki, es mejor usarlo con el array asi te ahorras consultas, en 1 solo ya tienes de varios, en vez de hacer 1 en 1...

Advertisement: