Разработка первой версии тиражного решения типового сайта танцевальных школ

Требования посетителей к содержимому сайта. Анализ визуальной структуры страницы на "1С-Битрикс". Особенность реализации пользовательского компонента. Характеристика построения функциональной модели. Исследование стоимостной диагностики функций.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 10.03.2018
Размер файла 3,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

"DESCRIPTION" => GetMessage("IBLOCK_ELEMENT_ADD_FORM_DESCRIPTION"),

"ICON" => "/images/eaddform.gif",

"CACHE_PATH" => "Y",

"SORT" => 40,

"PATH" => array(

"ID" => "dance",

"NAME" => GetMessage("IBLOCK_NEWS_NAME2"),

"SORT" => 5,

),

);

?>

.parameters.php

<?

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

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

return;

$arTypesEx = CIBlockParameters::GetIBlockTypes(Array("-"=>" "));

$arIBlocks=Array();

$db_iblock = CIBlock::GetList(Array("SORT"=>"ASC"), Array("SITE_ID"=>$_REQUEST["site"], "TYPE" => ($arCurrentValues["IBLOCK_TYPE"]!="-"?$arCurrentValues["IBLOCK_TYPE"]:"")));

while($arRes = $db_iblock->Fetch())

$arIBlocks[$arRes["ID"]] = $arRes["NAME"];

$arSorts = Array("ASC"=>GetMessage("T_IBLOCK_DESC_ASC"), "DESC"=>GetMessage("T_IBLOCK_DESC_DESC"));

$arSortFields = Array(

"ID"=>GetMessage("T_IBLOCK_DESC_FID"),

"NAME"=>GetMessage("T_IBLOCK_DESC_FNAME"),

"ACTIVE_FROM"=>GetMessage("T_IBLOCK_DESC_FACT"),

"SORT"=>GetMessage("T_IBLOCK_DESC_FSORT"),

"TIMESTAMP_X"=>GetMessage("T_IBLOCK_DESC_FTSAMP")

);

$arProperty_LNS = array();

$rsProp = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>(isset($arCurrentValues["IBLOCK_ID"])?$arCurrentValues["IBLOCK_ID"]:$arCurrentValues["ID"])));

while ($arr=$rsProp->Fetch())

{

$arProperty[$arr["CODE"]] = "[".$arr["CODE"]."] ".$arr["NAME"];

if (in_array($arr["PROPERTY_TYPE"], array("L", "N", "S")))

{

$arProperty_LNS[$arr["CODE"]] = "[".$arr["CODE"]."] ".$arr["NAME"];

}

}

//============================================форма===========================

$bWorkflowIncluded = CModule::IncludeModule("workflow");

$arIBlockType = CIBlockParameters::GetIBlockTypes();

$arIBlock=array();

$rsIBlock = CIBlock::GetList(Array("sort" => "asc"), Array("TYPE" => $arCurrentValues["IBLOCK_TYPE"], "ACTIVE"=>"Y"));

while($arr=$rsIBlock->Fetch())

{

$arIBlock[$arr["ID"]] = "[".$arr["ID"]."] ".$arr["NAME"];

}

$arProperty_LNSF = array(

"NAME" => GetMessage("IBLOCK_ADD_NAME"),

"TAGS" => GetMessage("IBLOCK_ADD_TAGS"),

"DATE_ACTIVE_FROM" => GetMessage("IBLOCK_ADD_ACTIVE_FROM"),

"DATE_ACTIVE_TO" => GetMessage("IBLOCK_ADD_ACTIVE_TO"),

"IBLOCK_SECTION" => GetMessage("IBLOCK_ADD_IBLOCK_SECTION"),

"PREVIEW_TEXT" => GetMessage("IBLOCK_ADD_PREVIEW_TEXT"),

"PREVIEW_PICTURE" => GetMessage("IBLOCK_ADD_PREVIEW_PICTURE"),

"DETAIL_TEXT" => GetMessage("IBLOCK_ADD_DETAIL_TEXT"),

"DETAIL_PICTURE" => GetMessage("IBLOCK_ADD_DETAIL_PICTURE"),

);

$arVirtualProperties = $arProperty_LNSF;

$rsProp = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$arCurrentValues["IBLOCK_ID"]));

while ($arr=$rsProp->Fetch())

{

$arProperty[$arr["ID"]] = "[".$arr["CODE"]."] ".$arr["NAME"];

if (in_array($arr["PROPERTY_TYPE"], array("L", "N", "S", "F")))

{

$arProperty_LNSF[$arr["ID"]] = "[".$arr["CODE"]."] ".$arr["NAME"];

}

}

$arGroups = array();

$rsGroups = CGroup::GetList($by="c_sort", $order="asc", Array("ACTIVE" => "Y"));

while ($arGroup = $rsGroups->Fetch())

{

$arGroups[$arGroup["ID"]] = $arGroup["NAME"];

}

if ($bWorkflowIncluded)

{

$rsWFStatus = CWorkflowStatus::GetList($by="c_sort", $order="asc", Array("ACTIVE" => "Y"), $is_filtered);

$arWFStatus = array();

while ($arWFS = $rsWFStatus->Fetch())

{

$arWFStatus[$arWFS["ID"]] = $arWFS["TITLE"];

}

}

else

{

$arActive = array("ANY" => GetMessage("IBLOCK_STATUS_ANY"), "INACTIVE" => GetMessage("IBLOCK_STATUS_INCATIVE"));

$arActiveNew = array("N" => GetMessage("IBLOCK_ALLOW_N"), "NEW" => GetMessage("IBLOCK_ACTIVE_NEW_NEW"), "ANY" => GetMessage("IBLOCK_ACTIVE_NEW_ANY"));

}

$arAllowEdit = array("CREATED_BY" => GetMessage("IBLOCK_CREATED_BY"), "PROPERTY_ID" => GetMessage("IBLOCK_PROPERTY_ID"));

//============================================================================

