| 24 | | my $query = "SELECT name, category, author FROM directory WHERE (validity IS NULL OR validity = '')"; |
|---|
| | 24 | my $query = "SELECT name, category, author, licence, rating, downloads, version, release, releasedate, " . |
|---|
| | 25 | "summary_ref, preview_ref, payload_ref, name_ref " . |
|---|
| | 26 | "FROM directory WHERE (validity IS NULL OR validity = '')"; |
|---|
| 30 | | my ($name, $category, $author); |
|---|
| 31 | | my $res2 = $conn->prepare($query); |
|---|
| 32 | | $res2->execute(); |
|---|
| 33 | | $res2->bind_columns(\$name, \$category, \$author); |
|---|
| 34 | | while($res2->fetch()){ |
|---|
| 35 | | my @res = ($name, $category, $author); |
|---|
| 36 | | $results{$name} = \@res; |
|---|
| | 32 | my ($name, $category, $author, $licence, $rating, $downloads, $version, $release, $releasedate); |
|---|
| | 33 | my ($summary_ref, $preview_ref, $payload_ref, $name_ref); |
|---|
| | 34 | my $res = $conn->prepare($query); |
|---|
| | 35 | $res->execute(); |
|---|
| | 36 | $res->bind_columns(\$name, \$category, \$author, \$licence, \$rating, \$downloads, \$version, \$release, \$releasedate, |
|---|
| | 37 | \$summary_ref, \$preview_ref, \$payload_ref, \$name_ref); |
|---|
| | 38 | while($res->fetch()){ |
|---|
| | 39 | my ($email, $im, $realname); |
|---|
| | 40 | my $res2 = $conn->prepare("SELECT email, im, realname FROM authors WHERE name = '$author'"); |
|---|
| | 41 | $res2->execute(); |
|---|
| | 42 | $res2->bind_columns(\$email, \$im, \$realname); |
|---|
| | 43 | $res2->fetch(); |
|---|
| | 44 | |
|---|
| | 45 | my ($licencename, $licenceurl); |
|---|
| | 46 | my $res2 = $conn->prepare("SELECT name, url FROM licences WHERE licence = '$licence'"); |
|---|
| | 47 | $res2->execute(); |
|---|
| | 48 | $res2->bind_columns(\$licencename, \$licenceurl); |
|---|
| | 49 | $res2->fetch(); |
|---|
| | 50 | |
|---|
| | 51 | my ($summary, $preview, $payload); |
|---|
| | 52 | my $res2 = $conn->prepare("SELECT content FROM contents WHERE index = '$summary_ref' AND type = 'summary'"); |
|---|
| | 53 | $res2->execute(); |
|---|
| | 54 | $res2->bind_columns(\$summary); |
|---|
| | 55 | $res2->fetch(); |
|---|
| | 56 | $res2->finish(); |
|---|
| | 57 | my $res2 = $conn->prepare("SELECT content FROM contents WHERE index = '$preview_ref' AND type = 'preview'"); |
|---|
| | 58 | $res2->execute(); |
|---|
| | 59 | $res2->bind_columns(\$preview); |
|---|
| | 60 | $res2->fetch(); |
|---|
| | 61 | $res2->finish(); |
|---|
| | 62 | my $res2 = $conn->prepare("SELECT content FROM contents WHERE index = '$payload_ref' AND type = 'payload'"); |
|---|
| | 63 | $res2->execute(); |
|---|
| | 64 | $res2->bind_columns(\$payload); |
|---|
| | 65 | $res2->fetch(); |
|---|
| | 66 | $res2->finish(); |
|---|
| | 67 | |
|---|
| | 68 | my @result = ($name, $category, $author, $email, $im, $realname, $licence, $licencename, $licenceurl, $rating, |
|---|
| | 69 | $downloads, $version, $release, $releasedate, $summary, $preview, $payload); |
|---|
| | 70 | $results{$name} = \@result; |
|---|
| 48 | | my @res = @$resref; |
|---|
| 49 | | my ($name, $category, $author) = @res; |
|---|
| | 82 | my @result = @$resref; |
|---|
| | 83 | my ($name, $category, $author, $email, $im, $realname, $licence, $licencename, $licenceurl, $rating, |
|---|
| | 84 | $downloads, $version, $release, $releasedate, $summary, $preview, $payload) = @result; |
|---|
| | 85 | |
|---|
| | 86 | if($realname){ |
|---|
| | 87 | $author = $realname; |
|---|
| | 88 | } |
|---|
| | 89 | my %authorinfo = (); |
|---|
| | 90 | if($email ne ""){ |
|---|
| | 91 | $authorinfo{"email"} = $email; |
|---|
| | 92 | } |
|---|
| | 93 | if($im ne ""){ |
|---|
| | 94 | $authorinfo{"im"} = $im; |
|---|
| | 95 | } |
|---|
| | 96 | |
|---|
| | 97 | my %licenceinfo = (); |
|---|
| | 98 | if($licencename ne ""){ |
|---|
| | 99 | $licenceinfo{"name"} = $licencename; |
|---|
| | 100 | } |
|---|
| | 101 | if($licenceurl ne ""){ |
|---|
| | 102 | $licenceinfo{"url"} = $licenceurl; |
|---|
| | 103 | } |
|---|
| 53 | | $writer->dataElement("author", $author); |
|---|
| | 107 | $writer->dataElement("author", $author, %authorinfo); |
|---|
| | 108 | $writer->dataElement("licence", $licence, %licenceinfo); |
|---|
| | 109 | $writer->dataElement("rating", $rating); |
|---|
| | 110 | $writer->dataElement("downloads", $downloads); |
|---|
| | 111 | $writer->dataElement("version", $version); |
|---|
| | 112 | $writer->dataElement("release", $release); |
|---|
| | 113 | $writer->dataElement("releasedate", $releasedate); |
|---|
| | 114 | #$writer->dataElement("", $); |
|---|
| | 115 | $writer->dataElement("summary", $summary); |
|---|
| | 116 | $writer->dataElement("preview", $preview); |
|---|
| | 117 | $writer->dataElement("payload", $payload); |
|---|