Flattr

Har nu börjat använda Flattr på riktigt. Lade till en knapp här uppe på sidan och har kopplat upp mot Github. Väldigt smart lösning mot Github måste jag säga, varje gång jag stjärnmärker ett repo så får dom lite pengar, samma sak får jag pengar för stjärnmärkningar på mina repon.

Timer.js

Timer.js

Hackade en liten timer här om dagen som baseras på mitt Scoreboard.js. Kände att jag behövde en enkel timer för att ta tid och räkna ner. Resultatet blev Timer.js, en responsive, fullscreen timer med touch och keyboard stöd.

Koden hittar ni på Github om ni vill leka lite.

Mootools Konferens I Stockholm?

Mootools

Jag har länge velat att Mootools ska börja ta plats, stå upp på riktigt mot jQuery. jQuery växer varje dag, fler och fler användare, mer konferenser, mer plugins osv…Medan Mootools inte verkar göra så mycket. Det är svårt att få hjälp, låg aktivitet på Mootools Forge och forum samt att det, vad jag vet, ännu inte funnits en konferens.

Därför blev jag lite glad när jag hörde att en konferens håller på planeras. Bäst av allt är att det enligt rykte ska hålla hus här i Stockholm. Missar man den? Nej, skulle inte tro det.

Det känns som många missat Mootools och direkt börjat hacka jQuery. Önskar att detta kan få lite fart på det nästintill obefintliga community och att fler kan få upp ögonen för Mootools.

Vad tror ni? Klart ni går, varför frågar jag…

Flerspråkig Webbsida Med Wordpress Networks – Hantera Länkningar På Bästa Sätt

Bästa sättet, enligt mig, att göra sin Wordpress webbsida flerspråkig är att använda sig av Networks. Största fördelen är att du får full kontroll av de olika språken och att du kan skapa användare för ett specifikt språk.

Nog om det. Ett problem, eller snarare utmaning med detta är t.ex om du behöver hämta/länka sidor i dina templates. I en vanlig installation kan det se ut såhär:

1
2
3
// Get about excerpt
$about = get_page_by_path('about');
echo $about->post_excerpt;

Problemet med detta blir när du skapar en flerspråkig webbsida, där dom ska göra samma sätt. Låt säga att du har språken engelska och svenska. På dessa språk har du sidorna About (about) och Om oss (om). Hur gör du då för att hämta ett utdrag från den sidan? Du skulle kunna göra såhär:

1
2
3
4
5
6
7
8
9
10
// Get about excerpt
global $blog_id;

if ( 1 == $blog_id ) {
  $about = get_page_by_path('about');
} else if ( 2 == $blog_id ) {
  $about = get_page_by_path('om');
}

echo $about->post_excerpt;

Detta är dock inte optimalt då det behövs underhållas när nya språk skapas osv. Det blir inte kul när sådan typ av funktion och kod finns på flera ställen.

Det bästa vore att lägga till ett till fält där du editerar/skapar sidor. Ett vanligt input fält där du skriver in ett gemensamt värde för samma sida på alla språken. Något i stil med detta:

Engelska

Svenska

Det vi kan göra då är att välja på det fältet i stället. Låt säga att vi sparar den som network-slug. Om vi då går tillbaka till vårt exempel, så kan vi nu göra såhär:

1
2
3
4
5
6
7
$about = get_pages( array(
  'number'     => 1,
  'meta_key'   => 'network-slug',
  'meta_value' => 'about'
) );

echo $about[0]->post_excerpt;

För att göra det lite snyggare skulle man kunna lägga det i en funktion:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Jag tycker det är bra om man samlar sina funktioner i en klass
class MySite {
  public function get_page_by_slug( $slug ) {
      if ( $slug ) {
          $page = get_pages( array(
              'number'     => 1,
              'meta_key'   => 'network-slug',
              'meta_value' => $slug
          ) );
          
          // Kolla om post hittades
          if ( $page ) {
              // Returnera första och enda posten
              return $page[0];
          } else {
              // Ingen post hittades, kolla om ett numeriskt värde
              if ( is_numeric( $slug ) ) {
                  // Returnera post baserat på ID
                  return get_page( $slug );
              } else {
                  // Returnera post baserat på path
                  return get_page_by_path( $slug );
              }
          }
      } else {
          // Om $slug inte är satt, returnera false
          return false;
      }
  }
}

Jag passar även på att bygga ut den lite med fallback stöd när det ändå ligger i en funktion. Så för att använda:

1
2
$about = MySite::get_page_by_slug('about');
echo $about->post_excerpt;

Ganska simpelt ändå. Jag kommer inte gå igenom hur ni skapar det extra input fältet, det får ni klura ut själva ;) Implementerar man detta på en site som redan har content, kan det vara bra att skapa en sida i admin som listar alla sidor med slug och det extra input fältet så man slipper gå in på varje sida för att sätta värdet.

Det var allt, hoppas det var till nytta!

Dags Att Löpa – Nike Free

Nike Free 3.0

Som webbutvecklare, och alla andra som jobbar på kontor, blir det lätt att man slutar röra på sig och sitter mest stilla om dagarna.

Tänkte göra något åt den ovanan och köpte nya löparskor, Nike Free 3.0. Riktigt sköna, känns som att man är barfota (med skydd mot jobbig terräng). Nu gäller det bara att ta sig ut och springa!

Utöver löpning har jag även börjat med den välkända 100 push ups. Använder den officiella appen till iPhone. Ligger på tredje veckan och än så länge går det fin fint.

Lite random post jag vet, men å andra sidan, så hör det ju till namnet…