Por trás do líder do projeto de novos pacotes, a equipe de revisão de temas lança a solução de avisos administrativos

Publicados: 2019-09-19

Como parte do plano da equipe de revisão de temas do WordPress para conter avisos de administração intrusivos, a equipe empurrou a versão 1.0 de seu pacote de avisos de administração para o público. O novo pacote fornece uma API padrão para autores de temas exibirem avisos de administração.

Ari Stathopoulos assumiu a liderança do projeto de pacotes no final de agosto. Stathopoulos é o principal desenvolvedor e criador da estrutura de personalização Kirki altamente cotada, que atualmente possui mais de 300.000 instalações ativas como um plug-in. No entanto, a estrutura também está disponível como módulos separados que os autores de temas podem agrupar em seus temas.

O pacote Admin Notices é o terceiro pacote produzido pela equipe e o primeiro que Stathopoulos liderou.

Adicionar um aviso básico de administração no WordPress é relativamente fácil para a maioria dos desenvolvedores. No entanto, lidar com recursos como ações descartáveis ​​persistentes é mais complexo. O pacote Admin Notices trata disso imediatamente.

Algumas opções para o pacote incluem a capacidade de:

  • Defina um título e uma mensagem.
  • Selecione um tipo que inclua a classe de interface do usuário apropriada (informações, sucesso, aviso, erro).
  • Escolha em quais telas de administração o aviso aparece.
  • Limite a mensagem por capacidade do usuário para que ela não apareça para todos os usuários.
Captura de tela de informações, sucesso, avisos e avisos de erro com o pacote Admin Notices.

A captura de tela acima mostra um exemplo de saída de aviso básico do administrador para os quatro tipos disponíveis. A ação de dispensa é tratada por JavaScript e funciona sem recarregar a página. Uma vez dispensado, os usuários não verão mais o aviso.

“Acho que a coisa mais difícil foi decidir o quão restritivo queríamos que fosse”, disse Stathopoulos sobre os desafios de construir este pacote. O pacote restringe os autores do tema a elementos de parágrafo, link, negrito e itálico na versão 1.0. Não deixa muito espaço para experimentação, mas a padronização é o objetivo. Quanto mais elementos permitidos, mais provável é que a ferramenta não resolva o problema da equipe de manter os avisos do administrador discretos.

As notificações do usuário são um problema complexo

O WordPress não fornece uma API formal para notificações de usuários. No entanto, ele fornece um conjunto padrão de classes CSS e um gancho para anexar avisos. O Codex também tem alguns exemplos de boas práticas. A falta de uma API formal deixou os autores de temas e plugins com seus próprios dispositivos. Os usuários sofreram por causa de implementações muito variadas e problemas comuns, como anúncios não descartáveis.

Tim Hengeveld propôs uma API do Notification Center no Trac em 2018. O ticket tem uma discussão saudável e contínua e algumas propostas de interface do usuário. A proposta ainda está marcada como "Aguardando revisão" e é improvável que seja lançada antes do WordPress 5.4 ou posterior.

Atualmente, muitos plugins e temas também usam avisos de administração para integração de usuários, que é um problema separado que precisa de uma solução. Há um ticket de 4 anos que discute a integração de novos usuários do WordPress, mas não há muito movimento para resolver esse problema para plugins e temas.

Embora o pacote do TRT não resolva todos os problemas associados às notificações do usuário, ele ajuda a limitar alguns dos danos de curto prazo.

Mais pacotes em andamento

Mais pacotes estão sendo construídos e outros estão em fase de planejamento.

O objetivo do projeto geral é fornecer aos autores de temas módulos drop-in que eles podem agrupar com seus temas. Os pacotes são todos escritos em PHP 5.6+ na esperança de levar os autores de temas a práticas de codificação mais modernas (relativamente falando, já que o PHP 7.4 será lançado este ano). Também ajudará a agilizar o processo de revisão se mais autores de temas adotarem os pacotes em vez de construir tudo internamente.

“Se construirmos pacotes para as coisas mais solicitadas, esperamos capacitar as pessoas a construir temas de qualidade com mais facilidade”, explicou Stathopoulos. “Penso nos pacotes como blocos de construção para temas.”

Stathopoulos está trabalhando em um controle personalizador para selecionar uma cor com transparência alfa, que pode ser lançado já na próxima semana. Ele fornecerá aos usuários do tema mais controle sobre como suas cores aparecem para os temas que o implementam.

“Depois de construir o básico, quero me concentrar em pacotes que melhorem a privacidade e a privacidade nos temas – duas áreas em que os temas estão aquém”, disse ele. “Isso ajudaria muitas pessoas, e esse é, em última análise, nosso objetivo.”

Os autores de temas se acostumaram a instalar pacotes JavaScript e CSS via NPM nos últimos anos. No entanto, o uso do Composer como gerenciador de dependências do PHP ficou para trás. Em parte, isso pode ser devido à relutância anterior do WordPress em aumentar sua versão mínima do PHP. Muitos pacotes disponíveis no Packagist, o repositório principal do Composer, não funcionam com versões mais antigas do PHP. O salto recente do WordPress para o PHP 5.6+ e os planos de migrar para o 7+ no futuro podem levar mais autores de temas a considerar o gerenciamento de dependências do PHP.

O TRT possui uma conta Packagist e tornou todos os seus pacotes instaláveis ​​via Composer.

Ainda não há necessidade de usar pacotes

Não há planos atuais para o TRT começar a exigir o uso desses pacotes para recursos específicos, mas alguns membros da equipe propuseram fazê-lo.

“Existem razões válidas para impor o uso desses pacotes, mas isso não pode acontecer da noite para o dia”, disse Stathopoulos. “Queremos que os temas do repositório tenham alguns padrões, não pode ser o faroeste. A qualidade do código precisa melhorar. Esses pacotes são uma maneira de facilitar a vida das pessoas e, em última análise, economizar tempo para todos.”

Stathopoulos está aberto a autores de temas que criem implementações personalizadas se puderem melhorar o que a equipe construiu, mas ele prefere que os autores “discutam suas ideias no repositório de pacotes e enviem uma solicitação de pull para que toda a comunidade possa se beneficiar”.

Envolver os autores do tema é uma área em que a equipe tem lutado. Contribuir com os pacotes pode beneficiar toda a comunidade. “A maioria das pessoas nem sabe sobre eles, pois não estão listados em nenhum lugar”, disse Stathopoulos. “Os Autores do Tema atualmente têm que procurá-los, e para procurá-los alguém precisa dizer que eles existem (o que não acontece).” Um dos próximos passos seria obter os pacotes listados na documentação do TRT.

Trabalhar em conjunto em recursos de temas comuns pode fornecer uma ponte entre autores de temas e revisores, permitindo que eles resolvam problemas juntos.


Nota: O autor deste artigo esteve envolvido com a proposta inicial de pacotes temáticos e um desenvolvedor em seus lançamentos iniciais de pacotes.