se apagar essas linhas da predefinição, em jogos que houver o 23º jogador, não aparece
Andei no copilot
Mesmo que os parâmetros 23–30 estejam vazios, as linhas (|-) continuam a ser criadas, produzindo o espaço em branco que se vê na imagem.
A solução é envolver cada linha num #if:
Plain Text
wiki não é totalmente suportado. O realce da sintaxe baseia-se em Plain Text.
{{#if:{{{Nome_visitado23|}}}{{{Nome_visitante23|}}}|
|-
| {{{Nome_visitado23|}}}
| {{{Nome_visitante23|}}}
}}
Mostrar mais linhas
Assim:
- Se existir pelo menos um jogador na posição 23, a linha aparece.
- Se não existir ninguém, a linha não é criada.
- A ficha adapta-se automaticamente a convocatórias de 18, 22, 23, 26 ou 30 jogadores.
Pela imagem, as linhas vazias surgem depois do jogador 22, portanto a predefinição provavelmente está a gerar linhas para os jogadores 23, 24, 25, etc., mesmo sem terem sido preenchidos.
Se me mostrares a parte da predefinição onde são exibidos os suplentes (normalmente dos jogadores 12 em diante), consigo indicar exatamente quais as linhas a alterar.
vou experimentar; deveria ser algo como
se (campo do jogador xxx) = (vazio)
então não escrever html nenhum
mas não sei fazer isso na linguagem wiki
vou ver como dizes
E usares um template mais pequeno como padrao e nos jogadores que excedem o numero de linhas colocas esses if’s que pus mais acima ?
Chatgpt
{{#if: {{{Nome_visitado23|}}}{{{Nome_visitante23|}}} |
|-
| align=“left”|{{{Nome_visitado23|}}}
||{{{Sub_visitado23|}}}
||{{{Cartoes_visitado23|}}}
…
|| align=“right”|{{{Nome_visitante23|}}}
}}
Podes continuar as perguntas no ChatGPT
Começa com a pergunta: " Link da página é https://www.wikisporting.com/index.php?title=2026-04-07_SPORTING\_–_Arsenal Quero retirar as linhas em branco antes da barra que diz treinadores", pois tendo acesso a mais fonte do que queres podes refinar o que ele te apresenta…
Já deste uma volta pelo Claude?
Obrigado; há alguma coisa a falhar, mesmo tentando variações, esta linha limita-se a retirar tudo, quer estajam dados nomes quer não (meti uns nomes de teste na ficha do Arsenal). Vou tentar continuar.
Eu acho que não tenho nenhum LLM instalado, ou pelo menos não me lembro de usar lol. Mas @Paracelsus, podes continuat isto sff? Obrigado.
Reclamas, vão aí, corrigem. Há uns tempos também me mandaram um Zeca cá a casa para fazer a instalação do serviço. Claro está, chegou atrasado, demorou o triplo do tempo que devia ter demorado e deixou-me a casa toda cagada. Final do dia, vai email para a Vodafone, com fotografias, a reclamar do serviço.
Vodafone contacta, envia lá novamente o colaborador para fazer o serviço, com pedido de desculpa e oferta de uma merda qualquer durante não sei quanto tempo.
eu já vou na 3 renovação, aquilo mais de metade do fio da fibra já caiu, e o sitio onde instalaram a caixa, que foi à mostra, deixou muito a desejar. aquilo se partir tb eles também tem de lá ir, cabos e equipamento faz parte do contrato
Isto vai precisar de mais iteracões, mas podemos comecar por aqui (usa em página de teste, não no template em funcionamento, please)
Suggested next step
I recommend editing the template so every player row is conditionally displayed with
#if, because that is the least disruptive fix and should immediately remove the blank lines on pages like the Sporting–Arsenal match page. If you want, I can draft the exact MediaWiki template code for the player-table section in Portuguese, ready to paste intoPredefinição:Ficha de jogo de futebol
Below is a paste-ready replacement for the player-table section that only shows rows where
Nome_*is filled, so empty player lines disappear automatically. It keeps your current parameter names (Nome_visitado1,Sub_visitado1,Cartoes_visitado1,Golos_visitado1, etc.), which means existing match pages should remain compatible.I could not retrieve the raw current template source directly, but the template documentation clearly lists the existing parameter structure from
1to27for both teams, so the safest draft is to replace just the player rendering block with conditional rows based on those same parameter names.Código
Substitua a secção das tabelas dos jogadores por este bloco:
<!-- ========================= -->
<!-- EQUIPA VISITADA -->
<!-- ========================= -->
{| class="wikitable" style="width:100%; text-align:left;"
|+ '''{{{visitado|Equipa visitada}}}'''
! style="width:40%;" | Jogador
! style="width:20%;" | Substituição
! style="width:20%;" | Cartões
! style="width:20%;" | Golos
{{#if:{{{Nome_visitado1|}}}{{{Nome_visitado2|}}}{{{Nome_visitado3|}}}{{{Nome_visitado4|}}}{{{Nome_visitado5|}}}{{{Nome_visitado6|}}}{{{Nome_visitado7|}}}{{{Nome_visitado8|}}}{{{Nome_visitado9|}}}{{{Nome_visitado10|}}}{{{Nome_visitado11|}}}|
|-
! colspan="4" style="text-align:left; background:#f2f2f2;" | Titulares
}}
{{#if:{{{Nome_visitado1|}}}|
|-
| {{{Nome_visitado1}}}
| {{{Sub_visitado1|}}}
| {{{Cartoes_visitado1|}}}
| {{{Golos_visitado1|}}}
}}
{{#if:{{{Nome_visitado2|}}}|
|-
| {{{Nome_visitado2}}}
| {{{Sub_visitado2|}}}
| {{{Cartoes_visitado2|}}}
| {{{Golos_visitado2|}}}
}}
{{#if:{{{Nome_visitado3|}}}|
|-
| {{{Nome_visitado3}}}
| {{{Sub_visitado3|}}}
| {{{Cartoes_visitado3|}}}
| {{{Golos_visitado3|}}}
}}
{{#if:{{{Nome_visitado4|}}}|
|-
| {{{Nome_visitado4}}}
| {{{Sub_visitado4|}}}
| {{{Cartoes_visitado4|}}}
| {{{Golos_visitado4|}}}
}}
{{#if:{{{Nome_visitado5|}}}|
|-
| {{{Nome_visitado5}}}
| {{{Sub_visitado5|}}}
| {{{Cartoes_visitado5|}}}
| {{{Golos_visitado5|}}}
}}
{{#if:{{{Nome_visitado6|}}}|
|-
| {{{Nome_visitado6}}}
| {{{Sub_visitado6|}}}
| {{{Cartoes_visitado6|}}}
| {{{Golos_visitado6|}}}
}}
{{#if:{{{Nome_visitado7|}}}|
|-
| {{{Nome_visitado7}}}
| {{{Sub_visitado7|}}}
| {{{Cartoes_visitado7|}}}
| {{{Golos_visitado7|}}}
}}
{{#if:{{{Nome_visitado8|}}}|
|-
| {{{Nome_visitado8}}}
| {{{Sub_visitado8|}}}
| {{{Cartoes_visitado8|}}}
| {{{Golos_visitado8|}}}
}}
{{#if:{{{Nome_visitado9|}}}|
|-
| {{{Nome_visitado9}}}
| {{{Sub_visitado9|}}}
| {{{Cartoes_visitado9|}}}
| {{{Golos_visitado9|}}}
}}
{{#if:{{{Nome_visitado10|}}}|
|-
| {{{Nome_visitado10}}}
| {{{Sub_visitado10|}}}
| {{{Cartoes_visitado10|}}}
| {{{Golos_visitado10|}}}
}}
{{#if:{{{Nome_visitado11|}}}|
|-
| {{{Nome_visitado11}}}
| {{{Sub_visitado11|}}}
| {{{Cartoes_visitado11|}}}
| {{{Golos_visitado11|}}}
}}
{{#if:{{{Nome_visitado12|}}}{{{Nome_visitado13|}}}{{{Nome_visitado14|}}}{{{Nome_visitado15|}}}{{{Nome_visitado16|}}}{{{Nome_visitado17|}}}{{{Nome_visitado18|}}}{{{Nome_visitado19|}}}{{{Nome_visitado20|}}}{{{Nome_visitado21|}}}{{{Nome_visitado22|}}}{{{Nome_visitado23|}}}{{{Nome_visitado24|}}}{{{Nome_visitado25|}}}{{{Nome_visitado26|}}}{{{Nome_visitado27|}}}|
|-
! colspan="4" style="text-align:left; background:#f2f2f2;" | Suplentes
}}
{{#if:{{{Nome_visitado12|}}}|
|-
| {{{Nome_visitado12}}}
| {{{Sub_visitado12|}}}
| {{{Cartoes_visitado12|}}}
| {{{Golos_visitado12|}}}
}}
{{#if:{{{Nome_visitado13|}}}|
|-
| {{{Nome_visitado13}}}
| {{{Sub_visitado13|}}}
| {{{Cartoes_visitado13|}}}
| {{{Golos_visitado13|}}}
}}
{{#if:{{{Nome_visitado14|}}}|
|-
| {{{Nome_visitado14}}}
| {{{Sub_visitado14|}}}
| {{{Cartoes_visitado14|}}}
| {{{Golos_visitado14|}}}
}}
{{#if:{{{Nome_visitado15|}}}|
|-
| {{{Nome_visitado15}}}
| {{{Sub_visitado15|}}}
| {{{Cartoes_visitado15|}}}
| {{{Golos_visitado15|}}}
}}
{{#if:{{{Nome_visitado16|}}}|
|-
| {{{Nome_visitado16}}}
| {{{Sub_visitado16|}}}
| {{{Cartoes_visitado16|}}}
| {{{Golos_visitado16|}}}
}}
{{#if:{{{Nome_visitado17|}}}|
|-
| {{{Nome_visitado17}}}
| {{{Sub_visitado17|}}}
| {{{Cartoes_visitado17|}}}
| {{{Golos_visitado17|}}}
}}
{{#if:{{{Nome_visitado18|}}}|
|-
| {{{Nome_visitado18}}}
| {{{Sub_visitado18|}}}
| {{{Cartoes_visitado18|}}}
| {{{Golos_visitado18|}}}
}}
{{#if:{{{Nome_visitado19|}}}|
|-
| {{{Nome_visitado19}}}
| {{{Sub_visitado19|}}}
| {{{Cartoes_visitado19|}}}
| {{{Golos_visitado19|}}}
}}
{{#if:{{{Nome_visitado20|}}}|
|-
| {{{Nome_visitado20}}}
| {{{Sub_visitado20|}}}
| {{{Cartoes_visitado20|}}}
| {{{Golos_visitado20|}}}
}}
{{#if:{{{Nome_visitado21|}}}|
|-
| {{{Nome_visitado21}}}
| {{{Sub_visitado21|}}}
| {{{Cartoes_visitado21|}}}
| {{{Golos_visitado21|}}}
}}
{{#if:{{{Nome_visitado22|}}}|
|-
| {{{Nome_visitado22}}}
| {{{Sub_visitado22|}}}
| {{{Cartoes_visitado22|}}}
| {{{Golos_visitado22|}}}
}}
{{#if:{{{Nome_visitado23|}}}|
|-
| {{{Nome_visitado23}}}
| {{{Sub_visitado23|}}}
| {{{Cartoes_visitado23|}}}
| {{{Golos_visitado23|}}}
}}
{{#if:{{{Nome_visitado24|}}}|
|-
| {{{Nome_visitado24}}}
| {{{Sub_visitado24|}}}
| {{{Cartoes_visitado24|}}}
| {{{Golos_visitado24|}}}
}}
{{#if:{{{Nome_visitado25|}}}|
|-
| {{{Nome_visitado25}}}
| {{{Sub_visitado25|}}}
| {{{Cartoes_visitado25|}}}
| {{{Golos_visitado25|}}}
}}
{{#if:{{{Nome_visitado26|}}}|
|-
| {{{Nome_visitado26}}}
| {{{Sub_visitado26|}}}
| {{{Cartoes_visitado26|}}}
| {{{Golos_visitado26|}}}
}}
{{#if:{{{Nome_visitado27|}}}|
|-
| {{{Nome_visitado27}}}
| {{{Sub_visitado27|}}}
| {{{Cartoes_visitado27|}}}
| {{{Golos_visitado27|}}}
}}
|}
<!-- ========================= -->
<!-- EQUIPA VISITANTE -->
<!-- ========================= -->
{| class="wikitable" style="width:100%; text-align:left;"
|+ '''{{{visitante|Equipa visitante}}}'''
! style="width:40%;" | Jogador
! style="width:20%;" | Substituição
! style="width:20%;" | Cartões
! style="width:20%;" | Golos
{{#if:{{{Nome_visitante1|}}}{{{Nome_visitante2|}}}{{{Nome_visitante3|}}}{{{Nome_visitante4|}}}{{{Nome_visitante5|}}}{{{Nome_visitante6|}}}{{{Nome_visitante7|}}}{{{Nome_visitante8|}}}{{{Nome_visitante9|}}}{{{Nome_visitante10|}}}{{{Nome_visitante11|}}}|
|-
! colspan="4" style="text-align:left; background:#f2f2f2;" | Titulares
}}
{{#if:{{{Nome_visitante1|}}}|
|-
| {{{Nome_visitante1}}}
| {{{Sub_visitante1|}}}
| {{{Cartoes_visitante1|}}}
| {{{Golos_visitante1|}}}
}}
{{#if:{{{Nome_visitante2|}}}|
|-
| {{{Nome_visitante2}}}
| {{{Sub_visitante2|}}}
| {{{Cartoes_visitante2|}}}
| {{{Golos_visitante2|}}}
}}
{{#if:{{{Nome_visitante3|}}}|
|-
| {{{Nome_visitante3}}}
| {{{Sub_visitante3|}}}
| {{{Cartoes_visitante3|}}}
| {{{Golos_visitante3|}}}
}}
{{#if:{{{Nome_visitante4|}}}|
|-
| {{{Nome_visitante4}}}
| {{{Sub_visitante4|}}}
| {{{Cartoes_visitante4|}}}
| {{{Golos_visitante4|}}}
}}
{{#if:{{{Nome_visitante5|}}}|
|-
| {{{Nome_visitante5}}}
| {{{Sub_visitante5|}}}
| {{{Cartoes_visitante5|}}}
| {{{Golos_visitante5|}}}
}}
{{#if:{{{Nome_visitante6|}}}|
|-
| {{{Nome_visitante6}}}
| {{{Sub_visitante6|}}}
| {{{Cartoes_visitante6|}}}
| {{{Golos_visitante6|}}}
}}
{{#if:{{{Nome_visitante7|}}}|
|-
| {{{Nome_visitante7}}}
| {{{Sub_visitante7|}}}
| {{{Cartoes_visitante7|}}}
| {{{Golos_visitante7|}}}
}}
{{#if:{{{Nome_visitante8|}}}|
|-
| {{{Nome_visitante8}}}
| {{{Sub_visitante8|}}}
| {{{Cartoes_visitante8|}}}
| {{{Golos_visitante8|}}}
}}
{{#if:{{{Nome_visitante9|}}}|
|-
| {{{Nome_visitante9}}}
| {{{Sub_visitante9|}}}
| {{{Cartoes_visitante9|}}}
| {{{Golos_visitante9|}}}
}}
{{#if:{{{Nome_visitante10|}}}|
|-
| {{{Nome_visitante10}}}
| {{{Sub_visitante10|}}}
| {{{Cartoes_visitante10|}}}
| {{{Golos_visitante10|}}}
}}
{{#if:{{{Nome_visitante11|}}}|
|-
| {{{Nome_visitante11}}}
| {{{Sub_visitante11|}}}
| {{{Cartoes_visitante11|}}}
| {{{Golos_visitante11|}}}
}}
{{#if:{{{Nome_visitante12|}}}{{{Nome_visitante13|}}}{{{Nome_visitante14|}}}{{{Nome_visitante15|}}}{{{Nome_visitante16|}}}{{{Nome_visitante17|}}}{{{Nome_visitante18|}}}{{{Nome_visitante19|}}}{{{Nome_visitante20|}}}{{{Nome_visitante21|}}}{{{Nome_visitante22|}}}{{{Nome_visitante23|}}}{{{Nome_visitante24|}}}{{{Nome_visitante25|}}}{{{Nome_visitante26|}}}{{{Nome_visitante27|}}}|
|-
! colspan="4" style="text-align:left; background:#f2f2f2;" | Suplentes
}}
{{#if:{{{Nome_visitante12|}}}|
|-
| {{{Nome_visitante12}}}
| {{{Sub_visitante12|}}}
| {{{Cartoes_visitante12|}}}
| {{{Golos_visitante12|}}}
}}
{{#if:{{{Nome_visitante13|}}}|
|-
| {{{Nome_visitante13}}}
| {{{Sub_visitante13|}}}
| {{{Cartoes_visitante13|}}}
| {{{Golos_visitante13|}}}
}}
{{#if:{{{Nome_visitante14|}}}|
|-
| {{{Nome_visitante14}}}
| {{{Sub_visitante14|}}}
| {{{Cartoes_visitante14|}}}
| {{{Golos_visitante14|}}}
}}
{{#if:{{{Nome_visitante15|}}}|
|-
| {{{Nome_visitante15}}}
| {{{Sub_visitante15|}}}
| {{{Cartoes_visitante15|}}}
| {{{Golos_visitante15|}}}
}}
{{#if:{{{Nome_visitante16|}}}|
|-
| {{{Nome_visitante16}}}
| {{{Sub_visitante16|}}}
| {{{Cartoes_visitante16|}}}
| {{{Golos_visitante16|}}}
}}
{{#if:{{{Nome_visitante17|}}}|
|-
| {{{Nome_visitante17}}}
| {{{Sub_visitante17|}}}
| {{{Cartoes_visitante17|}}}
| {{{Golos_visitante17|}}}
}}
{{#if:{{{Nome_visitante18|}}}|
|-
| {{{Nome_visitante18}}}
| {{{Sub_visitante18|}}}
| {{{Cartoes_visitante18|}}}
| {{{Golos_visitante18|}}}
}}
{{#if:{{{Nome_visitante19|}}}|
|-
| {{{Nome_visitante19}}}
| {{{Sub_visitante19|}}}
| {{{Cartoes_visitante19|}}}
| {{{Golos_visitante19|}}}
}}
{{#if:{{{Nome_visitante20|}}}|
|-
| {{{Nome_visitante20}}}
| {{{Sub_visitante20|}}}
| {{{Cartoes_visitante20|}}}
| {{{Golos_visitante20|}}}
}}
{{#if:{{{Nome_visitante21|}}}|
|-
| {{{Nome_visitante21}}}
| {{{Sub_visitante21|}}}
| {{{Cartoes_visitante21|}}}
| {{{Golos_visitante21|}}}
}}
{{#if:{{{Nome_visitante22|}}}|
|-
| {{{Nome_visitante22}}}
| {{{Sub_visitante22|}}}
| {{{Cartoes_visitante22|}}}
| {{{Golos_visitante22|}}}
}}
{{#if:{{{Nome_visitante23|}}}|
|-
| {{{Nome_visitante23}}}
| {{{Sub_visitante23|}}}
| {{{Cartoes_visitante23|}}}
| {{{Golos_visitante23|}}}
}}
{{#if:{{{Nome_visitante24|}}}|
|-
| {{{Nome_visitante24}}}
| {{{Sub_visitante24|}}}
| {{{Cartoes_visitante24|}}}
| {{{Golos_visitante24|}}}
}}
{{#if:{{{Nome_visitante25|}}}|
|-
| {{{Nome_visitante25}}}
| {{{Sub_visitante25|}}}
| {{{Cartoes_visitante25|}}}
| {{{Golos_visitante25|}}}
}}
{{#if:{{{Nome_visitante26|}}}|
|-
| {{{Nome_visitante26}}}
| {{{Sub_visitante26|}}}
| {{{Cartoes_visitante26|}}}
| {{{Golos_visitante26|}}}
}}
{{#if:{{{Nome_visitante27|}}}|
|-
| {{{Nome_visitante27}}}
| {{{Sub_visitante27|}}}
| {{{Cartoes_visitante27|}}}
| {{{Golos_visitante27|}}}
}}
|}
Como funciona
Each row is wrapped in
{{#if:{{{Nome_...|}}}| ... }}, so the line is rendered only when that player name exists. arsenal I also made the headingsTitularesandSuplentesconditional, so those headers appear only if at least one player exists in that block.This directly matches the parameter model documented in the template page, which lists player fields from
1–11as starters and12–27as substitutes for both home and away teams.Observações úteis
If your wiki does not have ParserFunctions enabled,
#ifwill not work; but on a normal MediaWiki installation this is the standard way to suppress empty rows. If you want an even cleaner structure, the next step would be to move one row into a small helper template and reuse it, because the current template documentation shows a very repetitive field design that is harder to maintain over time.A small improvement you may also want is to replace empty cells with a dash, for example
{{{Sub_visitado1|—}}}, but I left them blank here so the output stays close to your current behavior.Would you like me to produce version 2, with the same logic but refactored into a helper subtemplate such as
Predefinição:Linha jogador, so maintenance becomes much easier?
Eu acho que não tenho nenhum LLM instalado, ou pelo menos não me lembro de usar
Isso é fácil. É ir a um online e ir perguntando em português ou inglês como fazer o que queres.
O Paracelsus já te fez um bom trabalho sobre isso. Eu apenas te mostrei como começar.
Tens aqui alguns, e todos têm uma componente grátis.
Começas por uma pergunta e depois podes ir iterando e melhorando a forma como te apresenta os resultados.
Eu acho que não tenho nenhum LLM instalado, ou pelo menos não me lembro de usar
Isso resolve-se, até porque não é necessário instalar. A conta gratuita dá para ajudar a tratar disso, pode é demorar mais tempo.
Tenta ser o mais preciso possível na descrição do problema que estás a encontrar e no objectivo e funcionalidades pretendidas.
pois, não funciona, limtam-se a desaparecer todos as linhas incluindo as que têm jogador.
PS. Aliás, mesmo se resultasse não poderia ficar bem, porque separa os jogadores da equipa da casa dos visitantes, e o que faria seria meter uma linha para os visitados e depois uma linha para os visitantes.
Acho que os LLM não percebem de código Wiki! Veem um código com uns IFs, e tentam reproduzir o que sabem de outras linguagens. Isto seria preciso alguém que percebesse do código Wiki. @AFA23, percebes disto sff?
pois, não funciona, limtam-se a desaparecer todos as linhas incluindo as que têm jogador.
PS. Aliás, mesmo se resultasse não poderia ficar bem, porque separa os jogadores da equipa da casa dos visitantes, e o que faria seria meter uma linha para os visitados e depois uma linha para os visitantes.
Acho que os LLM não percebem de código Wiki! Veem um código com uns IFs, e tentam reproduzir o que sabem de outras linguagens. Isto seria preciso alguém que percebesse do código Wiki. @AFA23, percebes disto sff?
Bem, isso não é verdade, já que o código da mediawiki é público e os LLMs sabem tanto dele como dos outros.
O que é necessário é fazer um processo iterativo. Por exemplo, quando da um ecrã em que faz desaparecer todas as linhas tem de se reportar isso ao motor de AI e a seguir ele vai sugerir outra coisa ou pedir o código-fonte da página para ver o que não ficou bem. Pode demorar 30 minutos e umas 10 ou 15 iterações, mas é quase garantido que fica bem no final.
Mete na secção dos Wikidevs o link da página em questão que eu continuo o processo.