$arComponentParameters = array(

"GROUPS" => array(

//================================форма===================================

"PARAMS" => array(

"NAME" => GetMessage("IBLOCK_PARAMS"),

"SORT" => "200"

),

"ACCESS" => array(

"NAME" => GetMessage("IBLOCK_ACCESS"),

"SORT" => "400",

),

"FIELDS" => array(

"NAME" => GetMessage("IBLOCK_FIELDS"),

"SORT" => "300",

),

"TITLES" => array(

"NAME" => GetMessage("IBLOCK_TITLES"),

"SORT" => "1000",

),

//========================================================================

),

"PARAMETERS" => array(

"AJAX_MODE" => array(),

"IBLOCK_TYPE" => Array(

"PARENT" => "BASE",

"NAME" => GetMessage("T_IBLOCK_DESC_LIST_TYPE"),

"TYPE" => "LIST",

"VALUES" => $arTypesEx,

"DEFAULT" => "news",

"REFRESH" => "Y",

),

"IBLOCK_ID" => Array(

"PARENT" => "BASE",

"NAME" => GetMessage("T_IBLOCK_DESC_LIST_ID"),

"TYPE" => "LIST",

"VALUES" => $arIBlocks,

"DEFAULT" => '={$_REQUEST["ID"]}',

"ADDITIONAL_VALUES" => "Y",

"REFRESH" => "Y",

),

"NEWS_COUNT" => Array(

"PARENT" => "BASE",

"NAME" => GetMessage("T_IBLOCK_DESC_LIST_CONT"),

"TYPE" => "STRING",

"DEFAULT" => "20",

),

"SORT_BY1" => Array(

"PARENT" => "DATA_SOURCE",

"NAME" => GetMessage("T_IBLOCK_DESC_IBORD1"),

"TYPE" => "LIST",

"DEFAULT" => "ACTIVE_FROM",

"VALUES" => $arSortFields,

"ADDITIONAL_VALUES" => "Y",

),

"SORT_ORDER1" => Array(

"PARENT" => "DATA_SOURCE",

"NAME" => GetMessage("T_IBLOCK_DESC_IBBY1"),

"TYPE" => "LIST",

"DEFAULT" => "DESC",

"VALUES" => $arSorts,

),

"SORT_BY2" => Array(

"PARENT" => "DATA_SOURCE",

"NAME" => GetMessage("T_IBLOCK_DESC_IBORD2"),

"TYPE" => "LIST",

"DEFAULT" => "SORT",

"VALUES" => $arSortFields,

"ADDITIONAL_VALUES" => "Y",

),

"SORT_ORDER2" => Array(

"PARENT" => "DATA_SOURCE",

"NAME" => GetMessage("T_IBLOCK_DESC_IBBY2"),

"TYPE" => "LIST",

"DEFAULT" => "ASC",

"VALUES" => $arSorts,

),

"FILTER_NAME" => Array(

"PARENT" => "DATA_SOURCE",

"NAME" => GetMessage("T_IBLOCK_FILTER"),

"TYPE" => "STRING",

"DEFAULT" => "",

),

"FIELD_CODE" => CIBlockParameters::GetFieldCode(GetMessage("IBLOCK_FIELD"), "DATA_SOURCE"),

"PROPERTY_CODE" => array(

"PARENT" => "DATA_SOURCE",

"NAME" => GetMessage("T_IBLOCK_PROPERTY"),

"TYPE" => "LIST",

"MULTIPLE" => "Y",

"VALUES" => $arProperty_LNS,

"ADDITIONAL_VALUES" => "Y",

),

"CHECK_DATES" => array(

"PARENT" => "DATA_SOURCE",

"NAME" => GetMessage("T_IBLOCK_DESC_CHECK_DATES"),

"TYPE" => "CHECKBOX",

"DEFAULT" => "Y",

),

"DETAIL_URL" => CIBlockParameters::GetPathTemplateParam(

"DETAIL",

"DETAIL_URL",

GetMessage("T_IBLOCK_DESC_DETAIL_PAGE_URL"),

"",

"URL_TEMPLATES"

),

"PREVIEW_TRUNCATE_LEN" => Array(

"PARENT" => "ADDITIONAL_SETTINGS",

"NAME" => GetMessage("T_IBLOCK_DESC_PREVIEW_TRUNCATE_LEN"),

"TYPE" => "STRING",

"DEFAULT" => "",

),

"ACTIVE_DATE_FORMAT" => CIBlockParameters::GetDateFormat(GetMessage("T_IBLOCK_DESC_ACTIVE_DATE_FORMAT"), "ADDITIONAL_SETTINGS"),

"DISPLAY_PANEL" => Array(

"PARENT" => "ADDITIONAL_SETTINGS",

"NAME" => GetMessage("T_IBLOCK_DESC_NEWS_PANEL"),

"TYPE" => "CHECKBOX",

"DEFAULT" => "N",

),

"SET_TITLE" => Array(),

"SET_STATUS_404" => Array(

"PARENT" => "ADDITIONAL_SETTINGS",

"NAME" => GetMessage("CP_BNL_SET_STATUS_404"),

"TYPE" => "CHECKBOX",

"DEFAULT" => "N",

),

"INCLUDE_IBLOCK_INTO_CHAIN" => Array(

"PARENT" => "ADDITIONAL_SETTINGS",

"NAME" => GetMessage("T_IBLOCK_DESC_INCLUDE_IBLOCK_INTO_CHAIN"),

"TYPE" => "CHECKBOX",

"DEFAULT" => "Y",

),

"ADD_SECTIONS_CHAIN" => Array(

"PARENT" => "ADDITIONAL_SETTINGS",

"NAME" => GetMessage("T_IBLOCK_DESC_ADD_SECTIONS_CHAIN"),

"TYPE" => "CHECKBOX",

"DEFAULT" => "Y",

),

"HIDE_LINK_WHEN_NO_DETAIL" => Array(

"PARENT" => "ADDITIONAL_SETTINGS",

"NAME" => GetMessage("T_IBLOCK_DESC_HIDE_LINK_WHEN_NO_DETAIL"),

"TYPE" => "CHECKBOX",

"DEFAULT" => "N",

),

"PARENT_SECTION" => array(

"PARENT" => "ADDITIONAL_SETTINGS",

"NAME" => GetMessage("IBLOCK_SECTION_ID"),

"TYPE" => "STRING",

"DEFAULT" => '',

),

"PARENT_SECTION_CODE" => array(

"PARENT" => "ADDITIONAL_SETTINGS",

"NAME" => GetMessage("IBLOCK_SECTION_CODE"),

"TYPE" => "STRING",

"DEFAULT" => '',

),

"CACHE_TIME" => Array("DEFAULT"=>3600),

"CACHE_FILTER" => array(

"PARENT" => "CACHE_SETTINGS",

"NAME" => GetMessage("IBLOCK_CACHE_FILTER"),

"TYPE" => "CHECKBOX",

"DEFAULT" => "N",

),

//======================================форма=================================

"PROPERTY_CODES" => array(

"PARENT" => "FIELDS",

"NAME" => GetMessage("IBLOCK_PROPERTY"),

"TYPE" => "LIST",

"MULTIPLE" => "Y",

"VALUES" => $arProperty_LNSF,

),

"PROPERTY_CODES_REQUIRED" => array(

"PARENT" => "FIELDS",

"NAME" => GetMessage("IBLOCK_PROPERTY_REQUIRED"),

"TYPE" => "LIST",

"MULTIPLE" => "Y",

"ADDITIONAL_VALUES" => "N",

"VALUES" => $arProperty_LNSF,

),

"GROUPS" => array(

"PARENT" => "ACCESS",

"NAME" => GetMessage("IBLOCK_GROUPS"),

"TYPE" => "LIST",

"MULTIPLE" => "Y",

"ADDITIONAL_VALUES" => "N",

"VALUES" => $arGroups,

),

"STATUS_NEW" => array(

"PARENT" => "PARAMS",

"NAME" => $bWorkflowIncluded? GetMessage("IBLOCK_STATUS_NEW"): GetMessage("IBLOCK_ACTIVE_NEW"),

"TYPE" => "LIST",

"MULTIPLE" => "N",

"VALUES" => $bWorkflowIncluded ? $arWFStatus : $arActiveNew,

),

"STATUS" => array(

"PARENT" => "ACCESS",

"NAME" => $bWorkflowIncluded? GetMessage("IBLOCK_STATUS_STATUS"): GetMessage("IBLOCK_STATUS_ACTIVE"),

"TYPE" => "LIST",

"MULTIPLE" => $bWorkflowIncluded ? "Y" : "N",

"VALUES" => $bWorkflowIncluded ? $arWFStatus : $arActive,

),

"LIST_URL" => array(

"PARENT" => "PARAMS",

"TYPE" => "TEXT",

"NAME" => GetMessage("IBLOCK_ADD_LIST_URL"),

),

"ELEMENT_ASSOC" => array(

"PARENT" => "ACCESS",

"NAME" => GetMessage("IBLOCK_ELEMENT_ASSOC"),

"TYPE" => "LIST",

"ADDITIONAL_VALUES" => "N",

"VALUES" => $arAllowEdit,

"REFRESH" => "Y",

"DEFAULT" => "CREATED_BY",

),

//============================================================================

),

);

//======================================форма=================================

if ($arCurrentValues["ELEMENT_ASSOC"] == "PROPERTY_ID")

{

$arComponentParameters["PARAMETERS"]["ELEMENT_ASSOC_PROPERTY"] = array(

"PARENT" => "ACCESS",

"NAME" => GetMessage("IBLOCK_ELEMENT_ASSOC_PROPERTY"),

"TYPE" => "LIST",

"MULTIPLE" => "N",

"VALUES" => $arProperty,

"ADDITIONAL_VALUES" => "Y",

);

}

$arComponentParameters["PARAMETERS"]["MAX_USER_ENTRIES"] = array(

"PARENT" => "ACCESS",

"NAME" => GetMessage("IBLOCK_MAX_USER_ENTRIES"),

"TYPE" => "TEXT",

"DEFAULT" => "100000",

);

$arComponentParameters["PARAMETERS"]["MAX_LEVELS"] = array(

"PARENT" => "ACCESS",

"NAME" => GetMessage("IBLOCK_MAX_LEVELS"),

"TYPE" => "TEXT",

"DEFAULT" => "100000",

);

$arComponentParameters["PARAMETERS"]["LEVEL_LAST"] = array(

"PARENT" => "ACCESS",

"NAME" => GetMessage("IBLOCK_LEVEL_LAST"),

"TYPE" => "CHECKBOX",

"DEFAULT" => "Y",

);

$arComponentParameters["PARAMETERS"]["USE_CAPTCHA"] = array(

"PARENT" => "PARAMS",

"NAME" => GetMessage("IBLOCK_USE_CAPTCHA"),

"TYPE" => "CHECKBOX",

);

$arComponentParameters["PARAMETERS"]["USER_MESSAGE_EDIT"] = array(

"PARENT" => "PARAMS",

"NAME" => GetMessage("IBLOCK_USER_MESSAGE_EDIT"),

"TYPE" => "TEXT",

);

$arComponentParameters["PARAMETERS"]["USER_MESSAGE_ADD"] = array(

"PARENT" => "PARAMS",

"NAME" => GetMessage("IBLOCK_USER_MESSAGE_ADD"),

"TYPE" => "TEXT",

);

$arComponentParameters["PARAMETERS"]["DEFAULT_INPUT_SIZE"] = array(

"PARENT" => "PARAMS",

"NAME" => GetMessage("IBLOCK_DEFAULT_INPUT_SIZE"),

"TYPE" => "TEXT",

"DEFAULT" => 30,

);

$arComponentParameters["PARAMETERS"]["RESIZE_IMAGES"] = array(

"PARENT" => "PARAMS",

"NAME" => GetMessage("CP_BIEAF_RESIZE_IMAGES"),

"TYPE" => "CHECKBOX",

"DEFAULT" => "N",

);

$arComponentParameters["PARAMETERS"]["MAX_FILE_SIZE"] = array(

"PARENT" => "ACCESS",

"NAME" => GetMessage("IBLOCK_MAX_FILE_SIZE"),

"TYPE" => "TEXT",

"DEFAULT" => "0",

);

$arComponentParameters["PARAMETERS"]["PREVIEW_TEXT_USE_HTML_EDITOR"] = array(

"PARENT" => "ACCESS",

"NAME" => GetMessage("CP_BIEAF_PREVIEW_TEXT_USE_HTML_EDITOR"),

"TYPE" => "CHECKBOX",

"DEFAULT" => "N",

);

$arComponentParameters["PARAMETERS"]["DETAIL_TEXT_USE_HTML_EDITOR"] = array(

"PARENT" => "ACCESS",

"NAME" => GetMessage("CP_BIEAF_DETAIL_TEXT_USE_HTML_EDITOR"),

"TYPE" => "CHECKBOX",

"DEFAULT" => "N",

);

foreach ($arVirtualProperties as $key => $title)

{

$arComponentParameters["PARAMETERS"]["CUSTOM_TITLE_".$key] = array(

"PARENT" => "TITLES",

"NAME" => $title,

"TYPE" => "STRING",

);

}

//============================================================================

CIBlockParameters::AddPagerSettings($arComponentParameters, GetMessage("T_IBLOCK_DESC_PAGER_NEWS"), true, true);

?>

component.php

<?

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

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

if(!isset($arParams["CACHE_TIME"]))

$arParams["CACHE_TIME"] = 3600;

$arParams["IBLOCK_TYPE"] = trim($arParams["IBLOCK_TYPE"]);

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

$arParams["IBLOCK_TYPE"] = "news";

$arParams["IBLOCK_ID"] = trim($arParams["IBLOCK_ID"]);

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

$arParams["INCLUDE_SUBSECTIONS"] = $arParams["INCLUDE_SUBSECTIONS"]!="N";

$arParams["SORT_BY1"] = trim($arParams["SORT_BY1"]);

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

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

if($arParams["SORT_ORDER1"]!="ASC")

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

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

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

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

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

if(strlen($arParams["FILTER_NAME"])<=0 || !ereg("^[A-Za-z_][A-Za-z01-9_]*$", $arParams["FILTER_NAME"]))

{

$arrFilter = array();

}

else

{

$arrFilter = $GLOBALS[$arParams["FILTER_NAME"]];

if(!is_array($arrFilter))

$arrFilter = array();

}

$arParams["CHECK_DATES"] = $arParams["CHECK_DATES"]!="N";

if(!is_array($arParams["FIELD_CODE"]))

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

foreach($arParams["FIELD_CODE"] as $key=>$val)

if(!$val)

unset($arParams["FIELD_CODE"][$key]);

if(!is_array($arParams["PROPERTY_CODE"]))

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

foreach($arParams["PROPERTY_CODE"] as $key=>$val)

if($val==="")

unset($arParams["PROPERTY_CODE"][$key]);

$arParams["DETAIL_URL"]=trim($arParams["DETAIL_URL"]);

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

if($arParams["NEWS_COUNT"]<=0)

$arParams["NEWS_COUNT"] = 20;

$arParams["CACHE_FILTER"] = $arParams["CACHE_FILTER"]=="Y";

if(!$arParams["CACHE_FILTER"] && count($arrFilter)>0)

$arParams["CACHE_TIME"] = 0;

$arParams["SET_TITLE"] = $arParams["SET_TITLE"]!="N";

$arParams["DISPLAY_PANEL"] = $arParams["DISPLAY_PANEL"]=="Y";

$arParams["ADD_SECTIONS_CHAIN"] = $arParams["ADD_SECTIONS_CHAIN"]!="N"; $arParams["INCLUDE_IBLOCK_INTO_CHAIN"] = $arParams["INCLUDE_IBLOCK_INTO_CHAIN"]!="N";

$arParams["ACTIVE_DATE_FORMAT"] = trim($arParams["ACTIVE_DATE_FORMAT"]);

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

$arParams["ACTIVE_DATE_FORMAT"] = $DB->DateFormatToPHP(CSite::GetDateFormat("SHORT"));

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

$arParams["HIDE_LINK_WHEN_NO_DETAIL"] = $arParams["HIDE_LINK_WHEN_NO_DETAIL"]=="Y";

$arParams["DISPLAY_TOP_PAGER"] = $arParams["DISPLAY_TOP_PAGER"]=="Y";

$arParams["DISPLAY_BOTTOM_PAGER"] = $arParams["DISPLAY_BOTTOM_PAGER"]!="N";

$arParams["PAGER_TITLE"] = trim($arParams["PAGER_TITLE"]);

$arParams["PAGER_SHOW_ALWAYS"] = $arParams["PAGER_SHOW_ALWAYS"]!="N";

$arParams["PAGER_TEMPLATE"] = trim($arParams["PAGER_TEMPLATE"]);

$arParams["PAGER_DESC_NUMBERING"] = $arParams["PAGER_DESC_NUMBERING"]=="Y";

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

$arParams["PAGER_SHOW_ALL"] = $arParams["PAGER_SHOW_ALL"]!=="N";

if($arParams["DISPLAY_TOP_PAGER"] || $arParams["DISPLAY_BOTTOM_PAGER"])

{

$arNavParams = array(

"nPageSize" => $arParams["NEWS_COUNT"],

"bDescPageNumbering" => $arParams["PAGER_DESC_NUMBERING"],

"bShowAll" => $arParams["PAGER_SHOW_ALL"],

);

$arNavigation = CDBResult::GetNavParams($arNavParams);

if($arNavigation["PAGEN"]==0 && $arParams["PAGER_DESC_NUMBERING_CACHE_TIME"]>0)

$arParams["CACHE_TIME"] = $arParams["PAGER_DESC_NUMBERING_CACHE_TIME"];

}

else

{

$arNavParams = array(

"nTopCount" => $arParams["NEWS_COUNT"],

"bDescPageNumbering" => $arParams["PAGER_DESC_NUMBERING"],

);

$arNavigation = false;

}

$arParams["USE_PERMISSIONS"] = $arParams["USE_PERMISSIONS"]=="Y";

if(!is_array($arParams["GROUP_PERMISSIONS"]))

$arParams["GROUP_PERMISSIONS"] = array(1);

$bUSER_HAVE_ACCESS = !$arParams["USE_PERMISSIONS"];

if($arParams["USE_PERMISSIONS"] && isset($GLOBALS["USER"]) && is_object($GLOBALS["USER"]))

{

$arUserGroupArray = $GLOBALS["USER"]->GetUserGroupArray();

foreach($arParams["GROUP_PERMISSIONS"] as $PERM)

{

if(in_array($PERM, $arUserGroupArray))

{

$bUSER_HAVE_ACCESS = true;

break;

}

}

}

//if($this->StartResultCache(false, array($USER->GetGroups(), $bUSER_HAVE_ACCESS, $arNavigation, $arrFilter)))

