ti-enxame.com

Formulário único para usuários do Joomla?

Eu quero colocar um formulário html/php personalizado para os meus suários registrados do Joomla mas eu quero que ele seja enviado pelo usuário apenas uma vez, ou seja, se um usuário tiver enviado o da próxima vez que ele abrir esse página do formulário, ele deverá não voltar a ver o formulário? Em vez disso, ele deverá ver um mensagem personalizada (como Você já enviou o formulário ou bla bla bla ....) Como conseguir isso?

6
saibbyweb

Quando você diz "personalizado", espero que você queira dizer que vai seguir os métodos do Joomla e fazer deste um módulo ou componente;)

A melhor maneira de fazer isso é usando alguns dos métodos que você já está usando. E com isso quero dizer obter o objeto de usuário.

Portanto, quando um usuário envia o formulário, ele não apenas envia os dados inseridos, mas também envia seu nome de usuário usando $user->username. Avançando, agora supostamente temos o nome de usuário armazenado no banco de dados, juntamente com os dados que eles enviaram.

Agora você precisa escrever uma consulta ao banco de dados, obtendo o nome de usuário da tabela e comparando-o com o usuário conectado no momento. Aqui está um pequeno exemplo:

$db = JFactory::getDbo();
$user = JFactory::getUser();

$query = $db->getQuery(true);
$query->select($db->quoteName('username'));
      ->from($db->quoteName('#__myform'));
      ->where($db->quoteName('username') . ' = '. $db->quote($user->username));
$db->setQuery($query);

$result = $db->loadResult();

if($result) {
    // display custom message
}
else {
    // display form
}

Eu acho que seria uma idéia fazer o formulário funcionar primeiro e depois começar a integrar a verificação do usuário.

Espero que isto ajude

3
Lodder

Não tenho certeza de qual extensão você está usando para gerar o formulário. Mas se você tiver a possibilidade de alterá-lo para "Chronoforms", poderá fazer isso para esta extensão, conforme sugerido aqui: http://www.chronoengine.com/forums/posts/t9535/p9535/user-submit- only-once.html

NOTA: Mesmo se você não usar cronoformas, ainda poderá usar o método subjacente, pois ele usa funções padrão e a estrutura do Joomla.

É exatamente isso que você está procurando, mas o problema é que você precisa usar cronoformas, que, a propósito, são a melhor extensão de forma livre para o Joomla, na minha opinião. O suporte é excelente, bem conservado. Também o uso no meu site.

2
lite-whowantstoknow

Use o contato B2J para gerar campos personalizados em um formulário. É um componente criador de formulários gratuitos do Joomla fornecido pela equipe do Bang2Joom. Backend agradável e fácil! Suporte amigável!

Apenas tente!

Faça o download aqui: http://www.bang2joom.com/joomla-components/b2j-contact

0
Gev Balyan