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





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

В.3. Компонент games.filter


Файл component.php

//компонент

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

try

{

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

prepare_params($arParams);

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

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

$arParams["IBLOCK_TYPE"] = IB_TYPE_GAMES;

}

if(empty($arParams["IBLOCK_ID"])){

$arParams["IBLOCK_ID"] = IB_GAMES_PC;

}

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

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

$arParams["COUNT"] = 10;

}

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

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

}

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";

}

if(empty($arParams["DATE_REL_RUS_PROPERTY_CODE"])){

$arParams["DATE_REL_RUS_PROPERTY_CODE"] = "DATES_DATE_REL_RUS";

}

if(empty($arParams["MAIN_METAMARK_PROPERTY_CODE"])){

$arParams["MAIN_METAMARK_PROPERTY_CODE"] = "MAIN_METAMARK";

}

if(empty($arParams["FILTER_VARIABLE_NAME"])){

$arParams["FILTER_VARIABLE_NAME"] = "arrFilter";

}

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

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

$arParams["DETAIL_DATE_MIN"] = 1997;

}

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

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

$arParams["DETAIL_DATE_MAX"] = date("Y");

}

$period_list = $arParams["PERIOD_LIST"];

$arParams["PERIOD_LIST"] = array();

//проверка вариантов интервалов времени

$j = 1;

foreach($period_list as $key => $value){

if(!$matches = get_parts_reg($value, "/\[(\-|\+*)(\d+)(.)\]/i")){

continue;

}

$text = $matches["text"];

$matches = $matches["matches"];

//print_r($matches);

$matches[3] = mb_strtolower($matches[3], LANG_CHARSET);

if($matches[3] != "m" && $matches[3] != "d" && $matches[3] != "y"){

continue;

}

$arParams["PERIOD_LIST"][$j] = array(

"TITLE" => $text,

"TYPE" => $matches[3],

"VALUE" => ($matches[1] == "-" ? (-1)*intval($matches[2]) : intval($matches[2]))

);

$j++;

}

//проверка метаоценок

$mark_list = $arParams["MARKS_LIST"];

$arParams["MARKS_LIST"] = array();

$j = 1;

foreach($mark_list as $key => $value){

if(!$matches = get_parts_reg($value, "/\[\b(\d+)\]\[(.+)\]/i")){

continue;

}

$text = $matches["text"];

$matches = $matches["matches"];

$arParams["MARKS_LIST"][$j] = array(

"TITLE" => $text,

"VALUE" => intval($matches[1]),

"COLOR" => $matches[2]

);

$j++;

}

$arResult = array(

"GENRES" => array(),

"PLATFORMS" => array(),

"POST_VARIABLES" => array()

);

/******

Обработка отправленной формы фильтра и формирование выходного массива с параметрами фильтрации

******/

