Assistência ao utilizador para autores de conteúdo

Suplementos lógicos

Os suplementos lógicos são utilizados para a lógica de programação. Este tópico contém informações adicionais sobre alguns destes suplementos.

Suplemento de apresentação Comment

Utilize o suplemento de apresentação Comment para inserir comentários que pretende que apenas sejam visualizados por autores de conteúdo. Todo o texto escrito entre os controlos de início e fim de suplemento é tratado como comentário. Este texto não é processado, mas é omitido quando o conteúdo da Web é apresentado. Exemplo:
[Plugin:Comment] This is a comment [/Plugin:Comment]

Suplementos ifEmpty e ifNotEmpty

Estes suplementos são utilizados para apresentar o texto entre parêntesis rectos, caso um parâmetro de valor esteja ou não vazio.
[Plugin:ifEmpty value=" "]

[Plugin:ifNotEmpty value=" "]

Suplemento de apresentação Equals

Utilize o suplemento Equals para inserir a marcação no conteúdo da Web apenas se os valores dos dois atributos de texto forem correspondente. O suplemento fornece os dois atributos text1 e text2. Toda a marcação entre os controlos de início e de fim é apresentada como parte do conteúdo da Web apenas se os valores destes dois atributos coincidirem.

O exemplo que se segue apresenta a marcação entre os controlos de início e fim de suplemento apenas se o conteúdo apresentado se encontrar numa etapa do fluxo de trabalho denominada Revisão.
[Plugin:Equals text1="Review" text2="[Property type='content' 
               context='current' field='currentstage']"] 
Document in review
[/Plugin:Equals]

Suplemento de apresentação NotEquals

Utilize o suplemento de apresentação NotEquals para inserir a marcação no conteúdo da Web apenas se os valores dos dois atributos de texto não forem correspondentes. O suplemento fornece os dois atributos text1 e text2. Toda a marcação entre os controlos de início e de fim é apresentada com o conteúdo da Web apenas se os valores destes dois atributos não coincidirem.

O exemplo seguinte apresenta a marcação entre os controlos de início e de fim apenas se o elemento type do conteúdo apresentado não tiver o valor Internal:
[Plugin:NotEquals text1="Internal" text2="[Element type='content' 
                  context='current' key='type']"] 
Public document
[/Plugin:NotEquals]

Suplemento de apresentação Matches

Utilize o suplemento de apresentação Matches para inserir condicionalmente a marcação no conteúdo da Web, avaliando uma expressão global relativamente a um valor de texto transmitido. O suplemento fornece dois atributos: text e pattern. Toda a marcação entre os controlos de início e de fim do suplemento é apresentada se o valor do atributo text corresponder à expressão global no atributo pattern.

Também pode ter uma correspondência de padrões negativa. Neste caso, a marcação do corpo do controlo do suplemento é apresentada apenas se o texto não corresponder à expressão global. Para utilizar a correspondência de padrões negativa, defina o atributo negative-match como true.

Nota: O dialecto de expressão regular que é utilizado pelo suplemento é definido pela classe de linguagem Java java.util.regex.Pattern.
Exemplos:
  • O exemplo que se segue apresenta a marcação entre os controlos de início e fim apenas se o conteúdo apresentado se encontrar numa etapa do fluxo de trabalho cujo nome contém a palavra Review.
    [Plugin:Matches text="[Property type='content' context='current' 
                    field='currentstage']" pattern=".*Review.*"] 
    Document in review
    [/Plugin:Matches]
    Para ignorar o tipo de letra (maiúscula/minúscula) utilizado para a correspondência, adicione a sequência de controlo (?i) como prefixo da expressão regular. O seguinte exemplo também faz a correspondência com nomes de etapas do fluxo de trabalho, tais como review :
    [Plugin:Matches text="[Property type='content' context='current' 
                    field='currentstage']" pattern="(?i).*review.*"] 
    Document in review
    [/Plugin:Matches]
  • O exemplo que se segue apresenta a marcação entre os controlos de início e fim apenas se o conteúdo apresentado se encontrar numa etapa de fluxo de trabalho cujo nome não contém a palavra Review:
    [Plugin:Matches text="[Property type='content' context='current' 
         field='currentstage']" negative-match="true" pattern=".*Review.*"] 
    Document not in review
    [/Plugin:Matches]
  • Também pode utilizar grupos de captura para expressões globais. Para aceder ao valor de um grupo, utilize o suplemento MatchedGroup. Apenas pode utilizar este suplemento entre os controlos de início e de fim do suplemento de apresentação Matches. Este fornece o atributo group para obter um grupo de captura pelo respectivo índice. Por exemplo, para aceder à primeira palavra numa lista de palavras separadas por vírgulas, utilize o suplemento do seguinte modo:
    [Plugin:Matches pattern="(.*)(,)(.*)" text="key1,key2"] 
    First key is: [Plugin:MatchedGroup group="1"]
    [/Plugin:Matches]

