seancesatline; if(isset($_GET['lap'])) $linesatpage=$_GET['lap']; else $linesatpage=$config->linesatpage; if(file_exists("flags/single")) { require("single.php"); exit(); } // temp debug function console_log( $data ){ // echo ''; } $shift=0; if(isset($_GET["shift"])) { $shift = $_GET["shift"]; } require_once("conf.php"); require_once("ts_common.php"); function get_page() { return 1; } function cin_night_date($d) { global $monthnames; global $mssql_charset; $ts = $d; $nts = $d+86400; if(gmdate('H', $ts) < 3) { $ts = $ts - 86400; $nts = $nts - 86400; } $cnt = ". Начало в " . gmdate("H:i",$ts); $m1 = gmdate('n', $ts); $m2 = gmdate('n', $nts); if($m1 == $m2) return gmdate('j',$ts) . " " . ' - ' . gmdate('j',$nts) . " " . $monthnames[$m2] . $cnt; return gmdate('d',$ts) . " " . $monthnames[$m1] . ' - ' . gmdate('d',$nts) . " " . $monthnames[$m2] . $cnt; } #phpinfo(); #die(); $serverName = $config->db->host; $connectionInfo = array("Database" => $config->db->database, "UID" => $config->db->user, "PWD" => $config->db->pass); $dbh = sqlsrv_connect($serverName, $connectionInfo); #$dbh = mssql_connect($config->db->host,$config->db->user,$config->db->pass); if($dbh == false) { echo("connection failed: " . mssql_get_last_message()); die(); } function CountOfLines($seances) { global $seancesatline; if(floor($seances/$seancesatline) == $seances/$seancesatline) { return $seances/$seancesatline; } else { return floor($seances/$seancesatline) + 1; } } $qfl=" SELECT DISTINCT Performance.Name AS Film, COUNT(*) AS Seances FROM Performance LEFT OUTER JOIN PerformanceTimeframe ON PerformanceTimeframe.PerformanceID = Performance.ID AND PerformanceTimeframe.PerformanceTimeframeTypeID = 1 WHERE (ROUND(CAST(PerformanceTimeframe.StartTime - CONVERT(datetime, '01:00:00') AS float), 0, 1) = $shift + ROUND(CAST(GETDATE() AS float), 0, 1)) AND (Performance.IsActive = 1) AND Performance.Name not like 'НОЧЬ КИНО %' AND Performance.Name not like 'БФМ %' GROUP BY Performance.Name ORDER BY Performance.Name"; $afilms = array(); $clines = 0; $films = 0; $vclines = 0; $vfilms = 0; $sfl=sqlsrv_query($dbh,$qfl); while($afl=sqlsrv_fetch_array($sfl)) { $f = $afl[0]; # $f = preg_replace('/^\d\d\d\d\d\d\d\d\d /', '', $f); $cl=CountOfLines($afl[1]); $afilms[$f]=$cl; if($clines + $cl <= $linesatpage) { # echo $afl[0] . " " . $afl[1] . " " . $cl . "
"; $clines += $cl; $films++; } else { # echo 'VIP: ' . $afl[0] . " " . $afl[1] . " " . $cl . "
"; # $vclines += $cl; # $vfilms++; } } #echo $films . " " . $clines . "
" . $vfilms . " " . $vclines; console_log($films . " " . $clines . "
" . $vfilms . " " . $vclines); $ts = time() + 86400*$shift; $opened_date=$ts+5*24*60*60; $oq="SELECT MAX(ROUND(86400 * CONVERT(float, EndTime - CONVERT(datetime, '1970-01-01 00:00:00')), 0)) AS Expr1 FROM PerformanceTimeframe WHERE (PerformanceTimeframeTypeID IN (2, 3))"; $ost=sqlsrv_query($dbh,$oq); if($or=sqlsrv_fetch_array($ost)) { $opened_date=$or[0]-24*60*60; } $qu = " SELECT DISTINCT StructureElement.ID, StructureElement.Name AS Hall, Performance.Name AS Film, 86400 * CONVERT(float, PerformanceTimeframe.StartTime - CONVERT(datetime, '1970-01-01 00:00:00')) AS Start_Time, CONVERT(char(5), PerformanceTimeframe.StartTime, 8), Performance.BasePrice, VipPrice = CASE WHEN ZonePriceTemplate.SeatPrice IS NULL THEN Performance.BasePrice WHEN ZonePriceTemplate.IsRelative = 1 THEN Performance.BasePrice + ZonePriceTemplate.SeatPrice ELSE ZonePriceTemplate.SeatPrice END FROM Performance LEFT OUTER JOIN PerformanceTimeframe ON PerformanceTimeframe.PerformanceID = Performance.ID AND PerformanceTimeframe.PerformanceTimeframeTypeID = 1 LEFT OUTER JOIN StructureElement ON StructureElement.ID = Performance.StructureElementID LEFT OUTER JOIN ZonePriceTemplate ON ZonePriceTemplate.ZonePriceConfigurationID = Performance.ZonePriceConfigurationID WHERE (ROUND(CAST(PerformanceTimeframe.StartTime - CONVERT(datetime, '01:00:00') AS float), 0, 1) = $shift + ROUND(CAST(GETDATE() AS float), 0, 1)) AND (Performance.IsActive = 1) AND Performance.Name not like 'НОЧЬ КИНО %' AND Performance.Name not like 'БФМ %' AND (Performance.Name IN (SELECT TOP $films Performance.Name AS Film FROM Performance LEFT OUTER JOIN PerformanceTimeframe ON PerformanceTimeframe.PerformanceID = Performance.ID AND PerformanceTimeframe.PerformanceTimeframeTypeID = 1 WHERE (ROUND(CAST(PerformanceTimeframe.StartTime - CONVERT(datetime, '01:00:00') AS float), 0, 1) = $shift + ROUND(CAST(GETDATE() AS float), 0, 1)) AND (Performance.IsActive = 1) AND Performance.Name not like 'НОЧЬ КИНО %' AND Performance.Name not like 'БФМ %' GROUP BY Performance.Name ORDER BY Performance.Name)) ORDER BY Film, Start_Time "; $su = sqlsrv_query($dbh,$qu); $lf=''; #$ts = time(); $today = gmstrftime("%d ", $ts) . $monthnames[gmdate('n', $ts)]; $opened = gmstrftime("%d ", $opened_date) . $monthnames[gmdate('n', $opened_date)]; /* SELECT MAX( ROUND( 86400 * CONVERT( float, StartTime - CONVERT( datetime, '1970-01-01 00:00:00') ), 0) ) FROM PerformanceTimeframe */ $ds=''; if($config->cn->plasma2->disable_head) { $ds = "display: none"; } echo " TicketSoft "; } $cs = 1; $cclass = 3 - $cclass; $d = getFilmDuration($f, $dbh); $ds = DurationToTime($d); $au[5]=(float)$au[5]; $au[6]=(float)$au[6]; if(($au[1]=='VIP I') or ($au[1]=='VIP II')) { $hallname = $au[1]; $classname = "cell_vip$cclass"; $price = $au[5]; } else { $hallname = "Зал $au[1]"; $classname = "cell_normal$cclass"; $price = ($au[5] == $au[6])?$au[5]:"$au[5]/$au[6]"; //$price = "$au[5]/$au[6]"; } $f = preg_replace('/^\d\d\d\d\d\d\d\d\d /', '', $f); echo " "; echo " "; } else { $au[5] = (float)$au[5]; $au[6] = (float)$au[6]; if(($au[1]=='VIP I') or ($au[1]=='VIP II')) { $hallname = $au[1]; $classname = "cell_vip$cclass"; $price = $au[5]; } else { $hallname = "Зал $au[1]"; $classname = "cell_normal$cclass"; $price = ($au[5] == $au[6])?$au[5]:"$au[5]/$au[6]"; // $price = "$au[5]/$au[6]"; } if($cs++ == $seancesatline) { echo ""; $cs = 1; } echo " "; } } for($i = 1; $i < $seancesatline - $cs + 1; $i++) { echo ""; } $bds=''; if($config->cn->plasma2->disable_bottom) { $bds = "display: none"; } echo ""; /* ==================== ВНИМАНИЕ! ======================= Нижеследующий кусок кода отвечает за извлечение из базы инфы но ночам кино и за вывод ее на плазмы. Денисова обучена эту инфу туда вбивать, и она это делает. Те закомментированные куски кода которые сверху - это сверх-мега-экстраординарные затычки и костыли, использовать которые каждую неделю нельзя! Если, блин, еще раз кто-нибудь без ВЕСКИХ причин и моего ведома отрубит автоматику и вобьет вверху инфу, не соответствующую действительности - это будет неправильно. */ $style = 'style="font-size: '; $style .= $config->cn->plasma2->fontsize; $style .= '; line-height: '; $style .= $config->cn->plasma2->lineheight; $style .= ';"'; if($config->cn->plasma2->mode == 'manual') { $content = file_get_contents($config->cn->plasma2->manualfile); echo ""; } else { $qcn=" SELECT DISTINCT 86400 * CONVERT(float, PerformanceTimeframe.StartTime - CONVERT(datetime, '1970-01-01 00:00:00')) AS Start_Time, Performance.Description, Performance.Name, structureelement.name FROM Performance LEFT OUTER JOIN PerformanceTimeframe ON PerformanceTimeframe.PerformanceID = Performance.ID AND PerformanceTimeframe.PerformanceTimeframeTypeID = 1 left outer join structureelement on performance.structureelementid = structureelement.id WHERE (ROUND(CAST(PerformanceTimeframe.StartTime AS float), 0, 1) >= $shift + ROUND(CAST(GETDATE() AS float), 0, 1)) AND (Performance.IsActive = 1) AND (Performance.Name LIKE 'НОЧЬ КИНО%') ORDER BY structureelement.name ASC "; $scn=sqlsrv_query($dbh,$qcn); if(sqlsrv_num_rows($scn) > 0) { $acn = sqlsrv_fetch_array($scn); echo ""; } } # ДАННЫЙ КУСОК ОТВЕЧАЕТ ЗА ФОРМИРОВАНИЕ ФОНОВОЙ СТРАНИЦЫ РЕПЕРТУАРА \\SQL\Skin\index.html # НЕ КОММЕНТИТЬ, (ни при каких обстоятельствах). # и не ебукаться в комментариях, и хуями друг друга не обкладывать! $dom = new DomDocument('1.0','utf-8'); $data = $dom->createElement('repertoire'); $dom->appendChild($data); console_log($q); $sth = sqlsrv_query($dbh,$q); console_log($dom); while($arr = sqlsrv_fetch_array($sth)) { $h = $dom->createElement('performance'); $h->setAttribute('hall', $arr[0]); $h->setAttribute('name', iconv($mssql_charset,'utf-8', $arr[1])); $h->setAttribute('start-time', $arr[2]); $h->setAttribute('price', $arr[3]); $h->setAttribute('price-vip', $arr[4]); $data->appendChild($h); } #$dom->Save('rep.xml'); $pass1 = xsl_transform($dom, 'convert-rep.xsl'); #$pass1->Save('1.xml'); $pass2 = xsl_transform($pass1, 'day-split.xsl'); $pass3 = xsl_transform($pass2, 'expand-days.xsl'); $pass4 = xsl_transform($pass3, 'drop-dups.xsl'); $pass5 = xsl_transform($pass4, 'group-films.xsl'); $pass6 = xsl_transform($pass5, 'extract-counts.xsl'); $pass7 = xsl_transform($pass4, 'group-hallgroups.xsl'); $xh = xsl_transform($pass6, 'final-xhtml.xsl'); #$xh->Save('//sql/skin/index.html'); $xh->Save('skin/index.html'); #$ccs = xsl_transform($pass5, 'drop-dup-seances.xsl'); #$ccs->Save('call-center-src.xml'); #$cc = xsl_transform($ccs, 'callcenter.xsl'); #$cc->Save('playlist.txt'); #if (date("H") == 0) #{ # `ConcatWave_nfl.exe playlist.txt "c:\\program files\\ticketsoft\\callcenter\\menu\\repertoire.wav"`; # `ConcatWave_nfl.exe playlist.txt repertoire.wav`; # require("callcenter.php"); #} echo "
$today Расписание (продолжение справа) "; $cs=$seancesatline; $cclass = 1; while($au=sqlsrv_fetch_array($su)) { # $au[2] = preg_replace('/^\d\d\d\d\d\d\d\d\d /', '', $au[2]); $f = iconv($mssql_charset, 'windows-1251', $au[2]); if($f != $lf) { $lf = $f; for($i = 1; $i < $seancesatline - $cs + 1; $i++) { echo "

.

$f
$ds

$au[4]

$hallname

$price

$au[4]

$hallname

$price

.

Предварительная продажа билетов открыта по $opened
"; echo str_replace("\n", '
', $content); echo "
"; echo "Ночи кино с " . cin_night_date_date($acn[0], ' на ') . ":
"; $cnd = $acn[0]; while($acn) { if(cin_night_date_date($acn[0]) == cin_night_date_date($cnd)) echo "Зал $acn[3]" . ' (' . cin_night_date_time($acn[0]) . ") — $acn[1]
"; $acn = sqlsrv_fetch($scn); } echo "
"; ?>