404 zaginione dzieci
Posted on March 6, 2010, under Inne.
Scott Hanselman napisał na swoim blogu kolejnego wspaniałego posta. Ten jednak był na tyle wyjątkowy, że zainspirował mnie do działania. Ale do rzeczy.
Chodzi o bardzo prostą ideę wykorzystania stron z błędem 404. Codziennie są wyświetlane tysiące takich stron w polskim internecie, ale nikt jakoś nie wpadł na pomysł, żeby wykorzystać je (powiedzmy to dobitnie) dla dobra ludzkości. Scott zasugerował, żeby pod stronę z błędem 404 (żądana strona nie istnieje) podpiąć prostą stronę wyświetlającą zdjęcia i dane zaginionych dzieci. W jego poście można dokładnie dowiedzieć się, jak zastosować to w warunkach amerykańskich i brytyjskich. W komentarzach pojawił się link do wersji holenderskiej.

Wzorując się na obu tych notkach stworzyłam wersję polską. Do sprawdzenia np. tu: http://www.programistka.eu/whatever.
Jak to dziaÅ‚a? Bardzo prosto – opiera siÄ™ na policyjnym kanale RSS dotyczÄ…cym zaginionych dzieci. Można wykorzystać też kanaÅ‚y osób zaginionych ogólnie lub osób poszukiwanych.
Aby zastosować to w silnikach blogowych opartych na WordPressie należy podmienić stronę 404.php w obecnie używanym szablonie.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3c.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<title>404 - Strona nie istnieje</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
(function($){$.extend({jGFeed:function(url,fnk,num,key){if(url==null){return false;}var gurl="http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q="+url;if(num!=null){gurl+="&num="+num;}if(key!=null){gurl+="&key="+key;}$.getJSON(gurl,function(data){if(typeof fnk=="function"){fnk.call(this,data.responseData.feed);}else{return false;}});}});})(jQuery);
</script>
<style>
.name {
clear:both;
font-weight:bold;
padding-top:5px;
}
#feedPlaceholder {
margin-left: 50px;
}
</style>
</head>
<body>
<p><b>Nie znaleziono strony</b>, ale Ty szukaj <b>zaginionych dzieci</b>.</p>
<p><i>Informacje ze strony <a href="http://zaginieni.policja.pl">http://zaginieni.policja.pl</a></i></p>
<div id="feedPlaceholder">
</div>
<script type="text/javascript">
var feedUrl = 'http://zaginieni.policja.pl/rss/6';
var Items = 6;
$(document).ready(function() {
$.jGFeed(
feedUrl,
function(feed) {
if (!feed) return;
for (var i = 0; i < feed.entries.length; i++) {
var entry = feed.entries[i];
var link = entry.link.split(".pl/");
link = link[1];
var content = entry.content.split("/");
content = '<img src="http://zaginieni.policja.pl/g2/zdjecia/' + content[content.length - 1];
content = content.replace(".htm", ".jpg");
$('#feedPlaceholder').append(
'<span class="name">' + content + '<a href="http://zaginieni.policja.pl/' + link + '">' + entry.title + '</a></span><br />'
);
}
},
Items
);
});
</script>
</body>
</html>
CaÅ‚e skomplikowanie problemu w polskiej wersji polegaÅ‚o na odpowiednim przetworzeniu danych z RSSa. W szczególnoÅ›ci w oryginalnym policyjnym RSSie jest błąd w linku do szczegółów danej poszukiwanej osoby – prowadzi na nieistniejÄ…cÄ… stronÄ™, prawdopodobnie poprzedni adres serwisu. ZgÅ‚osiÅ‚am to webmasterowi serwisu, ale póki co błąd nadal istnieje. Poprawiam to rÄ™cznie w powyższym JS’ie.
Pojawiają się głosy, że takie coś jest kompletnie bez sensu, że są dużo bardziej skuteczne organizacje zajmujące się takimi problemami, ale osobiście uważam, że jeśli mogę pomóc w taki sposób, to dlaczego nie? To nic nie kosztuje.