Иван Бондаренко

Иван Бондаренко

С нами с 30 января 2013; Место в рейтинге пользователей: #91
Иван Бондаренко
20 мая 2021, 12:10
0
Это да. Код этот я привел больше для примера того, как получается ошибка.
Оказалось, проблема в том, что Minishop2 не поддерживает Mysql Ver 8.0.25… Только старые версии.
Иван Бондаренко
19 мая 2021, 14:56
0
Спасибо!!! Обидно однако, что нет поддержки актуальных версий MySql.
Иван Бондаренко
18 августа 2020, 13:10
0
Спасибо за совет!!! Действительно в этом была проблема! Не знал про такой нюанс.

Получается, что по-современному было бы правильнее преобразовать картинку в base64 и отсылать как строку?
Иван Бондаренко
17 августа 2020, 19:02
0
Василий, подскажи пожалуйста. Уже не знаю, куда копать. Никак не могу получить файл-картинку, отправленную с фронтенда. Целый день сегодня ковыряюсь.

Vesp-core версия 2
Так прописываю маршрут к контроллеру в index.php:

$app->any('/api/user/profilepicture', [App\Controllers\User\Profilepicture::class, '__invoke']);
Вот сам контроллер. Подключал в него все, что нашел
<?php

namespace App\Controllers\User;

use App\Models\User;

use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\RequestInterface;
use Vesp\Controllers\Controller;
use Psr\Http\Message\UploadedFileInterface;

use Slim\Psr7\UploadedFile;
use Slim\Psr7\Request;

class Profilepicture extends Controller
{
	
    public function patch()
    {
        
		$files = $this->request->getUploadedFiles();
				
		return $this->success($files);
    }
}
Форма отправляется вот так:

const fd = new FormData();
              fd.append("firstName", "John");
              fd.append('file', this.form.file, this.form.file.name);
              console.log(this.form); //тут вижу в консоли, что файл привязался file: File
              
               const {data: user} = await this.$axios.patch('user/profilepicture', fd, 
              { headers: {'Content-Type': 'multipart/form-data' },
                onUploadProgress: function(progressEvent) {
                  var percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total)
                  console.log(percentCompleted)
                }
              });
Процент загрузки картинки отрабатывает и когда загружаю большое изображение, процесс идет.

Но $files = $this->request->getUploadedFiles(); возвращает пустой массив. $this->request->getServerParams(); при этом отрабатывает корректно. Я вижу в ответе, что запрос не пустой

"CONTENT_LENGTH": "8579020", // Вот картинка
    "CONTENT_TYPE": "multipart/form-data; boundary=----WebKitFormBoundary640lESYKvPBsYyvc",
    "REQUEST_METHOD": "PATCH",
Где-то я туплю, но где, понять не могу.

Дай совет, что не так. Если есть рабочий пример с реализацией подобного функционала, кинь ссылку сюда или в VESP чат если не сложно. Буду благодарен.
Иван Бондаренко
13 августа 2020, 11:41
+1
Доставка цветов в Москве, Заказать цветы в Москве, купить 101 розу в Москве и тд — это далеко не ВЧ запросы)
Вы заблуждаетесь. Это основные запросы по вашей нише. И все ваши конкуренты хотят быть первыми именно по этим запросам. Для вашей ниши именно они и есть ВЧ. И конкуренции там более чем достаточно.

Самое простое, что можно внедрить прямо сейчас за пару дней, и что очень поможет:

  • Поисковики любят текст. Добавьте больше уникального текста к каждому товару. Сейчас у вас все товары практически как один. Разница всего пара слов.
  • Если имел место перенос с другого домена, проверьте правильность переадресаций.
Долгосрочно:
  • Начните делать красивые фото ваших букетов. И размещайте их в каталоге. Тут надо подумать, как это лучше реализовать, но в любом случае это сделает магазин более «живым» что-ли...
А вообще тематика достаточно конкурентна. Тут не просто выйти на первые позиции. Нужно много знаний и времени.
Иван Бондаренко
26 июля 2020, 09:32
+1
Спасибо, что подсказал. Заработало! Пока еще не совсем понимаю всю логику, и что и откуда подтягивается. Но упорно разбираюсь.
Иван Бондаренко
25 июля 2020, 14:03
0
Василий, привет! Спасибо за Vesp Core, реально интересно. Помоги советом, пожалуйста. Пытаюсь самостоятельно сделать функционал логина по токенам и зашел в тупик.

Прописал путь для АПИ security/login и user/profile в файле index.php
Соответственно добавил контроллеры в папку Controllers.
Установил модуль авторизации auth. Прописал пути в конгфиге

auth: {
    redirect: {
      home: '/',
      login: '/admin/',
      logout: '/',
    },
    resetOnError: true,
    strategies: {
      local: {
        endpoints: {
          login: {url: 'security/login', method: 'post', propertyName: 'token'},
          logout: {url: 'security/logout', method: 'post'},
          user: {url: 'user/profile', method: 'get', propertyName: 'user'},
        },
      },
    },
  },

При отправке формы отрабатывает security/login, токен добавляется в базу. Но затем user/profile возвращает ошибку
GET http://dev.website.com/api/user/profile 401 (Unauthorized)

Что только я не пробовал. Не получается победить. Вот содержание файла Profile.php.

<?php

namespace App\Controllers\User;

