[Duda] ¿Dónde se encuentra el siguiente context (avatar)?

Started by Jotade29, April 25, 2022, 09:06:23 PM

Previous topic - Next topic

Jotade29

Buenas, estoy buscando dónde está definido "$context['user']['avatar']['image']", que necesito retocar un poco la etiqueta que lo contiene.

Gracias.

Diego Andrés


SMF Tricks - Free & Premium Responsive Themes for SMF.

Jotade29

Buenas, Diego.

Como siempre, gracias por responder. No lo encuentro ahí, así que seguiré buscando. Siempre se me olvida especificarlo, pero la versión que uso es la 2.0.19.

Diego Andrés

Así es, lo busqué en 2.0.x antes de responder.

'image' => $profile['avatar'] == '' ? ($profile['id_attach'] > 0 ? '<img class="avatar" src="' . (empty($profile['attachment_type']) ? $scripturl . '?action=dlattach;attach=' . $profile['id_attach'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $profile['filename']) . '" alt="" />' : '') : ((stristr($profile['avatar'], 'http://') || stristr($profile['avatar'], 'https://')) ? '<img class="avatar" src="' . $profile['avatar'] . '"' . $avatar_width . $avatar_height . ' alt="" />' : '<img class="avatar" src="' . $modSettings['avatar_url'] . '/' . htmlspecialchars($profile['avatar']) . '" alt="" />'),
También en Subs.php tienes otra instancia:
$context['user']['avatar']['image'] = '<img src="' . $context['user']['avatar']['href'] . '"' . (isset($context['user']['avatar']['width']) ? ' width="' . $context['user']['avatar']['width'] . '"' : '') . (isset($context['user']['avatar']['height']) ? ' height="' . $context['user']['avatar']['height'] . '"' : '') . ' alt="" class="avatar" />';

SMF Tricks - Free & Premium Responsive Themes for SMF.

Jotade29

Quote from: Diego Andrés on April 25, 2022, 09:54:45 PMAsí es, lo busqué en 2.0.x antes de responder.

'image' => $profile['avatar'] == '' ? ($profile['id_attach'] > 0 ? '<img class="avatar" src="' . (empty($profile['attachment_type']) ? $scripturl . '?action=dlattach;attach=' . $profile['id_attach'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $profile['filename']) . '" alt="" />' : '') : ((stristr($profile['avatar'], 'http://') || stristr($profile['avatar'], 'https://')) ? '<img class="avatar" src="' . $profile['avatar'] . '"' . $avatar_width . $avatar_height . ' alt="" />' : '<img class="avatar" src="' . $modSettings['avatar_url'] . '/' . htmlspecialchars($profile['avatar']) . '" alt="" />'),
También en Subs.php tienes otra instancia:
$context['user']['avatar']['image'] = '<img src="' . $context['user']['avatar']['href'] . '"' . (isset($context['user']['avatar']['width']) ? ' width="' . $context['user']['avatar']['width'] . '"' : '') . (isset($context['user']['avatar']['height']) ? ' height="' . $context['user']['avatar']['height'] . '"' : '') . ' alt="" class="avatar" />';

Encontrado en subs, muchas gracias. Aprovecho para hacer otra consulta sin abrir otro hilo. Verás, en el display.template quiero que el usuario que el usuario que postea en un tema, vea un dato SUYO, el problema es que no sé cómo poner la condición, ¿hay algún context definido que haga alusión a ello?

"$context['topic_starter_id'] == $user_info['id']" Esta condición solo es aplicable a si la id del usuario es igual a la id del usuario que ha creado un tema, pero necesito que sea CUALQUIERA de los mensajes que publique.

Muchas gracias.

Diego Andrés

Estás en la variable equivocada entonces.
Lo que buscas utilizar es $message['member']['id'], dentro del while obviamente.

SMF Tricks - Free & Premium Responsive Themes for SMF.

Jotade29

Quote from: Diego Andrés on April 25, 2022, 10:18:54 PMEstás en la variable equivocada entonces.
Lo que buscas utilizar es $message['member']['id'], dentro del while obviamente.

Esa misma. Muuchas gracias :)

Dhayzon

te recomiendo no modificar nada dentro de la carpeta /source/ espero que lo tengas presente, quiero evitarte un dolor de cabeza al momento de hacer algún tipo de actualización futuro....

para modificar cualquier dato  dentro de $context lo que yo hago es algo como esto
https://www.simplemachines.org/community/index.php?topic=582005.msg4121915#new

directamente en mi plantilla "index" q es la que se carga en la mayoría de lugares creo una funcion  y llamo esa funcion en el lugar donde lo necesito, y dentro de esa funcion...claro primero  verifico que exista el valor en este caso con un isset $context['user']['avatar']['image']

y si quiero agregarle un div una clase o lo que sea puedo usar un regex par modificar ese string

si estas creando un mod usa los hooks para no usar este tipo de hacks, te lo comento por las dudas, yo tengo que meterle una linea y en cada actualización me molesta tener q entrar al cpanel buscar el archivo y hacer la modificacion manualmente.

si hay algo que se puede hacer sin meterse con los archivos del /source/  hazlo, si no lo haces te esperan dolores de cabeza en el futuro jajaj

Jotade29

Quote from: Dhayzon on April 26, 2022, 10:54:25 AMte recomiendo no modificar nada dentro de la carpeta /source/ espero que lo tengas presente, quiero evitarte un dolor de cabeza al momento de hacer algún tipo de actualización futuro....

para modificar cualquier dato  dentro de $context lo que yo hago es algo como esto
https://www.simplemachines.org/community/index.php?topic=582005.msg4121915#new

directamente en mi plantilla "index" q es la que se carga en la mayoría de lugares creo una funcion  y llamo esa funcion en el lugar donde lo necesito, y dentro de esa funcion...claro primero  verifico que exista el valor en este caso con un isset $context['user']['avatar']['image']

y si quiero agregarle un div una clase o lo que sea puedo usar un regex par modificar ese string

si estas creando un mod usa los hooks para no usar este tipo de hacks, te lo comento por las dudas, yo tengo que meterle una linea y en cada actualización me molesta tener q entrar al cpanel buscar el archivo y hacer la modificacion manualmente.

si hay algo que se puede hacer sin meterse con los archivos del /source/  hazlo, si no lo haces te esperan dolores de cabeza en el futuro jajaj

Hola Dhayzon, el consejo que has dado es absolutamente necesario llevarlo a cabo, y doy fe ciega de ello porque e ha pasado varias veces ya, que modifico algo, y luego al instalar un mod, me busca una línea que he modificado, y no me la añade, y tengo que buscar y poner manualmente. Por ello, he optado a crear otro context para la imagen de avatar.

Gracias de nuevo ^^

Advertisement: