• Когда лучше использовать cms?

    svisch
    @svisch
    Как писали выше, судя по вашему вопросу вы не обладаете нужной квалификацией. Но я бы, на вашем месте, воспользовался бы cms даже если нужно сделать лендинг, т.к. это вас в коей мере прокачает - вы увидите как внутри все устроено, пусть и не сразу. Верстать простой сайт на html/js/css особо вас не разовьет - вы останетесь на прежнем уровне. Как освоитесь с cms, пусть даже на уровне сайт-билдера(т.е. без особого программирования) я бы уже перешел на фреймворки для того, чтобы прокачать скилл в кодинге. Но последнее тоже требует некого минимума знаний.
    Ответ написан
    Комментировать
  • Почему не правильно работает $_SERVER['REMOTE_ADDR']?

    svisch
    @svisch Автор вопроса
    Проблема оказалась из-за специфики работы докер контейнеров в своей сети. В двух словах о проблеме тут.
    Суть в том, что по-умолчанию драйвер сети настроен как bridge. Решением было в docker-compose.yaml установить значение: network_mode: host
    Ответ написан
    Комментировать
  • Как выбрать нужные таблицы в Symfony используя schema_filter?

    svisch
    @svisch
    Чтобы не было, как вы пишите, "накопительного эффекта в миграциях" их надо выполнять - doctrine:migrations:migrate
    После этого создадутся необходимые таблицы. А так доктрина каждый раз сопоставляет сущности с тем что есть в бд и исходя из этого делает класс миграции.
    Ответ написан
  • Как Yii2 связать с фронт проектом на react?

    svisch
    @svisch
    у вас будет по факту два приложения: одно на бэкэнде, другое на фронте. У каждого из них своя точка входа (yii2 - index.php, react - index.html).
    Суть примерно в следующем, при обращении к доменному имени делается запрос к веб серверу, а там уже в зависимости от того, какие там настройки. Можно указать смотреть на точку входа в yii2 или react. Если yii2, то в действиях котроллеров по роутам, соответствующим роутам реакта надо рендерить входную точку ректа:
    public function actionIndex()
         {
             Yii::$app->response->format = Response::FORMAT_HTML;
             return $this->renderFile('@app/web/dist/index.html');
         }

    т.е. веб сервер обращается к index.php, а тот уже в свою очередь рендерит реакт.

    Во втором случае сразу будет загружаться SPA
    Ответ написан
  • Как создать админпанель на yii2?

    svisch
    @svisch
    Как уже писали, не совсем понятно, что вам надо, но почитайте про эту библиотеку yii2-admin.
    Там в основном панель для работы с RBAC и меню вроде, но в целом облегчает жизнь.
    Ответ написан
    Комментировать
  • Как извлечь базу данных из файлов сайта на Wordpress?

    svisch
    @svisch
    В скаченных через ftp файлах нет базы данных. Чтобы ее получить, вам надо из личного кабинета хостера попасть в СУБД (скорее всего у вас это MYSQL) и оттуда сделать экспорт. Потом в том месте где вы будете разворачивать снова свой сайт надо будет импортировать дамп базы и в конфигах сайта указать новые параметры подключения.
    Ответ написан
    Комментировать
  • Как перехватить исключение выбрасываемое из-за несуществующего метода объекта?

    svisch
    @svisch Автор вопроса
    Вдруг кому пригодится - несуществующий метод генерирует класс не Exception, а Error. Так все заработало
    try {
        $value = $obj->method1();
    } catch (\Error $e) {
        $value = $obj->method2();
    }
    Ответ написан
    Комментировать
  • Почему в Яндекс вебмастере главная страница отдает 406 код?

    svisch
    @svisch Автор вопроса
    Проблема была в том, что на бекэнде в конфигах стояло, что я отдаю "application/json". Добавил к этому "text/html" и все стало хорошо - в логах сервера яндекс боту стал отдаваться 200 код.
    Суть проблемы в том, что бот делает запрос с заголовком Accept "text/html". Если в ответ он получает Content-Type другого типа, то получается ошибка 406. Трудности с диагностикой проблемы возникли потому, что я смотрел ответы сервера в браузере и там было 200. Только сделав запрос в Insomnia с заголовком Accept "text/html" получил ответ 406.
    Ответ написан
    Комментировать
  • Как получить доступ к vpn из контейнера?

    svisch
    @svisch Автор вопроса
    Оказалось доступ был все время. Неправильно просто строил запрос. Вопрос закрыт.
    Ответ написан
    Комментировать
  • Почему APP не подключается к контейнеру с Postgres?

    svisch
    @svisch
    пробовали по ip к постгресу подключаться? У меня обычно что-то типа 172.17.0.1 адрес бд. Надо в интерфейсах смотреть.
    Ответ написан
  • Как найти папку с DOCUMENT_ROOT?

    svisch
    @svisch
    /home/u/username/sitename.ru/public_html - это абсолютный путь расположения скрипта на веб-сервере.
    В админке битрикс скорее всего видит файлы начиная с public_html, где он и лежит видимо.
    Ответ написан
    2 комментария
  • Как подключить стили?

    Комментировать
  • Как назначать элементу классы в зависимости от его текстового содержимого?

    svisch
    @svisch
    Порядок действий примерно такой:
    1. Получаем элемент, где содержится это число (document.querySelector или documetn.getElementById, например)
    2. Получаем содержимое элемента - el.textContent
    3. Приводим тип данных к числу - функция parseInt()
    4. Сравниваем полученное число num с 2. В зависимости от результата добавляем нужный класс к элементу: el.classList.add(addedClass), где addedClass = num > 2 ? 'big' ? 'small'
    5. Все это дело вешаем на обработчик события (например загрузка документа, клик и т.д.), в зависимости от того, что вам нужно
    Ответ написан
    4 комментария
  • Почему react router меняет url, но не меняет страницу?

    svisch
    @svisch
    Что у вас за компонент Switch?
    Route должные быть обернуты Routes, а в index.js App - BrowserRouter
    Попробуйте сделать по примеру из документации https://reactrouter.com/en/v6.3.0/getting-started/... и все должно заработать
    Ответ написан
    2 комментария
  • Почему при подключении Owl caruser на сайт ошибка "Uncaught SyntaxError"?

    svisch
    @svisch Автор вопроса
    вот я лошара... css подключал в теге script.)) Но все равно все элементы в один столбец. Наверное что-то со стилями. Буду разбираться!
    Ответ написан
    Комментировать
  • Почему ошибка при обработке скрипта при переносе проекта из одного контейнера в другой?

    svisch
    @svisch Автор вопроса
    Дело оказалось в версии php. Понизил с 7.4 до 7.2 и все заработало. Видимо xdebug и docker тут не при чем оказались.
    Ответ написан
    Комментировать
  • Как правильно дебажить php в VS Code?

    svisch
    @svisch Автор вопроса
    Решил следующим образом. Может кому пригодится.
    Конфигурация в на сервере xdebug 3 (дла версий младше 3й другие наименования параметров):
    xdebug.mode=debug
    xdebug.start_with_request=yes
    xdebug.client_host=<ip машины где стoит ide>
    xdebug.discover_client_host = 1
    xdebug.idekey = vscode
    xdebug.client_port=9003
    xdebug.discover_client_host = 1

    В случае если отладка происходит кода в докере, то ip надо посмотреть командой типа ip -a. У меня был 172.17.0.1. На видео, которое мне помогло сработал 172.19.0.1. Но +/- будте примерно таким. Если че вот то видео
    Не забыть пробросить запросы от роутера к компу с IDE, если он стоит за роутером (я по крайней мере делал это). Не проверял будет ли работать без проброски.

    Конфигурация launch.json
    {
        "name": "Listen for Xdebug",
        "type": "php",
        "request": "launch",
        "port": 9003,
        "pathMappings": {
          "/var/www/html": "${workspaceFolder}/www"
      },

    Про pathMappings уточню. "/var/www/html"-путь на сервере (или например в докере) где лежит код. "${workspaceFolder}/www" - папка где лежит относительно IDE. В данном случае это конфиг с проекта в докере и www отображает /var/www/html в контейнере. ${workspaceFolder} - насколько я понял, папка с проектом в VS Code. На удаленном сервере pathMappings был без www: "/var/www/html": "${workspaceFolder}"

    После этого необходимо открыть файл, который собираетесь отладить, переключиться на вкладку "Запуск и отладка" (значок play c жучком), расставить брейкпоинты в файле и нажать кнопку отладки. Она начнет выполняться. Далее открываем на сайте именно ту страницу, за которую отвечает отлаживаемый файл и вас автоматом перенаправит обратно в VS Code и появятся элементы управления отладки и переменные различные которые появляются в процессе.
    Ответ написан
    Комментировать
  • Почему проблемы с кодировкой при переносе на другой сервер?

    svisch
    @svisch Автор вопроса
    Нашел решение в виде ob_end_clean(); перед установкой заголовков.
    До конца еще не разобрался, но до этого с выводом происходили странные вещи. Дебажил код и база оказалась вообще не при чем. Вручную прописывал ячейки таблицы и одно слово на русском отрабатывало удачно, в то время как другое в этой же ячейке не отображалось. Связи не выявил.
    Если кто объяснит почему ob_end_clean() помогло, буду благодарен. Ниже привожу рабочий код. Лишнее поубирал.
    require_once __DIR__ . '/../phpexcel/Classes/PHPExcel.php';
    require_once(__DIR__ . '/../phpexcel/Classes/PHPExcel/Writer/Excel5.php');
    
    $xls = new \PHPExcel();
    $xls->setActiveSheetIndex(0);
    
    $sheet = $xls->getActiveSheet();
    
    $sheet->setCellValue("A1", 'Тест1');
    $sheet->setCellValue("B1", 'Тест2');
    $sheet->setCellValue("C1", 'Тест3');
    $sheet->setCellValue("D1", 'Тест4');
    $sheet->setCellValue("E1", 'Тест5');
    $sheet->setCellValue("F1", 'Тест6');
    $sheet->setCellValue("G1", 'Тест7');
    $sheet->setCellValue("H1", 'Тест8');
    
    ob_end_clean();
    header ( "Expires: Mon, 1 Apr 1974 05:00:00 GMT" );
    header ( "Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT" );
    header ( "Cache-Control: no-cache, must-revalidate" );
    header ( "Pragma: no-cache" );
    header ( "Content-type: application/vnd.ms-excel" );
    header ( "Content-Disposition: attachment; filename=test.xls" );
           
     $objWriter = new \PHPExcel_Writer_Excel5($xls);
     $objWriter->save('php://output');


    До появления в коде ob_end_clean() генерируемый excel файл то был пустым, то с текстом в ячейках, но при указании кодировки mb internal encoding("UTF-8") в начале кода.
    Ответ написан
    Комментировать
  • Почему после оплаты картой через Юкассу не попадают заказы в админку Opencart?

    svisch
    @svisch Автор вопроса
    С проблемой неверных статусов после оплаты картой я разобрался путем деинсталяции модификатора к старому модулю Яндекс денег. Осталась проблема со сменой статуса с "Отложенная оплата Заблокирована" на любой другой связанный с запросом к Юкассе для подтверждения оплаты, например на статус "Отложенная оплата Выполнена".
    Ответ написан
    Комментировать
  • Как сделать перенаправление на одну страницу с любой другой в зависимости от свойства модели?

    svisch
    @svisch Автор вопроса
    Нашел ответ на вопрос тут
    Всем спасибо!
    Ответ написан
    Комментировать