Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом»


Скачать 1.47 Mb.
Название Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом»
страница 29/29
Тип Диплом
rykovodstvo.ru > Руководство эксплуатация > Диплом
1   ...   21   22   23   24   25   26   27   28   29

Приложение Д. Исходные коды файла init.php




CPageOption::SetOptionString("main", "nav_page_in_session", "N");

/**

* bool write_access_log(string filepath) - функция фиксирует запрошенный адрес в специальном файле

* @param string filepath - файл, в который нужно записать данные

* @return true в случае успешного завершения работы функции, false в противном случае

*/

function write_access_log($filepath)

{

if(SITE_SERVER_NAME == ""){

return false;

}

global $APPLICATION;

//получаем URL текущей запрошенной страницы, дополняя ее в начале именем сервера

$current_uri = "http://".SITE_SERVER_NAME.ToLower(

$APPLICATION->GetCurPageParam("", array(), true));

//$filepath = $_SERVER["DOCUMENT_ROOT"]."/".$filepath;

//флаг, указывающий, нужно ли записать URL в файл

$can_write = true;

//если файл существует

if(@file_exists($filepath)){

$fp_read = @fopen($filepath, "r");

if(!$fp_read){

fclose($fp_read);

return false;

}

//читаем его содержимое по строкам

while(!feof($fp_read)){

$exist_link = trim(fgets($fp_read));

//если URL уже есть в файле, отменяем запись

if(strcasecmp($exist_link, $current_uri) == 0){

$can_write = false;

break;

}

}

fclose($fp_read);

}

//пишем URL в файл

if($can_write){

if(@file_exists($filepath)){

//добавляем

$fp_append = @fopen($filepath, "a");

if(filesize($filepath) > 0){

$str = PHP_EOL.$current_uri;

}

else{

$str = $current_uri;

}

}

else{

//или создаем новый файл

$fp_append = @fopen($filepath, "w");

$str = $current_uri;

}

fwrite($fp_append, $str);

fclose($fp_append);

}

return true;

}

write_access_log($_SERVER["DOCUMENT_ROOT"]."/access_log.log");

/**

* Далее определяются константы типов и идентификаторов информационных блоков, используемых в проекте

*/
/**

* тип информационных блоков "Игры"

*/

define("IB_TYPE_GAMES", "ib_games");

/**

* тип информационных блоков "Обзоры"

*/

define("IB_TYPE_REVIEWS", "ib_reviews");

/**

* Информационный блок "Игры" => "Игры"

*/

define("IB_GAMES_PC", 1);

/**

* Информационный блок "Обзоры" => "Обзоры"

*/

define("IB_REVIEWS_PC", 2);
/**

* Далее определяются символьные коды свойств, используемых в обработчике добавление ИБ "Обзоры" и ИБ "Игры"

*/

/**

* Свойство "Оценка" ИБ "Обзоры"

*/

define("REVIEWS_PC_PROP_GAME", "GAME_ID");

/**

* Свойство "Метаоценка" ИБ "Игры"

*/

define("GAMES_PC_PROP_METAMARK", "MAIN_METAMARK");

/**

* Свойство "Оценка" ИБ "Обзоры"

*/

define("REVIEWS_PC_PROP_MARK", "MARK");
/**

* Указываем имя файла, в которое будет писать логи функция AddMessage2Log

*/

define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/init.log");

/**

* Текст при возникновении ошибки в работе базы данных

*/

define("DB_ERROR_TEXT", "Ошибка работы с данными");

/**

*/

define("CACHE_TIME", 3600);

/**

* Указываем пороговые минимальные значения для секторов метаоценок

*/

define("MIN_METAMARK_GREEN", 75);

define("MIN_METAMARK_YELLOW", 50);

/**

* Имя переменной, включающих ряд компонентов в режиме аякс-запроса

*/

define("AJAX_REQUEST_MODE_PARAM", "ajax_request_mode");

