'.$c->getName().'' ;
if ($show_groups) {
print ''._('Group:').' ' ;
print util_make_link_g ($c->getGroup()->getUnixName(),
$c->getGroup()->getId(),
htmlspecialchars ($c->getGroup()->getPublicName())) ;
print '
' ;
}
print ''._('Date:').' ' ;
print strftime (_('%Y-%m-%d'), $c->getDate ()) ;
print '
' ;
print ''._('Description:').' ' ;
print htmlspecialchars ($c->getDescription ()) ;
print '
' ;
$parts = $c->getParticipations () ;
print ''.ngettext('Participant:',
'Participants:',
count ($parts)).' ' ;
print '
' ;
print '
' ;
foreach ($parts as $p) {
print '- ' ;
printf (_('%s: %s (%s)'),
htmlspecialchars ($p->getRole()->getName()),
util_make_link ('/plugins/'.$plugin->name.'/?actor_id='.$p->getActor()->getId (),
htmlspecialchars ($p->getActor()->getName())),
htmlspecialchars ($p->getActor()->getLegalStructure()->getName())) ;
print '
' ;
}
print '
' ;
}
$group_id = getIntFromRequest ('group_id') ;
$actor_id = getIntFromRequest ('actor_id') ;
if ($group_id) {
$group = group_get_object ($group_id) ;
if(!$group || !is_object ($group)) {
exit_no_group () ;
}
if (!$group->isPublic()) {
$perm =& $group->getPermission(session_get_user());
if (!$perm || !is_object($perm) || !$perm->isMember()) {
exit_no_group () ;
}
}
$contrib_id = getIntFromRequest ('contrib_id') ;
if ($contrib_id) { // List only one particular contribution
$contrib = new ContribTrackerContribution ($contrib_id) ;
if (!$contrib || !is_object ($contrib)
|| $contrib->getGroup()->getId() != $group_id) {
exit_permission_denied () ;
}
$params = array () ;
$params['toptab'] = 'contribtracker' ;
$params['group'] = $group_id ;
$params['title'] = _('Contribution details') ;
$params['pagename'] = 'contribtracker' ;
$params['sectionvals'] = array($group->getPublicName());
site_project_header ($params) ;
display_contribution ($contrib) ;
} else { // List all contributions relevant to a group
$params = array () ;
$params['toptab'] = 'contribtracker' ;
$params['group'] = $group_id ;
$params['title'] = sprintf (_('Contributions for project %s'),
htmlspecialchars ($group->getPublicName()));
$params['pagename'] = 'contribtracker' ;
$params['sectionvals'] = array($group->getPublicName());
site_project_header ($params) ;
$contribs = $plugin->getContributionsByGroup ($group) ;
usort ($contribs, array ($plugin, "ContribComparator")) ;
if (count ($contribs) == 0) {
print ''._('No contributions').'
' ;
print _('No contributions have been recorded for this project yet.') ;
} else {
print ''._('Latest contributions').'
' ;
foreach ($contribs as $c) {
display_contribution ($c) ;
}
}
}
} elseif ($actor_id) {
$actor = new ContribTrackerActor ($actor_id) ;
if (!is_object ($actor) || $actor->isError()) {
exit_error (_('Invalid actor'),
_('Invalid actor specified')) ;
}
$HTML->header(array('title'=>_('Actor details'),'pagename'=>'contribtracker'));
print ''.sprintf(_('Actor details for %s'),
htmlspecialchars($actor->getName())).'
' ;
print '' ;
print '- '._('Name:').' '.htmlspecialchars($actor->getName()).'
' ;
print '- '._('Address:').' '.htmlspecialchars($actor->getAddress()).'
' ;
print '- '._('Email:').' '.htmlspecialchars($actor->getEmail()).'
' ;
print '- '._('Legal structure:').' '.htmlspecialchars($actor->getLegalStructure()->getName()).'
' ;
print '- '._('Description:').' '.htmlspecialchars($actor->getDescription()).'
' ;
print '
' ;
$participations = $actor->getParticipations () ;
if (count ($participations) == 0) {
printf (_("%s hasn't been involved in any contributions yet"),
htmlspecialchars($actor->getName())) ;
} else {
print ''.sprintf(ngettext('Contribution by %s',
'Contributions by %s',
count($participations)),
htmlspecialchars($actor->getName())).'
' ;
foreach ($participations as $p) {
$c = $p->getContribution () ;
print '' . util_make_link ('/plugins/'.$plugin->name.'/?group_id='.$c->getGroup()->getId().'&contrib_id='.$c->getId (),
htmlspecialchars ($c->getName())) . '
' ;
print ''._('Group:').' ' ;
print util_make_link_g ($c->getGroup()->getUnixName(),
$c->getGroup()->getId(),
$c->getGroup()->getPublicName()) ;
print '
'._('Role:').' ' ;
print htmlspecialchars ($p->getRole()->getName()) ;
}
}
} else { // Latest contributions, globally
$HTML->header(array('title'=>_('Contributions'),'pagename'=>'contribtracker'));
$contribs = $plugin->getContributions () ;
usort ($contribs, array ($plugin, "ContribComparator")) ;
if (count ($contribs) == 0) {
print ''._('No contributions').'
' ;
print _('No contributions have been recorded yet.') ;
} else {
print ''._('Latest contributions').'
' ;
$i = 1 ;
foreach ($contribs as $c) {
display_contribution ($c, true) ;
$i++ ;
if ($i > 20) {
break ;
}
}
}
}
site_project_footer(array());
// Local Variables:
// mode: php
// c-file-style: "bsd"
// End:
?>