x7iBiT
Miembro
Bueno, este es mi primer (y único) complemente que hecho para XenForo. Se trata de un generador de GamerCard de un tamaño adecuado para el user_info de la izquierda de cada post. El resultado es una imagen PNG como esta:
Utiliza el "PHP Simple HTML DOM Parser" para sacar la información de cada perfil de la página oficial de Xbox:
http://gamercard.xbox.com/en-US/x7iBiT.card
Y luego con el nick/id (que se supone que ya lo tenemos), la imagen del avatar y los juegos, y la puntuación se compone la imagen usando las librerías GD de PHP.
Instalación:
PD: Todas las imágenes que usa este complemento, las cuales están en styles/XboxCard/, se pueden cambiar, aunque habría que respetar los tamaños y formatos de imagen para que no pasasen cosas raras. La lista de imágenes es la siguiente:
Utiliza el "PHP Simple HTML DOM Parser" para sacar la información de cada perfil de la página oficial de Xbox:
http://gamercard.xbox.com/en-US/x7iBiT.card
Y luego con el nick/id (que se supone que ya lo tenemos), la imagen del avatar y los juegos, y la puntuación se compone la imagen usando las librerías GD de PHP.
Instalación:
- Por FTP subir todo el contenido de la carpeta upload del zip al directorio donde está instalado XenForo
- Crear un directorio en la raiz llamado cache, que a su vez tenga otro directorio llamado XboxCard, ya que precisamente en /cache/XboxCard/ es donde se irán guardando las imágenes (cada imagen pesa 10/11 kb, así que no hay que preocuparse mucho por el espacio). Importante que ambos directorios tengan permisos de escritura
- Instalar el XML del complemento
- Crear un campo personalizado simple con el el ID de Xbox Live, cosa que no tiene mucha complicación siguiendo el video puesto aquí. El fieldId del campo lo llamararemos por ejemplo XboxLive
- Editar la plantilla message_user_info reemplazando:
HTML:<xen:if is="@messageShowCustomFields AND {$user.customFields}"> <xen:hook name="message_user_info_custom_fields" params="{xen:array 'user={$user}', 'isQuickReply={$isQuickReply}'}"> <xen:foreach loop="$userFieldsInfo" key="$fieldId" value="$fieldInfo"> <xen:if is="{$fieldInfo.viewable_message}"> <xen:if hascontent="true"> <dl class="pairsInline userField_{$fieldId}"> <dt>{xen:helper userFieldTitle, $fieldId}:</dt> <dd><xen:contentcheck>{xen:helper userFieldValue, $fieldInfo, $user, {$user.customFields.{$fieldId}}}</xen:contentcheck></dd> </dl> </xen:if> </xen:if> </xen:foreach> </xen:hook> </xen:if>
por:
HTML:<xen:if is="@messageShowCustomFields AND {$user.customFields}"> <xen:hook name="message_user_info_custom_fields" params="{xen:array 'user={$user}', 'isQuickReply={$isQuickReply}'}"> <xen:foreach loop="$userFieldsInfo" key="$fieldId" value="$fieldInfo"> <xen:if is="{$fieldInfo.viewable_message}"> <xen:if hascontent="true"> <xen:contentcheck> <dl class="pairsInline userField_{$fieldId}"> <dt>{xen:helper userFieldTitle, $fieldId}:</dt> <dd> <xen:if is="{$fieldId} == 'XboxLive'"> <xen:hook name="message_user_info_extra_xbox" params="{xen:array 'xbox={xen:helper userFieldValue, $fieldInfo, $user, {$user.customFields.{$fieldId}}}'}"></xen:hook> <xen:else /> {xen:helper userFieldValue, $fieldInfo, $user, {$user.customFields.{$fieldId}}} </xen:if> </dd> </dl> </xen:contentcheck> </xen:if> </xen:if> </xen:foreach> </xen:hook> </xen:if>
PD: Todas las imágenes que usa este complemento, las cuales están en styles/XboxCard/, se pueden cambiar, aunque habría que respetar los tamaños y formatos de imagen para que no pasasen cosas raras. La lista de imágenes es la siguiente:
- gamerCard_BG.png => el fondo del GamerCard.
- gamerCard_A.png => avatar por defecto para cuando el usuario no tienen ninguno definido.
- gamerCard_X.png => imagen del juego por defecto para cuando el usuario no tiene ningún juego jugado o tiene deshabilitado en privacidad que estos se muestren.
- gamerCard_G.png => el símbolo G de la puntuación.