if(isset($_REQUEST["filter"]) || isset($_REQUEST["with_no_script"])){

//временный массив для фильтра

$filter_var = array();

//предварительная обработка данных пришедшего запроса

$_REQUEST["marki"] = intval($_REQUEST["marki"]);

$_REQUEST["datei"] = intval($_REQUEST["datei"]);

$_REQUEST["platform"] = trim($_REQUEST["platform"]);

$_REQUEST["genre"] = trim(htmlspecialchars(urldecode($_REQUEST["genre"])));

$_REQUEST["markv"] = floatval($_REQUEST["markv"]);

$_REQUEST["daterange"] = intval($_REQUEST["daterange"]);

$_REQUEST["dfrom"] = trim($_REQUEST["dfrom"]);

$_REQUEST["dto"] = trim($_REQUEST["dto"]);

$_REQUEST["alpha"] = mb_substr(trim(urldecode($_REQUEST["alpha"])), 0, 1, LANG_CHARSET);

if(!empty($_REQUEST["platform"])){

$filter_var["SECTION_CODE"] = $_REQUEST["platform"];

}

if(strlen($_REQUEST["alpha"]) > 0){

if($_REQUEST["alpha"] == "1"){

$numbs = array();

for($i=0; $i <= 9; $i++){

$numbs[] = $i."%";

}

//$filter_var["NAME"] = implode("|", $numbs);

$filter_var[">NAME"] = "-1%";

$filter_var["<=NAME"] = "9%";

}

else{

$filter_var["NAME"] = $_REQUEST["alpha"]."%";

}

//echo $filter_var["NAME"];

}

if(eregi("^[0-9]{4}$", $_REQUEST["dfrom"])){

$f_date_from = "year";

$_REQUEST["dfrom"] = intval($_REQUEST["dfrom"]);

if($_REQUEST["dfrom"] <= 0){

$_REQUEST["dfrom"] = $arParams["DETAIL_DATE_MIN"];

}

}

else{

if(strtotime($_REQUEST["dfrom"]) <= 0){

$_REQUEST["daterange"] = 0;

}

}

if(eregi("^[0-9]{4}$", $_REQUEST["dto"])){

$f_date_to = "year";

if($_REQUEST["dto"] <= 0){

$_REQUEST["dto"] = $arParams["DETAIL_DATE_MAX"];

}

}

else{

if(strtotime($_REQUEST["dto"]) <= 0){

$_REQUEST["daterange"] = 0;

}

}

//выьранный в списке временной интервал

$datei_key = $_REQUEST["datei"];

if($_REQUEST["daterange"] == 1){

$datei_key = 0;

$date_from = $_REQUEST["dfrom"];

$date_to = $_REQUEST["dto"];

if($f_date_from == "year" && $f_date_to == "year" && $date_to < $date_from){

$date_to = $date_from;

}

if($f_date_from == "year"){

$filter_var[">=PROPERTY_".$arParams["DATE_REL_RUS_PROPERTY_CODE"]] = date("Y-m-d", strtotime("01.01.".$date_from));

}

else{

$filter_var[">=PROPERTY_".$arParams["DATE_REL_RUS_PROPERTY_CODE"]] = date("Y-m-d", strtotime($date_from));

}

if($f_date_to == "year"){

$filter_var["<=PROPERTY_".$arParams["DATE_REL_RUS_PROPERTY_CODE"]] = date("Y-m-d", strtotime("31.12.".$date_to));

}

else{

$filter_var["<=PROPERTY_".$arParams["DATE_REL_RUS_PROPERTY_CODE"]] = date("Y-m-d", strtotime($date_to));

}

$arResult["POST_VARIABLES"]["datei"] = $date_from." - ".$date_to;

}

if($datei_key > 0){

//обрабатываем пришедший интервал, в зависимости от типа задавая параметры фильтру

$filter_var["<=PROPERTY_".$arParams["DATE_REL_RUS_PROPERTY_CODE"]] = date("Y-m-d");

$datei_type = $arParams["PERIOD_LIST"][$datei_key]["TYPE"];

$datei_value = intval($arParams["PERIOD_LIST"][$datei_key]["VALUE"]);

switch($datei_type)

{

//обрабатываем день

case "d":

//добавляем к текущей дате наше число со знаком минус

$interval_from = AddToTimestamp(array("DD" => -$datei_value));

break;

//месяц

case "m":

$interval_from = AddToTimestamp(array("MM" => -$datei_value));

break;

//год

case "y":

$interval_from = AddToTimestamp(array("YYYY" => -$datei_value));

break;

default:

break;

}

if($datei_value > 0){

$filter_var[">=PROPERTY_".$arParams["DATE_REL_RUS_PROPERTY_CODE"]] = date("Y-m-d", $interval_from);

}

else{

$filter_var["<=PROPERTY_".$arParams["DATE_REL_RUS_PROPERTY_CODE"]] = date("Y-m-d", $interval_from);

}

$arResult["POST_VARIABLES"]["datei"] = $arParams["PERIOD_LIST"][$datei_key]["TITLE"];

}

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

$_REQUEST["month"] = intval($_REQUEST["month"]);

$_REQUEST["year"] = intval($_REQUEST["year"]);

if($_REQUEST["month"] > 0 && $_REQUEST["year"] > 0){

$top_day = get_max_day($_REQUEST["month"], $_REQUEST["year"]);

// echo $top_day;

$filter_var[">=PROPERTY_".$arParams["DATE_REL_RUS_PROPERTY_CODE"]] = date("Y-m-d", strtotime("01.".$_REQUEST["month"].".".$_REQUEST["year"]));

$filter_var["<=PROPERTY_".$arParams["DATE_REL_RUS_PROPERTY_CODE"]] = date("Y-m-d", strtotime($top_day.".".$_REQUEST["month"].".".$_REQUEST["year"]));

}

//выбранный интервал метаоценок

$marki_key = $_REQUEST["marki"];

$markv = $_REQUEST["markv"];

//обрабатываем пришедшую величину для метаоценки

//если указана точная метаоценка, формируем фильтр для нее

if($markv > 0){

$marki_key = -1;

$filter_var["PROPERTY_".$arParams["MAIN_METAMARK_PROPERTY_CODE"]] = $markv;

$arResult["POST_VARIABLES"]["marki"] = $markv;

}

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

if($marki_key > 0){

$filter_var[">=PROPERTY_".$arParams["MAIN_METAMARK_PROPERTY_CODE"]] = $arParams["MARKS_LIST"][$marki_key]["VALUE"];

$arResult["POST_VARIABLES"]["marki"] = $arParams["MARKS_LIST"][$marki_key]["TITLE"];

}

//формируем фильтр для жанра

$genre = $_REQUEST["genre"];

if(!empty($genre)){

$p_enum = CIBlockProperty::GetPropertyEnum($arParams["GENRE_PROPERTY_CODE"], array(), array("XML_ID" => $genre));

$ar_enum = $p_enum->GetNext();

$filter_var["PROPERTY_".$arParams["GENRE_PROPERTY_CODE"]."_VALUE"] = $ar_enum["VALUE"];

$arResult["POST_VARIABLES"]["GENRE"] = $ar_enum["VALUE"];

}

}

else{

//если мы на главной странице, то задаем опережающие значения фильра

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

$value_period_finded = false;

foreach($arParams["PERIOD_LIST"] as $key => $per){

if($per["TYPE"] == "m" && $per["VALUE"] == 6){

$value_period_finded = true;

break;

}

}

if($value_period_finded){

$_REQUEST["datei"] = $key;

$interval_from = AddToTimestamp(array("MM" => -6));

$filter_var[">=PROPERTY_".$arParams["DATE_REL_RUS_PROPERTY_CODE"]] = date("Y-m-d", $interval_from);

$arResult["POST_VARIABLES"]["datei"] = $arParams["PERIOD_LIST"][$key]["TITLE"];

}

}

}

$GLOBALS[$arParams["FILTER_VARIABLE_NAME"]] = $filter_var;

//проводим запрос к списку информационных блоков (смысл - список платформ)

$arIblockOrder = array(

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

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

"ID" => "DESC"

);

$arIblockFilter = array(

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

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

"ACTIVE" => "Y"

);

$db_iblock = CIBlockSection::GetList($arIblockOrder, $arIblockFilter);

if(!$db_iblock){

throw new Exception(DB_ERROR_TEXT);

}

//если платформ не найдено, нет смысла фильтровать, выходим

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

$this->IncludeComponentTemplate();

return;

}

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

$arResult["PLATFORMS"][$fetch["CODE"]] = array(

"NAME" => $fetch["NAME"],

"ID" => $fetch["ID"],

);

}

//запрос к списку жанров

$arEnumOrder = array(

"SORT" => "ASC",

"ID" => "ASC"

);

$arEnumFilter = array(

"CODE" => $arParams["GENRE_PROPERTY_CODE"],

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

);

$db_enum = CIBlockPropertyEnum::GetList($arEnumOrder, $arEnumFilter);

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

$genre_list[$fetch["XML_ID"]] = $fetch["VALUE"];

}

$arResult["ALL_GENRE"] = $genre_list;

//основные жанры

foreach($arParams["MAIN_GENRE"] as $val){

$arResult["MAIN_GENRE"][$val] = $genre_list[$val];

}

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

$this->IncludeComponentTemplate();

}

catch(Exception $ex)

{

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

}

?>
Файл script.js
/*скрипт*/

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

function set_platform(path, form, iblock_id, result_block)

{

$("#iblock_id").val(iblock_id);

return check_form_submit(path, form, result_block);

}

function set_alpha(path, form, alpha, result_block)

{

$("#alpha").val(alpha);

return check_form_submit(path, form, result_block);

}

//собирает все инпуты и селекты из формы с id = ob и отправляет запрос на сервер

function check_form_submit(path, ob, result_block, additional_pars)

{

if($("#detail_date_enabled").val() == "0" || $("#detail_date_enabled").val() == ""){

$("#detail-date-from-catcher").val("");

$("#detail-date-to-catcher").val("");

}

if($("#mark_value").val() > 0){

document.getElementById("mark_interval").selectedIndex = 0;

}

//собираем все инпуты и селекты из фильтра

var query_string_arr = new Array("ajax_request_mode=Y");

var state_string_arr = new Array();

var query_string = "";

var state_string;

var query_string_ajax;

$("#"+ob.id+" input, #"+ob.id+" select").each(function(){

var name = $(this).attr("name");

var value = $(this).val();

if(name.length > 0 && value.length > 0 && name != "with_no_script"){

var val = parseInt(value);

if(!isNaN(val) && name != "dfrom" && name != "dto"){

if(val > 0 || name == "alpha"){

query_string_arr.push(name+"="+value);

state_string_arr.push(name+":"+value);

}

}

else{

query_string_arr.push(name+"="+value);

state_string_arr.push(name+":"+value);

}

}

});

query_string_arr.push(additional_pars);

query_string_ajax = query_string_arr.join("&");

query_string_arr.push("ajax_request_mode=Y");

query_string = query_string_arr.join("&");

state_string = state_string_arr.join("&");

set_server_request(path, query_string, "ajax-status", result_block, state_string);

return false;

}
$(function(){

//определяем набор ID элементов, задействованых в процессе имитации работы select'ов

var select_list_ids = new Array();

select_list_ids[0] = new Array("date_interval", "date-select-box", "date-select-catcher", "date-select-opener", "detail_date_enabled");

select_list_ids[1] = new Array("mark_interval", "mark-select-box", "mark-select-catcher", "mark-select-opener", "mark_value");

//проходим по этому списку, для каждого набора проделывая нужные действия

for(var j in select_list_ids)

{

var select_id = "#"+select_list_ids[j][0];

var select_id_v = select_list_ids[j][0];

var box_id = "#"+select_list_ids[j][1];

var catcher_id = "#"+select_list_ids[j][2];

var opener_id = "#"+select_list_ids[j][3];

var additional_id = "#" + select_list_ids[j][4];

//получаем из select записи

if(!document.getElementById(select_id_v)){

continue;

}

var list = document.getElementById(select_id_v).options;

for(var i=list.length - 1; i >=0; i--){

if($(list[i]).val().length <= 0){

continue;

}

//создаем последовательно объекты

var a = document.createElement("a");

//проверяем есть ли в названии слева код цвета текста

var html = list[i].text;

if(html.length <= 0){

continue;

}

if(html.indexOf("[") != -1 && html.indexOf("]") != -1){

from_index = html.indexOf("[");

to_index = html.indexOf("]");

var color = html.substring(from_index + 1, to_index);

if(color.length > 0){

var span = document.createElement("span");

$(span).css("color", color);

$(a).append(span);

}

html = html.substring(0, from_index);

list[i].text = list[i].text.substring(0, from_index);

$(span).html(html);

}

else{

$(a).html(html);

}

//тэгу a добавляем реакцию на событие - клик

$(a).hover(

function(e)

{

$(this).addClass("next_hover");

},

function(e)

{

$(this).removeClass("next_hover");

}

);

$(a).bind(

"click",

{list_option: list[i], b_id: box_id, add_id: additional_id, catcher: catcher_id},

function(event){

$(event.data.add_id).val("");

var html = $(this).html();

$(event.data.catcher).attr("title", event.data.list_option.text);

$(event.data.catcher).val(event.data.list_option.text);

//выделяем нужный нам option

$(event.data.list_option).attr("selected", "selected");

//отправляем форму

document.getElementById("filter-box-form-sended").click();

$(event.data.b_id).hide();

});

$(a).addClass("next");

$(a).prependTo(box_id);

}

//связка по клику с кнопкой выбора

$(opener_id).bind(

"click",

{b_id : box_id, select_list_ids: select_list_ids},

function(event){

if($(event.data.b_id).css("display") == "none"){

$(event.data.b_id).show();

}

else{

$(event.data.b_id).hide();

}

for(var i in event.data.select_list_ids){

if(event.data.b_id != "#"+event.data.select_list_ids[i][1]){

$("#"+event.data.select_list_ids[i][1]).hide();

}

}

$("#genre-select-box").hide();

$("#detail-date-from-select-box").hide();

$("#detail-date-to-select-box").hide();

return false;

}

);

}

$("#detail-date-from-opener").bind(

"click",

function(event){

if($("#detail-date-from-select-box").css("display") == "none"){

$("#detail-date-from-select-box").show();

}

else{

$("#detail-date-from-select-box").hide();

}

$("#detail-date-to-select-box").hide();

return false;

}

);

$("#detail-date-to-opener").bind(

"click",

function(event){

if($("#detail-date-to-select-box").css("display") == "none"){

$("#detail-date-to-select-box").show();

}

else{

$("#detail-date-to-select-box").hide();

}

$("#detail-date-from-select-box").hide();

return false;

}

);

$("#detail-date-from-select-box a.next").bind("click", {list_option: false, b_id: "#detail-date-from-select-box", catcher: "#detail-date-from-catcher"}, function(event){

$(event.data.catcher).attr("title", $(this).html());

$(event.data.catcher).datepicker('option',"defaultDate", "01.01."+$(this).html());

$(event.data.catcher).val($(this).html());

$(event.data.b_id).hide();

return false;

});

$("#detail-date-to-select-box a.next").bind("click", {list_option: false, b_id: "#detail-date-to-select-box", catcher: "#detail-date-to-catcher"}, function(event){

$(event.data.catcher).attr("title", $(this).html());

$(event.data.catcher).datepicker('option', "defaultDate", "31.12."+$(this).html());

$(event.data.catcher).val($(this).html());

$(event.data.b_id).hide();

return false;

});

//отдельная связка по клику для #genre-select-box

$("#genre-select-opener").bind(

"click",

{b_id : "#genre-select-box"},

function(event){

if($(event.data.b_id).css("display") == "none"){

$(event.data.b_id).show();

}

else{

$(event.data.b_id).hide();

}

$("#date-select-box").hide();

$("#mark-select-box").hide();

//$("#")

return false;

}

);

$("#genre-select-box a.next").bind("click", {list_option: false, b_id: "#genre-select-box", catcher: "#genre-select-catcher"}, function(event){

$(event.data.catcher).attr("title", $(this).html());

$(event.data.catcher).val($(this).html());

var genre_list = document.getElementById("genre").options;

var check_flag = false;

for(var i = 0; i < genre_list.length; i++){

if(genre_list[i].text == $(this).html()){

$(genre_list[i]).attr("selected", "selected");

check_flag = true;

break;

}

}

if(!check_flag){

$(genre_list[0]).attr("selected", "selected");

}

//отправляем форму

document.getElementById("filter-box-form-sended").click();

$(event.data.b_id).hide();

return false;

});

$("#genre-select-box p.more a").bind("click", function(event){

if($("#genre-select-box .col").css("display") != "none"){

$("#genre-select-box .col").hide();

$("#genre-select-box .main").show();

$("#genre-select-box").addClass("genre_small");

$("#genre-select-box").removeClass("genre_wide");

$(this).html("Все жанры");

}

else{

$("#genre-select-box .col").show();

$("#genre-select-box .main").hide();

$("#genre-select-box").addClass("genre_wide");

$("#genre-select-box").removeClass("genre_small");

$(this).html("Основные");

}

return false;

});

$("div.filter-box .select-box .js-included").show();

$("div.filter-box .select-box .js-not-included").hide();

var def_date_from = $("#detail-date-from-catcher").val();

if(def_date_from && def_date_from.length > 0 && def_date_from.length <= 4){

def_date_from = "01.01."+def_date_from;

}

var def_date_to = $("#detail-date-to-catcher").val();

if(def_date_to && def_date_to.length > 0 && def_date_to.length <= 4){

def_date_to = "31.12."+def_date_to;

}

$("#detail_date_sender").bind("click", function(){

$("#detail_date_enabled").val("1");

});

$.datepicker.setDefaults(

$.extend($.datepicker.regional["ru"])

);

if(def_date_from && def_date_to){

$("#detail-date-from-catcher").datepicker({

dateFormat:"dd.mm.yy",

defaultDate: def_date_from

});

$("#detail-date-to-catcher").datepicker({

dateFormat:"dd.mm.yy",

defaultDate: def_date_to

});

}

$("#date_from_calendar").bind("click", function(){

$("#detail-date-from-catcher").datepicker("show");

return false;

});

$("#date_to_calendar").bind("click", function(){

$("#detail-date-to-catcher").datepicker("show");

return false;

});

$(".ui-datepicker").bind("click", function(event){

$("#date-select-box").show();

event.stopPropagation();

});

});
Файл result_modifier.php шаблона month_switcher

