File: /var/www/ilya/data/www/afish-ka.ru/modules/services/announces.inc
<?php
function date2mon ($mon) {
$str_mon = "";
switch ($mon) {
case "01": $str_mon = "января"; break;
case "02": $str_mon = "февраля"; break;
case "03": $str_mon = "марта"; break;
case "04": $str_mon = "апреля"; break;
case "05": $str_mon = "мая"; break;
case "06": $str_mon = "июня"; break;
case "07": $str_mon = "июля"; break;
case "08": $str_mon = "августа"; break;
case "09": $str_mon = "сентября"; break;
case "10": $str_mon = "октября"; break;
case "11": $str_mon = "ноября"; break;
case "12": $str_mon = "декабря"; break;
}
return $str_mon;
}
function date2monn ($mon) {
$str_mon = "";
switch ($mon) {
case "01": $str_mon = "январьский"; break;
case "02": $str_mon = "февральский"; break;
case "03": $str_mon = "мартовский"; break;
case "04": $str_mon = "апрельский"; break;
case "05": $str_mon = "майский"; break;
case "06": $str_mon = "июньский"; break;
case "07": $str_mon = "июльский"; break;
case "08": $str_mon = "августовский"; break;
case "09": $str_mon = "сентябрьский"; break;
case "10": $str_mon = "октябрьский"; break;
case "11": $str_mon = "ноябрьский"; break;
case "12": $str_mon = "декабрьский"; break;
}
return $str_mon;
}
$last_update = query("SELECT `datetime` FROM `announces` ORDER BY `datetime` DESC LIMIT 1;");
if(mysql_num_rows($last_update)!=1)
$last_update = date("Y-m-d H:i:s",TIME-259200); //По умолчанию выбираем обновления за последние 24 часа
else {
$last_update = mysql_fetch_array($last_update);
$last_update = $last_update[0];
}
// Новые заведения
$result = query("SELECT `f`.`title`, `f`.`id`, `t`.`human_id`, `t`.`type_title` FROM `firms` `f` LEFT JOIN `firms_types` `t` ON `f`.`type`=`t`.`id` WHERE `f`.`added`>='".$last_update."' AND `t`.`human_id`<>'city';");
if(mysql_num_rows($result)>0)
while($data = mysql_fetch_array($result)) {
$firm_img = "";
$image_files = get_images('images/b/firms/');
foreach ($image_files as $file) {
if (($file != ".") && ($file != "..") && strstr($file,$data['id']."_") && (substr($file,0,strpos($file,$data['id']."_"))=="")) {
$action_img = 'images/b/firms/'.$file; break;
}
}
query("INSERT INTO `announces` (`id`,`datetime`,`title`,`url`) VALUES (NULL,NOW(),'".$data['type_title'].". Новое заведение: «".$data['title']."»', '".$url."".$data['human_id']."/".$data['id']."/');");
}
// Измененные события
/*$result = query("SELECT `a`.`title`, `a`.`id`, `t`.`human_id`, `t`.`human_subid`, `t`.`type_subtitle` FROM `actions` `a` LEFT JOIN `firms_types` `t` ON `a`.`type`=`t`.`id` WHERE `a`.`updated`>='".$last_update."';");
if(mysql_num_rows($result)>0)
while($data = mysql_fetch_array($result)) {
query("INSERT INTO `announces` (`id`,`datetime`,`title`,`url`) VALUES (NULL,NOW(),'".$data['type_subtitle'].". Обновлена информация: «".$data['title']."»', '".$url."".$data['human_id']."/".$data['human_subid']."/".$data['id']."/');");
}*/
// Измененные заведения
/*
$result = query("SELECT `f`.`title`, `f`.`id`, `t`.`human_id`, `t`.`type_title` FROM `firms` `f` LEFT JOIN `firms_types` `t` ON `f`.`type`=`t`.`id` WHERE `f`.`updated`>='".$last_update."';");
if(mysql_num_rows($result)>0)
while($data = mysql_fetch_array($result)) {
query("INSERT INTO `announces` (`id`,`datetime`,`title`,`url`) VALUES (NULL,NOW(),'".$data['type_title'].". Обновлено заведение: «".$data['title']."»', '".$url."".$data['human_id']."/".$data['id']."/');");
}*/
// Новые события
$result = query("SELECT `actions`.`id`, `actions`.`type`, `actions`.`title`, `actions`.`description`, `shedule`.`aid`, MIN(`shedule`.`datetime`) AS `mindate`, `actions`.`title` FROM `shedule` LEFT JOIN `actions` ON `actions`.`id`=`shedule`.`aid` WHERE `actions`.`added`>='".$last_update."' AND `shedule`.`datetime`>DATE_ADD('".date("Y-m-d 5:00:00",TIME)."', INTERVAL 1 DAY) AND `datetime`<DATE_ADD('".date("Y-m-d 5:00:00",TIME)."', INTERVAL 60 DAY) GROUP BY `aid` ORDER BY `shedule`.`datetime`;");
if(mysql_num_rows($result)>0)
while($data=mysql_fetch_array($result)) {
$result2 = mysql_fetch_array(query("SELECT MIN(`datetime`) AS `mindate` FROM `shedule` WHERE `aid`=".$data['id'].";"));
$action_img = "";
$image_files = get_images('images/b/actions/');
foreach ($image_files as $file) {
if (($file != ".") && ($file != "..") && strstr($file,$data['id']."_") && (substr($file,0,strpos($file,$data['id']."_"))=="")) {
$action_img = 'images/b/actions/'.$file; break;
}
}
if($result2['mindate']==$data['mindate']) {
$result3 = mysql_fetch_array(query("SELECT * FROM `firms_types` WHERE `id`='".$data['type']."';"));
query("INSERT INTO `announces` (`id`,`datetime`,`title`,`description`,`image`,`url`) VALUES (NULL,NOW(),'".$result3['type_subtitle'].". ".human_date($data['mindate'])." - «".$data['title']."»', '".addslashes(text_replace($data['description']))."','".$action_img."','".$url."".$result3['human_id']."/".$result3['human_subid']."/".$data['id']."/');");
}
}
//$last_update = "2015-01-27 01:00:01";
// Расписания киноцентров
$result = query("SELECT `s`.`fid`, `f`.`title`, `t`.`type_title`, `t`.`human_id` FROM `shedule` `s` LEFT JOIN `firms` `f` ON `f`.`id`=`s`.`fid` LEFT JOIN `firms_types` `t` ON `t`.`id`=`f`.`type` WHERE `s`.`added`>'".$last_update."' AND `s`.`price`<>'?' AND `t`.`id`=1 GROUP BY `s`.`fid`");
if(mysql_num_rows($result)>0)
while($data=mysql_fetch_array($result)) {
$result2 = query("SELECT count(*) as `c`, date_format(`datetime`,'%Y-%m-%d') as `date` from `shedule` WHERE `added`>='".$last_update."' AND `price`<>'?' AND `fid`='".$data['fid']."' GROUP BY `date` ORDER BY `date`");
$dates = array();
$i = 0;
$first_date = 0;
$cur_date = 0;
$prev_date = 0;
$last_good_date = 0;
while($data2=mysql_fetch_array($result2)) {
$cur_date = mktime(5,0,0,substr($data2['date'],5,2),substr($data2['date'],8,2),substr($data2['date'],0,4));
$result3 = query("SELECT * FROM `shedule` WHERE `datetime`>'".date("Y-m-d H:i:s",$cur_date)."' AND `datetime`<='".date("Y-m-d H:i:s",$cur_date+86400)."' AND `fid`='".$data['fid']."' AND `added`>='".$last_update."' AND `price`<>'?';");
if(mysql_num_rows($result3)>2) { // Если добавлено больше 2 событий на день, то считаем за добавление расписания
$last_good_date = $cur_date;
if($dates[$i][0]==NULL) {
$dates[$i][0] = $cur_date;
}
elseif ($cur_date!=($prev_date+86400)) { // Разрыв между датами
$dates[$i][1] = $prev_date;
$i++;
$dates[$i][0] = $cur_date;
}
$prev_date = $cur_date;
}
elseif($dates[$i][0]!=NULL) { // 100% разрыв между датами
$dates[$i][1] = $prev_date;
$i++;
}
}
if(($dates[$i][1]==NULL) && ($dates[$i][0]!=NULL))
$dates[$i][1] = $last_good_date;
$str_date = "";
$last_mon = "";
if(sizeof($dates)>0) {
foreach($dates as $d) {
$last_mon = date2mon(date("m",$d[1]));
if($d[0]==$d[1])
$str_date .= ", на ".date("j",$d[0]);
elseif(date("m",$d[0])==date("m",$d[1]))
$str_date .= ", на ".date("j",$d[0])."-".date("j",$d[1]);
else
$str_date .= ", с ".date("j",$d[0])." ".date2mon(date("m",$d[0]))." по ".date("j",$d[1]);
}
$str_date .= " ".$last_mon;
$str_date = substr($str_date,2);
query("INSERT INTO `announces` (`id`,`datetime`,`title`,`description`,`url`) VALUES (NULL,NOW(),'Добавлено расписание для к/ц «".$data['title']."»','Добавлено расписание для к/ц «".$data['title']."» ".$str_date."', '".$url."".$data['human_id']."/".$data['fid']."/');");
}
}
// Расписания театров
$result = query("SELECT `s`.`fid`, `f`.`title`, `t`.`type_title`, `t`.`human_id` FROM `shedule` `s` LEFT JOIN `firms` `f` ON `f`.`id`=`s`.`fid` LEFT JOIN `firms_types` `t` ON `t`.`id`=`f`.`type` WHERE `s`.`added`>'".$last_update."' AND `t`.`id`=2 GROUP BY `s`.`fid`");
if(mysql_num_rows($result)>0)
while($data=mysql_fetch_array($result)) {
$result2 = query("SELECT count(*) as `c`, date_format(`datetime`,'%Y-%m') as `date` from `shedule` WHERE `added`>='".$last_update."' AND `fid`='".$data['fid']."' GROUP BY `date` ORDER BY `date`");
while($data2=mysql_fetch_array($result2)) {
if($data2['c']>5)
query("INSERT INTO `announces` (`id`,`datetime`,`title`,`description`,`url`) VALUES (NULL,NOW(),'Добавлен репертуар для «".$data['title']."»', 'Добавлен ".date2monn(substr($data2['date'],5,2))." репертуар для «".$data['title']."»', '".$url."".$data['human_id']."/".$data['fid']."/');");
}
}
?>