User Deprecated: Since symfony/framework-bundle 5.1: Using type "Symfony\Component\Routing\RouteCollectionBuilder" for argument 1 of method "App\Kernel:configureRoutes()" is deprecated, You need to update Kernel class to start using RoutingConfigurator instead of RouteCollectionBuilder. You can do it automatically by updating the recipe (composer recipes:install symfony/framework-bundle --force)
Рубрика: Программирование
safari new date invalid date
Бесит сафари, там где хром отрабатывает на ура, тупой сафари не может распарсит дату, приходится за место
var dtr = new Date( $('#record-client-age-2').val() );
писать
var [ day, month, year ] = $('#record-client-age-2').val().split('.')
var dtr = new Date(year, month, day);
и не забыть указать плейсхолдер
<input class="record-form__input-text " type="date" name="client_age_2" value=""
id="record-client-age-2" tabindex="7" required placeholder="dd.mm.yyyy" >
а все почему? потому что в 2021 году сафари не знает что такое type=’date’, в 2021 году
How to POST a large amount of data within PHP curl without memory overhead?
$curl = curl_init(); curl_setopt( $curl, CURLOPT_PUT, 1 ); curl_setopt( $curl, CURLOPT_INFILESIZE, filesize($tmpFile) ); curl_setopt( $curl, CURLOPT_INFILE, ($in=fopen($tmpFile, 'r')) ); curl_setopt( $curl, CURLOPT_CUSTOMREQUEST, 'POST' ); curl_setopt( $curl, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json' ] ); curl_setopt( $curl, CURLOPT_URL, $url ); curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 ); $result = curl_exec($curl); curl_close($curl); fclose($in);
twig вывести на русском текущий месяц
{% set mnths = ['','января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'] %}
{{ mnths[date('now', 'Europe/Moscow')|date("n")] }}
Условие с датой
{% if date('now', 'Europe/Moscow') > date('2028-01-02') %}
вывод после 2028 года
{% else %}
вывод до 2028 года
{% endif %}
{{ countBonus|number_format(2, '.', '') }} - выведет с нулями после точки
{{ '%07.2f'|format(countBonus) }} - добъет нули до и после точки
Про компьютеры
Основном мой рабочий компьютер сейчас, это Макбук Про. Он конечно не идеальный, но после долгих лет на windows и linux, остановился именно на нем. На это есть три главные причины:
Парацетамол
Я: — Иммунитет, что за нафиг, почему у меня температура 40?
Иммунитет: — Я выбросил в кровь пирогены, которые добрались до центра терморегуляции в гипоталамусе и тот сместил точку равновесия в сторону теплопродукции.
HTTP Digest
Документация по Digest http://www.hardline.ru/4/38/4862/
Проверка Curl
curl -v —digest —user ‘User:Password’ «https://yandex.ru/MessageService/WebService.svc»
Система аутентификации на базе протокола HTTP Digest. Усиление модуля. |
||||||||||||||||||||||||||||||||
В статье «Система аутентификации на базе протокола HTTP Basic был рассмотрен алгоритм Basic аутентификации и с помощью него была построена система Basic аутентификации на основе ролей, работающая без специальной настройки IIS сервера и использующая базу данных для хранения учетных записей пользователей.У Basic есть один недостаток, а именно username и password передаются по сети открыто (clear text), base64 кодировка не может считаться защитой.
Аутентификация DigestВ этой статье будет рассмотрен алгоритм Digest аутентификации, решающей некоторые проблемы, имеющиеся у HTTP Basic Authentication. Например эта схема не передаёт password по сети открытым текстом. Официальное название схемы — «Digest Access Authentication». Расширим нашу систему из предыдущей статьи. К преимуществам Digest можно отнести следуещее:
Один сайт может одновременно использовать несколько систем защиты, например Basic и Digest Пришло время рассмотреть работу алгоритма Digest аутентификации: 1. Первый запрос от User Agent к Http Server заголовок Authorization пустой — значит server должен возвратить запрос на аутентификацию. Например такой: 2. ответ сервера: HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest
realm="testrealm@host.com",
qop="auth",
nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
opaque="5ccc069c403ebaf9f0171e9517f40e41",
algorithm=MD5,
stale=false
Разберём заголовок WWW-Authenticate (как вы заметили, он усложнился по сравнению с заголовком Basic):
3. У юзера всплывает модальное окно, предлагающее ввести username и password (обратите внимание, окно отличается от Basic окна). Происходит запрос юзера для аутентификации: GET ... ... HTTP/1.1
Authorization: Digest
username="Mufasa",
realm="testrealm@host.com",
nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
uri="/dir/index.html",
qop=auth,
nc=00000001,
cnonce="0a4f113b",
response="6629fae49393a05397450978507c4ef1",
opaque="5ccc069c403ebaf9f0171e9517f40e41"
Теперь разберём заголовок Authorization:
4. Последовательность обработки запроса пользователя
Если что-то не так — переходим к пункту 6. Если всё ok — идём дальше (это ещё далеко не всё :)) 5. Проверка пароля пользователя
если HGENRESPONSE равен response в заголовке Authorization запроса юзера и nonce в порядке — всё ok, нет — переходим к пункту 6 6. выдаём состояние ответа сервера 401, поднимающее модальное окно как в пункте 2 иначе говоря формируем WWW-Authenticate по типу Digest |
MacOs
А что у нас там в автозагрузке можно посмотреть тут
/System/Library/LaunchDaemons и /System/Library/LaunchAgents /Library/LaunchDaemons и /Library/LaunchAgents /Users (Пользователи)/Имя_пользователя/Library/LaunchAgents
Bitrix CMS
Bitrix CMS одна из самых страшных CMS в мире. Это свой собственный корявый язык поверх PHP.
Если вы хотите сделать что то быстро, надежно и красиво, bitrix cms это мимо
Пример. У вас есть инфоблок, в котором можно настроить поля.
Вы добавляете новый вид поля — Список, и вбиваете туда адреса:
Теперь на сайте делаете фильтр и предлагаете пользователю выбрать нужный вам адрес
И тут начитается ОЛОЛОЛОЛОЛ, фильтровать по XML_ID эту дичь не выйдет, то есть вы можете фильтровать ТОЛЬКО по значению value
Но даже в этом случае, попробуйте без бутылки разобраться КАК тут это сделать?:
$APPLICATION->IncludeComponent("bitrix:news","",Array(
"DISPLAY_DATE" => "Y",
"DISPLAY_PICTURE" => "Y",
"DISPLAY_PREVIEW_TEXT" => "Y",
"SEF_MODE" => "Y",
"AJAX_MODE" => "Y",
"IBLOCK_TYPE" => "news",
"IBLOCK_ID" => "1",
"NEWS_COUNT" => "20",
"USE_SEARCH" => "Y",
"USE_RSS" => "Y",
"USE_RATING" => "Y",
"USE_CATEGORIES" => "Y",
"USE_REVIEW" => "Y",
"USE_FILTER" => "Y",
"SORT_BY1" => "ACTIVE_FROM",
"SORT_ORDER1" => "DESC",
"SORT_BY2" => "SORT",
"SORT_ORDER2" => "ASC",
"CHECK_DATES" => "Y",
"PREVIEW_TRUNCATE_LEN" => "",
"LIST_ACTIVE_DATE_FORMAT" => "d.m.Y",
"LIST_FIELD_CODE" => Array(),
"LIST_PROPERTY_CODE" => Array(),
"HIDE_LINK_WHEN_NO_DETAIL" => "Y",
"DISPLAY_NAME" => "Y",
"META_KEYWORDS" => "-",
"META_DESCRIPTION" => "-",
"BROWSER_TITLE" => "-",
"DETAIL_SET_CANONICAL_URL" => "Y",
"DETAIL_ACTIVE_DATE_FORMAT" => "d.m.Y",
"DETAIL_FIELD_CODE" => Array(),
"DETAIL_PROPERTY_CODE" => Array(),
"DETAIL_DISPLAY_TOP_PAGER" => "Y",
"DETAIL_DISPLAY_BOTTOM_PAGER" => "Y",
"DETAIL_PAGER_TITLE" => "Страница",
"DETAIL_PAGER_TEMPLATE" => "",
"DETAIL_PAGER_SHOW_ALL" => "Y",
"STRICT_SECTION_CHECK" => "Y",
"SET_TITLE" => "Y",
"ADD_SECTIONS_CHAIN" => "Y",
"ADD_ELEMENT_CHAIN" => "N",
"SET_LAST_MODIFIED" => "Y",
"PAGER_BASE_LINK_ENABLE" => "Y",
"SET_STATUS_404" => "Y",
"SHOW_404" => "Y",
"MESSAGE_404" => "",
"PAGER_BASE_LINK" => "",
"PAGER_PARAMS_NAME" => "arrPager",
"INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
"USE_PERMISSIONS" => "Y",
"GROUP_PERMISSIONS" => Array("1"),
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
"CACHE_FILTER" => "Y",
"CACHE_GROUPS" => "Y",
"DISPLAY_TOP_PAGER" => "Y",
"DISPLAY_BOTTOM_PAGER" => "Y",
"PAGER_TITLE" => "Новости",
"PAGER_SHOW_ALWAYS" => "Y",
"PAGER_TEMPLATE" => "",
"PAGER_DESC_NUMBERING" => "N",
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
"PAGER_SHOW_ALL" => "Y",
"FILTER_NAME" => "",
"FILTER_FIELD_CODE" => Array(),
"FILTER_PROPERTY_CODE" => Array(),
"NUM_NEWS" => "20",
"NUM_DAYS" => "30",
"YANDEX" => "Y",
"MAX_VOTE" => "5",
"VOTE_NAMES" => Array("0", "1", "2", "3", "4"),
"CATEGORY_IBLOCK" => Array(),
"CATEGORY_CODE" => "CATEGORY",
"CATEGORY_ITEMS_COUNT" => "5",
"MESSAGES_PER_PAGE" => "10",
"USE_CAPTCHA" => "Y",
"REVIEW_AJAX_POST" => "Y",
"PATH_TO_SMILE" => "/bitrix/images/forum/smile/",
"FORUM_ID" => "1",
"URL_TEMPLATES_READ" => "",
"SHOW_LINK_TO_FORUM" => "Y",
"POST_FIRST_MESSAGE" => "Y",
"SEF_FOLDER" => "/",
"SEF_URL_TEMPLATES" => Array(
"detail" => "#ELEMENT_ID#/",
"news" => "search/",
"section" => "rss/",
),
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"AJAX_OPTION_HISTORY" => "N",
"VARIABLE_ALIASES" => Array(
"detail" => Array(),
"news" => Array(),
"section" => Array(),
),
"USE_SHARE" => "Y",
"SHARE_HIDE" => "Y",
"SHARE_TEMPLATE" => "",
"SHARE_HANDLERS" => array("delicious", "facebook", "lj", "twitter"),
"SHARE_SHORTEN_URL_LOGIN" => "",
"SHARE_SHORTEN_URL_KEY" => "",
)
);
diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
Если при подключении по ssh получаем ошибку:
Unable to negotiate with 11.11.7.10 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
То надо в файле
~/.ssh/config
Прописать:
Host 11.11.7.10
KexAlgorithms +diffie-hellman-group1-sha1
