• Разная сортировка при нажатии?

    @PetrPo
    1. Атрибут href в ссылке лучше заменить на битриксовую функцию, это позволит сохранить другие GET параметры, если они есть
    <?=$APPLICATION->GetCurPageParam('sort=указываешь поле для сортировки, в твоем случае catalog_PRICE_1&method=указываешь направление сортировки (ASC, DESC)', array('sort', 'method'))?>

    !! method лучше замени на order, логичнее будет)

    2. Если компонент комплексный:
    идешь в файл где подключаешь простой компонент и подставляешь параметры из $_GET
    $sort = isset($_GET['sort']) && $_GET['sort'] ? $_GET['sort'] : $arParams['SORT_BY1'];
    $method = isset($_GET['method']) && $_GET['method'] ? $_GET['method'] : $arParams['SORT_BY1'];

    компонент news:
    "SORT_BY1" => $sort,
    "SORT_ORDER1" => $method,

    компонент catalog:
    "ELEMENT_SORT_FIELD" => $sort,
    "ELEMENT_SORT_ORDER" =>	$method,

    P.S. лучше добавить массив возможных полей для сортировки и проверять что параметр из $_GET соответствует тому что есть в этом массиве, чтобы даже если подставить ручками в адресную строку фигню какую-нибудь, то сработала сортировка по умолчанию
    Ответ написан
  • Битрикс умный фильтр мультивалютность?

    @topuserman
    Умный фильтр фильтрует только заданным по значениям полей.
    Т.е. если фильтр по свойству цены с рублевой валютой, то фильтрация будет только по рублю, и кастомизировать компонент, а тем более шаблон, очень трудозатратно.

    На много проще будет добавить дополнительные типы цены - Цена USD, Цена EUR и т.д.

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

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

    UPD

    Если у вас редакция Малый бизнес, то там многоценовости не будет.
    В этом случае придется кастомизировать компонент фильтра:

    1. Выносите компонент в отдельное пространство
    2. В куда-нибудь заводите курс валют
    3. В шаблоне компонента, где выводится блок для фильтрации по цене, добавляете селект, с выбором нужной валюты, при изменении валюты, через ajax, пересчитываете цены по курсу, а выводите в этом же месте.
    + добавляете input:hidden с выбранный валютой
    4. В компоненте, проверяете пришедший курс, и переводите в рубли.

    В итоге все будет работать поверх стандартного функционала.
    Ответ написан
  • Как составить регулярное выражение?

    VicTHOR
    @VicTHOR
    (╮°-°)╮┳━━┳ ( ╯°□°)╯ ┻━━┻
    1 строка на входе? Это все условия? State всегда с большой буквы? всегда двоеточие после идет без пробелов? всегда после двоеточия тоже нет пробела?
    $str= '703@ext-local : PJSIP/703&SIP/99703& State:Idle Presence:available Watchers 16 1 hint matching extension 703';
    preg_match('#(?<=State:)\S+#', $str, $state);
    echo $state[0];
    Ответ написан
  • Цикл в JavaScript как правильно реализовать Chart.js?

    @Evanescing
    В первую очередь использование глобальных переменных в битрикс очень часто говорит о некорректной структуре. Передачу данных между разными страницами лучше оганизовывать запросами. Если выборка и построение графика находятся на одной странице, то можно использовать обычные переменные.
    Чтобы в массиве накапливались элементы, необходимо к переменной массива добавлять квадратные скобки [] $GLOBALS['DATE_NEW_PRICE'][]
    www.php.su/articles/?cat=vars&page=014
    Дополнительно, необходимо сконвертировать массив php в скриптовый, метод битрикс:
    var arr = <?=CUtil::PhpToJSObject($array, false, true)?>;
    Ответ написан
  • Вывести имя элемента "привязка к элементам" Битрикс?

    udjin123
    @udjin123
    Работаю с bitrix
    Имя элемента в свойстве не храниться, храниться только его ID.

    По этому вы сначала получаете его ID как и сделал и делаете второй запрос CIBlockElement::GetByID или еще лучше CIBlockElement::GetList то есть получаете данные уже самого элемента.

    $res = CIBlockElement::GetProperty($IBLOCK_ID, $ELEMENT_ID, array("sort" => "asc"), Array("CODE"=>"TOVAR"));
    while ($ob = $res->GetNext()) {
    	$id = $ob['VALUE'];
    	$element = CIBlockElement::GetList([], ['=ID' => $id], false, false, ['ID', 'NAME'])->Fetch();
    }

    Соответственно в $element['NAME'] будет ваше имя.

    Еще можно вот так

    $element = CIBlockElement::GetList(
    	[],
    	[
    		'IBLOCK_ID' => $IBLOCK_ID,
    		'=ID' => $ELEMENT_ID
    	],
    	false,
    	false,
    	['ID', 'PROPERTY_TOVAR.NAME']
    )->Fetch();


    В таком виде имя элемента будет $elemen['PROPERTY_TOVAR_NAME']

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

    @dronmaxman
    VoIP Administrator
    exten => h,n,AGI(agi.php,${ANSWEREDTIME},${DIALSTATUS})

    При исходящем звонке эта конструкция отработает если трубку первым положит абонент "В". Если первым кладет трубку абонент "А", то канал закрывается и до этого пункта dialplan астериск вообще не доходит.
    Вторая рекомендация, использовать таймауты в скрипте, что бы он не зависал в памяти по какой либо причине.

    Что бы это обойти, лучше использовать handler.
    https://wiki.asterisk.org/wiki/display/AST/Hangup+...
    Ответ написан
  • Переключение стилей по кнопке?

    Aetae
    @Aetae
    Тлен
    Ну вы прям как беспомощные дети, право слово.
    Открываем исходники(там всего два файла) и практически с первых строк видим как там всё устроено. Переменная которая вам нужна - mixColor.
    Вот только там не чёрный цвет, а вовсе даже белый, потому что на самом деле там происходит не смена цвета body, а наложение div с классом darkmode-layer поверх всего в режиме: mix-blend-mode: difference;.
    Тут уж вы сами подбирайте нужный цвет с нужным режимом смешивания.
    Ответ написан
  • Преобразовать в JSON?

    Expany
    @Expany
    skill_get($args = null);
    <?php
    $regexp = '/\d+\s\w+\s\d+/iu'; // ыыы, регуларке обожае
    // Тупа твой вывод ыыы
    $response = "default has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
       No Members
       No Callers
    
    110 has 0 calls (max unlimited) in 'rrmemory' strategy (100s holdtime, 78s talktime), W:0, C:12, A:18, SL:25.0% within 60s
       Members: 
          Local/801@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken 4 calls (last was 6516 secs ago)
          Local/769@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken 1 calls (last was 4535 secs ago)
          Local/744@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
          Local/739@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken 1 calls (last was 6952 secs ago)
          Local/771@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken 3 calls (last was 1905 secs ago)
          Local/756@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken 1 calls (last was 9914 secs ago)
          Local/746@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken 1 calls (last was 2874 secs ago)
          Local/774@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
          Local/755@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
          Local/748@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
          Local/779@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
          Local/726@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
          Local/728@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
       No Callers";
    // хо ба
    preg_match($regexp,$response,$match);
    // не ну тут всо ясно
    $match = explode(' ',$match[0]);
    $json = [$match[0] => $match[2]]; // не ну а чо :D
    echo json_encode($json);
    Ответ написан
  • Битрикс,умный фильтр,5 колонок, реально?

    @PetrPo
    joxi.ru/ZrJ7N1EiwaONZm
    Только родительский класс добавь перед col-md-4, это если совсем по простому.
    Раз уж заговорил о настройках компонента, можешь добавить свой параметр в компонент и в шаблоне класс ставить в зависимости от этого параметра, от этого класса css написать
    Ответ написан
  • Можно ли приравнивать работу с Битрикс к работе с фреймворком?

    @nashaev
    Добавлю свое имхо.
    Битрикс в принципе весьма хорош, но есть горы проблем, но из плюсов HiBlock и API готовое, вход минимальный, можно взять ВУЙ и слепить что угодно а Битрикс юзать чисто для АПИ, HiBlock и работу с Юзерами и группами, ну и еще есть разные фичи которые уже готовы и их собирать не нужно.

    а Лара и т.п., если нужен полный кастом и бюджет приличный, пффф - не вопрос, да и тот же Битрикс на Старт редакции в связке с VUE легко потянет корп площадку кастомную, чутка феншуя и креативности из головы надо.

    А тот факт что Вы работали только с Битрикс, и уровень владения неясный, сложно сказать - ЧТО ВАМ ОТВЕЧАТЬ людям на тему фреймВорк.
    Если на Битриксе можешь собрать что угодно так и говорите как я, ЛЮБОЙ проект (практически) могу реализовать.
    Но нужно изучать дальше что-то новое, вдруг знакомый спросит, а можешь ли для Тат**фтепрома сделать корп портал например с вуй и Битрикс Старт, а ты ему ИЗИ, а он 90-100 к в месяц минимум держи и поехали.
    Битрикс прекрасно подойдет для клиентуры с бюджетами до 300-400к а то и выше.

    Никого не слушайте за Битрикс, он отличный в своей линейке.

    Вообще советую смотреть в чистый JS с NODE

    УДАЧИ в учении ;) все там просто, пугают только зря =)

    А фреймворки бывают и CSS JS аля UIKIT, так что вопрос своеобразный =)
    Ответ написан