//список месяцев на русском языке

$arMonthNames = array(

1 => array("month" => "Январь", "month_a" => "января"),

2 => array("month" => "Февраль", "month_a" => "февраля"),

3 => array("month" => "Март", "month_a" => "марта"),

4 => array("month" => "Апрель", "month_a" => "апреля"),

5 => array("month" => "Май", "month_a" => "мая"),

6 => array("month" => "Июнь", "month_a" => "июня"),

7 => array("month" => "Июль", "month_a" => "июля"),

8 => array("month" => "Август", "month_a" => "августа"),

9 => array("month" => "Сентябрь", "month_a" => "сентября"),

10 => array("month" => "Октябрь", "month_a" => "октября"),

11 => array("month" => "Ноябрь", "month_a" => "ноября"),

12 => array("month" => "Декабрь", "month_a" => "декабря")

);
//подключение модуля "Информационные блоки"

CModule::IncludeModule("iblock");
//обработчики

AddEventHandler("iblock", "OnAfterIblockElementAdd", "add_review_handler");

AddEventHandler("iblock", "OnAfterIblockElementUpdate", "add_review_handler");

AddEventHandler("iblock", "OnBeforeIblockElementDelete", "delete_review_handler");

AddEventHandler("iblock", "onBeforeIblockElementAdd", "check_element_code");

AddEventHandler("iblock", "onBeforeIblockElementUpdate", "check_element_code");

/**

* bool delete_review_handler(int ID) - Обработчик события удаления элемента информационного блока "Обзоры" => "PC"

* @author dda

* @param int ID Идентификатор удаляемого элемента информационного блока

* @return true в случае успеха, false в противном случае

*/

function delete_review_handler($ID)

{

AddMessage2Log("Вызван обработчик delete_review_handler события OnAfterIblockElementDelete\n");

$db_current_element = CIBlockElement::GetByID($ID);

$ob_current_element = $db_current_element->GetNextElement();

//получаем поля элемента

$arFields = $ob_current_element->GetFields();

//и свойства

$arProperties = $ob_current_element->GetProperties();

//проверяем принадлежность добавляемого элемента к инфоблоку "Обзоры"

//и выходим, если это не так

if($arFields["IBLOCK_ID"] != IB_REVIEWS_PC){

AddMessage2Log("Обработчик завершил работу. Причина - элемент не того ИБ\n");

//return $arFields;

return true;

}

//запрос на получение свойств

if(!array_key_exists(REVIEWS_PC_PROP_GAME, $arProperties)){

return false;

}

$game_id = intval($arProperties[REVIEWS_PC_PROP_GAME]["VALUE"]);

//проверяем, есть ли элемент с таким ID=$game_id и, если нет, выходим

$db_game_check = CIBlockElement::GetByID($game_id);

if($db_game_check->SelectedRowsCount() <= 0){

AddMessage2Log("Обработчик завершил работу. Нет элемента с ID=".$game_id);

return false;

}

//получаем значения для других уже существующих обзоров с таким ID=$game_id

$review_filter = array(

"PROPERTY_".REVIEWS_PC_PROP_GAME => $game_id

);

$review_select = array(

"PROPERTY_".REVIEWS_PC_PROP_MARK,

);

$db_reviews_exists = CIBlockElement::GetList(array(), $review_filter, false, false, $review_select);

//считаем сумму оценок и среднее арифметическое

$summ_mark_for_game = 0 - $arProperties[REVIEWS_PC_PROP_MARK]["VALUE"];

while($ar_reviews_exists =$db_reviews_exists->GetNext()){

$summ_mark_for_game += $ar_reviews_exists["PROPERTY_".REVIEWS_PC_PROP_MARK."_VALUE"];

}

//записываем это значение в свойство с кодом GAMES_PC_PROP_METAMARK для элемента с ID=$game_id

$average = round($summ_mark_for_game/($db_reviews_exists->SelectedRowsCount() - 1));

CIBlockElement::SetPropertyValueCode($game_id, GAMES_PC_PROP_METAMARK, $average); #------- ЗАПРОС 4,5

AddMessage2Log("Обработчик завершил работу. Элементу с ID=".$game_id." в свойство ".GAMES_PC_PROP_METAMARK." записано значение ".$average."\n");

return true;

}

