Savo blogerio karjierą, kad ir kokia ji bebūtų, pradėjau Blogas.lt sistemoje. Po kiek laiko man ten pritrūko funkcialumo ar dar kažko ir nusprendžiau bėgti lauk, pasileisdamas Wordpress sistemą. Savo senesniame webloge jau buvau prirašęs nei daug nei mažai - 68 įrašus, tad pastaruoju metu pagalvodavau, kad būtų visai smagu visus šiuos įrašus įsikelti pas save. Wordpress turi įrašų importavimo ir eksportavimo funkcijas. Įrašus galima įkelti iš tokių sistemų kaip Blogger, LiveJournal, Typepad, o taip pat ir iš kitos Wordpress sistemos, RSS 2.0 srautų ir t.t. Eksportuojant duomenys yra išsaugomi xml formatu tam tikra Wordpress struktūra. Asmeniškai manau, kad visos programinės įrangos kūrimas turėtų judėti standartų ir tarpusavio suderinamumo link. Vartotojas neturėtų būti pririštas prie konkrečios sistemos vien todėl, kad negali perkelti savo duomenų kitur, o galėtų pasirinkti tobulesnę ar jam labiau priimtimesnę sistemą. Tai taip pat skatintų programinės įrangos tobulėjimą, nes vartotojas taptų mažiau priklausomas ir rinktųsi tobulesnį ir labiau išbaigtą produktą. Tačiau BlogHoster’iui (sistema “ant kurios” sukasi Blogas.lt) taip neatrodo - nėra jokių importavimo, o tuo labiau eksportavimo galimybių.
Pradžioje galvojau, kad perkelsiu įrašus pasinaudodamas Blogas.lt RSS srautu. Blogas.lt sistemoje egzistuoja RSS įrašų publikavimo limitas, kurio maksimalus dydis - 20 įrašų. Mąsčiau, jog galima įrašus perkėlinėti dalimis: įkeliu paskutinius 20 įrašų, juos ištrinu iš savo Blogas.lt weblogo, taip galiu per RSS nuskaityti kitus 20 įrašų. Tačiau tokiu atveju būčiau praradęs visus komentarus. O ir šiaip pabandžius tai atlikti, Wordpress’as spardėsi ir importuodavo geriausiu atvėju po pirmą kiekvieno įrašo sakinį. Šis metodas netinka.
Staiga prisiminiau, jog Blogas.lt leidžia redaguoti savo weblogo šabloną, tad kodėl man jo nepavertus Wordpress’o palaikomu eksportavimo failu? Tokiu atvėju galėsime perkelti ne tik pačius įrašus, bet ir jų komentarus. Atsidaręs Wordpress eksportuotų duomenų failą, išsinagrinėjau jo struktūrą ir pasirašiau šabloną mano senąjam weblogui.
Norėdami persikelti įrašus iš Blogas.lt į Wordpress, darome taip:
-
Susikuriame failą “data.xml”, į jį įrašome žemiau esančią informaciją:
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:wp="http://wordpress.org/export/1.0/"
>
<channel>
<generator>http://wordpress.org/?v=2.1.3</generator>
#PASTE#
</channel>
</rss>
- Atsidarome savo Blogas.lt blogo nustatymų panelę, ir pakeičiate įrašų kiekį puslapyje nurodančią reikšmę “Įrašų puslapyje*” į didesnę, nei visų jūsų įrašų kiekis. To reikia, kad visi įrašai būtų rodomi viename puslapyje.
-
Atsidarome šablono redagavimo langą, viską ištriname, įrašome žemiau esantį kodą ir išsaugome pakeitimus.
#START#
<IfMainPage>
<Entry>
<item>
<title><%EntryTitle%></title>
<pubDate><%EntryDate%> <%EntryTime%></pubDate>
<dc:creator>admin</dc:creator>
<description></description>
<content:encoded>
<![CDATA[<%EntryBody%>]]>
</content:encoded>
<wp:post_date><%EntryDate%> <%EntryTime%></wp:post_date>
<wp:status>publish</wp:status>
<Comment>
<wp:comment>
<wp:comment_author><%CommentAuthor%></wp:comment_author>
<wp:comment_author_IP><%CommentAuthorIP%></wp:comment_author_IP>
<wp:comment_author_url></wp:comment_author_url>
<wp:comment_author_email></wp:comment_author_email>
<wp:comment_date><%CommentDate%> <%CommentTime%></wp:comment_date>
<wp:comment_content><%CommentBody%></wp:comment_content>
<wp:comment_approved>1</wp:comment_approved>
</wp:comment>
</Comment>
</item>
</Entry>
</IfMainPage>
#END#
- Atsidarome savo weblogą, esantį Blogas.lt ir matome bardaką. Rekomenduočiau atsidaryti su Firefox, nes jis, skirtingai nei opera, atidaro puslapio išeities teksto peržiūrą ta pačia koduote, kaip ir nurodyta puslapyje. Nusistatome tinkamą koduotę, kad rodytų tautiškus simbolius (Windows-1257). Pasirenkame išeities teksto (source) peržiūrą ir kopijuojame viską tarp #START# ir #END#, jų pačių neįtraukdami. Viską ką nukopijavome, pastiname į anksčiau sukurtą failą “data.xml”, vietoj žodžio #PASTE#.
-
Pašaliname visus “<br>” tagus. Jie atsiranda komentaruose ir mums trukdo, nes parsinant XML’ą Wordpress’as galvos jog tai kažkokio įrašo pradžia (XML lauko atsidarymas). HTML tagų šalinti iš pačių įrašų nereikia, nes jie apskliausti < ![CDATA[ ]]>. Viskas, kas yra apskliausta, yra laikoma kaip lauko įrašas ir toliau nebeparsinama, tad ir HTML tagai mums nebekliudo. Komentarams Wordpress’as to naudoti neleidžia. Tagų šalinimui paprasčiausiai praleidau “<BR>” paiešką ir visus pakeičiau (replace) į nieką :-) Padarę pakeitimus išsaugom failą.
- Atsidarom Wordpress admin panelę, einam į “Manage” -> “Import”, renkamės tipą “Wordpress” (turėtų būt pats paskutinis). Atsidariusioje formoje pasirenkam mūsų data.xml ir spaudžiam “Upload file and submit”. Kitame lange pasirenkame kuriam vartotojui norime priskirti visus šiuos įrašus ir vėl patvirtinam formą.
VISKAS! Jei viskas pasisekė, galite džiaugtis perkeltais įrašais. Tiesa, įkeliant įrašus, kažkodėl įsikėlė tik ~50 naujausiųjų, o paskutiniojo iš tų 50, nebuvo kelių komentarų. Todėl pašalinau paskutinį įrašą ir procedūrą kartojau iš naujo, tik su tais neįkeltais įrašais, tačiau tai nesukelia didelių problemų. Taip, kad migruokit sėkmingai! Jei turit kokių klausimų ar atsirado problemų - kreipkitės, pasistengsiu pagelbėt.
P.S. Šis metodas tinka ir kitoms sistemoms (nebūtinai blogas.lt), kurios turi šablonų redagavimo galimybę. Tokiu atveju reiktų pakeisti atitinkamus šablonų tagus aukščiau parašytame tekste, kurį saugome į data.xml failą.