• Contact form 7 + popup почему перегружается страница?

    svarnoy85
    @svarnoy85
    Столкнулся с подобной проблемой, разрабатывал свою тему.
    Суть в том, что у меня используется js 3.2.1, а WP грузит свою библиотеку 1.12.4.
    Я пробовал отключить полностью js WP и подключить свою библиотеку - не сработало :(.
    НО есть решение именно ЗАМЕНИТЬ библиотеку на свою, пишем эти строчки в functions.php:
    //Применяем свой jQuery
    function modify_jquery() {
    if (!is_admin()) {
    wp_deregister_script('jquery');
    wp_register_script('jquery', get_template_directory_uri() . '/js/vendor.js', false, '3.2.1', true);
    wp_enqueue_script('jquery');
    }
    }
    add_action('init', 'modify_jquery');

    Я еще отправил все это дело в футер. CF7 v.4.9.2 - полет нормальный и на сайте используется js v.3.2.1
    Ответ написан
    3 комментария
  • Как в Google Chrome убрать уведомление "отключение расширений в режиме разработчика"?

    @wOxxOm
    Батник-патчер, убирающий это принудительное предупреждение:

    1. Скопируйте код ниже и сохраните в любом текстовом редакторе как, например, DevWarningPatch.bat на рабочем столе

    2. Закройте хром вручную, чтобы не потерять незаконченное письмо, например, батник сам завершит оставшиеся спрятанные процессы хрома принудительно.

    3. Нажмите правой кнопкой мыши на сохраненном файле и запустите его от имени администратора, чтобы пропатчить все установленные версии хрома (поиск осуществляется посредством реестра или в текущей папке).

    Также можно просто перетянуть chrome.dll из папки портабельного хрома на иконку батника.

    <# :
    @echo off
    copy/b "%~f0" "%temp%\%~n0.ps1" >nul
    powershell -Version 2 -ExecutionPolicy bypass -noprofile "%temp%\%~n0.ps1" "%cd% " "%~1"
    del "%temp%\%~n0.ps1"
    pause
    exit /b
    #>
    param([string]$cwd='.', [string]$dll)
    
    function main {
        "Chrome 'developer mode extensions' warning disabler v1.0.10.20170114`n"
        $pathsDone = @{}
        if ($dll -and (gi -literal $dll)) {
            doPatch "DRAG'n'DROPPED" ((gi -literal $dll).directoryName + '\')
            exit
        }
        doPatch CURRENT ((gi -literal $cwd).fullName + '\')
        ('HKLM', 'HKCU') | %{ $hive = $_
            ('', '\Wow6432Node') | %{
                $key = "${hive}:\SOFTWARE$_\Google\Update\Clients"
                gci -ea silentlycontinue $key -r | gp | ?{ $_.CommandLine } | %{
                    $path = $_.CommandLine -replace '"(.+?\\\d+\.\d+\.\d+\.\d+\\).+', '$1'
                    doPatch REGISTRY $path
                }
            }
        }
    }
    
    function doPatch([string]$pathLabel, [string]$path) {
        if ($pathsDone[$path.toLower()]) { return }
    
        $dll = $path + "chrome.dll"
        if (!(test-path -literal $dll)) {
            return
        }
        "======================="
        "$pathLabel PATH $((gi -literal $dll).DirectoryName)"
    
        "`tREADING Chrome.dll..."
        $bytes = [IO.File]::ReadAllBytes($dll)
    
        # process PE headers
        $BC = [BitConverter]
        $coff = $BC::ToUInt32($bytes,0x3C) + 4
        $is64 = $BC::ToUInt16($bytes,$coff) -eq 0x8664
        $opthdr = $coff+20
        $codesize = $BC::ToUInt32($bytes,$opthdr+4)
        $imagebase32 = $BC::ToUInt32($bytes,$opthdr+28)
    
        # patch the flag in data section
        $data = $BC::ToString($bytes,$codesize)
        $flag = "ExtensionDeveloperModeWarning"
        $stroffs = $data.IndexOf($BC::ToString($flag[1..99]))/3 - 1
        if ($stroffs -lt 0) {
            write-host -f red "`t$flag not found"
            return
        }
        $stroffs += $codesize
        if ($bytes[$stroffs] -eq 0) {
            write-host -f darkgreen "`tALREADY PATCHED"
            return
        }
    
        $exe = join-path (split-path $path) chrome.exe
        $EA = $ErrorActionPreference
        $ErrorActionPreference = 'silentlyContinue'
        while ((get-process chrome -module | ?{ $_.FileName -eq $exe })) {
            forEach ($timeout in 15..0) {
                write-host -n -b yellow -f black `
                    "`rChrome is running and will be terminated in $timeout sec. "
                write-host -n -b yellow -f darkyellow "Press ENTER to do it now. "
                if ([console]::KeyAvailable) {
                    $key = $Host.UI.RawUI.ReadKey("AllowCtrlC,IncludeKeyDown,NoEcho")
                    if ($key.virtualKeyCode -eq 13) { break }
                    if ($key.virtualKeyCode -eq 27) { write-host; exit }
                }
                sleep 1
            }
            write-host
            get-process chrome | ?{
                $_.MainWindowHandle.toInt64() -and ($_ | gps -file).FileName -eq $exe
            } | %{
                "`tTrying to exit gracefully..."
                if ($_.CloseMainWindow()) {
                    sleep 1
                }
            }
            $killLabelShown = 0
            get-process chrome | ?{
                ($_ | gps -file | select -expand FileName) -eq $exe
            } | %{
                if (!$killLabelShown++) {
                    "`tTerminating background chrome processes..."
                }
                stop-process $_ -force
            }
            sleep -milliseconds 200
        }
        $ErrorActionPreference = $EA
    
        $bytes[$stroffs] = 0
        "`tPATCHED $flag flag"
    
        # patch the channel restriction code for stable/beta
        $code = $BC::ToString($bytes,0,$codesize)
        $rxChannel = '83-F8-(?:03-7D|02-7F)'
        # old code: cmp eax,3; jge ...
        # new code: cmp eax,2; jg ...
        $chanpos = 0
        try {
            if ($is64) {
                $pos = 0
                $rx = [regex]"$rxChannel-.{1,100}-48-8D"
                do {
                    $m = $rx.match($code,$pos)
                    if (!$m.success) { break }
                    $chanpos = $m.index/3 + 2
                    $pos = $m.index + $m.length + 1
                    $offs = $BC::ToUInt32($bytes,$pos/3+1)
                    $diff = $pos/3+5+$offs - $stroffs
                } until ($diff -ge 0 -and $diff -le 4096 -and $diff % 256 -eq 0)
                if (!$m.success) {
                    $rx = [regex]"84-C0.{18,48}($rxChannel)-.{30,60}84-C0"
                    $m = $rx.matches($code)
                    if ($m.count -ne 1) { throw }
                    $chanpos = $m[0].groups[1].index/3 + 2
                }
            } else {
                $flagOffs = [uint32]$stroffs + [uint32]$imagebase32
                $flagOffsStr = $BC::ToString($BC::GetBytes($flagOffs))
                $variants = "(?<channel>$rxChannel-.{1,100})-68-(?<flag>`$1-.{6}`$2)",
                        "68-(?<flag>`$1-.{6}`$2).{300,500}E8.{12,32}(?<channel>$rxChannel)",
                        "E8.{12,32}(?<channel>$rxChannel).{300,500}68-(?<flag>`$1-.{6}`$2)"
                forEach ($variant in $variants) {
                    $pattern = $flagOffsStr -replace '^(..)-.{6}(..)', $variant
                    "`tLooking for $($pattern -replace '\?<.+?>', '')..."
                    $minDiff = 65536
                    foreach ($m in [regex]::matches($code, $pattern)) {
                        $maybeFlagOffs = $BC::toUInt32($bytes, $m.groups['flag'].index/3)
                        $diff = [Math]::abs($maybeFlagOffs - $flagOffs)
                        if ($diff % 256 -eq 0 -and $diff -lt $minDiff) {
                            $minDiff = $diff
                            $chanpos = $m.groups['channel'].index/3 + 2
                        }
                    }
                }
                if (!$chanpos) { throw }
            }
        } catch {
            write-host -f red "`tUnable to find the channel code, try updating me"
            write-host -f red "`thttp://stackoverflow.com/a/30361260"
            return
        }
        $bytes[$chanpos] = 9
        "`tPATCHED Chrome release channel restriction"
    
        "`tWriting to a temporary dll..."
        [IO.File]::WriteAllBytes("$dll.new",$bytes)
    
        "`tBacking up the original dll..."
        move -literal $dll "$dll.bak" -force
    
        "`tRenaming the temporary dll as the original dll..."
        move -literal "$dll.new" $dll -force
    
        $pathsDone[$path.toLower()] = $true
        write-host -f green "`tDONE.`n"
        [GC]::Collect()
    }
    
    main
    Ответ написан
    24 комментария
  • Какие разделы английского стоит выучить для фриланса?

    @heartdevil
    плыву как воздушный шарик
    Учите сугубо ИТ английский.

    Открою секрет.

    Сидите часто на stackoverflow и читайте самые популярные вопросы и ответы от крутых разработчиков (владеющих отличным английским). Там легко понять уровень английского по ответам и вопросам. Это поможет не только "вариться" в своей среде, но и "вариться" по-английски. Запоминайте структуру сложных вопросов. И как они вообще подготавливаются. Далее смотрите, как на них отвечают. Зачастую, всегда просят описать задачу. Что, собственно, на самом деле и происходит на фрилансе. Далее, просят уточнить некоторые моменты. Затем постят свои решения с описаниями. Тут тоже нужно уделить внимание на подготовку ответа. Часто, конечно, это просто код)), но вам никто не запрещает, к примеру, спросить уточнения (не для понимания кода или алгоритма, а для понимания того, как разработчик будет разжевывать вам ответ на английском ;-)), если самолюбие позволяет)). Можете даже выписывать отдельные словосочетания, которые они применяют. К примеру, создал массив, присвоил значения переменной, пробежался циклом по массиву, создал класс, имплементировал интерфейс, перегрузил чего-то там и так далее.

    В таком ритме быстро научитесь понимать вопросы на английском и умело отвечать, но все это письменно. Разговорный вам может понадобиться, если клиент будет часто по скайпу вам названивать. Его освоить в разы сложнее. Поэтому можете честно заявлять клиенту, что уровень пока у вас не позволяет вести разговор. А там все от клиента будет зависеть.
    Ответ написан
    3 комментария