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 global $ilObjDataCache,$ilUser;
00047
00048 include_once'./classes/class.ilLinkChecker.php';
00049
00050
00051 foreach(ilUtil::_getObjectsByOperations('webr','write',$ilUser->getId(),-1) as $node)
00052 {
00053 if(!is_object($tmp_webr =& ilObjectFactory::getInstanceByRefId($node,false)))
00054 {
00055 continue;
00056 }
00057
00058 $tmp_webr->initLinkResourceItemsObject();
00059
00060
00061
00062 $link_checker =& new ilLinkChecker($this->db);
00063 $link_checker->setMailStatus(true);
00064 $link_checker->setCheckPeriod($this->__getCheckPeriod());
00065 $link_checker->setObjId($tmp_webr->getId());
00066
00067
00068 $tmp_webr->items_obj->updateValidByCheck($this->__getCheckPeriod());
00069 foreach($link_checker->checkWebResourceLinks() as $invalid)
00070 {
00071 $tmp_webr->items_obj->readItem($invalid['page_id']);
00072 $tmp_webr->items_obj->setActiveStatus(false);
00073 $tmp_webr->items_obj->setValidStatus(false);
00074 $tmp_webr->items_obj->setDisableCheckStatus(true);
00075 $tmp_webr->items_obj->setLastCheckDate(time());
00076 $tmp_webr->items_obj->update(false);
00077 }
00078
00079 $tmp_webr->items_obj->updateLastCheck($this->__getCheckPeriod());
00080
00081 foreach($link_checker->getLogMessages() as $message)
00082 {
00083 $this->log->write($message);
00084 }
00085 }
00086 return true;
00087 }
00088
00089
00090 function __getCheckPeriod()
00091 {
00092 global $ilias;
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 ?>