#!/usr/bin/perl
#Vadim::Данный скрипт преднозначен для генерации описания отеля в JSON
BEGIN {
unshift(@INC,"/var/www/turizm.ru/COMMON/Lib","/var/www/tzm.ru/cgi-bin");
}
use strict;
use CGI;
use DBI;
use Data::Dumper;
use BIM::DbConfig;
use TZM::Cache qw(hotels_list_cache);
use JSON::XS;
use Encode;
use CGI::Carp qw/fatalsToBrowser/;
use constant DEBUG => 0;
use constant DEFAULT_TEXT => 'Отель ${PAGE_HOTELNAME} ${PAGE_HOTELCATEGORY} предлагается различными туристическими операторами, специализацией которых является ${PAGE_COUNTRYNAME}. Вы легко можете найти подходящие туры в ${PAGE_HOTELNAME_RUS}, для этого рекомендуем воспользоваться предложениями туров. Обратите внимание, цены на ${HOTEL_NAME} ${PAGE_HOTELCATEGORY} могут заметно отличаться даже в краткий промежуток времени – это зависит от чартерного графика, локальной наполняемости ${PAGE_HOTELNAME_RUS} ${PAGE_HOTELCATEGORY} и общего спроса на туры по направлению ${PAGE_COUNTRYNAME} в конкретные даты. Если по какой-то причине предлагаемые варианты вас не устраивают, ${PAGE_HOTELNAME} — не единственное предложение города ${PAGE_CITYNAME}, вполне возможно, что другие варианты окажутся даже лучше.';
my $cgi = CGI::new();
my $id = int $cgi->param("id");
my $json = int $cgi->param("json");
print "Content-Type: text/javascript; charset=utf-8\n\n";
my $cache = hotels_list_cache();
my $key=qq~desc$id~;
my $js = $cache->get($key);
unless ($js && !DEBUG){
my $dbcfg=$BIM::DbConfig::DB->{TURIZM}->{MASTER};
my $DBH=DBI->connect("DBI:mysql:database=$dbcfg->{database};host=$dbcfg->{host};port=$dbcfg->{port}",$dbcfg->{login},$dbcfg->{passwd},{PrintError=>0});
my $SQL = qq~SELECT h.descr,h.name,h.name_rus,h.category,ac.CountryName,cur.name cityname, ac.CountryCode, cur.name_translit as cur_translit
from hotelsCommon h,allCountry ac,hotelsCity cur where h.id=? and cur.country_id=ac.countryId and cur.id=h.city_id~;
my $STH = $DBH->prepare($SQL);
$STH->execute($id) or die $DBH->errstr;
if (my $row=$STH->fetchrow_hashref){
$js=$row->{descr};
unless ($js){
$js=DEFAULT_TEXT;
$js=~s/\$\{PAGE_HOTELNAME_RUS\}/$row->{name_rus}/g;
$js=~s/\$\{(PAGE_HOTELNAME|HOTEL_NAME)\}/$row->{name}/g;
$js=~s/\$\{PAGE_COUNTRYNAME\}/$row->{CountryName}/g;
$js=~s/\$\{PAGE_HOTELCATEGORY\}/$row->{category}/g;
$js=~s/\$\{PAGE_CITYNAME\}/$row->{cityname}/g;
$js=~s/\$\{COUNTRY_TRANSLIT\}/$row->{CountryCode}/g;
$js=~s/\$\{CURORT_TRANSLIT\}/$row->{cur_translit}/g;
}
Encode::from_to($js,'cp1251','utf8');
$cache->set($key, $js, '86400') unless DEBUG;
}
$STH->finish;
$DBH->disconnect;
}
print $json ? JSON::XS->new->latin1->encode( { text => $js } ) : $js;
1;