Stop alle urla del capslock

da un incubo di TED©

Dite la verità, se c’è una cosa che proprio non riuscite a tollerare in rete è la gente che scrive tutto maiuscolo. Internet non è una puntata di Uomini e Donne, che motivo c’è di urlare così tanto? E se proprio devi gridare, proprio a casa mia devi farlo? Sì, perché questi indefessi stupratori della grammatica con un’incudine incollata sul capslock sono una maledetta setta sparsa ovunque, con tentacoli talmente lunghi da contaminare anche il vostro blog. Maledetti, non se ne può più. Fate schiamazzi a casa vostra, non violentate quel povero form, vi prego.

Oltre alle le lacrime di disperazione, avete provato a contrattaccare l’amico di Maria de Filippi il commentatore prendendolo per il culo. Arma piuttosto inutile, visto che questi piccoli bastardi colpiscono random, lasciando un commento per poi perdersi nel web.
Ma non disperate! Da oggi in poi potrete avere una nuova, efficacissima arma. Quello di cui avete bisogno è:

  1. continuare a leggere questo post;
  2. del codice javascript;
  3. delle modifiche al vostro template.

Il tutorial che segue è pensato e studiato per WordPress. Basta però solo un po’ di elasticità e un minimo di conoscenza di html per adattarlo anche ad altri CMS. Ringrazio da subito Alessandro che mi ha dato lo spunto per il post.

Come prima cosa, aprite l’editor per i template di WordPress (se avete WP 2.7+ in italiano, è il tasto “Aspetto” sulla colonna sinistra). Aprite il file header.php, andate nel tag head e inserite questo codice:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>

<head profile="http://gmpg.org/xfn/11">

(...)

<script type="text/javascript">

function countcaps()
{
   var regexp = /[A-Z]/g;
   var text = document.getElementById("comment").value;
   var myMsg='Ma porc... Cazzo urli? Sto dormendo!';  

   var matchList = text.match(regexp); 

   var percentage = matchList.length/text.length * 100 ;  

   if ( percentage >= 30 ) {
      alert( myMsg );
      return false;
   }
   return true;
}
</script>
</head>

La funzione javascript che vedete qui su è il vostro scudo, il recinto elettrizzato che farà scappare l’intruso. Che fa? Tutto quello che serve: verifica se chi scrive nel vostro form usa una quantità di maiuscole superiore al 30% della lunghezza del testo e, quando preme il tasto per commentare, fa apparire un bel rimprovero in pop up. Esattamente come nell’immagine qui sotto.

Urla del capslock

Ovviamente non basta inserire il codice nell’header.php. Dovete fare un’altra piccola modifica.
Aprite il file comments.php e cercate

(...)
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">

(...)

aggiungendo una piccola stringa.

(...)
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform" onsubmit="return countcaps()">

(...)

Così facendo lo script sarà perfettamente funzionante. Va però customizzato (a meno che anche voi non vogliate ricordare al tizio che state dormendo).
Allora, come prima cosa verificate qual è l’id della textarea del vostro form di contatti (sempre il file comments.php).

(...)
<textarea name="comment" id="comment" cols="50" rows="10" tabindex="4"></textarea>
(...)

Come potete vedere da quel “id=“, il mio è comment. Questo punto è fondamentale. La stringa

(...)
var text = document.getElementById("comment").value;  

(...)

individua tramite l’id il punto in cui il bastardo scrive. Quindi, se il vostro id1 dovesse essere “sarcazzo”, nel vostro javascript nell’header.php dovrete sostituire (“comment”) con (“sarcazzo”). Spero sia chiaro anche per i più scemi.
Dopo aver individuato la textarea2, non resta che personalizzare l’insulto il messaggio per il bastardo il malaugurato.
Per la precisione, dovete cambiare questa stringa qui sotto, già presente nel codice javascript di cui sopra (scusate il bisticcio di parole), mettendo tra i due apici dopo quel myMsg= il testo che preferite.

(...)
var myMsg='Ma porc... Cazzo urli? Sto dormendo!';

(...)

Ecco fatto. Non appena avrete salvato le modifiche, sarete salvi da ogni ditinculo di urlatore virtuale. Lo script, infatti, non si limita a rimproverare, ma blocca anche l’invio del commento. Che ne dite? Perfetto, no?
E allora, andiamo che un altro passo è fatto. Con Stati di Sonnolenza a poco a poco il vostro blog diventerà completamente inutilizzabile un muro a prova di coglione!

Fonte.

  1. Eh, lo so, ho scritto id 50 volte in due righe. Trovatemelo voi un sinonimo [up]
  2. Tiè! [up]

28

aprile

2009

Spiacente, al momento non è possibile sbadigliare.