
Acesso ao servidor MySQL com o plugin MBS
Todas as bases de dados de uma instalação WordPress estão localizadas numa base de dados MySQL do servidor Web correspondente. Para poder aceder à base de dados externamente, a base de dados correspondente tem de ser autorizada para acesso externo. Esta definição pode normalmente ser efectuada no backend do fornecedor do servidor.
Para aceder diretamente às bases de dados do servidor Web, é necessário utilizar o plug-in FileMaker do MBS, uma vez que o FileMaker não permite o acesso direto às bases de dados com ferramentas integradas. SQL-servidor. O plugin MBS pode ser instalado no diretório Sítio Web da Monkeybread Software e está disponível para descarregar uma versão de demonstração gratuita. Para permitir o acesso às bases de dados mySQL, a biblioteca MySQL (libmysql.18.dylib ou libMySQL.dll) também deve estar localizada no diretório da base de dados.
WordPress, Contact Form 7 e Flamingo
Para fornecer formulários para a entrada do utilizador num sítio Web baseado no WordPress, utilize o plugin Formulário de contacto 7. Para guardar as entradas do formulário, instale também a extensão Flamingo do mesmo fabricante. Ambos os plugins também podem ser instalados e activados diretamente no repositório do WordPress no backend do WordPress.
No backend do WordPress, navegue até ao item de menu [Formulários] e criar um novo formulário para o seu sítio Web. Como o Flamingo guarda automaticamente todas as entradas do formulário, não tem de fazer mais nada para além de criar um novo formulário.
O Flamingo guarda todos os registos de dados internamente no ficheiro Tabela "wp_posts" com o tipo de mensagem "flamingo-inbound" e não cria a sua própria tabela na base de dados do WordPress. Na nossa pequena solução de exemplo, todos os registos de dados são importados da tabela "wp_posts" com o tipo de publicação "flamingo-inbound". Uma vez que os registos de dados são simplesmente separados pelo Flamingo utilizando um avanço de linha, podemos facilmente extrair o conteúdo do campo utilizando a função "GetValue" da FileMaker.
Em princípio, outros registos de dados também podem ser importados da base de dados do WordPress, especificando um tipo de post diferente. Os dados podem então ser armazenados no ficheiro [post_content] podem ser formatados de forma diferente. Na nossa solução de exemplo, limitar-nos-emos ao WordPress com o Contact Form 7 e o Flamingo, que se limita a escrever o conteúdo do campo uma linha abaixo da outra.
Ecrã da solução de amostra
Na base de dados de exemplo, a coluna da esquerda contém todos os campos para definir a sua base de dados WordPress com todos os campos obrigatórios.
Introduza os seguintes dados nos campos para que possa importar dados da sua instalação do WordPress para a FileMaker. Todos os dados também podem ser encontrados no ficheiro "wp-config.php", que se encontra no diretório raiz da sua instalação do WordPress.
- Endereço do servidor (Anfitrião)URL sob o qual o seu servidor está acessível, no qual se encontra a base de dados do WordPress. Nota: Para poder aceder à base de dados externamente, a base de dados correspondente tem de ser autorizada para acesso externo. Esta definição pode normalmente ser efectuada no backend do fornecedor do servidor.
- Base de dadosNome da base de dados em que se encontram todas as tabelas do WordPress com o prefixo "wp_".
- Nome do utilizadorNome de utilizador para iniciar sessão na base de dados.
- palavra-passePalavra-passe para iniciar sessão na base de dados.
- Pós-tipoNo nosso exemplo, utilizamos o tipo de mensagem "flamingo_inbound". Em princípio, também é possível importar outros registos de dados da base de dados do WordPress, especificando um tipo de mensagem diferente.
Definições de campo da solução de amostra
A nossa solução de exemplo utiliza duas tabelas:
- DefiniçõesContém todos os campos das definições do servidor como campos globais
- FormuláriosContém todos os campos para os formulários importados
Não é necessária uma relação entre as duas tabelas porque todos os campos de definição foram definidos globalmente.
O quadro [Formulários] contém um campo de texto calculado com o cálculo para cada campo de destino:
- GetValue (post_content; x)
O marcador de posição [x] neste caso, representa o número da entrada. Como todas as entradas geradas pelo Flamingo no campo [post_content] são separados por um retorno de carro, os campos podem ser facilmente extraídos utilizando a função "GetValue".
Scripts na solução de amostra
A solução de amostra contém dois scripts: Um Script para estabelecer uma ligação ao servidor de base de dados MySQL e um script que pode ser executado através do comando [Importação de dados]. é executado. O script parcial [ts.MySQL_OpenDatabase] é utilizado no início do guião principal [sf.MySQL_Import_wp_posts] chamado.
- Se [NOT IsEmpty(Settings::wp_Database) AND NOT IsEmpty(...)]
Consulta se todos os campos de definição foram preenchidos.
- Executar o script ["ts.MySQL_OpenDatabase"]
Executa o script parcial para abrir uma ligação à base de dados com o servidor MySQL. O script parcial devolve um número para a ligação.
- Variável set [$Connection; value:Get(ScriptResult)]
Escreve o número devolvido da ligação na variável $Connection
- Definir variável [$Command; value:MBS("SQL.NewCommand"; $Connection; "SELECT * FROM wp_posts...)]
Gera uma consulta SQL na tabela [wp_posts] com restrição ao tipo de lançamento, que é introduzido no [Pós-tipo] foi especificado (no nosso caso, "flamingo-inbound").
- Definir variável [$result; Value:MBS("SQL.Execute"; $Command)]
Executa a consulta SQL listada acima no servidor.
- Loop (início)
- Definir variável [$result; Value:MBS("SQL.FetchNext"; $Command)]
- Sair do ciclo se [$result ≠ 1]
- Novo registo de dados/consulta
- Definir o valor do campo [Forms::post_date; MBS("SQL.GetFieldAsDateTime"; $command; "post_date")]
- Definir o valor do campo [Forms::post_content; MBS("SQL.GetFieldAsText"; $command; "post_content")]
- Definir o valor do campo [Forms::post_type; MBS("SQL.GetFieldAsText"; $command; "post_type")]
- Definir o valor do campo [Forms::ID; MBS("SQL.GetFieldAsNumber"; $command; "ID")]
- Escrever dados de modificação/consulta [Sem caixa de diálogo]
- Laço (fim)
Ciclo de execução em que é criado um novo registo de dados e todos os valores de campo são escritos nos campos criados pelo servidor da base de dados.
Descarregar a base de dados de amostra FileMaker (.fmp12)
Como transferir scripts do ficheiro de amostra para a sua solução
Os scripts podem ser facilmente transferidos de uma solução FileMaker para outra através da área de transferência. Basta abrir a caixa de diálogo Gerir guiõesselecionar o script desejado com o rato e copiar o script para a área de transferência através do menu [Editar - Copiar]. ou combinação de teclas [Ctrl/Cmd-C]. Em seguida, abra a mesma caixa de diálogo na solução de destino e simplesmente cole o script copiado anteriormente usando o comando de menu [Editar - Colar]. novamente.
Para transferir tabelas do ficheiro de amostra para a sua solução
As tabelas podem ser inseridas numa solução existente de várias formas. A maneira mais fácil é importar a tabela usando a função [Importar...] em diálogo Gerir a base de dados. Todas as tabelas a importar da solução de origem podem então ser selecionadas num diálogo subsequente. Este método é, portanto, particularmente adequado se várias tabelas tiverem de ser importadas ao mesmo tempo. Se apenas uma tabela tiver de ser importada, isso também pode ser feito através da área de transferência como um script. Se for necessário importar uma tabela com todos os dados, isso pode ser feito com o comando [Ficheiro > Importar registos de dados > Ficheiro] no diálogo de importação. Na caixa de diálogo de importação, a tabela de destino deve então ser Nova mesa deve ser especificado.
Para transferir listas de valores do ficheiro de exemplo para a sua solução
As listas de valores podem ser facilmente importadas de uma solução FileMaker para outra através da área de transferência. Basta abrir a caixa de diálogo em [Ficheiro > Gerir > Listas de valores]selecionar o Lista de valores com o rato e copiar a lista de valores para a área de transferência através do menu [Editar - Copiar]. ou combinação de teclas [Ctrl/Cmd-C]. Em seguida, abra a mesma caixa de diálogo na solução de destino e cole a lista de valores previamente copiada utilizando o comando de menu [Editar - Colar]. novamente.
Como transferir as suas próprias funções do ficheiro de exemplo para a sua solução
No diálogo [Ficheiro > Gerir > Funções próprias...] no botão [Importar] e, em seguida, selecionar o ficheiro de amostra. Selecione as funções personalizadas desejadas na caixa de diálogo seguinte e confirme a caixa de diálogo. Por favor, note que esta função só está disponível na FileMaker Pro Advanced, mas não na FileMaker Pro.

Markus Schall tem vindo a desenvolver bases de dados personalizadas, interfaces e aplicações empresariais baseadas na Claris FileMaker desde 1994. É um parceiro da Claris, vencedor do Prémio FMM 2011 e criador do Software ERP gFM-Business. É também autor de livros e fundador da M. Schall Publishers.



