Detalhes sobre * .tpl arquivos DLE template sua finalidade. Usando arquivos TPL TPL Php Templates Como usar

Imediatamente direi que já escrevi sobre este tópico aqui :. No entanto, nem todos entendiam este material, e decidi voltar a ele e escrever tudo um pouco diferente. Não é segredo que qualquer motor sério nunca seja misturado em seu código. Html. e Php.. Mas, Html. e Php. Os códigos são muito estreitamente inter-relacionados, por isso, para não violar as regras do "bom tom", foram inventados arquivos TPL.. Esses arquivos são armazenados Código HTML com elementos do modeloque são substituídos em Código PHP.. Vamos olhar mais com mais detalhes usando arquivos TPL. Com um exemplo.

Nós levamos com você O exemplo mais elementar é um painel de usuário onde há seu avatar e uma saudação pelo nome. Primeiro de tudo, crie arquivo de tpl.e deixe ele ligar userpanel.tpl.. Eu te lembro que isso é apenas uma peça Código HTML com elementos do modelo:

Olá,% Nome%!




Nada complicado, é apenas um ordinário Código HTML. Apenas em vez de certos valores valem a pena % Elements_Sablon%.

Agora vamos descobrir Processamento de php.. Tudo será mais do que resumo, mas, infelizmente, de alguma forma. O principal é entender o princípio do trabalho. Então Código PHP. Para processamento criado arquivo de tpl.:

/ * Este recurso, embora use buffers, mas a essência do elementar: retorna o conteúdo do arquivo * /
Função GetTemplate (Nome $) (
Ob_start (); // começa a salvar a saída para o buffer
Incluir ($ nome. "TPL"); // Enviar o conteúdo do arquivo para o buffer
$ Text \u003d ob_get_clean (); // Limpe o buffer e retorne o conteúdo
Retornar texto $; // retorno de texto do arquivo
}
$ NAME \u003d "Nikolai"; // removido da base
$ avatar \u003d "avatars / user_15.jpg"; // removido da base
/ * Começa a substituir os elementos do modelo para dados reais * /
$ Userpanel \u003d str_replace (
Variedade (
"% Nome%",
"% avatar%"
),
Variedade (
$ NAME.
$ avatar.
),
GetTemplate ("userpanel")
);
Echo $ userpanel; // Exibe o resultado final
?>

Esta é a opção mais simples. Tudo comentou, então não deve haver perguntas para este exemplo. E, de fato, qualquer página consiste em tais blocos. Sua tarefa assume os blocos certos (função gettemplate ()), Substitua os dados necessários (a função STR_RELPLOPPLE () e os dados obtidos, por exemplo, da base) e, em seguida, simplesmente conecte todos os blocos como linhas regulares e produza tudo para a página.

Certamente sem Oop. Será muito problemático aqui. Você aumenta uma série de condições (muitas páginas), que rapidamente confundem. Mas o princípio de uso arquivos TPL.Espero que você perceba. Pensam ainda mais sobre como envolver em Oop.De modo que tudo é o mais simples possível em termos de compreensão do código e sua manutenção no futuro.

Depois de criar informação-File, em princípio, o tópico já está definido. Isso significa que você pode ir para a seção de gerenciamento de campo. http://mysite.ru/admin/build/themes. E inclua seu tópico lá. Naturalmente, depois de ligar, não há design Você não verá - a página vai adquirir o estilo de "preto em branco" - em um texto preto de fundo branco.

