Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00034 class ilCronWebResourceCheck
00035 {
00036 function ilCronWebResourceCheck()
00037 {
00038 global $ilLog,$ilDB;
00039
00040 $this->log =& $ilLog;
00041 $this->db =& $ilDB;
00042 }
00043
00044 function check()
00045 {
00046 include_once'./classes/class.ilLinkChecker.php';
00047
00048
00049 foreach(ilUtil::getObjectsByOperations('webr','write',false) as $node)
00050 {
00051 if(!is_object($tmp_webr =& ilObjectFactory::getInstanceByRefId($node['ref_id'],false)))
00052 {
00053 continue;
00054 }
00055
00056 $tmp_webr->initLinkResourceItemsObject();
00057
00058
00059
00060 $link_checker =& new ilLinkChecker($this->db);
00061 $link_checker->setMailStatus(true);
00062 $link_checker->setCheckPeriod($this->__getCheckPeriod());
00063 $link_checker->setObjId($node['obj_id']);
00064
00065
00066 $tmp_webr->items_obj->updateValidByCheck($this->__getCheckPeriod());
00067 foreach($link_checker->checkWebResourceLinks() as $invalid)
00068 {
00069 $tmp_webr->items_obj->readItem($invalid['page_id']);
00070 $tmp_webr->items_obj->setActiveStatus(false);
00071 $tmp_webr->items_obj->setValidStatus(false);
00072 $tmp_webr->items_obj->setDisableCheckStatus(true);
00073 $tmp_webr->items_obj->setLastCheckDate(time());
00074 $tmp_webr->items_obj->update(false);
00075 }
00076
00077 $tmp_webr->items_obj->updateLastCheck($this->__getCheckPeriod());
00078
00079 foreach($link_checker->getLogMessages() as $message)
00080 {
00081 $this->log->write($message);
00082 }
00083 }
00084 return true;
00085 }
00086
00087
00088 function __getCheckPeriod()
00089 {
00090 global $ilias;
00091
00092 return 10;
00093
00094 switch($ilias->getSetting('cron_web_resource_check'))
00095 {
00096 case 1:
00097 $period = 24 * 60 * 60;
00098 break;
00099
00100 case 2:
00101 $period = 7 * 24 * 60 * 60;
00102 break;
00103
00104 case 3:
00105 $period = 30 * 7 * 24 * 60 * 60;
00106 break;
00107
00108 case 4:
00109 $period = 4 * 30 * 7 * 24 * 60 * 60;
00110 break;
00111
00112 default:
00113 $period = 0;
00114 }
00115 return $period;
00116 }
00117 }
00118 ?>