pkg_details.php 11.9 KB
Newer Older
1
<?php
2
3
$atype = account_from_sid($SID);
$uid = uid_from_sid($SID);
4

5
$pkgid = intval($row['ID']);
6

7
$catarr = pkgbase_categories();
8

9
10
$submitter = username_from_id($row["SubmitterUID"]);
$maintainer = username_from_id($row["MaintainerUID"]);
11

12
$votes = $row['NumVotes'];
13

14
15
16
17
18
# In case of wanting to put a custom message
$msg = __('unknown');
$license = empty($row['License']) ? $msg : $row['License'];

# Print the timestamps for last updates
19
20
21
$updated_time = ($row["ModifiedTS"] == 0) ? $msg : gmdate("Y-m-d H:i", intval($row["ModifiedTS"]));
$submitted_time = ($row["SubmittedTS"] == 0) ? $msg : gmdate("Y-m-d H:i", intval($row["SubmittedTS"]));
$out_of_date_time = ($row["OutOfDateTS"] == 0) ? $msg : gmdate("Y-m-d", intval($row["OutOfDateTS"]));
22

23
$urlpath = URL_DIR . substr($row['BaseName'], 0, 2) . "/" . $row['BaseName'];
Lukas Fleischer's avatar
Lukas Fleischer committed
24

25
26
$deps = pkg_dependencies($row["ID"]);
$requiredby = pkg_required($row["Name"]);
27

28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
$rels = pkg_relations($row["ID"]);
$rels_c = $rels_p = $rels_r = array();
foreach ($rels as $rel) {
	switch ($rel[1]) {
	case "conflicts":
		$rels_c[] = $rel;
		break;
	case "provides":
		$rels_p[] = $rel;
		break;
	case "replaces":
		$rels_r[] = $rel;
		break;
	}
}

44
# $sources[0] = 'src';
45
$sources = pkg_sources($row["ID"]);
46
47
?>
<div id="pkgdetails" class="box">
Lukas Fleischer's avatar
Lukas Fleischer committed
48
	<h2><?= __('Package Details') . ': ' . htmlspecialchars($row['Name']) . ' ' . htmlspecialchars($row['Version']) ?></h2>
49
50
	<div id="detailslinks" class="listing">
		<div id="actionlist">
51
			<h4><?= __('Package Actions') ?></h4>
52
			<ul class="small">
Lukas Fleischer's avatar
Lukas Fleischer committed
53
				<li><a href="<?= $urlpath ?>/PKGBUILD"><?= __('View PKGBUILD') ?></a></li>
54
				<li><a href="<?= $urlpath . '/' . $row['BaseName'] ?>.tar.gz"><?= __('Download tarball') ?></a></li>
55
				<li><span class="flagged"><?php if ($row["OutOfDateTS"] !== NULL) { echo __('Flagged out-of-date')." (${out_of_date_time})"; } ?></span></li>
56
				<?php if ($USE_VIRTUAL_URLS && $uid): ?>
Lukas Fleischer's avatar
Lukas Fleischer committed
57
				<?php if ($row["OutOfDateTS"] === NULL): ?>
58
				<li>
59
					<form action="<?= get_pkgbase_uri($row['BaseName']) . 'flag/'; ?>" method="post">
60
						<input type="hidden" name="token" value="<?= htmlspecialchars($_COOKIE['AURSID']) ?>" />
61
62
63
						<input type="submit" class="button text-button" name="do_Flag" value="<?= __('Flag package out-of-date') ?>" />
					</form>
				</li>
64
65
				<?php elseif (($row["OutOfDateTS"] !== NULL) &&
				($uid == $row["MaintainerUID"] || $atype == "Trusted User" || $atype == "Developer")): ?>
66
				<li>
67
					<form action="<?= get_pkgbase_uri($row['BaseName']) . 'unflag/'; ?>" method="post">
68
						<input type="hidden" name="token" value="<?= htmlspecialchars($_COOKIE['AURSID']) ?>" />
69
70
71
						<input type="submit" class="button text-button" name="do_UnFlag" value="<?= __('Unflag package') ?>" />
					</form>
				</li>
Lukas Fleischer's avatar
Lukas Fleischer committed
72
				<?php endif; ?>
73
				<?php if (pkgbase_user_voted($uid, $row['ID'])): ?>
74
				<li>
75
					<form action="<?= get_pkgbase_uri($row['BaseName']) . 'unvote/'; ?>" method="post">
76
						<input type="hidden" name="token" value="<?= htmlspecialchars($_COOKIE['AURSID']) ?>" />
77
78
79
						<input type="submit" class="button text-button" name="do_UnVote" value="<?= __('Remove vote') ?>" />
					</form>
				</li>
80
				<?php else: ?>
81
				<li>
82
					<form action="<?= get_pkgbase_uri($row['BaseName']) . 'vote/'; ?>" method="post">
83
						<input type="hidden" name="token" value="<?= htmlspecialchars($_COOKIE['AURSID']) ?>" />
84
85
86
						<input type="submit" class="button text-button" name="do_Vote" value="<?= __('Vote for this package') ?>" />
					</form>
				</li>
87
				<?php endif; ?>
88
				<?php if (pkgbase_user_notify($uid, $row['ID'])): ?>
89
				<li>
90
					<form action="<?= get_pkgbase_uri($row['BaseName']) . 'unnotify/'; ?>" method="post">
91
						<input type="hidden" name="token" value="<?= htmlspecialchars($_COOKIE['AURSID']) ?>" />
92
93
94
						<input type="submit" class="button text-button" name="do_UnNotify" value="<?= __('Disable notifications') ?>" />
					</form>
				</li>
95
				<?php else: ?>
96
				<li>
97
					<form action="<?= get_pkgbase_uri($row['BaseName']) . 'notify/'; ?>" method="post">
98
						<input type="hidden" name="token" value="<?= htmlspecialchars($_COOKIE['AURSID']) ?>" />
99
100
101
						<input type="submit" class="button text-button" name="do_Notify" value="<?= __('Notify of new comments') ?>" />
					</form>
				</li>
102
				<?php endif; ?>
103
				<?php if ($atype == "Trusted User" || $atype == "Developer"): ?>
104
105
				<li><a href="<?= get_pkgbase_uri($row['BaseName']) . 'delete/'; ?>"><?= __('Delete Package'); ?></a></li>
				<li><a href="<?= get_pkgbase_uri($row['BaseName']) . 'merge/'; ?>"><?= __('Merge Package'); ?></a></li>
106
				<?php endif; ?>
107
				<?php endif; ?>
108
109
110

				<?php if ($uid && $row["MaintainerUID"] === NULL): ?>
				<li>
111
					<form action="<?= get_pkgbase_uri($row['BaseName']) . 'adopt/'; ?>" method="post">
112
113
114
115
116
117
118
						<input type="hidden" name="token" value="<?= htmlspecialchars($_COOKIE['AURSID']) ?>" />
						<input type="submit" class="button text-button" name="do_Adopt" value="<?= __('Adopt Package') ?>" />
					</form>
				</li>
				<?php elseif ($uid && $uid == $row["MaintainerUID"] ||
					$atype == "Trusted User" || $atype == "Developer"): ?>
				<li>
119
					<form action="<?= get_pkgbase_uri($row['BaseName']) . 'disown/'; ?>" method="post">
120
121
122
123
124
						<input type="hidden" name="token" value="<?= htmlspecialchars($_COOKIE['AURSID']) ?>" />
						<input type="submit" class="button text-button" name="do_Disown" value="<?= __('Disown Package') ?>" />
					</form>
				</li>
				<?php endif; ?>
125
126
127
			</ul>
		</div>
	</div>
128

129
	<table id="pkginfo">
130
131
132
133
		<tr>
			<th><?= __('Package Base') . ': ' ?></th>
			<td class="wrap"><a href="<?= htmlspecialchars(get_pkgbase_uri($row['BaseName']), ENT_QUOTES); ?>"><?= htmlspecialchars($row['BaseName']); ?></a></td>
		</tr>
134
		<tr>
Lukas Fleischer's avatar
Lukas Fleischer committed
135
136
			<th><?= __('Description') . ': ' ?></th>
			<td class="wrap"><?= htmlspecialchars($row['Description']); ?></td>
137
138
		</tr>
		<tr>
139
			<th><?= __('Upstream URL') . ': ' ?></th>
Lukas Fleischer's avatar
Lukas Fleischer committed
140
			<td><a href="<?= htmlspecialchars($row['URL'], ENT_QUOTES) ?>" title="<?= __('Visit the website for') . ' ' . htmlspecialchars( $row['Name'])?>"><?= htmlspecialchars($row['URL'], ENT_QUOTES) ?></a></td>
141
142
		</tr>
		<tr>
Lukas Fleischer's avatar
Lukas Fleischer committed
143
			<th><?= __('Category') . ': ' ?></th>
144
<?php
145
146
if ($SID && ($uid == $row["MaintainerUID"] ||
	($atype == "Developer" || $atype == "Trusted User"))):
147
?>
148
			<td>
149
				<form method="post" action="<?= htmlspecialchars(get_pkgbase_uri($row['BaseName']), ENT_QUOTES); ?>">
150
151
					<div>
						<input type="hidden" name="action" value="do_ChangeCategory" />
Lukas Fleischer's avatar
Lukas Fleischer committed
152
						<?php if ($SID): ?>
Lukas Fleischer's avatar
Lukas Fleischer committed
153
						<input type="hidden" name="token" value="<?= htmlspecialchars($_COOKIE['AURSID']) ?>" />
Lukas Fleischer's avatar
Lukas Fleischer committed
154
						<?php endif; ?>
155
						<select name="category_id">
156
<?php
157
	foreach ($catarr as $cid => $catname):
158
?>
Lukas Fleischer's avatar
Lukas Fleischer committed
159
							<option value="<?= $cid ?>"<?php if ($cid == $row["CategoryID"]) { ?> selected="selected" <?php } ?>><?= $catname ?></option>
160
161
	<?php endforeach; ?>
						</select>
Lukas Fleischer's avatar
Lukas Fleischer committed
162
						<input type="submit" value="<?= __('Change category') ?>"/>
163
164
165
166
					</div>
				</form>
<?php else: ?>
			<td>
Lukas Fleischer's avatar
Lukas Fleischer committed
167
				<a href="<?= get_uri('/packages/'); ?>?C=<?= $row['CategoryID'] ?>"><?= $row['Category'] ?></a>
168
169
<?php endif; ?>
			</td>
170
		</tr>
171
		<tr>
Lukas Fleischer's avatar
Lukas Fleischer committed
172
173
			<th><?= __('License') . ': ' ?></th>
			<td><?= htmlspecialchars($license) ?></td>
174
		</tr>
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
		<?php if (count($rels_c) > 0): ?>
		<tr>
			<th><?= __('Conflicts') . ': ' ?></th>
			<td class="wrap relatedto">
				<?php foreach($rels_c as $rarr): ?>
				<span class="related">
					<?php if ($rarr !== end($rels_c)): ?>
					<?= htmlspecialchars($rarr[0]) ?>,
					<?php else: ?>
					<?= htmlspecialchars($rarr[0]) ?>
					<?php endif; ?>
				</span>
				<?php endforeach; ?>
			</td>
		</tr>
		<?php endif; ?>
		<?php if (count($rels_p) > 0): ?>
		<tr>
			<th><?= __('Provides') . ': ' ?></th>
			<td class="wrap relatedto">
				<?php foreach($rels_p as $rarr): ?>
				<span class="related">
					<?php if ($rarr !== end($rels_p)): ?>
					<?= htmlspecialchars($rarr[0]) ?>,
					<?php else: ?>
					<?= htmlspecialchars($rarr[0]) ?>
					<?php endif; ?>
				</span>
				<?php endforeach; ?>
			</td>
		</tr>
		<?php endif; ?>
		<?php if (count($rels_r) > 0): ?>
		<tr>
			<th><?= __('Replaces') . ': ' ?></th>
			<td class="wrap relatedto">
				<?php foreach($rels_r as $rarr): ?>
				<span class="related">
					<?php if ($rarr !== end($rels_r)): ?>
					<?= htmlspecialchars($rarr[0]) ?>,
					<?php else: ?>
					<?= htmlspecialchars($rarr[0]) ?>
					<?php endif; ?>
				</span>
				<?php endforeach; ?>
			</td>
		</tr>
		<?php endif; ?>
223
		<tr>
Lukas Fleischer's avatar
Lukas Fleischer committed
224
			<th><?= __('Submitter') .': ' ?></th>
225
<?php
226
227
if ($row["SubmitterUID"]):
	if ($SID):
228
		if (!$USE_VIRTUAL_URLS):
229
?>
Lukas Fleischer's avatar
Lukas Fleischer committed
230
			<td><a href="<?= get_uri('/account/'); ?>?Action=AccountInfo&amp;ID=<?= htmlspecialchars($row['SubmitterUID'], ENT_QUOTES) ?>" title="<?= __('View account information for')?> <?= htmlspecialchars($submitter) ?>"><?= htmlspecialchars($submitter) ?></a></td>
231
232
233
		<?php else: ?>
			<td><a href="<?= get_uri('/account/') . htmlspecialchars($submitter, ENT_QUOTES) ?>" title="<?= __('View account information for %s', htmlspecialchars($submitter)) ?>"><?= htmlspecialchars($submitter) ?></a></td>
		<?php endif; ?>
234
<?php else: ?>
Lukas Fleischer's avatar
Lukas Fleischer committed
235
		<td><?= htmlspecialchars($submitter) ?></td>
236
237
	<?php endif; ?>
<?php else: ?>
238
			<td><?= __('None') ?></td>
239
<?php endif; ?>
240
		</tr>
241
		<tr>
Lukas Fleischer's avatar
Lukas Fleischer committed
242
			<th><?= __('Maintainer') .': ' ?></th>
243
<?php
244
245
if ($row["MaintainerUID"]):
	if ($SID):
246
		if (!$USE_VIRTUAL_URLS):
247
?>
Lukas Fleischer's avatar
Lukas Fleischer committed
248
			<td><a href="<?= get_uri('/account/'); ?>?Action=AccountInfo&amp;ID=<?= htmlspecialchars($row['MaintainerUID'], ENT_QUOTES) ?>" title="<?= __('View account information for')?> <?= htmlspecialchars($maintainer) ?>"><?= htmlspecialchars($maintainer) ?></a></td>
249
250
251
		<?php else: ?>
			<td><a href="<?= get_uri('/account/') . htmlspecialchars($maintainer, ENT_QUOTES) ?>" title="<?= __('View account information for %s', htmlspecialchars($maintainer)) ?>"><?= htmlspecialchars($maintainer) ?></a></td>
		<?php endif; ?>
252
	<?php else: ?>
Lukas Fleischer's avatar
Lukas Fleischer committed
253
		<td><?= htmlspecialchars($maintainer) ?></td>
254
255
	<?php endif; ?>
<?php else: ?>
256
			<td><?= __('None') ?></td>
257
258
259
<?php endif; ?>
		</tr>
		<tr>
Lukas Fleischer's avatar
Lukas Fleischer committed
260
			<th><?= __('Votes') . ': ' ?></th>
261
262
<?php if ($atype == "Developer" || $atype == "Trusted User"): ?>
<?php if ($USE_VIRTUAL_URLS): ?>
263
			<td><a href="<?= get_pkgbase_uri($row['BaseName']); ?>voters/"><?= $votes ?></a></td>
264
<?php else: ?>
265
			<td><a href="<?= get_uri('/voters/'); ?>?N=<?= htmlspecialchars($row['BaseName'], ENT_QUOTES) ?>"><?= $votes ?></a></td>
266
<?php endif; ?>
267
<?php else: ?>
Lukas Fleischer's avatar
Lukas Fleischer committed
268
			<td><?= $votes ?></td>
269
270
271
<?php endif; ?>
		</tr>
		<tr>
Lukas Fleischer's avatar
Lukas Fleischer committed
272
273
			<th><?= __('First Submitted') . ': ' ?></th>
			<td><?= $submitted_time ?></td>
274
275
		</tr>
		<tr>
Lukas Fleischer's avatar
Lukas Fleischer committed
276
277
			<th><?= __('Last Updated') . ': ' ?></th>
			<td><?= $updated_time ?></td>
278
279
280
281
282
		</tr>
	</table>

	<div id="metadata">
		<div id="pkgdeps" class="listing">
Lukas Fleischer's avatar
Lukas Fleischer committed
283
			<h3><?= __('Dependencies') . " (" . count($deps) . ")"?></h3>
284
<?php if (count($deps) > 0): ?>
285
			<ul id="pkgdepslist">
286
287
288
<?php while (list($k, $darr) = each($deps)): ?>
	<li><?= pkg_depend_link($darr[0], $darr[1], $darr[2], $darr[3]); ?></li>
<?php endwhile; ?>
289
290
			</ul>
<?php endif; ?>
291
		</div>
292
		<div id="pkgreqs" class="listing">
Lukas Fleischer's avatar
Lukas Fleischer committed
293
			<h3><?= __('Required by') . " (" . count($requiredby) . ")"?></h3>
294
<?php if (count($requiredby) > 0): ?>
295
			<ul id="pkgreqslist">
296
297
298
<?php
	# darr: (PackageName, PackageID)
	while (list($k, $darr) = each($requiredby)):
299
?>
300
				<li><a href="<?= htmlspecialchars(get_pkg_uri($darr[0]), ENT_QUOTES); ?>" title="<?= __('View packages details for').' ' . htmlspecialchars($darr[0]) ?>"><?= htmlspecialchars($darr[0]) ?></a></li>
301
302
303
304
305
	<?php endwhile; ?>
			</ul>
<?php endif; ?>
		</div>
		<div id="pkgfiles" class="listing">
Lukas Fleischer's avatar
Lukas Fleischer committed
306
			<h3><?= __('Sources') ?></h3>
307
308
		</div>
<?php if (count($sources) > 0): ?>
309
		<div>
310
311
312
313
314
			<ul>
<?php
	while (list($k, $src) = each($sources)):
		$src = explode('::', $src);
		$parsed_url = parse_url($src[0]);
315

316
317
318
		# It is an external source
		if (isset($parsed_url['scheme']) || isset($src[1])):
?>
Lukas Fleischer's avatar
Lukas Fleischer committed
319
				<li><a href="<?= htmlspecialchars((isset($src[1]) ? $src[1] : $src[0]), ENT_QUOTES) ?>"><?= htmlspecialchars($src[0]) ?> </a></li>
320
321
322
323
324
<?php
		else:
			# It is presumably an internal source
			$src = $src[0];
?>
Lukas Fleischer's avatar
Lukas Fleischer committed
325
				<li><?= htmlspecialchars($src) ?></li>
326
327
328
329
330
		<?php endif; ?>
	<?php endwhile; ?>
			</ul>
		</div>
<?php endif; ?>
331
332
	</div>
</div>