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:
<?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
Últimos comentários
Últimas modificações
Seiti Yamashiro
Cursando ciência da computação no IME-USP. Atualmente desenvolvo sistemas em PHP/Smarty e PostgreSQL.Nas horas vagas programo em PHP/MySQL ou Fenix, neste site e no da Abeuni.
Nas horas vagais jogando GP2X ou navegando na internet...