{

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

{

$this->AbortResultCache();

ShowError(GetMessage("IBLOCK_MODULE_NOT_INSTALLED"));

return;

}

if(is_numeric($arParams["IBLOCK_ID"]))

{

$rsIBlock = CIBlock::GetList(array(), array(

"ACTIVE" => "Y",

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

));

}

else

{

$rsIBlock = CIBlock::GetList(array(), array(

"ACTIVE" => "Y",

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

"SITE_ID" => SITE_ID,

));

}

if($arResult = $rsIBlock->GetNext())

{

$arResult["USER_HAVE_ACCESS"] = $bUSER_HAVE_ACCESS;

//SELECT

$arSelect = array_merge($arParams["FIELD_CODE"], array(

"ID",

"IBLOCK_ID",

"IBLOCK_SECTION_ID",

"NAME",

"ACTIVE_FROM",

"DETAIL_PAGE_URL",

"DETAIL_TEXT",

"DETAIL_TEXT_TYPE",

"PREVIEW_TEXT",

"PREVIEW_TEXT_TYPE",

"PREVIEW_PICTURE",

));

$bGetProperty = count($arParams["PROPERTY_CODE"])>0;

if($bGetProperty)

$arSelect[]="PROPERTY_*";

//WHERE

$arFilter = array (

"IBLOCK_ID" => $arResult["ID"],

"IBLOCK_LID" => SITE_ID,

"ACTIVE" => "Y",

"CHECK_PERMISSIONS" => "Y",

);

if($arParams["CHECK_DATES"])

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

$arParams["PARENT_SECTION"] = CIBlockFindTools::GetSectionID(

$arParams["PARENT_SECTION"],

$arParams["PARENT_SECTION_CODE"],

array(

"GLOBAL_ACTIVE" => "Y",

"IBLOCK_ID" => $arResult["ID"],

)

);

if($arParams["PARENT_SECTION"]>0)

{

$arFilter["SECTION_ID"] = $arParams["PARENT_SECTION"];

if($arParams["INCLUDE_SUBSECTIONS"])

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

$arResult["SECTION"]= array("PATH" => array());

$rsPath = GetIBlockSectionPath($arResult["ID"], $arParams["PARENT_SECTION"]);

$rsPath->SetUrlTemplates("", $arParams["SECTION_URL"]);

while($arPath=$rsPath->GetNext())

{

$arResult["SECTION"]["PATH"][] = $arPath;

}

}

else

{

$arResult["SECTION"]= false;

}

//ORDER BY

$arSort = array(

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

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

);

if(!array_key_exists("ID", $arSort))

$arSort["ID"] = "DESC";

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

$rsElement = CIBlockElement::GetList($arSort, array_merge($arFilter, $arrFilter), false, $arNavParams, $arSelect);

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

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

while($obElement = $rsElement->GetNextElement())

{

$arItem = $obElement->GetFields();

if($arParams["PREVIEW_TRUNCATE_LEN"]>0 && $arItem["PREVIEW_TEXT_TYPE"]!="html")

{

$end_pos = $arParams["PREVIEW_TRUNCATE_LEN"];

while(substr($arItem["PREVIEW_TEXT"],$end_pos,1)!=" " && $end_pos<strlen($arItem["PREVIEW_TEXT"]))

$end_pos++;

if($end_pos<strlen($arItem["PREVIEW_TEXT"]))

$arItem["PREVIEW_TEXT"] = substr($arItem["PREVIEW_TEXT"], 0, $end_pos)."...";

}

if(strlen($arItem["ACTIVE_FROM"])>0)

$arItem["DISPLAY_ACTIVE_FROM"] = CIBlockFormatProperties::DateFormat($arParams["ACTIVE_DATE_FORMAT"], MakeTimeStamp($arItem["ACTIVE_FROM"], CSite::GetDateFormat()));

else

$arItem["DISPLAY_ACTIVE_FROM"] = "";

if(array_key_exists("PREVIEW_PICTURE", $arItem))

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

if(array_key_exists("DETAIL_PICTURE", $arItem))

$arItem["DETAIL_PICTURE"] = CFile::GetFileArray($arItem["DETAIL_PICTURE"]);

$arItem["FIELDS"] = array();

foreach($arParams["FIELD_CODE"] as $code)

if(array_key_exists($code, $arItem))

$arItem["FIELDS"][$code] = $arItem[$code];

if($bGetProperty)

$arItem["PROPERTIES"] = $obElement->GetProperties();

$arItem["DISPLAY_PROPERTIES"]=array();

foreach($arParams["PROPERTY_CODE"] as $pid)

{

$prop = &$arItem["PROPERTIES"][$pid];

if((is_array($prop["VALUE"]) && count($prop["VALUE"])>0) ||

(!is_array($prop["VALUE"]) && strlen($prop["VALUE"])>0))

{

$arItem["DISPLAY_PROPERTIES"][$pid] = CIBlockFormatProperties::GetDisplayValue($arItem, $prop, "news_out");

}

}

$arResult["ITEMS"][]=$arItem;

}

$arResult["NAV_STRING"] = $rsElement->GetPageNavStringEx($navComponentObject, $arParams["PAGER_TITLE"], $arParams["PAGER_TEMPLATE"], $arParams["PAGER_SHOW_ALWAYS"]);

$arResult["NAV_CACHED_DATA"] = $navComponentObject->GetTemplateCachedData();

$arResult["NAV_RESULT"] = $rsElement;

$this->SetResultCacheKeys(array(

"ID",

"IBLOCK_TYPE_ID",

"NAV_CACHED_DATA",

"NAME",

"SECTION",

));

$op=1;

}

else

{

$this->AbortResultCache();

ShowError(GetMessage("T_NEWS_NEWS_NA"));

@define("ERROR_404", "Y");

if($arParams["SET_STATUS_404"]==="Y")

CHTTP::SetStatus("404 Not Found");

}

}

if(isset($arResult["ID"]))

{

$arTitleOptions = null;

if($USER->IsAuthorized())

{

if(

$arParams["DISPLAY_PANEL"]

|| $APPLICATION->GetShowIncludeAreas()

|| $arParams["SET_TITLE"]

)

{

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

{

$arButtons = CIBlock::GetPanelButtons($arResult["ID"], 0, $arParams["PARENT_SECTION"]);

if($arParams["DISPLAY_PANEL"])

CIBlock::AddPanelButtons($APPLICATION->GetPublicShowMode(), $this->GetName(), $arButtons);

if($APPLICATION->GetShowIncludeAreas())

$this->AddIncludeAreaIcons(CIBlock::GetComponentMenu($APPLICATION->GetPublicShowMode(), $arButtons));

if($arParams["SET_TITLE"])

{

$arTitleOptions = array(

'ADMIN_EDIT_LINK' => $arButtons["submenu"]["edit_iblock"]["ACTION"],

'PUBLIC_EDIT_LINK' => "",

'COMPONENT_NAME' => $this->GetName(),

);

}

}

}

}

$this->SetTemplateCachedData($arResult["NAV_CACHED_DATA"]);

if($arParams["SET_TITLE"])

{

$APPLICATION->SetTitle($arResult["NAME"], $arTitleOptions);

}

if($arParams["INCLUDE_IBLOCK_INTO_CHAIN"] && isset($arResult["NAME"]))

{

$APPLICATION->AddChainItem($arResult["NAME"]);

}

if($arParams["ADD_SECTIONS_CHAIN"] && is_array($arResult["SECTION"]))

{

foreach($arResult["SECTION"]["PATH"] as $arPath)

{

$APPLICATION->AddChainItem($arPath["NAME"], $arPath["~SECTION_PAGE_URL"]);

}

}

}

//=============================форма==================================

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

{

$bWorkflowIncluded = CModule::IncludeModule("workflow");

$arParams["ID"] = intval($_REQUEST["CODE"]);

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

$arParams["PREVIEW_TEXT_USE_HTML_EDITOR"] = $arParams["PREVIEW_TEXT_USE_HTML_EDITOR"] === "Y" && CModule::IncludeModule("fileman");

$arParams["DETAIL_TEXT_USE_HTML_EDITOR"] = $arParams["DETAIL_TEXT_USE_HTML_EDITOR"] === "Y" && CModule::IncludeModule("fileman");

$arParams["RESIZE_IMAGES"] = $arParams["RESIZE_IMAGES"]==="Y";

if(!is_array($arParams["PROPERTY_CODES"]))

{

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

}

else

{

foreach($arParams["PROPERTY_CODES"] as $i=>$k)

if(strlen($k) <= 0)

unset($arParams["PROPERTY_CODES"][$i]);

}

$arParams["PROPERTY_CODES_REQUIRED"] = is_array($arParams["PROPERTY_CODES_REQUIRED"]) ? $arParams["PROPERTY_CODES_REQUIRED"] : array();

foreach($arParams["PROPERTY_CODES_REQUIRED"] as $key => $value)

if(strlen(trim($value)) <= 0)

unset($arParams["PROPERTY_CODES_REQUIRED"][$key]);

$arParams["USER_MESSAGE_ADD"] = trim($arParams["USER_MESSAGE_ADD"]);

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

$arParams["USER_MESSAGE_ADD"] = GetMessage("IBLOCK_USER_MESSAGE_ADD_DEFAULT");

$arParams["USER_MESSAGE_EDIT"] = trim($arParams["USER_MESSAGE_EDIT"]);

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

$arParams["USER_MESSAGE_EDIT"] = GetMessage("IBLOCK_USER_MESSAGE_EDIT_DEFAULT");

if (!$bWorkflowIncluded)

{

if ($arParams["STATUS_NEW"] != "N" && $arParams["STATUS_NEW"] != "NEW") $arParams["STATUS_NEW"] = "ANY";

}

if(!is_array($arParams["STATUS"]))

{

if($arParams["STATUS"] === "INACTIVE")

$arParams["STATUS"] = array("INACTIVE");

else

$arParams["STATUS"] = array("ANY");

}

if(!is_array($arParams["GROUPS"]))

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

$arGroups = $USER->GetUserGroupArray();

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

if ($arParams["ID"] == 0)

{

$bAllowAccess = count(array_intersect($arGroups, $arParams["GROUPS"])) > 0 || $USER->IsAdmin();

}

else

{

// права для правки текущего элемента

$bAllowAccess = $USER->GetID() > 0;

}

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

if ($bAllowAccess)

{

// получаем разделы инфоблока

$rsIBlockSectionList = CIBlockSection::GetTreeList(array("ACTIVE"=>"Y", "IBLOCK_ID"=>$arParams["IBLOCK_ID"]));

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

while ($arSection = $rsIBlockSectionList->GetNext())

{

$arSection["NAME"] = str_repeat(" . ", $arSection["DEPTH_LEVEL"]).$arSection["NAME"];

$arResult["SECTION_LIST"][$arSection["ID"]] = array(

"VALUE" => $arSection["NAME"]

);

}

$COL_COUNT = intval($arParams["DEFAULT_INPUT_SIZE"]);

if($COL_COUNT < 1)

$COL_COUNT = 30;

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

$arResult["PROPERTY_LIST_FULL"] = array(

"NAME" => array(

"PROPERTY_TYPE" => "S",

"MULTIPLE" => "N",

"COL_COUNT" => $COL_COUNT,

),

"TAGS" => array(

"PROPERTY_TYPE" => "S",

"MULTIPLE" => "N",

"COL_COUNT" => $COL_COUNT,

),

"DATE_ACTIVE_FROM" => array(

"PROPERTY_TYPE" => "S",

"MULTIPLE" => "N",

"USER_TYPE" => "DateTime",

),

"DATE_ACTIVE_TO" => array(

"PROPERTY_TYPE" => "S",

"MULTIPLE" => "N",

"USER_TYPE" => "DateTime",

),

"IBLOCK_SECTION" => array(

"PROPERTY_TYPE" => "L",

"ROW_COUNT" => "8",

"MULTIPLE" => $arParams["MAX_LEVELS"] == 1 ? "N" : "Y",

"ENUM" => $arResult["SECTION_LIST"],

),

"PREVIEW_TEXT" => array(

"PROPERTY_TYPE" => ($arParams["PREVIEW_TEXT_USE_HTML_EDITOR"]? "HTML": "T"),

"MULTIPLE" => "N",

"ROW_COUNT" => "5",

"COL_COUNT" => $COL_COUNT,

),

"PREVIEW_PICTURE" => array(

"PROPERTY_TYPE" => "F",

"FILE_TYPE" => "jpg, gif, bmp, png, jpeg",

"MULTIPLE" => "N",

),

"DETAIL_TEXT" => array(

"PROPERTY_TYPE" => ($arParams["DETAIL_TEXT_USE_HTML_EDITOR"]? "HTML": "T"),

"MULTIPLE" => "N",

"ROW_COUNT" => "5",

"COL_COUNT" => $COL_COUNT,

),

"DETAIL_PICTURE" => array(

"PROPERTY_TYPE" => "F",

"FILE_TYPE" => "jpg, gif, bmp, png, jpeg",

"MULTIPLE" => "N",

),

);

foreach ($arResult["PROPERTY_LIST_FULL"] as $key => $arr)

{

if (in_array($key, $arParams["PROPERTY_CODES"])) $arResult["PROPERTY_LIST"][] = $key;

}

// получаем параметры property инфоблока

$rsIBLockPropertyList = CIBlockProperty::GetList(array("sort"=>"asc", "name"=>"asc"), array("ACTIVE"=>"Y", "IBLOCK_ID"=>$arParams["IBLOCK_ID"]));

while ($arProperty = $rsIBLockPropertyList->GetNext())

{

// получаем список значений property

if ($arProperty["PROPERTY_TYPE"] == "L")

{

$rsPropertyEnum = CIBlockProperty::GetPropertyEnum($arProperty["ID"]);

$arProperty["ENUM"] = array();

while ($arPropertyEnum = $rsPropertyEnum->GetNext())

{

$arProperty["ENUM"][$arPropertyEnum["ID"]] = $arPropertyEnum;

}

}

if ($arProperty["PROPERTY_TYPE"] == "T")

{

if (empty($arProperty["COL_COUNT"])) $arProperty["COL_COUNT"] = "30";

if (empty($arProperty["ROW_COUNT"])) $arProperty["ROW_COUNT"] = "5";

}

if(strlen($arProperty["USER_TYPE"]) > 0 )

{

$arUserType = CIBlockProperty::GetUserType($arProperty["USER_TYPE"]);

if(array_key_exists("GetPublicEditHTML", $arUserType))

$arProperty["GetPublicEditHTML"] = $arUserType["GetPublicEditHTML"];

else

$arProperty["GetPublicEditHTML"] = false;

}

else

{

$arProperty["GetPublicEditHTML"] = false;

}

// добавляем параметры property для редактирования

if (in_array($arProperty["ID"], $arParams["PROPERTY_CODES"]))

$arResult["PROPERTY_LIST"][] = $arProperty["ID"];

$arResult["PROPERTY_LIST_FULL"][$arProperty["ID"]] = $arProperty;

}

// устанавливаем начальное значение фильтра

$arFilter = array("IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], "IBLOCK_ID" => $arParams["IBLOCK_ID"], "SHOW_NEW" => "Y");

if ($arParams["ELEMENT_ASSOC"] == "PROPERTY_ID" && strlen($arParams["ELEMENT_ASSOC_PROPERTY"] > 0) && is_array($arResult["PROPERTY_LIST_FULL"][$arParams["ELEMENT_ASSOC_PROPERTY"]]))

{

if ($USER->GetID())

$arFilter["PROPERTY_".$arParams["ELEMENT_ASSOC_PROPERTY"]] = $USER->GetID();

else

$arFilter["ID"] = -1;

}

elseif ($USER->GetID())

{

$arFilter["CREATED_BY"] = $USER->GetID();

}

else

{

$arFilter["ID"] = -1;

}

//устанавливем доступ к текущему элементу

if ($arParams["ID"] > 0)

{

if (empty($arFilter["ID"])) $arFilter["ID"] = $arParams["ID"];

// получаем текущий элемент инфоблока

//echo "<pre>"; print_r($arFilter); echo "</pre>";

$rsIBlockElements = CIBlockElement::GetList(array("SORT" => "ASC"), $arFilter);

if ($arElement = $rsIBlockElements->Fetch())

{

$bAllowAccess = true;

if ($bWorkflowIncluded)

{

$LAST_ID = CIBlockElement::WF_GetLast($arElement['ID']);

if ($LAST_ID != $arElement["ID"])

{

$rsElement = CIBlockElement::GetByID($LAST_ID);

$arElement = $rsElement->Fetch();

}

if (!in_array($arElement["WF_STATUS_ID"], $arParams["STATUS"]))

{

echo ShowError(GetMessage("IBLOCK_ADD_ACCESS_DENIED"));

$bAllowAccess = false;

}

}

else

{

if (in_array("INACTIVE", $arParams["STATUS"]) === true && $arElement["ACTIVE"] !== "N")

{

echo ShowError(GetMessage("IBLOCK_ADD_ACCESS_DENIED"));

$bAllowAccess = false;

}

}

}

else

{

echo ShowError(GetMessage("IBLOCK_ADD_ELEMENT_NOT_FOUND"));

$bAllowAccess = false;

}

}

elseif ($arParams["MAX_USER_ENTRIES"] > 0 && $USER->GetID())

{

$rsIBlockElements = CIBlockElement::GetList(array("SORT" => "ASC"), $arFilter);

$elements_count = $rsIBlockElements->SelectedRowsCount();

if ($elements_count >= $arParams["MAX_USER_ENTRIES"])

{

echo ShowError(GetMessage("IBLOCK_ADD_MAX_ENTRIES_EXCEEDED"));

$bHideAuth = true;

$bAllowAccess = false;

}

}

}

if ($bAllowAccess)

{

// POST данные

if (check_bitrix_sessid() && (!empty($_REQUEST["iblock_submit"]) || !empty($_REQUEST["iblock_apply"])))

{

$SEF_URL = $_REQUEST["SEF_APPLICATION_CUR_PAGE_URL"];

$arResult["SEF_URL"] = $SEF_URL;

$arProperties = $_REQUEST["PROPERTY"];

$arUpdateValues = array();

$arUpdatePropertyValues = array();

// параметры properties

foreach ($arParams["PROPERTY_CODES"] as $i => $propertyID)

{

$arPropertyValue = $arProperties[$propertyID];

if (intval($propertyID) > 0)

{

if ($arResult["PROPERTY_LIST_FULL"][$propertyID]["PROPERTY_TYPE"] != "F")

{

if ($arResult["PROPERTY_LIST_FULL"][$propertyID]["MULTIPLE"] == "Y")

{

$arUpdatePropertyValues[$propertyID] = array();

if (!is_array($arPropertyValue))

{

$arUpdatePropertyValues[$propertyID][] = $arPropertyValue;

}

else

{

foreach ($arPropertyValue as $key => $value)

{

if (

$arResult["PROPERTY_LIST_FULL"][$propertyID]["PROPERTY_TYPE"] == "L" && intval($value) > 0

||

$arResult["PROPERTY_LIST_FULL"][$propertyID]["PROPERTY_TYPE"] != "L" && !empty($value)

)

{

$arUpdatePropertyValues[$propertyID][] = $value;

}

}

}

}

else

{

if ($arResult["PROPERTY_LIST_FULL"][$propertyID]["PROPERTY_TYPE"] != "L")

$arUpdatePropertyValues[$propertyID] = $arPropertyValue[0];

else

$arUpdatePropertyValues[$propertyID] = $arPropertyValue;

}

}

else

{

$arUpdatePropertyValues[$propertyID] = array();

foreach ($arPropertyValue as $key => $value)

{

$arFile = $_FILES["PROPERTY_FILE_".$propertyID."_".$key];

$arFile["del"] = $_REQUEST["DELETE_FILE"][$propertyID][$key] == "Y" ? "Y" : "";

$arUpdatePropertyValues[$propertyID][$key] = $arFile;

if(($arParams["MAX_FILE_SIZE"] > 0) && ($arFile["size"] > $arParams["MAX_FILE_SIZE"]))

$arResult["ERRORS"][] = GetMessage("IBLOCK_ERROR_FILE_TOO_LARGE");

}

if (count($arUpdatePropertyValues[$propertyID]) == 0)

unset($arUpdatePropertyValues[$propertyID]);

}

}

else

{

if ($propertyID == "IBLOCK_SECTION")

{

if (!is_array($arProperties[$propertyID]))

$arProperties[$propertyID] = array($arProperties[$propertyID]);

$arUpdateValues[$propertyID] = $arProperties[$propertyID];

if ($arParams["LEVEL_LAST"] == "Y" && is_array($arUpdateValues[$propertyID]))

{

foreach ($arUpdateValues[$propertyID] as $section_id)

{

$rsChildren = CIBlockSection::GetList(array("SORT" => "ASC"), array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "SECTION_ID" => $section_id));

if ($rsChildren->SelectedRowsCount() > 0)

{

$arResult["ERRORS"][] = GetMessage("IBLOCK_ADD_LEVEL_LAST_ERROR");

break;

}

}

}

if ($arParams["MAX_LEVELS"] > 0 && count($arUpdateValues[$propertyID]) > $arParams["MAX_LEVELS"])

{

$arResult["ERRORS"][] = str_replace("#MAX_LEVELS#", $arParams["MAX_LEVELS"], GetMessage("IBLOCK_ADD_MAX_LEVELS_EXCEEDED"));

}

}

else

{

if($arResult["PROPERTY_LIST_FULL"][$propertyID]["PROPERTY_TYPE"] == "F")

{

$arFile = $_FILES["PROPERTY_FILE_".$propertyID."_0"];

$arFile["del"] = $_REQUEST["DELETE_FILE"][$propertyID][0] == "Y" ? "Y" : "";

$arUpdateValues[$propertyID] = $arFile;

if ($arParams["MAX_FILE_SIZE"] > 0 && $arFile["size"] > $arParams["MAX_FILE_SIZE"])

$arResult["ERRORS"][] = GetMessage("IBLOCK_ERROR_FILE_TOO_LARGE");

}

elseif($arResult["PROPERTY_LIST_FULL"][$propertyID]["PROPERTY_TYPE"] == "HTML")

{

if($propertyID == "DETAIL_TEXT")

$arUpdateValues["DETAIL_TEXT_TYPE"] = "html";

if($propertyID == "PREVIEW_TEXT")

$arUpdateValues["PREVIEW_TEXT_TYPE"] = "html";

$arUpdateValues[$propertyID] = $arProperties[$propertyID][0];

}

else

{

if($propertyID == "DETAIL_TEXT")

$arUpdateValues["DETAIL_TEXT_TYPE"] = "text";

if($propertyID == "PREVIEW_TEXT")

$arUpdateValues["PREVIEW_TEXT_TYPE"] = "text";

$arUpdateValues[$propertyID] = $arProperties[$propertyID][0];

}

}

}

}

foreach ($arParams["PROPERTY_CODES_REQUIRED"] as $key => $propertyID)

{

$bError = false;

$propertyValue = intval($propertyID) > 0 ? $arUpdatePropertyValues[$propertyID] : $arUpdateValues[$propertyID];

//Файлы

if ($arResult["PROPERTY_LIST_FULL"][$propertyID]['PROPERTY_TYPE'] == 'F')

{

//новый элемент

if ($arParams["ID"] <= 0)

{

$bError = true;

if(is_array($propertyValue))

{

if(array_key_exists("tmp_name", $propertyValue) && array_key_exists("size", $propertyValue))

{

if($propertyValue['size'] > 0)

{

$bError = false;

}

}

else

{

foreach ($propertyValue as $arFile)

{

if ($arFile['size'] > 0)

{

$bError = false;

break;

}

}

}

}

}

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

elseif (intval($propertyID) <= 0)

{

if ($propertyValue['size'] <= 0)

{

if (intval($arElement[$propertyID]) <= 0 || $propertyValue['del'] == 'Y')

$bError = true;

}

}

//параметры property элемента

else

{

$dbProperty = CIBlockElement::GetProperty(

$arElement["IBLOCK_ID"],

$arParams["ID"],

"sort", "asc",

array("ID"=>$propertyID)

);

$bCount = 0;

while ($arProperty = $dbProperty->Fetch())

$bCount++;

foreach ($propertyValue as $arFile)

{

if ($arFile['size'] > 0)

{

$bCount++;

break;

}

elseif ($arFile['del'] == 'Y')

{

$bCount--;

}

}

$bError = $bCount <= 0;

}

}

elseif ($arResult["PROPERTY_LIST_FULL"][$propertyID]["MULTIPLE"] == "Y" || $arResult["PROPERTY_LIST_FULL"][$propertyID]["PROPERTY_TYPE"] == "L")

{

if(is_array($propertyValue))

{

$bError = true;

foreach($propertyValue as $value)

{

if(strlen($value) > 0)

{

$bError = false;

break;

}

}

}

elseif(strlen($propertyValue) <= 0)

{

$bError = true;

}

}

elseif (is_array($propertyValue) && strlen($propertyValue["VALUE"]) <= 0)

{

$bError = true;

}

elseif (strlen($propertyValue) <= 0)

{

$bError = true;

}

if ($bError)

{

$arResult["ERRORS"][] = str_replace("#PROPERTY_NAME#", intval($propertyID) > 0 ? $arResult["PROPERTY_LIST_FULL"][$propertyID]["NAME"] : (!empty($arParams["CUSTOM_TITLE_".$propertyID]) ? $arParams["CUSTOM_TITLE_".$propertyID] : GetMessage("IBLOCK_FIELD_".$propertyID)), GetMessage("IBLOCK_ADD_ERROR_REQUIRED"));

}

}

// устанавливаем captcha

if ($arParams["USE_CAPTCHA"] == "Y" && $arParams["ID"] <= 0)

{

if (!$APPLICATION->CaptchaCheckCode($_REQUEST["captcha_word"], $_REQUEST["captcha_sid"]))

{

$arResult["ERRORS"][] = GetMessage("IBLOCK_FORM_WRONG_CAPTCHA");

}

}

if (count($arResult["ERRORS"]) == 0)

{

if ($arParams["ELEMENT_ASSOC"] == "PROPERTY_ID")

$arUpdatePropertyValues[$arParams["ELEMENT_ASSOC_PROPERTY"]] = $USER->GetID();

$arUpdateValues["MODIFIED_BY"] = $USER->GetID();

$arUpdateValues["PROPERTY_VALUES"] = $arUpdatePropertyValues;

if ($bWorkflowIncluded && strlen($arParams["STATUS_NEW"]) > 0)

{

$arUpdateValues["WF_STATUS_ID"] = $arParams["STATUS_NEW"];

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

}

else

{

if ($arParams["STATUS_NEW"] == "ANY")

{

$arUpdateValues["ACTIVE"] = "N";

}

elseif ($arParams["STATUS_NEW"] == "N")

{

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

}

else

{

if ($arParams["ID"] <= 0 ) $arUpdateValues["ACTIVE"] = "N";

//$arUpdateValues["ACTIVE"] = $arParams["ID"] > 0 ? "Y" : "N";

}

}

// изменяем существующий элемент

$oElement = new CIBlockElement();

if ($arParams["ID"] > 0)

{

$sAction = "EDIT";

$bFieldProps = array();

foreach($arUpdateValues["PROPERTY_VALUES"] as $prop_id=>$v)

{

$bFieldProps[$prop_id]=true;

}

$dbPropV = CIBlockElement::GetProperty($arParams["IBLOCK_ID"], $arParams["ID"], "sort", "asc", Array("ACTIVE"=>"Y"));

while($arPropV = $dbPropV->Fetch())

{

if(!array_key_exists($arPropV["ID"], $bFieldProps) && $arPropV["PROPERTY_TYPE"] != "F")

{

if($arPropV["MULTIPLE"] == "Y")

{

if(!array_key_exists($arPropV["ID"], $arUpdateValues["PROPERTY_VALUES"]))

$arUpdateValues["PROPERTY_VALUES"][$arPropV["ID"]] = array();

$arUpdateValues["PROPERTY_VALUES"][$arPropV["ID"]][$arPropV["PROPERTY_VALUE_ID"]] = array(

"VALUE" => $arPropV["VALUE"],

"DESCRIPTION" => $arPropV["DESCRIPTION"],

);

}

else

{

$arUpdateValues["PROPERTY_VALUES"][$arPropV["ID"]] = array(

"VALUE" => $arPropV["VALUE"],

"DESCRIPTION" => $arPropV["DESCRIPTION"],

);

}

}

}

if (!$res = $oElement->Update($arParams["ID"], $arUpdateValues, $bWorkflowIncluded, true, $arParams["RESIZE_IMAGES"]))

{

$arResult["ERRORS"][] = $oElement->LAST_ERROR;

}

}

// добавляем новый элемент

else

{

$arUpdateValues["IBLOCK_ID"] = $arParams["IBLOCK_ID"];

// устанавливаем начало активности для новогоif (strlen($arUpdateValues["DATE_ACTIVE_FROM"]) <= 0)

{

$arUpdateValues["DATE_ACTIVE_FROM"] = ConvertTimeStamp(false, "FULL");

}

$sAction = "ADD";

if (!$arParams["ID"] = $oElement->Add($arUpdateValues, $bWorkflowIncluded, true, $arParams["RESIZE_IMAGES"]))

{

$arResult["ERRORS"][] = $oElement->LAST_ERROR;

}

if (!empty($_REQUEST["iblock_apply"]) && strlen($SEF_URL) > 0)

{

if (strpos($SEF_URL, "?") === false) $SEF_URL .= "?edit=Y";

elseif (strpos($SEF_URL, "edit=") === false) $SEF_URL .= "&edit=Y";

$SEF_URL .= "&CODE=".$arParams["ID"];

}

}

}

if (count($arResult["ERRORS"]) == 0)

{

if (!empty($_REQUEST["iblock_submit"]))

{

if (strlen($arParams["LIST_URL"]) > 0)

{

$sRedirectUrl = $arParams["LIST_URL"];

}

else

{

if (strlen($SEF_URL) > 0)

{

$SEF_URL = str_replace("edit=Y", "", $SEF_URL);

$SEF_URL = str_replace("?&", "?", $SEF_URL);

$SEF_URL = str_replace("&&", "&", $SEF_URL);

$sRedirectUrl = $SEF_URL;

}

else

{

$sRedirectUrl = $APPLICATION->GetCurPageParam("", array("edit", "CODE"), $get_index_page=false);

}

}

}

else

{

if (strlen($SEF_URL) > 0)

$sRedirectUrl = $SEF_URL;

else

$sRedirectUrl = $APPLICATION->GetCurPageParam("edit=Y&CODE=".$arParams["ID"], array("edit", "CODE"), $get_index_page=false);

}

$sAction = $sAction == "ADD" ? "ADD" : "EDIT";

$sRedirectUrl .= (strpos($sRedirectUrl, "?") === false ? "?" : "&")."strIMessage=";

$sRedirectUrl .= urlencode($arParams["USER_MESSAGE_".$sAction]);

//echo $sRedirectUrl;

LocalRedirect($sRedirectUrl);

exit();

}

}

//подготавливаем данные для формы

$arResult["PROPERTY_REQUIRED"] = is_array($arParams["PROPERTY_CODES_REQUIRED"]) ? $arParams["PROPERTY_CODES_REQUIRED"] : array();

if ($arParams["ID"] > 0)

{

// $arElement is defined before in elements rights check

$rsElementSections = CIBlockElement::GetElementGroups($arElement["ID"]);

$arElement["IBLOCK_SECTION"] = array();

while ($arSection = $rsElementSections->GetNext())

{

$arElement["IBLOCK_SECTION"][] = array("VALUE" => $arSection["ID"]);

}

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

foreach($arElement as $key => $value)

{

$arResult["ELEMENT"]["~".$key] = $value;

if(!is_array($value) && !is_object($value))

$arResult["ELEMENT"][$key] = htmlspecialchars($value);

else

$arResult["ELEMENT"][$key] = $value;

}

if(

$arParams["DETAIL_TEXT_USE_HTML_EDITOR"]

&& array_key_exists("DETAIL_TEXT", $arResult["ELEMENT"])

&& strtolower($arResult["ELEMENT"]["DETAIL_TEXT_TYPE"]) == "html"

)

$arResult["ELEMENT"]["DETAIL_TEXT"] = $arResult["ELEMENT"]["~DETAIL_TEXT"];

if(

$arParams["PREVIEW_TEXT_USE_HTML_EDITOR"]

&& array_key_exists("PREVIEW_TEXT", $arResult["ELEMENT"])

&& strtolower($arResult["ELEMENT"]["PREVIEW_TEXT_TYPE"]) == "html"

)

$arResult["ELEMENT"]["PREVIEW_TEXT"] = $arResult["ELEMENT"]["~PREVIEW_TEXT"];

//$arResult["ELEMENT"] = $arElement;

// загружаем параметры properties

$rsElementProperties = CIBlockElement::GetProperty($arParams["IBLOCK_ID"], $arElement["ID"], $by="sort", $order="asc");

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

while ($arElementProperty = $rsElementProperties->Fetch())

{

if(!array_key_exists($arElementProperty["ID"], $arResult["ELEMENT_PROPERTIES"]))

$arResult["ELEMENT_PROPERTIES"][$arElementProperty["ID"]] = array();

if(is_array($arElementProperty["VALUE"]))

{

$htmlvalue = array();

foreach($arElementProperty["VALUE"] as $k => $v)

{

if(is_array($v))

{

$htmlvalue[$k] = array();

foreach($v as $k1 => $v1)

$htmlvalue[$k][$k1] = htmlspecialchars($v1);

}

else

{

$htmlvalue[$k] = htmlspecialchars($v);

}

}

}

else

{

$htmlvalue = htmlspecialchars($arElementProperty["VALUE"]);

}

$arResult["ELEMENT_PROPERTIES"][$arElementProperty["ID"]][] = array(

"ID" => htmlspecialchars($arElementProperty["ID"]),

"VALUE" => $htmlvalue,

"~VALUE" => $arElementProperty["VALUE"],

"VALUE_ID" => htmlspecialchars($arElementProperty["PROPERTY_VALUE_ID"]),

"VALUE_ENUM" => htmlspecialchars($arElementProperty["VALUE_ENUM"]),

);

}

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

foreach ($arResult["PROPERTY_LIST"] as $propertyID)

{

$arProperty = $arResult["PROPERTY_LIST_FULL"][$propertyID];

if ($arProperty["PROPERTY_TYPE"] == "F")

{

$arValues = array();

if (intval($propertyID) > 0)

{

foreach ($arResult["ELEMENT_PROPERTIES"][$propertyID] as $arProperty)

{

$arValues[] = $arProperty["VALUE"];

}

}

else

{

$arValues[] = $arResult["ELEMENT"][$propertyID];

}

foreach ($arValues as $value)

{

if ($arFile = CFile::GetFileArray($value))

{

$arFile["IS_IMAGE"] = CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"]);

$arResult["ELEMENT_FILES"][$value] = $arFile;

}

}

}

}

$bShowForm = true;

}

else

{

$bShowForm = true;

}

if ($bShowForm)

{

if (count($arResult["ERRORS"]) > 0)

{

//echo "<pre>",htmlspecialchars(print_r($arUpdateValues, true)),"</pre>";

foreach ($arUpdateValues as $key => $value)

{

if ($key == "IBLOCK_SECTION")

{

$arResult["ELEMENT"][$key] = array();

if(!is_array($value))

{

$arResult["ELEMENT"][$key][] = array("VALUE" => htmlspecialchars($value));

}

else

{

foreach ($value as $vkey => $vvalue)

{

$arResult["ELEMENT"][$key][$vkey] = array("VALUE" => htmlspecialchars($vvalue));

}

}

}

elseif ($key != "PROPERTY_VALUES" && $arResult["PROPERTY_LIST_FULL"][$key]["PROPERTY_TYPE"] != "F")

{

$arResult["ELEMENT"][$key] = htmlspecialchars($value);

}

}

foreach ($arUpdatePropertyValues as $key => $value)

{

if ($arResult["PROPERTY_LIST_FULL"][$key]["PROPERTY_TYPE"] != "F")

{

$arResult["ELEMENT_PROPERTIES"][$key] = array();

if(!is_array($value))

{

$value = array(

array("VALUE" => $value),

);

}

foreach($value as $vv)

{

if(is_array($vv) && array_key_exists("VALUE", $vv))

$arResult["ELEMENT_PROPERTIES"][$key][] = array(

"VALUE" => htmlspecialchars($vv["VALUE"])

);

else

$arResult["ELEMENT_PROPERTIES"][$key][] = array(

"VALUE" => htmlspecialchars($vv)

);

}

}

}

}

// подготавливаем captcha

if ($arParams["USE_CAPTCHA"] == "Y" && $arParams["ID"] <= 0)

{

$arResult["CAPTCHA_CODE"] = htmlspecialchars($APPLICATION->CaptchaGetCode());

}

$arResult["MESSAGE"] = htmlspecialcharsex($_REQUEST["strIMessage"]);

if ($op==1)$this->IncludeComponentTemplate();

}

}

if (!$bAllowAccess && !$bHideAuth)

{

//echo ShowError(GetMessage("IBLOCK_ADD_ACCESS_DENIED"));

$APPLICATION->AuthForm("");

}

}

