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