WordPress Meetup – spredte betragtninger

Så blev første WordPress Meetup afviklet. Jeg var, naturligvis, med og fik hilst på andre WordPress’ere og talt om tags, themes og installationer.

Med en friskprintet ruteplan i lommen hoppede jeg på cyklen og ræsede ud mod Christianshavn. Min ruteplan havde godtnok fundet den korteste vej, men vist ikke den mest cykelvenlige. Den havde fundet samtlige brostenbelagte vejstykker på ruten, så først ca. 11:15 havde jeg fået bumlet mig frem til adressen.

Indenfor var der laptops, laptops og laptops og intet dagsprogram som sådan, hvilket var aftalen. Så det var bare med at hilse på de forskellige. Ud af øjenkrogen så jeg nogen var inde på gazel.dk, og så lå det jo lige for at præsentere sig og sige “det er min side, du der er inde på”, og så gik det slag i slag derfra. Jeg fik talt med Jesper Madsen og hjulpet ham med at opgradere fra (gulp!) WP 1.5.2 til 2.1.2 og med at lave permalinks. Fra Thomas Silkjær fik jeg talt themes og fik endelig fundet ud af, at det seje image popup-værktøj som alle bruger hedder lightbox. Tak for det.

Det var også rart endelig at møde Mr. WPDK, René, in person og benyttede lejligheden til at få indblik i de tekniske detaljer vedrørende den danske oversættelse. Det er ikke så lige til, som det ser ud, og det havde jeg heller ikke regnet med, så thumbs up til René herfra for at løse opgaven med bravour og være så sindssygt hurtig, når der kommer opdateringer.

Alt i alt en fin måde at bruge en søndag eftermiddag og jeg ser frem til næste Meetup – hvor jeg forhåbentligt selv har en laptop. Et must til den slags arrangementer.

Og jeg skal da ikke glemme at takke Mads og Jubii for at lægge lokaler til, samt de, der tog billeder, når jeg nu selv, på vanlig utjekkede vis, endnu engang havde glemt at medbringe mit kamera.

Sider og undersider

På en del af de WordPress-installationer jeg har lavet indtil nu, har der været mere behov for statiske sider end for blogs. WordPress bliver derved brugt som Content Management System mere end en blogging platform. Det har afstedkommet et ønske om noget funktionalitet, hvor hovedsider og undersider opfører sig, som de typisk gør, på de fleste websteder. Der kan f.eks. være en horisontal menu, hvor oversiderne er, og når de klikkes dukker undersiderne op i sidebar’en. Klikker du på en anden overside, så dukker dens undersider op i sidebar’en osv. Det kan WordPress ikke som udgangpunkt, og jeg har ikke kunnet finde et plugin, der giver siderne den funktionalitet.

Jeg har dog fundet ud af et par metoder. Den første jeg fandt på var simpelthen at lave en skabelon (template) for hver overside med hver sin unikke sidebar, der listede undersiderne med en standard wp_list_pages(child_of=oversidens ID). Det virker, men er unægteligt en smule bøvlet, da du skal oprette en ny skabelon for hver gang du laver en ny overside.

Senere opdagede jeg en mere elegant løsning. Det er at låne lidt kode fra K2-skabelonen. Den har simpelthen en undersidefunktion indbygget i sin sidebar, der gør præcist det, jeg har beskrevet ovenfor. Koden er som følger:

<?php /* Menu for subpages of current page */
global $notfound;
if (is_page() and ($notfound != '1')) {
$current_page = $post->ID;
while($current_page) {
$page_query = $wpdb->get_row("SELECT ID, post_title, post_status, post_parent FROM $wpdb->posts WHERE ID = '$current_page'");
$current_page = $page_query->post_parent;
}
$parent_id = $page_query->ID;
$parent_title = $page_query->post_title;

$page_menu = wp_list_pages('echo=0&sort_column=menu_order&title_li=&child_of='. $parent_id);
if ($page_menu) {
?>

<div class="sb-pagemenu">
<h2><?php echo $parent_title; ?> <?php _e('Subpages','k2_domain'); ?></h2>

<ul>
<?php echo $page_menu; ?>
</ul>

<?php if ($parent_id != $post->ID) { ?>
<a href="<?php echo get_permalink($parent_id); ?>"><?php printf(__('Back to %s','k2_domain'), $parent_title ) ?></a>
<?php } ?>
</div>
<?php } } ?>

<?php if (is_attachment()) { ?>
<div class="sb-pagemenu">
<a href="<?php echo get_permalink($post->post_parent); ?>" rev="attachment"><?php printf(__('Back to \'%s\'','k2_domain'), get_the_title($post->post_parent) ) ?></a>
</div>
<?php } ?>

OBS! Husk at snuppe koden fra den seneste udgave af K2 og ikke kopiere den fra denne artikel.

Det ser indviklet ud, men giver det rette resultat. Bemærk at K2’s class (sb-pagemenu) står i koden. Den skal naturligvis ændre til den class, der bruges i dit tema, men ellers kan det bare kopieres ind det rigtige sted i din sidebar. En anden ting, som de fleste (mig selv f.eks.) er interesseret i er, at linket til oversiden har en tilstand, hvor den “lyser”, har en anden farve eller på anden vis differentierer sig fra de andre links. De vil sige, at det er tydeligt, hvilken overside, du har klikket på. Desværre bliver oversiden “passiv”, når du klikker på en underside og det er ikke længere tydeligt, hvilken overside eller underafdeling af webstedet, du befinder dig i. Det er særligt kikset, hvis dine oversider er stylet som faneblade.

Det kan dog løses med Fold page list plugin’et. Det plugin kan flere ting. Den væsentligste er, at den kan folde undersiderne. Til brug hvis undersiden selv har flere undersider. Har den det, vil disse undersider først folde sig ud, når du klikker på en side et skridt længere oppe i sidehierarkiet. Normalt vil WordPress liste alle sider således:

underside1

  • underside2
  • underside3

Underside 2 og 3 vil med Fold page list plugin’et først folde sig ud, når der klikkes på underside 1. Alene det er ret smart. Derudover kan du i skabelonens styles.css tildele egenskaber til linkene til dine undersider og dine oversider, når plugin’et er i brug.

Der sker nemlig det som standard i WordPress, at der bliver tildelt nogle class’ til dine sider. Et link til en side får class’en “page_item”. Den aktive side får class’en “current_page_item”. Du kan se det ved at vælge “vis kilde” i din browser. Disse to kan styles, som du lyster, og på den måde tydeliggøre, hvilke sider der er aktive og passive. Men, som nævnt, er oversider ikke længere aktive, når du har klikket på en underside. Det har Fold page list løst på den måde, at den genererer en class der hedder “current_page_ancestor”, altså undersidens forfader. Den kan du style på samme måde som “current_page_item” og så burde du opnå den ønskede effekt. Se eksempelvis:

kulturvesterbro.dk

I styles.css bliver egenskaberne for linkene skabt med følgende kode:

#pages a {
background: #3D3D3D;
color: #999999;
font-weight: bold;
margin: 0 3px 0 0;
padding: 6px 10px;
}
#pages a:hover {
background: #fff;
color: #9c4f4f;
}
#pages a:active {
background: #fff;
color: #9c4f4f;
}
.current_page_item a, .current_page_item a:hover {
background: #fff !important;
color: #9c4f4f !important;
font-weight: bold;
}
.current_page_ancestor a, .current_page_ancestor a:hover {
background: #fff !important;
color: #9c4f4f !important;
}