?>

Template.php

<?

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

?>

<!--------------------------------------список вопросов---------------------->

<div class="news-list">

<?

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

$IBLOCK_TYPE = $arParams[IBLOCK_TYPE]; // тип инфо-блока

$IBLOCK_ID = $arParams[IBLOCK_ID]; // ID инфо-блока

$CACHE_TIME = 3600; // кэшируем

$arSelect = Array("NAME","ID");

$arFilter = Array("IBLOCK_ID"=>IntVal($IBLOCK_ID), "ACTIVE"=>"Y");

$res = CIBlockElement::GetList(Array(), $arFilter, false, Array(), $arSelect);

$i=0;

while($ar_fields = $res->GetNext())

{

$i++;

}

?>

<?if($arParams["DISPLAY_TOP_PAGER"]):?>

<?=$arResult["NAV_STRING"]?><br />

<?endif;?>

<?foreach($arResult["ITEMS"] as $arItem):?>

<p class="news-item">

<?if($arParams["DISPLAY_PICTURE"]!="N" && is_array($arItem["PREVIEW_PICTURE"])):?>

<?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>

<a href="<?=$arItem["DETAIL_PAGE_URL"]?>"><img class="preview_picture" border="0" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arItem["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arItem["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>" style="float:left" /></a>

<?else:?>

<img class="preview_picture" border="0" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arItem["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arItem["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>" style="float:left" />

<?endif;?>

<?endif?>

<!--========================вывод даты==========================-->

<?if($arParams["DISPLAY_DATE"]!="N" && $arItem["DISPLAY_ACTIVE_FROM"]):?>

<span class="news-date-time"><?echo $arItem["DISPLAY_ACTIVE_FROM"]?></span>

<?endif?>

<!--========================вывод наименования==========================-->

<?if($arParams["DISPLAY_NAME"]!="N" && $arItem["NAME"]):?>

<?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>

<?echo $arItem["NAME"]?>:<br />

<?else:?>

<span class="name_news"><?echo $arItem["NAME"]?>:</span><br />

<?endif;?>

<?endif;?>

<!--======================...


Подобные документы

  • Анализ состояния использования сайтов сайтостроения в профессиональном образовании. Особенности сайта училища. Обсуждение аудитории, схемы поведения пользователей. Требования к содержимому и внешнему виду сайта. Модульная сетка, навигация, каналы связи.

    дипломная работа [3,3 M], добавлен 07.02.2014

  • Требования к функциональности сайта, информационному и программному обеспечению. Концептуальная модель данных. Затраты на разработку программного изделия. Описание пользовательского интерфейса главной страницы и разделов. Создание контрольного примера.

    отчет по практике [1,2 M], добавлен 03.06.2015

  • Вопросы реализации шаблона типового сайта диссертационного совета СевКавГТУ. Разработка базы данных для шаблона сайта с помощью фреймворка Django и Aptana Studio 3. Обоснование требований к техническому обеспечению. Расчет цены программного продукта.

    дипломная работа [2,5 M], добавлен 26.09.2012

  • Разработка функциональной структуры, назначение и цели создания web-сайта. Требования к его работе и возможностям, принцип работы и содержание. Продвижение сайта и программа испытаний. Расчет затрат на разработку, обоснование экономической эффективности.

    дипломная работа [9,5 M], добавлен 02.08.2015

  • Разработка общей структуры проектируемого сайта. Выбор программных и аппаратных средств для реализации поставленной задачи. Описание дизайна будущего сайта. Рассмотрение основ регистрации, правил построения программной и эксплуатационной документации.

    курсовая работа [5,3 M], добавлен 31.07.2014

  • Обзор и анализ используемых технологий, содержания и дизайна сайтов ВУЗов, в том числе созданных на основе CMS. Исследование содержания сайта ПРИПИТ и информационных потребностей различных групп его потенциальных посетителей. Разработка дизайна сайта.

    дипломная работа [129,4 K], добавлен 11.03.2010

  • Технические характеристики компьютерных систем. Анализ интернет-сайта филиала предприятия и выявление основных проблем. Обновление структуры и подгонка сайта под современные стандарты с помощью программы WebSite X5. Создание дизайна веб-страницы.

    отчет по практике [410,2 K], добавлен 14.01.2015

  • Характеристика типового web-сайта, его роль в работе субъекта экономики, возможные типы и формы реализации, структура и элементы, программное обеспечение. Этапы разработки и создания сайта, его продвижение и поддержка. Требования к рабочему месту.

    курсовая работа [38,3 K], добавлен 17.09.2014

  • Анализ предметной области и функций сайта. Разработка структуры базы данных, структуры и дизайна web-сайта. Описание установки CMS "Joomla!" и программной оболочки Denwer, создание гостевой книги, галереи и карты Google, результаты их тестирования.

    дипломная работа [2,3 M], добавлен 19.01.2017

  • Правила создания Web-сайта по вопросам медицинского страхования: разработка главной страницы (фреймовая структура), разделов, посвященных вопросам обязательного и добровольного страхования, активной asp-страницы, содержащей опрос для посетителей.

    курсовая работа [2,3 M], добавлен 20.06.2010

  • Понятие веб-страницы, ее структура, содержание и назначение. Требования к оформлению страниц и обязательных элементов, особенности навигационной структуры. Разработка проекта веб-сайта для телеканала, публикация данного узла в Интернете и его поддержка.

    курсовая работа [2,4 M], добавлен 16.11.2012

  • Этапы создания веб-сайта "Синьор Пекарь": анализ сегмента потребителей и аналогов проекта. Разработка рабочего наброска и карты сайта, перечень требований по содержимому и функциям. Декомпозиция макета на структурные блоки, оптимизация контента и верстка.

    курсовая работа [10,0 M], добавлен 19.04.2011

  • Исследование принципов работы, технологии и стандартов IP–телефонии, оценка качества телефонной связи и сжатия речи. Анализ планирования структуры сайта, разработки дизайна, верстки макета. Характеристика регистрации доменного имени и хостинга сайта.

    курсовая работа [52,7 K], добавлен 23.12.2011

  • Характеристика деятельности, структуры и функций агентства. Анализ текущей структуры сайта заказа наружной рекламы. Описание функциональной архитектуры и архитектуры данных проектируемого автоматизированного модуля. Проектирование интерфейса пользователя.

    дипломная работа [2,0 M], добавлен 22.07.2015

  • Исследование технических возможностей Web Page Maker для проектирования и разработки сайта. Изучение современных Интернет-технологий. Анализ основных этапов создания сайта. Представление текста и графики на web-страницах. Управление объектами страницы.

    курсовая работа [804,3 K], добавлен 16.01.2014

  • Разработка структуры сайта: создание карты, макета страницы, обеспечение навигации, определение дополнительных сервисов, выбор технологии. Создание базы данных, написание скриптов и сценариев для реализации имеющихся на сайте функциональных возможностей.

    дипломная работа [3,2 M], добавлен 19.02.2013

  • Определение назначения и функций Web-сайта типографии. Характеристика целевой аудитории. Выбор средств разработки и элементов структуры сайта, описание его содержания и анимационных компонентов. Организация доступа к данным, порядок тестирования проекта.

    курсовая работа [2,2 M], добавлен 13.01.2013

  • Анализ существующих сайтов образовательный учреждений учебных сайтов Астраханской области. Обзор среды реализации разработки веб-сайта. Требования к официальным сайтам образовательных учреждений. Разработка логической структуры веб-сайта колледжа.

    дипломная работа [6,1 M], добавлен 10.06.2014

  • Выбор сред разработки для реализации сайта. Основная концепция и содержание веб-сайта. Роль дизайна сайта в его создании и определение основных требований к его содержанию и внешнему виду. Особенности разработки удобного и красивого интерфейса сайта.

    курсовая работа [686,4 K], добавлен 13.06.2022

  • Создание локальной версии Web-сайта компании, оказывающей услуги в сфере "Дизайн помещений". Логическая структура сайта – набор тематических рубрик с распределенными по разделам документами. HTML–коды Web-страниц. Теоретические аспекты создания сайта.

    курсовая работа [94,0 K], добавлен 10.05.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.