Разработка комплекса централизованного управления публикациями потока материалов поступающих из Министерства образования хабаровского края для публикации на сайтах поддерживаемых Хабаровским региональным ресурсным центром, страница 13

Имя поля

Тип

Описание

Примечание

ID

bigint

Идентификатор категории

Category_Name

varchar(255)

Название категории

Parent_ID

bigint

Идентификатор родительской категории

Если это корневая категория то Parent_ID равен 0


ПРИЛОЖЕНИЕ B.

Пример использования комплекса хабаровским краевым образовательным порталом «Пайдейа».

Для автоматической синхронизации с базой данных комплекса был разработан скрипт на языке PHP 5, расположенный в месте доступном только внутренним процессам сервера и запускающийся автоматически два раза в день в 13-00 и в 19-00 ч.

<?PHP

//Настраиваем соединения с базами данных

require_once("../base.php");

//соеденение с БД комплекса

mssql_connect( 'MSSQL', 'moxk_moxk', '*********');

mssql_select_db('moxk');

//соеденение с БД сайта

mysql_connect('','administrator','************');

mysql_select_db('abc');

mysql_query("SET CHARACTER SET cp1251")or die("CH");

//получаем список модифицированных новостей

$msres=mssql_query("EXEC spu_GetModifyRecord 'news', 'abc'");

//обработка списка модифицированных новостей

while ($msrow=mssql_fetch_array($msres)) {

$Type=$msrow["Type"];

if($msrow["Type"]==1) $Type=2;

if($msrow["Type"]==2) $Type=1;

//Обработка произошедшего изменения

switch ($msrow["Change_Action"]){

//Добавленна новая новость

case 0:{

//Добавляем новость в БД сайта использую класс для ведения //новостей.

$news=new NewsConduct();

$news->UserLogin=0;

$news->MOXK_ID=$msrow["ID"];

$news->Doc_ID=$msrow["Doc_ID"];

$news->Date=$msrow["Date"];

$news->EditDate=$msrow["Create_Date"];

$news->EndDate=$msrow["End_Date"];

$news->Caption=$msrow["Title"];

$news->Source=$msrow["Source"];

$news->Href=$msrow["URL"];

$news->N_Type=$Type;

$news->Text=$msrow["Content"];

$news->Insert();

break;

}

case 1:{

//новость изменена

$myres=mysql_query("SELECT * FROM News WHERE MOXK_ID=".$msrow["ID"]);

//Если ее еще нет в базе то добавляем ее туда использую класс //для ведения новостей.

if(!$myrow=mysql_fetch_array($myres)){

$news=new NewsConduct();

$news->UserLogin=0;

$news->MOXK_ID=$msrow["ID"];

$news->Doc_ID=$msrow["Doc_ID"];

$news->Date=$msrow["Date"];

$news->EditDate=$msrow["Create_Date"];

$news->EndDate=$msrow["End_Date"];

$news->Caption=$msrow["Title"];

$news->Source=$msrow["Source"];

$news->Href=$msrow["URL"];

$news->N_Type=$Type;

$news->Text=$msrow["Content"];

$news->Insert();

break;

}

//Иначе редактируем ее использую класс для ведения

//новостей.

else{

$news=new NewsConduct();

$news->UserLogin=0;

$news->MOXK_ID=$msrow["ID"];

$news->Doc_ID=$msrow["Doc_ID"];

$news->Date=$msrow["Date"];

$news->EditDate=$msrow["Create_Date"];

$news->EndDate=$msrow["End_Date"];

$news->Caption=$msrow["Title"];

$news->Source=$msrow["Source"];

$news->Href=$msrow["URL"];

$news->N_Type=$Type;

$news->Text=$msrow["Content"];

$news->Edit();

break;

}

break;

}

//Удаляем удаленные новости использую класс для ведения новостей.

case 2:{

$news=new NewsConduct();

$news->UserLogin=0;

$news->MOXK_ID=$msrow["ID"];

$news->Delete();

break;

}

}

//Сигнализируем об обработке новости

mssql_query("EXEC spu_SetProcessRecord 'news', 'abc', '".$msrow["ID"]."'");

}

//Массив конвертации кодов категорий, так как на сайте

//пайдейя категории появились раньше чем в БД комплекса, то //категории, созданные раньше этого момента, имеют другие коды.

$bigcat[100]=38;

$podcat[100]=11;

$bigcat[101]=38;

$podcat[101]=8;

$bigcat[102]=38;

$podcat[102]=44;

$bigcat[103]=38;

$podcat[103]=10;

$bigcat[104]=38;