Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
30 Ноя 2024
Сообщения
209
Приветствую!
Суть проблемы: решая изменить свою аватарку не из моего аккаунта, а из "окошечка на главной" я нажимаю на "изменить"(1) выбираю нужную фотку и нажимаю отправить(2) она добавляется и показывает как будет выглядеть(3), НО нажимая на крестик, то она должна сбросится и вернутся моя прежняя ава, но этого не происходит и остаётся новая моя выбранная фотка(4).
1740415332526.jpg
1740415353969.jpg
upload_2025_02_24_19_45_01_425.jpg
upload_2025_02_24_19_47_12_469.jpg
 
Последнее редактирование:
Снова в деле...
Активный
Регистрация
12 Фев 2025
Сообщения
175
Не баг, окошко нужно для изменения положения аватарки. А загрузка аватарки не подтверждается по скрипту форума
 
even if it’s rare, it doesn’t mean it’s useful
Профессионал
Регистрация
2 Ноя 2024
Сообщения
1,540
Приветствую!
Суть проблемы: решая изменить свою аватарку не из моего аккаунта, а из "окошечка на главной" я нажимаю на "изменить"(1) выбираю нужную фотку и нажимаю отправить(2) она добавляется и показывает как будет выглядеть(3), НО нажимая на крестик, то она должна сбросится и вернутся моя прежняя ава, но этого не происходит и остаётся новая моя выбранная фотка(4).
Нужно нажать ОК потом
 
Дальше — Больше
Команда форума
Модератор
Регистрация
21 Янв 2023
Сообщения
966
Редактор
Регистрация
4 Ноя 2024
Сообщения
402
Приветствую!
Суть проблемы: решая изменить свою аватарку не из моего аккаунта, а из "окошечка на главной" я нажимаю на "изменить"(1) выбираю нужную фотку и нажимаю отправить(2) она добавляется и показывает как будет выглядеть(3), НО нажимая на крестик, то она должна сбросится и вернутся моя прежняя ава, но этого не происходит и остаётся новая моя выбранная фотка(4).
Достаточно посмотреть, как происходит смена аватара в файлах движка
PHP:
    public function updateAvatar()
    {
        if (!$this->fileName)
        {
            return $this->throwException(new \LogicException("No source file for avatar set"));
        }
        if (!$this->user->exists())
        {
            return $this->throwException(new \LogicException("User does not exist, cannot update avatar"));
        }

        $imageManager = $this->app->imageManager();

        $outputFiles = [];
        $baseFile = $this->fileName;

        $origSize = $this->sizeMap['o'];
        $shortSide = min($this->width, $this->height);

        if ($shortSide > $origSize)
        {
            $image = $imageManager->imageFromFile($this->fileName);
            if (!$image)
            {
                return false;
            }

            $image->resizeShortEdge($origSize);

            $newTempFile = \XF\Util\File::getTempFile();
            if ($newTempFile && $image->save($newTempFile, null, 95))
            {
                $outputFiles['o'] = $newTempFile;
                $baseFile = $newTempFile;
                $width = $image->getWidth();
                $height = $image->getHeight();
            }
            else
            {
                return $this->throwException(new \RuntimeException("Failed to save image to temporary file; check internal_data/data permissions"));
            }

            unset($image);
        }
        else
        {
            $outputFiles['o'] = $this->fileName;
            $width = $this->width;
            $height = $this->height;
        }

        $crop = [
            'm' => [0, 0]
        ];

        foreach ($this->sizeMap AS $code => $size)
        {
            if (isset($outputFiles[$code]))
            {
                continue;
            }

            $image = $imageManager->imageFromFile($baseFile);
            if (!$image)
            {
                continue;
            }

            $crop[$code] = $this->resizeAvatarImage($image, $size);

            $newTempFile = \XF\Util\File::getTempFile();
            if ($newTempFile && $image->save($newTempFile))
            {
                $outputFiles[$code] = $newTempFile;
            }
            unset($image);
        }

        if (count($outputFiles) != count($this->sizeMap))
        {
            return $this->throwException(new \RuntimeException("Failed to save image to temporary file; image may be corrupt or check internal_data/data permissions"));
        }

        foreach ($outputFiles AS $code => $file)
        {
            $dataFile = $this->user->getAbstractedCustomAvatarPath($code);
            \XF\Util\File::copyFileToAbstractedPath($file, $dataFile);
        }

        $user = $this->user;
        $user->bulkSet([
            'avatar_date' => \XF::$time,
            'avatar_width' => $width,
            'avatar_height' => $height,
            'avatar_highdpi' => ($width >= self::HIGH_DPI_THRESHOLD && $height >= self::HIGH_DPI_THRESHOLD),
            'gravatar' => ''
        ]);

        $profile = $user->getRelationOrDefault('Profile');
        $profile->bulkSet([
            'avatar_crop_x' => $crop['m'][0],
            'avatar_crop_y' => $crop['m'][1]
        ]);
        $user->addCascadedSave($profile);

        if ($this->logChange == false)
        {
            $user->getBehavior('XF:ChangeLoggable')->setOption('enabled', false);
        }

        $user->save();

        if ($this->logIp)
        {
            $ip = ($this->logIp === true ? $this->app->request()->getIp() : $this->logIp);
            $this->writeIpLog('update', $ip);
        }

        return true;
    }
В коде нет предпросмотра, либо проверки, требующей от пользователя подтвердить изменения. Как только был выбран файл и он прошел проверку, то он сразу обрабатывается, записывается в файловую систему, потом данные обновляются в базе.
PHP:
$user->save();
Думаю, что лучше было это написать на официальном форуме XenForo, о предложение добавить подтверждения перед установкой аватара. Если они это одобрят, то добавят, может быть, на 2.4, либо на 2.3
 
Активный
Регистрация
26 Апр 2022
Сообщения
515
Если они это одобрят, то добавят, может быть, на 2.4, либо на 2.3
а кто обновляться то будет на эти версии? 2.3 по прежнему не пользуется спросом, 2.4 уж тем более не будет.
да и предложить им, одобрят допустим, но введут это минимум через 3 месяца.
 
Редактор
Регистрация
4 Ноя 2024
Сообщения
402
а кто обновляться то будет на эти версии? 2.3 по прежнему не пользуется спросом, 2.4 уж тем более не будет.
да и предложить им, одобрят допустим, но введут это минимум через 3 месяца.
OFFTOP

Сейчас большинство форумов остается на XenForo 2.2, потому что 2.3 не особо прижились, прошло +- год. Многие опасаются обновляться из-за возможных проблем с несовместимостью аддонов и стилей.

А про 2.4 вообще пока рано говорить, если эту версию до конца обновят, протестируют и выпустят,
форумы будут обновляться на неё очень медленно. Обычно админы ждут пару месяцев после выхода новой версии, чтобы убедиться, что она стабильна, а потом ещё столько же, пока разработчики обновят свои аддоны.

 
Сверху