No entanto, quero notar que, apesar do fato de que não há arquivos em nosso tópico mytheme.info. não significa, o site funcionará como antes - para retirar todo o conteúdo, adicione blocos às regiões ( http://mysite.ru/admin/build/block.) etc. Isto é explicado pelo fato de que o kernel do Drupal incluiu módulos obrigatóriosQue mesmo com a ausência completa de quaisquer arquivos em seu tópico (com exceção do arquivo de informações) permitem continuar trabalhando com o Drupal.

Em princípio, toda a criação de um modelo se resume aos arquivos de modelos sobrepostos (eles têm uma extensão .tpl.php.) módulos padrão do nosso Cms..

O arquivo TPL mais importante (TPL é uma redução de modelo., modelo) page.tpl.php.. Ele é responsável por construir cada página do site. Vamos lidar com o que o arquivo de modelo é:

  • código HTML
  • código PHP.
  • código Javascript. (não é necessário)

Em cada arquivo de modelo, o Drupal transmite dados do site na forma de variáveis \u200b\u200bpadrão. Para cada arquivo de modelo, há 2 tipos de variáveis:

  • variáveis \u200b\u200bque são transmitidas apenas para este arquivo.
  • variáveis \u200b\u200bque são transmitidas para todos os arquivos

Aqui está uma lista de todas as variáveis \u200b\u200bpara page.tpl.php.:

Variáveis \u200b\u200bgerais (para todos os arquivos):

  • $ Base_Path. - caminho básico onde o Drupal foi instalado
  • $ Css. - Array de arquivos CSS conectados ao arquivo de modelo atual
  • $ Diretório. - caminho para a pasta na qual o tópico está instalado
  • $ is_front. - Retorna o valor da verdade se você estiver na página principal
  • $ Logged_in. - Retorna o valor da verdade se você estiver logado
  • $ is_admin. - Retorna o valor da verdade se você tiver acesso ao administrador

Páginas de metadados

  • $ Idioma. - (um objeto) Linguagem atualque é exibido no site
  • $ Language-\u003e Linguagem - Contém sua representação de texto
  • $ Language-\u003e dir - Contém a direção da linguagem. Isso ou será "ltr" (à esquerda para a direita) ou "RTL" (à direita para a esquerda)
  • $ Head_title. - Versão de título de página modificada para uso entre tags
  • $ Cabeça. - inserido entre tags . Contém meta tags, palavras-chave etc.
  • $ estilos. - usado para baixar todos cSS.-Filas para a página atual
  • $ scripts. - usado para baixar todos javascript "ov. para a página atual
  • $ body_classes. - conjunto de classes cSS. Para Taga. . Contém informações sobre o arranjo atual de colunas no site, seu número, o URL atual "E, etc.

Informações sobre o site

  • $ Front_page. - Endereço da página principal do site. É melhor usar essa variável para referência a página principalPorque Inclui um idioma de domínio e prefixo
  • $ logotipo. - Caminho para o logotipo do site, se incluído no site
  • $ Site_name. - Nome do site. Pode ser vazio se você desligar os recursos no arquivo de informação. Configurado em mysite.ru/admin/settings/site-information
  • $ site_slogan. - Site slogan. Pode ser vazio se você desligar os recursos no arquivo de informação. Configurado em mysite.ru/admin/settings/site-information
  • $ Missão. - Site da missão. Pode ser vazio se desativá-lo nos recursos do arquivo de informações. Configurado em mysite.ru/admin/settings/site-information

Navegação

  • $ Search_box. - Contém um código HTML que exibe a string de pesquisa. Pode estar vazio se você desligar o arquivo de informação
  • $ Primary_links.
  • $ Secondary_Links. - uma matriz contendo links de navegação para o site se eles forem permitidos nos recursos do arquivo de informações

Conteúdo da página padrão.

  • $ Restante. - região. Contém código HTML para a coluna da esquerda. Se no arquivo de informação para definir quaisquer regiões, então desaparece
  • $ Breadcrumb. - "migalhas de pão"Para pagina atual
  • $ title. - Título da página
  • $ Ajuda. - Dicas dinâmicas, mostradas principalmente no administrador
  • $ Mensagens. - exibe erros e avisos no site
  • $ Guias. - Referências (tabs) Conectando a página atual com seus sub-capits (por exemplo, para o artigo - com sua página de edição)
  • $ Conteúdo - Página atual de conteúdo
  • $; - região. Contém código HTML para a coluna da direita. Se no arquivo de informação para definir quaisquer regiões, então desaparece

Dados de área inferior / fechamento

  • $ Feed_icon. - String com todos os ícones comentários Para a página atual
  • $ Rodapé_message. - mensagem na parte inferior da página. Configurado em mysite.ru/admin/settings/site-information
  • $ Rodapé. - região. Contém código HTML para a parte inferior da página. Se no arquivo de informação para definir quaisquer regiões, então desaparece
  • $ fechamento. - Etiqueta de fechamento para todos os módulos que alteraram a página. Esta variável deve ser exibida após todo o conteúdo dinâmico. Melhor antes de fechar o corpo da tag

Todos estão listados aqui variáveis \u200b\u200bpadrão. Mas você pode adicionar suas variáveis \u200b\u200baqui como regiões através informação-File ou em qualquer outro papel através do arquivo template.php. (sobre ele um pouco mais tarde).

Agora vou mostrar que código deve estar em page.tpl.php. E em que código é interpretado por navegadores. Antes de você um pedaço de código de page.tpl.php.:

Na primeira linha, há uma verificação, se há uma manchete na página atual. Se não for - então o depurador simplesmente perderá este código e não chegará ao fim dele. Se o cabeçalho existir, o código da página é adicionado ao HTML

, depois de ser impresso o título da página, e tudo isso será fechado por tag

. Se você olhar para o código desta página no navegador, então seria assim:

Lição 4. Arquivos necessários para criar um modelo. Page.tpl.php.

Assim, quase todas as variáveis \u200b\u200bdo site são viradas. Isso é feito para que possamos prescrever estilos para conteúdo, sem saber o que acontece.

Desta forma parece arquivo padrão. page.tpl.php.quem vai junto com o Drupal. Altere o nome das classes, reorganize as variáveis \u200b\u200bem alguns lugares - e veja o que acontece. É necessário para "inchar" como funciona e o que é derivado como resultado.

"- // w3c // dtd xhtml 1.0 estrito // pt" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> "http://www.w3.org/1999/xhtml" XML: lang \u003d "idioma? " lang \u003d. "idioma? " dir \u003d. "dir?\u003e "> <?php print $head_title ; ?> "" >

Caros amigos,

continuamos a publicação de uma série de dicas úteis que facilitam a compreensão de algumas ações e recursos do script. Recentemente, as perguntas geralmente chegam a nós com uma solicitação para fazer uma modificação do script para que você possa usar vários modelos para diferentes seções do site. Por exemplo, a página principal com as notícias deve ter uma estrutura de layout e, por exemplo, a página de feedback é completamente diferente. Ao mesmo tempo, motivando-nos que é possível alterar padrões no painel de administração apenas para as categorias de notícias do site. Mas, de fato, tudo isso pode ser implementado por meios padrão, que este pequeno artigo irá.

Então a primeira coisa que precisamos para a documentação do script, que lê que o modelo main.tpl. Suporta as seguintes tags:

Texto que exibe o texto incluído em tags se a seção especificada do site for pesquisada.


também esta tag tem o oposto

Texto que exibe o texto incluído em tags se você for visualizado qualquer partição, além do especificado


Tome como base o exemplo da tarefa: Certifique-se de que o site use um design do modelo e o feedback no site usou o outro. Com base nisso, precisamos abrir um modelo. main.tpl. e especifique o seguinte:

Aqui todo o texto do modelo será mostrado ao visualizar feedback
Aqui o texto inteiro do modelo, que será mostrado em todos os lugares, exceto feedback


Mas tem um grande menos, seu arquivo de modelo principal main.tpl. Será muito grande, porque Em essência, haverá dois desenhos diferentes, e aqui nós novamente apelamos para a documentação e o roteiro e aprenderemos sobre a existência de uma bela etiqueta: (Incluir arquivo \u003d "my_block.tpl")O que conecta o arquivo my_block.tpl especificado no modelo.

Com base em tudo acima, a implementação final é a seguinte:


No arquivo de modelo feedback_main.tpl. Fazemos um desenho de feedback e no arquivo ALL_MAIN.TPL, tornamos o design do resto do site. Isso é realmente, tudo é fácil e fácil de implementar, não precisa produzir nenhuma modificação do roteiro. Você também pode colocar o design de qualquer partição, você pode combinar várias seções, etc. Leia mais e com mais cuidado, leia a documentação para o roteiro, há bastante útil para enfatizar por si mesmo.

Com os melhores cumprimentos,


A lógica de separação da lógica da lógica de sua exibição é um componente muito importante de um desenvolvimento da web.
Qualquer programador que subiu um pouco mais alto do que o nível de "Hello World", começa a sentir a necessidade de tal divisão. Mas nem todo mundo vem para as conclusões e soluções certas.
Portanto, vou dar aqui as regras mais importantes:
1. Receber código e código de exibição de dados deve ser dividido.
2. Qualquer conclusão deve começar somente depois que todos os dados estiverem prontos para ele.
3. Como resultado, qualquer script deve lidar apenas com o processamento de dados. Depois disso, ele pode enviar algum título de NTTR, ou ligar para um modelo, tendo transferido para ele os dados preparados, ou ambos juntos.
4. O que exatamente usar o décimo é o caso. O mais fácil e acessível - RNR em si, para que os exemplos serão trazidos.

Equívoco
Não, provavelmente, na programação da Web, o tema é tão óbvio, como incompreensível como modelos. Cada um, mais cedo ou mais tarde, chega à conclusão da necessidade de usar modelos. Mas vem, por algum motivo, através de alguns dos mais selvagens equívocos e fantasia.

O equívoco mais simples e óbvio é que os recém-chegados são chamados de modelo feito em um arquivo "design" separado - HTML compartilhado para todas as páginas do site. E acalme-se. Informações dinâmicas, sem dura, retirando o velho eco do velho :-)
Na verdade, o modelizador está envolvido principalmente na saída do conteúdo da mudança das páginas da página. E a conclusão de "design" é uma tarefa menor.

