Miniblog dla każdego
15 maja 2006
Ciekawym dodatkiem do bloga jest tak zwane Asides, bądź po prostu - miniblog. Miejsce z „drugim blogiem”, gdzie zamieszcza się generalnie krótkie i mniej ważne wpisy. Linki, cytaty - co chcesz. Chodzi jednak o to, że nie rozmywasz przekazu główych wpisów bloga. Tyczy się to także kanału RSS, dlatego nie mogę zrozumieć jak można podczepiać ten dodatkowy bloczek do głównego źródła. Wordpress dysponuje odpowiednimi wtyczkami, co natomiast z Joggerem (na przykład)?
Byłoby trudno to zrobić, ponieważ Jogger nie ma w opcjach czegoś takiego jak drugi blog wewnątrz pierwszego. Nie zezwala także na dołączanie własnych snippetów kodu PHP do szablonu. Umożliwia jednak jego kompleksową edycję, dzięki czemu możemy umieścić odwołanie do pliku JavaScript, który to doda odpowiednią treść do bloga.
W poprzedniej wersji serwisu można było odpowiednio złożyć URL korzystający z naszej domeny, aby dobrać się do RSS z innego Joggera (syndication.php?format=rss). Teraz już to nie jest możliwe, więc Ajax odpada. Wystarczy więc dysponować dostępem do serwera z PHP i zainstalować na nim swoją własną kopię Feed2JS. Nie polecam korzystać z ich usług online - są wolne, a cache trzyma przez godzinę.
Instalacja jest dość prosta. Jeśli nie czujesz się za dobrze z angielskim:
- Wgraj pliki na serwer.
- Utwórz dwa katalogi wewnątrz katalogu magpie i nadaj im globalne zezwolenia do zapisu. Można to zrobić przez SSH jeśli masz shell (
chmod 0777 katalog), albo cPanelowym Menadżerem Plików. - Możesz potem odpalić plik magpie_debug.php, żeby zobaczyć czy wszystko jest dobrze.
- W pliku feed2js_config.php ustaw ścieżkę do Magpie (
define('MAGPIE_DIR'…)) - jeśli wgrałeś wszystko jak leci, nie potrzebujesz tam nic zmieniać. - Ustaw też czas cache - ja mam kwadrans. Tutaj:
define('MAGPIE_CACHE_AGE', 15*60);. Gdyby kodowanie się sypało zainteresuj się linijkądefine('MAGPIE_OUTPUT_ENCODING'…)
Dalej pozostaje ci zmienić to co Feed2JS będzie z siebie wyrzucał - plik feed2js.php. Mój skrypt ma już trochę czasu, nie zaglądałem do niego od dawna, ale przypominam sobie, że znajduje się tam domyślnie masa zbędnego kodu (prawie zupa z tagów). Moja część PARSE FEED and GENERATE OUTPUT wygląda tak.
Stworzyłem tutaj funkcję miniblog, którą potem wywołuję przez addEvent z innego pliku JS1. Na końcu funkcji podczepiam wszystko co stworzono do div'a z id="miniblog" - znajomość podstaw DOM wymagana. Można to zrobić oczywiście inaczej (ja trzy razy wypisuję ten sam kod, jeśli chcesz więcej wpisów to lepiej by było wygenerować pętlę). Można również wykorzystać zmienną $feedcheck_str aby sprawdzić czy RSS został przetworzony.
Cały kod powstawał na zasadzie „działaj, proszę” - więc nie jest jakoś specjalnie optymalizowany. Zauważyłem podczas wczytywania się dzisiaj w pliki, że możemy ustawić format daty w feed2js_config.php:
$date_format = "F d, Y h:i:s a";
Tak czy inaczej po wywołaniu feed2js.php?src=ścieżka-do-rss dostaniesz plik JavaScript. Teraz wystarczy go tylko podczepić do strony:
<script type="text/javascript" src="http://serwer.com/feed2js/feed2js.php?src=http://jakiś.jogger.pl/rss/content/html/ilość-wpisów/"></script>
- 1) Muszę się tym zająć, bo miniblog nie jest dodawany szybciej tylko po
onload.


