Documentación de FM Helper
Tabla de contenidos
FM Helper es una librería de métodos y propiedades con la finalidad de hacer el desarrollo en Foroactivo más sencillo. Estos métodos devuelven la información más común necesaria a la hora de crear scripts.
En esta librería están disponibles un objeto a través de las variables globales
H
y _
, también a través de su contenedor original FLX.helper
, teniendo que escribir más caracteres.
Configuración por defecto
CACHE_EXPIRACY
:30
días por defecto. Muchos de los métodos de esta librería utilizan AJAX detrás de los objetosPromise
para devolver información desde los servidores de Foroactivo. Estas operaciones son más o menos costosas, por lo que para evitar tener que realizarlas para obtener información básica, un sistema de cache ha sido implementado en cada petición.Esto significa que no tienes que preocuparte de ningún tipo de agujero de eficiencia cuando utilizas los métodos de FM Helper. Sin embargo, puede haber casos en los que necesites tener siempre la última versión de la información. Para estos casos se proporciona la posibilidad de añadir un argumento opcionalexpiracy
en los métodos, el cual se corresponde al número de días máximos para que la información cacheada se considere caduco. Obviamente si este argumento toma el valor0
, la información no será cacheada y el valor actual será siempre obtenido.
Objetos
User
: Representa a un usuario del foro. Métodos comoH.getUser()
o propiedades comoH.user
devuelven objetosUser
.Propiedades
id
: Un entero con la ID del usuario.username
: Una cadena de texto con el nombre del usuarioavatar
: La url del avatar del usuario como string.rank
: El rango del usuario. Ten en cuenta que puede contener HTML. Véase el métodogetRankAsText()
.posts
: Un entero con el número de mensajes del usuariolevel
: Una cadena de texto que representa el nivel de un usuario (puede sermod
,admin
,user
oguest
para moderadores, administradores, usuarios e invitados respectivamente).color
: Una cadena de texto con el color del usuario en el formato por defecto del navegador del usuario. Puede sernull
si el usuario no está en ningún grupo oundefined
si no se ha podido calcular.
Métodos
getRankAsText()
: Devuelve el texto del rango del usuario sin ningún tipo de HTML.getGroup()
: Devuelve una promesa con el grupo del usuario. Realiza una llamada aH.getGroups()
en segundo plano. Si el método es llamado desde el objetocurrentUser
, una llamada aH.getUser()
también será realizada. Todo esto con la configuración por defecto deCACHE_EXPIRACY
.getURL()
: Devuelve una cadena de texto con una URL válida al perfil del usuario.
Group
: Representa a un grupo de usuarios. Métodos comoH.getGroups()
oUser.prototype.getGroup
devuelven objetosGroup
.Propiedades
id
: El identificador del gruponame
: El nombre del grupocolor
: El color del grupo en el formato por defecto del navegador
Métodos
getMemberAmount([cb] [, expiracy])
: Devuelve una promesa con el número de miembros que pertenecen al grupo.- Un argumento de callback
cb
puede ser proporcionado para ser llamado una vez que la promesa sea resuelta. Esta función callbackautomáticamente recibe el resultado como parámetro de entrada. - Un argumento
expiracy
puede ser proporcionado para sobreescribir la configuración por defecto deCACHE_EXPIRACY
.
- Un argumento de callback
getURL()
: Devuelve una cadena de texto con una URL válida al grupo.
Propiedades disponibles
H.user
y su atajoH.u
. Contiene un objetoUser
que representa el usuario actualmente conectado. Estas propiedades solo estarán disponibles si el usuario está conectado. Puedes comprobar si el usuario está conectado y, en consecuencia, si estas propiedades están disponibles conH.isLoggedIn()
.
Métodos disponibles
Algunos de los métodos pueden depender en el DOM para funcionar. Esto significa que el usuario deberá utilizarlos dentro de una llamadadocument.ready
para poder usarlos.
H.isLoggedIn()
: Devuelvetrue
si el visitante es un usuario conectado. Es equivalente a(H.user == true)
.H.userLevel()
: Devuelve una cadena de texto con el nivel del usuario actual. Los valores posibles sonadmin
,mod
,user
oguest
.H.getUser(id[, cb] [, expiracy])
: Devuelve un objetoPromise
a un objetoUser
del usuario con idid
. Una petición AJAX está siendo usada por detrás.- Un argumento de callback
cb
puede ser proporcionado para ser llamado una vez que la promesa sea resuelta. Esta función callbackautomáticamente recibe el objetoUser
resultante como parámetro de entrada. - Un argumento
expiracy
puede ser proporcionado para sobreescribir la configuración por defecto deCACHE_EXPIRACY
. Esto puede ser marcado como0
para que no se cachee el usuario. Útil si se necesita fiabilidad de que se está obteniendo siempre el valor más actual del número de mensajes del usuario, por ejemplo.
level
y, en consecunecia, el métodogetLevel()
siempre devolveránundefined
.- Un argumento de callback
H.getVersion()
: Devuelve una cadena de texto con la versión del foro. Los valores posibles sonphpBB3
,phpBB2
,PunBB
,Invision
yModernBB
. Depende del DOMH.get(url [, options])
: Wrapper sobre una llamada AJAX utilizando la API de Fetch. Devuelve automáticamente el objeto documento de la página sobre la que se ha hecho la petición. Admite los siguientes argumentos:url
: Una cadena de texto con la URL sobre la que hacer la petición.options
: Un objeto con las opciones. Puede tener una propiedaddata
con otro objeto representando las query a enviar con la URL o y cualquier otra propiedad equivalentes a las opciones de la API Fetch.
H.enableDebugMode()
: Pone el foro en «Modo depuración», el cual evita que el CSS sea guardado en cache por los navegadores. Muy útil cuando se están desarrollando skins y al actualizar no aparecen los cambios.H.slugify(str)
: Transforma una cadena de texto en otra cadena que se puede utilizar en URLs. Los acentos son eliminados, los espacios y otros caracteres especiales son reemplazados por guiones. Los guiones contiguos entre ellos son eliminados.H.attachScriptToChat(fn)
: Ejecuta una función en el DOM de todos lso chatboxes una vez el eventoload
ha sido lanzado en ellos. Por favor, ten en cuenta que debido a limitaciones de Foroactivo, la función será solo ejecutada en los chatbox embedidos (incrustados) y no en el accesible en la dirección/chatbox
.H.getGroups([cb] [, expiracy])
: Devuelve una promesa con un vector que contiene todos los grupos del foro como objetosGroup
.- Si una función callback
cb
es proporcionada, esta será ejecutada una vez la promesa sea resuelta y recibirá el resultado de la misma como parámetro de entrada. - Si el argumento
expiracy
es proporcionado, entonces se sobreescribirá el valor por defecto de la opciónCACHE_EXPIRACY
.
- Si una función callback
H.currentUser(property)
: Devuelve el valor de la propiedadproperty
del objetocurrentUser
. Es equivalente aH.user['property']
oH.user.property
. Solo disponible si el usuario está conectado.