/** bool check_element_code(array &arFields)

* функция - обработчик добавления или изменения документа. Проверяет на валидность символьный код элемента

* @param array arFields - массив с полями элемента. Передается по ссылке

* @return Возвращает true, если символьный код валиден и false, если нет

*/

function check_element_code(&$arFields)

{

global $APPLICATION;

if(!eregi("^[a-zA-Z0-9_]+$", $arFields["CODE"])){

$APPLICATION->throwException("Символьный код может содержать только латинские буквы, цифры и знак \"_\"");

return false;

}

return true;

}

/**

* void add_review_handler(array &arFields) - Обработчик события добавления или изменения элемента информационного блока "Обзоры" => "PC"

* @author dda

* @param array arFields Массив данных добавленного(измененного элемента). Данный массив передается в функцию по ссылке и может быть изменен внутри неё

* @return Возвращаемых значений нет

*/

function add_review_handler(&$arFields)

{

AddMessage2Log("Вызван обработчик add_review_handler события OnAfterIblockElementAdd(Update)\n");

//проверяем принадлежность добавляемого элемента к инфоблоку "Обзоры"

//и выходим, если это не так

if($arFields["IBLOCK_ID"] != IB_REVIEWS_PC){

return;

}

//проверяем, что элемент добавлен и не возникло ошибок

if($arFields["ID"] > 0 && empty($arFields["RESULT_MESSAGE"])){

//запрос на получение свойств

$db_prop = CIBlockElement::GetProperty($arFields["IBLOCK_ID"], $arFields["ID"], array(), array("CODE" => REVIEWS_PC_PROP_GAME));

if($db_prop->SelectedRowsCount() <= 0){

AddMessage2Log("Обработчик завершил работу. нет свойства с кодом ".REVIEWS_PC_PROP_GAME."\n");

return;

}

$fetch = $db_prop->GetNext();

$game_id = intval($fetch["VALUE"]);

//проверяем, есть ли элемент с таким ID=$game_id и, если нет, выходим

$db_game_check = CIBlockElement::GetByID($game_id);

if($db_game_check->SelectedRowsCount() <= 0){

AddMessage2Log("Обработчик завершил работу. Нет элемента с ID=".$game_id);

return;

}

//получаем значения для других уже существующих обзоров с таким ID=$game_id

$review_filter = array(

"PROPERTY_".REVIEWS_PC_PROP_GAME => $game_id

);

$review_select = array(

"PROPERTY_".REVIEWS_PC_PROP_MARK,

);

$db_reviews_exists = CIBlockElement::GetList(array(), $review_filter, false, false, $review_select);

//считаем сумму оценок и среднее арифметическое

$summ_mark_for_game = 0;

while($ar_reviews_exists =$db_reviews_exists->GetNext()){

$summ_mark_for_game += $ar_reviews_exists["PROPERTY_".REVIEWS_PC_PROP_MARK."_VALUE"];

}

//записываем это значение в свойство с кодом GAMES_PC_PROP_METAMARK для элемента с ID=$game_id

$average = round($summ_mark_for_game/$db_reviews_exists->SelectedRowsCount());

CIBlockElement::SetPropertyValueCode($game_id, GAMES_PC_PROP_METAMARK, $average);

AddMessage2Log("Обработчик завершил работу. Элементу с ID=".$game_id." в свойство ".GAMES_PC_PROP_METAMARK." записано значение ".$average."\n");

}

}

