• JS на добавленных блоках?

    lamer350
    @lamer350
    กำลังสูงสุด
    К сожалению мы не можем угадать какие вы манипуляции пытаетесь произвести над блоками после вставки.
    Потому я первый выстрелю в небо:
    Если вы пытаетесь отследить какое либо событие блока (click, change и тп) то вместо:
    $( "#id-block" ).on( "click", function() { ... });
    нужно использовать
    $( "body" ).on( "click", "#id-block", function() { ... });
    Ответ написан
    3 комментария
  • JS на добавленных блоках?

    Immortal_pony
    @Immortal_pony Куратор тега JavaScript
    Вешайте обработчик события на существующий элемент.
    Вместо
    $('.dynamic-element').on('something',  function(ev){ ... })

    используйте
    $(document).on('something', '.dynamic-element', function(ev){ ... })


    $(document) - это стопроцентный вариант. Если есть какой-то другйо гарантированно существующий элемент поближе к нужному, то лучше на него повесить. Например:
    $('.my-form').on('something', '.dynamic-element', function(ev){ ... })
    Ответ написан
    6 комментариев
  • JS создать pdf?

    Aligatro
    @Aligatro
    Turn food and coffee into software...
    1 комментарий
  • Как открыть скетч файл на виндовс?

    или использовать https://icons8.com/lunacy
    Ответ написан
    Комментировать
  • Как в sublime text настроить подсветку ошибок синтаксиса php, js, json, html?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    https://github.com/SublimeLinter/SublimeLinter3
    sublimelinter.readthedocs.io/en/latest/installatio...

    Затем по `cmd+shift+p` устанавливаются отдельные плагины `sublimelinter-что-нибудь` на нужные языки.

    Но для IDE-задач возможно проще будет использовать всё-таки IDE, где всё это из коробки.
    Sublime Text конечно можно довести до такого состояния, и плагины почти на все случаи жизни в нём сообщество уже создало, но не всем нравится модульность и необходимость настраивать каждый модуль самостоятельно.
    Ответ написан
    2 комментария
  • Как открыть скетч файл на виндовс?

    jenovas
    @jenovas
    Можно, через авокод выгрузить, но напрямую он не работает, необходимо через их плагин для скетч
    Ответ написан
    Комментировать
  • Как делать Ajax запросы в vue.js?

    Комментировать
  • Как должен выглядеть код PHP для запроса разрешение браузера клиента?

    @OziJ
    Какая задача? Задача? Зачем?

    В настоящее время требуется уменьшать размер контента для тех же мобильных устройств.
    Например:
    На странице слайдер с изображением размерами 1920x500 пикс. в формате *.jpg весом в 40-50 Кбайт., 3 штуки – 150 Кб.

    Представляете сколько можно сэкономить времени на загрузку страницы отдавая клиенту значительно меньшие по размеру изображения зная размер экрана клиента.
    Ответ написан
    Комментировать
  • Как правильно указать точку входа в OpenServer?

    27cm
    @27cm
    TODO: Написать статус
    1. Настройки OpenServer > Домены
    2. Управление доменами > Ручное управление
    3. Указываете имя домена и папку, где лежит index.php
    4. Жмёте [Добавить]
    Ответ написан
    2 комментария
  • Emmet и jade? что быстрее?

    @dady_KK
    PM
    Разница в удобстве редактирования уже написанного кода, а вообще кому как удобно, с эммета можно начать и если нет надобности в циклах, условиях и прочих вкусностях джейда то можно и обойтись без него. Вы попробуйте если чувствуете джейд излишним в работе, то не используйте, в любом случае все улучшалки и упрощалки придуманы для удобства - если неудобно, то глупо идти на поводу у моды
    Ответ написан
    Комментировать
  • Как натянуть верстку на движок Magento?

    @asdz
    Я думаю в рамках данного ресурса очень долго объяснять, лучше воспользуйтесь гуглом
    Ответ написан
    3 комментария
  • Как сделать AJAX запрос безопасным?

    @cluberr
    Защита: используем nonce и проверяем права

    Нет острой необходимости проверять AJAX запрос, если он потенциально не опасный. Например, когда он просто получает какие-то данные. Но когда запрос удаляет или обновляет данные, то его просто необходимо дополнительно защитить с помощью nonce кода и проверкой прав доступа.

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

    Существует два вида защиты, которые нужно использовать в AJAX запросах в большинстве случаев.

    1. Код nonce (случайный код)

    Nonce - это уникальная строка, которая создается и используется один раз - одноразовое число. Nonce проверка используется, когда нужно убедится, что запрос был послан с указанного «места».

    В WordPress есть функции wp_create_nonce() и check_ajax_referer() - это базовые функции для создания и последующей проверки nonce кода. С их помощью мы и будем создавать защиту nonce для AJAX запросов.

    Для начала создадим nonce код:

    add_action( 'wp_enqueue_scripts', 'myajax_data', 99 );
    function myajax_data(){
    
    	wp_localize_script('twentyfifteen-script', 'myajax', 
    		array(
    			'url' => admin_url('admin-ajax.php'),
    			'nonce' => wp_create_nonce('myajax-nonce')
    		)
    	);  
    
    }

    twentyfifteen-script это название основного скрипта темы (см. выше), который подключается на сайте с помощью wp_enqueue_script().

    Затем, в AJAX запросе добавим переменную с кодом nonce:

    var ajaxdata = {
    	action     : 'myajax-submit',
    	nonce_code : myajax.nonce
    };
    jQuery.post( myajax.url, ajaxdata, function( response ) {
    	alert( response );
    });

    Теперь, в обработке заброса необходимо проверить nonce код:

    add_action( 'wp_ajax_nopriv_myajax-submit', 'myajax_submit' );
    add_action( 'wp_ajax_myajax-submit', 'myajax_submit' );
    function myajax_submit(){
    	// проверяем nonce код, если проверка не пройдена прерываем обработку
    	check_ajax_referer( 'myajax-nonce', 'nonce_code' );
    	// или так
    	if( ! wp_verify_nonce( $_POST['nonce_code'], 'myajax-nonce' ) ) die( 'Stop!');
    
    	// обрабатываем данные и возвращаем
    	echo 'Возвращаемые данные';
    
    	// не забываем завершать PHP
    	wp_die();
    }

    check_ajax_referer()работает на основе функции wp_verify_nonce() и по сути является её оберткой для AJAX запросов.
    Обратите внимание, что в данном случае Nonce код создается в HTML коде. А это значит, если у вас установлен плагин страничного кэширования, то этот код может и наверняка будет устаревать к моменту очередного AJAX запроса.
    2. Проверка прав доступа

    Тут AJAX запросы будут срабатывать только для пользователей с правом author. Для всех остальных включая неавторизованных пользователей, AJAX запрос вернет ошибку.

    Особенность тут в том, что не авторизованные пользователи тоже должны видеть сообщение об ошибке при AJAX запросе. Для этого нужно обрабатывать запрос для них возвратом ошибки:

    add_action( 'wp_ajax_nopriv_myajax-submit', 'myajax_submit' );
    add_action( 'wp_ajax_myajax-submit', 'myajax_submit' );
    function myajax_submit(){
    	// проверяем nonce код, если проверка не пройдена прерываем обработку
    	check_ajax_referer( 'myajax-nonce', 'nonce_code' );
    
    	// текущий пользователь имеет права автора или выше
    	if( ! current_user_can('publish_posts') )
    		die('Этот запрос доступен пользователям с правом автора или выше.')
    
    	// Делаем что нужно и выводим данные на экран, чтобы вернуть их скрипту
    
    	// Не забываем выходить
    	wp_die();
    }
    Ответ написан
    2 комментария
  • Как сделать AJAX запрос безопасным?

    @dady_KK
    PM
    CSRF - почитайте про это, именно этот тип атак Вы описали в вопросе, для защиты используют обычно уникальные токены, которые рандомно меняются при каждом посещении (каждом просмотре страницы) и проверяются бекендом (совпал токен или нет). Таким образом чтобы запрос был успешно обработан в форме должен быть правильный токен для этого конкретного посещения
    Ответ написан
    4 комментария
  • Owl Carousel 2 Items Equal Heights?

    @BLVST
    Frontend. Открыт к предложениям.
    Указать высоту у owl-item?
    Ответ написан
    Комментировать
  • Перевод с русского на английский?

    @ommunist
    Делаю и поддерживаю мультиязычные сайты
    В самих заголовках шаблонов указан параметр textdomain?
    PO и MO не пустые?
    MO компилируется из PO? (на всякий случай спрашиваю)

    Зачем эти танцы с конфигом и экшеном в функциях? В конфиге один язык пишется - это будет дефолтный язык админки. POT файла в /languages каталоге темы достаточно, не надо вот так грузить MO файлы, там еще у вас неверно и путь написан.

    Не путайте локализацию темы l10n с переводом i18N. Тот код что вы написали относится к локализации.

    В WPML все средства перевода и локализации встроенные, не надо вообще шаманить в functions.php и конфиге, уберите оттуда все это, и пройдите по настройкам WPML. Потом в String Translation сделайте скан строк темы для перевода и сформируйте задание на перевод. Вот и все.
    Ответ написан
    Комментировать
  • Какой видеокурс по основам WordPress действительно стоит изучить?

    Evanre
    @Evanre
    Front-end developer
    Одни из лучших комплексных курсов у Teamtreehouse.com. Русскоязычные "курсы" не советую. Парни вроде webformyself занимаются продажей курсов для домохозяек типа "сайт за 20 часов", а не обучением. То же самое и на Youtube. Единственные 2 русскоязычных канала о wp которые смотрю Быть програмистом и wp-plus.
    Первый ориентируется на создание тем для Envato, правда фреймворк у него самописный и давольно старый\кривой.
    А вот wp-plus, он же CampusBoy (активный польpователь и контрибьютор ресурса wp-kama, тоже кстати советую) делает отличные видео. Не из разряда, "установите очередной плагин под мелкую фигню" (по типу WPRuse), а именно как правильно писать на WP. У него есть несколько отличных серий уроков (ContactForm7, CarbonFields и т.д.),. Канал молодой и очень маленький, но автор просто молодчина :)
    Ответ написан
    Комментировать
  • Как вы боретесь с удалением папок node_modules в Windows?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Тема в интернетах давно и широко освещаема, народ давно прикурил, что не все так просто, как кажется на первый взгляд, и нет "серебряной пули".

    `RimRaf` - хорошо, но не очень: использовать можно либо из скрипта, либо вручную на каждый проект, т.е. перед массовым бэкапом можно использовать лишь в составе некое "подготовительного" инструмента. И таки да - есть проблемы на разных конкретных конфигурациях. "Platform independence" не получился. По сути тех же результатов можно получить делая `rm -rf node_modules` в оболочке `bash` или `rmdir /S node_modules` в `cmd`, причем `rmdir` в большинстве случаев не вспомнит про длину строки, даже если для этого есть поводы.

    `npm dedupe` - тоже очень хорошо, но также не очень. Это неплохо делать в каждом проекте после `install` или после каждого изменения зависимостей. В противном случае перекур на сутки - просто гарантирован.

    1.

    Если доступна оболочка Bash на основе CygWin (если пользуетесь Git, скорее всего она - оболочка баша - есть, но не факт) решение, которое лежит на поверхности:

    find . -name "node_modules" -exec rm -rf '{}' +

    плюсик в конце - так надо: автоматом подтаскивает завершение (перевод) строки, можно заменить на \;

    Попадался и такой вариант:

    #!/bin/bash
    
    delete-all-dep-folders() {
      # `-prune` prevents building up lists of `node_modules` inside `node_modules`
      find ${1:-.} -type d -name "node_modules" -prune -exec rm -rf '{}' \; -exec echo 'Deleted {}' \;
      find ${1:-.} -type d -name "bower_components" -prune -exec rm -rf '{}' \; -exec echo 'Deleted {}' \;
    }


    После запуска скрипта (можно просто скопипастить в окошко баша) можно без параметров запустить команду `delete-all-dep-folders` в нужной папке или первым параметром задать путь:

    $ delete-all-dep-folders /path/to/project-root

    Напомню: если `bash` под cygwin, только тогда ему плевать на длину пути. Насколько это так, вы должны знать сами - где и какую версию Гита/Баша вы брали, там и надо читать: в интернетах найдется куча версий баша, скомпилированных с использованием нативных библиотек Windows, которые не используют cygwin!!!

    2.

    PowerShell. Якобы та самая "серебрянная пуля" от МелкоСофт. Вроде бы, плевать он хотел на длину пути. Якобы.

    Если видели в документациях/интернатах другое - не спешите опровергать: с виндами никогда ничего не бывает однозначно, у нее (Винды), как у любой нормальной женщины, в словаре бинарной логики (либо "да", либо "нет") есть еще и значения "может быть", "не знаю" и "это не я".

    Вариант:

    Get-ChildItem -Path "." -Include "node_modules" -Recurse -File:$false  | Get-ChildItem -Recurse | Remove-Item -Recurse  -Force


    Вполне рабочий, НО версия PowerShell >4.0. Более старые версии даже с ключом `-Force` не могут удалить НЕпустые папки.

    Уточню: несмотря на то, что Remove-Item (он же del, он же ...) имеет возможность обозначать фильтры и работать рекурсивно, тем не менее необходимость конвейера (знак палки между командами) все-таки есть, и на эти грабли наступало уже очень много народу еще до того, как на ms-tech и в документации была признано и отмечено, что таки да, проблема есть и в качестве решения предлагается использовать конвейер, т.е. – через палку надо делать, и не делать тупо Delete.

    И таки да, я нарвался на случай, когда это не сработало - на USB диске (NTFS) лежал старый проект на `Meteor`. Актуальности никакой, для истории тоже не находка, но он единственный усиленно сопротивлялся 4 с лишним часа. После чего мне надоело доискиваться причин такой стойкости и старый (честно купленный еще в прошлом веке) добрый Total Commander справился со всем проектом полностью за 1.897s.

    3.

    Победитель конкурса - Total Commander с настройками дисковых операций с помощью собственных (НЕ системных) функций. Не верьте документации: Windows, начиная с Vista, выполняет при дисковых операциях значительно больше "левых" действий для красоты, чем Commander, посему операции "его" функциями выполняются быстрее, чем "её" функциями. Совсем хорошо, если отключить в командере поддержку файлов описаний содержимого каталогов. Также, когда-то давно, мне попадался на глаза подключаемый модуль для командера, который заменял/дополнял поиск файлов на другой, в котором используется другая библиотека для работы с регулярными выражениями и дисковые операции можно выполнять сразу над результатами поиска без перекладывания во временную панель.

    4.

    Или мы не программисты? Пишем свой велосипед по рекурсивному обходу каталогов и `rimraf`-им чего надо. При этом не забываем положить сей золотой ключик отдельно, чтобы мимоходом не прибить его зависимости, и делаем для него консольный вызов. Успешно выкладываем в NPM и собираем звезды на Гитхабе. Дерзайте, а я настоящий программист, мне - лень, когда все просто и понятно :)
    Ответ написан
    Комментировать
  • Как проверить разроботчика на честность?

    sim3x
    @sim3x
    Попросите разработчика вставить свои контактние данние в humans.txt

    Большая проблема если он действительно делал сайт конкурента

    В любом случае
    Бьем таск на подзадачи и разбираемся как вы будете с ним проводить расчет
    Ответ написан
    2 комментария
  • Как лучше сделать фоновое видео для сайта?

    Afres
    @Afres
    Product Owner
    Ответ написан
    Комментировать