Så er jeg igang med XVII.dk ….

Så er siden da igang – min første WordPress side. Derfor kommer den jo nok til at indeholde en hel del eksperimenter med WordPress.

Idéen er at samle alle de ting man altid skal lede efter. Det kan være kodestumper, links, omregninger imellem underlige måleenheder eller hvad jeg ellers får fundet frem.

Hvis du synes der mangler noget, så send mig en mail, eller skriv en kommentar her.

 

Versal forbogstav

Når folk f.eks. ikke kan finde ud af at skrive bynavne med stort begyndelsesbogstav, så er det rart at sætte den her på – f.eks. på onBlur på et Input-felt.

function startVersal(val) {
  val = val.substr(0, 1).toUpperCase() + val.substr(1);
  return val;
}  //  startVersal

Maximum længde af TEXT felter

MySQL har 4 forskellige TEXT-felter: TINYTEXT, TEXT, MEDIUMTEXT og LONGTEXT.

Da de gemmes udenfor selve tabellen kan de godt overstige grænsen på 65,535 bytes der ellers er per post i en MyISAM tabel.

 

Deres max-størrelser er:

TINYTEXT 256 bytes
TEXT 65.535 bytes ~64 kB
MEDIUMTEXT 16.777.215 bytes ~16 MB
LONGTEXT 4.294.967.295 bytes ~4 GB

 

Se også her (hvor jeg har hentet det meste af oplysningerne fra)

Tusind seperator

Man har jævnligt brug for at formattere store tal, og vil – som dansker – som regel helst have dem med punktum som tusind-seperator og komma som decimal-punkt.

Det kan gøres sådan her i perl.

$isum=12344.56

$_ = reverse $isum;
s/(\d{3})(?=\d)(?!\d*\.)/$1,/g;
$isum = reverse $_;

=> 12,344.56

Linieskift i TITLE, ALT eller lign.

Der kan ikke bare indsættes linieskift i HTML-koden i TITLE, ALT eller lign.

I stedet for kan man indsætte HTML-koden for linieskift: 

<img src="filnavnet.gif" ALT="F&oslash;rste linie.&#13;Anden linie.">

Opdatere flere tabeller

Når man skal opdatere flere tabeller, eller opdatere en tabel udfra en eller flere andre, så kan det gøres på følgende måde:

Update PHS1, PHS2
Set PHS1.PHS2ID = PHS2.ID
, PHS1.FELT2 = PHS2.FELT2
, PHS2.STATUS = 'brugt'
Where PHS1.ID = 1
And PHS2.FELT1 = 'hest'

Det vil opdatere

  • PHS2ID feltet i PHS1 tabellen med ID på den brugte post.
  • FELT2 feltet i PHS1 tabellen med indholdet af FELT2 feltet fra PHS2 tabellen.
  • STATUS feltet i PHS2 tabellen til ‘brugt’.

 

Eksemplet er lavet udfra de her to test-tabeller:

CREATE TABLE `PHS1` (
  `ID` int(11) NOT NULL auto_increment,
  `PHS2ID` int(11) NOT NULL,
  `FELT1` varchar(255) NOT NULL,
  `FELT2` varchar(255) NOT NULL,
  PRIMARY KEY  (`ID`)
);

INSERT INTO `PHS1` VALUES (1, 0, 'Hvem er en hest?', '');
INSERT INTO `PHS1` VALUES (5, 0, 'Hvem er en pony?', '');


CREATE TABLE `PHS2` (
  `ID` int(11) NOT NULL auto_increment,
  `FELT1` varchar(255) NOT NULL,
  `FELT2` varchar(255) NOT NULL,
  `STATUS` varchar(10) NOT NULL,
  PRIMARY KEY  (`ID`)
) ;

INSERT INTO `PHS2` VALUES (1, 'hest', 'ethan', '');
INSERT INTO `PHS2` VALUES (5, 'pony', 'bonny', '');

Dump af data

I JavaScript er det ikke “indbygget” en datadump-funktion. Men det kan f.eks. gøres sådan som vist her:

http://www.openjs.com/scripts/others/dump_function_php_print_r.php

Kun acceptere tal

Med RegEx er det nemt i perl at sørge for at kun tal accepteres.

if ($var_name =~ /^\d+$/) {  #  Kun tal accepteres 
    # Det kode der skal udføres
    ....
}

Leger med WordPress til iPhone

Her er lidt tekst …..
Og en linie mere!

 

Er email-adressen valid

Der findes et utal af email-adresse-valideringer.

Den her har fungeret fint for mig på flere forskellige sites.

function isValidEmail(field) {
  var re = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/
  if (field.value.match(re)) {   return true;  } else {  return false;  }
}

Visning af SQL-query

Rigtig ofte har man brug for at se om det genererede SQL-query ser ud som forventet. Her er en række SUBs, som kan hjælpe med det.

Kodestumpen starter med at definere SQLStr of DEBUG som PUBLIC – så de ikke behøver at komme med som parameter. Det kan være både godt og skidt…  Nogle gange giver det problemer hvis man f.eks. laver SQL-queries som en del af koden til at danne en anden SQL-query. Så kan man eventuelt lave disse kald i en SUB og definere en lokal SQLStr der.
En PUBLIC DEBUG variabel har jeg aldrig oplevet problemer med – det gør det bare nemt at sætte variablen til 1 i starten af hvilken som helst side.

 

PUBLIC SQLStr, DEBUG

SUB VisSQLPre(str)
    response.write vbcrlf & "<br><b>SQLStr</b>: "
    response.write Replace(Str, vbcrlf, " <br>" & vbcrlf)
    response.write "<br><br>" & vbcrlf & vbcrlf
END SUB  '  VisSQLPre

SUB VisSQLRaw(str)
    response.write "<br><b>SQLStr</b>: "
    response.write Replace(Replace(Replace(Str, vbcrlf, "<br>"), vbtab, "   "), " ", "&nbsp;")
    response.write "<br><br>"
END SUB  '  VisSQLRaw

SUB VisSQLNu
    response.write vbcrlf & "<br><b>SQLStr</b> (" & Now & "): "
    response.write Replace(Replace(Replace(SQLStr, vbcrlf, "<br>" & vbcrlf), vbtab, "   "), " ", "&nbsp;")
    response.write "<br><br>"
END SUB  '  VisSQLNu

SUB VisSQL
    If debug = 1 Then VisSQLNu
END SUB  '  VisSQL