Fanebladene ligger i en div, der hedder “Pages”. Ikke-aktive faner (#pages a) har næsten sort baggrund (#3D3D3D) og teksten er grå (#999999). Når musen føres over en fane (#pages a hover), bliver den hvid og den forbliver hvid, fra linket bliver klikket og indtil næste side dukker op (#pages a:active) og teksten bliver brun (#9c4f4f). Det sidste er ikke strengt nødvendigt, men det giver god mening for “#pages a:active” giver en forsmag på den tilstand linket vil få, når næste side er dannet. Af samme grund har “current_page_item” og “current_page_ancestor” samme tilstand. Dog med den detalje, at “current_page_item” også er fed. Det gør det aktive link i sidebar fed. Det er ikke nødvendigt med ancestor, da de links i forvejen har egenskaben fed.

Jeg håber at min lille vejledning kan bruges af andre. Den kunne være mere udførlig, men det er vigtigt at justere i forhold til det tema du bruger, og det må du selv eksperimentere med.

Lars Holmgaard

Jeg er svært at imponere, når det gælder webdesign og lignende. Derudover nærer jeg en nærmest fysisk afsky for flash. Det er flot og imponerende, men ofte også skide irriterende. Du ved ikke, hvad der sker, når du klikker på noget. Ofte farer du helt vild på et flash-site og det er ikke tydeligt, hvordan du vender tilbage til udgangspunktet. Det værste en webdesigner kan byde en bruger! For slet ikke at tale om de flash-sider, der åbner i et helt nyt vindue og bemægtiger sig din pc totalt.

Det sker dog, at jeg støder på noget design, hvor jeg tænker “hold da kæft!”. Det tænkte jeg, da jeg så, hvad Lars Holmgaard har lavet. Jeg kan ikke sige andet end, at det er flot grafik, lækker gennenskuelig funktionalitet og et pissegodt øje for medie, målgruppe, tekniske muligheder osv. Jeg er dybt imponeret.

Tak til John Sahl for at gøre mig opmærksom på det.

Se også http://www.larsholmgaard.dk

Valentines Day

Valentine WordPress heart

Ja, jeg er ikke meget for at springe på denne kommercielle bandwagon, men jeg har da købt en blomst til min bedre halvdel. Samtidig stødte jeg på nogle jordbær i grøntafdelingen, og da Elisabeth ææælsker jordbær og er lidt småsløj i øjeblikket, så købte jeg nogen til hende. De lå i en gennemsigtig hjerteformet plasticæske … suk!

Jeg synes, René har fundet på et godt dansk, samt kreativt, ord for fænomenet: vammeltins dag.

The Prestige – Are you watching closely?

The Prestige

Every great magic trick consists of three acts. The first act is called “The Pledge”; The magician shows you something ordinary, but of course… it probably isn’t. The second act is called “The Turn”; The magician makes his ordinary some thing do something extraordinary. Now if you’re looking for the secret… you won’t find it, that’s why there’s a third act called, “The Prestige”; this is the part with the twists and turns, where lives hang in the balance, and you see something shocking you’ve never seen before.

Ovenstående bliver udtalt af Cutter. Han er, hvad der i magikerkredse kaldes, en Ingénieur. Han udtænker og konstruerer tricks til magikere. I citatet forklarer han, hvad der får en illusion til at virke og hvorfor. Samtidig antyder han, at det ikke er uden grund at tredje akt, kaldes the prestige. The prestige er illusionens højdepunkt og her hvor magikeren stråler og høster publikums hyldest over sine evner. Noget der har stor betydning for historien i filmen.

De to spirende magikere, Angier og Borden, starter med Cutter som hjælper og Angiers kone, som assistent. De laver et klassisk nummer, hvor Angiers kone skal bryde ud af en vandtank. Ved et uheld (måske) bliver hun bundet forkert og drukner. Angier giver Borden skylden og de er fra da af både fjender og rivaler. De prøver både at gennemskue og obstruere hinandens numre, hvilket bestemt ikke er ufarligt, da mange af numrene benytter sig af både livsfarlig mekanik og faldlemme. Det lykkes dog borden at få overtaget, da han opfinder illusionen “Den transportable mand”. Og tricket er imponerende. Borden går gennem en dør i den ene ende af scenen og kommer næsten samtidig ud af en anden dør i den anden side af scenen. For at det ikke skal være løgn sender han først en hoppebold hen over scenen, som han selv kommer ud i den anden ende og griber.

Dette trick rider Angier som en mare. Han laver en efterligning med en dublet, men dubletten må nødvendigvis være den, der kommer frem tilsidst og høster hæderen for the prestige. Det er ikke godtnok for Angier. Han tvinger Borden til at afsløre hemmeligheden og Bordens svar er Tesla. Angier kontakter derfor elektroingenøren Nikola Tesla, der udvikler et elektrisk apparat til ham, der synes at gøre tricket muligt. Mere skal ikke afsløres her, men gåden om apparatet og den transportable mand bliver først afsløret til sidst.

Jackman og Bale er begge magiske i deres præstationer. Og begge har spændvidden til at kunne have spillet hinandens roller, hvis det er. Michael Caine bliver man bare aldrig træt af. Og som andre af de gamle drenge er han næsten bedre efter at have rundet de 60 og giver den vigtige birolle den rette substans. Scarlett Johansen bør nævnes, men Rebecca Hall er mere udfordret som Bordens kone og klarer det fint.

Film er en illusion og en film, der handler om illusioner, er en film, der mere en vanligt prøver at narre og forføre publikum. Det er lykkedes til fulde med the Prestige. Christopher Nolan strøer bevidst spor og tvetydigheder ud gennem hele filmen. Det ved man bagefter. Alene af den grund får man lyst til at se filmen igen med filmens undertitel i baghovedet: are you watching closely?