Osclass - cms доски объявлений

Разработка => Небольшие доработки => Тема начата: ntuver от 04 Ноябрь 2019, 23:24:35

Название: Модерация только для не зарегистрированных пользователей
Отправлено: ntuver от 04 Ноябрь 2019, 23:24:35
Здравствуйте, коллеги! Скажите пожалуйста, можно ли сделать так чтобы модерацию проходили только объявления от анонимных пользователей (не зарегистрированных). А если пользователь зарегистрировался то он мог бы подавать объявление без модерации. Используется плагин More edit но не совсем подходит. Как можно реализовать?
Название: Re: Модерация только для не зарегистрированных пользователей
Отправлено: Dis от 04 Ноябрь 2019, 23:38:18
Можно в плагине More Edit прописать проверку на регистрацию пользователя.
if(osc_is_web_user_logged_in()) {Функция
moreedit_posted_itemв файле плагина index.php
Название: Re: Модерация только для не зарегистрированных пользователей
Отправлено: ntuver от 05 Ноябрь 2019, 13:27:19
Спасибо, а что писать после проверки? в самой функции добавил проверку если пользователь зарегистрирован тогда... Не совсем хорошо php знаю.

https://drive.google.com/file/d/18tAjfx6d5rHxy8b__QaUB5emijycU43e/view?usp=sharing
Название: Re: Модерация только для не зарегистрированных пользователей
Отправлено: Dis от 05 Ноябрь 2019, 22:57:02
function moreedit_posted_item($item)
{
    if (osc_get_preference('moderate_all', 'moreedit') == '1') {
        $error = Session::newInstance()->_get('moreedit_fm_info');
        if($error=='') {
            Session::newInstance()->_set('moreedit_fm_info', __('Your ad needs to be approved by the administrator, it could take a while until it appear on the website', 'moreedit') );
        }
        Item::newInstance()->update(array('b_enabled' => 0), array('pk_i_id' => $item['pk_i_id']));
    }
}
Меняете на такой вариант:
function moreedit_posted_item($item)
{
    if (!osc_is_web_user_logged_in() && osc_get_preference('moderate_all', 'moreedit') == '1') {
        $error = Session::newInstance()->_get('moreedit_fm_info');
        if($error=='') {
            Session::newInstance()->_set('moreedit_fm_info', __('Your ad needs to be approved by the administrator, it could take a while until it appear on the website', 'moreedit') );
        }
        Item::newInstance()->update(array('b_enabled' => 0), array('pk_i_id' => $item['pk_i_id']));
    }
}
И всё.
Название: Re: Модерация только для не зарегистрированных пользователей
Отправлено: ntuver от 06 Ноябрь 2019, 00:49:55
Огромное, спасибо! Все получилось :) Еще вопрос, а можно добавить в плагин в графический интерфейс чтобы галочка была модерировать все объявления от анонимных и зарегистрированных пользователей, и модерировать только анонимных. Просто каждый раз руками править код не совсем правильно наверное?
Название: Re: Модерация только для не зарегистрированных пользователей
Отправлено: Dis от 06 Ноябрь 2019, 18:07:07
Огромное, спасибо! Все получилось :) Еще вопрос, а можно добавить в плагин в графический интерфейс чтобы галочка была модерировать все объявления от анонимных и зарегистрированных пользователей, и модерировать только анонимных. Просто каждый раз руками править код не совсем правильно наверное?
Какой каждый раз ? Один раз поправили и всё.
Графический интерфейс - если хотите доработать, то дорабатывайте:)
Я в этом смысла не вижу ...кроме Вас никому ещё не нужен был вообще такой функционал.