Задать вопрос
  • Почему планировщик задач Windows Server 2016 не запускает задания?

    Lopar
    @Lopar
    системный администратор
    Это известный, хоть и малообсуждаемый баг 2016 сервера. Обещают исправить в осеннем апдейте.
    Баг заключается в том, что автоповтор перестаёт работать после ребута сервера.
    Костыль — перевести дату первого запуска на будущее значение, чтобы система его заново стартонула и пошла обрабатывать. И таким образом переводить стрелки задач после каждого ребута.

    Подробно описано:
    https://answers.microsoft.com/en-us/windows/forum/...
    Ответ написан
    3 комментария
  • Как использовать store.action в router vuejs?

    @bubaley
    Если Вы подключили store в роутер
    Как import store from 'ваш путь'
    Для того чтобы вызвать actions нужно использовать:
    store.dispatch('название события')
    По аналогии с вызовом в самом приложении vue.
    Ответ написан
    Комментировать
  • Как сделать у блока с position:absolute ширину родителя, а не по контенту?

    @AndreyMyagkov
    еще вариация:

    1) задать родителю position: relative
    2) блоку position:absolute; left:0; right:0;
    Ответ написан
    Комментировать
  • WordPress или MODx Revolution для корпоративного сайта?

    maxxannik
    @maxxannik
    Сайты на WordPress + Интернет магазины WooCommerce
    WordPress - это лидер, №1 на рынке по доле сайтов, на базе которого делают сайты мировые бренды у которых есть деньги на грамотных специалистов, которые уже давно не задаются такими вопросами.
    MODx - это платформа для гиков с игрой юношеского максимализма в попе и любителей всего не обычного. По доле рынка даже рядом с WP не стоит. Удел маргиналов.

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

    Как то так выглядит ответ в моей голове )
    Ответ написан
  • Как сделать слайдер на картинке управление мышью?

    Pshkll
    @Pshkll
    Ответ написан
    Комментировать
  • Как использовать text-overflov: ellipsis; для текста в несколько строк?

    Manyaka
    @Manyaka
    .block {
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }
    Ответ написан
    Комментировать
  • Как активировать скролл после того как кликнули на карту?

    forgotten
    @forgotten
    Руководитель разработки API Яндекс.Карт
    map.events.once('click', function () {
        map.behaviors
            .enable('scrollZoom')
            .enable('multiTouch');
    });

    https://tech.yandex.ru/maps/doc/jsapi/2.1/dg/conce...
    Ответ написан
    Комментировать
  • Как удалить slug у custom post type?

    @KingAnton
    Не забываем подставить свой post type заместо 'auto'
    function remove_post_slug( $post_link, $post, $leavename ) {
    
        if ( 'auto' != $post->post_type || 'publish' != $post->post_status ) {
            return $post_link;
        }
    
        $post_link = str_replace( '/' . $post->post_type . '/', '/', $post_link );
    
        return $post_link;
    }
    add_filter( 'post_type_link', 'remove_post_slug', 10, 3 );
    
    
    function parse_request_trick( $query ) {
    
        if ( ! $query->is_main_query() || 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) {
            return;
        }
    
        if ( ! empty( $query->query['name'] ) ) {
            $query->set( 'post_type', array( 'post', 'auto', 'page' ) );
        }
    }
    add_action( 'pre_get_posts', 'parse_request_trick' );
    Ответ написан
    4 комментария
  • Как работать с blade в laravel?

    Lyrium
    @Lyrium
    Web developer
    Blade шаблонизатор который помогает разграничить html и сделать работу с ним и вывод php данных более удобным и гибким.

    Разобраться что к чему не сложно blade прост для освоения, сейчас приведу несколько примеров с чего лучше начать:

    во первых разобраться с layout и с устройством шаблонизатора можно на примере кода который генерируется командой "php artisan make:auth" (базовая авторизация Laravel прочесть можно в офф. документации ссылка на авторизацию)
    Здесь сразу у вас будет пример с несколькими вьюхами и правильно построенным шаблоном в целом

    также можно ознакомиться с русскоязычной документацией описывающей blade довольно подробно ссылка на русский blade

    Самое главное нужно понимать что Blade основан на концепции наследования шаблонов и секциях, а разобраться с тем как что работает помогут примеры готового кода и документация

    upd: Директива @section, как следует из её названия, определяет секцию содержимого, а директива @ yield используется для отображения содержимого заданной секции. Т.е. в то место где стоит yield попадает значение секции

    схематичный пример:

    есть файл app, в дирректории layouts
    layouts/app.blade.php
    <html>
    <head>
    	<title>
    		@yield('title', 'Laravel')
    	</title>
    
    	<!-- Styles -->
    	<link href="{{ asset('public/css/app.css') }}" rel="stylesheet">
    </head>
    <body>
    	<div id="app">
    		<div class="navbar">
    			...
    		</div>
    
    		<div class="container">
    			@yield('content')
    		</div>
    	</div>
    </body>
    </html>


    второй файл описывает то что попадет в указанную секцию
    products.blade.php
    @extends('layouts.app')
    
    @section('title', 'Products')
    
    @section('content')
    	@foreach($products as $product)
    		{{ $product }}
    	@endforeach
    @endsection

    В первом случае нет закрывающего @endsection из-за того что тело секции это и есть строка 'Products', во втором случае мы указываем конец секции, потому что тело секции находится между @section и @endsection
    Ответ написан
    7 комментариев
  • Как в VSCode увеличить отступ подпапок( и подфайлов) в дереве файлов?

    @Domovikx
    5ebf5dd9a5032737429235.png
    Ответ написан
    Комментировать
  • Как в VSCode увеличить отступ подпапок( и подфайлов) в дереве файлов?

    @yes_body
    Заходи в настройки. В поиске введи "tree indent" и меняй значение
    Ответ написан
    Комментировать
  • Как навесить обработчик на коллекцию элементов?

    @Bluorenge
    Junior front-end developer
    Решение в ES6:
    const buttonItems = document.querySelectorAll('.button-item');
    
    for (let buttonItem of buttonItems) {
      buttonItem.addEventListener('click', (e) => e.preventDefault());
    }

    Источник: developer.mozilla

    Или ещё лаконичнее:
    const buttonItems = document.querySelectorAll('.button-item');
    
    buttonItems.forEach((buttonItem) => buttonItem.addEventListener('click', (e) => e.preventDefault());

    Источник: developer.mozilla
    Ответ написан
    Комментировать
  • Как навесить обработчик на коллекцию элементов?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Проблема в том, что вы пытаетесь навесить обработчик на коллекцию элементов, которая возвращается функцией querySelectorAll. Такой возможности нет, нужно обходить эту коллекцию и навешивать обработчик на каждый элемент отдельно:
    var buttonItems = document.querySelectorAll('.button-item'),
        index, button;
    
    for (index = 0; index < buttonItems.length; index++) {
        button = buttonItems[index];
        button.addEventListener('click', function (event) {
            console.log('click');
            event.preventDefault();
        });
    }

    Пример

    Обратите внимание, что такой способ установки обработчика в цикле не очень хорош - при каждой итерации создается новая функция-обработчик, что засоряет память и этот обработчик невозможно потом удалить, поскольку создаваемая функция безымянна и ссылка на нее нигде не сохраняется.
    Ну в принципе такой код не очень опрятный.

    Лучше делать так:
    var buttons = document.querySelectorAll('.button-item'),
        index, button;
    
    for (index = 0; index < buttons.length; index++) {
        button = buttons[index];
        button.addEventListener('click', clickHandler);
        button.addEventListener('dblclick', doubleClickHandler);
    }
    
    function clickHandler(event) {
        console.log('click', this.innerText);
        event.preventDefault();
    }
    
    function doubleClickHandler(event) {
        console.log('doubleclick', this.innerText);
        this.removeEventListener('click', clickHandler);    
        this.removeEventListener('dblclick', doubleClickHandler);
    }
    Ответ написан