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





НазваниеДипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом»
страница21/29
Дата публикации10.11.2014
Размер1.47 Mb.
ТипДиплом
100-bal.ru > Информатика > Диплом
1   ...   17   18   19   20   21   22   23   24   ...   29

Приложение В. Исходные коды программных компонентов

В.1. Компонент games.calendar


Файл component.php

//компонент

if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

try

{

//массив с именами месяцев

global $arMonthNames;

//обрабатываем массив $arParams

prepare_params($arParams);

//проверяем параметры

if(strlen($arParams["IBLOCK_TYPE"]) <= 0){

$arParams["IBLOCK_TYPE"] = IB_TYPE_GAMES;

}

$arParams["COUNT"] = intval($arParams["COUNT"]);

if($arParams["COUNT"] <= 0){

$arParams["COUNT"] = 10;

}

if(strlen($arParams["SORT_BY1"]) <= 0){

$arParams["SORT_BY1"] = "PROPERTY_MAIN_METAMARK";

}

if($arParams["SORT_ORDER1"] != "DESC"){

$arParams["SORT_ORDER1"] = "ASC";

}

if(strlen($arParams["SORT_BY2"]) <= 0){

$arParams["SORT_BY2"] = "NAME";

}

if($arParams["SORT_ORDER2"] != "DESC"){

$arParams["SORT_ORDER2"] = "ASC";

}

$arParams["MIN_METAMARK_YELLOW"] = intval($arParams["MIN_METAMARK_YELLOW"]);

$arParams["MIN_METAMARK_GREEN"] = intval($arParams["MIN_METAMARK_GREEN"]);

if($arParams["MIN_METAMARK_YELLOW"] <= 0){

$arParams["MIN_METAMARK_YELLOW"] = 50;

}

if($arParams["MIN_METAMARK_GREEN"] <= 0){

$arParams["MIN_METAMARK_GREEN"] = 75;

}

//параметры сортировки

$arSortOrder = array(

$arParams["SORT_BY1"] => $arParams["SORT_ORDER1"],

$arParams["SORT_BY2"] => $arParams["SORT_ORDER2"],

"ID" => "DESC"

);

//параметры фильтрации

$arFilter = array(

"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],

"ACTIVE" => "Y",

"SECTION_ACTIVE" => "Y"

);

//если в настройках указана фильтрация по секции (платформе), задаем параметры фильтра

if(!empty($arParams["IBLOCK_SECTION_CODE"])){

$arFilter["SECTION_CODE"] = $arParams["IBLOCK_SECTION_CODE"];

}

$current_year = intval(date("Y"));

$current_month = intval(date("m"));

$current_day = intval(date("d"));

$top_day = get_max_day($current_month, $current_year);

//если указан фильтр, включаем его в запрос

if(isset($arParams["FILTER"]) && is_array($arParams["FILTER"]) && count($arParams["FILTER"]) > 0){

$arFilter = array_merge($arFilter, $arParams["FILTER"]);

if(isset($arFilter[">=PROPERTY_DATES_DATE_REL_RUS"])){

$selected_month = intval(date("m", strtotime($arFilter[">=PROPERTY_DATES_DATE_REL_RUS"])));

$selected_year = intval(date("Y", strtotime($arFilter[">=PROPERTY_DATES_DATE_REL_RUS"])));

if($arParams["DATE_BORDER"] == "bottom"){

if($selected_year < $current_year){

$arFilter[">=PROPERTY_DATES_DATE_REL_RUS"] = date("Y-m-d");

}

elseif($selected_year == $current_year){

if($selected_month <= $current_month){

$arFilter[">=PROPERTY_DATES_DATE_REL_RUS"] = date("Y-m-d");

}

}

}

}

else{

$selected_month = date("m");

if($arParams["DATE_BORDER"] == "bottom" && $selected_month == $current_month){

$arFilter[">=PROPERTY_DATES_DATE_REL_RUS"] = date("Y-m-d");

}

}

if(isset($arFilter["<=PROPERTY_DATES_DATE_REL_RUS"])){

$selected_month = intval(date("m", strtotime($arFilter["<=PROPERTY_DATES_DATE_REL_RUS"])));

$selected_year = intval(date("Y", strtotime($arFilter["<=PROPERTY_DATES_DATE_REL_RUS"])));

if($arParams["DATE_BORDER"] == "top"){

if($selected_year > $current_year){

$arFilter["<=PROPERTY_DATES_DATE_REL_RUS"] = date("Y-m-d");

}

elseif($selected_year == $current_year){

if($selected_month >= $current_month){

$arFilter["<=PROPERTY_DATES_DATE_REL_RUS"] = date("Y-m-d");

}

}

}

}

else{

$selected_month = date("m");

if($arParams["DATE_BORDER"] == "top" && $selected_month == $current_month){

$arFilter["<=PROPERTY_DATES_DATE_REL_RUS"] = date("Y-m-d");

}

}

}

else{

//не выводим с датой меньше или больше текущей

if($arParams["DATE_BORDER"] == "top"){

$arFilter["<=PROPERTY_DATES_DATE_REL_RUS"] = date("Y-m-d");

}

elseif($arParams["DATE_BORDER"] == "bottom"){

$arFilter[">=PROPERTY_DATES_DATE_REL_RUS"] = date("Y-m-d");

}

//иначе указываем фильтрацию по текущему месяцу

if($arParams["CURRENT_MONTH_DEFAULT"] == "Y"){

if($arParams["DATE_BORDER"] != "bottom"){

$arFilter[">=PROPERTY_DATES_DATE_REL_RUS"] = date("Y-m-d", strtotime("01.".$current_month.".".$current_year));

}

else{

$arFilter[">=PROPERTY_DATES_DATE_REL_RUS"] = date("Y-m-d");

}

if($arParams["DATE_BORDER"] != "top"){

$arFilter["<=PROPERTY_DATES_DATE_REL_RUS"] = date("Y-m-d", strtotime($top_day.".".$current_month.".".$current_year));

}

else{

$arFilter["<=PROPERTY_DATES_DATE_REL_RUS"] = date("Y-m-d");

}

}

}

//кеширование зависит от настроек фильтра, отобразим это в ID кеша

//вносим в кеш данные постраничной навигации

$cache_id_arr = array(CDBResult::NavStringForCache($arParams["COUNT"]));

//и параметры фильтра

foreach($arFilter as $filt){

$cache_id_arr[] = trim(str_replace(array(";", ":", " ","-"), "", $filt));

}

$cache_id = implode("", $cache_id_arr);

//с данного момента включаем кеширование

if($this->StartResultCache(false, $cache_id)){

//формируем костяк массива, принимаемого в шаблоне

$arResult = array(

"ITEMS" => array(), //массив самих игр

"NO_ITEMS" => false, //флаг наличия элементов в результирующем сете

"PAGENAV" => "", //строка постраничной навигации

"IS_ERROR" => false //флаг наличия какой-либо ошибки

);

//проверяем, подключен ли модуль

if(!CModule::IncludeModule("iblock")){

$arResult["IS_ERROR"] = true;

throw new Exception(GetMessage("C_MODULE_ERROR"));

}

$arSelect = array(

"NAME", "ID", "DETAIL_PAGE_URL", "PREVIEW_PICTURE",

"PROPERTY_DATES_DATE_REL_RUS", "PROPERTY_MAIN_METAMARK",

"PROPERTY_GENRE_GENRE", "IBLOCK_SECTION_ID", "PROPERTY_DATES_DATE_REL"

);

$db_element = CIBlockElement::GetList($arSortOrder, $arFilter, false, array("nPageSize" => $arParams["COUNT"]), $arSelect);

//ошибка запроса к базе данных

if(!$db_element){

$arResult["IS_ERROR"] = true;

throw new Exception(DB_ERROR_TEXT);

}

//если элементов в запросе не найдено

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

$arResult["IS_ERROR"] = true;

$arResult["NO_ITEMS"] = true;

throw new Exception(GetMessage("C_NO_ITEMS"));

}

//разбиваем сет запроса на страницы

$db_element->NavStart($arParams["COUNT"]);

//получаем постраничную навигацию

$arResult["PAGENAV"] = $db_element->GetNavPrint("", false, "", "/bitrix/templates/.default/pagenav_template.php");

//если в настройках компонента задан шаблон пути к элементу на детальн. страницу, обрабатываем шаблон пути

if(!empty($arParams["DETAIL_URL"])){

$db_element->SetUrlTemplates($arParams["DETAIL_URL"]);

}

//массив ID секций (платформ)

$section_ids = array();

//связь между секцией и элементами (для быстрого вывода в шаблоне)

$section_id_elem = array();

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

while($fetch_element = $db_element->GetNext()){

//получаем поля элемента (основные)

$fields["NAME"] = htmlspecialchars($fetch_element["NAME"]);

$fields["DETAIL_PAGE_URL"] = $fetch_element["DETAIL_PAGE_URL"];

$fields["PREVIEW_PICTURE"] = intval($fetch_element["PREVIEW_PICTURE"]);

$fields["IBLOCK_SECTION_ID"] = intval($fetch_element["IBLOCK_SECTION_ID"]);

$fields["ID"] = intval($fetch_element["ID"]);

//если задана превью-обложка, получаем массив ее изображения

if($fields["PREVIEW_PICTURE"] > 0){

$fields["PREVIEW_PICTURE"] = CFile::GetFileArray($fields["PREVIEW_PICTURE"]);

}

else{

$fields["PREVIEW_PICTURE"] = false;

}

//получаем свойства элемента

$props["DATES_DATE_REL_RUS"]["VALUE"] = trim(htmlspecialchars($fetch_element["PROPERTY_DATES_DATE_REL_RUS_VALUE"]));

$props["DATES_DATE_REL"]["VALUE"] = trim(htmlspecialchars($fetch_element["PROPERTY_DATES_DATE_REL_VALUE"]));

//если не указана дата выхода в России, используем дату выхода в общем

$props["MAIN_METAMARK"]["VALUE"] = floatval($fetch_element["PROPERTY_MAIN_METAMARK_VALUE"]);

$props["GENRE_GENRE"]["VALUE"] = $fetch_element["PROPERTY_GENRE_GENRE_VALUE"];

if(empty($props["DATES_DATE_REL_RUS"]["VALUE"])){

$props["DATES_DATE_REL_RUS"]["VALUE"] = $props["DATES_DATE_REL"]["VALUE"];

}

//формируем вывод даты в соотвествии с требованиями

if(!empty($props["DATES_DATE_REL_RUS"]["VALUE"])){

$day = intval(date("d", strtotime($props["DATES_DATE_REL_RUS"]["VALUE"])));

$month_name = mb_substr($arMonthNames[intval(date("m", strtotime($props["DATES_DATE_REL_RUS"]["VALUE"])))]["month_a"], 0, 3, LANG_CHARSET);

$month_name_full = $arMonthNames[intval(date("m", strtotime($props["DATES_DATE_REL_RUS"]["VALUE"])))]["month_a"];

$year = date("Y", strtotime($props["DATES_DATE_REL_RUS"]["VALUE"]));

$props["DATES_DATE_REL_RUS"]["VALUE"] = $day." ".$month_name." ".$year;

$props["DATES_DATE_REL_RUS"]["VALUE_FULL"] = $day." ".$month_name_full." ".$year;

}

/*** В зависимости от значения метаоценки определяем стиль, который будет применен к метаоценке при выводе ***/

if($props["MAIN_METAMARK"]["VALUE"] >= $arParams["MIN_METAMARK_GREEN"]){

$props["STYLE_RAITING"] = "green";

}

elseif($props["MAIN_METAMARK"]["VALUE"] >= $arParams["MIN_METAMARK_YELLOW"] && $props["MAIN_METAMARK"]["VALUE"] < $arParams["MIN_METAMARK_GREEN"]){

$props["STYLE_RAITING"] = "yellow";

}

elseif($props["MAIN_METAMARK"]["VALUE"] > 0){

$props["STYLE_RAITING"] = "red";

}

else{

$props["STYLE_RAITING"] = "no_mark";

}

/*** Конец определения стиля для метаоценки ***/

//забисываем в выходящий массив данные игры

$arResult["ITEMS"][$fields["ID"]] = array(

"FIELDS" => $fields,

"PROPS" => $props

);

//записываем ID всех секций элементов, находящихся в сете

if(!in_array($fields["IBLOCK_SECTION_ID"], $section_ids)){

$section_ids[] = $fields["IBLOCK_SECTION_ID"];

}

//и формируем связь между секцией и элементом

$section_id_elem[$fields["IBLOCK_SECTION_ID"]][] = $fields["ID"];

}

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

$arSectionFilter = array(

"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],

"IBLOCK_ID" => $arParams["IBLOCK_ID"],

"ID" => $section_ids,

"ACTIVE" => "Y"

);

//проводим запрос к списку секций (платформ)

$db_section = CIBlockSection::GetList(array(), $arSectionFilter, false, array("NAME", "CODE", "PICTURE", "UF_*"));

//и получаем необходимые данные секции, занося их в данные по элементу (для вывода)

while($ar_section = $db_section->GetNext()){

foreach($section_id_elem[$ar_section["ID"]] as $elem_to_id){

//имя секции (платформы)

$arResult["ITEMS"][$elem_to_id]["FIELDS"]["SECTION_NAME"] = $ar_section["NAME"];

//код секции (платформы)

$arResult["ITEMS"][$elem_to_id]["FIELDS"]["SECTION_CODE"] = $ar_section["CODE"];

//цвет текста для вывода платформы

$arResult["ITEMS"][$elem_to_id]["FIELDS"]["SECTION_TEXT_COLOR"] = $ar_section["UF_TEXT_COLOR"];

//если задана картинка для секции (маленькая), получаем массив ее изображения

if(intval($ar_section["PICTURE"]) > 0){

$arResult["ITEMS"][$elem_to_id]["FIELDS"]["SECTION_PICTURE"] = CFile::GetFileArray(intval($ar_section["PICTURE"]));

}

}

}

//подключаем шаблон

$this->IncludeComponentTemplate();

}

}