/*модификатор результата*/

global $arMonthNames;

//общее количество выводимых месяцев

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

$arParams["DISPLAY_MONTHS_COUNT"] = 3;

}

//ограничение сверху или снизу

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

$arParams["BORDER"] = "bottom";

}

//ограничения по годам для верха и для низа

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

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

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

$arParams["MIN_YEAR"] = 1990;

}

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

$arParams["MAX_YEAR"] = 2013;

}

$b_redirect = false;

$_REQUEST["month"] = intval($_REQUEST["month"]);

$_REQUEST["year"] = intval($_REQUEST["year"]);

if($_REQUEST["month"] > 12){

$_REQUEST["month"] = 12;

$b_redirect = true;

}

if($_REQUEST["month"] > 0 && $_REQUEST["year"] > 0 && !isset($_REQUEST["filter"])){

$b_redirect = true;

}

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

if($_REQUEST["month"] > 0){

$current_month = $_REQUEST["month"];

}

else{

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

}
////аналогично для года

if($_REQUEST["year"] > 0){

$current_year = $_REQUEST["year"];

}

else{

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

}

/*определяем середину интервала в зависимости от количества месяцев*/

if($arParams["DISPLAY_MONTHS_COUNT"] % 2 == 0){

$center = floor($arParams["DISPLAY_MONTHS_COUNT"] / 2);

}

