Se seu site é popular entre usuários de
GNU/Linux que usam apenas as consoles e o servidor onde você hospeda a página tem o módulo GD carregado, você já deve ter recebido pedido para tirar o código de segurança que existe para o login. As alterações que seguem (nos arquivos modules/Your_Account/index.php, include/counter.php e blocks/block-Login.php) servem para que o código de segurança não esteja presente para os navegadores que se identifiquem como Lynx.
include/counter.php
Pense em um nome para uma nova variável (como comecei a usar isso para fazer o bloco Modules aparecer apenas para navegadores texto, usarei o nome $blockleft no exemplo). Na linha 37, inclua os códigos abaixo:
/* Alteração por Luiz Guaraldo (http://www.universolivre.com.br)
Faz o código de segurança para login não aparecer para navegadores que se identifiquem como Lynx ou outros desconhecidos. */
if ($browser == "Lynx" || $browser == "Other") {
$blockleft = 1;
} else {
$blockleft = 0;
}
Muito bem, agora o trabalho vai ser um pouco mais braçal...
modules/your_account/index.php e blocks/block-login.php
Nos arquivos modules/Your_Account/index.php e blocks/block-Login.php você terá que procurar todas as funções que tenham a linha de código abaixo:
if (extension_loaded("gd") AND ($gfx_chk == 2 OR $gfx_chk == 4 OR $gfx_chk == 5 OR $gfx_chk == 7)) {
No início de cada uma das funções você encontra a linha de código parecida com o que está abaixo:
global $admin, $user, $sitekey, $gfx_chk;
Acrescente $blockleft nela e altere a linha apresentada anteriormente para o que segue:
if ((extension_loaded("gd") AND $blockleft == 0) AND ($gfx_chk == 2 OR $gfx_chk == 4 OR $gfx_chk == 5 OR $gfx_chk == 7)) {
Prontinho... as alterações tem efeitos e seu PHPNuke fica muito mais "esperto".
PS: Com essa alteração também é possível fazer uma exibição diferenciada caso o navegador seja texto, fazendo, por exemplo, com que os templates sejam diferentes para cada tipo de apresentação. É fácil alterar isso, colocando uma linha de código no modules.php para que, se o $blockleft for 1, outro arquivo seja incluído e não o template padrão.
Use sua criatividade, pois o código que está aqui é 100% livre (mantenha o comentário com o crédito, por favor).
O documento original encontra-se em: