RuiFelix Posted June 29, 2014 Report Share Posted June 29, 2014 (edited) Boa tarde. Sou novo na área e foi-me proposto um trabalho que passa por criar documentos(.doc) modelo e preenchê-los com elementos de uma base de dados, por exemplo, um contrato. O problema depara-se com o seguinte: por onde começar? será que deva usar alguma plataforma, etc.? Como formular a técnica de modelo de documentos? A mecânica seria seleccionar o documento modelo e o(s) elemento(s) da base de dados que quero que seja preenchido, o problema é como fazer a âncora de ligação à base de dados num texto modelo que ao ser seleccionado seria automaticamente preenchido. Seria uma espécie de email automático de registo em sites, mas com mais modelos de texto. Cumprimentos. Edited June 29, 2014 by RuiFelix Link to comment Share on other sites More sharing options...
nelsonr Posted June 29, 2014 Report Share Posted June 29, 2014 Boas, quando te referes a documentos .doc são documentos do Word? Não podes por exemplo criar templates HTML em que possibilitas o uso de macros, que serão substituidas por elementos da base de dados? Imagina que tens o template1.html com o seguinte conteudo <b>Template 01</b><br /> <b>Nome:</b> [NOME]<br /> <b>Morada:</b> [MORADA]<br /> Depois seria só ler o template para uma variavel, ir buscar os dados à base de dados e substituir as macros pelo conteudo da base de dados. Mas se for mesmo necessário documentos word (.doc), provavelmente precisas de uma biblioteca. Link to comment Share on other sites More sharing options...
RuiFelix Posted June 30, 2014 Author Report Share Posted June 30, 2014 Boas, quando te referes a documentos .doc são documentos do Word? Não podes por exemplo criar templates HTML em que possibilitas o uso de macros, que serão substituidas por elementos da base de dados? Imagina que tens o template1.html com o seguinte conteudo <b>Template 01</b><br /> <b>Nome:</b> [NOME]<br /> <b>Morada:</b> [MORADA]<br /> Depois seria só ler o template para uma variavel, ir buscar os dados à base de dados e substituir as macros pelo conteudo da base de dados. Mas se for mesmo necessário documentos word (.doc), provavelmente precisas de uma biblioteca. Boa noite, nelsonnr O mecanismo pretendido é por exemplo elaborar um modelo de texto, contrato de trabalho a termo. Vejamos o exemplo: - CONTRATO DE TRABALHO A TERMO CERTO – 1ª Outorgante: CampoBD 2ª Outorgante: CampoBD Celebram entre si um contrato de trabalho, a termo certo que subordinam às cláusulas seguintes: 1.ª A CampoBD é uma empresa que se dedica a actividade de CampoBD 2.ª Pelo presente contrato, CampoBD contrata ao seu serviço CampoBD para mediante as suas directrizes e autoridade, desempenhar as funções de CampoBD próprias da categoria profissional de CampoBD e que se consubstanciam em CampoBD - FIM DE EXEMPLO - Este trabalho contempla 15 modelos de textos diferentes - contratos - que ao serem selecionados deverão ficar preenchidos pelos campos correspondentes na BD ou nas BDs, após isso os mesmos deverão dar para imprimir ou guardar em formato PDF. Recomenda o uso de alguma plataforma em especial? Porque relativamente ao desenvolvimento para a web estou muito verde e queria aprender, sendo ajudado. Cumprimentos. Link to comment Share on other sites More sharing options...
nelsonr Posted June 30, 2014 Report Share Posted June 30, 2014 Boas, se não precisas especificamente de usar documentos .doc, podes usar como disse, templates HTML e substituir as "macros" pelos conteudos da base de dados. Depois para gerar o PDF, usas por exemplo o FPDF (http://www.fpdf.org/), que te facilita a criação de PDFs em PHP. Link to comment Share on other sites More sharing options...
nelsonr Posted June 30, 2014 Report Share Posted June 30, 2014 Estava aqui a ver e e com o FPDF não deve ser a melhor forma de converteres o HTML em PDF. Não podes mostrar o resultado final numa pagina e o utilizador imprime com browser? Link to comment Share on other sites More sharing options...
RuiFelix Posted June 30, 2014 Author Report Share Posted June 30, 2014 Estava aqui a ver e e com o FPDF não deve ser a melhor forma de converteres o HTML em PDF. Não podes mostrar o resultado final numa pagina e o utilizador imprime com browser? Suponho que o que me está a dizer é que faça um form em html para cada modelo. Agora o que usar para os sitios onde serão carregados os dados da base de dados? TextBox, Combobox's? Link to comment Share on other sites More sharing options...
nelsonr Posted June 30, 2014 Report Share Posted June 30, 2014 Para serem substituidos pelo conteudo da base de dados? Basta texto normal, com um formato especifico e que normalmente não aparece no conteúdo do documento. Como dei exemplo lá em cima [NOME] ou {NOME} ou %NOME%, algo desse tipo. Depois será apenas necessário usar o str_replace do php para substituir $htmlTemplate = str_replace("[NOME]", $nomeVindoDaBaseDeDados, $htmlTemplate); Link to comment Share on other sites More sharing options...
bioshock Posted June 30, 2014 Report Share Posted June 30, 2014 Se tudo se baseia numa página para quê criar "macros"? Não será mais simples receber os dados da base de dados e imprimi-los directamente no ecrã sem complicações? <?php /* getInfo é uma função por ti criada que vai buscar a informação do ID 3 */ $info = getInfo(3); ?> <html> <head> </head> <body> <table> <thead></thead> <tbody> <tr> <td>1ª Outorgante: <?php echo $info['outorgante_A'];?></td> <td>2º Outorgante: <?php echo $info['outorgante_B'];?></td> </tr> </tbody> </table> </body> </html> Depois sim, se precisares convertes para PDF. Link to comment Share on other sites More sharing options...
nelsonr Posted June 30, 2014 Report Share Posted June 30, 2014 As macros simplificam se pretendes ter vários templates e possivelmente enviar por email Link to comment Share on other sites More sharing options...
bioshock Posted June 30, 2014 Report Share Posted June 30, 2014 E com este código não consegues enviar por email? Pegas no PHPMailer e espeta-lhes com o HTML. Link to comment Share on other sites More sharing options...
nelsonr Posted June 30, 2014 Report Share Posted June 30, 2014 ok, apenas julgo que ficava mais simples separar o template do código. Mas também depende do que ele quer fazer. 1 Report Link to comment Share on other sites More sharing options...
RuiFelix Posted June 30, 2014 Author Report Share Posted June 30, 2014 Se tudo se baseia numa página para quê criar "macros"? Não será mais simples receber os dados da base de dados e imprimi-los directamente no ecrã sem complicações? <?php /* getInfo é uma função por ti criada que vai buscar a informação do ID 3 */ $info = getInfo(3); ?> <html> <head> </head> <body> <table> <thead></thead> <tbody> <tr> <td>1ª Outorgante: <?php echo $info['outorgante_A'];?></td> <td>2º Outorgante: <?php echo $info['outorgante_B'];?></td> </tr> </tbody> </table> </body> </html> Depois sim, se precisares convertes para PDF. Boa tarde, BioShock. Relativamente ao formulário em bruto, qual seria a condição para preenchimento automático de cada contrato? Eu quero preencher com o outorgante correspondente na base de dados, será que com uma textbox e um botão de validação para a pesquisa na bd, resolveria a situação para preenchimento? Link to comment Share on other sites More sharing options...
bioshock Posted June 30, 2014 Report Share Posted June 30, 2014 Podes fazer de várias formas. Por exemplo, se tens uma grelha de informação e seleccionas uma linha e queres ver especificamente os dados daquela linha, podes passar os dados por parâmetro no URL. Sendo que a página original é index.php (por exemplo), chamavas algo como index.php?id=3, depois só tinhas de pegar no valor do id. $info = getInfo($_GET['id']); // e fazer as respectivas validações antes. Link to comment Share on other sites More sharing options...
RuiFelix Posted June 30, 2014 Author Report Share Posted June 30, 2014 Para serem substituidos pelo conteudo da base de dados? Basta texto normal, com um formato especifico e que normalmente não aparece no conteúdo do documento. Como dei exemplo lá em cima [NOME] ou {NOME} ou %NOME%, algo desse tipo. Depois será apenas necessário usar o str_replace do php para substituir $htmlTemplate = str_replace("[NOME]", $nomeVindoDaBaseDeDados, $htmlTemplate); Boas, nelsonnr. O facto de querer preencher com dados da base de dados também poderá ser obtido com o resultado da função str_replace. Esse resultado é no mesmo template ou terei que ter um duplicado? Link to comment Share on other sites More sharing options...
nelsonr Posted June 30, 2014 Report Share Posted June 30, 2014 Lias o conteúdo do template para aquela variavel $htmlTemplate (usando o file_get_contents por exemplo) Link to comment Share on other sites More sharing options...
RuiFelix Posted July 1, 2014 Author Report Share Posted July 1, 2014 Lias o conteúdo do template para aquela variavel $htmlTemplate (usando o file_get_contents por exemplo) Boas, novamente. Já compreendi a questão do preenchimento automático. Agora imagine-se que o administrador quer fazer um novo documento e deixá-lo no formato para preencher automaticamente, ou seja, quando apetecer ao utilizador alterar um documento ou fazer um novo sem ser por código, como seria possível isso acontecer? Link to comment Share on other sites More sharing options...
nelsonr Posted July 1, 2014 Report Share Posted July 1, 2014 Poderá usar qualquer editor HTML, ou até podes incluir um editor no próprio site (ex: http://www.tinymce.com/). Só tem de incluir as "macros" no sitio onde querem substituir o conteudo Link to comment Share on other sites More sharing options...
RuiFelix Posted July 1, 2014 Author Report Share Posted July 1, 2014 Poderá usar qualquer editor HTML, ou até podes incluir um editor no próprio site (ex: http://www.tinymce.com/). Só tem de incluir as "macros" no sitio onde querem substituir o conteudo e como é que serão enunciadas as macros no tinymce? Link to comment Share on other sites More sharing options...
RuiFelix Posted July 1, 2014 Author Report Share Posted July 1, 2014 e como é que serão enunciadas as macros no tinymce? Neste caso numa plataforma como a Yii. Link to comment Share on other sites More sharing options...
nelsonr Posted July 1, 2014 Report Share Posted July 1, 2014 Nunca usei o tinymce, não sei se dá para adicionar botões personalizados. Mas mesmo que não dê, acrescentas uns botões que inserem texto na posição do cursor dentro do editor. Ou então colocas uma pequena ajuda com a lista das macros disponiveis, e quem criar os templates só tem de as escrever Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now