• Есть стабильный VDS хостинг в России?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Лично я бы порекомендовал firstvds (не реклама). На протяжении 4 лет его использую. Цены крайне низкие, хорошая поддержка, никаких жалоб нет.
    Ответ написан
    4 комментария
  • Как сравнивать массивы?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Воспользуйтесь функциями:
    1) array_diff
    2) array_intersect
    Ответ написан
  • Почему зависает вся система при открытии старого форума?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Я так понимаю, что речь идёт о кибере? Если да, то присоединяюсь к этой теме. Частенько рыскаю в поисках интересной информации, и попадая на него - стараюсь закрыть, как можно быстрее. Раньше был доступ к хорошим решениям и спецам, а сейчас - майнят, причём нещадно. Про количество рекламы - тоже молчу, но ее там генерируется больше, чем просто дофига.

    В общем, делая вывод:
    1) Реклама (JS)
    2) Майнеры (JS)
    Ответ написан
    1 комментарий
  • Как открыть bin в ubuntu?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    sudo chmod +x НАЗВАНИЕ_ФАЙЛА
    ./НАЗВАНИЕ_ФАЙЛА
    Ответ написан
    Комментировать
  • Как передать (экспортировать/импортировать) переменную из javascript в php?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Воспользуйтесь AJAX (необходимо доработать)

    $(document).ready(function(){
              $.ajax({ type: 'POST', url: 'LINK_TO_YOUR_SENDMAIL.PHP', success: function(response){
                        // SOME_ACTION
                     }
              });
    });
    Ответ написан
    Комментировать
  • Как перемешать многомерный массив?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Не совсем понятна суть вопроса, но попробую предложить следующий вариант:
    function shuffle_assoc($list) {
        if (!is_array($list)) return $list;
        $keys = array_keys($list);
        shuffle($keys);
        $random = [];
        foreach ($keys as $key)
            $random[$key] = $list[$key];
    
      return $random;
    }


    Результат: Ссылка - скриншот, console output - Ссылка
    Ответ написан
    Комментировать
  • Можно ли с помощью api сменить имя и аватар telegram боту?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Насколько я помню, в API такой возможности нет (либо я работал с ним слишком давно, и не видел изменений).
    А так - процедура выполняется не менее просто. Открываете botfather, пишете команду "/mybots", затем - edit Name или EditBotPick. Можно сделать костыль, конечно, но смысла в нем нет, так как процедура до банальности проста.

    Да, я понимаю, что вопрос был про API, но упомянуть и обычной метод тоже необходимо.
    Ответ написан
    Комментировать
  • Интеграция Reactjs в систему управления сайтов 1c-Bitrix?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Возможно, что это вам подскажет путь следования: Ссылка
    Ответ написан
    3 комментария
  • Bitrix как передать переменную с одного шаблона на другой и использовать её?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Выхода два:
    1. Глобальной переменной $GLOBALS['SOME_VARIABLE_NAME'] = $SOME_VARIABLE_VALUE
    2. Класс-обертка (сразу говорю, пример подсмотрел, нужно было сделать аналогичную реализацию):
    Class GarbageStorage{
      private static $globalStorage = [];
      public static function set ($storageName,  $variableValue){ self::$globalStorage[$storageName] = $variableValue;}
      public static function get ($storageName){ return self::$globalStorage[$storageName];}
    }
    соответственно использование
    \GarbageStorage::set("SomeIdentificator",  $arResult["ID"]);                      // Устанавливаем значение
    \GarbageStorage::get("SomeIdentificator");                                               // Получаем значение
    Ответ написан
    Комментировать
  • Как увеличить количество просмотренных, популярных товаров Битрикс?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Если вы используете компонент "sale.bestsellers", то обратите внимание на следующие свойства:

    1. Количество элементов на странице PAGE_ELEMENT_COUNT Указывается количество элементов, отображаемых на одной странице.
    2. Количество элементов, выводимых в одной строке LINE_ELEMENT_COUNT Указывается количество элементов, выводимых в одной строке таблицы. Данный параметр недоступен для шаблона vertical.
    3. Период выборки (дней) PERIOD Указывается период выборки (количество дней) для построения списка самых продаваемых товаров.



    Ссылка с объяснением: Ссылка
    Ответ написан
  • Как вывести данные из таблицы в модальное окно?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Я могу вам предложить следующий вариант:

    1. Реализуете на jQuery событие, отвечающее за вызов модального окна с помощью AJAX (покажу на своем примере):
    let editButton = $("#edit-button");
    
    editButton.on('click', function () {
        let articleId = $(this).attr("article-id"); // Здесь будет храниться идентификатор записи, которую хотите отредактировать (article-id произвольное название)
        $("#genElement").load("/api/v1/article-edit.php?ID=" + articleId); // genElement - пустой блок на странице, куда будем получать модальное окно 
    });
    // Подробнее: https://api.jquery.com/load/


    2. В шаблоне или на странице, где лежит ваша таблица делаете следующий блок (в него будет передаваться модальное окно с данными, повторюсь):
    <!-- Сюда будет приходить наше модальное окно -->
    <div id="genElement">
    
    </div>


    Далее, нам необходимо реализовать ту самую вашу страницу, где у вас была заполнена форма. Такие страницы обычно размещаю по пути: /api/.../pageName.php (например).

    Туда вы вставляете код вашей страницы с данными, и реализуете тот функционал, который у вас был при редактировании. Не самый лучший пример, но он стопроцентно работает.
    Ответ написан
    Комментировать
  • Как не показывать сайт на старых версиях Safari?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Советую воспользоваться данной статьей. В ней и лежит одна из возможных реализаций на вашу задачу.
    Ответ написан
    Комментировать
  • Невозможно войти в админку Битрикс, что делать?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Попробуйте:
    1. Сбросить куки в браузере
    2. В настройках вашего пользователя посмотрите на статус "Активность", возможно ,что пользователь был отключен
    3. Проверить сохранение сессий (хотя, по моему опыту скажу так - войти мог, но при перезагрузке страницы происходил вылет из аккаунта)
    4. Можете также попробовать сбросить пароль из базы, заходите в таблицу b_user, устанавливаете ваш пароль на известный, но в захэшированном виде. Например: 123456789 - 25f9e794323b453885f5181f1b624d0b
    5. Попробуйте авторизоваться из другого браузера, если получится - возвращайтесь к пункту 1.
    6. (Не увидел, что очищали кэш, все равно пункты оставлю, но добавлю еще один) - У вас логируются попытки авторизации? Попробуйте порыскать там, а самое главное - посмотрите, нет ли ошибок в PHP / Веб-сервер логах
    Ответ написан
    Комментировать
  • Почему возникает 502 ошибка при редактировании почтового события?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Сталкивался с аналогичной проблемой, только в рамках компонента. Попробовал следующие методы:


    1. Проверить в файле dbconn.php на наличие параметра set_time_limit
    2. Проверить php.ini на наличие аналогичной установки - max_execution_time (помните, то, что указано в dbconn.php имеет приоритет перед тем, что написано в php.ini
    3. Значение memory_limit также может влиять на это дело.



    Но это лишь попытка найти обход проблемы. Попробуйте настроить профилирование, и посмотреть, в чем же все таки может быть проблема. У меня, например, была очень назойливая проблема, когда на многосайтовом режиме зависал комплексный компонент "catalog", и это происходило по неизвестным (до сих пор) для меня причинам, как бы это странно не звучало.
    Ответ написан
    Комментировать
  • Как сделать смену префикса бота на сервере дискорд discord.js?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Попробуйте воспользоваться этим пакетом: Клик
    Ответ написан
    Комментировать
  • Как сделать плавный переход к якорю(верстка)?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Например, вот так:

    html {
        scroll-behavior: smooth;
    }


    Но есть одна побочка, что не все браузеры поддерживают такой подход. Зато без JS)

    Либо с элементами небольшого JS кода:

    // Проходимся по всем элементам "linkList", и делаем выборку по ссылкам (a с атрибутом href, который равен "#")
    const anchors = document.querySelectorAll('.linkList a[href*="#"]')
    
    for (let anchor of anchors) {
      anchor.addEventListener('click', function (e) {
      e.preventDefault()
       
      const blockID = anchor.getAttribute('href').substr(1)
       
      document.getElementById(blockID).scrollIntoView({
      behavior: 'smooth',
      block: 'start'
      })
      })
    }
    Ответ написан
    4 комментария
  • Как сделать чтобы бот реагировал на @ или *?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Пример приведен с использованием "vk-io". Реализация была доступна где-то на этом сайте, нашел, протестировал. Работает.

    const GROUP_ID = SOME_GROUP_ID;
    
    const mentionPattern = new RegExp(
        String.raw`^(?:\[-${GROUP_ID}\|[^\]]+\])(?:[\s.,\'\"!?\-+]+|$)`,
        'i'
    );
    
    vk.updates.on('message', (context, next) => {
        if (context.isChat && !mentionPattern.test(context.text)) {
            return;
        }
    
        if (context.text) {
            context.text = context.text.replace(mentionPattern, '');   
        }
    
        return next();
    });
    Ответ написан
  • Как создать функцию которая рисует таблицу в jq?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Вот вам пример реализации "расширения" таблицы. Осталось лишь немного доделать...

    <button id="addcolumn">Add Column</button>
    <button id="addrow">Add Row</button>
    
    	<table width="100%" border="1" cellpadding="0" cellspacing="0">
        
        <thead id="theads">
        	<tr>
            	<th class="th" contenteditable>Heading</th>
                <th class="th" contenteditable>Heading</th>
            </tr>
        </thead>
        
        <tbody id="tbody">
        	
        </tbody>
        
        </table>


    $(document).ready(function () {
        var $cell = $('<td>', {
            'class': 'td',
            'align': 'center',
            'contenteditable': '',
            'text': 'Content'
        });
        
        var $header = $('<th>', {
            'class': 'th',
            'contenteditable': '',
            'text': 'Heading'
        });
        
    	$('#addcolumn').click(function() {
            $header.clone().appendTo('thead tr');
            $cell.clone().appendTo('tbody tr');
    	});
    	
    	$('#addrow').click(function(){
            var $row = $('<tr>');
            
            $('th').each(function() {
                $cell.clone().appendTo($row);
            });
            
            $row.appendTo('tbody');
    	});
    });


    Источник: Клик
    Ответ написан
    Комментировать
  • Как сверстать эти хар-ки?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Один в один - не смогу, ибо в верстке я не гуру, но что-то похожее:
    ul {
      padding: 0;
      margin: 0;
      list-style-type: none;
    }
    
    ul li {
      display: block;
      overflow: hidden;
      position: relative;
    }
    
    .item__name {
      display: inline-block;
      position: relative;
      
    }
    
    .item__name:after {
      content: '';
      position: absolute;
      left: 100%;
      right: -9999px;
      bottom: 0;
      border-bottom: 1px dotted #888;
    }
    
    .left {
      width: 80%;
      overflow: hidden;
      position: relative;
      float: left;
    }
    
    .item__value {
      width: 20%;
      float: right;
    }


    <ul>
      <li>
        <div class="left">
          <span class="item__name">Первый пункт</span>
        </div>
        <span class="item__value">Значение</span>
      </li>
      <li>
        <div class="left">
          <span class="item__name">Второй пункт</span>
        </div>
        <span class="item__value">Значение</span>
      </li>
      <li>
        <div class="left">
          <span class="item__name">Третий пункт</span>
        </div>    
        <span class="item__value">Значение</span>
      </li>
    </ul>


    Проверка работоспособности: Клик
    Ответ написан
    Комментировать
  • Как добавить @ вначале input при вводе текста?

    BornToFreeFall
    @BornToFreeFall
    Sielu ilman ihmistä
    Проверяйте. Принцип работы прост... Существует поле (input) с идентификатором "input-id". В нашем JS коде мы инициализируем переменную, хранящую в себе полученный объект, на который мы вешаем listener с аргументом input. Это означает, что при любом вводе в наше поле он будет отрабатывать. Далее, мы проверяем... Действительно ли нулевой элемент из input'а не равен "@". И если это так, то мы его дописываем в самое начало.

    <input id="input-id" />

    let selectedInput = document.querySelector("#input-id");
    selectedInput.addEventListener("input", function() {
        if (this.value[0] != '@') {
            this.value = '@' + this.value;
        }
    });


    Честно говоря, не особо силен в JS коде, но такая вариация для начального понимания сойдет.
    Ответ написан
    Комментировать