Tags:

Usando WordPress no ambiente corporativo

Nos últimos anos, a MATERA utilizou vários meios de comunicação interna, cada um com uma finalidade específica. Deste modo, foi possível que os usuários compartilhassem ideias, experiências e informações relacionadas à empresa e seu cotidiano. Porém, muitas vezes, ocorria um desencontro de informações, publicações duplicadas ou até mesmo informações em local inapropriado.

De modo a resolver este problema, a MATERA decidiu centralizar este conteúdo em um único local, onde seus usuários pudessem ler posts, tópicos, postar comentários, imagens, entre outros.

WordPress e seus plugins

Com o objetivo de integrar seus meios de comunicação interna, a MATERA utilizou o WordPress, que é uma aplicação CMS (Content management system) desenvolvido em PHP. Este, hoje largamente utilizado para desenvolvimento de blogs, fóruns, portfólios, redes sociais e até comércio eletrônico, é altamente extensível e personalizável, por ser uma aplicação com código fonte aberto e possuir milhares de plugins e temas disponibilizados pela comunidade.

Um destes plugins é o BuddyPress, que transforma o WordPress em uma rede social. Existem outros plugins que estendem as funcionalidades do próprio BuddyPress, adicionando botões para curtir e hashtags, por exemplo.

Outros plugins permitem a exibição de listas de aniversariantes, criação de enquetes e importação de posts do blog já existente.

Personalização e temas

Através dos temas fornecidos pelo WordPress e com algumas alterações da equipe de marketing da MATERA, é possível deixar a rede social com a cara do ambiente interno da MATERA.

Tema padrão do BuddyPress. (Fonte: http://buddypress.org/showcase/)

Autenticação

A autenticação é baseada no serviço de emails, tornando-se desnecessária a criação de usuários. Assim, ao acessar o WordPress com seu email e senha, o usuário é automaticamente criado, caso ainda não exista na base de dados da aplicação. Esta integração é realizada através de outro plugin do WordPress com algumas alterações da equipe de desenvolvimento da MATERA.

As alterações realizadas utilizaram a API para plugins do WordPress que possui dois tipos de ganchos (hooks) responsáveis pela integração dos plugins com a aplicação:

  • Ações: são trechos de código chamados pelo WordPress quando um determinado ponto é executado ou um determinado evento ocorre;
  • Filtros: são trechos executados para modificar algum dado antes de enviar ao banco de dados ou para a tela do navegador.

O trecho a seguir, adiciona uma ação para modificar a tela de login e um filtro para autenticar o usuário com o servidor de emails:

[sourcecode language=”php”]
add_filter(‘check_password’, ‘my_check_password’), 10, 4);
add_action(‘login_form’, ‘my_login_form’);

function my_check_password($check, $password, $hash, $user_id) {
$user = get_userdata($user_id);
$username = $user->user_login;
$parts = explode("@",$username);
if (count($parts) != 2) {
die(‘Username not an email address.’);
}
$setting = $this->use_email($username);
$authenticator = new EmailAuthenticator();
return $authenticator->authenticate($username,$password);
}

function login_form() {
echo ‘Login with your full email’;
}

[/sourcecode]

Integração com outros sistemas

Sistemas internos que, anteriormente, eram disponibilizados através de uma outra aplicação, agora são integrados, inclusive com mesma autenticação, e disponibilizados em uma página dentro da rede social. Assim, através de um iframe, a MATERA tem uma aplicação Java rodando dentro do WordPress.

Futuro

A aplicação continua em desenvolvimento e novas funcionalidades são sempre adicionadas. Entre as próximas melhorias estão incluídas a integração com o antigo fórum e com sistema de controle de horas da MATERA.

Por GEISER MENOIA

Postado em: 20 de abril de 2012

Confira outros artigos do nosso blog

REST não é JSON

21 de agosto de 2017

Bruno Sofiato

[Webinar] Profile de aplicações Java com Oracle Mission Control e Flight Recorder

24 de julho de 2017

Danival Calegari

Criando Mocks de serviços REST com SoapUI

27 de junho de 2017

Monise Costa

JavaScript 6: diferença entre var, let e const

09 de maio de 2017

Otávio Felipe do Prado

Deixe seu comentário