Аналог header(‘Location: ‘.$arResult[‘ITEMS’][0][‘DETAIL_PAGE_URL’])
localredirect($arResult['ITEMS'][0]['DETAIL_PAGE_URL'],false,"301 Moved permanently");
Аналог header(‘Location: ‘.$arResult[‘ITEMS’][0][‘DETAIL_PAGE_URL’])
localredirect($arResult['ITEMS'][0]['DETAIL_PAGE_URL'],false,"301 Moved permanently");
$file=CFile::GetFileArray($arResult['PROPERTIES']['MY_PROPERTY']['VALUE']); echo $file['SRC'];
В шаблоне перед foreach где рисуем новости.
Рисуем форму (даты необходимо будет указывать в формате день-месяц-год
(xx-xx-xxxx), разделительный знак любой, нам важен порядковый номер цифр), для удобства можно использовать что-то вроде datePicker
, но это уже совсем другая история)):
<form method="get" id="set_period"> <label for="date1">С</label> <input type="text" name="date1" id="date1" value="<?=$_GET['date1']?>" /> – <label for="date2">ПО</label> <input type="text" name="date2" id="date2" value="<?=$_GET['date2']?>" /> <a href="#" onclick="$('#set_period').submit();">Показать</a> </form>
Формируем массив дат, в нужном нам формате, который позволяет сделать выборку по принципу «больше или равно — меньше или равно», т.е. в формате (год, месяц, день) без разделительных знаков.
<?$news_dates=array(); function ParceResultDates($date) { $df_day=substr($date,0,2); $df_mon=substr($date,3,2); $df_ye=substr($date,6,4); $d_format=$df_ye.$df_mon.$df_day; return $d_format; } foreach($arResult["ITEMS"]as$arDates): $news_dates[]=ParceResultDates($arDates['DISPLAY_ACTIVE_FROM']); endforeach;?>
Далее в foreach где выводим новости:
<? //if(($_GET['date1']!='')&&($_GET['date2']!='')): //$date_from=ParceResultDates($_GET['date1']); //$date_to=ParceResultDates($_GET['date2']); //else: //$date_from=ParceResultDates($arItem['DISPLAY_ACTIVE_FROM']); //$date_to=ParceResultDates($arItem['DISPLAY_ACTIVE_FROM']); //endif; $date_from=($_GET['date1']!='')?ParceResultDates($_GET['date1']):ParceResultDates($arItem['DISPLAY_ACTIVE_FROM']); $date_to=($_GET['date2']!='')?ParceResultDates($_GET['date2']):ParceResultDates($arItem['DISPLAY_ACTIVE_FROM']); $current_active_from=ParceResultDates($arItem['DISPLAY_ACTIVE_FROM']); if (($current_active_from>=$date_from)&&($current_active_from<=$date_to)): ?> <!--Тут новости--> <?endif;?>
Закоментрованная область — это если было бы необходимо указать только обе даты, иначе выводим все новости. Ниже 2 строки для того чтобы можно было указывать только начальную и/или конечную даты
Суть такова: нужна сортировка элементов IBLOCK по их разделам. В примере сортировка статей по рубрикам.
В шаблоне перед списком элементов инфоблока добавляем форму:
<? echo'<form method="get" id="s_change">'; echo'<select name="s_id" onchange="$(\'#s_change\').submit();">'; $options_array=array(); foreach($arResult["ITEMS"] as $array_section_id): if(!in_array($array_section_id["IBLOCK_SECTION_ID"],$options_array)): $options_array[]=$array_section_id["IBLOCK_SECTION_ID"]; endif; endforeach; foreach($options_array as $option_id): $option_get_name=CIBlockSection::GetByID($option_id); if($options_names_array=$option_get_name->GetNext()): $option_name=$options_names_array['NAME']; endif; if($_GET['s_id']==$option_id): $if_option_selected=' selected="selected"'; else: $if_option_selected=''; endif; echo'<option value="'.$option_id.'"'.$if_option_selected.'>'.$option_name.'</option>'; endforeach; if(($_GET['s_id']=='all')||($_GET['s_id']==null)): $if_print_all_selected=' selected="selected"'; else: $if_print_all_selected=''; endif; echo'<option value="all"'.$if_print_all_selected.'>Все рубрики</option>'; echo'</select>'; echo'</form>'; ?>
Внутри foreach, в котором выводим сами статьи:
<?if(($_GET['s_id']!=null)&&($_GET['s_id']!='all')){ $FL=$_GET['s_id']; } else { $FL=$arItem["IBLOCK_SECTION_ID"]; } if($arItem["IBLOCK_SECTION_ID"]==$FL) {?> <!--рисуем элемент--> <?}?>
Что по-правильному называется «Вставка включаемой области».
В нужном нам месте пишем как-то так:
<?$APPLICATION->IncludeComponent("bitrix:main.include","",Array( "AREA_FILE_SHOW" => "sect", "AREA_FILE_SUFFIX" => "inc", "AREA_FILE_RECURSIVE" => "Y", "EDIT_TEMPLATE" => "standard.php" ) );?>
после чего в режиме редактирования появится кнопка «Редактировать включаемую область раздела»
жмем на нее и редактируем)) поле первого сохранения все наверное поплывет, но мы не расстраиваемся и удаляем из созданного в корне файла sect_inc.php
:
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle(""); ?>
и
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
http://dev.1c-bitrix.ru/user_help/settings/settings/components_2/include_areas/main_include.php