Пример #1
0
//we have no "created" data in our database. use first release
end($pkg['releases']);
$p->created = reset(explode(' ', $pkg['releases'][key($pkg['releases'])]['releasedate']));
$p->shortdesc = $pkg['summary'];
$p->shortdesc['xml:lang'] = 'en';
$p->description = $pkg['description'];
$p->description['xml:lang'] = 'en';
$p->{'mailing-list'}[0]['rdf:resource'] = 'http://pear.php.net/support/lists.php';
$p->{'mailing-list'}[1]['rdf:resource'] = 'http://news.php.net/php.pear.general';
$p->{'mailing-list'}[2]['rdf:resource'] = 'http://news.php.net/php.pear.dev';
$p->{'download-page'}['rdf:resource'] = $url . '/download';
/*
 * DOAP: helper, tester, translator, documenter, developer, maintainer
 * PEAR: helper, contributor, developer, lead
 */
$maintainers = maintainer::getDetailled($pkg['packageid']);
//PEAR -> DOAP
$rolemap = array('helper' => 'helper', 'contributor' => 'helper', 'developer' => 'developer', 'lead' => 'maintainer');
$rolecounter = array('helper' => 0, 'developer' => 0, 'maintainer' => 0);
foreach ($maintainers as $nick => $maint) {
    $role = $rolemap[$maint['role']];
    $n = $rolecounter[$role];
    $p->{$role}[$n]->{'foaf:Person'}->{'foaf:nick'} = $nick;
    $p->{$role}[$n]->{'foaf:Person'}->{'foaf:name'} = $maint['name'];
    $p->{$role}[$n]->{'foaf:Person'}->{'foaf:homepage'}['rdf:resource'] = $maint['homepage'];
    $p->{$role}[$n]->{'foaf:Person'}->{'foaf:mbox_sha1sum'} = sha1('mailto:' . $maint['email']);
    if ($maint['longitude'] != '') {
        $p->{$role}[$n]->{'foaf:Person'}->{'foaf:based_near'}->{'geo:Point'}['geo:lat'] = $maint['latitude'];
        $p->{$role}[$n]->{'foaf:Person'}->{'foaf:based_near'}->{'geo:Point'}['geo:long'] = $maint['longitude'];
    }
    ++$rolecounter[$role];