As fantasias são as duas principais:
1. Os modelos são necessários para "designer" para que ele possa editá-los sem entender o PHP.
2. Consequentemente, os modelos servem para separar o PHP da HTML.

Vamos tentar pensar sobre a primeira declaração. Quem é o designer? Esta é uma pessoa que trabalha no Photoshop. HTML Ele muitas vezes não sabe nada. E acima do modelo há uma camada especial ou - na maioria das vezes ... programador próprio! Engraçado, não é?
Agora uma consequência, sobre a separação do PHP da HTML. Excelente. Antes de nós é o objetivo sagrado para separar. Portanto, chegamos a inteligente e escreva:
(Foreach key \u003d item cid \u003d con de \u003d $ contatos)
($ con. nome) - ($ con .nick)

(/ para cada)

Mais engraçado.
"Designer", para o qual tudo estava ficado, desmaiou da felicidade.

Teoria
Acontece que nossas razões para as quais decidimos usar modelos não valem um centavo. E o que agora - não é necessário, acontece, Shabons? Necessidade. Mas primeiro você precisa responder a pergunta - "Por quê?" Para que Precisamos de padrões. E verifique a prática de resposta. Eu perguntei muitas vezes essa pergunta. Mas quase ninguém pode responder. Por que ele precisa de modelos. Acontece, as pessoas fazem algo, sem saber por quê.
Esta é a coisa engraçada.

