Integração do Pentaho com o Ckan
Esta integração faz parte da interação e modificação de temas no CKAN.
Maiores detalhes podem ser encontrados na pagina: http://docs.ckan.org/en/latest/theming/index.html
Pré-requisitos
É necessário realizar a instalação do Pentaho anteriormente. A integração com o CKAN é feita através de "iframe" em paginas personalizadas no CKAN. Para isso é necessário entender a estrutura de paginas do CKAN. A próxima seção apresenta esta estrutura.
Estrutura de Paginas do CKAN
As paginas da raiz do CKAN estão no diretório "/ckan/lib/default/src/ckan/ckan/templates". As paginas HTML neste diretório ficam visíveis na raiz da URL do CKAN.
Código de Exemplo de uma pagina personalizada no CKAN
A seguir segue um exemplo de uma pagina personalizada com a utilização de um "iframe" para integrar outros sistemas nas paginas e no servidor do CKAN. Neste exemplo utilizamos o Pentaho instalado na mesma máquina (localhost).
- Nota
- É recomendado familiarizar-se com templates no modelo Jinja2, maiores detalhes podem ser encontrados em: http://jinja.pocoo.org/docs/2.9/templates/
{% extends "base.html" %} {% block subtitle %}{{ _('Pagina Personalizada') }}{% endblock %} {%- block page -%} {% block skip %} <div class="hide"><a href="#content">{{ _('Skip to content') }}</a></div> {% endblock %} {# Substitua o cabeçalho em uma página por página, estendendo esse bloco. Se estiver fazendo alterações no cabeçalho do site, é preferível substituir o arquivo header.html. #} {%- block header %} {% include "header.html" %} {% endblock -%} {# O bloco de conteúdo permite substituir o conteúdo da página, se necessário #} {%- block content %} {% block maintag %}<div role="main">{% endblock %} <div id="content" class="container" style="width: 1200px;"> {% block main_content %} {% block flash %} <div class="flash-messages"> {% block flash_inner %} {% for message in h.flash.pop_messages() | list %} <div class="alert fade in {{ message.category }}"> {{ h.literal(message) }} </div> {% endfor %} {% endblock %} </div> {% endblock %} {% block toolbar %} <div class="toolbar"> {% block breadcrumb %} {% if self.breadcrumb_content() | trim %} <ol class="breadcrumb"> {% snippet 'snippets/home_breadcrumb_item.html' %} {% block breadcrumb_content %} <li class="active"><a href="/pagina-personalizada">Pagina Personalizada</a></li> {% endblock %} </ol> {% endif %} {% endblock %} </div> {% endblock %} <div class="row wrapper{% block wrapper_class %}{% endblock %}{% if self.secondary()|trim == '' %} no-nav{% endif %}"> {# O bloco pré-primário pode ser usado para adicionar conteúdo antes da renderização das colunas de conteúdo principal da página. #} {% block pre_primary %} {% endblock %} {% block primary %} <article class="module"> <div class="module-content"> <h1>Pagina Personalizada</h1> <p>Alguma paragrafo de informação (pode-se utilizar o HTML aqui)</p> {# Exemplo de iframe: #} <iframe src="http://localhost/pentaho/"></iframe> </article> {% endblock %} {% block secondary %}{% endblock %} </div> {% endblock %} </div> </div> {% endblock -%} </div> {# Substitua o rodapé em uma página por página, estendendo esse bloco. Se fizer alterações no cabeçalho do site, é preferível substituir o arquivo footer.html-u. #} {%- block footer %} {% include "footer.html" %} {% endblock -%} {%- endblock -%} {%- block scripts %} {% resource 'base/main' %} {% resource 'base/ckan' %} {% if g.tracking_enabled %} {% resource 'base/tracking.js' %} {% endif %} {{ super() }} {% endblock -%}
Assim você será capaz de criar paginas personalizadas utilizando o mesmo tema aplicado no CKAN.