Witam.
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
mysql_connect('localhost','skiner','skinersql') or
die("błąd łączenia z bazÄ…");
/* the three SET database statements below ensure proper UTF-8 handling
for MySQL 4.1+ */
|| !@mysql_query("SET collation_connection = 'utf8_polish_ci'") {
}
$kategoria = 2; // id kategori do której polecą domyślnie wpisy :)
/* od tego miejsca nie zmieniamy */
$dom = new DOMDocument();
if (!$dom->load("jogger.xml")) {
echo "Error while parsing the documentn";
}
$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;
$ent[$date]['comment'] = Array();
$comment = $v->getElementsByTagname("comment");
foreach($comment as $kk => $vv)
{
$a = $vv->getElementsByTagname("date");
$cdate = $a->item(0)->nodeValue;
$ent[$date]['comment'][$cdate][date] = $cdate;
$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
]));
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
Ten post edytował sir_skiner 10.07.2007, 21:10:52