Ny Blogger, eget domæne og labels

Den nye udgave af Blogger indeholder en den smarte funktioner som labels (tags/kategorier), WYSIWYG template-design og mulighed for private blogs. Desværre fungerer flere af disse kun, hvis man placerer son blog hos Blogspot og altså ikke hvis man anvender sit eget domæne.

Man kan godt tilføje labels til hver enkelt indlæg, men der kommer ikke en liste frem i menuen. Derfor har jeg hacket lidt for at lave min egen liste. Min blog er placeret på en Apache-webserver, så min løsning er lavet i PHP, men det kan selvfølgelig laves i næsten ethvert sprog.

Først laver jeg en side, der gennemsøger labels-mappen, hvor indeks-sider til hver label bliver placeret, og genererer en liste i XHTML-format:

$dh = opendir(\'labels\');

echo \'<ul>\';

while (false !== ($file = readdir($dh))) {
//undlad undermapper
if (!is_dir(\"labels/$file\")) {
//fjern endelse og lav link
echo \'<li><a href=\"labels/\'.$file.\'\">\'.
preg_replace(\'/\\..*$/\', \'\', $file).\'
</a></li>\';
}
}

echo \'</ul>\';

closedir($dh);

Derefter tilføjer jeg lidt JavaScript til menuen i min template, der bruger noget AJAX-halløj til at indlæse indholdet af min PHP-side og placere det i et div-tag i min menu:

<div id="labels"></div>

<script type="text/javascript">
function makeObject(){
var x;
if (navigator.appName == "Microsoft
Internet Explorer"){
x = new ActiveXObject("Microsoft.XMLHTTP");
}else{
x = new XMLHttpRequest();
}
return x;
}

var request = makeObject();
request.open('get', 'labels.php');
request.onreadystatechange = parseInfo;
request.send('');

function parseInfo(){
if (request.readyState == 4){
document.getElementById('labels')
.innerHTML = request.responseText;
}
}
</script>

Tada! En fin liste med links til labels dukker op i menuen.

Kommentarer

Populære opslag fra denne blog

Smilende teknik-nørd

Writely