Hopp til innholdet

cjohansen.no

eZAudioScrobbler

I forbindelse med utviklingen av nye cjohansen.no har det kommet det en ny musikkseksjon. Det ble fort klart for meg at jeg måtte hente data fra last.fm til denne seksjonen, og dermed satte jeg igang med min første eZ Publish-extension.

eZAudioScrobbler er mitt første bidrag til eZ Publish-communityet. Det er et tillegg som gir deg et sett med fetch-funksjoner som henter data fra last.fm. Det betyr at man kan gjøre følgende i eZ-maler:

{cache-block keys='last.fm' expiry=300}
    {def $recent_tracks=fetch(audioscrobbler, recent_tracks,
                                          hash(user, $user))}
    <h2>{'Recent tracks for %user'|i18n('design/audioscrobbler', '',
                                                        hash('%user', $user))}
    <ol>
        {foreach $recent_tracks as $track}
            <li>
                <a href={$track.artist.url|ezurl}>{$track.artist.name}</a> -
                <a href={$track.url|ezurl}>{$track.name}</a>
            </li>
        {/foreach}
    </ol>
 {/cache-block}

Eksempelet over vil hvert femte minutt hente nylig spilte spor fra last.fm og vise dem frem i en nummerert liste. Husk at dersom du bruker denne funksjonen i node-maler må du skru av view-cache for noden og heller bruke cache-block. Et lurt tips vil da være å bruke følgende cache-block rundt node-innholdet:

{cache-block keys=$node.url_alias}

På den måten vil du beholde funksjonaliteten som view-cache gir, altså at siden fornyes når du endrer, flytter eller sletter noden.

Funksjonalitet

Det er en haug med funksjoner i denne pakka, siden den implementerer alle tjenestene som er tilgjengelig fra AudioScrobbler-APIet. Dokumentasjon finnes i selve utvidelsen.

eZAudioScrobbler er allerede lastet ned over 100 ganger, og det er jo morsomt. Den kan lastes ned fra tilleggsdelen på ez.no: http://ez.no/community/contribs/template_plugins/ezaudioscrobbler

For mer informasjon rundt utvikling av egne moduler til eZ Publish, se følgende eZPedia-side: http://ezpedia.org/wiki/en/ez/module. Egenutviklede fetch-funksjoner er beskrevet på denne siden: http://ezpedia.org/wiki/en/ez/custom_fetch.

2006 - 2012 Christian Johansen Creative Commons Lisens