1 | <?php |
||
2 | |||
3 | namespace SilverStripe\ExternalLinks\Model; |
||
4 | |||
5 | use SilverStripe\ExternalLinks\Model\BrokenExternalPageTrack; |
||
6 | use SilverStripe\ExternalLinks\Model\BrokenExternalPageTrackStatus; |
||
7 | use SilverStripe\Security\Member; |
||
8 | use SilverStripe\Security\Permission; |
||
9 | use SilverStripe\Core\Config\Config; |
||
10 | use SilverStripe\Control\HTTPResponse; |
||
11 | use SilverStripe\ORM\DataObject; |
||
12 | |||
13 | /** |
||
14 | * Represents a single link checked for a single run that is broken |
||
15 | * |
||
16 | * @method BrokenExternalPageTrack Track() |
||
17 | * @method BrokenExternalPageTrackStatus Status() |
||
18 | */ |
||
19 | class BrokenExternalLink extends DataObject |
||
20 | { |
||
21 | private static $table_name = 'BrokenExternalLink'; |
||
22 | |||
23 | private static $db = array( |
||
24 | 'Link' => 'Varchar(2083)', // 2083 is the maximum length of a URL in Internet Explorer. |
||
25 | 'HTTPCode' =>'Int' |
||
26 | ); |
||
27 | |||
28 | private static $has_one = array( |
||
29 | 'Track' => BrokenExternalPageTrack::class, |
||
30 | 'Status' => BrokenExternalPageTrackStatus::class |
||
31 | ); |
||
32 | |||
33 | private static $summary_fields = array( |
||
34 | 'Created' => 'Checked', |
||
35 | 'Link' => 'External Link', |
||
36 | 'HTTPCodeDescription' => 'HTTP Error Code', |
||
37 | 'Page.Title' => 'Page link is on' |
||
38 | ); |
||
39 | |||
40 | private static $searchable_fields = array( |
||
41 | 'HTTPCode' => array('title' => 'HTTP Code') |
||
42 | ); |
||
43 | |||
44 | /** |
||
45 | * @return SiteTree |
||
46 | */ |
||
47 | public function Page() |
||
48 | { |
||
49 | return $this->Track()->Page(); |
||
50 | } |
||
51 | |||
52 | public function canEdit($member = false) |
||
53 | { |
||
54 | return false; |
||
55 | } |
||
56 | |||
57 | public function canView($member = false) |
||
58 | { |
||
59 | $member = $member ? $member : Member::currentUser(); |
||
0 ignored issues
–
show
|
|||
60 | $codes = array('content-authors', 'administrators'); |
||
61 | return Permission::checkMember($member, $codes); |
||
62 | } |
||
63 | |||
64 | /** |
||
65 | * Retrieve a human readable description of a response code |
||
66 | * |
||
67 | * @return string |
||
68 | */ |
||
69 | public function getHTTPCodeDescription() |
||
70 | { |
||
71 | $code = $this->HTTPCode; |
||
72 | |||
73 | try { |
||
74 | $response = HTTPResponse::create('', $code); |
||
75 | // Assume that $code = 0 means there was no response |
||
76 | $description = $code ? |
||
77 | $response->getStatusDescription() : |
||
78 | _t(__CLASS__ . '.NOTAVAILABLE', 'Server Not Available'); |
||
79 | } catch (InvalidArgumentException $e) { |
||
80 | $description = _t(__CLASS__ . '.UNKNOWNRESPONSE', 'Unknown Response Code'); |
||
81 | } |
||
82 | |||
83 | return sprintf("%d (%s)", $code, $description); |
||
84 | } |
||
85 | } |
||
86 |
This function has been deprecated. The supplier of the function has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the function will be removed and what other function to use instead.