• Как удалить часть контента (фрагмент кода) из всех записей WordPress?

    mihdan
    @mihdan
    WordPress-евангелист, ведущий РНР - разработчик
    Попробуйте через WP-CLI (оно умеет и по регулярке):

    wp search-replace 'что' `на что` --regex
    Ответ написан
    Комментировать
  • Как в Notepad++ удалить все символы после первого пробела?

    Moskus
    @Moskus
    Если вас всё еще интересует, как сделать это без табличного процессора, используйте поиск и замену в режиме регулярных выражений.
    Найти: ^(.*?)\s.*$
    Заменить на: $1
    Ответ написан
    Комментировать
  • Как вывести месяц на русском yii2 formatter?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    <?=Yii::$app->formatter->asDatetime($item->date, 'long')?>

    думаю проблема у Вас не в timestamp, с ним работает без проблем. А вот если у Вас нет intl - то будет выводить на английском. Так что скорее всего Вы не там копаете. Копайте php.ini, пока не найдете:
    ;extension=php_intl.dll
    Ответ написан
    3 комментария
  • Создаем базу данных запчастей в 2020 году. С чего начать?

    Sanes
    @Sanes
    Забудьте про Wordpress и подобные поделия.
    Насколько помню в CS-Cart есть конфигуратор, который наверняка пригодится. Был раньше в демо на примере сборки компьютера. По совместимости комплектующих.
    Собственно CS-Cart сейчас самое оптимальное решение для приличного каталога или магазина.
    Ответ написан
    Комментировать
  • "Не удалось обработать файл Sitemap" в Google Search Console - как решить эту проблему?

    у гугла проблема с обработкой карт с марта, для некоторых зон, например, РФ, возможно и ваша. Если вы добавляете карту, а в журнале веб сервера не фиксируется обращение к сайту для чтения карты, то это как раз случай проблемы гугла. Вы ничего не сделаете пока там не починят эту ошибку.
    Разумеется у вас должны быть отключены фаерволы и прочие фильтры, которые могут дать такой же эффект.
    Ответ написан
    Комментировать
  • $_GET параметры недоступны в компоненте Yii2?

    proudmore
    @proudmore
    Скорее всего проблема в том, что bootstrap секция вызывается раньше инициализации объекта yii\web\Request
    Ответ написан
    1 комментарий
  • Пароли пользователей после переноса с yii?

    @xfg
    Yii использует алгоритм хеширования blowfish. Чтобы в php получить хеш по этому алгоритму, нужно просто взять функцию crypt и вторым аргументом передать соль в формате$2a$13$6abRKtrd12bvkltrfsorbd

    где
    $2a$ (также может быть $2x$ или $2y$) - указывает на алгоритм блоуфиш.
    13 - сложность алгоритма, может быть от 04 до 31. Чем больше число, тем дольше будет вычисляться хеш.
    6abRKtrd12bvkltrfsorbd - 22 символа для соли.

    Проверить хеш против пароля можно функцией password_verify. Берете хеши, которые вам нагенерил Yii и передаете в функцию password_verify и всё у вас заработает, без проблем. Я с Yii на node.js уезжал с этими хешами, никаких проблем :)

    Все что ниже можно не читать. Там для тех, кому интересно откуда взялось 3 разных префикса ($2a$, $2x$, $2y$).

    Префиксы $2y$ и $2x$ существуют только в PHP, так как они налажали в алгоритме блоуфиш в версиях до 5.3.7. Префикс $2x$ был добавлен для обратной совместимости, т.е. если вы генерили хеши $2a$ в версии PHP до 5.3.7 и теперь обновились до или выше этой версии и хотите, чтобы ваши уже существующие уязвимые хеши продолжали правильно работать, то нужно было заменить у таких хешей префикс с $2a$ на $2x$. Префикс $2y$ это уже исправленный алгоритм хеширования и ничем не отличается от $2a$ в версиях PHP 5.3.7 и выше. Подробнее обо всем этом можно прочитать php.net/security/crypt_blowfish.php

    Yii использует префикс $2y$. Но в спецификации из всех этих префиксов есть только $2a$ и его и нужно использовать, если у вас версия выше или эквивалентна PHP 5.3.7. Так что, если вы избавились от Yii, то можете поменять и префикс у ваших хешей. Потому что, когда я мигрировал на node.js библиотека для блоуфиш хеширования естественно не поддерживала никаких $2y$ и $2x$ и не собиралась этого делать в дальнейшем, так как это не их баги, а PHP, вот пусть PHP с этими префиксами и живет :)
    Ответ написан
    1 комментарий
  • Почему Thunderbird не логинит почту a.k.a. почему он не получает ответа от smtp.yandex.ru?

    5f02f4a25a7ca777967885.png
    Возможно, что у Вас стоит ограничение в настройках самой почты на сервере Яндекса. Так было у меня
    Ответ написан
    Комментировать
  • Почему gmail кладет в папку Spam письма, отправленные через yii\swiftmailer\Mailer?

    jamessvetsky
    @jamessvetsky
    Специалист по почтам и рассылкам
    В первую очередь gmail обращает внимание на корректную SPF запись. Так же очень критично сочетание HELO+rDNS
    Вообще лучше всего протестить через https://www.mail-tester.com/ там все "косяки" вылезут. Правда он слабо оценивает если не прописан rDNS или HELO и rDNS не совпадают, по хорошему в этих случаях надо давать -5
    Ответ написан
    Комментировать
  • Как работают представления в MySQL?

    finnish
    @finnish
    Представление, это как подготовленный заранее шаблон запроса. Выполняя поиск по какому-то представлению, Вы на самом деле лишь дописываете к этому шаблону свои условия.

    Вот простой пример представления (назовём его `users_online`), которое показывает пользователей, проявлявших активность в течении последних 15 минут:
    SELECT * 
    FROM `users`    AS `u` 
    JOIN `activity` AS `a` 
    ON   `a`.`user_id`   = `u`.`id` 
    AND  `a`.`modified` >= CURRENT_TIMESTAMP - INTERVAL 15 MINUTE;

    При выборе онлайн-пользователей старше 18 лет, Ваш запрос будет скорее всего примерно такой:
    SELECT * FROM `users_online` WHERE `age` > 18;

    Что для базы данных равноценно:
    SELECT * FROM (
        SELECT * 
        FROM `users`    AS `u` 
        JOIN `activity` AS `a` 
        ON   `a`.`user_id`   = `u`.`id` 
        AND  `a`.`modified` >= CURRENT_TIMESTAMP - INTERVAL 15 MINUTE
    ) AS `users_online` 
    WHERE `age` > 18;

    В каждом конкретном случае база данных может оптимизировать запрос, и результирующим может оказаться нечто иное, но смысл от этого не меняется и описан в первом предложении моего комментария. Например, более простое представление:
    SELECT * FROM `users` WHERE `online` = 1;
    ... с Вашими условиями превратится в:
    SELECT * FROM `users` WHERE `online` = 1 AND `age` > 18;
    Ответ написан
    5 комментариев
  • Проблемы работы yii2-simplechat совместно с yii2-twig. Выдаёт ошибку The file or directory to be published does not exist: ...twig.js Как исправить?

    @TCHProgrammer Автор вопроса
    Я решил данную задачу. Вот комплекс мероприятий, которые я сделал: 1) Установил asset-менеджер fxp/composer-asset-plugin (в секции require composer.json прописал:"fxp/composer-asset-plugin": "v1.4.1"). Или composer global require "fxp/composer-asset-plugin:~1.4.1" . Без него ничего работать не будет, twig.js не установится. Также установил другие пакеты:

    "yiisoft/yii2-twig": "dev-master",
    "yiisoft/yii2-faker": "*",
    "bower-asset/twig.js": "0.8.4@stable",
    "bubasuma/yii2-simplechat": "*"
    Это всё в секции require. Далее прописал в файле конфига альясы (у меня config/web.php):

    'aliases' => [
    '@bower' => '@vendor/bower-asset',
    //'@npm' => '@vendor/npm-asset',
    ],
    И всё заработало.
    Ответ написан
    Комментировать
  • Что означают двойные фигурные скобки в миграциях yii2?

    Urichalex
    @Urichalex
    Кратко о себе)
    Фигурные скобки заменяются на символы выделения имени таблицы. Например в mysql это символ `
    то есть {{user}} в запрос уйдет как `user`

    Знак процента заменяется на префикс таблицы, если он был установлен в конфиге подключения к базе
    Например, в конфиге указано
    'tablePrefix' => 'qwe_'
    то {{%user}} в запрос попадет как `qwe_user`
    Ответ написан
    Комментировать
  • Как убрать символ %2F вместо / в формирование урл в Yii2?

    @matperez
    Когда пишите правило для маршрутизации добавьте encodeParams = false. Подробности тут www.yiiframework.com/doc-2.0/yii-web-urlrule.html#...
    Ответ написан
    1 комментарий
  • Почему не переводится дата на русский язык в Yii2?

    Если мне память не изменяет нужно в конфигурации php.ini что то добавить.
    extension=php_intl.dll
    Ответ написан
    3 комментария
  • Как убрать параметр per_page из URL?

    slo_nik
    @slo_nik Куратор тега Yii
    Добрый день.
    'pagination' => [
        'pageSize' => 100,
        'pageSizeParam' => false
     ],

    И перезагружаете страницу.
    Ответ написан
    Комментировать
  • Что такое такое rest api?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    API социальных сетей - это вполне типичные примеры реализации REST API.

    REST (RESTful) - это общие принципы организации взаимодействия приложения/сайта с сервером посредством протокола HTTP. Особенность REST в том, что сервер не запоминает состояние пользователя между запросами - в каждом запросе передаётся информация, идентифицирующая пользователя (например, token, полученный через OAuth-авторизацию) и все параметры, необходимые для выполнения операции.

    Всё взаимодействие с сервером сводится к 4 операциям (4 - это необходимый и достаточный минимум, в конкретной реализации типов операций может быть больше):
    1. получение данных с сервера (обычно в формате JSON, или XML)
    2. добавление новых данных на сервер
    3. модификация существующих данных на сервере
    4. удаление данных на сервере

    Операция получения данных не может приводить к изменению состояния сервера.

    Для каждого типа операции используется свой метод HTTP-запроса:
    1. получение - GET
    2. добавление - POST
    3. модификация - PUT
    4. удаление - DELETE

    Т.е. :

    GET-запрос /rest/users - получение информации о всех пользователях
    GET-запрос /rest/users/125 - получение информации о пользователе с id=125
    POST-запрос /rest/users - добавление нового пользователя
    PUT-запрос /rest/users/125 - изменение информации о пользователе с id=125
    DELETE-запрос /rest/users/125 - удаление пользователя с id=125
    Ответ написан
    20 комментариев
  • Как в JS прописать регулярное выражение по каждому слову?

    $('#go').click(function(){
        let term = $('#term').val().split(' '),
    			  text = 'Планшет Apple iPad купить недорого',
    				reg  = term.reduce((acc, item) => acc.replace(new RegExp(item, "gi"), "<strong>$&</strong>"), text)
            
        $('#rez').html(reg);
    });


    https://jsfiddle.net/e76xuq1L/17/
    Ответ написан
    4 комментария
  • Как сделать подзапрос на AVG из другой таблицы mySQL?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    LEFT JOIN таблицы товаров со сгруппированной в подзапросе таблицей рейтингов.
    Ответ написан
    Комментировать
  • Получить список друзей через Facebook API?

    @keu
    Начиная с версии 2.0 GRAPH API, вы можете получить только список друзей, которые используют ваше приложение.
    Цитата с Facebook Platform Changelog:

    Friend list now only returns friends who also use your app: The list of friends returned via the /me/friends endpoint is now limited to the list of friends that have authorized your app.

    Других способо получения списка друзей просто нет.
    Ответ написан
    Комментировать
  • Как правильно сделать rule для UrlManager в Yii2?

    qonand
    @qonand
    Software Engineer
    Создайте свой класс правил который будет выполнять необходимую Вам логику и используйте его
    Ответ написан
    1 комментарий