public static function NZB($postid) { static::Init(); $result = ''; // Get newsgroups $groups = ''; $rs = static::$conn->Execute('SELECT "groupid" FROM "postgroup" WHERE "postid" = ? ', $postid); while ($row = $rs->Fetch()) { $groups .= "\t\t\t<group>" . Newsgroup::Lookup($row['groupid']) . "</group>\n"; } // Get files $rs = static::$conn->Execute('SELECT "subject","authorid","parts","post_date" FROM "articles" WHERE "postid" = ? ', $postid); while ($row = $rs->Fetch()) { if (strlen($row['parts']) == 0) { continue; } // Empty parts value = SKIP file $parts = unserialize(gzinflate($row['parts'])); if (isset($parts['id']) && isset($parts['size'])) { $result .= "\t" . '<file poster="' . SafeHTML(Author::Lookup($row['authorid'])) . '" date="' . $row['post_date'] . '" subject="' . SafeHTML($row['subject']) . '">' . "\n"; // Groups $result .= "\t\t<groups>\n" . $groups . "\t\t</groups>\n"; // Segments $result .= "\t\t<segments>\n"; ksort($parts['size']); foreach ($parts['size'] as $key => $value) { if (isset($parts['id'][$key])) { $result .= "\t\t\t" . '<segment bytes="' . $value . '" number="' . $key . '">' . SafeHTML($parts['id'][$key]) . "</segment>\n"; } } $result .= "\t\t</segments>\n"; $result .= "\t</file>\n"; } } return $result; }