compile_check = true;
//$smarty->debugging = true;
$smarty->template_dir = './templates/';
$smarty->compile_dir = './admin/libs/smarty/templates_c/';
$smarty->config_dir = './templates/';
$smarty->cache_dir = './admin/libs/smarty/cache/';
$smarty->assign("sitename", $sitename);
$err=0;
/* */
$max_news=3;
/*
// Обращаться реферал должен так: index.php?from=referal_id&status=...
if(isset($from)){print "
From: $from
";}
else {print"From: Nowhere
"; }
*/
global $sape;
if (!defined('_SAPE_USER')){
define('_SAPE_USER', '0daebc2b44aae95f85c4bf5cdbdea49b');
}
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$sape = new SAPE_client();
$status = @$_REQUEST["status"];
$id = @$_REQUEST["id"];
$page = @$_REQUEST["page"];
if (!isset($status) || $status=="")
$status = "index";
switch($status) {
// ###########################################################################
// ###########################################################################
case "articles":
// Отдаем Smarty статус=articles
$smarty->assign("status", "articles");
$smarty->assign("header", "Статьи");
// Заголовок, титул и описание страницы
$smarty->assign("title", "Статьи : $sitename");
$smarty->assign("keywords", "Статьи : $sitename");
$smarty->assign("description", "Статьи : $sitename");
// Чтение, выбор и назначение статей
$articles = array();
$query = "SELECT id, description, keywords, header, filename, pageorder from $gdsitepages where visible='Y' and isarticle='Y' order by pageorder desc";
$result=mysql_query($query);
while($row=mysql_fetch_array($result))
{
$id=$row["id"];
$description=$row["description"];
$keywords=$row["keywords"];
$header=$row["header"];
$filename=$row["filename"];
$pageorder=$row["pageorder"];
$articles[] = array("id" => "$id", "description" => "$description", "keywords" => "$keywords", "header" => "$header", "filename" => "$filename", "pageorder" => "$pageorder");
}
$smarty->assign("articles", $articles);
break;
case "index":
$page="index";
// Отдаем Smarty статус
$smarty->assign("status", "index");
// Проверка, что такая страница есть.
if (count_items("$gdsitepages where filename='$page'") == 0) {
header("HTTP/1.0 404 Not Found");
header("Status: 404 Not Found");
header("Location: /");
exit;
}
$query="select id, name, title, description, keywords, header, menuname, filename, pageorder, parent, visible from $gdsitepages where filename='$page'";
$result=mysql_query($query);
if (mysql_num_rows($result)==0) {$query="select id, name, title, description, keywords, header, menuname, filename, pageorder, parent, visible from $gdsitepages where filename='notfound404'";$result=mysql_query($query);}
if (mysql_num_rows($result)>1)
{
// Страница не найдена!
// Выдаем ошибку 404
header("HTTP/1.0 404 Not Found");
header("Status: 404 Not Found");
header("Location: /");
exit;
}
if ($err == 0) {
$row=mysql_fetch_array($result);
$id=$row["id"];
$name=$row["name"];
$title=$row["title"];
$description=$row["description"];
$keywords=$row["keywords"];
$header=$row["header"];
$menuname=$row["menuname"];
$filename=$row["filename"];
$pageorder=$row["pageorder"];
$parent=$row["parent"];
$visible=$row["visible"];
$smarty->assign("title", $title);
$smarty->assign("description", $description);
$smarty->assign("keywords", $keywords);
$smarty->assign("header", $header);
$smarty->assign("contentfile", "../content/" . $filename . ".inc");
$smarty->assign("filename", $filename);
//Отдаем KeyVisual пра- пра- ... родителя
$tmp_parent = getrootparent_pages($id);
$smarty->assign("rootparent", $tmp_parent);
// $tmp_kv = getfieldbyquery($gdsitepages,"filename","id='$tmp_parent'");
// откусываем приставку языка
// if ((substr($tmp_kv,-4) == "_eng") || (substr($tmp_kv,-4) == "_dch")) {$tmp_kv = substr($tmp_kv,0,-4);}
// $smarty->assign("keyvisual", $tmp_kv);
}
// Формируем массив анонсов
$tmparr = array();
$query="SELECT id, name, title, descr, pic, link, announceorder, visible from $gdannouncements where visible='Y' order by announceorder";
$result=mysql_query($query);
while($row=mysql_fetch_array($result)) {
$id=$row["id"];
$name=$row["name"];
$title=$row["title"];
$descr=$row["descr"];
$pic=$row["pic"];
$link=$row["link"];
$announceorder=$row["announceorder"];
$visible=$row["visible"];
$tmparr[] = array(
"id" => "$id",
"name" => "$name",
"title" => "$title",
"descr" => "$descr",
"pic" => "$pic",
"link" => "$link",
"announceorder" => "$announceorder",
"visible" => "$visible");
}
$smarty->assign("announces", $tmparr);
break;
case "announces":
// Отдаем Smarty статус
$smarty->assign("status", "announces");
$smarty->assign("header", "Анонсы");
$smarty->assign("title", "Анонсы");
// Формируем массив анонсов
$tmparr = array();
$query="SELECT id, name, title, descr, pic, link, announceorder, visible from $gdannouncements where visible='Y' order by announceorder";
$result=mysql_query($query);
while($row=mysql_fetch_array($result)) {
$id=$row["id"];
$name=$row["name"];
$title=$row["title"];
$descr=$row["descr"];
$pic=$row["pic"];
$link=$row["link"];
$announceorder=$row["announceorder"];
$visible=$row["visible"];
$tmparr[] = array(
"id" => "$id",
"name" => "$name",
"title" => "$title",
"descr" => "$descr",
"pic" => "$pic",
"link" => "$link",
"announceorder" => "$announceorder",
"visible" => "$visible");
}
$smarty->assign("announces", $tmparr);
break;
case "news":
// Отдаем Smarty статус=news
$smarty->assign("status", "news");
$smarty->assign("header", "Новости");
$smarty->assign("title", "Новости");
// Чтение, выбор и назначение новостей
$news = array();
$query = "SELECT id, name, date, title, keywords, text, link, keyv, visible from $gdsitenews where visible='Y' order by date desc limit 7";
$result=mysql_query($query);
while($row=mysql_fetch_array($result))
{
$id=$row["id"];
$name=$row["name"];
$date=$row["date"];
$title=$row["title"];
$nkeywords=$row["keywords"];
$text=$row["text"];
$link=$row["link"];
$keyv=$row["keyv"];
$visible=$row["visible"];
$date = date("d.m.Y",$date);
$news[] = array("title" => "$title", "date" => "$date", "text" => "$text", "link" => "$link");
}
if ((!is_array($news)) or (count($news)==0)) {$news[] = array("title" => "Новостей нет", "date" => date("d.m.Y"), "text" => "Новостей для данного раздела нет.", "link" => "NULL");}
$smarty->assign("news", $news);
// Формируем массив анонсов
$tmparr = array();
$query="SELECT id, name, title, descr, pic, link, announceorder, visible from $gdannouncements where visible='Y' order by announceorder";
$result=mysql_query($query);
while($row=mysql_fetch_array($result)) {
$id=$row["id"];
$name=$row["name"];
$title=$row["title"];
$descr=$row["descr"];
$pic=$row["pic"];
$link=$row["link"];
$announceorder=$row["announceorder"];
$visible=$row["visible"];
$tmparr[] = array(
"id" => "$id",
"name" => "$name",
"title" => "$title",
"descr" => "$descr",
"pic" => "$pic",
"link" => "$link",
"announceorder" => "$announceorder",
"visible" => "$visible");
}
$smarty->assign("announces", $tmparr);
break;
// ###########################################################################
// ###########################################################################
case "newsarchive":
// Отдаем Smarty статус=newsarchive
$smarty->assign("status", "newsarchive");
$smarty->assign("header", "Архив новостей");
$smarty->assign("title", "Архив новостей");
// Чтение, выбор и назначение новостей
$news = array();
$query = "SELECT id, name, date, title, keywords, text, link, keyv, visible from $gdsitenews where visible='Y' order by date desc";
$result=mysql_query($query);
while($row=mysql_fetch_array($result))
{
$id=$row["id"];
$name=$row["name"];
$date=$row["date"];
$title=$row["title"];
$nkeywords=$row["keywords"];
$text=$row["text"];
$link=$row["link"];
$keyv=$row["keyv"];
$visible=$row["visible"];
$date = date("d.m.Y",$date);
$news[] = array("title" => "$title", "date" => "$date", "text" => "$text", "link" => "$link");
}
if ((!is_array($news)) or (count($news)==0)) {$news[] = array("title" => "Новостей нет", "date" => date("d.m.Y"), "text" => "Новостей для данного раздела нет.", "link" => "NULL");}
$smarty->assign("news", $news);
break;
// ###########################################################################
case "advnewsarchive":
// Отдаем Smarty статус=newsarchive
$smarty->assign("status", "advnewsarchive");
$smarty->assign("header", "Архив новостей");
$smarty->assign("title", "Архив новостей");
// Чтение, выбор и назначение новостей
$advnewsarray = array();
$query = "SELECT id, name, title, descr, sdescr, pic, link, visible from $gdadvnews where visible='Y' order by id desc";
$result=mysql_query($query);
while($row=mysql_fetch_array($result))
{
$id=$row["id"];
$name=$row["name"];
$date=$row["date"];
$title=$row["title"];
$descr=$row["descr"];
$sdescr=$row["sdescr"];
$pic=$row["pic"];
$link=$row["link"];
$visible=$row["visible"];
$date = date("d.m.Y",$date);
$advnewsarray[] = array("title" => "$title", "date" => "$date", "sdescr" => "$sdescr", "descr" => "$descr", "id"=>"$id", "pic" => "$pic", "link" => "$link");
}
if ((!is_array($advnewsarray)) or (count($advnewsarray)==0)) {$advnewsarray[] = array("title" => "Новостей нет", "date" => date("d.m.Y"), "sdescr" => "Новостей нет. Однако.", "link" => "NULL");}
$smarty->assign("advnewsarray", $advnewsarray);
break;
// ###########################################################################
case "nnews":
// Отдаем Smarty статус=nnews
$smarty->assign("status", "nnews");
// Собираем данные
if (!isset($id)) {$err=1;}
$query="select id,name,descr,pic,link,visible from $gdadvnews where id='$id'";
$result=mysql_query($query);
if (mysql_num_rows($result)==0) {
$err=5;
get404($smarty);
}
if (mysql_num_rows($result)>1) {$err=6;}
if (!$err) {
$row=mysql_fetch_array($result);
$id=$row["id"];
$name=$row["name"];
$descr=$row["descr"];
$pic=$row["pic"];
$link=$row["link"];
$visible=$row["visible"];
// Отдаем данные Samrty
$smarty->assign("id", $id);
$smarty->assign("name", $name);
$smarty->assign("descr", $descr);
$smarty->assign("pic", $pic);
$smarty->assign("link", $link);
$smarty->assign("visible", $visible);
//$srtpos=longlinkpath($link);
} // end of if
break;
// ###########################################################################
case "static":
// Отдаем Smarty статус
$smarty->assign("status", "static");
if (!isset($page)){
include "content/index.inc";
exit();}
// Проверка, что такая страница есть.
// if (count_items("$gdsitepages where filename='$page'") == 0) {header("Status: 404 Not Found"); $page="err404";}
if (count_items("$gdsitepages where filename='$page'") == 0) {
header("HTTP/1.0 404 Not Found");
header("Status: 404 Not Found");
header("Location: /");
exit;
}
$query="select id, name, title, description, keywords, header, menuname, filename, pageorder, parent, visible from $gdsitepages where filename='$page'";
$result=mysql_query($query);
if (mysql_num_rows($result)==0) {$query="select id, name, title, description, keywords, header, menuname, filename, pageorder, parent, visible from $gdsitepages where filename='notfound404'";$result=mysql_query($query);}
if (mysql_num_rows($result)>1)
{
// Страница не найдена!
header("HTTP/1.0 404 Not Found");
header("Status: 404 Not Found");
exit;
}
if ($err == 0) {
$row=mysql_fetch_array($result);
$id=$row["id"];
$name=$row["name"];
$title=$row["title"];
$description=$row["description"];
$keywords=$row["keywords"];
$header=$row["header"];
$menuname=$row["menuname"];
$filename=$row["filename"];
$pageorder=$row["pageorder"];
$parent=$row["parent"];
$visible=$row["visible"];
$smarty->assign("title", $title);
$smarty->assign("description", $description);
$smarty->assign("keywords", $keywords);
$smarty->assign("header", $header);
$smarty->assign("contentfile", "../content/" . $filename . ".inc");
$smarty->assign("filename", $filename);
//Отдаем KeyVisual пра- пра- ... родителя
$tmp_parent = getrootparent_pages($id);
$smarty->assign("rootparent", $tmp_parent);
// $tmp_kv = getfieldbyquery($gdsitepages,"filename","id='$tmp_parent'");
// откусываем приставку языка
// if ((substr($tmp_kv,-4) == "_eng") || (substr($tmp_kv,-4) == "_dch")) {$tmp_kv = substr($tmp_kv,0,-4);}
// $smarty->assign("keyvisual", $tmp_kv);
}
break;
// ###########################################################################
// ###########################################################################
case "dosearch":
// Отдаем Smarty статус
$smarty->assign("status", "dosearch");
$smarty->assign("header", "Результаты поиска");
$smarty->assign("title", "Результаты поиска");
$smarty->assign("description", "Результаты поиска");
$smarty->assign("keywords", "Результаты поиска");
$articles = array();
$searchtext = substr($searchtext,0,64);
$searchtext = neutralize($searchtext);
$searchtext = preg_replace("/[^-_a-zA-Zа-яА-Я0-9\s]/", " ", $searchtext);
$searchtext = trim(preg_replace("/s([^s]{1,2})s/", " ", ereg_replace("[ ]+", " "," $searchtext ")));
$searchtext = ereg_replace("[ ]+", " ", $searchtext);
$searchtext = trim($searchtext);
$stat = array();
$found_pages = array();
$word = explode(" ", $searchtext);
while (list($k, $v) = each($word)) {
if (strlen($v)>2){
$v_count = 0;
$v_p_count = 0;
$result=mysql_query("SELECT id,page_id,word,count FROM $gdpageindex WHERE word LIKE '%$v%'");
while (list ($c_id, $c_page_id, $c_word, $c_count) = mysql_fetch_row ($result)) {
$v_count += $c_count;
$v_p_count++;
if (isset($found_pages[$c_page_id])){$found_pages[$c_page_id] += $c_count;}
else {$found_pages[$c_page_id] = $c_count;}
}
$stat[]="\"$v\" найдено в ". $v_count . " местах
";
}
else {
$stat[]="\"$v\": Слово должно быть длиной не менее чем 3 символа.
";
}
}
$word_stats = "Всего страниц: " . count($found_pages) . "
Статистика слов:
". implode("", $stat). "
";
$fnd_pages = array();
foreach($found_pages as $k => $v){
$filename = getfieldbyquery("$gdsitepages","filename","id='$k'");
$fullfilename = "http://$HTTP_HOST/$filename" . ".html";
$title = getfieldbyquery("$gdsitepages","title","id='$k'");
$descr = getfieldbyquery("$gdsitepages","description","id='$k'");
$fnd_pages[] = array(
"pid" => "$k",
"title" => "$title",
"filename" => "$filename",
"fullfilename" => "$fullfilename",
"descr" => "$descr",
"count" => "$v");
}
//$smarty->assign("status", "debug");
$smarty->assign("word_stats", $word_stats);
//$smarty->assign("found_pages", $found_pages);
if (count($fnd_pages)) {
usort($fnd_pages,"fnd_pages_cmp");
$smarty->assign("fnd_pages", $fnd_pages);
}
else {
$fnd_pages = 0;
$smarty->assign("fnd_pages", $fnd_pages);
}
unset($stat, $fnd_pages);
break;
// ###########################################################################
// ###########################################################################
case "sitemap":
break;
} // end of Switch
// Читаем дерево страниц со ссылками
/*
$submenuarray["name"] = compilepagestree2select(0,"N"," ","· ","menuname","No"); // Компилируем дерево в массив для Smarty
foreach ($submenuarray["name"] as $menuid => $menuitem) {
$submenuarray["name"][$menuid] = substr($menuitem,18);
}
$submenuarray["link"] = compilepagestree2select(0,"N","","","filename","No");
$smarty->assign("submenuarray", $submenuarray);
*/
// Чтение, выбор и назначение новостей
$newsarray = array();
$query = "SELECT id, name, date, title, keywords, text, link, keyv, visible from $gdsitenews where visible='Y' order by date desc limit $max_news";
$result=mysql_query($query);
while($row=mysql_fetch_array($result))
{
$id=$row["id"];
$name=$row["name"];
$date=$row["date"];
$title=$row["title"];
$nkeywords=$row["keywords"];
$text=$row["text"];
$link=$row["link"];
$keyv=$row["keyv"];
$visible=$row["visible"];
$date = date("d.m.Y",$date);
$newsarray[] = array("title" => "$title", "date" => "$date", "text" => "$text", "link" => "$link");
}
if ((!is_array($newsarray)) or (count($newsarray)==0)) {$newsarray[] = array("title" => "Новостей нет", "date" => date("d.m.Y"), "text" => "Новостей для данного раздела нет.", "link" => "NULL");}
$smarty->assign("newsarray", $newsarray);
// Чтение, выбор и назначение advновостей
$advnewsarray = array();
$query = "SELECT id, name, title, descr, sdescr, pic, link, visible from $gdadvnews where visible='Y' order by id desc limit $max_news";
$result=mysql_query($query);
while($row=mysql_fetch_array($result))
{
$id=$row["id"];
$name=$row["name"];
$date=$row["date"];
$title=$row["title"];
$descr=$row["descr"];
$sdescr=$row["sdescr"];
$pic=$row["pic"];
$link=$row["link"];
$visible=$row["visible"];
$date = date("d.m.Y",$date);
$advnewsarray[] = array("title" => "$title", "date" => "$date", "sdescr" => "$sdescr", "descr" => "$descr", "id"=>"$id", "pic" => "$pic", "link" => "$link");
}
if ((!is_array($advnewsarray)) or (count($advnewsarray)==0)) {$advnewsarray[] = array("title" => "Новостей нет", "date" => date("d.m.Y"), "sdescr" => "Новостей нет. Однако.", "link" => "NULL");}
$smarty->assign("advnewsarray", $advnewsarray);
$advnewsarrayal = array();
$query = "SELECT id, name, title, descr, sdescr, pic, link, visible from $gdadvnews where visible='Y' order by id desc";
$result=mysql_query($query);
while($row=mysql_fetch_array($result))
{
$id=$row["id"];
$name=$row["name"];
$date=$row["date"];
$title=$row["title"];
$descr=$row["descr"];
$sdescr=$row["sdescr"];
$pic=$row["pic"];
$link=$row["link"];
$visible=$row["visible"];
$date = date("d.m.Y",$date);
$advnewsarrayal[] = array("title" => "$title", "date" => "$date", "sdescr" => "$sdescr", "descr" => "$descr", "id"=>"$id", "pic" => "$pic", "link" => "$link");
}
if ((!is_array($advnewsarrayal)) or (count($advnewsarrayal)==0)) {$advnewsarrayal[] = array("title" => "Новостей нет", "date" => date("d.m.Y"), "sdescr" => "Новостей нет. Однако.", "link" => "NULL");}
$smarty->assign("advnewsarrayal", $advnewsarrayal);
// Определяем строку положения страницы на сайте
$strpos = "";
if (!isset($parent)) {$parent=0;}
$pparent = $parent;
$quitflag = 0;
while ($quitflag != 1) {
$query = "SELECT id,menuname,filename,parent,visible from $gdsitepages where id='$pparent'";
$result = mysql_query($query);
$row=mysql_fetch_array($result);
$pid = $row["id"];
$pmenuname = $row["menuname"];
$pfilename = $row["filename"];
$pparent = $row["parent"];
$pvisible = $row["visible"];
if ($pid == 0) {$quitflag = 1;}
else {$strpos = " > $pmenuname" . $strpos;}
} // of while
$strpos = "Главная" . $strpos;
// Передаем строку положения страницы на сайте Smarty
$smarty->assign("strpos", $strpos);
// Читаем меню
$menuarray = array();
/*
$menuarray[] = array(
"id" => "0",
"menuname" => "Наш анонс",
"filename" => "announces",
"parent" => "0"
);
*/
$query = "select id, name, title, description, keywords, header, menuname, filename, pageorder, parent, visible from $gdsitepages where visible='Y' order by pageorder";
$result=mysql_query($query);
while($row=mysql_fetch_array($result)) {
$id=$row["id"];
$name=$row["name"];
$title=$row["title"];
$description=$row["description"];
$keywords=$row["keywords"];
$header=$row["header"];
$menuname=$row["menuname"];
$filename=$row["filename"];
$pageorder=$row["pageorder"];
$parent=$row["parent"];
$visible=$row["visible"];
if($parent == 0) {$menuname = strcut($menuname,25);}
$menuarray[] = array(
"id" => "$id",
"menuname" => "$menuname",
"filename" => "$filename",
"parent" => "$parent"
);
}
$smarty->assign("menuarray", $menuarray);
// Функция сравнения страниц при поиске
function fnd_pages_cmp($a, $b) {
// global $sort,$sortdir;
$result = 0;
if ($a["count"] == $b["count"])
{$result = 0;}
else {
if($a["count"] < $b["count"]) {$result = 1;}
else {$result = -1;}
}
return $result;
} // end of fnd_pages_cmp function
// вывод ошибок
$strerr = "";
switch($err)
{
case "0": break;
case "1": $strerr = "Страница не найдена."; break;
case "5": $strerr = "Записей с таким ID не найдено."; break;
default: send_crush_info("Непредвиденная ситуация, переменная \$err прияняла незарезервированное значение: $err."); break;
}
$smarty->assign("strerr", $strerr);
// отправляем все в пасть Smarty
if ($status=="links" || $status=="addl" || $status=="addlinks") {$smarty->display("indexlinks.tpl");} else {$smarty->display("index.tpl");}
?>