Passed
Push — master ( c0a3a7...3b84a4 )
by Jeroen
58:51
created

mod/bookmarks/views/default/object/bookmarks.php (3 issues)

Labels
Severity
1
<?php
2
/**
3
 * Elgg bookmark view
4
 *
5
 * @package ElggBookmarks
6
 */
7
8
$full = elgg_extract('full_view', $vars, false);
9
$bookmark = elgg_extract('entity', $vars, false);
10
11
if (! $bookmark instanceof ElggObject) {
12
	return;
13
}
14
15
$owner = $bookmark->getOwnerEntity();
16
$owner_icon = elgg_view_entity_icon($owner, 'small');
17
18
$link = elgg_view('output/url', [
19
	'href' => $bookmark->address,
20
	'icon' => 'push-pin-alt',
21
]);
22
23
if (elgg_in_context('gallery')) {
24
	$owner_link = elgg_view('output/url', [
25
		'href' => $owner->getURL(),
26
		'text' => $owner->getDisplayName(),
27
	]);
28
	$date = elgg_view_friendly_time($bookmark->time_created);
29
30
	echo <<<HTML
31
<div class="bookmarks-gallery-item">
32
	<h3>{$bookmark->getDisplayName()}</h3>
33
	<p class='subtitle'>$owner_link $date</p>
34
</div>
35
HTML;
36
37
	return;
38
}
39
40
if ($full) {
41
	$description = elgg_view('output/longtext', ['value' => $bookmark->description, 'class' => 'pbl']);
42
43
	$params = [
44
		'title' => false,
45
		'handler' => 'bookmarks',
46
	];
47
	$params = $params + $vars;
48
	$summary = elgg_view('object/elements/summary', $params);
49
50
	$body = <<<HTML
51
<div class="bookmark elgg-content mts">
52
	<span class="elgg-heading-basic mbs">$link</span>
53
	$description
54
</div>
55
HTML;
56
57
	echo elgg_view('object/elements/full', [
58
		'entity' => $bookmark,
59
		'icon' => $owner_icon,
60
		'summary' => $summary,
61
		'body' => $body,
62
		'show_responses' => elgg_extract('show_responses', $vars, false),
63
		'show_navigation' => true,
64
	]);
65
66
	return;
67
}
68
69
// brief view
70
$url = $bookmark->address;
71
$display_text = $url;
72
$excerpt = elgg_get_excerpt($bookmark->description);
73
if ($excerpt) {
74
	$excerpt = " - $excerpt";
75
}
76
77
if (strlen($url) > 25) {
0 ignored issues
show
It seems like $url can also be of type array; however, parameter $string of strlen() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

77
if (strlen(/** @scrutinizer ignore-type */ $url) > 25) {
Loading history...
78
	$bits = parse_url($url);
0 ignored issues
show
It seems like $url can also be of type array; however, parameter $url of parse_url() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

78
	$bits = parse_url(/** @scrutinizer ignore-type */ $url);
Loading history...
79
	if (isset($bits['host'])) {
80
		$display_text = $bits['host'];
81
	} else {
82
		$display_text = elgg_get_excerpt($url, 100);
0 ignored issues
show
It seems like $url can also be of type array; however, parameter $text of elgg_get_excerpt() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

82
		$display_text = elgg_get_excerpt(/** @scrutinizer ignore-type */ $url, 100);
Loading history...
83
	}
84
}
85
86
$link = elgg_view('output/url', [
87
	'href' => $bookmark->address,
88
	'text' => $display_text,
89
	'icon' => 'push-pin-alt',
90
]);
91
92
$content = "$link{$excerpt}";
93
94
$params = [
95
	'content' => $content,
96
	'icon' => $owner_icon,
97
	'handler' => 'bookmarks',
98
];
99
$params = $params + $vars;
100
echo elgg_view('object/elements/summary', $params);
101