ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
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 $lng;
24
25 return $lng->txt("check_web_resources");
26 }
27
28 public function getDescription()
29 {
30 global $lng;
31
32 return $lng->txt("check_web_resources_desc");
33 }
34
35 public function getDefaultScheduleType()
36 {
38 }
39
40 public function getDefaultScheduleValue()
41 {
42 return;
43 }
44
45 public function hasAutoActivation()
46 {
47 return false;
48 }
49
50 public function hasFlexibleSchedule()
51 {
52 return true;
53 }
54
55 public function run()
56 {
57 global $ilLog, $ilUser, $ilDB;
58
60
61 include_once'./Services/LinkChecker/classes/class.ilLinkChecker.php';
62
63 $counter = 0;
64 foreach(ilUtil::_getObjectsByOperations('webr','write',$ilUser->getId(),-1) as $node)
65 {
66 if(!is_object($tmp_webr = ilObjectFactory::getInstanceByRefId($node,false)))
67 {
68 continue;
69 }
70
71 $tmp_webr->initLinkResourceItemsObject();
72
73 // Set all link to valid. After check invalid links will be set to invalid
74
75 $link_checker =& new ilLinkChecker($ilDB);
76 $link_checker->setMailStatus(true);
77 $link_checker->setCheckPeriod($this->__getCheckPeriod());
78 $link_checker->setObjId($tmp_webr->getId());
79
80
81 $tmp_webr->items_obj->updateValidByCheck($this->__getCheckPeriod());
82 foreach($link_checker->checkWebResourceLinks() as $invalid)
83 {
84 $tmp_webr->items_obj->readItem($invalid['page_id']);
85 $tmp_webr->items_obj->setActiveStatus(false);
86 $tmp_webr->items_obj->setValidStatus(false);
87 $tmp_webr->items_obj->setDisableCheckStatus(true);
88 $tmp_webr->items_obj->setLastCheckDate(time());
89 $tmp_webr->items_obj->update(false);
90 }
91
92 $tmp_webr->items_obj->updateLastCheck($this->__getCheckPeriod());
93
94 foreach($link_checker->getLogMessages() as $message)
95 {
96 $ilLog->write($message);
97 $counter++;
98 }
99 }
100
101 if($counter)
102 {
104 }
105 $result = new ilCronJobResult();
106 $result->setStatus($status);
107 return $result;
108 }
109
111 {
112 switch($this->getScheduleType())
113 {
115 $period = 24 * 60 * 60;
116 break;
117
119 $period = 7 * 24 * 60 * 60;
120 break;
121
123 $period = 30 * 7 * 24 * 60 * 60;
124 break;
125
127 $period = 3 * 30 * 7 * 24 * 60 * 60;
128 break;
129
130 default:
131 $period = 0;
132 }
133 return $period;
134 }
135
136 public function activationWasToggled($a_currently_active)
137 {
138 global $ilSetting;
139
140 // propagate cron-job setting to object setting
141 $ilSetting->set("cron_web_resource_check", (bool)$a_currently_active);
142 }
143}
144
145?>
$result
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...
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.
global $lng
Definition: privfeed.php:40
global $ilSetting
Definition: privfeed.php:40
global $ilDB
global $ilUser
Definition: imgupload.php:15