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/afish-ka.ru/modules/main/firms.inc
<?php

#————————————————————> CMS Termit <———————————————————————#
#                                                         #
#                 Author: Ilya Rudomilov                  #
#                                                         #
#                E-mail: ilya@rudomilov.ru                #
#              URL: http://www.rudomilov.ru/              #
#                      ICQ: 203015                        #
#                                                         #
#——————————————> Grafix Design — (c) 2006 <———————————————#

function get_daughter_opinions($parent_opinion_id) {
	GLOBAL $opinions_add_url;
	$html_source = "";
	//print("SELECT * FROM `opinions` WHERE `parent_id`=".$parent_opinion_id.";")."<br>";
	
	$result_container = "result_".$parent_opinion_id; //print $parent_opinion_id."<br>";
	$data_container = "data_".$parent_opinion_id;
	$$result_container = query("SELECT * FROM `opinions` WHERE `parent_id`=".$parent_opinion_id.";");
	if(mysql_num_rows($$result_container)>0) {
		while($data=mysql_fetch_array($$result_container)) {
			$opinions_id = $data['id'];
			$opinions_rate = $data['rate'];
			$opinions_author = $data['author'];
			$opinions_date = substr($data['datetime'],8,2)." ".skin_date_humanmon(substr($data['datetime'],5,2))." ".substr($data['datetime'],0,4)." г.";
			$opinions_text = str_replace("\r","<br>",$data['text']);
				
			$daughter_opinions = get_daughter_opinions($data['id']);
			$html_source .= preg_replace("/{%(\w+)%}/ee", "$\\1",_html("opinions_row.htm",0));
			$temp_html .= $result_container." - ";

		}
	}
		return $html_source;
	
}

$result = query("SELECT `type_title`,`id`,`human_id` FROM `firms_types` WHERE `human_id`='".$global_vars['request'][0]."' LIMIT 1;");
if(mysql_num_rows($result)==0)
	error(404);
$firms_type = mysql_fetch_array($result);
$firms_type_id = $firms_type[1];
$firms_type_human = $firms_type[2];
$firms_type = $firms_type[0];
$opinions_ratelist = array('Очень плохо','Плохо','Довольно плохо','Удовлетворительно','Весьма неплохо','Нормально','Весьма хорошо','Хорошо','Очень хорошо','Отлично');

$global_vars['title'][] = $firms_type;

if (array_key_exists(1,$global_vars['request']) && $global_vars['request'][1]!='' && !strstr($global_vars['request'][1],".html"))
    {
    $firm = query("SELECT *, `rate_sum`/`rate_num` AS `rating` FROM `firms` WHERE `id`='".$global_vars['request'][1]."' AND `type`=".$firms_type_id." LIMIT 1;");
    if(mysql_num_rows($firm)!=1)
       error(404);

    $data = mysql_fetch_array($firm);

    $firms_id = $data['id'];
    $firms_title = $data['title'];
    $firms_input = $data['input'];
    $firms_music = $data['music'];
    $firms_kitchen = $data['kitchen'];
    $firms_dishes = $data['dishes'];
    $firms_cocktails = $data['cocktails'];
    $firms_halls = $data['halls'];
    $firms_address = $data['address'];
    $firms_gps = $data['gps'];
    $firms_tel = $data['tel'];
    $firms_fax = $data['fax'];
    $firms_oper_time = $data['oper_time'];
    $firms_email = str_replace("@","<img src=\"i/at.gif\" width=\"10\" height=\"9\">",$data['email']);
    $firms_counter = $data['counter'];
    $firms_description = str_replace("\r","<br>",$data['description']);
    if ($data['www']!='') $firms_www = "<a href=\"http://".$data['www']."\" target=\"blank\">".$data['www']."</a>";

    $firms_opinions = mysql_fetch_array(query("SELECT COUNT(`id`) AS `count`, SUM(`rate`)/COUNT(`id`) AS `rating` FROM `opinions` WHERE `fid`=".$firms_id.";"));
    $firms_opinions_num = $firms_opinions['count'];
    $firms_opinions_rating_5 = round($firms_opinions['rating']*10)/20; // for google rich snippets at search results
    $firms_opinions_rating = round($firms_opinions['rating']);

    $firms_opinions_url = $global_vars['request'][0]."/".$global_vars['request'][1]."/opinions/";

    $firms_info_img="";

    $global_vars['title'][] = $firms_title;

    if(array_key_exists(2,$global_vars['request']) && ($global_vars['request'][2]=='opinions'))
       {
       $global_vars['title'][] = "Отзывы";

       if($global_vars['request'][3]=='add')
          {
          if (isset($_POST['author'],$_POST['rate'],$_POST['email'],$_POST['text']))
              {
              $errors = array();
			  $sql_res = mysql_fetch_array(query("SELECT COUNT(`id`) FROM `opinions` WHERE `fid`=".$firms_id." AND `author`='".text_replace($_POST['author'])."' AND `email`='".text_replace($_POST['email'])."' AND `text`='".text_replace($_POST['text'])."' AND `rate`='".$_POST['rate']."' AND `parent_id`='".$opinion_parent."';"));
			  if($sql_res[0]>0)
                  $errors[] = "Это дубликат комментария";
              if(strstr(text_replace($_POST['text']),"http://") || strstr(text_replace($_POST['text']),"www."))
                  $errors[] = "Комментарий не может содержать ссылку";
              if ($_POST['author']=='')
                  $errors[] = "Не указан автор";
              if ($_POST['email']=='')
                  $errors[] = "Не указан адрес эл. почты";
              if ($_POST['text']=='')
                  $errors[] = "Не введен текст";
              if (($_POST['rate']<0) || ($_POST['rate']>9))
                  $errors[] = "Не указана оценка";
              if(isset($_GET['parent']))
                  $opinion_parent = $_GET['parent'];
              else
				$opinion_parent = 0;				  
				  
              if(count($errors)==0)
				{
				query("INSERT INTO `opinions` (`parent_id`,`fid`, `datetime`, `author`, `email`, `ip`, `text`, `rate`) VALUES ('".$opinion_parent."', ".$firms_id.",'".date("Y-m-d H:i:s",TIME)."', '".text_replace($_POST['author'])."', '".text_replace($_POST['email'])."', '".$_SERVER['REMOTE_ADDR']."', '".text_replace($_POST['text'])."', '".$_POST['rate']."')");
				cache_delete(array('opinions_firms'),$firms_id.'.html');
				setcookie('opinions_author'.COOKIE_ID,text_replace($_POST['author']),time()+8035200,'/');
				setcookie('opinions_email'.COOKIE_ID,text_replace($_POST['email']),time()+8035200,'/');
				header("Location: ".SITE_BASE_HTTP_URI.$global_vars['request'][0]."/".$global_vars['request'][1]."/opinions/#opinion_".mysqli_insert_id($global_vars['db_connection']));
				}
              else
                  {
                  $author = $_POST['author'];
                  $rate = $_POST['rate'];
				  $email = $_POST['email'];
                  $text = $_POST['text'];
                  $errors = join("<br>",$errors);
                  }
              }
			 
		  else {
		       $author = $_COOKIE['opinions_author'.COOKIE_ID];
			   $email = $_COOKIE['opinions_email'.COOKIE_ID];
		  }
          $opinions_rate = "<select name=\"rate\" style=\"width: 100%\">\r<option value=\"-1\">Оцените...\r";
          for ($i=count($opinions_ratelist);$i>0;$i--)
               {
               if(isset($_POST['rate']) && ($_POST['rate']==$i))
                  $opinions_rate .= "<option value=\"".$i."\" selected>".$opinions_ratelist[$i]."\r";
               else
                  $opinions_rate .= "<option value=\"".$i."\">".$opinions_ratelist[$i]."\r";
               }

          $opinions_rate .= "</select>\r";
          $opinions_title = "<a href=\"".$firms_type_human."/\">".$firms_type."</a> / <a href=\"".$firms_type_human."/".$firms_id."/\">".$firms_title."</a> / <a href=\"".$firms_type_human."/".$firms_id."/opinions/\">Отзывы</a>";

          $temp_html = preg_replace("/{%(\w+)%}/ee", "$\\1",_html("opinions_add.htm",0));
          if ($errors=='') $temp_html = preg_replace("'<!-- errors -->.*?<!-- /errors -->'si","",$temp_html);
          }
       else {
          $opinions_title = "<a href=\"".$firms_type_human."/\">".$firms_type."</a> / <a href=\"".$firms_type_human."/".$firms_id."/\">".$firms_title."</a>";
          $opinions_add_url = $firms_type_human."/".$firms_id;

          if (cache_check(array('opinions_firms'),$firms_id.'.html','31536000'))
				$temp_html = cache_read(array('opinions_firms'),$firms_id.'.html');
          else {
		  
          $result = query("SELECT * FROM `opinions` WHERE `fid`=".$firms_id." AND `parent_id`=0 ORDER BY `datetime`;");

          $temp_html = "";

          if (mysql_num_rows($result)==0)
              {
              $opinions_author = "Нет отзывов";
              $opinions_text = "К сожалению, нет отзывов. Вы можете добавить первый отзыв, перейдя по ссылке \"Добавить отзыв\"";

              $temp_html = preg_replace("/{%(\w+)%}/ee", "$\\1",_html("opinions_row.htm",0));
              $temp_html = preg_replace("'<!-- opinions_adv -->.*?<!-- /opinions_adv -->'si","",$temp_html);
              }

          while ($data = mysql_fetch_array($result))
                 {
				 $opinions_id = $data['id'];
                 $opinions_rate = $data['rate'];
                 $opinions_author = $data['author'];
                 $opinions_date = substr($data['datetime'],8,2)." ".skin_date_humanmon(substr($data['datetime'],5,2))." ".substr($data['datetime'],0,4)." г.";
                 $opinions_text = str_replace("\r","<br>",$data['text']);
				
				 $daughter_opinions = get_daughter_opinions($data['id']);
                 $temp_html .= preg_replace("/{%(\w+)%}/ee", "$\\1",_html("opinions_row.htm",0));
				 
                 }

          $temp_html = preg_replace("/{%(\w+)%}/ee", "$\\1",_html("opinions.htm",0));
		  cache_write(array('opinions_firms'),$firms_id.'.html',$temp_html);
		}
          }
       }
    else
    { 
    query("UPDATE `firms` SET `counter`=`counter`+1 WHERE `id`='".$global_vars['request'][1]."' LIMIT 1;");
    $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']."_"))==""))
                {
                $size = getimagesize('images/b/firms/'.$file);
                $firms_img_bw = $size[0];
                $firms_img_bh = $size[1];
                $firms_img_bsize = round(filesize('images/b/firms/'.$file)/1024);

                $firms_info_img .= preg_replace("/{%(\w+)%}/ee", "$\\1",_html("firms_info_img.htm",0));
				
				if(!isset($skin_social_image))
					$skin_social_image = $url.'images/b/firms/'.$file;
                }
         }


	if(!isset($firms_www))
		$firms_www = "";
		 
	if($firms_description!='')
		if(strlen(text_replace($firms_description))>300)
			$skin_social_description = mb_substr(text_replace($firms_description),0,300,'UTF-8')."...";
		else
			$skin_social_description = text_replace($firms_description);

		 
		 
    $temp_html = preg_replace("/{%(\w+)%}/ee", "$\\1",_html("firms_info.htm",0));

    if ($firms_input=='') $temp_html = preg_replace("'<!-- input -->.*?<!-- /input -->'si","",$temp_html);
    if ($firms_music=='') $temp_html = preg_replace("'<!-- music -->.*?<!-- /music -->'si","",$temp_html);
    if ($firms_kitchen=='') $temp_html = preg_replace("'<!-- kitchen -->.*?<!-- /kitchen -->'si","",$temp_html);
    if ($firms_dishes=='') $temp_html = preg_replace("'<!-- dishes -->.*?<!-- /dishes -->'si","",$temp_html);
    if ($firms_cocktails=='') $temp_html = preg_replace("'<!-- cocktails -->.*?<!-- /cocktails -->'si","",$temp_html);
    if ($firms_halls=='') $temp_html = preg_replace("'<!-- halls -->.*?<!-- /halls -->'si","",$temp_html);
    if ($firms_address=='') $temp_html = preg_replace("'<!-- address -->.*?<!-- /address -->'si","",$temp_html);
    if ($firms_gps=='') $temp_html = preg_replace("'<!-- gps -->.*?<!-- /gps -->'si","",$temp_html);
    if ($firms_tel=='') $temp_html = preg_replace("'<!-- tel -->.*?<!-- /tel -->'si","",$temp_html);
    if ($firms_fax=='') $temp_html = preg_replace("'<!-- fax -->.*?<!-- /fax -->'si","",$temp_html);
    if ($firms_email=='') $temp_html = preg_replace("'<!-- email -->.*?<!-- /email -->'si","",$temp_html);
    if ($firms_www=='') $temp_html = preg_replace("'<!-- www -->.*?<!-- /www -->'si","",$temp_html);
    if ($firms_oper_time=='') $temp_html = preg_replace("'<!-- oper_time -->.*?<!-- /oper_time -->'si","",$temp_html);
    if ($firms_description=='') $temp_html = preg_replace("'<!-- description -->.*?<!-- /description -->'si","",$temp_html);
    if ($firms_info_img=='') $temp_html = preg_replace("'<!-- img -->.*?<!-- /img -->'si","",$temp_html);
    if ($firms_opinions_num==0) $temp_html = preg_replace("'<!-- opinions -->.*?<!-- /opinions -->'si","нет.",$temp_html);

    $temp_html = preg_replace("'<!--.*?-->'si","",$temp_html);

    $search_date = date("Y-m-d",TIME)." ".TIME_WORK.":00:00";

    $actions_afisha = "<style>#vk_groups, #vk_groups iframe { width: 100% !important; }</style><TABLE cellSpacing='0' cellPadding='0' width='100%' border='0'><tr><td width='100%'><div id='vk_groups'></div><script type='text/javascript'>VK.Widgets.Group('vk_groups', {mode: 0, width: 'auto', height: '240', color1: 'FFFFFF', color2: '2B587A', color3: '5B7FA6'}, 68709570);</script></td></tr></table><br />";
	
	if (cache_check(array('afisha_firms'),$firms_id.'.html','3600'))
		$actions_afisha = cache_read(array('afisha_firms'),$firms_id.'.html');
	else {
	
    if($firms_type_id!=1 && $firms_type_id!=8)
		$afisha_rows = 30;
    else
		$afisha_rows = 3;
    for($i=0;$i<$afisha_rows;$i++)
        { 
        $result = query("SELECT MIN(`datetime`) AS `curdate`, DATE_ADD(`datetime`, INTERVAL 1 DAY) AS `nextdate`, DATE_SUB(`datetime`, INTERVAL 1 DAY) AS `prevdate`, HOUR(`datetime`) AS `hour` FROM `shedule` WHERE `datetime`>='".$search_date."' AND `fid`=".$firms_id." GROUP BY `datetime` ORDER BY `datetime` LIMIT 1;");
        if (mysql_num_rows($result)>0)
            {
            $afisha_row = "";

            $data = mysql_fetch_array($result);
            if ($data['hour']>=TIME_WORK)
                {
                $cur_date = substr($data['curdate'],0,10)." ".TIME_WORK.":00:00";
                $search_date = substr($data['nextdate'],0,10)." ".TIME_WORK.":00:00";
                }
            else
                {
                $cur_date = substr($data['prevdate'],0,10)." ".TIME_WORK.":00:00";
                $search_date = substr($data['curdate'],0,10)." ".TIME_WORK.":00:00";
                }

            $result2 = query("SELECT `price` FROM `shedule` WHERE `datetime`>='".$cur_date."' AND `datetime`<'".$search_date."' AND `fid`=".$firms_id." GROUP BY `price` ORDER BY `datetime`;");

            while($data2 = mysql_fetch_array($result2))
                  {
                  $result3 = query("SELECT `shedule`.`aid`, `actions`.`title`, `actions`.`id`, `actions`.`type` FROM `shedule` LEFT JOIN `actions` ON `actions`.`id`=`shedule`.`aid` WHERE `shedule`.`datetime`>='".$cur_date."' AND `shedule`.`datetime`<'".$search_date."' AND `shedule`.`price`='".$data2['price']."' AND `fid`=".$firms_id." GROUP BY `shedule`.`aid` ORDER BY `shedule`.`datetime`;");

                  $price = $data2['price'];

                  while($data3 = mysql_fetch_array($result3))
                        {

                        $actions_title = $data3['title'];
                        $actions_id = $data3['id'];

                        $actions_type = mysql_fetch_array(query("SELECT `human_id`, `human_subid` FROM `firms_types` WHERE `id`=".$data3['type'].";"));
                        $actions_url = $actions_type[0]."/".$actions_type[1]."/".$actions_id."/";

                        $result4 = query("SELECT `datetime` FROM `shedule` WHERE `datetime`>='".$cur_date."' AND `datetime`<'".$search_date."' AND `aid`=".$data3['aid']." AND `price`='".$data2['price']."' AND `fid`=".$firms_id." ORDER BY `datetime`");

						if(($data2['price']=="?") && (mysql_num_rows($result4)==1) && ($data3['type']==1))
							$timetable_list = "премьера";
						else
							{
						
							$timetable_list = "";
							while($data4 = mysql_fetch_array($result4))
									{
									$timetable_list .= substr($data4['datetime'],11,5).", ";
									}
							$timetable_list = substr($timetable_list,0,strlen($timetable_list)-2);
							}


                        $afisha_row .= preg_replace("/{%(\w+)%}/ee", "$\\1",_html("firms_info_afisha_row.htm",0));
                        }
                  }
            $afisha_date = explode(" ",$cur_date);
            list($afisha_date_year,$afisha_date_mon,$afisha_date_day) = explode("-",$afisha_date[0]);
            $afisha_date = $afisha_date_day." ".skin_date_humanmon($afisha_date_mon)." ".$afisha_date_year." г.";

            $actions_afisha .= preg_replace("/{%(\w+)%}/ee", "$\\1",_html("firms_info_afisha.htm",0));
            }
        }
			cache_write(array('afisha_firms'),$firms_id.'.html',$actions_afisha);
		  }
		  
      $temp_html .= $actions_afisha;
      }
    }