Durante suas atividades, como programador web, formulei três razões para mim, para quais modelos precisam pessoalmente. Em essência, há dois deles. E descer, finalmente, para um:

Um código - várias visualizações.

Muitas vezes acontece que, em vez de uma informação que você precisa mostrar outra. Por exemplo, o código de trabalho com o banco de dados recebe uma mensagem de erro em vez do texto. Neste caso, em vez da página de notícias, você precisa mostrar completamente diferente - com desculpas e solicitar para vir mais tarde. Usando modelos, isso é feito elementar.

Muitas vezes uma e a mesma informação deve ser mostrada em várias espécies. Por exemplo, uma página regular e uma página de impressão. A informação é a mesma, o código para sua preparação é o mesmo, e o código de saída é diferente. Diante dessa situação, divide muito rapidamente o seu código em duas partes, um dos quais é responsável pela saída, e o segundo não está respondendo. Outro exemplo: Digamos que desejemos produzir informações não diretamente para HTML, mas via pedido do Ajax, no formato JSON. Se tivermos usado um modelo, então mudamos em nosso código exatamente uma linha - chame o modelo para chamar JSON_ENCODE (). E se a nossa conclusão foi misturada com o código de aquisição de dados, o código teria que reescrever o todo!

Em uma situação semelhante: digamos, nosso script está em dois sites. Mais uma cópia de nós em casa. E em casa encontramos um grande bug. Extraído. Agora você precisa atualizar o código em sites. E assim ele é o momento da verdade: se os modelos foram usados \u200b\u200bcorretamente, então simplesmente despejamos código em ambos os sites, e tudo continua a funcionar, como se nada tivesse acontecido! Tal situação como eu acho que é a checagem perfeita da abordagem selecionada ao modelo.

Outro ponto importante que muitos estão faltando (em seu raciocínio teórico, enquanto constantemente enfrentando-o na prática!) - o procedimento para executar o script nem sempre coincide com a ordem de saída no modelo. O exemplo do livro didático é a saída do cabeçalho do artigo na tag . Se nós derivar informações como chegamos, simplesmente não podemos fazer isso - o chapéu <i>já</i> Liberado, no momento em que começamos a receber as notícias do texto.</p><p>Também deve ser lembrado que, além do texto do RNR, os scripts também produzem manchetes HTTP. Que são necessários para exibir antes de qualquer texto, ou mesmo em vez de texto em geral (se, por exemplo, queremos redirecionar o usuário para outra página). Se primeiro implementarmos a lógica do aplicativo, sem exibir qualquer coisa, você não dará a posição NTTR necessária para nós para nós.</p><p>Você pode ter suas próprias razões para usar modelos. Mas apenas com uma condição - essas razões devem ser causadas por uma necessidade real e vital, e não pelas "considerações mais altas" e cuidam de algumas pessoas desconhecidas.</p><p><b><a name="example">Prática</a> </b><br> Agora da teoria, nos voltamos para praticar. <br> No caso mais simples, no show de qualquer página, sempre participaremos de dois modelos: um modelo de site comum e um modelo de conteúdo de página de concreto. <br> Suponha que desejemos fazer uma página com links para sites de amigos. <br> Neste caso, o código simplificado de código será assim:</p><p>Links.php ficheiro em si. Nada é exibido. Basta preparar os dados e, em seguida, faz com que um modelo. <br><span><?<br><span>// Configurações inclusivas. <br></span>incluem "settings.php";</p><p>// Receber dados da base, determine variáveis <br></span>$ Pagetitle \u003d "(! Lang: links" ;!} <br>$ Data \u003d $ DB -\u003e Getall ("Select * a partir de links");</p><p>// Defina o modelo de página e ligue para um modelo geral do site. <br></span>$ Tpl \u003d "tpl_links.php"; <br>incluem "tpl_main.php"; <br> </p><p>Modelo geral (tpl_main.php):</p><p><html xmlns="http://www.w3.org/1999/xhtml"><br> <head><br> <title>MEU SITE.<?=$pagetitle?>






No lugar certo, ligue para o Pan_Links.php (tpl_links.php):





  • "Alvo \u003d" _ em branco "\u003e


    • Olá a todos. Eu quero apresentar outra bicicleta escrita no PHP usando o modelo de objeto de documento. Qual é a diferença dele dos outros representantes de três rodas da mesma espécie? De fato, as diferenças não são tanto, combina o melhor de muitos. Por exemplo:

      1. Full partition html e php.
      2. Nenhum rótulo adicional em padrões de tipo


      3. Capacidade de incorporar para estabelecer o conteúdo de outros arquivos de modelo, tanto do PHP quanto usando uma etiqueta especial no layout.
      4. Capacidade de criar qualquer tag HTML na mosca.
      5. Capacidade de salvar no arquivo HTML tudo o que foi gerado e coletado.
      6. Verifique a existência de um arquivo HTML da página solicitada antes de gerar um modelo.

      De modo que todos imediatamente se tornaram claros quão confortáveis \u200b\u200bé confortável e fácil de recorrer, vou dizer e mostrar como eu usei para criar um dos meus projetos (eu suspeito que vou repromer todos os meus projetos).

      A primeira coisa que costumo fazer é obter todas as informações do banco de dados sobre a página (palavras-chave, descrição da página, nome do modelo e arquivos CSS e JS). Eu mantenho tudo isso em uma matriz de $ cabeça. Além disso, obtenho conteúdo do banco de dados e mantenho uma matriz de $ página. E prossiga para trabalhar com a aula.

      Então, primeiro, eu chamo o construtor de classe e transmitir todos os parâmetros necessários para ele:

      $ Tpl \u003d novo modelo; $ Tpl -\u003e ext \u003d tpl_extension; # Expansão de arquivos no Catálogo de Modelos $ TPL -\u003e HTM \u003d Cache_Extension; # Expansão para páginas já geradas $ tpl -\u003e skin_dir \u003d dir_templates; # Diretório em que todos os modelos de site estão mentindo (por exemplo, modelos) $ tpl -\u003e js_dir \u003d dir_js; # Diretório onde você precisa procurar por arquivos JS $ tpl -\u003e css_dir \u003d dir_css; # Diretório onde estão css $ tpl -\u003e img_dir \u003d dir_img; # Diretório onde $ TPL imagens -\u003e pele \u003d $ _Session ["pele"]; # O nome do modelo que eu quero usar $ tpl -\u003e cache \u003d dir_cache; # Onde salvar html pronto $ tpl -\u003e log \u003d file_t_logs; # Onde escrever logs $ tpl -\u003e tag_start \u003d symbol_start_tag; # O personagem do qual as variáveis \u200b\u200bcomeçam no modelo $ TPL -\u003e tag_end \u003d symbol_end_tag; # Símbolo que termine as variáveis \u200b\u200bno modelo $ TPL -\u003e dir_delimeter \u003d directory_separator; $ Tpl -\u003e espaço \u003d símbole_space; # Símbolo substituindo o espaço.
      Fuf, parece que todas as variáveis \u200b\u200bpassavam, vão mais longe.
      Para não forçar a classe a fazer um trabalho extra, primeiro vamos verificar, de repente já temos um arquivo HTML pronto da página solicitada.
      if ($ tpl -\u003e testpagestatus () \u003d\u003d\u003d true) (requer $ tpl -\u003e cachefileename;) else ($ tpl -\u003e página ("índice"); # Passamos o nome do arquivo de modelo, pela maneira como você Pode passar alguns, através de uma vírgula $ tpl -\u003e Atribuir ("cabeça", $ cabeça); $ tpl -\u003e Atribuir ("conteúdo", $ página); $ tpl -\u003e Build (); # Damos uma equipe para Colete Modelo $ TPL -\u003e ShowPage (); # Coloque para baixo.)
      Aqui é realmente todos os métodos que precisam ser usados \u200b\u200bpara remover a página.

      Agora vamos analisar um par de métodos úteis desta classe. Suponha que já passamos para a classe tudo que você precisa, mas não lhe deu uma equipe a conclusão, porque de repente eles se lembravam de que precisamos criar várias tags HTML no modelo. Isso também é feito muito simples. Primeiro você precisa encontrar o bloco no qual queremos adicionar algo. Você pode encontrar 2 maneiras:

      $ Tpl -\u003e findbyid ("findme"); $ Tpl -\u003e findbybytagname ("div");
      O método FindbyId implica logicamente que no modelo todas as tags são exclusivas no modelo. E o método FindbyTagname retornará o primeiro adequado.
      O resultado que recebemos Pesquisa, devemos passar para o método $ TPL -\u003e Createchild () para poder criar no elemento encontrado, tags filho. O método Createchild pelo caminho, depois de criar um novo item, retorna para nós, para que possamos usar apenas o elemento criado em outro lugar.

      Escolhendo e experimentando, encontrei 3 maneiras de criar tags em um modelo, então vou mostrar 3 exemplos de uma só vez. Exemplo 1:

      Precisamos criar

      lado de dentro

      $ pai \u003d $ tpl -\u003e findbyid ("pai"); $ TPL -\u003e Createchild ($ pai, "div", "id \u003d criança, classe \u003d teste");
      Nós temos:


      Exemplo 2:

      Precisamos criar

      Algum texto
      lado de dentro

      $ pai \u003d $ tpl -\u003e findbyid ("pai"); $ Tpl -\u003e Createchild ($ pai, "div", "id \u003d criança, classe \u003d teste", "algum texto");
      Nós temos:

      Algum texto

      Exemplo3:
      Precisamos criar

      Novo elemento.
      No primeiro elemento span

      $ pai \u003d $ tpl -\u003e findbybytagname ("span"); # (1) $ tpl -\u003e Createchild ($ pai, "div", "novo elemento"); # (2)
      (1) Encontrar um pai não é por ID, e na tag encontrará o primeiro
      (2) Se não precisarmos de atributos, mas apenas o valor do novo item, você não pode transmiti-los

      Nós temos:

      Novo elemento.

      E depois dessas manipulações, eu já chamo de showpage. E aqui suavemente nos aproximamos de outros dois momentos interessantes.
      Imagine a situação que temos um modelo, suponha que este seja um modelo list.tpl com uma lista, por exemplo, telefones celulares:

      (Content.brand)

      (Content.Model)

      (Content.info)

      Se tivermos passado apenas 1 informação de telefone, ele será simplesmente substituído por variáveis \u200b\u200bem seus valores, e se tivermos passado as informações imediatamente por vários telefones, a classe copiará este site quantas vezes as opções de valores vieram . E isso se tornará ele mesmo, em contraste, por exemplo, da classe Xtemplate, que contabilizou cada Valor Chamadas Atribuir e Analisar
      É verdade que não há um momento muito conveniente, se depois desse bloco é mais algum, por exemplo:

      (Content.brand)

      (Content.Model)

      (Content.info)
      Ainda algum bloco

      Então, em tal situação, teremos que aplicar um pequeno truque, embalando nosso celular

      (Content.brand)

      (Content.Model)

      (Content.info)
      Ainda algum bloco

      Nesse caso, todos os telefones celulares aparecerão após o outro, dentro
      , e "alguma outra unidade" permanecerá abaixo.

      E se eu não esquecesse de nada, o último momento é adicionar o conteúdo de outros modelos ao modelo atual.
      Eu ligo novamente para sua fantasia.

      Imagine que o medidor deseja que o conteúdo do arquivo page.html seja adicionado ao bloco de arquivos LIST.HTML, para que ele esteja no local desejado do arquivo list.html adiciona página E quando uma classe vê essa tag, ele irá substituí-lo pelo conteúdo do arquivo Page.html

      O número de tais inserções não é limitado e sua localização não é absolutamente crítica, para que você possa inseri-las qualquer coisa e em qualquer quantidade.

      Isso é provavelmente tudo, se eu me lembro de algo, vou reportar adicionalmente. Obrigado por ler até o fim.

      Tags: php, classe, modelo, tenaz, analisador