Como era previsto algumas pessoas tiveram problemas com a atualização/upgrade para a versão WHMCS 4, particularmente eu tinha noção que isso ocorreria. Você pode até se perguntar, mas como você sabia disso? Simplesmente pelo fato de que não houve uma versão BETA pública. Apenas 250 pessoas puderam utilizar o sistema e isso é muitoooo pouco. Imagine vocês que só eu já atendi cerca de 400 empresas aqui no brasil, espanha, itália, agora imagine o mundo inteiro?
Problemas “simples” como não fazer backup dos templates, módulos existentes, falhas na instalação e etc… isso é aceitável. Ontem um cliente me procurou pois tinha realizado a migração com sucesso mas estava com problemas no boleto PRÓPRIO banco do brasil, resolvi encarar a situação e encontrei um grave problema na tabela de armazenamento de dados dos módulos.
Fiz a notificação hoje para WHMCS vai fazer mais de 5h e ainda não responderam meu ticket.
Vou resumir em 2 imagens o problema evitando que pessoas leigas em bando de dados possam compreender. Conforme informei acima os módulos ( PagSeguro, MoIP, PayPal, Boleto Próprio ) ficam armazenados na tabela `tblpaymentgateways` ao realizar o upgrade para versão 4 o arquivo contido na pasta install de nome upgrade400.sql aproximadamente na linha 44 executa um comando de remoção de campos justamente dessa tabela inutilizando o recurso de armazenamento dos módulos instalados.
Veja a comparação do banco de dados versão 3.8.1 ( tudo 100% funcional )
Tabela versão 4 sem os campos: id, type,name,size e etc…
Resultado prático? Os módulos que depende de configurações de dropdown, checkbox NÃO irão funcionar.
Infelizmente não aguentei esperar a WHMCS se pronunciar sobre isso, esperar mais de 6h um ticket é complicado.
Sugiro que não atualize sua versão para WHMCS 4 conforme informei neste post.
Atualização I ( 08/05/2009 às 18:25 ):
Coincidência ou não após eu postar o contéudo acima em 5 minutos o Matt da WHMCS me passa a seguinte informação ( na integra ).
Hi,
Yes, this is correct table structure. However instead of activate function, you now use a format like this:
function xxxxxxxxx_config() {
$configarray = array(
"FriendlyName" => array("Type" => "System", "Value"=>"Authorize.net"),
"loginid" => array("FriendlyName" => "Login ID", "Type" => "text", "Size" => "20", ),
"transkey" => array("FriendlyName" => "Transaction Key", "Type" => "text", "Size" => "20", ),
"testmode" => array("FriendlyName" => "Test Mode", "Type" => "yesno", ),
"diamond" => array("FriendlyName" => "Diamond", "Type" => "options", "Options" => "option1,option2" ),
);
return $configarray;
}
Regards,
Matt
Em resumo, a WHMCS modificou o funcionamento dos módulos… eu até perguntei aonde foi documentado/aviado isso, pois não chegou aos meus conhecimentos essa mudança. Quem tem seu módulo funcional terá que fazer essas alterações para que o módulo funcione no WHMCS 4.
Chegou a ser engraçado para não dizer outra coisa!
Estou bastante decepcionado como a forma de tratamento dos usuários.
Atualização II ( 09/05/2009 às 18:47 ):
O código correto é esse abaixo ( ao invés de options o certo é dropdown ) a WHMCS divulgou ontem mas está incorreto.
function xxxxxxxxx_config() {
$configarray = array(
"FriendlyName" => array("Type" => "System", "Value"=>"Authorize.net"),
"loginid" => array("FriendlyName" => "Login ID", "Type" => "text", "Size" => "20", ),
"transkey" => array("FriendlyName" => "Transaction Key", "Type" => "text", "Size" => "20", ),
"testmode" => array("FriendlyName" => "Test Mode", "Type" => "yesno", ),
"diamond" => array("FriendlyName" => "Diamond", "Type" => "dropdown", "Options" => "option1,option2" ),
);
Fico pensando o que leva uma empresa a efetuar essas modificações e não divulgar para os desenvolvedores/clientes em geral.
Particularmente não vi sentido algum nessa mudança.