Suplemento de apresentação Otherwise

Utilize o suplemento de apresentação Otherwise para inserir condicionalmente a marcação no conteúdo da Web, se algum dos seguintes suplementos de apresentação for avaliado como false antes de o suplemento Otherwise ser avaliado:
  • Suplemento de apresentação Equals
  • Suplemento de apresentação NotEquals
  • Suplemento de apresentação Matches
Exemplos:
  • O seguinte exemplo apresenta a marcação entre os controlos de início e de fim do suplemento de apresentação Otherwise (Document not in review) apenas se o conteúdo apresentado não estiver numa etapa de fluxo de trabalho denominada Review.
    [Plugin:Equals text1="Review" text2=" [Property type='content'
                   context='current' field='currentstage']"] 
      Document in review.
    [/Plugin:Equals]
    [Plugin:Otherwise]
      Document in not review.
    [/Plugin:Otherwise]
  • O seguinte exemplo apresenta a marcação entre os controlos de início e de fim do suplemento de apresentação Otherwise (Internal document) apenas se o elemento type do conteúdo apresentado tiver o valor Internal.
    [Plugin:NotEquals text1="Internal" text2=" [Element type='content'
                      context='current' key='type']"]
      Public document
    [/Plugin:NotEquals]
    [Plugin:Otherwise]
      Internal document
    [/Plugin:Otherwise]
  • O seguinte exemplo apresenta a marcação entre os controlos de início e de fim do suplemento de apresentação Otherwise (Document not in review) apenas se o conteúdo apresentado estiver numa etapa de fluxo de trabalho cujo nome não contém a palavra Review.
    [Plugin:Matches text=" [Property type='content' context='current'
                    field='currentstage']" pattern=".*Review.*"]
      Document in review
    [/Plugin:Matches]
    [Plugin:Otherwise]
      Document not in review
    [/Plugin:Otherwise]

Também pode imbricar os suplementos de apresentação Equals, NotEquals e Matches ao adicionar condicionalmente a marcação. Ao utilizar estes suplementos em conjunto desta forma, poderá pretender ter diferentes suplementos Otherwise associados a cada suplemento de apresentação condicional. Para associar um suplemento a um suplemento Otherwise específico, adicione um atributo scope com o mesmo valor ao suplemento de apresentação condicional e ao suplemento Otherwise. Caso não seja especificado um atributo scope para o suplemento Otherwise, é aplicado ao suplemento condicional avaliado pela última vez.

Exemplos:
  • O seguinte exemplo utiliza vários suplementos de apresentação imbricados para apresentar condicionalmente a marcação. O suplemento Otherwise com o atributo scope definido como 1 refere-se ao suplemento Equals. O suplemento Otherwise com o atributo scope definido como 2 refere-se ao suplemento de apresentação Matches.
    [Plugin:Equals text1="Review" text2=" [Property type='content'
                   context='current' field='currentstage']" scope="1"]
      Document in review.
      [Plugin:Matches text=" [Property type='content' context='current'
         field='authors']" pattern="(.*)(,)(.*)" scope="2"]
        Multiple authors
      [/Plugin:Matches]
      [Plugin:Otherwise scope="2"]
        Only one author
      [/Plugin:Otherwise]
    [/Plugin:Equals]
    [Plugin:Otherwise scope="1"]
      Document in not review.
    [/Plugin:Otherwise]