Ir para conteúdo
Fórum Script Brasil
  • 0

Picasa / Javascript


rpgmem

Pergunta

Sr's

A algum tempo queria criar um photolog para o fórum que administro (em phpbb), e meu primeiro pensamento veio os recursos do Picasa (do google). Um ferramenta versátil e que atende bem a quase todas as necessidades de uma boa galeria de imagens e o principal, apesar de ser um sistema proprietário é de fácil utilização (por parte dos usuários) e de fácil integração (usando API's que o próprio google disponibiliza).

Então comecei a pesquisar sobre coisas já criadas em relação a albuns do picasa em sites, e achei uma aplicação pronta em javascript que atendia bem ao que eu estava pensando em fazer no fórum.

Depois de analisar descobri que teria alguns problemas para implementa-la, pois ela não é dinâmica, e que teria que alterar a aplicação para fazer com que ela rodasse dinâmicamente (afinal eu tenho um photolog para cada usuário do fórum). Alem desta modificação eu teria que passar a variável de um campo personalizado do fórum, para a aplicação.

Após muito pensar eu resolvi fazer as coisas por partes, primeiro eu modifiquei a aplicação para deixa-la dinâmica, como citei, pegando um parâmetro da URL e usando o mesmo para abrir o photolog (neste caso o parâmetro é o próprio usuário do picasa). E assim eu fiz, tratando o arquivo "picasaViewer.js" e incluindo as linhas abaixo:

/*
    Função para pegar parâmetro da URL
    Ex: http://www.forum.mtgbr.com/photolog/profile.php?id=PICASA_ID
    Pode ser usado "&" para separar demais parâmetros
    Usar getVar("NomeDaVariavelASerPega")
*/
function urlDecode(string, overwrite){
        if(!string || !string.length){
                return {};
        }
        var obj = {};
        var pairs = string.split('&');
        var pair, name, value;
        var lsRegExp = /\+/g;
        for(var i = 0, len = pairs.length; i < len; i++){
                pair = pairs[i].split('=');
                name = unescape(pair[0]);
                value = unescape(pair[1]).replace(lsRegExp, " ");
                //value = decodeURIComponent(pair[1]).replace(lsRegExp, " ");
                if(overwrite !== true){
                        if(typeof obj[name] == "undefined"){
                                obj[name] = value;
                        }else if(typeof obj[name] == "string"){
                                obj[name] = [obj[name]];
                                obj[name].push(value);
                        }else{
                                obj[name].push(value);
                        }
                }else{
                        obj[name] = value;
                }
        }
        return obj;
}


function getVar(param){
        var wl = window.location.href;
        var params = urlDecode(wl.substring(wl.indexOf("?")+1));
        return(params[param]);
}


/*
    picasaViewer v1.0 - mooTools script to embed a picasa gallery in your website
    Lennart Pilon (http://pilon.nl)    
*/
window.addEvent('domready', function() {
    var username    = getVar("id");
Depois disto teria que implementar modificações para que a variável da URL fosse a mesma do usuário. Cheguei a fazer conjecturas malucas de como pegar a variável do banco de dados e afins e demorou bastante tempo para perceber que poderia ser feito de uma maneira mais simples do que investigar o código do PHPbb inteiro. Basicamente eu criei um BBCode que geraria a URL do photolog, ela pode variar conforme suas necessidades:
BBCode: [photolog]{SIMPLETEXT}[/photolog]

Html:<a href="http://forum.mtgbr.com/photolog/profile.php?id={SIMPLETEXT}" target="_blank">My PhotoLog</a>

Depois eu teria que integrar isto ao profile do usuário e para isto usei os campos personalizados do PHPbb (custom profile fields).

Após começar a usa-lo eu percebi que este campo não aceitava o BBCode. E lá fui eu atras de uma nova solução.

1 - Instalei o AutoMod, no PHBbb, para facilitar a minha vida.

2 - Instalei o Mod Parse BBCode in Custom Profile Fields, usando o AutoMod.

3 - Criei o Custom Fields, informando nele que o usuário deveria usar o BBcode (no caso "[photolog]") naquele campo, informando seu usuário do picasa.

Este tipo de aplicação (usando o Mod Parse BBCode in Custom Profile Fields) pode ser usado para diversas simplificações de integração, incluindo Twitter/Facebook etc).

UFA

Porque eu falei isto tudo (alem do obvio que é compartilhar o conhecimento)?

Simples, preciso de uma luz para incluir nesta aplicação a exibição dos comentários feitos nas respectivas fotos e caso um usuário queira comentar uma foto ele possa...

Quanto a isto poderia ser um popup que abre o picasa (original) e lá o user logue e faça o comentário que quiser.

alguém?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,1k
×
×
  • Criar Novo...