Иконка ресурса

[BS] Auto Close Report 1.0.0a

Нет прав для скачивания
  • Автор темы unconfirmed
  • Дата начала
Чем меньше файлов в дополнении, тем вопросов больше...
PHP:
            $commenter->sendNotifications();

            $report->draft_comment->delete();

            \XF::session()->reportLastRead = \XF::$time;
Сейчас бы копипастить участки кода, не думая что они делают. Смотрим оригинальный кусок кода, откуда все надергано:
PHP:
    protected function finalizeReportComment(\XF\Service\Report\Commenter $commenter)
    {
        $commenter->sendNotifications();

        $report = $commenter->getReport();
        $report->draft_comment->delete();

        $this->session()->reportLastRead = \XF::$time;
    }
А вот теперь вопросы господину Друзю:
  • Зачем ты удаляешь черновой комментарий, ведь это нужно только если ты пишешь в редакторе находясь непосредственно в жалобе (логично что он в таком случае есть), чего не будет в случае твоей автоматизированной отправки? Для чего пустой вызов лишних функций, ресурсов слишком много?
  • Зачем ты каждый раз дергаешь сессию в цикле, ведь тебе достаточно пометить раздел с жалобами прочтенным только один раз, после цикла? За время итерирования ничего с разделом не случится, а вот тяжеловесная операция прокидывания в сессии дернется ровно по числу жалоб, которые ты автоматом закрываешь.
PHP:
$warningBy = $this->warningBy;
Места в памяти слишком много? Давай еще десяток переменных заведем, куда закинем данные, которые у нас и без этого в памяти были.

По стилю вопрос отдельный, копипаст файндеров с chain методов, а потом свой копипаст в традиционном стиле:
PHP:
            $commenter = $this->service('XF:Report\Commenter', $report);
            $commenter->setMessage(null);
            $commenter->setReportState('resolved', $warningBy);
            $commenter->save();

По сути аддона вообще вопрос отдельный, потому что в расчет не берется что на одно сообщение может быть несколько разных по сути своей жалоб и закрывая все жалобы на одно сообщение, модераторы лишаются понимания о других возможных нарушениях, которые в нем были. Ну и поиск без каких-либо лимитов и обработки пакетной вообще прелестно. Ведь у всех форумы с десятком жалоб, да?

Итоговая оценка 2/10.
 
Зачем ты удаляешь черновой комментарий, ведь это нужно только если ты пишешь в редакторе находясь непосредственно в жалобе (логично что он в таком случае есть), чего не будет в случае твоей автоматизированной отправки? Для чего пустой вызов лишних функций, ресурсов слишком много?
.потому что жалоба закрыта и логично, что если она закрыта, то там черновик не нужен

Зачем ты каждый раз дергаешь сессию в цикле, ведь тебе достаточно пометить раздел с жалобами прочтенным только один раз, после цикла? За время итерирования ничего с разделом не случится, а вот тяжеловесная операция прокидывания в сессии дернется ровно по числу жалоб, которые ты автоматом закрываешь.
Благодарю =)

Места в памяти слишком много? Давай еще десяток переменных заведем, куда закинем данные, которые у нас и без этого в памяти были.
Файл XF\Service\User\Warn
PHP:
    protected function _save()
    {
        if ($this->warning->isUpdate())
        {
            throw new \LogicException("This warning has already been saved");
        }

        $warning = $this->warning;

        $warning->save();

        if ($this->conversationTitle)
        {
            $this->sendConversation($warning);
        }

        if ($this->contentAction)
        {
            $this->handler->takeContentAction(
                $this->content,
                $this->contentAction,
                $this->contentActionOptions
            );
        }

        return $warning;
    }
И разрабы движка делают так везде, но что-то я не видел, чтобы им кто-то об этом писал.

По стилю вопрос отдельный, копипаст файндеров с chain методов
Серьёзно?))) Я должен был придумать свой велосипед? Или тупо изменить статус entity? И тут опять же вопрос касается совместимости с другими дополнениями, которые могут что-то делать при закрытии жалобы.
а потом свой копипаст в традиционном стиле
Копипаст движка.

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

Ну и поиск без каких-либо лимитов и обработки пакетной вообще прелестно
Блэт, серьёзно? Такое чувство, что там будет по 10к жалоб на одно сообщение. По такой же схеме можно прикопаться к кэшу бб-кодов и прочего. Их может быть миллионы. Ужас.
PHP:
public function findActiveBbCodes()
    {
        return $this->finder('XF:BbCode')
            ->where('active', 1)
            ->whereAddOnActive()
            ->setDefaultOrder('bb_code_id');
    }

    public function getBbCodeCacheData()
    {
        $bbCodes = $this->findActiveBbCodes()->fetch();

        $cache = [];

        foreach ($bbCodes AS $bbCodeId => $bbCode)
        {
            $bbCode = $bbCode->toArray();
            unset($bbCode['bb_code_id'], $bbCode['active'], $bbCode['addon_id']);

            $cache[$bbCodeId] = $bbCode;
        }

        return $cache;
    }

Ведь у всех форумы с десятком жалоб, да?
Так у того, у кого нет, тот и не ставит аддон :ROFLMAO:

Итоговая оценка 2/10.
Интересно узнать, по какому принципу выдавались оценочные баллы))

В общем, доёбка не удалась (не учитывая момент про сессию) :p:
 
.как это связано вообще с этим? Оно не работает в каком-то месте?)) Или появляется супер-нагрузка?))
Я привёл пример, что так делают разрабы. Вперёд к ним. Как только они переделают такие моменты, то сразу же и я.

У тебя дополнение не работало в обычной ситуации без ЧПУ, что пиздец как тупо. У меня же всё работает и никаких проблем не вызывает, так что отдыхай.
 
потому что жалоба закрыта и логично, что если она закрыта, то там черновик не нужен
Его там и не было, мы текст руками не писали.
PHP:
И разрабы движка делают так везде, но что-то я не видел, чтобы им кто-то об этом писал.
Базовые основы... Разработчики в приведенном примере так сделали, потому что у них $warning используется потом несколько раз, для сохранения и передачи, там действительно имеет смысл выделить в отдельную переменную, но не для однократного использования.
Ну значит модераторы не знают правил и такие модераторы даром не сдались.
Как и говнокодеры, но это совсем другая история.
прикопаться к кэшу бб-кодов и прочего
Можно, наверное даже нужно - и разработчики уровня Xon и прочих стараются такие моменты учитывать.
Такое чувство, что там будет по 10к жалоб на одно сообщение
Ты пишешь аддон для неопределенного круга лиц - может и будет.
В общем, доёбка не удалась (не учитывая момент про сессию)
Да попытки доебки еще и не было, тут базовые знания хромают, чего там что-то более сложное описывать.
 
Его там и не было, мы текст руками не писали.
.а если он там был? Черновика нет и если мы просто закрываем жалобу, но разрабы его удаляют

Базовые основы... Разработчики в приведенном примере так сделали, потому что у них $warning используется потом несколько раз, для сохранения и передачи, там действительно имеет смысл выделить в отдельную переменную, но не для однократного использования.
Мне больше нравится такой вариант, он никак не влияет на производительность.

:giggles:

Ты пишешь аддон для неопределенного круга лиц - может и будет.
Когда будет, тогда можно будет говорить, а пока это "если бы да кабы"

тут базовые знания хромают
Я не увидел ни одного аргумента, который бы это показал. :)
 
Я не увидел ни одного аргумента, который бы это показал.
Мне больше нравится такой вариант, он никак не влияет на производительность.
Собственно что и требовалось доказать. Когда-нибудь понимание придет, жаль что не сегодня.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу