Z gory przepraszam za dziecinne pytania, ale jestem zupelnie zielony, a siedze nad tym skryptem juz szmat czasu i juz nie moge.
skrypt konwertuje archiwum jogger.pl do bazy wordpressa. oto skrypt:
<?php /* the three SET database statements below ensure proper UTF-8 handling for MySQL 4.1+ */ { } $kategoria = 2; // id kategori do której polecą domyślnie wpisy :) /* od tego miejsca nie zmieniamy */ $dom = new DOMDocument(); if (!$dom->load("jogger.xml")) { exit; } $root = $dom->documentElement; $entries = $root->getElementsByTagname("entry"); foreach($entries as $k => $v) { $a = $v->getElementsByTagname("date"); $date = $a->item(0)->nodeValue; $ent[$date]['date'] = $date; $a = $v->getElementsByTagname("subject"); $ent[$date]['subject'] = $a->item(0)->nodeValue; $a = $v->getElementsByTagname("level"); $ent[$date]['post_status'] = ($a->item(0)->nodeValue > 1)?("private"):("publish"); $z = $v->getElementsByTagname("body"); $ent[$date]['body'] = $z->item(0)->nodeValue; $comment = $v->getElementsByTagname("comment"); foreach($comment as $kk => $vv) { $a = $vv->getElementsByTagname("date"); $cdate = $a->item(0)->nodeValue; $a = $vv->getElementsByTagname("nick"); $ent[$date]['comment'][$cdate][nick] = $a->item(0)->nodeValue; $a = $vv->getElementsByTagname("nick_url"); $ent[$date]['comment'][$cdate][nick_url] = $a->item(0)->nodeValue; $a = $vv->getElementsByTagname("body"); $ent[$date]['comment'][$cdate][body] = $a->item(0)->nodeValue; } } foreach($ent as $k => $v) { $sql = sprintf("INSERT INTO `wp_posts` (`post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`,
`post_status`, `post_modified`, `post_modified_gmt`, `guid`, `post_name`) VALUES". " (1, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')", $v[date],$v[date],mysql_escape_string($v[body]),mysql_escape_string($v[subject]), $v[post_status], $v[date], $v[date],'',md5($v[subject])); mysql_query("INSERT INTO `wp_post2cat` (`post_id`, `category_id`) VALUES($id, $kategoria)") or die (mysql_error()); foreach($v['comment'] as $kk => $vv) { $sql = sprintf("INSERT INTO `wp_comments` (`comment_post_ID`, `comment_author`, `comment_author_url`, `comment_date`,
`comment_date_gmt`, `comment_content`, `comment_approved`) VALUES". "(%d, '%s', '%s', '%s', '%s', '%s', '1')", $id, mysql_escape_string($vv[nick]), mysql_escape_string($vv[nick_url]), $vv[date], $vv[date], mysql_escape_string($vv[body])); } } ?>
oto kawalek archiwum:
jogger> − <user> <jid>sir_skiner@chrome.pl</jid> <domain>antyidiot</domain> <alias/> </user> − <entry> <date>2004-11-01 16:30:00</date> <jid>sir_skiner@chrome.pl</jid> <level_id>0</level_id> <comment_mode>0</comment_mode> <subject>Z czym się to je?</subject> − <body> <p>Próbuje to "obczaić", zwłaszcza czemu Gaim mi nie chce działać z Joggerem...</p> </body> <tags/> <permalink>z-czym-sie-to-je</permalink> <trackback/> <category>Kapusta z grochem</category> <category>Życie jogga</category> − <comment> <date>2004-11-01 16:30:41</date> <nick>Paul_1981@jabberpl.org</nick> <nick_url>http://ocean.jogger.pl</nick_url> <body><p>Właśnie zadziałało :-(</p></body> <ip>213.25.55.***</ip> <trackback/> </comment> − <comment> <date>2004-11-01 16:33:48</date> <nick>sir_skiner</nick> <nick_url/> − <body> <p>a nie, bo to poszlo z innego komunikatora;]</p> </body> <ip>172.16.8.***</ip> <trackback/> </comment> − <comment> <date>2004-11-01 16:52:04</date> <nick>da.killa</nick> <nick_url>http://dakilla.jogger.pl</nick_url> <body><p>Bo Gaim ogólnie jest kiepski :)</p></body> <ip>213.77.163.***</ip> <trackback/> </comment> − <comment> <date>2004-11-01 19:18:58</date> <nick>insider</nick> <nick_url/> − <body> <p>a tam kiepski zaraz;P To jogger jest kiepski bo nie chce działać z gaimem;> <br /> <br /></p> </body> <ip>83.29.133.***</ip> <trackback/> </comment> </entry> − <entry>
a teraz co trzeba zrobic, zeby:
- skrypt utworzy w bazie podkategorie lub kategorie na podstawie tagow xml i przyporzadowal je do postow, zamiast pakowac wsio do 1 kategorii wpisow
- dodal do pola comment_count w tabeli wp_posts liczbe komentarzy o tej samej wartosci pola comment_post_ID w tabeli wp_comments
