Código para tornar campo obrigatório

Precisamos de ajuda para tornar o campo afiliação obrigatório no momento de uma nova submissão.

O assunto já foi discutido no fórum do OJS http://forum.pkp.sfu.ca/t/ojs-affiliation-as-a-required-field/12998/6, mas precisamos de uma linha de código que resolva o problema.

A parte visual, que apresenta o * no campo está OK, o que precisamos é do código que torne o campo realmente obrigatório.

Agradecemos.

Olá @etorino,

você tem o código para alterar o nome do campo URL para Currículo Lattes?

1 curtida

oi @etorino,
parece que a soluçao não esta bem encaminhada pelo PKP

eles sugerem adicionar uma chamada no metodo construtor do AuthorSubmitStep3Form usando a função FormValidatorArrayCustom, do tipo:

$this->addCheck(new FormValidatorArrayCustom($this, ‘authors’, ‘required’, ‘user.profile.form.affiliationRequired’, create_function(‘$affiliation’, ‘return empty($affiliation);’), array(‘affiliation’)));

mas essa chamada como esta não funciona, entao o Aleck sugere depurar ela usando a função PHP error_log(print_r($authors, true));

talvez, a chamada a FormValidatorArrayCustom deva usar

create_function(‘$authors’, 'return // iteracao em todos os N elementos do array para verificar se ($authors[n][‘affiliation’]); esta vazio // '), array(‘authors’))

abs!

Olá @ronniebrito, obrigada por seu retorno.

Era realmente o que estávamos pensando. Mas ainda nos resta o problema, qual o código para ‘interacao em todos os N elementos do array para verificar se ($authors[n][‘affiliation’]); esta vazio’?

Obrigada!

no php faria algo assim

foreach( $authors as $author ){
// se algum autor nao tiver preenchido a filiação…
if (empty($author[‘affiliation’])){
return false;
}
}
return true;

Olá @etorino e @ronniebrito @Ronnie_Fagundes_de_B
foi citado nessa conversa que a parte visual para aparecer o * no campo está ok.
Por favor, compartilhem o código e local para alterar o nome do campo URL para Currículo Lattes?

um pseudocodigo esta ai em cima, a ser inserido no arquivo AuthorSubmitStep3Form .

@etorino, vcs conseguiram implementar ?

Nós não alteramos este campo, mas caso você pretenda fazê-lo, há pelo menos duas maneiras;

  1. Alterar a string user.url do lib/pkp/locale/pt_BR/user.xml e dos outros idiomas necessários, antes deve-se rodar um grep “user.url” na pasta dos templates para verificar se o contexto da string é sempre a mesma, ou seja, se é seguro alterá-la.
  2. Alterar os arquivos templates/author/submit/step3.tpl e templates/manager/setup/step3.tpl

Este código é equivalente ao que foi discutido no fórum no OJS (no trecho que falei do FormValidatorArray), ele não resolve o problema de verificar um campo localizado dentro de um array.

Ainda não implementei nada.

@samueloph,

acredito que alterar a tradução do idioma não seja o ideal.

mas o detalhe da validação esta na manipulação da variável, que deve ser tratada como array. O que precisa ser descoberto é como acessar essa variável, que nem o pessoal do PKP soube dizer em detalhes. Precisaria usar recursos de debug pra analisar melhor.

Apenas para atualizar a discussão, fiz o código e postei lá no fórum do OJS, entretanto ainda não testamos em ambiente de produção.

edit-> As minhas mensagens estão sendo marcadas como spam, não sei o porque, isso não ocorre no fórum do OJS.

1 curtida

obrigado @samueloph,

sobre o spam, eh algo automatico do sistema do forum, mas acho q não deve estar mais marcando