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);
?>