{par ...}

O critério {par ...} (por) determina uma ordem de apresentação dos resultados de um loop.

O critério {par ...} determina uma ordemde apresentação dos resultados de um loop. Por exemplo, pode-se ordenar as matérias {par date} (por data), {par date_redac} (por data de redação) ou ainda {par titre} (por título)…

Odernar por número

Pode-se ordenar a exibição dos elementos em função do prefixo numérico de um dos seus campos (titre, sur-titre, ps…) [1]. Para isso, usa-se o critério: {par num campo}.
Por exemplo, para ordenar segundo o prefixo numérico associado ao título, {par num titre} exibirá os elementos em ordem crescente dos prefixos numéricos dos seus títulos, começando (se houver) pelos títulos não prefixados (que, eles mesmos, não serão ordenados).

Note:

-  o critério {par num ...} também leva em conta todos os valores do campo que começam por um algarismo; assim, {par num surtitre} levará em conta o subtítulo "14 juillet 1789" e o posicionará entre "10. Subtítulo qualquer" e "20. Outro subtítulo".

-  para os prefixos que começam por 0 (zero), a ordenação gerada por {par num titre} será do prefixo com o maior número de zeros para o prefixo com o menor: 00000. Título…, 0000. Título…, 000. Título…, 0. Título…. Estes serão exibidos após as matérias que contêm números superiores a zero.

Ordenar por idioma e ordem alfabética

No contexto de um site multilingue, o critério {par multi ...} permite ordenar alfabeticamente em cada idioma separadamente; por exemplo: {par multi titre}. Sem a inclusão de multi, o loop faria a ordenação alfabética com todos os idiomas misturados.

Ordenar por vários campos

Pode-se ordenar os elementos segundo vários campos. Ao usar {par campo1, campo2}, determinam-se sequências de ordenação consecutivas: os resultados são primeiro ordenados pelo campo1 e, em seguida, pelo campo2, nos casos em que o campo1 for idêntico. Pode-se especificar tantos campos quantos forem necessários.
Por exemplo: {par date, titre} exibirá os resultados ordenados por data (da mais antiga para a mais recente) e, entre os que tiverem a mesma data, por título (em ordem alfabética).

Pode-se especificar vários critérios {par ...} num mesmo loop.
Por exemplo: {par date} {par titre} é equivalente ao exemplo anterior {par date, titre}.

Atenção:
Quando se usam vários critérios de ordenação, o critério {inverse} aplica-se apenas ao critério de ordenação imediatamente anterior. Assim, {par date} {par titre} {inverse} inverterá a ordenação apenas no campo titre (de Z para A), mantendo a ordenação por date padrão (da mais antiga para a mais recente).

Foi por isso que se introduziu a notação {!par ...}, que inverte um critério de ordenação em particular. Por exemplo: {!par date} {par num titre} ordena os resultados por data decrescente (da mais recente para a mais antiga) e, em seguida, pelo número crescente para os títulos com a mesma data.

No entanto, {!par date, num titre} ordena os resultados por data decrescente (da mais recente para a mais antiga) e depois pelo número também decrescente para os títulos com a mesma data; esta notação é, assim, equivalente a {!par date} {!par num titre}, mas diferente de {par date, num titre} {inverse} (onde {inverse} só se aplica a num titre).

É importante, por isso, escolher cuidadosamente a notação dos critérios, consoante os resultados que pretende obter.

Ordenar dinamicamente

O critério {par ...} aceita também nomes de campos SQL especificados dinamicamente, particularmente pela tag #ENV. Por exemplo: {par #ENV{variavel}} ordenará pelo valor de "variavel" passada no URL &variavel=titre, na condição que esse valor seja um campo SQL da tabela especificada pelo loop.

Assim, &variavel=num titre não funcionará porque não há nenhum campo SQL com o nome num titre. Neste caso, é preferível usar o critério {tri}.

Ordem aleatória

Pode-se obter uma lista apresentada numa ordem aleatória usando-se o critério {par hasard}.

Ordenar os elementos de uma busca por pertinência

Para classificar os resultados de um formulário de busca por pertinência, usa-se o critério {par points} {inverse}; um simples {par points} ordenará os resultados da menor para a maior pertinência.

Histórico

SPIP 4.0

A partir do SPIP 4.0, o critério {par num xxx} integra automaticamente o critério {par sinum xxx} antes dele. Assim, em (ARTICLES){par num titre}, as matérias sem números (ou com o número 0) entra após as matérias que têm num número.

Ou seja, comporta-se como a escrita {par sinum xxx, num xxx} usável no SPIP 3.2.

Por consequência, também, os títulos contendo 0. Título ou 000. Título (inteiramente com zeros) exibem-se agora após os títulos com números.

SPIP 3.2

A partir do SPIP 3.2 o critério {par sinum xxx} permite inserir as matérias com números antes das que não os têm. {par sinum xxx, num xxx} permite assim ordenar por número, colocando as matérias sem números após as que os têm (ao contrário de apenas {par num xxx}).

Para ter os elementos numerados antes dos que não têm numeros, é preciso usar o critério {par sinum nome_campo}. Este critério coloca os elementos numerados antes dos não-numerados, mas não ordena os elementos no interior destes dois grupos. Deve ser portanto usado com um outro critério de ordenação.

Exemplo: {par sinum titre, num titre, titre} colocará os elementos sem número no fim da lista e, em seguida, ordenará no interior desses dois grupos por num titre e titre.

Ver também o critério {inverse}

Notas

[1O formato do prefixo numérico é: um número de n algarismos, seguido de um ponto ou um fechamento de parêntesis, seguido de um espaço.

Exemplos:
015.Um título
51)Outro título

Autor Ricardo Porto Publié le : Mis à jour : 10/09/25

Traductions : English, français, Nederlands, Português