TinyURL bookmarklet til Google Chrome

Vil du, også, have en nem måde at lave korte URL'er med TinyURL i Google Chrome? Så læs med her.

Jeg er glad for Googles browser, Chrome. Men der er nogle ting, jeg savner fra Firefox, for eksempel min extension, der gør det nemt at lave URL-adresser kortere via TinyURL.

Derfor satte jeg mig for, at jeg ville have en knap på min "bookmarks bar" i Google Chrome, så jeg havde TinyURL-funktionaliteten ved hånden. Men jeg fandt ikke en, der var tilfredsstillende simpel (fx skiftede den til TinyURL-siden, så jeg røg væk fra den side, jeg var på), eller virkede.

Og så må man jo lave sin egen.

Jeg tog udgangspunkt i denne Delicious-bookmarklet til Chrome, og så var det bare at ændre i den med det relativt begrænsede kendskab jeg har til JavaScript.

Anyways, resultatet blev en bookmarklet, der fungerer via TinyURL's API (som består af en simpel .php-fil, hvor man putter en URL ind via et parameter, og så spytter den TinyURL'en ud) og som åbner i et nyt vindue.

Alt du skal gøre er at trække nedenstående link på din bogmærkelinje i Google Chrome, og så er du også kørende. Hvis din bogmærkelinje ikke er synlig, kan du få den frem ved at trykke CTRL+B eller vælge det i indstillinger-menuen, svensknøglen i Chromes øverste højre hjørne.

Her er linket, som du skal trække op på din bogmærkelinje:

TinyURL

Hvis du er kommet op med noget endnu bedre, så skriv meget gerne om det i kommentarfeltet herunder.

For de interesserede ser koden for bookmarklet'en således ud:

javascript:(function(){f='http://tinyurl.com/api-create.php?url='+encodeURIComponent(window.location.href);a=function(){if(!window.open(f+'','tinyurlbookmarklet','location=yes,links=no,scrollbars=no,toolbar=no,width=550,height=100'))location.href=f+'jump=yes'};if(/Firefox/.test(navigator.userAgent)){setTimeout(a,0)}else{a()}})()

WordPress: Sådan trækker du TinyURL for et indlæg ind

Dette tip berører kun WordPress, men med lidt ændring i koden, burde det kunne portes til at virke generelt på PHP. Mere om det i slutningen af indlægget.

Du kender muligvis TinyURL, en simpel tjeneste, der tager et langt link og gør det kortere. På dansk har vi kortlink.dk, men TinyURL er mere udbredt. Derudover har TinyURL et ret simpelt API, som Dave Winer også har skrevet om.

TinyURL-API'et fungerer på den måde, at du bruger en .php-fil hos dem (http://tinyurl.com/api-create.php), som du sender en URL ind i. TinyURL's api-create.php spytter så en TinyURL http-URL ud til dig. Lad os tage et eksempel:

http://tinyurl.com/api-create.php?url=http://www.onlineminds.dk

Resultat: http://tinyurl.com/6zu3ju.

PHP er din ven. Din bedste ven.
Okay, det var den nemme del. Nu skal vi have fat i den TinyURL, som bliver spyttet ud. Her bruger vi PHP, som også er det sprog, WordPress er skrevet i.

For overblikkets skyld slår jeg denne operation ud på to variabler, men det kan i virkeligheden godt gøres i ét hug, som jeg vil vise lige om lidt.

Først får vi fat i URL'en på den side, som spytter TinyURL'en ud, altså fx:
http://www.tinyurl.com/api-create.php?url=http://www.onlineminds.dk.

Det gør vi på den snedige måde, at vi tager den første del af URL'en (til og med "?url=") og slår det sammen med WordPress-funktionen "get_permalink", som spytter URL'en til et blogindlæg ud. I PHP ser det således ud:

<?php $gettinyurl = "http://tinyurl.com/api-create.php?url=" . get_permalink(); ?>

Variablen "gettinyurl" er nu sat til den URL, som browseren lander på, når api-create.php spytter en TinyURL til den pågældende side ud. Nu skal vi have fat i det indhold, den spytter ud: TinyURL'en. Her har PHP en herlig funktion, der hedder file_get_contents (jeg skylder en stor tak til vores udvikler Søren Pedersen her, som gjorde mig opmærksom på denne!).

Vi laver en ny variabel (lad os kalde den "tinyurl") og sætter den til at trække indholdet ud, via den parameter ("gettinyurl"), som vi lige har sat:

<?php $tinyurl = file_get_contents($gettinyurl); ?>

Nu er det eneste, du skal gøre at spytte "tinyurl" ud der, hvor du vil have TinyURL'en vist:

<?php echo $tinyurl; ?>

Sådan.

Bemærk: Dette virker kun, når du er i The Loop i WordPress, kort fortalt der, hvor WordPress trækker indlæg ud. Det er i samme område, som overskrift, link og antal kommentarer til et indlæg bliver trukket ud.

Plug it in, plug it in
Efter at have kodet dette, er jeg blevet opmærksom på et WordPress-plugin, Tiny Link, som gør præcis det samme, den gør det bare i ét smæk. Koden til Tiny Link-plugin'et ser således ud:

function TinyLink() {
// get the tinyurl link and create one for the current permalink
$tinylink = file_get_contents("http://tinyurl.com/api-create.php?url=" . get_permalink());

// Print the result
echo $tinylink;

}

Altså præcis det samme. Plugin'et gør dog noget smart. Det laver en funktion med navnet "TinyLink", som du kan kalde, hvor som helst, du vil have det (stadig så længe du er i The Loop) ved at skrive:

<?php TinyLink() ?>

Få det til at spille udenfor WordPress
Som jeg lovede tidligere, kan dette også lade sig gøre, selvom man ikke nødvendigvis er i WordPress. Og det kan det da.

I stedet for get_permalink skal du bruge en linje PHP, der spytter URL'en på den aktuelle side ud. Jeg fandt en her:

<?php $url = "http" . ((!empty($_SERVER['HTTPS'])) ? "s" : "") . "://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?>

De hurtige har sikkert gættet, hvordan kaldet til TinyURL-api'et skal se ud:

<?php $tinyurl = file_get_contents("http://tinyurl.com/api-create.php?url=" . $url); ?>

Altså fuldstændig som i før, bare med "$url" i stedet for "the_permalink()". Nu er variablen "tinyurl" TinyURL'en til den URL, som variablen bliver skrevet på. Værsgo' :-)

Fik jeg nævnt, at PHP er det sejeste sprog i verden? ;-)

Hav de korte adresser lige ved hånden (Firefox)

Det er besværligt med lange, ulæselige web-adresser. Det kan tjenester som TinyURL lave om på, og hvis du bruger Firefox-browseren, kan du have TinyURL lige ved hånden. [Læs mere]

Ude på nettet findes der en masse adresser, som er mere eller mindre kryptiske, og derfor svære at overlevere, med mindre det foregår i en e-mail eller lignende.

Det kan for eksempel være adressen

http://www.google.dk/search?hl=da&q=what+is+the+airspeed+velocity+of+an+unladen+swallow&btnG=S%C3%B8g&meta=

En sådan adresse er det de færreste, der orker at indtaste på tastaturet eller diktere over telefonen. Derfor har vi tjenester som danske Kortlink og den engelsksprogede TinyURL. Fx peger denne adresse præcis samme sted hen:

http://tinyurl.com/2x5bua

Selv foretrækker jeg TinyURL, og det skyldes blandt andet, at der findes en TinyURL-udvidelse til Firefox-browseren.

Installér udvidelsen
Først og fremmest skal du, hvis du ikke allerede bruger Firefox, hente og installere browseren. Det kan gøres via mozilla.com/firefox.

Dernæst skal du installere TinyURL-udvidelsen. Det gør du fra addons.mozilla.org.

Når udvidelsen er installeret siger Firefox, at den skal genstarte, og det skal du lade den gøre.

Brug udvidelsen
Når Firefox har genstartet, er TinyURL-udvidelsen installeret. Det første vi gør er, at tilføje en TinyURL-knap til værktøjslinjen.

Højreklik et vilkårligt sted på din værktøjslinje, det kan for den sags skyld være på "Opdatér"-knappen og vælg "Customize" eller "Tilpas".

Højreklik på værktøjslinjen...

I bunden af det vindue, der åbner, finder du en TinyURL-knap, som du trækker over i din værktøjslinje.

Find TinyURL-knappen...

...og flyt den ind i din værktøjslinje

Du kan nu fremover lave en TinyURL-adresse ved hjælp af denne knap. Når du står på en side, som har en kropumulige adresse, klikker du blot på TinyURL-knappen og vælger "From current URL". Nu popper et vindue op, den korte adresse er genereret og ligger på klippebordet, så du kan indsætte den lige hvor du vil ved indsæt (CTRL+V).

TinyURL-udvidelsen integrerer sig også i Firefox’ højrekliksmenu. For eksempel kan du højreklikke på et link og klikke "Create TinyURL for this link". Så vil den give dig en kort adresse, akkurat som ovenfor, hvis du havde brugt TinyURL-knappen i din værktøjslinje.

Højreklik på et link og du har TinyURL lige ved hånden