Widget:Game link

De Guild Wars 2 Wiki
Ir a la navegaciónIr a la búsqueda

Descripción

Este widget coge una ID y genera un código de chat. Es utilizado por la Plantilla:Game link.

Parámetros

tipo
El tipo de enlace. Posibles valores: objeto, mapa, habilidad, rasgo, receta, diseño, atuendo, texto
id
El identificador del "item": el atributo Has game id.

Ejemplos

:{{habilidad icono|Postura desafiante}}: {{#widget:Game link|type=habilidad|id=21815}}
Postura desafiante.png Postura desafiante:

Notes

  • The javascript embedded by this widget has been minified. The full un-minified code is provided below:
(function (elementId) {
    var link = document.getElementById(elementId);
    if (!link) {
        return;
    }
    
    function encodeChatLink2(type, id) {
        if (!type) {
            return 'tipo no válido';
        }
        
        var linkTypes = { objeto: 2, texto: 3, mapa: 4, habilidad: 6, rasgo: 7, receta: 9, diseño: 10, atuendo: 11 };
        type = linkTypes[type.trim().toLowerCase()] || 0;
        if (!type) {
            return 'tipo no válido';
        }

        var data = [];
        while (id > 0) {
            data.push(id & 255);
            id = id >> 8;
        }
        while (data.length < 4 || data.length % 2 != 0) {
            data.push(0);
        }

        if (type == 2) {
            data.unshift(1);
        }
        data.unshift(type);

        // Encode data
        var binary = '';
        for (var i = 0; i < data.length; i++) {
            binary += String.fromCharCode(data[i]);
        }
        
        // Note "btoa" function isn't supported in IE, however Mediawiki removes
        //  all javascript in IE anyway, so no polyfill required.
        return '[&' + btoa(binary) + ']';
    }
    
    var chatLink = encodeChatLink2(link.getAttribute('data-type'), +link.getAttribute('data-id'));
    var input = document.createElement('input');
    input.className = 'chatlink';
    input.type = 'text';
    input.value = chatLink;
    input.readOnly = true;
    input.spellcheck = false;

    link.appendChild(document.createTextNode(chatLink));
    link.parentNode.insertBefore(input, link);

    link.addEventListener('click', function () {
        this.style.visibility = 'hidden';
        input.style.display = 'inline-block';
        input.focus();
        input.select();
        document.execCommand('Copy');
    }, false);
    input.addEventListener('blur', function () {
        this.style.display = null;
        link.style.visibility = null;
    }, false);
})('gamelink-<!--{$GameLink_counter}-->');