catch(Exception $e)

{

//произошла ошибка, сбрасываем кеш

//чистим кеш

if(!$arResult["NO_ITEMS"]){

$this->ClearResultCache($cache_id);

}

$this->AbortResultCache();

//пишем ошибку в компонент arResult

$arResult["ERROR"] = $e->getMessage();

//подключаем шаблон

$this->IncludeComponentTemplate();

}?>
1   ...   17   18   19   20   21   22   23   24   ...   29

Похожие:

Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconРабочая программа по дисциплине “алгоритмизация и программирование”...
Алгоритмизация и программирование” составлена в соответствии с требованиями Государственного общеобразовательного стандарта высшего...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconРабочая программа по дисциплине «Мировые информационные ресурсы и...
Рабочая программа составлена на основании Государственного образовательного стандарта впо по специальности 230201 – Информационные...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconРабочая программа по дисциплине «Архитектура ЭВМ и систем» для специальности...
Рабочая программа составлена на основании Государственного образовательного стандарта по специальности 230201 – «Информационные системы...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconПрограмма по курсу «Реинжиниринг бизнес-процессов» для специальности...
Рабочая программа по курсу «Реинжиниринг бизнес- процессов» составлена на основании учебного плана специальности 230201 «Информационные...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconРабочая программа составлена на основании требований: Федерального...
Плана учебного процесса бгту им. В. Г. Шухова по направлению подготовки 230201 «Информационные системы и технологии», введенного...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconПрограмма по дисциплине «Распределенные информационные системы»
Учебная программа по дисциплине «Распределенные информационные системы» составлена в соответствии с требованиями гос впо. Предназначена...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconРабочая программа по курсу «Имитационное моделирование экономических...
«Имитационное моделирование экономических процессов» составлена в соответствии с требованиями государственного образовательного стандарта...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconПрограмма по формированию навыков безопасного поведения на дорогах...
Управление сайтом". При составлении документа подразумевалось, что разработчик владеет терминологией и основными приемами работы...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconРабочая программа дисциплины «управление данными»
Программа разработана в соответствии с Государственным образовательным стандартом по специальности 230201 «Информационные системы...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconПрограмма по дисциплине «Глобальные проблемы совре-менности»
Предназначена студентам по специальности 230201. 65 «Информационные системы и технологии»
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconМетодическое пособие по выполнению, оформлению и защите курсовых...
Методическое пособие предназначено для бакалавриата Кубанского государственного аграрного университета по специальности 230400. 62...
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconУчебно-методический комплекс для студентов специальности 230201....
Федеральное государственного бюджетное учреждение высшего профессионального образования
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconУчебно-методический комплекс для студентов специальности 230201....
Федеральное государственное бюджетное учреждение высшего профессионального образования
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconУчебно-методический комплекс для студентов специальности 230201....
Рассмотрено на заседании умк института математики и компьютерных наук, протокол №
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconОтчет о результатах самообследования основных образовательных программ...
Работа кафедр по устранению недостатков, отмеченных в ходе предыдущей аккредитации
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии» Разработка информационного web-сайта на основе системы «1с-битрикс: Управление сайтом» iconМетодические указания для студентов-магистрантов дневной формы обучения...
Методическая разработка предназначена для студентов- магистрантов направлений 230400. 68 «Информационные системы и технологии» и230100....


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск