Pergunta

É possível obter uma lista de variáveis ??dentro do modelo e preenchê-los usando a lista? Eu gostaria que meus usuários para criar seus modelos que significa que não vai saber de antemão o que variáveis ??estarão disponíveis?

EDIT:

Em meus usuários do modelo irá decidir o que será impresso. Como

$ utilizadores $ Últimas

mas do meu aplicativo eu não saberá quais as variáveis ??são usadas no modelo. Gostaria de obter uma lista como [os usuários mais recentes] que inclui todas as variáveis ??no modelo para que eu possa preenchê-los de acordo com as especificações do usuário.

Foi útil?

Solução

Você pode ser capaz de reunir uma lista, tornando o modelo e usando um ReferenceInsertionEventHandler que constrói uma lista. O problema com isso, porém, é se os modelos têm coisas como:

#if( $foo ) $bar #else $woogie #end

O seu manipulador de eventos apenas iria ver nenhum $ bar ou US $ woogie, não ambos.

Esta classe não suportada (e talvez ultrapassada) podem ajudar:

http: //svn.apache. org / viewvc / velocidade / motor / ramos / 1.x / experimental / templatetool /

Outras dicas

Eu não acho que há uma maneira fácil de fazer isso sem substituir algumas das classes de velocidade.

Aqui estão algumas opções de como eu faria isso:

  1. Adicione todas as variáveis ??possíveis (eu sou assumindo que há um conjunto predefinido deles). Se ele é pesado desempenho olhar em cache.
  2. Peça aos usuários que os dados de que necessitam antes de renderizar modelo (se é uma coisa do tempo apenas uma forma, se essas variáveis ??não mudam frequentemente escrevê-los em db).
  3. Peça aos usuários para fornecer lista de variáveis ??que precisam de alguma específica formato dentro do modelo para facilitar a análise antes renderização de um modelo, como: <!--%%__VARS__%%users,latest%%__VARS__%%-->
  4. Use regexp para procurar o arquivo de modelo e olhar para $ instâncias var, o que poderia ser complicado.

Aqui existem algumas discussões e idéias para resolver isso. A opção preferida é basicamente implementar um andarilho para a AST gerado de um molde. Não trivial.

Eu encontrei este um forro, (salvá-lo como um trecho) se você não pode se lembrar dela.

## #foreach($key in $context.keys) <pre> $key</pre> #end

Hope isso ajuda ...

Oh, remova o ## como é comentado

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top