/**

* array get_iblock_type_list(array ar_sort) - функция получения списка информационных блоков

* @author dda

* @param array ar_sort - массив вида ("поле_сортировки" => "направление_сортировки"), указывающий, как сортировать список типов информационных блоков

* @return array ar_iblock_type - возвращает список типов информационных блоков

*/

function get_iblock_type_list($ar_sort)

{

$db_iblock_type = CIBlockType::GetList(array("NAME" => "ASC"));

$ar_iblock_type = array();

while($fetch = $db_iblock_type->GetNext()){

if($fetch_lang = CIBlockType::GetByIDLang($fetch["ID"], LANG)){

$ar_iblock_type[$fetch_lang["ID"]] = "[".$fetch_lang["ID"]."] ".$fetch_lang["NAME"];

}

}

return $ar_iblock_type;

}

/**

* array get_iblock_list(string type_id, array ar_sort, bool bActive = true) - функция получения информационных блоков по типу type_id

* @author dda

* @param string type_id - тип информационного блока (идентификатор)

* @param array ar_sort - массив вида ("поле_сортировки" => "направление_сортировки"), указывающий, как сортировать список информационных блоков

* @param bool bActive - флаг, указывющий, выбирать ли только активные инфоблоки. Необязательный, по умолчанию true, т.е. выбирать только активные

* @return array ar_iblock - возвращает список информационных блоков

*/

function get_iblock_list($type_id, $ar_sort, $bActive = true, $field = "ID")

{

$arFilter = array(

"TYPE" => $type_id,

);

if($bActive){

$arFilter["ACTIVE"] = "Y";

}

$db_iblock = CIBlock::GetList($ar_sort, $arFilter);

$ar_iblock = array();

while($fetch = $db_iblock->GetNext()){

$ar_iblock[$fetch[$field]] = "[".$fetch[$field]."] ".$fetch["NAME"];

}

return $ar_iblock;

}

/**

* void prepare_params(&arParams)

* фунцкия обрабатывает массив $arParams, приходящий в файл component.php компонента (удаление лишних пробелов, экранирование и т.д.)

* @author dda

* @param arParams - массив параметров, передается по ссылке

* @return функция ничего не возвращает

*/

function prepare_params(&$arParams)

{

foreach($arParams as $key => $param){

if(!is_array($param)){

$arParams[$key] = trim($param);

}

else{

foreach($param as $p_key => $p_param){

$param[$p_key] = trim($p_param);

}

$arParams[$key] = $param;

}

}

}

/**

* bool is_ajax_request()

* в функции проверяется, запущена ли страница в режиме ajax-запроса

* @return true в случае, если страница запущена в режиме ajax-запроса и false в противном случае

*/

function is_ajax_request()

{

return (isset($_REQUEST[AJAX_REQUEST_MODE_PARAM]) && $_REQUEST[AJAX_REQUEST_MODE_PARAM] == "Y");

}

/**

* string get_ajax_param()

* функция возвращает имя переменной, отвечающей за запуск страницы в режиме ajax-запроса

*/

function get_ajax_param()

{

return defined(AJAX_REQUEST_MODE_PARAM) ? AJAX_REQUEST_MODE_PARAM : "ajax_request_mode";

}

/** array get_parts_reg(string value[,string pattern]) - функция обрабатывает строку <название> [значение] и возвращает части в

* виде массива регулярного выражения или false в случае ошибки

* @param string value - строка, подлежащая разбору

* @param string pattern - регуляное выражение. Необязательное, по умолчанию - "/\[\b(\d+)(.)\]/i"

*/

function get_parts_reg($value, $pattern = "/\[\b(\d+)(.)\]/i")

{

//ищем последнее вхождение открывающей значение скобки

$skob_pos = mb_strpos($value, "[", 0, LANG_CHARSET);

//если скобка не найдена, выходим

if($skob_pos === false){

return false;

}

//вырезаем 2 части - текст и значение

$text = trim(mb_substr($value, 0, $skob_pos, LANG_CHARSET));

$val = trim(mb_substr($value, $skob_pos, (mb_strlen($value, LANG_CHARSET) - mb_strlen($text, LANG_CHARSET)), LANG_CHARSET));

//обрабатываем значение - проверяем наличие правильного шаблона

if(!preg_match($pattern, $val, $matches)){

return false;

}

return array("matches" => $matches, "text" => $text);

}