use Psr\Http\Message\ResponseInterface;
use Vesp\Controllers\Controller;

class Profile extends Controller
{
    /**
     * @return ResponseInterface
     */
    public function get()
    {
        if ($this->user) {
            $data = $this->user->toArray();
            $data += ['scope' => $this->user->role->scope];

            return $this->success(['user' => $data]);
        }

        return $this->failure('Authentication required', 401);
    }

    /**
     * @return ResponseInterface
     */
    public function patch()
    {
        if ($password = trim($this->getProperty('password'))) {
            $this->user->password = $password;
        }
        $this->user->save();

        return $this->get();
    }
}
Можешь подсказать, в чем ошибка? Если что, бекенд сайта лежит на работающем сервере. Фронтенд на моем компе.
Иван Бондаренко
08 июля 2020, 16:53
0
Вот сегодня как раз поставил SMF на сайт к MODx. Установил SMF 2.0 в папку forums/ и пакет SMF

Тоже при регистрации (или логине) на сайте, на форуме изменений не происходит.
Зато все хорошо работает в обратном направлении. Пользователь логинится на форуме — автоматом логинится и на сайте. Сделайте основной точкой регистрации и входа форум и все будет нормально без изменения в коде.

В списке пользователей на форуме есть только один администратор, хотя у сайта пользователей масса. Ну и при регистрации нового пользователя на сайте он не появляется на форуме.
Пользователи при установке и у меня не импортировались. Для импорта пройдитесь по списку пользователей в админке MODx и обновите их. Просто откройте пользователей по очереди и сохраните каждого. Форум их подхватит.

У меня мало юзеров, поэтому не стал писать никаких сниппетов для этого. Если юзеров много, придется обновлять через процессоры.
Иван Бондаренко
27 сентября 2019, 11:21
+1
Проблема решена. Ошибка была на стороне MODX.com. У них не отрабатывали правильные редиректы на установщик последней версии.
Я связался с поддержкой и они устранили проблему. Теперь все работает правильно.
Иван Бондаренко
19 июля 2019, 13:06
+1
Вот у Ильи Уткина на сайте есть заметка про это:
mFilter2. принцип OR поменять на AND ilyaut.ru/reposts/mfilter2-principle-or-change-to-and/

Сам делал по ней. Все получилось. Правда пришлось немного повозиться.
Иван Бондаренко
08 мая 2019, 13:42
0
Регулярно создаю товары в MS2 с пустой ценой. Все сохраняется отлично. Поэтому лучше найдите почему у вас такое непонятное поведение на сайте и исправьте косяк там.

И вообще, если уж ссылаетесь на ошибку в логе, то прикладывайте сам текст ошибки. Тут нет экстрасенсов.
Иван Бондаренко
09 января 2019, 10:54
0
Да. Имею в виду это. Просто сам недавно писал отзыв на своем сайте из фронта. Написал слов 200 а потом полез на другие вкладки в браузере за дополнительной информацией. Чуть случайно не закрыл окно, где печатал :) Понимаю, что такой функционал не в приоритете, но будет плюсом к юзабилити.
Иван Бондаренко
30 декабря 2018, 18:53
0
Здравствуйте Алексей. Начал пользоваться вашим компонентом для одного из сайтов. Предложение по функционалу: сделайте так, чтобы обзор сохранялся в сессию или куда нибудь еще пока он не опубликован. Своеобразный черновик. Все таки пользователи часто пишут отзывы прямо на сайте и весь труд пользователя может быть легко потерян без таких черновиков. Это плюс к юзабилити сайта.
Иван Бондаренко
20 декабря 2018, 14:08
+3
Алексей, здравствуйте! Классный компонент. Просьба по функционалу: добавьте пожалуйста возможность проголосовать за отзыв. Чтобы потом у каждого отзыва можно было вывести его полезность: «10 пользователей считают этот отзыв полезным». Сейчас такой функционал встречается на многих сайтах-отзовиках.
Иван Бондаренко
18 июня 2018, 14:40
0
Александр, обнови пост. Компонент доступен в Модстор — modstore.pro/packages/alerts-mailing/emailqueue
Иван Бондаренко
04 октября 2017, 16:41
0
Не увидел. Торопился…
Иван Бондаренко
04 октября 2017, 12:35
0
Как поисковику сказать что у тебя есть страница с AMP
Ответ на вопрос: добавить на основную страницу (в head) следующий метатег со ссылкой на АМП версию:

<link rel="amphtml" href="https://sitename.com/page.html?amp">

в свою очередь, на АМП странице обязательно должен быть тег canonical, указывающий на основную версию страницы.

<link rel="canonical" href="https://sitename.com/page.html" />

Это поможет поисковику понять, где что и не посчитать страницы дублями.
Иван Бондаренко
27 сентября 2017, 12:51
+2
Я бы на твоем месте использовал компонент VirtualPage. Он позволяет удобно работать с виртуальными страницами. Страницам можно назначить нужный шаблон и в шаблоне запрашивать контент как тебе нужно.
Иван Бондаренко
01 июля 2017, 15:20
-1
Ну тогда видимо будет проще всего создать свое поле (Тв или Опцию товара) и в нее вбивать вес в том формате, который нужен.
Можно попробовать также через javascript убирать точку и нули при загрузке страницы. Тут уже смотреть надо, что удобнее будет.