SELECT * FROM `tablename` WHERE `fieldname` REGEXP '^[0-9]+$'
пример update:
UPDATE `tablename` SET `field_en`=`field_ru` WHERE `field_ru` REGEXP '^[0-9]+$';
SELECT * FROM `tablename` WHERE `fieldname` REGEXP '^[0-9]+$'
пример update:
UPDATE `tablename` SET `field_en`=`field_ru` WHERE `field_ru` REGEXP '^[0-9]+$';
result_modifier.php в папке шаблона компонента детального просмотра
use Bitrix\Highloadblock as HL; use Bitrix\Main\Entity; if(count($arResult['PROPERTIES']["COLOR"]['VALUE'])>0){ $XMLID=$arResult['PROPERTIES']["COLOR"]['VALUE']; CModule::IncludeModule("highloadblock"); $hlblock=HL\HighloadBlockTable::getById(1)->fetch(); $entity=HL\HighloadBlockTable::compileEntity($hlblock); $entity_data_class=$entity->getDataClass(); $rsProp=$entity_data_class::getList(array( "select"=>array('*'), "filter"=>array('=UF_XML_ID'=>$XMLID), )); $arResult['HLBLOCK_VALUES']["COLOR"]=array(); while($arProp = $rsProp->Fetch()){ $arResult['HLBLOCK_VALUES']["COLOR"][$arProp['UF_XML_ID']]=$arProp; } }
где getById(1): 1 — ID Highload-блока
В шаблоне результат:
print_r($arResult['HLBLOCK_VALUES']);
Открыть хинт нажатием по ссылке вне карты:
Полный рабочий пример:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript"> var markers=[]; function initialize(){ var hLatlng=new google.maps.LatLng(59.939095,30.315868); var hOptions={ zoom:10, center:hLatlng, panControl:false, zoomControl:true, scalecontrol:true, scrollwheel:false, mapTypeId:google.maps.MapTypeId.ROADMAP } var map=new google.maps.Map(document.getElementById("map_canvas"),hOptions); var contentString='<div class="info_content" id="info_content_1"><p>Адрес 1</p></div>'; var iLatlng=new google.maps.LatLng(59.939095,30.315868); var infowindow_1=new google.maps.InfoWindow({ content:contentString }); var marker_1=new google.maps.Marker({ position:iLatlng, map:map, title:'Адрес 1' }); markers.push(marker_1); google.maps.event.addListener(marker_1,'click',function(){ infowindow_2.close(); infowindow_1.open(map,marker_1); }); var contentString='<div class="info_content" id="info_content_2"><p>Адрес 2</p></div>'; var iLatlng=new google.maps.LatLng(59.90825,30.362823); var infowindow_2=new google.maps.InfoWindow({ content:contentString }); var marker_2=new google.maps.Marker({ position:iLatlng, map:map, title:'Адрес 2' }); markers.push(marker_2); google.maps.event.addListener(marker_2,'click',function(){ infowindow_1.close(); infowindow_2.open(map,marker_2); }); } $(window).load(function(){ initialize(); }) </script> <div class="addr_item"> <p>Адрес 1 <a href="javascript:google.maps.event.trigger(markers[0],'click');">Показать на карте</a></p> </div> <div class="addr_item"> <p>Адрес 2 <a href="javascript:google.maps.event.trigger(markers[1],'click');">Показать на карте</a></p> </div> <div id="map_canvas" style="width:640px;height:480px;"></div>
Для дополнительного функционала добавлено:
var markers=[];
markers.push(marker_1);
javascript:google.maps.event.trigger(markers[0],'click');
Предполагается, что адреса внутри foreach и порядок их инициализации на карте, и порядок ссылок совпадает.
infowindow_1.close(); — здесь нужно закрыть все остальные infowindow — также foreach тот же массив
Получить данные элемента по id
$element_res=CIBlockElement::GetByID($_GET['element']); if($element_ar=$element_res->GetNext())echo$element_ar['NAME'];
Получить данные раздела по id
$section_res=CIBlockSection::GetByID($_GET['section']); if($section_ar=$section_res->GetNext())echo$section_ar['NAME'];
function getIdByCode($code,$iblock_id,$type){ if(CModule::IncludeModule("iblock")){ if($type=='IBLOCK_ELEMENT'){ $arFilter=array("IBLOCK_ID"=>$iblock_id,"CODE"=>$code); $res=CIBlockElement::GetList(array(),$arFilter,false,array("nPageSize"=>1),array('ID')); $element=$res->Fetch(); if($res->SelectedRowsCount()!=1) return '<p style="font-weight:bold;color:#ff0000">Элемент не найден</p>'; else return $element['ID']; } else if($type=='IBLOCK_SECTION'){ $res=CIBlockSection::GetList(array(),array('IBLOCK_ID'=>$iblock_id,'CODE'=>$code)); $section=$res->Fetch(); if($res->SelectedRowsCount()!=1) return '<p style="font-weight:bold;color:#ff0000">Раздел не найден</p>'; else return $section['ID']; } else{ return '<p style="font-weight:bold;color:#ff0000">Укажите тип</p>'; } } } $property_type_value=getIdByCode($_REQUEST['type'],42,'IBLOCK_SECTION');
В примере получаем ID раздела из инфоблока с ID 42, у которого символьные код — $_REQUEST[‘type’].
Источники:
http://kadomtsev.ru/bitriks-kak-poluchit-id-razdela-ili-elementa-infobloka-po-simvolnomu-kodu/
http://www.bxdev.ru/posts/iblocks/getIdByCode/
global $arTypesFilter; $arTypesFilter=array("PROPERTY_TYPE"=>27); $APPLICATION->IncludeComponent( "bitrix:news.list", "tpl", Array( "FILTER_NAME"=>"arTypesFilter", "PROPERTY_CODE"=>array("TYPE"), ), false );
Где 27 значение свойства TYPE. (Перечислены только параметры, которые участвуют в фильтрации.)