lib_project.php 4.04 KB
<?
use \Cpeople\Classes\Section;
use \Cpeople\Classes\Block;

define('IBLOCK_AWARDS', 1);
define('IBLOCK_EMPLOYEES', 2);
define('IBLOCK_PARTNERS', 3);
define('IBLOCK_NEWS', 4);
define('IBLOCK_REVIEWS', 5);
define('IBLOCK_PROJECTS', 6);
define('IBLOCK_SERVICES', 7);
define('IBLOCK_LUMBER', 8);
define('IBLOCK_FAQ', 9);
define('IBLOCK_DICTIONARY', 10);
define('IBLOCK_OFFICES', 11);
define('IBLOCK_CONTACTS', 12);
define('IBLOCK_TEXT', 13);
define('IBLOCK_REQUEST', 14);
define('IBLOCK_HEAD_PIC', 15);
define('IBLOCK_PARTNERS_TYPE', 16);
define('IBLOCK_MAIN_SLIDER', 17);
define('IBLOCK_REQUEST_TOPICS', 18);
define('IBLOCK_PROJECTS_REGION', 19);
define('IBLOCK_GALLERY', 20);
define('IBLOCK_PROJECTS_PAGES', 21);

function isAjax()
{
    return is_ajax_request();
}

function getUrlLink($url)
{
    if(!$url) return $url;
    return strpos($url, 'http') === 0 ? $url : (substr($url, 0, 1) == '/' ? $url : 'http://'.$url);
}

function getUrlShow($url)
{
    if(!$url) return $url;
    $url = preg_replace('#https?://#', '', $url);
    $url = str_replace('www.', '', $url);
    return $url;
}

function isProduction()
{
	return true;//in_array($_SERVER['SERVER_NAME'], array('www.s-h.ru'));
}

function makeTreeMenu($arResult, $depth = 1)
{
    $menu = array();
    foreach($arResult as $i => $item) {
        if($item['DEPTH_LEVEL'] < $depth) break;
        elseif($item['DEPTH_LEVEL'] > $depth) continue;

        if ($item['PARAMS']['SELECTED']) $item['SELECTED'] = $item['PARAMS']['SELECTED'];

        if($item['IS_PARENT']) {
            $item['ITEMS'] = makeTreeMenu(array_slice($arResult, $i + 1), $depth + 1);
        }

        $menu[] = $item;
    }
    return $menu;
}

function getBreadCrumbsHtml()
{
    global $APPLICATION;
    return $APPLICATION->GetNavChain(false, 0, '/local/templates/.default/components/bitrix/breadcrumb/.default/template.php', true, false);
}

function sendRequestToZendesk($id = false)
{
    $arFilter = array('IBLOCK_ID' => IBLOCK_REQUEST, 'ACTIVE' => 'N');

    if($id) {
        $arFilter['ID'] = $id;
    }

    $requests = \Cpeople\Classes\Block\Getter::instance()
        ->setFilter($arFilter)
        ->get();
    foreach($requests as $request) {
        try {
            $subject = 'Обращение с сайта: ' . $request->NAME;

            $text = getRequestText($request);
            $hiddenBody = getRequestHiddenText($request);
            $phone = preg_replace('/\D/', '', $request->getPropRawValue('PHONE'));
            $email = $request->getPropRawValue('EMAIL');
            $userName = $request->getPropRawValue('USERNAME');

            $result = \SH\Zendesk::getInstance()->createNewTicket($subject, $text, $hiddenBody, $phone, $email, $userName);

            $ob = new CIBlockElement();
            $ob->Update($request->ID, array('ACTIVE' => 'Y'));
        } catch(Exception $e) {


        }
    }
}

function getRequestText($request) {
    $text = '';

    $props = array('SUBJECT', 'USERNAME', 'EMAIL', 'PHONE', 'MESSAGE', 'PROJECT');
    foreach($props as $propName) {
        $val = $request->getPropRawValue($propName);
        if($val) {
            $prop = $request->getProp($propName);
            $text .= $prop['NAME'] . ': ' . $val . "\n";
        }
    }

    if ($request->hasFile('FILE')) {
        $file = $request->getFile('FILE');
        $text .= 'Прикрепленный файл: http://' . SITE_SERVER_NAME . $file->getUrl() . "\n";
    }

//    $text .= "\n" . $request->{'~PREVIEW_TEXT'};
//    $text .= "\n\n" . $request->{'~DETAIL_TEXT'};

    $text = trim($text);

    return $text;
}

function getRequestHiddenText($request) {
    return $request->{'~DETAIL_TEXT'};
}

function getYoutubeId($url) {
    $id = preg_replace('|([^?]*/)+|', '', $url);

    if(preg_match('|[?&]v=([^#&?]+)|', $id, $match)) {
        $id = $match[1];
    }

    if(preg_match('|[^?&#]+|', $id, $match)) {
        $id = $match[0];
    }

    return $id;
}

function getFaveItems() {
    static $result;
    if(!isset($result)) {
        $result = empty($_COOKIE['fav_ids']) ? false : json_decode($_COOKIE['fav_ids'], true);
    }
    return $result;
}