1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

В очереди на модерирование

Тема в разделе "Основные вопросы по XenForo", создана пользователем krealt, 18.04.2013.

Загрузка
  1. krealt

    krealt Новичок

    Регистрация:
    04.04.13
    Сообщения:
    15
    Симпатии:
    0
    Версия XF:
    1.1.4
    При модерировании сообщения возможно ли сделать так, чтобы сообщение (тема) удалялись физически, а не скрывались от глаз? Или как потом удалить все скрытые сообщения?
     
  2. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Без написания хака пока нельзя. Завтра к 4 часам заходите, сделаю то и другое.
     
  3. krealt

    krealt Новичок

    Регистрация:
    04.04.13
    Сообщения:
    15
    Симпатии:
    0
    Версия XF:
    1.1.4
    Спасибо!
     
  4. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Держите первый. После установки его надо включить, задав соответствующее право для группы модераторов, и удаляемые ими через очередь модерации посты будут также удаляться из базы. Следующий потихоньку делаю, но с ним кое-какие сложности возникли, отпишусь, как закончу.
     

    Вложения:

    Oleg-2012 нравится это.
  5. krealt

    krealt Новичок

    Регистрация:
    04.04.13
    Сообщения:
    15
    Симпатии:
    0
    Версия XF:
    1.1.4
    :thumbsup: Спасибо!
     
  6. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Я смотрю, вы избрали самый простой путь решения вопроса. Однако, подмена хэндлеров своими — это очень неправильное решение. Я бы сказал, крайне неправильное.
     
    infis и Yoskaldyr нравится это.
  7. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    И я бы даже сказал, что в хаке, не просто подмена хендлеров, а подмена хендлеров сразу напрямую в базе :(
    Как следствие отключение хака фактически не будет ничего отключать, хак будет продолжать работать как ни в чем не бывало - только полная деинсталляция.
     
    infis и Pepelac нравится это.
  8. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Я знаю, что некрасиво (и не будет работать с нестандартными типами контента), но навскидку другого решения не придумал. А вы?

    On a side note, меня несколько напрягает велосипедизм и неопытность* разработчиков Ксена. Если б сделали нормальный DI, очень многих проблем можно будет избежать.

    * программист, который не использует в работе модульные тесты - это меньше, чем полпрограммиста.
     
  9. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Да. Это точно уже не плагин, а хак... Нужно ведь расширять функциональность, а не менять ее, причем еще и таким жестким способом.
    А есть раздел "Вредные советы/решения"?
     
  10. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Оно как раз расширяет функциональность, классы отнаследованы от стандартных.

    Ещё раз: критикуете - предлагайте, умники ;)
     
  11. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    А я придумал. Переопределите метод XenForo_Model_ModerationQueue::getModerationQueueHandlers
    --- добавлено : 23 апр 2013 в 14:20 ---
    Я бы на вашем месте слегка бы поумерил пыл ;)
     
  12. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    [​IMG]

    Гора родила мышь.

    Ну ок, можно будет включать-выключать хак, но возможные проблемы с совместимостью это не исправит ни в малейшей мере.
     
  13. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    А если будет еще один, точно такой же хак? Сразу перестанет работать не зависимо от состояние включено/выключено.

    в данном случая надо было расширить всего один метод одной модели через load_class_model:
    XenForo_Model_ModerationQueue::getModerationQueueHandlers()
    --- добавлено : 23 апр 2013 в 14:28 ---
    Вообщето нормальный DI как раз есть, но это Ваши проблемы что Вы его не заметили в коде.

    P.S. Писать дальше не вижу смысла, т.к. уровень ЧСВ nmn зашкаливает.
     
  14. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Несовместимости это не исправит, все равно придется наследоваться от стандартного обработчика. А раз так - такой же хак оно в любом случае сломает. Можно, конечно, сделать отдельную систему событий, будут классы наследоваться от NMNCP_ИмяКласса... :)
    На всякий случай - да, признаю, что решение это лучше, чем моё. Но ненамного, и нет смысла переделывать уже готовое.
    --- добавлено : 23 апр 2013 в 14:46 ---
    Вообще-то "нормальный" DI там есть (образцово-показательный, начинается и заканчивается во фронт-контроллере), но вы явно не его сейчас имеете ввиду. А тот, про который вы говорите - велосипед, на котором уехать можно очень недалеко (нельзя расширить произвольные классы, что очень ограничивает его возможности).
    Защищать свою точку зрения - ЧСВ? Не проецируете ли? Впрочем, окей, просто не буду с вами спорить.
     
  15. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Есть два лагеря разработчиков. Нет! Даже три лагеря.
    Один лагерь - правим исходники движка. Быстро, просто, хана апгрейдам.
    Второй лагерь - делаем хаки, которые серьезно меняют работу ядра, а потому потенциально не совместимы с другими плагинами. Иногда быстро, иногда не очень, не очень просто, апгрейд движка обычно проходит, но вот работа сторонних плагинов часто нарушается, либо вообще невозможна. Не факт, что проблема будет, но и вероятность корректной работы системы в целом (ядро + плагины) достаточно невелика.
    Третий лагерь - стараемся сделать плагины таким образом, чтобы они не мешали работе других плагинов. Не быстро, не просто, апгрейд движка обычно без проблем, работа сторонних плагинов, придерживающихся этого же принципа, не нарушается. Система в целом достаточно стабильна и предсказуема. К тому же легко отлаживаема разработчиками сторонних плагинов.

    Я бываю во всех лагерях в зависимости от ситуации. Но все же стараюсь преимущественно находиться в третьем лагере...

    К сожалению, сейчас достаточно много плагинов появилось от разработчиков второго лагеря. В результате куча несовместимостей. Да и писать свои плагины в результате становится сложнее...
     
    Oleg-2012 и Pepelac нравится это.
  16. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    А те, кто используя Automod пишут плагины для phpBB3, переживающие десяток обновлений - они к какому лагерю относятся?
     
  17. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    А что такое Automod?
     
  18. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Система хаков, используемая phpBB. Автоматически правит файлы форума по написанным разработчиком хака спецификациям (и устанавливает и удаляет). А т.к. код обычно только дописывается, такие хаки ещё и очень живучи :)

    Я к тому, что правка файлов - далеко не чудовищный вариант. Я лично знал человека, который без знаний в программировании на протяжении тысяч ревизий одной хитрой софтины, написанной на C++, делал сборки с нужными ему патчами. Вот так и делал - скачивал при помощи tortoisesvn, потом применял diff-ы, вручную разрешал конфликты, правил код под новые условия и компилировал в VS2003. Набор из дюжины патчей за всё время был примерно один и тот же. При этом понимал, что делает, но только на уровне интуиции.
     
    Oleg-2012 нравится это.
  19. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Ну можно и по канату ходить без страховки над пропастью. Вот только обычно задаются вопросом: а надо ли и безопасно ли это?
    Если речь идет о системе, как в SMF, то нафиг не надо. Можно запросто получить из-за одной модификации полностью неработоспособный форум, который потом из бекапов только вытаскивать останется.
    Даже если все делать аккуратно, то все равно это - не лучший вариант. Должна быть некоторая универсальность. ИМХО, конечно же.
     
  20. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    На деле для пользователя разницы с ксеновской системой минимум, разве что временно отключать хаки нельзя. Испортиться форум тоже не может, все правки можно тем же automod-ом откатить (он ставит метки, что и кем изменено). Производительность такого решения, очевидно, выше. Разработка на такой системе быстрее и дешевле (я говорю только про способ создания хаков, не сам phpBB). Совместимость хаков тоже выше.

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

Поделиться этой страницей