HEX
Server: Apache/2.4.59 (Debian)
System: Linux skycube.cz 4.19.0-25-amd64 #1 SMP Debian 4.19.289-2 (2023-08-08) x86_64
User: ilya (534)
PHP: 7.3.31-1~deb10u7
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/ilya/data/www/afisha38.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."';");

if(mysql_num_rows($result)>0)
while($data = mysql_fetch_array($result)) {
	
	query("INSERT INTO `announces` (`id`,`datetime`,`text`,`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`,`text`,`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`,`text`,`url`) VALUES (NULL,NOW(),'".$data['type_title'].". Обновлено заведение: «".$data['title']."»', '".$url."".$data['human_id']."/".$data['id']."/');");
}



$result = query("SELECT `actions`.`id`, `actions`.`type`, `actions`.`title`, `shedule`.`aid`, MIN(`shedule`.`datetime`) AS `mindate`, `actions`.`title` FROM `shedule` LEFT JOIN `actions` ON `actions`.`id`=`shedule`.`aid` WHERE `shedule`.`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'].";"));

	if($result2['mindate']==$data['mindate']) {
		$result3 = mysql_fetch_array(query("SELECT * FROM `firms_types` WHERE `id`='".$data['type']."';"));
		query("INSERT INTO `announces` (`id`,`datetime`,`text`,`url`) VALUES (NULL,NOW(),'".$result3['type_subtitle'].". ".human_date($data['mindate'])." - «".$data['title']."»', '".$url."".$result3['human_id']."/".$result3['human_subid']."/".$data['id']."/');");
	}
}

// Расписания киноцентров

$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`=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 `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));

			if($data2['c']>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 .= " ".date2mon(date("m",$d[0])).", ".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`,`text`,`url`) VALUES (NULL,NOW(),'Добавлено расписание для к/ц «".$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`,`text`,`url`) VALUES (NULL,NOW(),'Добавлен ".date2monn(substr($data2['date'],5,2))." репуртуар на «".$data['title']."»', '".$url."".$data['human_id']."/".$data['fid']."/');");

		}
	}



?>