else
    {
    $totalsize = mysql_fetch_array(query("SELECT COUNT(*) FROM `firms` WHERE `type`=".$firms_type_id.";"));
    $skin_span = skin_span(SPAN,$global_vars['page'],$totalsize[0],"/".$firms_type_human."/");

    $result = query("SELECT * FROM `firms` WHERE `type`=".$firms_type_id." ORDER BY `title` LIMIT ".(($global_vars['page']-1)*SPAN).",".SPAN.";");

    if (mysql_num_rows($result)==0)
        error(404);

    $temp_html = "";
    while ($data = mysql_fetch_array($result))
       {
       $firms_rating = mysql_fetch_array(query("SELECT COUNT(`id`) AS `count`, SUM(`rate`)/COUNT(`id`) AS `rating` FROM `opinions` WHERE `fid`=".$data['id'].";"));

       $firms_opinions_num = $firms_rating['count'];
       $firms_opinions_rating = round($firms_rating['rating']);
       $firms_url = "/".$global_vars['request'][0]."/".$data['id']."/";

       $firms_title = $data['title'];
       $firms_oper_time = $data['oper_time'];
       $firms_tel = $data['tel'];
       $firms_address = $data['address'];

       $firms_row = preg_replace("/{%(\w+)%}/ee", "$\\1",_html("firms_row.htm",0));

       if ($firms_address=='')
             $firms_row = preg_replace("'<!-- address -->.*?<!-- /address -->'si", "",$firms_row);
       if ($firms_oper_time=='')
             $firms_row = preg_replace("'<!-- oper_time -->.*?<!-- /oper_time -->'si","",$firms_row);
       if ($firms_tel=='')
             $firms_row = preg_replace("'<!-- tel -->.*?<!-- /tel -->'si","",$firms_row);
       if ($firms_opinions_num==0)
             $firms_row = preg_replace("'<!-- opinions -->.*?<!-- /opinions -->'si","нет.",$firms_row);

       $firms_row = preg_replace("'<!--.*?-->'si","",$firms_row);
       $temp_html .= $firms_row;
       }

    $temp_html = preg_replace("/{%(\w+)%}/ee", "$\\1",_html("firms.htm",0));
    }

_html_design($temp_html);

?>