/** int get_max_day(int month, int year) - функция возвращает максимальный день в зависимости от года и месяца

* @param int current_month - месяц

* @param int current_year - год

* @return возвращает число месяца

*/

function get_max_day($current_month, $current_year)

{

if($current_month == 2){

if($_REQUEST["year"] % 4 == 0){

$top_day = 29;

}

else{

$top_day = 28;

}

}

elseif($current_month < 8){

if($current_month % 2 == 0){

$top_day = 30;

}

else{

$top_day = 31;

}

}

elseif($current_month >= 8){

if($current_month % 2 != 0){

$top_day = 30;

}

else{

$top_day = 31;

}

}

return $top_day;

}

?>


1   ...   21   22   23   24   25   26   27   28   29

Похожие:

Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Методические указания по выполнению лабораторной работы №13 для студентов...
Установка web-интерфейса к серверу Mysql в Linux. Методические указания по выполнению лабораторной работы №13 для студентов специальности...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Курсы валют 11 Глава Каталог 13
Управление сайтом". При составлении документа подразумевалось, что разработчик владеет терминологией и основными приемами работы...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Поддержка сайта
Автор не обладает глубокими знаниями возможностей 1с битрикс управление сайтом. Требования могут меняться в зависимости от возможности/невозможности,...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Виталий Давудов Информационные системы и технологии
Управление людьми, Сетевые технологии, Cisco ccnp, Системы виртуализации, Проектирование сетей, Телекоммуникации, Администрирование...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Программа по дисциплине «Программирование для Интернет»
Учебная программа по дисциплине «Программирование для Интернет» составлена в соответствии с требованиями гос впо. Предназначена для...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Руководство по использованию технологии ajax содержание
Технология ajax в системе «1с-битрикс: Управление сайтом» реализована на двух уровнях
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Учебное пособие Новосибирск 2017
Учебное пособие предназначено для студентов технических факультетов, обучающихся по направлениям подготовки 09. 03. 02 -информационные...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Руководство по интеграции. Быстрый старт. Содержание
Битрикс: Управление сайтом. В документе подробно рассматривается процедура интеграции продукта в новый или уже существующий сайт....
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Роман Голованов Организация внедрения и сопровождения crm и bi систем
Управление людьми, Построение команды, Информационные технологии, Управление проектами, Управление it-услугами, Ведение переговоров,...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Пояснительная записка Данная рабочая тетрадь предназначена для студентов...
Огсэ. 03 Английский язык для студентов, обучающихся по специальности 230401 «Информационные системы» (по отраслям)
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Литература Автоматизированные информационные системы и технологии...
Автоматизированные информационные системы и технологии в экономике и управлении: Учебник/Под ред. Трофимова В. В.–М.: Юрайт, 2012.–...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Руководство по инсталляции Содержание
В документе рассматриваются процедуры установки ознакомительной и коммерческой версии продукта; установки системы с помощью "Битрикс:...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Дипломная работа разработка макета преобразователя интерфейсов
Разработка макета преобразователя интерфейсов Ethernet-rs232 для системы контроля и
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Выпускная квалификационная работа: на тему: «Разработка концепции...
«Разработка концепции кадровой политики предприятия на основе анализа системы управления»
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Должностная инструкция менеджера по информационным технологиям (it-менеджера)
На должность it-менеджера назначается лицо, имеющее (высшее; среднее) профессиональное (техническое) образование (информационные...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» icon Практическая работа 1 «Создание алгоритма разработки web-сайта»
Практическая работа 7-8 «Дополнительные элементы языка html для форматирования web-страниц»

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск