2. • Johnny Salazar Reidel
• Gaúcho, morador do Rio Grande do Sul
• Gerente de Projetos Web na TI Corporativa da Unisinos
• Desenvolvedor Joomla desde 2006
3. • A Universidade do Vale do Rio dos Sinos – UNISINOS, é
mantida pela rede Jesuítas e possui cerca de 30 mil alunos.
• Possui o campus principal em São Leopoldo, no Rio Grande
do Sul, além de estar presente em outras 10 localidades.
• A área de Tecnologia da Informação é ligada diretamente a
mantida e conta com 92 colaboradores.
4. Por que utilizamos Joomla?
• Estrutura adequada para construções complexas
• Projeto Open Source com vasta contribuição
• Fácil de administrar
Temos 38 sites e 1 portal
rodando em Joomla!!
7. Portal Unisinos 1.0
• Lançado em 2005
• Construído utilizando Mambo
• Chegou a ser migrado até a versão 1.15 do Joomla
• Composto de +/- 300 instalações Mambo / Joomla
8.
9. Portal Unisinos 2.0
• Lançado em 2010
• Construído utilizando Joomla 1.5
• Chegou a ser migrado até a versão 2.5 do Joomla
• Composto de 14 instalações Joomla
• Passou a incluir a área autenticada denominada como
Minha Unisinos
10.
11. Portal Unisinos 3.0
• Lançado em Agosto/2013
• Construído utilizando uma única instalação Joomla 3.1.5
• Possui mais de mais de 7 mil páginas
• Mais de 2,5 milhões de visualizações de páginas/mês
• Aproximadamente 600 mil acessos/mês
• Processamento 77,78% mais rápido que o Portal anterior
16. Como foi o projeto?
• Conceito e Design empresa Brivia e Núcleo Digital da
Universidade
• Desenvolvimento 4 desenvolvedores da TI da Universidade
• Gerenciamento do Projeto utilizado método ágil – SCRUM
• Horas de desenvolvimento 3080 horas
• Período de desenvolvimento 6 meses
17.
18.
19. Desafios do projeto
• Atualizar a versão do Joomla, utilizando uma única instalação
• Melhorar a performance
• Reformular o design e navegação
• Permitir acesso mobile
• Estabelecer novos padrões e nomenclaturas para o
desenvolvimento
• Atender mudanças no posicionamento estratégico da
Universidade
• Estruturar um novo ambiente mais seguro, estável e escalável
21. Arquitetura do Portal
• Administração centralizada
• Funcionalidades genéricas e escaláveis
• Estrutura dividida por sites
• Definição de padrões de nomenclaturas
• Controle de ACL por funcionalidade
22. Integração com o ERP Totvs
• Cursos de Extensão e Eventos
• Minha Unisinos (Perfis | Consulta de Turmas | Notas)
• Inscrições e Matrículas
• Gerenciamento de ERP Offline
• Central de Contatos
• Perguntas Frequentes
• ....
23. Autenticador
• Autenticador único para o Portal, o ERP e outras aplicações
• Compartilha sessão entre sites Joomla
• Gera logs de acesso
• Autentica via LDAP
24. Diretório DEF
• Estrutura de
aplicações
diretórios
compartilhada
com
outras
• Contempla:
• Parametrizações gerais
• Classes globais, de conexões e de integrações com ERP
• Scripts de CRONS
• Bibliotecas
• Webservice
25. Gerenciador de Cursos
• Componente que gerencia todos os cursos da Universidade
• Possibilita de forma simples parametrizar a localidade, os
períodos de inscrições e matrículas, os valores e as páginas
de um curso
• Utiliza as bibliotecas do Joomla para gerar itens de menus,
artigos e módulos
• Integrado com o ERP Totvs Educacional
• Cursos de extensão são cadastrados a partir de uma CRON
35. E qual era o problema?
A lógica do framework não comporta a quantidade de itens de
menu cadastrados.
Impactos no back-end
Aba “Atribuir itens de menus” na edição
de um módulo
• Tempo de carregamento da página
• Erro de Javascript ao salvar
Listagem de módulos cadastrados
• Opção de filtro “Todos”
• Coluna “Páginas” onde módulo é carregado
Aba “Módulo de atribuição deste item de
menu” na edição de um item de menu
• Obtém todos os módulos e seus
relacionamentos com menus
Impactos no front-end
Todas as páginas
• Função “load()” da classe “JMenuSite”
carrega todos os itens de menu
cadastrados e os percorre em vários laços
“foreach”
OBS: o teste de carga foi realizado quando havia somente 4 mil itens de menu.
36. E como fica o mandamento
de nunca mexer nos
arquivos do Joomla?
39. Solução 1
• Somente os grupos
de menus são
carregados.
• Itens de menus de
cada nível são
carregados a partir
de
requisições
AJAX.
• Validação JS é feita
somente em itens
selecionados.
40. Solução 2
• Removida a opção “Todos” do filtro de busca
• Removida a coluna “Página”
42. Solução 4 (a principal)
• Reescrita a classe “JMenuSite” de forma a trabalhar
somente com os itens de menus necessários para o
funcionamento da página
• Breadcrumb
• Menus
• Página atual
43. Sugestões para a comunidade Joomla
• Reformular a lógica de uso dos itens de menu
• Criar possibilidade de uso de categorias para os módulos
• Armazenar log de criação/edição de módulos
• Tornar administrável as opções de filtros nas listagens de
registros dos componentes nativos do Joomla