• Как удалить первый элемент из массива?

    @z0ddak Автор вопроса
    Мордор напоминает о себе
    Ни array_slice(), ни array_filter() не подошли, тут подробнее.
    Реализовал следующим образом, через array_diff_key():
    if ($_POST['member'] == 1) {
    
    	// подключаемся к БД "auth"
    	$auth = new Flintstone('auth', [
    
    		'dir'       => './database/',
    		'formatter' => new JsonFormatter()
    	]);
    
        // выбираем все записи в таблице
        $data = $auth->getAll();
    
        // формируем тело ответа
        $table_data = json_encode($data, JSON_FORCE_OBJECT);
        $arr        = json_decode($table_data, true);
    
        // отфильтруем ненужный нам элемент
        $filterOutKeys = array( KEY_NUM );
        $filteredArr = array_diff_key( $arr, array_flip( $filterOutKeys ) );
    
        $id         = 0;
        $newJson    = [
    
            'rows'  => array_map(
    
                function ($uid, $el) use (&$id) {
    
                    $el['token_key'] = $uid;
                    $el['id']        = $id++;
                    return $el;
                },
                array_keys($filteredArr),
                array_values($filteredArr)
            )
        ];
    
    	// отвечаем...
    	echo json_encode($newJson);
    }
    Ответ написан
  • C++ :: Как записать текст в файл с переносом строк?

    @z0ddak Автор вопроса
    Мордор напоминает о себе
    Видно коронавирус действует на умы).. что ж, отвечу сам на свой же вопрос:

    ///////////////////////////////////////
    
    // initiation string
    GetString getstring_note;
    
    // replace character
    String_t format_txt(String_t&& txt)
    {
    	std::size_t pos = 0;
    	while ((pos = txt.find('|', pos)) != std::string::npos)
    	{
    		txt.replace(pos, 1, "\x0D\x0A");
    		pos++;
    	}
    
    	return txt;
    }
    
    // we get formatted text
    String_t txt_format = format_txt(getstring_note.GetInfo(1));
    const String_t info_txt[] = { txt_format };
    
    ///////////////////////////////////////
    Ответ написан
    Комментировать
  • Что вызывает ошибку net::ERR_CONNECTION_REFUSED?

    @z0ddak Автор вопроса
    Мордор напоминает о себе
    Ошибка найдена. Решилось всё:
    --
    1. заменой опции origin на сервере (CORS): с localhost:4200 на http://<мой домен>.
    2. перенастройкой портов: прослушиваемый порт 8080 был открыт, но занят другим процессом. Установил другой порт для прослушивания на сервере и повторил его на клиенте.
    --
    Все заработало. Всем спасибо...
    Ответ написан
    Комментировать
  • Как прописать в hostname и hosts домен третьего уровня на серверах Scaleway?

    @z0ddak Автор вопроса
    Мордор напоминает о себе
    Заменил
    preserve_hostname: false
    на
    preserve_hostname: true
    команду hostnamectl set-hostname ... выполнил, но после перезагрузки файл hostname снова перезаписался

    куда ещё копать?
    Ответ написан
  • Как исправить ошибку подключения к VPNFace Lite?

    @z0ddak Автор вопроса
    Мордор напоминает о себе
    Дело было в версионном несоответствии OpenVPN клиента и сервера. Привёл в соответствие и всё заработало.
    Ответ написан
    Комментировать
  • Как реализовать автоматический перевод с пополняемой транзакции с основного кошелька на другие за вычетом процента от суммы?

    @z0ddak Автор вопроса
    Мордор напоминает о себе
    ozornick, спасибо что откликнулся...
    Да рассчитать то не проблема... Тем более я это могу делать средствами CRM системы. У меня весь расчёт по участникам ведётся в CRM, а обработчик только выхватывает нужные поля при запросах...

    Сложность в самой конструкции кода, не соображу как написать. По этому поводу в паблике ничего не найдёте - я всё перерыл. Вот хотелось бы одним запросом к API Яндекса как то решать и вычет процента и перевод НА СТОРОНЕ кошелька.

    Допустим сейчас это я вижу так:
    - жертвующий переводит сумму в основной кошелёк сервиса через форму, привязанную к конкретному участнику системы под которого проходит данный сбор;
    - при отправке формы в CRM создаётся запись о жертвующем и всей инфой о транзакции + автоматом рассчитываются нужные поля (сумма к выплате на кошелёк участника, с чьей формы поступило пожертвование, с вычетом процента) + поступают средства на основной кошелёк сервиса;
    - Яндекс отвечает http-запросом 200 OK, запускает обработчик, который формирует запрос к API на перевод средств участнику.
    - Яндекс снова шлёт 200 OK, подтверждая успешность переводаи и возвращая кое какую инфу...

    Так вот видно, что минимум два запроса нужны - первым пополняем счет, а во втором летит сумма для перевода за вычетом процента и целевой кошелёк участника. Считаю такую конструкцию избыточной и можно всё решать на стороне Яндекса одним запросом сразу же с формы. Ну не даёт она мне покоя) Уверен что кто то уже РЕШИЛ и ГОТОВ поделиться с общественностью.
    Ответ написан
  • Invalid_request Yandex Money?

    @z0ddak
    Мордор напоминает о себе
    "Redirect URI в настройках приложения и Redurect URI в запросе должны быть одинаковыми." - это так, но и ко всему где у вас экранирование кавычек: money-source("wallet","card") и т.д.? Вот что по этому поводу советует Яндекс.Деньги:

    ...могут быть символы, нарушающие синтаксис scope, например двойная кавычка.
    Для таких символов следует применять backslash escaping согласно формату JSON. Например: \"
    Ответ написан
    Комментировать
  • Ошибка объявления функции в svg - FireBug Mozilla. Как обойти?

    @z0ddak Автор вопроса
    Мордор напоминает о себе
    Решил так - просто сгенерировал элемент:
    <!-- вставляем элемент object в div -->
    <div id="monitor_svg" class="uk-text-center"></div>

    // Генерируем и вставляем элемент
    var object = document.createElement('object');
    document.getElementById('monitor_svg').appendChild(object);
    
    object.setAttribute( 'type', 'image/svg+xml' );
    object.setAttribute( 'width', '420' );
    object.setAttribute( 'height', 'auto' );
    object.setAttribute( 'data', '//.../file.svg' );
    
    // Объявляем функцию
    window.svgload_html = function(evt) {
      var svg = evt.target, //Вот он, корневой узел DOM SVG
          f = false, fig1 = svg.getElementById("fig1"), fig2 = svg.getElementById("fig2");
      setInterval(function() {
        f = !f;
        fig1.attributes["fill"].value = f ? "black" : "red";
        fig1.attributes["stroke"].value = f ? "red" : "black";
        fig2.attributes["fill"].value = f ? "red": "black";
        fig2.attributes["stroke"].value = f ? "black" : "red";
      }, 1000);
    };
    Ответ написан
    Комментировать