4 * ContribTracker plugin
6 * Copyright 2009, Roland Mas
10 require_once('../../env.inc.php');
11 require_once $gfwww.'include/pre.php';
12 $plugin = plugin_get_object ('contribtracker') ;
14 function display_contribution ($c, $show_groups = false) {
15 print '<h3>'.$c->getName().'</h3>' ;
17 print '<strong>'._('Group:').'</strong> ' ;
18 print util_make_link_g ($c->getGroup()->getUnixName(),
19 $c->getGroup()->getId(),
20 htmlspecialchars ($c->getGroup()->getPublicName())) ;
24 print '<strong>'._('Date:').'</strong> ' ;
25 print strftime (_('%Y-%m-%d'), $c->getDate ()) ;
28 print '<strong>'._('Description:').'</strong> ' ;
29 print htmlspecialchars ($c->getDescription ()) ;
32 $parts = $c->getParticipations () ;
33 print '<strong>'.ngettext('Participant:',
35 count ($parts)).'</strong> ' ;
38 foreach ($parts as $p) {
40 printf (_('%s: %s (%s)'),
41 htmlspecialchars ($p->getRole()->getName()),
42 util_make_link ('/plugins/contribtracker/show_actor.php?actor_id='.$p->getActor()->getId (),
43 htmlspecialchars ($p->getActor()->getName())),
44 htmlspecialchars ($p->getActor()->getLegalStructure()->getName())) ;
50 $group_id = getIntFromRequest ('group_id') ;
52 $group = group_get_object ($group_id) ;
53 if(!$group || !is_object ($group)) {
56 if (!$group->isPublic()) {
57 $perm =& $group->getPermission(session_get_user());
59 if (!$perm || !is_object($perm) || !$perm->isMember()) {
64 $contrib_id = getIntFromRequest ('contrib_id') ;
65 if ($contrib_id) { // List only one particular contribution
66 $contrib = new ContribTrackerContribution ($contrib_id) ;
67 if (!$contrib || !is_object ($contrib)
68 || $contrib->getGroup()->getId() != $group_id) {
69 exit_permission_denied () ;
73 $params['toptab'] = 'contribtracker' ;
74 $params['group'] = $group_id ;
75 $params['title'] = _('Contribution details') ;
76 $params['pagename'] = 'contribtracker' ;
77 $params['sectionvals'] = array($group->getPublicName());
79 site_project_header ($params) ;
81 display_contribution ($contrib) ;
82 } else { // List all contributions relevant to a group
84 $params['toptab'] = 'contribtracker' ;
85 $params['group'] = $group_id ;
86 $params['title'] = sprintf (_('Contributions for project %s'),
87 htmlspecialchars ($group->getPublicName()));
88 $params['pagename'] = 'contribtracker' ;
89 $params['sectionvals'] = array($group->getPublicName());
91 site_project_header ($params) ;
93 $contribs = $plugin->getContributionsByGroup ($group) ;
94 usort ($contribs, array ($plugin, "ContribComparator")) ;
96 if (count ($contribs) == 0) {
97 print '<h1>'._('No contributions').'</h1>' ;
98 print _('No contributions have been recorded for this project yet.') ;
100 print '<h1>'._('Latest contributions').'</h1>' ;
102 foreach ($contribs as $c) {
103 display_contribution ($c) ;
107 } else { // Latest contributions, globally
108 $HTML->header(array('title'=>_('Contributions'),'pagename'=>'contribtracker'));
110 $contribs = $plugin->getContributions () ;
112 usort ($contribs, array ($plugin, "ContribComparator")) ;
114 if (count ($contribs) == 0) {
115 print '<h1>'._('No contributions').'</h1>' ;
116 print _('No contributions have been recorded yet.') ;
118 print '<h1>'._('Latest contributions').'</h1>' ;
121 foreach ($contribs as $c) {
122 display_contribution ($c, true) ;
132 site_project_footer(array());
136 // c-file-style: "bsd"