//СКРИПТ ВЫВОДА НА ЭКРАН СООБЩЕНИЯ ИЗ КРУГЛОГО СТОЛА //ВЕРСИЯ 3: //****Функции //запись темы общения в БД //запись заголовка сообщения в БД //запись содержимого сообщения в БД //подсчет статистики просмотров //****Возможности интерфейса //вывод из файла сообщения на экран, //постраничный вывод. //сортировка в обратной последовательности //версия4: планов пока нет... //в рамках этой версии сделать: //Дополнительные задачи: // 1. отслеживать повторное (в данной сессии открытие данного сообщения) /*формат бд Поле Тип Атрибуты Ноль По умолчанию Дополнительно Действие id_record int(11) Нет auto_increment razdel_id int(11) theme_id int(11) - ссылка на bb_msg_razdel id_newsprog int(11) msg_subject varchar(200) Нет date_create datetime Нет 0000-00-00 00:00:00 date_change datetime date_lastview - дата последнего просмотра... counter_view - количество просмотров post_number (int) - количество "постов" в теме таблица со справочником разделов CREATE TABLE `bb_msg_razdel` ( `id_record` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 'bb_number' INT, -- номер доски объявлений `prog_index` VARCHAR( 15 ) NOT NULL , `NameRazdel` VARCHAR( 100 ) NOT NULL ) TYPE = MYISAM ; CREATE TABLE `bb_msg_body` ( `record_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `owner_id` INT NOT NULL , `number_in_seq` INT NOT NULL , `date_rec` DATETIME NOT NULL , `text_msg` TEXT NOT NULL ) */ //сделать возможность вставки гиперссылок... //подключаем нужные библиотеки require('utilities.inc'); //подключаем файлик с утилитами require('bb_include.inc'); require('bb_temp.inc'); //только для DEVEL-версии $dblink=db_connect(); //подключаемся к серверу БД //определяем название скрипта $thispagenamefull=$_SERVER["REQUEST_URI"]; $thispagename=$_SERVER["SCRIPT_NAME"]; //тепер определяем что хочет увидеть пользователь: if (isset($_REQUEST["r"])) //сначала пробуем по "новому" { $info_razdel=(int)$_REQUEST["r"]; //сразу приводим к числовому виду... $info_group=$_REQUEST["t"]; $info_group_new=$_REQUEST["tt"]; if (isset($info_group_new)) { $returnarray=bbrubrika_get_sql($dblink, $info_razdel, $info_group_new, ""); $info_group=$returnarray["rubrika_id_old"]; } $info_msgid=(int)$_REQUEST["m"]; //сразу приводим к числовому виду... $post_order_direction=(int)$_REQUEST["ord"]; $post_pagenumber=(int)$_REQUEST["pag"]; } else { $thispagequerystring=$_SERVER["QUERY_STRING"]; $pos1=strpos($thispagequerystring,'+'); //первый разделитель $pos2=strpos($thispagequerystring,'_'); //второй разделитель $info_razdel=(int)substr($thispagequerystring,0,$pos1); $info_group=substr($thispagequerystring,$pos1+1, $pos2-$pos1-1); $info_msgid=(int)substr($thispagequerystring,$pos2+1); $post_order_direction=0; $post_pagenumber=0; } switch ($info_razdel) { case 3: $workmode=2; //это нужно для загрузки из файлов. 2 соответствует 3 разделу break; case 5: $workmode=1; //это нужно для загрузки из файлов. 1 соответствует 5 разделу break; default: die('unsupported razdel('.$info_razdel.')'); } if ($post_pagenumber==0) //если номер страницы не указан, то считаем что $post_pagenumber=1; //это у нас первая страница $AREA['workmode']=$workmode; $AREA['workmode_subtype']=2; //подрежим сообщения - просмотр текста //теперь надо считать в память сообщение $AREA['title']='Круглый стол (Православная Жизнь)'; $txtarray=array(); //для совместимости со старым $info_msg_array=getMsg_info_sql($dblink, $info_razdel, $info_group, $info_msgid, $post_order_direction, $post_pagenumber); //извлекаем из БД сообщение //для совместимости со старым заполняем "старый" массив //$txtarray[0] - эта переменная не используется $txtarray[1]=$info_msg_array["date_refresh"]; //$txtarray[2] - эту переменную уже не используем. переписан кусок кода - заголовок сообщения $txtarray[3]=$info_msg_array["msg_body_raw"]; //$txtarray[4] - эту переменную уже не используем. переписан кусок кода - флаг того что найдено сообщение в БД //Присвоения. $thismsg['subjectname']=$info_msg_array["msg_subject"]; $thismsg["msg_post_count"]=$info_msg_array["msg_post_count"]; $thismsg["msg_body_by_post"]=$info_msg_array["msg_body_by_post"]; $thismsg["header"]=$info_msg_array["header"]; $foundmsg_old=$info_msg_array["found_flag"]; $thismsg['theme_id']=0; //извлекаем название темы (по идентификатору темы) $info_group_array=bbrubrika_get($dblink, $info_razdel, $info_group); if (count($info_group_array)>0) { $AREA['subtitle']="".$info_group_array["rubrika_name"].""; $thismsg['theme_id']=$info_group_array["record_id"]; // $AREA['subtitle'].="(".$thismsg['theme_id'].")"; //отладочный код } if ($foundmsg_old==0) $txtarray[3]='Выбранное вами сообщение в БД не обнаружено'; $AREA['content'].="