define (array ('body' => 'all_book.tpl')); $id = $_GET['id']; // ловим от Апача или из GET if ($id=='') { // Если Апач не отдал, но id= в GET есть $u = explode ("/", $_SERVER['REQUEST_URI']); // print_r ($u); parse_str (eregi_replace ('\?', '', $u [2])); // '?' убрать - а то первый парам естся // if ($id=='') $id = $u[2]; при такой строке первая ловля $_GET['id'] в начале просто не нужна unset ($u); } $id = eregi_replace ('/' , '', $id); // убираем хвостовой/ $filter_all = "WHERE (value regexp 'history_$') ORDER BY id"; if (isset($id) && $id !='') { $filter = "WHERE id=$id and value regexp 'history_$'"; }else{ $filter = $filter_all; } /* Можно организовать двойственный доступ, одно другому не мешает, в общем: по id (готовые ссылки из _оглавления_, а также из результатов _поиска_) по page (вызов через _page_bar_), но здесь надо правильно синхронизироваться с LIMIT */ $tpl->assign('PAGE_TITLE', 'Справочная: история: дайджест Городка'); $tpl->assign ('KEY_WORDS', 'история факты развитие справка справочное бюро'); $tpl->define_dynamic ('chapters_row', 'body'); $tpl->define_dynamic ('contents', 'body'); $chapt = mysql_query ("SELECT * FROM g_texts $filter_all"); $chapt_cnt = mysql_num_rows ($chapt); if ($chapt_cnt === 0) { $reason = 204; exit (require_once $_SERVER['DOCUMENT_ROOT'].'/chancellery/index.php'); } // либо единственный вариант, либо первый из списка вариантов $article = mysql_fetch_array (mysql_query ("SELECT id,title,text FROM g_texts $filter")); /*if (!$article) { $reason = 204; exit (require_once $_SERVER['DOCUMENT_ROOT'].'/chancellery/index.php'); }*/ $tpl->assign( array( "CHAPTER_TITLE" => $article ['title'], "CHAPTER_TEXT" => nl2br ($article ['text']), ) ); $tpl->assign ('CONTENTS_TITLE', 'Оглавление'); while ($chapters = mysql_fetch_array ($chapt)) { $title = htmlspecialchars ($chapters ['title']); // здесь $article [id] в любом случае правильный, даже при пустом $id $link = ($chapters ['id'] == $article ['id']) ? ''.$title.'' : ''.$title.''; $tpl->assign('CONTENT_ITEM', $link); $tpl->parse ('ft_body', '.chapters_row'); } $tpl->parse('ft_head', 'head'); $tpl->parse('ft_body', 'body'); $tpl->parse('ft_foot', 'foot'); $tpl->FastPrint('ft_head'); $tpl->FastPrint('ft_body'); $tpl->FastPrint('ft_foot'); ?>