<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>AjudaComInstaladorDePacotes</title></articleinfo><section><title>Introdução</title><para>Alguma vez se questionou sobre o porquê de tantas páginas na distribuição principal? O motivo principal prende-se com o facto de não termos um formato para distribuir as páginas de ajuda num único ficheiro. Ou por que motivo instalar um tema não é fácil, por não saber bem onde colocar os ficheiros? </para><para>O instalador de pacotes é uma framework de scripts para o <ulink url="http://research.math.uvt.ro/wiki/AjudaComInstaladorDePacotes/wiki/WikiMoinMoin#">MoinMoin</ulink>, que simplifica muito a instalação e a distribuição de extensões para o <ulink url="http://research.math.uvt.ro/wiki/AjudaComInstaladorDePacotes/wiki/WikiMoinMoin#">MoinMoin</ulink>. </para><para>Pode utilizar este sistema juntar modelos específicos que, por exemplo, desenvolvessem o seu <ulink url="http://research.math.uvt.ro/wiki/AjudaComInstaladorDePacotes/wiki/WikiMoinMoin#">MoinMoin</ulink> para ser um sistema CRM. Ou pode criar os seus plugins/temas instaláveis mais facilmente. </para><section><title>Instalar um pacote</title><para>Um <emphasis>super utilizador</emphasis> (ou seja, um nome de utilizador que pertença à lista cfg.superuser na configuração) do wiki descarregará o seu ficheiro de pacotes de algum sítio e irá enviá-lo para o wiki e clicará em instalar na apresentação dos ficheiros anexados. Adicionalmente, ele podia instalar o pacote utilizando a linha de comando (<code>MoinMoin/packages.py i package.zip</code>). </para></section><section><title>Criar pacotes</title><para>Existem várias formas de criar um pacote. Pode utilizar a acção PackagePages para criar um pacote automaticamente. </para><para>Ou pode fazê-lo manualmente: <emphasis>cria</emphasis> um ficheiro zip que contenha os seus ficheiros e um ficheiro especial <code>MOIN_PACKAGE</code>, o script de instalação. O script contém um comando (parece complicado mas na verdade não é; veja os exemplos em baixo) por linha e é executado de cima para baixo. </para><para>Script de exemplo:</para><screen><![CDATA[MoinMoinPackage|1
ReplaceUnderlay|aminhapágina.txt|ConteúdosDeAjuda
AddRevision|aminhapágina2.txt|PáginaPrincipal
InstallPlugin|omeuparser.py|global|parser|omeuparser.py]]></screen><itemizedlist><listitem><para>A primeira linha marca o ficheiro como um ficheiro de script e define a versão do idioma utilizado. Por agora, será 1. </para></listitem><listitem><para>A segunda linha substitui a sub-camada da versão da página <ulink url="http://research.math.uvt.ro/wiki/AjudaComInstaladorDePacotes/wiki/Conte%C3%BAdosDeAjuda#">ConteúdosDeAjuda</ulink> com o ficheiro <code>aminhapágina.txt</code>. </para></listitem><listitem><para>A terceira linha adiciona uma nova versão à página <ulink url="http://research.math.uvt.ro/wiki/AjudaComInstaladorDePacotes/wiki/P%C3%A1ginaPrincipal#">PáginaPrincipal</ulink>, ou seja, altera-a. </para></listitem><listitem><para>A quarta linha instala um novo parser. </para></listitem></itemizedlist><section><title>Comandos implementados</title><para>Tenha em consideração que os comandos não são sensíveis a maiúsculas/minúsculas. </para><itemizedlist><listitem><para><code>Print|texto</code> </para><itemizedlist><listitem><para>Imprime o texto no resultado do script, o utilizador irá vê-lo depois. </para></listitem></itemizedlist></listitem><listitem><para><code>IgnoreExceptions|booleano</code> </para><itemizedlist><listitem><para>Activa a configuração Ignorar Excepções. Se as excepções são ignoradas, o script não parará se uma for encontrada. </para></listitem></itemizedlist></listitem><listitem><para><code>SetThemeName|nome de tema</code> </para><itemizedlist><listitem><para>Define o nome do tema a ser alterado a seguir. </para></listitem></itemizedlist></listitem><listitem><para><code>CopyThemeFile|nome de ficheiro|tipo|destino</code> </para><itemizedlist><listitem><para>Copia o ficheiro relacionado a um tema (CSS, PNG, etc.) para uma directoria do tema actual. </para></listitem><listitem><para>Actualmente é apenas suportando em servidores do tipo standalone. </para></listitem><listitem><para>Exemplo: <code>CopyThemeFile|screen.css|css|screen.css</code> </para></listitem></itemizedlist></listitem><listitem><para><code>InstallPlugin|nome de ficheiro|visibilidade|tipo de plugin|destino</code> </para><itemizedlist><listitem><para>Copia o ficheiro de um plugin a partir do <emphasis>nome de ficheiro</emphasis> até ao <emphasis>destino</emphasis>. A <emphasis>visibilidade</emphasis> pode ser <code>local</code> que selecciona a pasta de plugins do wiki actual ou <code>global</code> que selecciona a pasta do pacote de python do MoinMoin. O <emphasis>tipo de plugin</emphasis> pode ser um <code>parser</code>, uma <code>macro</code>, etc.  </para></listitem><listitem><para>Exemplo <code>InstallPlugin|omeuparser.py|global|parser|omeuparser.py</code> </para></listitem></itemizedlist></listitem><listitem><para><code>AddRevision|nome de ficheiro|nome de página|autor|comentário|trivial</code> </para><itemizedlist><listitem><para>Adiciona uma versão (lida a partir do ficheiro <emphasis>nome de ficheiro</emphasis>) à página <emphasis>nome de página</emphasis>. O <emphasis>autor</emphasis> especifica o nome do editor e é opcional. O <emphasis>comentário</emphasis> especifica o comentário da versão e é opcional. O <emphasis>trivial</emphasis> especifica se a versão é uma edição mínima e é opcional. </para></listitem><listitem><para>Exemplo (instala novos ficheiros de modelos):</para><screen><![CDATA[AddRevision|cliente.tpl|ModeloDeCliente
AddRevision|contacto.tpl|ModeloDeContacto]]></screen></listitem></itemizedlist></listitem><listitem><para><code>DeletePage|nome de página|comentário</code> </para><itemizedlist><listitem><para>Elimina a página <emphasis>nome de página</emphasis>, definindo um <emphasis>comentário</emphasis> opcionalmente. </para></listitem><listitem><para>Exemplo: <code>DeletePage|PáginaPrincipal</code> </para></listitem></itemizedlist></listitem><listitem><para><code>ReplaceUnderlay|nome de ficheiro|nome de página</code> </para><itemizedlist><listitem><para>Substitui a sub-camada da versão da página. Pode ser utilizada para instalar ou actualizar páginas de sub-camadas. </para></listitem></itemizedlist></listitem><listitem><para><code>EnsureVersion|versão|linhas</code> </para><itemizedlist><listitem><para>Cancela o script ou salta linhas se os critérios da versão não forem satisfeitos e se <emphasis>linhas</emphasis> for especificado. </para></listitem><listitem><para>Este exemplo fornece parsers diferentes e instala o correcto: </para><screen><![CDATA[EnsureVersion|1.3.3|2
InstallPlugin|omeuparser.py_3|global|parser|omeuparser.py
Exit
EnsureVersion|1.3.2
InstallPlugin|omeuparser.py_2|global|parser|omeuparser.py]]></screen></listitem></itemizedlist></listitem><listitem><para><code>Exit</code> </para><itemizedlist><listitem><para>Pára o script. </para></listitem></itemizedlist></listitem><listitem><para><code>InstallPackage|Nome de página|Nome de ficheiro</code> </para><itemizedlist><listitem><para>Instala outro pacote que tem de ser um anexo chamado <emphasis>Nome de ficheiro</emphasis> da página <emphasis>Nome de página</emphasis>. </para></listitem><listitem><para>Exemplo: <code>InstallPackage|PáginaPrincipal|MeuPluginFixe.zip</code> </para></listitem></itemizedlist></listitem><listitem><para><code>AddAttachment|nome de ficheiro no ficheiro zip|nome de ficheiro|nome de página|autor|comentário</code> </para><itemizedlist><listitem><para>Exemplo: <code>AddAttachment|2_anexo|música.wav|PáginaPrincipal|HansMustermann|é uma música de exemplo.</code> </para></listitem></itemizedlist></listitem><listitem><para><code>DelAttachment|nome de ficheiro|nome de página|autor|comentário</code> </para><itemizedlist><listitem><para>Exemplo: <code>DelAttachment|música.wav|PáginaPrincipal|HansMustermann|teste</code> </para></listitem></itemizedlist></listitem><listitem><para><code>RenamePage|nome de página|novo nome de página|autor|comentário</code> </para><itemizedlist><listitem><para>Renomeia um nome de página com um novo nome de página </para></listitem></itemizedlist></listitem></itemizedlist></section></section></section></article>