SMF Support > Español (Spanish)

¿Se pueden crear familias de Rangos según el conteo de mensajes?

(1/2) > >>

egnaro:
Hola a todos!

Estoy montando un foro y se me ha ocurrido que estaría muy bien que cada usuario pudiera elegir digamos un grupo al que pertenecer, y que según el conteo de sus mensajes tenga un rango dentro de ese grupo mayor o menor.

A ver si me explico,


* Lo normal es que si no perteneces a un grupo en concreto (usuario normal vaya), vayas subiendo de rango según los mensajes que escribes (novato, profesional, jefe, etc....).
* O bien puedes elegir un grupo del foro (si los hay y son abiertos), y tener ese rango siempre contigo dando igual los mensajes que lleves.
Lo que yo quiero es que en mi foro, el usuario pueda elegir un grupo (digamos por ejemplo que se une al grupo de "Magos") y dentro de ese grupo vaya subiendo de nivel conforme escribe más mensajes (aprendiz (50), hechicero (100), mago (150), etc...). Mientras que otro usuario puede elegir otro grupo (Guerreros, por ejemplo), e ir subiendo de nivel del mismo modo (Luchador (50), Escudero (100), Caballero (150), etc...).

Espero haberme explicado bien.

Creo que podría molar, no? Se podría hacer de algún modo?

Diego Andrés:
Suena bien la idea, lamentablemente en smf eso no es posible por el momento

egnaro:

--- Quote from: Diego Andrés on July 24, 2012, 12:28:21 PM ---Suena bien la idea, lamentablemente en smf eso no es posible por el momento

--- End quote ---

Vaya....

Gracias de todas formas, hubiera molado.

fre3men:
Puedes hacerlo manualmente y sin complicarte mucho si lo único que va a hacer es reemplazar un texto. No obstante no lo he probado, tan solo lo he desarrollado mientras escribía esta misma respuesta y porque en teoría debería funcionar (si hay algún error, simplemente habría que depurarlo).


Modificación y creación de código

Debes modificar el archivo Display.template.php en Themes/default (nunca antes de hacer un backup del mismo).

En Display.template.php has de buscar esto:


--- Code: --- // Don't show these things for guests.
if (!$message['member']['is_guest'])
{
// Show the post group if and only if they have no other group or the option is on, and they are in a post group.
if ((empty($settings['hide_post_group']) || $message['member']['group'] == '') && $message['member']['post_group'] != '')
echo '
<li class="postgroup">', $message['member']['post_group'], '</li>';

--- End code ---

Has de sustituir ', $message['member']['post_group'], ' por esto:


--- Code: ---', $txt['mod_groups'][$message['member']['group']][$message['member']['post_group']], '
--- End code ---

Ahora en index.english.php (y de cualquier otro idioma instalado), deberés añadir al final del archivo esto:


--- Code: ---$txt['mod_groups'] = array(
'Mago' => array(
'Grupo 1' => 'Aprendiz',
'Grupo 2' => 'Hechicero',
'Grupo 3' => 'Mago',
),
'Guerrero' => array(
'Grupo 1' => 'Luchador',
'Grupo 2' => 'Escudero',
'Grupo 3' => 'Caballero',
),
);
--- End code ---


Explicación más detallada

Para que funcione, debes crear los grupos primarios (regulares) de Mago y Guerrero (y/o más grupos que quieras, Ladrón, Alquimista...), y luego crear los grupos de conteo de la forma siguiente: Grupo 1, Grupo 2, Grupo 3... A estos grupos les asignas la cantidad de mensajes. Han de tener exactamente ese nombre, o los nombres que se han utilizado como índice del array, cambiarlos por los nombres de los grupos de conteo (en fin, que han de coincidir exactamente).

Este mod lo único que hará es bucar en un array (matriz) multidimensional, usando como primer índice el nombre del grupo regular al que pertenece el usuario y luego dentro de él, el índice con el nombre del grupo de conteo según los mensajes que tenga el usuario y mostrará el texto de la variable.

NOTA: No verifico que existen los índices en la matriz, así que si no pones bien los nombres de los grupos (al crearlos en la Base de Datos desde la Administración del SMF y escribirlos en el archivo de Idioma), te dará un error de variable no definida (en el apartado LOGS del SMF) y no mostrará ningún nombre de grupo.


Un saludo.

egnaro:
Hola tío,

Agredezco enormemente tu respuesta, pero por más que lo he probado no consigo dar en la tecla, no funciona.

El primer fallo que noto al cambiarlo todo es que pierdo la codificación (Spanish Es UTF-8), por lo que las tíldes y eso salen "raras", además tampoco funciona, solo me muestra el propio grupo regular, pero no el de conteo de mensajes.

He modificado los archivos:
- display.index.php
- index.english.php
- index.spanish_es-utf8

No se si debería haber cambiado otros idiomas o cual era el problema. He probado a elegir el idioma del foro "English" pero tampoco funcionaba.

Un saludo.

Navigation

[0] Message Index

[#] Next page

Go to full version