Skip to content

Instantly share code, notes, and snippets.

@sidor1989
Created November 7, 2017 10:02
Show Gist options
  • Save sidor1989/5806f64679fde5f6b6ab22805ca3d84f to your computer and use it in GitHub Desktop.
Save sidor1989/5806f64679fde5f6b6ab22805ca3d84f to your computer and use it in GitHub Desktop.
<?
function sklonenie($n, $forms) {
return $n%10==1&&$n%100!=11?$forms[0]:($n%10>=2&&$n%10<=4&&($n%100<10||$n%100>=20)?$forms[1]:$forms[2]);
}
function removeqsvar($url, $varname) {
parse_str($url, $vars);
unset($vars[$varname]);
return http_build_query($vars);
}
//добавление ог-мета-тегов в <head>////////////////////////////////////////////////
AddEventHandler('main', 'OnEpilog', array('CMyEpilogHooks', 'OpenGraph'));
class CMyEpilogHooks
{
function OpenGraph()
{
GLOBAL $APPLICATION;
foreach (array('og_title', 'og_image', 'og_url', 'og_site_name', 'og_type', 'og_description') as $prop_name)
{
$value = $APPLICATION->GetDirProperty($prop_name);
if ($prop_name == 'og_url' && empty($value))
$value = $APPLICATION->GetCurPage(false);
if (in_array($prop_name, array('og_image', 'og_url')) && !empty($value))
{
if (CMain::IsHTTPS())
{
$value = 'https://'.$_SERVER["SERVER_NAME"].$value;
} else
{
$value = 'http://'.$_SERVER["SERVER_NAME"].$value;
}
}
$prop_code = str_replace('og_', 'og:', $prop_name);
if (!empty($value))
{
if ("og:image"==$prop_code)
{
$APPLICATION->AddHeadString('<meta property="'.$prop_code.'" content="'.$value.'?'.date('d_m_Y_H_i_s').'" />');
} else
{
$APPLICATION->AddHeadString('<meta property="'.$prop_code.'" content="'.$value.'" />');
}
}
}
}
}
CModule::IncludeModule("iblock");
//получаем настройки
$arSelect = Array("ID", "CODE", "PROPERTY_VALUE", "PROPERTY_FILE", "NAME");
$arFilter = Array("IBLOCK_ID"=>SETTINGS_IBLOCK_ID, "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array("SORT"=>"ASC"), $arFilter, false, false, $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
if ($arFields["PROPERTY_FILE_VALUE"]>0)
{
if ($arFields["CODE"]=="ZVEZDY_NAM_DOVERYAYUT_FOTO_AVTORA")
{
$img = CFile::ResizeImageGet($arFields["PROPERTY_FILE_VALUE"], array('width'=>500, 'height'=>500), BX_RESIZE_IMAGE_EXACT, true);
define(strtoupper($arFields["CODE"]."_FILE"),$img["src"]);
} else
{
$src=CFile::GetFileArray($arFields["PROPERTY_FILE_VALUE"]);
$src=$src["SRC"];
define(strtoupper($arFields["CODE"]."_FILE"),$src);
}
}
if (trim($arFields["~PROPERTY_VALUE_VALUE"]["TEXT"])!="")
{
$val=trim(str_replace("\n","<br />",$arFields["~PROPERTY_VALUE_VALUE"]["TEXT"]));
$val=str_replace("\r\n","",$val);
$val=str_replace("\r","",$val);
if ($arFields["CODE"]=="PHONE_1")
{
$phone=preg_replace("/[^\d]/i","",$val);
$phoneVal=$phone[0]." ".$phone[1].$phone[2].$phone[3]."</span> ".$phone[4].$phone[5].$phone[6]."-".$phone[7].$phone[8]."-".$phone[9].$phone[10];
$phoneValURL=$phone[0]."-".$phone[1].$phone[2].$phone[3]."-".$phone[4].$phone[5].$phone[6]."-".$phone[7].$phone[8].$phone[9].$phone[10];
if ($phone[0]=="7")
{
$phoneVal="<span>+".$phoneVal;
$phoneValURL="+".$phoneValURL;
} else
{
$phoneVal="<span>".$phoneVal;
}
define("PHONE_1_TEXT",$phoneVal);
define("PHONE_1_URL_TEXT",$phoneValURL);
} else
if ($arFields["CODE"]=="PHONE_2")
{
$phone=preg_replace("/[^\d]/i","",$val);
$phoneVal=$phone[0]." ".$phone[1].$phone[2].$phone[3]."</span> ".$phone[4].$phone[5].$phone[6]."-".$phone[7].$phone[8]."-".$phone[9].$phone[10];
$phoneValURL=$phone[0]."-".$phone[1].$phone[2].$phone[3]."-".$phone[4].$phone[5].$phone[6]."-".$phone[7].$phone[8].$phone[9].$phone[10];
if ($phone[0]=="7")
{
$phoneVal="<span>+".$phoneVal;
$phoneValURL="+".$phoneValURL;
} else
{
$phoneVal="<span>".$phoneVal;
}
define("PHONE_2_TEXT",$phoneVal);
define("PHONE_2_URL_TEXT",$phoneValURL);
} else
{
define(strtoupper($arFields["CODE"]."_TEXT"),$val);
define(strtoupper($arFields["CODE"]."_HTML"),$arFields["~PROPERTY_VALUE_VALUE"]["TEXT"]);
define(strtoupper($arFields["CODE"]."_NAME"),$arFields["NAME"]);
}
}
}
//получаем коды свойств SKU для карточки товара
$arSelect = Array("ID", "NAME");
$arFilter = Array("IBLOCK_ID"=>15, "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array("SORT"=>"ASC"), $arFilter, false, false, $arSelect);
$arSKUpropsInDetailPage=array();
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
$arSKUpropsInDetailPage[]=$arFields["NAME"];
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment