Documentación de FM Helper

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 objetos Promise 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 opcional expiracy 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 valor 0, la información no será cacheada y el valor actual será siempre obtenido.

Objetos

  • User: Representa a un usuario del foro. Métodos como H.getUser() o propiedades como H.user devuelven objetos User.

    Propiedades

    • id: Un entero con la ID del usuario.
    • username: Una cadena de texto con el nombre del usuario
    • avatar: La url del avatar del usuario como string.
    • rank: El rango del usuario. Ten en cuenta que puede contener HTML. Véase el método getRankAsText().
    • posts: Un entero con el número de mensajes del usuario
    • level: Una cadena de texto que representa el nivel de un usuario (puede ser mod, admin, user o guest 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 ser null si el usuario no está en ningún grupo o undefined 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 a H.getGroups() en segundo plano. Si el método es llamado desde el objeto currentUser, una llamada a H.getUser() también será realizada. Todo esto con la configuración por defecto de CACHE_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 como H.getGroups() o User.prototype.getGroup devuelven objetos Group.

    Propiedades

    • id: El identificador del grupo
    • name: El nombre del grupo
    • color: 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 de CACHE_EXPIRACY.
    • getURL(): Devuelve una cadena de texto con una URL válida al grupo.

Propiedades disponibles

  • H.user y su atajo H.u. Contiene un objeto User 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 con H.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 llamada document.ready para poder usarlos.
  • H.isLoggedIn(): Devuelve true 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 son admin, mod, user o guest.
  • H.getUser(id[, cb] [, expiracy]): Devuelve un objeto Promise a un objeto User del usuario con id id. 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 objeto User resultante como parámetro de entrada.
    • Un argumento expiracy puede ser proporcionado para sobreescribir la configuración por defecto de CACHE_EXPIRACY. Esto puede ser marcado como 0 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.
    Atención: Debido a algunas limitaciones, la propiedad level y, en consecunecia, el método getLevel() siempre devolverán undefined.
  • H.getVersion(): Devuelve una cadena de texto con la versión del foro. Los valores posibles son phpBB3, phpBB2, PunBB, Invision y ModernBB. Depende del DOM
  • H.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 propiedad datacon 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 evento load 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 objetos Group.
    • 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ón CACHE_EXPIRACY.
  • H.currentUser(property): Devuelve el valor de la propiedad property del objeto currentUser. Es equivalente a H.user['property'] o H.user.property. Solo disponible si el usuario está conectado.