seiti.eti.br : Gallery2

RSS

Seu álbum em Seu website


 

O Gallery2 (G2) é um organizador de álbuns de fotos online. Ele é livre, de código aberto e escrito em PHP. O mais legal deste sistema é que ele pode ser estendido e embarcado facilmente através da manipulação e edição de seus plugins.


Integrando o Gallery2 com o WordPress


Utilizo agora o fantástico Wordpress como plataforma de blogging. Só falta integrá-lo ao restante do meu site. Faltava! Existe um plugin do WP que faz todo o trabalho, o WPG2.
Mas antes é preciso instalar o seguintes plugins do G2:

Depois basta instalar o WPG2 e visitar a página de administração do WP, para terminar sua configuração.
No meu caso não tive de configurar quase nada, apenas o URL rewrite. E também liberar o .htaccess para escrita por parte do servidor web.

Agora o G2 pode ser visitado através da página meublog/wpg2. Mas eu gostaria que fosse algo do tipo meublog/fotos, ou algo assim. Bom, basta entrar no painel admnistrativo do WP e buscar pela página wpg2. Edite seu título para outra coisa e pronto!

Só resta um hack, a fim de possibilitar que o WPG2 apresente um tema diferente da instalação stand-alone do G2. Para isto é necessário que você tenha instalado ao menos dois temas em seu G2.

Configure no G2 o tema a ser utilizado pelo WPG2. Vamos supor que este tema seja o siriux. Abra o arquivo theme.inc do tema escolhido (que estará em gallery2/themes/siriux/).

Encontre a linha que configura o ID do tema e modifique-o de:
$this->setId('siriux');


Para:
$this->setId('siriux');
if(strstr($_SERVER['REQUEST_URI'],'main.php')) $this->setId('matrix');


Salve o arquivo. Isto fará com que o siriux seja o tema padrão do WPG2 e o matrix da instalação stand-alone.

Referências: configurando a URL do WPG2 e tema separado para o WPG2


Integrando o Gallery2 com o WikkaWiki



Gallery2 é um sistema de armazenamento e gerenciamento de imagens baseado na web. WikkaWiki, ou Wikka, é uma implementação de um wiki em PHP/MySQL que prima pela simplicidade na instalação, no uso e na administração.

Para integrar o Gallery no Wikka é preciso criar um arquivo que sirva de ponte entre os dois sistemas. Resolvi então criar uma action chamada foto:

fotos.php
<?php
/**
 * A wrapper that makes the gallery2/wikkawiki integration.
 * Gallery2 is a photo gallery written in PHP.
 * More about gallery2 integration can be seen here:
 * http://codex.gallery2.org/Gallery2:Embedding:Integration
 *
 * @author Seiti Yamashiro <seiti@seiti.eti.br>
 */

 
require_once($_SERVER['DOCUMENT_ROOT'].'/fotos/embed.php'); //To make the integration with Gallery2
 
$ret = GalleryEmbed::init(
    array(
        'embedUri' => 'http://'.$_SERVER['SERVER_NAME'].'/wiki/wikka.php?wakka=Fotos&',
        'g2Uri' => 'http://'.$_SERVER['SERVER_NAME'].'/fotos',
        'loginRedirect' => 'http://'.$_SERVER['SERVER_NAME'].'/wiki/wikka.php?wakka=UserSettings',
        'activeUserId' => Wakka::GetUser() == null ? '' : Wakka::GetUserName()
    ));
   
$ret = GalleryEmbed::done();

GalleryCapabilities::set('showSidebarBlocks', true);
GalleryCapabilities::set('login', false);
$g2data = GalleryEmbed::handleRequest();

if ($g2data['isDone']) {
  exit; // Gallery 2 has already sent output (redirect or binary data)
}

// Use $g2data['headHtml'] and $g2data['bodyHtml']
// to display Gallery 2 content inside embedding application
// if you don't want to use $g2data['headHtml'] directly, you can get the css,
// javascript and page title separately by calling...
if (isset($g2data['headHtml'])) {
  list($g2title, $g2css, $g2javascript) = GalleryEmbed::parseHead($g2data['headHtml']);
}
?>

<? foreach ($g2css as $css) print $css; ?>
<link rel="stylesheet" type="text/css" href="/fotos/themes/seiti/theme.css"/><style type="text/css">


<div style="float: right"><?=$g2data['sidebarHtml']?></div>
<?=$g2data['bodyHtml']?>


Basta colocar este arquivo na pasta actions do WikkaWiki e inserir na página que desejar a tag {fotos}. Note que, devido ao modo que a action foi escrita, o Gallery embarcado só funcionará corretamente dentro de uma página chamda Foto.

E lembre-se: CRIE SEU USUÁRIO NO GALLERY2, utilizando o método GalleryEmbed::createUser() (veja mais métodos na API do GalleryEmbed).
Uma solução seria modificar o seguinte trecho no código acima, logo após a chamada ao método GalleryEmbed::init:

...
$wakkaUser = Wakka::GetUser();
if ($ret && $wakkaUser != null)
{
    $ret = GalleryEmbed::createUser($wakkaUser['name'], array(
            'username' => $wakkaUser['name'],
            'email' => $wakkaUser['email'],
            'hashedpassword' => $wakkaUser['password'],
            'hashmethod' => 'md5')
        );
    if (!$ret)
        GalleryEmbed::checkActiveUser(Wakka::GetUserName());
}

$ret = GalleryEmbed::done();
...


Isto criará o usuário, caso ele não exista.

Depois é só integrar os dois sistemas visualmente, editar os templates usados no Gallery2, alguma coisa no css, testar tudo no Wikka...

Referências: http://gallery.menalto.com/forum/g2_integration

Editando um tema


O Gallery2 vem com um sistema de temas bem robusto e flexível. Pode-se fazer quase tudo com um tema, o porém é que toda esta flexibilidade o torna bem complexo também.

Por exemplo, para se efetuar pequenas modificações basta criar uma pasta local no diretório templates do tema em questão, copiar o template a ser modificado, e depois editá-lo. Para editá-lo é preciso ter um conhecimento razoável de templates Smarty, PHP e da API do Gallery2. Mas com a ajuda do Google tudo é possível.

E caso seja preciso editar os templates referentes às páginas administrativas, então o caminho a ser seguido para encontrar os respectivos templates é <gallery2dir>/modules/core/templates/.



Categorias: Programação Sistemas
Comments [Hide comments/form]

Page was generated in 0.3552 seconds