// ########################################### end top area
// two column deal
+// Embedd some RDFa to describe the project using DOAP and SIOC
echo '
-<div id="forge-project-home" class="lien-soulignement">
+<div id="forge-project-home" class="underline-link">
+
+<div about="" typeof="sioc:Space doap:Project" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:doap="http://usefulinc.com/ns/doap#" />
+
<table id="project-summary-and-devs" class="my-layout-table" summary="">
<tr>
<td>
- <h2>'.$project->getPublicName().'</h2>
+ <h2><span property="doap:shortdesc">'.$project->getPublicName().'</span></h2>
<h3>'._('Project summary').'</h3>';
'A'));
if ($project->getStatus() == 'H') {
- print "<p>".sprintf(_('NOTE: This project entry is maintained by the %1$s staff. We are not the official site for this product. Additional copyright information may be found on this project\'s homepage.'), $GLOBALS['sys_name'])."</p>\n";
+ print "<p>".sprintf(_('NOTE: This project entry is maintained by the %1$s staff. We are not the official site for this product. Additional copyright information may be found on this project\'s homepage.'), forge_get_config ('forge_name'))."</p>\n";
}
$hook_params = array () ;
$hook_params['group_id'] = $group_id ;
plugin_hook ("project_before_description",$hook_params) ;
-if ($project->getDescription()) {
- print "<p>" . nl2br($project->getDescription()) . '</p>';
+// insert an empty <span /> which seems to be better if not compacted
+print '<span property="doap:name" content="'. $project->getUnixName() .'"></span>'."\n";
+// print '<span property="coclico:hosted_by">' ...
+//print '<div property="sioc:has_container" xmlns:sioc="http://rdfs.org/sioc/ns#" content="fusionforge:ForgeProjects" xmlns:fusionforge="http://fusionforge.org/fusionforge#">';
+
+$project_description = $project->getDescription();
+if ($project_description) {
+ // need to use a litteral version for content attribute since nl2br is for HTML
+ print "<p>"
+ .'<span property="doap:description" content="'. preg_quote($project_description,'"') .'">'
+ . nl2br($project_description)
+ .'</span></p>';
} else {
print "<p>" . _('This project has not yet submitted a description.') . '</p>';
}
}
// registration date
-print(_('Registered: ') . date(_('Y-m-d H:i'), $project->getStartDate()));
+$project_start_date = $project->getStartDate();
+print(_('Registered: ') .
+ '<span property="doap:created" content="'.date('Y-m-d', $project_start_date).'">'.
+ date(_('Y-m-d H:i'), $project_start_date).
+ '</span>');
// Get the activity percentile
// CB hide stats if desired
$num),
util_make_url ('/people/?group_id='.$group_id),
db_result($jobs_res,0,"name"));
+//print '<div rel="fusionforge:has_job" typeof="fusionforge:Job" xmlns:fusionforge="http://fusionforge.org/fusionforge#">';
+//print '<span rel="dc:title" content="'. db_result($jobs_res,0,"name").'" xmlns:dc="http://purl.org/dc/elements/1.1/">';
+//print '</span>';
+//echo '</div>';
+//end of job description part
}
}
}
+
+
$hook_params = array () ;
$hook_params['group_id'] = $group_id ;
plugin_hook ("project_after_description",$hook_params) ;
$started_developers=true;
echo '<span class="develtitle">'. _('Developers').':</span><br />';
}
- echo util_make_link_u ($row_admin['user_name'],$row_admin['user_id'],$row_admin['realname']).'<br />';
+ if (!$started_developers) {
+ echo '<div rel="doap:maintainer">'."\n";
+ } else {
+ echo '<div rel="doap:developer">'."\n";
+ }
+ # a foaf:Person that holds an account on the forge
+ $developer_url = util_make_url_u ($row_admin['user_name'],$row_admin['user_id']);
+ echo '<div typeof="foaf:Person" xmlns:foaf="http://xmlns.com/foaf/0.1/" about="'.
+ $developer_url.'#me' .'" >'."\n";
+ echo '<div rel="foaf:account">'."\n";
+ echo '<div typeof="sioc:UserAccount" about="'.
+ $developer_url.
+ '" xmlns:sioc="http://rdfs.org/sioc/ns#">'."\n";
+ echo util_make_link_u ($row_admin['user_name'],$row_admin['user_id'],$row_admin['realname']) ."<br />\n";
+ echo "</div>\n"; // /sioc:UserAccount
+ echo "</div>\n"; // /foaf:holdsAccount
+ echo "</div>\n"; // /foaf:Person
+ echo "</div>\n"; // /doap:maintainer|developer
if ($row_admin['user_id'] == user_getid())
$iam_member = true ;
}
}
$members = $project->getUsers();
-echo '<p>';
-echo util_make_link ('/project/memberlist.php?group_id='.$group_id,'['.sprintf(_('View the %1$d Member(s)'),count($members)).']'); ?>
-echo '</p>';
+echo '<p><span rel="sioc:has_usergroup" xmlns:sioc="http://rdfs.org/sioc/ns#">';
+echo '<div about="members/" typeof="sioc:UserGroup">';
+echo '<span rel="http://www.w3.org/2002/07/owl#sameAs">';
+echo util_make_link ('/project/memberlist.php?group_id='.$group_id,sprintf(_('View the %1$d Member(s)'),count($members)));
+echo '</span>';
+echo '</div>';
+echo '</span></p>';
+// end of project usergroup description
if (!$iam_member) {
echo '<p>'.util_make_link ('/project/request.php?group_id='.$group_id,_('Request to join')).'</p>';
<strong>' . $package_name . '</strong>
</td>';
// Releases to display
+//print '<div about="" xmlns:sioc="http://rdfs.org/sioc/ns#" rel="container_of" resource="'.util_make_link ('/frs/?group_id=' . $group_id . '&release_id=' . db_result($res_files,$f,'release_id').'">';
echo '
<td>'
.$package_release.'
. $rel_date["month"] . ' ' . $rel_date["mday"] . ', ' . $rel_date["year"] .
'</td>
<td class="align-center">';
+//echo '</div>';
// -> notes
// accessibility: image is a link, so alt must be unique in page => construct a unique alt
}
}
echo '</table>';
- echo '<div class="lien-soulignement">' . util_make_link ('/frs/?group_id='.$group_id, _('View All Project Files')) . '</div>';
+ echo '<div class="underline-link">' . util_make_link ('/frs/?group_id='.$group_id, _('View All Project Files')) . '</div>';
echo $HTML->boxBottom();
}
// ################# Homepage Link
-echo '<div class="public-area-box">';
-echo util_make_link ('http://' . $project->getHomePage(), $HTML->getHomePic(_('Home Page')) . ' ' . _('Project Home Page'));
+echo '<div class="public-area-box" rel="doap:homepage">';
+echo util_make_link ('http://' . $project->getHomePage(), $HTML->getHomePic(_('Home Page')) . ' ' . _('Project Home Page'), false, true);
echo '</div>
';
if (!$result || $rows < 1) {
echo '<br /><em>'._('There are no public trackers available').'</em>';
} else {
- echo '<ul class="tracker">';
+ echo '<ul class="tracker" rel="doap:bug-database">';
for ($j = 0; $j < $rows; $j++) {
- echo '<li>';
- echo util_make_link ('/tracker/?atid='. db_result($result, $j, 'group_artifact_id') . '&group_id='.$group_id.'&func=browse',db_result($result, $j, 'name')) . ' ' ;
- printf(ngettext('(<strong>%1$s</strong> open / <strong>%2$s</strong> total)', '(<strong>%1$s</strong> open / <strong>%2$s</strong> total)', (int) db_result($result, $j, 'open_count')), (int) db_result($result, $j, 'open_count'), (int) db_result($result, $j, 'count')) .'<br />'.
- db_result($result, $j, 'description');
- echo '</li>' ;
+ // tracker REST paths are something like : /tracker/cm/project/A_PROJECT/atid/NUMBER to plan compatibility
+ // with OSLC-CM server API
+ $group_artifact_id = db_result($result, $j, 'group_artifact_id');
+ $tracker_stdzd_uri = util_make_url('/tracker/cm/project/'. $project->getUnixName() .'/atid/'. $group_artifact_id);
+ echo '<li about="'. $tracker_stdzd_uri . '" typeof="sioc:Container" xmlns:sioc="http://rdfs.org/sioc/ns#">'."\n";
+ print '<span rel="http://www.w3.org/2002/07/owl#sameAs">'."\n";
+ echo util_make_link ('/tracker/?atid='. $group_artifact_id . '&group_id='.$group_id.'&func=browse',db_result($result, $j, 'name')) . ' ' ;
+ echo "</span>\n"; // /owl:sameAs
+ printf(ngettext('(<strong>%1$s</strong> open / <strong>%2$s</strong> total)', '(<strong>%1$s</strong> open / <strong>%2$s</strong> total)', (int) db_result($result, $j, 'open_count')), (int) db_result($result, $j, 'open_count'), (int) db_result($result, $j, 'count'));
+ echo '<br />'.db_result($result, $j, 'description');
+ print '<span rel="sioc:has_space" resource="" />'."\n";
+ echo "</li>\n";
}
echo '</ul>';
}
if ($project->usesForum()) {
echo '<div class="public-area-box">';
+// print '<hr size="1" /><a rel="sioc:container_of" xmlns:sioc="http://rdfs.org/sioc/ns#" href="'.util_make_url ('/forum/?group_id='.$group_id).'">';
$link_content = $HTML->getForumPic('') . ' ' . _('Public Forums');
echo util_make_link ( '/forum/?group_id=' . $group_id, $link_content);
print ' (';
if ($project->usesDocman()) {
echo '<div class="public-area-box">';
$link_content = $HTML->getDocmanPic('') . ' ' . _('DocManager: Project Documentation');
+// <a rel="sioc:container_of" xmlns:sioc="http://rdfs.org/sioc/ns#" href="'.util_make_url ('/docman/?group_id='.$group_id).'">';
print util_make_link( '/docman/?group_id='.$group_id, $link_content);
echo '</div>';
}
$link_content = $HTML->getMailPic('') . ' ' . _('Mailing Lists');
print util_make_link( '/mail/?group_id='.$group_id, $link_content);
$n = project_get_mail_list_count($group_id);
+ echo ' ';
printf(ngettext('(<strong>%1$s</strong> public mailing list)', '(<strong>%1$s</strong> public mailing lists)', $n), $n);
echo '</div>';
}
print util_make_link( '/pm/?group_id='.$group_id, $link_content);
$result = db_query_params ('SELECT * FROM project_group_list WHERE group_id=$1 AND is_public=1',
- $array ($group_id));
+ array ($group_id));
$rows = db_numrows($result);
if (!$result || $rows < 1) {
echo '<br /><em>'._('There are no public subprojects available').'</em>';
if ($project->usesSurvey()) {
echo '<div class="public-area-box">';
- print html_image('ic/survey16b.png','20','20',array('alt'=>"")) . " ";
- print util_make_link( '/survey/?group_id='.$group_id, ' '._('Surveys'));
- echo ' ( <strong>'. project_get_survey_count($group_id) .'</strong> ' . _('surveys').' )';
+ $link_content = $HTML->getSurveyPic('') . ' ' . _('Surveys');
+ echo util_make_link( '/survey/?group_id='.$group_id, $link_content);
+ echo ' (<strong>'. project_get_survey_count($group_id) .'</strong> ' . _('surveys').')';
echo '</div>';
}
echo '<div class="public-area-box">';
$link_content = $HTML->getScmPic('') . ' ' . _('SCM Repository');
+// print '<hr size="1" /><a rel="doap:repository" href="'.util_make_url ('/scm/?group_id='.$group_id).'">';
print util_make_link( '/scm/?group_id='.$group_id, $link_content);
$hook_params = array () ;
echo '<div class="public-area-box">';
$link_content = $HTML->getFtpPic('') . ' ' . _('Anonymous FTP Space');
- print util_make_link('ftp://' . $project->getUnixName() . '.' . $GLOBALS['sys_default_domain'] . '/pub/'. $project->getUnixName(), $link_content);
+// print '<a rel="doap:anonymous root" href="ftp://' . $project->getUnixName() . '.' . $GLOBALS['sys_default_domain'] . '/pub/'. $project->getUnixName() .'/">';
+ print util_make_link('ftp://' . $project->getUnixName() . '.' . $GLOBALS['sys_default_domain'] . '/pub/'. $project->getUnixName(), $link_content, false, true);
echo '</div>';
}
}
echo '</td>
</tr>
</table>
+ </div><!-- about="" -->
</div><!-- id="forge-project-home" -->
';