else{

$center = ceil($arParams["DISPLAY_MONTHS_COUNT"] / 2);

}

//флаг того, что мы находимся в данный момент на текущей дате

$current_date_flag = false;

if($current_year == intval(date("Y")) && $current_month == intval(date("m"))){

$current_flag = true;

}

if($current_year < $arParams["MIN_YEAR"]){

$current_year = $arParams["MIN_YEAR"];

$current_month = 1;

$b_redirect = true;

}

$bottom_move_flag = false;

if($arParams["BORDER"] == "bottom" && ($current_year < intval(date("Y")) || ($current_month < intval(date("m")) && $current_year <= intval(date("Y"))))){

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

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

$b_redirect = true;

$bottom_move_flag = true;

}

if($current_year == $arParams["MIN_YEAR"] && $current_month == 1){

$bottom_move_flag = true;

}

$top_move_flag = false;

if($current_year > $arParams["MAX_YEAR"]){

$current_year = $arParams["MAX_YEAR"];

$current_month = 12;

$b_redirect = true;

$top_move_flag = true;

}

if($current_year == $arParams["MAX_YEAR"] && $current_month == 12){

$top_move_flag = true;

}

if($arParams["BORDER"] == "top" && ($current_year > intval(date("Y")) || ($current_month > intval(date("m")) && $current_year >= intval(date("Y"))))){

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

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

$b_redirect = true;

$top_move_flag = true;

}

$k = 1;

//массив с набором предыдущих месяцев

$arResult["PREV_MONTHS"] = array();

$prev_year = $current_year;

$prev_month = $current_month;

if(!$bottom_move_flag && ($arParams["BORDER"] != "bottom" || !$current_flag)){

while($k < $center){

if($prev_month - 1 <= 0){

$prev_year -= 1;

$prev_month = 12;

}

else{

$prev_month = $prev_month - 1;

}

$arResult["PREV_MONTHS"][] = array(

"month" => $prev_month,

"month_name" => $arMonthNames[$prev_month]["month"],

"month_year" => $prev_year,

);

$k++;

}

}

if($b_redirect){

LocalRedirect($APPLICATION->GetCurPageParam("filter=up&month=".$current_month."&year=".$current_year, array("filter", "month", "year")));

exit(1);

}

$arResult["CURRENT_MONTH"] = $current_month;

$arResult["CURRENT_MONTH_NAME"] = $arMonthNames[$current_month]["month"];

$arResult["CURRENT_YEAR"] = $current_year;
$k = $center + 1;

$arResult["NEXT_MONTHS"] = array();

$next_month = $current_month;

$next_year = $current_year;

if(!$top_move_flag && ($arParams["BORDER"] != "top" || !$current_flag)){

while($k <= $arParams["DISPLAY_MONTHS_COUNT"]){

if($next_month + 1 > 12){

$next_year += 1;

$next_month = 1;

}

else{

$next_month = $next_month + 1;

}

$arResult["NEXT_MONTHS"][] = array(

"month" => $next_month,

"month_name" => $arMonthNames[$next_month]["month"],

"month_year" => $next_year,

);

$k++;

}

}

$arResult["PREV_MONTHS"] = array_reverse($arResult["PREV_MONTHS"]);

?>
1   ...   19   20   21   22   23   24   25   26   ...   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
Поиск