ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilWebResourceCronLinkCheck.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once "Services/Cron/classes/class.ilCronJob.php";
5
15{
16 public function getId()
17 {
18 return "webr_link_check";
19 }
20
21 public function getTitle()
22 {
23 global $DIC;
24
25 $lng = $DIC['lng'];
26
27 return $lng->txt("check_web_resources");
28 }
29
30 public function getDescription()
31 {
32 global $DIC;
33
34 $lng = $DIC['lng'];
35
36 return $lng->txt("check_web_resources_desc");
37 }
38
39 public function getDefaultScheduleType()
40 {
42 }
43
44 public function getDefaultScheduleValue()
45 {
46 return;
47 }
48
49 public function hasAutoActivation()
50 {
51 return false;
52 }
53
54 public function hasFlexibleSchedule()
55 {
56 return true;
57 }
58
59 public function run()
60 {
61 global $DIC;
62
63 $ilLog = $DIC->logger()->webr();
64 $ilUser = $DIC['ilUser'];
65 $ilDB = $DIC['ilDB'];
66
68
69 include_once'./Services/LinkChecker/classes/class.ilLinkChecker.php';
70
71 $counter = 0;
72 foreach (ilUtil::_getObjectsByOperations('webr', 'write', $ilUser->getId(), -1) as $node) {
73 if (!is_object($tmp_webr = ilObjectFactory::getInstanceByRefId($node, false))) {
74 continue;
75 }
76
77 $tmp_webr->initLinkResourceItemsObject();
78
79 // Set all link to valid. After check invalid links will be set to invalid
80
81 $link_checker = new ilLinkChecker($ilDB);
82 $link_checker->setMailStatus(true);
83 $link_checker->setCheckPeriod($this->__getCheckPeriod());
84 $link_checker->setObjId($tmp_webr->getId());
85
86
87 $tmp_webr->items_obj->updateValidByCheck($this->__getCheckPeriod());
88 foreach ($link_checker->checkWebResourceLinks() as $invalid) {
89 $tmp_webr->items_obj->readItem($invalid['page_id']);
90 $tmp_webr->items_obj->setActiveStatus(false);
91 $tmp_webr->items_obj->setValidStatus(false);
92 $tmp_webr->items_obj->setDisableCheckStatus(true);
93 $tmp_webr->items_obj->setLastCheckDate(time());
94 $tmp_webr->items_obj->update(false);
95 }
96
97 $tmp_webr->items_obj->updateLastCheck($this->__getCheckPeriod());
98
99 foreach ($link_checker->getLogMessages() as $message) {
100 $ilLog->debug($message);
101 $counter++;
102 }
103 }
104
105 if ($counter) {
107 }
108 $result = new ilCronJobResult();
109 $result->setStatus($status);
110 return $result;
111 }
112
113 public function __getCheckPeriod()
114 {
115 switch ($this->getScheduleType()) {
117 $period = 24 * 60 * 60;
118 break;
119
121 $period = 7 * 24 * 60 * 60;
122 break;
123
125 $period = 30 * 7 * 24 * 60 * 60;
126 break;
127
129 $period = 3 * 30 * 7 * 24 * 60 * 60;
130 break;
131
132 default:
133 $period = 0;
134 }
135 return $period;
136 }
137
138 public function activationWasToggled($a_currently_active)
139 {
140 global $DIC;
141
142 $ilSetting = $DIC['ilSetting'];
143
144 // propagate cron-job setting to object setting
145 $ilSetting->set("cron_web_resource_check", (bool) $a_currently_active);
146 }
147}
$result
An exception for terminatinating execution or to throw for unit testing.
Cron job result data container.
Cron job application base class.
getScheduleType()
Get current schedule type (if flexible)
const SCHEDULE_TYPE_WEEKLY
const SCHEDULE_TYPE_DAILY
const SCHEDULE_TYPE_QUARTERLY
const SCHEDULE_TYPE_MONTHLY
class for checking external links in page objects Normally used in Cron jobs, but should be extensibl...
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
static _getObjectsByOperations($a_obj_type, $a_operation, $a_usr_id=0, $limit=0)
Get all objects of a specific type and check access This function is not recursive,...
hasFlexibleSchedule()
Can the schedule be configured?
hasAutoActivation()
Is to be activated on "installation".
activationWasToggled($a_currently_active)
Cron job status was changed.
catch(Exception $e) $message
global $ilSetting
Definition: privfeed.php:17
global $DIC
Definition: saml.php:7
$lng
global $ilDB
$ilUser
Definition: imgupload.php:18