Только 1 тема в определенном разделе (XF2.1)

AlexV

Проверенные
Сообщения
16
Реакции
3
Баллы
8,100
Здравствуйте!

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

Бюджет обговаривается, в зависимости от ваших трудозатрат, в любом случае плачу от 1000 рублей.

Спасибо.
 
Привет. А данный плагин не смотрели?
 
Привет. А данный плагин не смотрели?

Здравствуйте.
Да, смотрел, это не совсем то, хотелось бы чтобы это было реализовано через механизм hasContentPermission самого движка, и у пользователя после того как он создал тему в разделе, пропадали кнопки "Post thread" и поле "quick thread" в выбранном разделе. А плагин "New thread limit" лишь выдает ошибку, когда пользователь пытается запостить новую тему.
 
Решение нашел сам, тему можно закрывать. Спасибо.
 
Может поделитесь им?) Все же как никак вам пытались тоже помочь

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

в XF\Entity\Forum.php

PHP:
    public function canCreateThread(&$error = null)
    {
        if (!$this->allow_posting)
        {
            $error = \XF::phraseDeferred('you_may_not_perform_this_action_because_forum_does_not_allow_posting');

            return false;
        }

        $visitor = \XF::visitor();
//START
        $userId = $visitor['user_id'];

        $nodeId = $this->node_id;

        $db = \XF::db();

        $ThreadCount = $db->fetchOne("
                SELECT COUNT(thread_id)
                FROM xf_thread
                WHERE user_id = ?
                AND node_id = ?
                AND discussion_state = ?
                ", array($userId, $nodeId, 'visible'));

        
        if (($ThreadCount > 0) AND ($nodeId == 19)) {
                    return false;
        }
//END
        return $visitor->hasNodePermission($this->node_id, 'postThread');
    }
 
Бля, народ, не делайте так никогда
Хотя в целом ход мысли хорош
 
Последнее редактирование:
Говнокод уровня Kolya groza morey. Аплодирую стоя. Код так то смешной,но если представить ситуацию то становится страшно
 
я не программист, иногда ищу решение сам, если никто не берется, за качество и правильность когда не отвечаю.
Да ладно, человек же ремарку сделал, так что прошу прощения. Просто сразу увидел без спойлера код и страшно стало. Потом может оберну в дополнение, если так уж популярно оно
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу