Feb
29

De week van … computerproblemen

Gepost in Nieuws door Albert

Soms heb je van die weken… dan gaat het gewoon niet lekker. Deze week leek er wel iets in de lucht te zitten want we waren niet de enige met computerproblemen:

Zo zijn bij de belastingdienst 730.000 formulieren die via internet waren ingediend per ongeluk onbruikbaar gemaakt door een softwaretest die fout ging (de test werd voor het eerst gehouden nadat er al duizenden formulieren binnen waren… zouden ze bij de belastingdienst van backups gehoord hebben?). Ook de A73 tunnels waren weer eens dicht door een storing – ook weer gerelateerd aan een (menselijke) fout in de programmatuur.

Zelf hadden we ook de nodige problemen. Ten eerste werkte een Drupal module niet mee. Open-source is mooi maar soms loop je tegen een mysterieuze bug aan waardoor je opeens een halve dag kwijt bent met het zoeken naar de oplossing van een probleem. Daarbij was een groot deel van de week het internet dat wij hier in het Blushuis via Zakelijk Internet van Casema binnenkrijgen niet vooruit te branden. Niet ideaal wanneer je een internetbedrijf bent. Tenslotte dacht ik dat ik dit jaar was ontsnapt aan het griep-virus, maar ook ik moest er een paar dagen aan geloven…

Maargoed, van fouten moet je leren, en er zijn gelukkig nog wel leukere dingen te melden:

Feb
25

Theming views in Drupal

Gepost in Drupal door Albert

In Drupal kan je vooral met combinatie van de Views module data precies zo tonen als jij dat wil. Je kan daarbij alle html-code overriden in je template zonder dat je in de core modules aanpassingen hoeft te maken. Maar dit vereist wel een wat lastig proces met de phptemplate engine.

Stel dat…
Stel dat je een Drupal (5) site hebt waarbij je ook een blog hebt. Je wilt nu bijvoorbeeld de laatste 3 items van de blog tonen op de frontpage in een bepaalde region. Dan maak je dus de betreffende View aan, type block. In dit geval wordt het een teaser-view want je wilt natuurlijk niet de hele posts tonen.

Aangenomen dat dit gelukt is (dit was is het makkelijke gedeelte) zal je zien dat de items getoond worden volgens de html-opmaak van block.tpl.php. Hierbij wordt de content wegeschreven via:

<?php print $block->content; ?>

Maar daar kan je op dus niets meer aanpassen om die content anders te tonen. Zo wil je er misschien wel de auteur bij of de datum.

De oplossing
Je moet phptemplate vertellen welke functie hij moet overriden en welke template daarvoor gebruikt moet worden. Dit doe je allemaal in template.php in je template folder. Eerst moet je dus weten welke functie gebruikt wordt zodat je deze kan overrulen. Alle functies die door drupal 5 gebruikt worden om html te tonen en die dus overridden kunnen worden (bestaat er eigenlijk wel een goed Nederlands woord voor override/overrule?) beginnen met theme_.

In dit geval wordt met de Views module iets getoond dus moet je daar op zoek. Je vind dan in modules/views/views.module deze functie:

/**
 * Display the nodes of a view as teasers.
 */
function theme_views_view_teasers($view, $nodes, $type) {
  return views_theme('views_view_nodes', $view, $nodes, $type, true);
}

Dat is de functie die wij in dit voorbeeld gebruiken: een teaser-view zoals ik boven aangaf.

Nu kunnen we dus in template.php aangeven dat we hier zelf ons eigen ding willen doen. Dat doen we door dezelfde functie te declareren en theme te vervangen door phptemplate:

function phptemplate_views_view_teasers($view, $nodes, $type, $teasers = true, $links = true) { … }

In de functie zetten we een phptemplate callback zodat de goede .php file uiteindelijk aangestuurd wordt (idealiter wil je in template.php geen html-code daar dit alleen voor php functies bedoeld is) :

return _phptemplate_callback('views_view_teasers', array('view'=>$view, 'nodes'=>$nodes, 'type'=>$type, 'teasers'=>$teasers,'links'=>$links));

De $hook is ‘views_view_teasers‘ en dat moet dezelfde string zijn achter phptemplate_ in de functienaam.

Als we nu in onze template folder een bestand aanmaken dat views_view_teasers.tpl.php heet zal deze nu gebruikt worden voor teaser-views. We zijn er echter nog niet omdat de $nodes die we nu doorgeven alleen een node-id doorgeven. Om daadwerkelijk de hele nodes (met alle velden) door te krijgen kunnen we onze functie een beetje uitbreiden met een foreach en node_load.

function phptemplate_views_view_teasers($view, $nodes, $type, $teasers = true, $links = true) {
  foreach ($nodes as $n) {
    $node = node_load($n->nid);
    $output .= _phptemplate_callback('views_view_teasers', array('view'=>$view, 'node'=>$node, 'type'=>$type, 'teasers'=>$teasers,'links'=>$links));
    }
    return $output;
}

Nu hebben we in views_view_teasers.tpl.php een object $node waar we dus complete vrijheid hebben om dit op te maken.

We zijn er bijna!
Er is echter nog een probleem. We hebben nu een template gemaakt voor alle teaser views. Dus als we elders op de site een nieuwe view aanmaken die ook een teaser overzicht geeft dan zal ook deze template gebruikt worden. Waarschijnlijk willen we dat niet – we willen specifiek voor deze View een template.

Dat doe je door de functie in template.php een nog wat langere naam te geven: achter phptemplate_views_view_teasers plak je _De_Naam_Van_Je_View. Vul dit ook in in de _phptemplate_callback en natuurlijk ook de naam van de tlp.php file.

Je kunt dus wel bizar lange functie en bestandsnamen krijgen maar je weet in ieder geval zeker dat het dan alleen voor die betreffende View gebruikt wordt. Het werkt eigenlijk een beetje vergelijkbaar zoals CSS werkt om een specifiek, diepgelegen element te stylen.

Een vergelijkbare uitleg vindt ook hier op drupal.org met op de volgende pagina een voorbeeld.

Feb
22

De week van … sociale media

Gepost in Nieuws door Albert

Eind van de week en ik ben even helemaal sociale-media-moe. Als je het deze week allemaal zo voorbij ziet komen dan wordt het straks een grote gezellige boel op internet. Daarbij viel tijdens het seminar aan de TUDelft afgelopen week het woord ’sociaal’ ook tig keer. Je zou bijna vergeten dat er ook mensen zijn die zich behoorlijk asociaal gedragen in de sociale media op internet. En hoe deden we dat vroegah eigenlijk allemaal? Gelukkig zijn er ook asociale sociale media trends voor 2008.

Seminar Virtuele Werelden TUDelftEergisteren waren wij aanwezig bij een seminar over Virtuele Werelden aan de TUDelft. Deze werd georganiseerd door Rush hours seminars van Delft TopTech in samenwerking met een aantal andere partijen zoals ondere andere EPN en het Platform Virtuele Werelden.

Prijsuitreiking
Vooraf het seminar was de presentatie van de prijsvraag uitslag ‘Overheid en virtuele werelden‘ welke half november aangekondigd werd. Er waren in totaal twintig inzendingen waarvan de twee winnaars hun idee mochten presenteren. Wij waren vooral benieuwd in hoeverre er hierbij ‘over het muurtje’ gekeken werd en werkelijk innovatief gebruik gemaakt werd van de mogelijkheden van virtuele werelden. Op Metaplaces.nl zal zeer binnenkort een uitgebreider verslag hiervan volgen.

Seminar
Na de prijsuitreiking volgde het seminar met Valerie Frissen van TNO/ICT, Stef Aupers en van de Erasmus Universiteit en Popke Rein Munniksma van ABN AMRO.

Het wat algemenere ‘web 2.0′ verhaal van Valerie Frissen had ik grotendeels al een keer gehoord bij een seminar aan de Universiteit van Tilburg maar is zeer interessant en laat duidelijk zien dat de hedendaagse jongeren internet op een compleet ander niveau gebruiken dan de rest van de maatschappij. De term ‘digitaal vlooien’ bijvoorbeeld waarbij jongeren sociale contact onderhouden door vluchtige, inhoudloze tekstberichten naar elkaar.

Stef Aupers ging vooral in op World of Warcraft als virtuele wereld en de sociale kenmerken waardoor dit fenomeen zo intens succesvol is geworden. Virtuele werelden zijn sociale werelden. Het wordt pas interessant wanneer je een sociaal netwerk opbouwd binnen zo’n wereld met dezelfde bijbehorende kenmerken als relaties in de echte wereld (verantwoordelijkheid, delen van ervaringen). Zijn presentatie liet ook zien dat dit ten koste kan gaan van real-life relaties.

Tenslotte liet de ABN AMRO in een mooie presentatie zien hoe zij experimenteren met virtuele werelden (Second Life) en de mogelijkheden en kansen. Indrukwekkend om te zien dat een conservatieve instelling als een bank toch innovatief en creatief omgaat met dit soort nieuwe ontwikkelingen. De winst die zij hier uithalen is de enorme kennis en ervaring die opgebouwd is en wordt.

Conclusie
Al met al was het een interessante en inspirerende middag maar tegelijk was het oud nieuws. Het was interessant om het verschil met een bijeenkomst zoals de eerste Dutch Virtual World meetup in Amsterdam te zien: daar zaten de mensen die daadwerkelijk met de technologie aan de slag zijn en er mee experimenteren. Tegelijk kon je er ook on-line aanwezig zijn in Second Life. Hier zaten vooral de mannen-in-pak vanuit de overheid, onderwijs en bedrijfsleven te luisteren naar een wereld die voor hen totaal vreemd is maar dagelijkse praktijk voor hun kinderen…

Feb
20

Sneak preview: Diveheads

Gepost in Sociale media door Albert

Foto by SteelCityHobbiesDuiken begint bij Diveheads.comVoor iedereen die iets met duiken heeft: Diveheads.com.
Hier zul je binnenkort een sociaal platform vinden waar duikers hun ervaringen kunnen delen en nog veel meer waar we nu nog niet teveel over gaan verklappen natuurlijk…

De website wordt binnenkort gelanceerd – wil je op de hoogte blijven wanneer? Kijk op de site!