4D v14.3Etiquetas HTML 4D |
||||||||||||||||||||||||||||||||||||||
|
4D v14.3
Etiquetas HTML 4D
Etiquetas HTML 4D
O servidor web 4D lhe oferece diferentes etiquetas HTML específicas para 4D, permitindo inserir referências às expressões ou variáveis 4D ou diferentes tipos de processos, em páginas HTML estáticas enviadas pelo servidor Web 4D, por exemplo com a ajuda dos comandos WEB SEND FILE e SEND HTML BLOB. Estas páginas se chamam páginas semidinâmicas. Estas etiquetas são inseridas como comentários HTML ( <!--#Tag Contents--> em código HTML). A maioria dos editores HTML oferecem funções que facilitam a inserção de comentários nas páginas estáticas.
A análise do conteúdo das páginas semi-dinâmicas enviadas por 4D se realiza no momento da chamada aos comandos WEB SEND FILE(.htm, .html, .shtm, .shtml) ou SEND HTML BLOB (blob de tipo texto/html) ou WEB SEND TEXT, assim como quando são enviadas páginas chamadas utilizando URLs. Neste último caso, por razões de otimização as páginas que tem o sufixo ".htm" e "html" NÃO são analisadas.
Para ser processado por 4D, um comentário HTML deve ter o seguinte formato <!--#4D...-->. Por favor leve em consideração que alguns editores HTML adicionam automaticamente outra informação dentro do comentário; isso pode provocar erros de análise. Entretanto, outros comentários HTML tais como <!--Beginning of list--> são possíveis. Se um comentário <!--#4D... não termina em -->, a seguinte mensagem “<!--#4D... : --> esperado” se inserirá e a análise será interrompida neste nível (a página será enviada para indicar o erro). É possível misturar diferentes tipos de comentários. Por exemplo, é possível a seguinte estrutura HTML: <HTML> ... <BODY> <!--#4DSCRIPT/PRE_PROCESS--> (Chamada do método) <!--#4DIF (myvar=1)--> (condição If) <!--#4DINCLUDE banner1.html--> (Inserir Subpágina) <!--#4DENDIF--> (End if) <!--#4DIF (myvar=2)--> <!--#4DINCLUDE banner2.html--> <!--#4DENDIF--> <!--#4DLOOP [TABLE]--> (loop na seleção atual) <!--#4DIF ([TABLE]ValNum>10)--> (If [TABLE]ValNum>10) <!--#4DINCLUDE subpage.html--> (inserir sub página) <!--#4DELSE--> (Else) <B>Value: <!--#4DTEXT [TABLE]ValNum--></B><BR> (Field display) <!--#4DENDIF--> <!--#4DENDLOOP--> (End for) </BODY> </HTML> Sintaxe: <!--#4DTEXT NomeVar--> ou <!--#4DTEXT 4DExpression--> A etiqueta <!--#4DTEXT NomeVar--> lhe permite inserir uma referência a uma variável ou a uma expresão 4D em qualquer parte de uma página HTML. Por exemplo, se escreve: <P>Bem-vindo a<!--#4DTEXT vtNomeSite-->!</P> O valor da variável 4D vtNomSite se inserirá na página HTML no momento de seu envio. Pode inserir uma variável de texto 4D no código HTML. Este valor é inserido em forma de texto simples, os caracteres HTML especiais tais como ">" se escapam automaticamente. Também pode inserir as expressões 4D (não só as variáveis) nos comentários HTML 4D com a etiqueta 4DTEXT. Pode inserir diretamente o conteúdo de um campo (<!--#4DTEXT [nomTabela]nomCampo-->) ou um elemento de array (por exemplo <!--#4DTEXTarr{1}-->) ou um método que retorna um valor (<!--#4DTEXT MeuMétodo-->). A conversão da expressão segue as mesmas regras que a conversão de uma variável. Além disso, a expressão deve cumprir com as regras de sintaxe de 4D. Em caso de erro de interpretação, o texto inserido será da forma “<!--#4DTEXT myvar--> : ## erro # erro code”. Notas:
Sintaxe: <!--#4DHTML NomVar--> ou <!--#4DHTML 4DExpression--> Esta etiqueta permite avaliar uma variável ou uma expressão 4D e inseri-la em uma página como uma expressão HTML. Diferente da etiqueta 4DTEXT, esta etiqueta não converte os caracteres especiais HTML.
Nota: A execução de um método 4D com 4DHTML depende do valor do atributo “Disponível através as etiquetas HTML e URLs 4D (4DATION...)” definido nas propriedades do método. Para maior informação consulte a seção Conexões de Segurança. Nota de compatibilidade: Essa etiqueta substitui 4DHTMLVAR a partir da versão 12.2 de 4D. A etiqueta 4DHTMLVAR ainda é compatível, mas devido a legibilidade de código, é recomendado usar a etiqueta 4DHTML para inserir no código HTML Sintaxe: <!--#4DSCRIPT/NomeMetodo/MeuParam--> A etiqueta 4DSCRIPT lhe permite executar métodos 4D no momento do envio de páginas HTML estáticas. A presença da etiqueta <!--#4DSCRIPT/MeuMétodo/MeuParam--> em uma página estática como um comentário HTML provoca a execução do método MeuMétodo com o parâmetro MeuParam como string em $1. Quando se carrega a página de inicio, 4D chama ao On Web Authentication Database Method (se existir). Se retorna True, 4D executa o método.O método retorna texto em $0. Se a string começa com o caráter de código 1, se considera como HTML (o mesmo princípio que para as variáveis). Nota: A execução de um método com 4DSCRIPT depende do valor do atributo “Disponível através as etiquetas HTML e URLs 4D (4DATION...)” definido nas propriedades do método. Para maior informação, consulte a seção Conexões de Segurança. As análises dos conteúdos da página é feita quando WEB SEND FILE (.htm, .html, .shtm, .shtml) ou SEND HTML BLOB (blob de tipo text/html) for chamada. O método retorna texto em $0 (por exemplo “12/31/03”); a expressão “Hoje é <!--#4DSCRIPT/MEUMET/MEUPARAM––></span>--> : The method does not exist.<!--#4DSCRIPT/MIMETH/MIPARAM-->” se converte em “Hoje é 12/31/03”. O código do método MIMET é: Nota: Um método chamado por 4DSCRIPT não deve chamar elementos de interface (DIALOG, ALERT...). Como 4D executa os métodos em sua ordem de aparição, é muito possível chamar a um método que define o valor de muitas variáveis que estão referenciadas mais adiante no documento, qualquer que seja o modo que esteja utilizando. Nota: Pode inserir tantos comentários <!--#4DSCRIPT...--> quantos queira em uma página estática. Sintaxe: <!--#4DINCLUDE Path--> Este comentário permite incluir, em uma página HTML, outra página HTML (indicado pelo parâmetro rota). Por padrão só se inclui o corpo da página HTML especificada, ou seja o conteúdo entre as etiquetas <body> e </body> (as etiquetas mesmas não são incluídas). Isso lhe permite evitar conflitos relacionados com as etiquetas presentes nos cabeçalhos. Entretanto se a página HTML especificada não contiver etiquetas <body></body>, a página completa é incluída. Você deve verificar a consistência das meta etiquetas. Nota: quando utilizar a etiqueta 4DINCLUDE com o comando PROCESS 4D TAGS, a pasta por padrão é a pasta que contém o arquivo de estrutura do banco. Além disso, 4D verifica que as inclusões não sejam recursivas. Exemples
Syntax: <!--#4DBASE folderPath--> The <!--#4DBASE --> tag designates a working directory that is used by the <!--#4DINCLUDE--> tag. The folderPath parameter must contain a pathname relative to the current page and it must end with a slash (/). The designated folder must be located inside the Web folder. Thus the following code (4D v12), which must specify a relative path for each call: <!--#4DINCLUDE subpage.html--> <!--#4DINCLUDE folder/subpage1.html--> <!--#4DINCLUDE folder/subpage2.html--> <!--#4DINCLUDE folder/subpage3.html--> <!--#4DINCLUDE ../folder/subpage.html--> ... can be rewritten using the <!--#4DBASE --> tag: <!--#4DINCLUDE subpage.html--> <!--#4DBASE folder/--> <!--#4DINCLUDE subpage1.html--> <!--#4DINCLUDE subpage2.html--> <!--#4DINCLUDE subpage3.html--> <!--#4DBASE ../folder/--> <!--#4DINCLUDE subpage.html--> <!--#4DBASE WEBFOLDER--> Definição de um escritório para a página de início utilizando a etiqueta <!--#4DBASE -->: /* Index.html */ <!--#4DIF LangFR=True--> <!--#4DBASE FR/--> <!--#4DELSE--> <!--#4DBASE US/--> <!--#4DENDIF--> <!--#4DINCLUDE head.html--> <!--#4DINCLUDE body.html--> <!--#4DINCLUDE footer.html--> No arquivo head.html, a pasta atual se modifica via <!--#4DBASE -->, sem que mude seu valor em Index.html: /* Head.htm */ /* o escritório de trabalho aqui é relativo ao arquivo incluído (FR/ ou US/) */ <!--#4DBASE Styles/--> <!--#4DINCLUDE main.css--> <!--#4DINCLUDE product.css--> <!--#4DBASE Scripts/--> <!--#4DINCLUDE main.js--> <!--#4DINCLUDE product.js--> Sintaxe: <!--#4DIF expression--> <!--#4DELSE--> <!--#4DENDIF--> Da mesma forma, se não houver tantos <!--#4DENDIF--> quantos <!--#4DIF -->, o texto “<!--#4DIF expression-->: 4DENDIF esperado” é inserido ao invés dos conteúdos localizados entre <!--#4DIF --> e <!--#4DENDIF-->. Esse exemplo de código inserido em uma página de HTML estática exibe uma etiqueta diferente de acordo com o resultado da expressão vname#"" <BODY> ... <!--#4DIF (vname#"")--> Nomes que começam com <!--#4DTEXT vname-->. <!--#4DELSE--> Nenhum nome foi encontrado. <!--#4DENDIF--> ... </BODY> Este exemplo insere páginas diferentes em função do usuário conectado: <!--#4DIF LoggedIn=False--> <!--#4DINCLUDE Login.htm --> <!--#4DELSEIF User="Admin" --> <!--#4DINCLUDE AdminPanel.htm --> <!--#4DELSEIF User="Manager" --> <!--#4DINCLUDE SalesDashboard.htm --> <!--#4DELSE--> <!--#4DINCLUDE ItemList.htm --> <!--#4DENDIF--> Sintaxe: <!--#4DLOOP condition--> <!--#4DENDLOOP--> Os blocos <!--#4DLOOP condicion--> ... <!--#4DENDLOOP--> podem estar aninhados. Como em 4D, cada <!--#4DLOOP condicion--> deve ter um <!--#4DENDLOOP--> correspondente.
Nota: quando a etiqueta 4DLOOP se utiliza com uma tabela, os registros se carregam em modo só letura.
<!--#4DLOOP [Pessoas]--> <!--#4DTEXT [Pessoas]Nome--> <!--#4DVAR [Pessoas]Sobrenome-><BR> <!--#4DENDLOOP--> ... pode ser traduzido em linguagem 4D como: FIRST RECORD([Pessoas])
O seguinte exemplo de código HTML: <!--#4DLOOP arr_names--> <!--#4DTEXT arr_names{arr_names}--><BR> <!--#4DENDLOOP--> ... pode ser traduzida em linguagem 4D da seguinte maneira: For($Elem;1;Size of array(arr_names))
Advertência: C_BOOLEAN($0) e C_LONGINT($1) DEVEM ser declaradas dentro do método por motivos de compilação. O exemplo de código HTML seguinte: <!--#4DLOOP meu_metodo--> <!--#4DTEXT var--> <BR> <!--#4DENDLOOP--> ... pode ser traduzida em linguagem 4D da seguinte maneira: If(AuthenticationWebOK) O método meu_metodo pode ser realizado dessa forma: C_LONGINT($1) Em caso de um erro de interpretação, o texto “<!--#4DLOOP expression-->: Descrição” é inserido em vez do conteúdo localizado entre <!--#4DLOOP --> e <!--#4DENDLOOP-->. |
PROPRIEDADES
Produto: 4D VER TAMBÉM
Ações URL e Formulário PALAVRAS CHAVES 4DVAR, 4DTEXT, 4DHTMLVAR, 4DHTML, 4DSCRIPT, 4DINCLUDE, 4DIF, 4DLOOP, 4DELSEIF ARTICLE USAGE
Manual de linguagem 4D ( 4D v14 R2) Inherited from :
Etiquetas HTML 4D ( 4D v12.4) |
||||||||||||||||||||||||||||||||||||