• Главная
  • Поиск
    •  
  • Здравствуйте, Гость

Автор Тема: Сделать объявление не активным или активировать объявление  (Прочитано 2948 раз)
  • *
  • Сообщений: 6
Подскажите, как сделать так, чтобы объявление не удалялось, а становилось неактивным, или попадало в архив. Главное чтобы исчезло с общего поиска. Может есть какой-то плагин или стандартными средствами можно?
« Последнее редактирование: 15 Январь 2020, 18:12:32 от Dis »

Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« Ответ #1 : 05 Сентябрь 2017, 14:29:22 »
Стандартно так и работает.
Доработки любой сложности.
Задание присылайте в личку.

  • *
  • Сообщений: 6
« Ответ #2 : 05 Сентябрь 2017, 15:44:32 »
Проверял - удаляю в личном кабинете объявление и его нет ни в обьявлениях ни в завершенных.

Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« Ответ #3 : 05 Сентябрь 2017, 23:30:21 »
Проверял - удаляю в личном кабинете объявление и его нет ни в обьявлениях ни в завершенных.
Удаляю - это удаляю. С чего бы ему не удалится ?
У категорий в  админке можно настроить срок актуальности.
По истечению этого срока объявления становятся неактивны.
А если нужна кнопка для пользователя в личном кабинете - это другой вопрос.
Доработки любой сложности.
Задание присылайте в личку.

Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« Ответ #4 : 05 Сентябрь 2017, 23:36:00 »
Это сделать можно.
1. В function.php Вашего шаблон добавить функцию:
function osc_item_deactivate_url($secret = '', $id = '') {
if ($id == '') { $id = osc_item_id(); };
if ( osc_rewrite_enabled() ) {
return osc_base_url() . 'item/deactivate' . '/' . $id . '/' . $secret;
} else {
return osc_base_url(true) . '?page=item&action=deactivate&id=' . $id . ($secret != '' ? '&secret=' . $secret : '');
}
 }
2. В контроллер /oc-includes/osclass/controller/item.php к примеру после 284 строки добавить:
case 'deactivate':
                    $secret = Params::getParam('secret');
                    $id     = Params::getParam('id');
                    $item   = $this->itemManager->listWhere("i.pk_i_id = %d AND ((i.s_secret = %s) OR (i.fk_i_user_id = %d))", (int)($id), $secret, (int)($this->userId));

                    // item doesn't exist
                    if( count($item) == 0 ) {
                        $this->do404();
                        return;
                    }

                    View::newInstance()->_exportVariableToView('item', $item[0]);
                    if( $item[0]['b_active'] == 1 ) {
                        // DEACTIVATE ITEM
                        $mItems = new ItemActions(false);
                        $success = $mItems->deactivate( $item[0]['pk_i_id'], $item[0]['s_secret'] );

                        if( $success ) {
                            osc_add_flash_ok_message( _m('The listing has been deactivated') );
                        }else{
                            osc_add_flash_error_message( _m("The listing can't be deactivated") );
                        }
                    } else {
                        osc_add_flash_warning_message( _m('The listing has already been deactivated') );
                    }

                    $this->redirectTo( osc_item_url( ) );

                break;
3. В файле шаблона user-items.php в блок объявления добавить кнопки вроде этих:
<?php if(osc_item_is_active()) {?> <a href="<?php echo osc_item_deactivate_url(); ?>" class="edit-link"><?php _e('Deactivate''bender'); ?></a> <?php ?>
<?php if(!osc_item_is_active()) {?> <a href="<?php echo osc_item_activate_url(); ?>" class="edit-link"><?php _e('Activate''bender'); ?></a> <?php ?>
И всё.
« Последнее редактирование: 05 Сентябрь 2017, 23:54:34 от Dis »
Доработки любой сложности.
Задание присылайте в личку.

Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« Ответ #5 : 05 Сентябрь 2017, 23:58:59 »
п.3 конечно в каждом конкретном шаблоне надо смотреть куда эти кнопки вставить.
Доработки любой сложности.
Задание присылайте в личку.

  • *
  • Сообщений: 6
« Ответ #6 : 06 Сентябрь 2017, 19:40:28 »
Большое спасибо! Все получилось!

  • **
  • Сообщений: 87
« Ответ #7 : 11 Ноябрь 2019, 16:00:14 »
Ради интереса опробовал - плагины модерации если стоят - не работает....  Точнее выдает сообщение о невозможности деактивировать....

А без них никуда)

  • *
  • Сообщений: 5
« Ответ #8 : 13 Декабрь 2019, 00:06:38 »
Чтоб не плодить новую тему)
А есть возможность, чтоб после срока актуальности объявление не уходило из видных на сайте, а оставалось для всех пользователей, но с надписью типа "неакутально"?

  • *
  • Сообщений: 6
Здравствуйте, есть такая проблема поставил кнопки для "Активации и Деактивация объявления" вот пример: https://prnt.sc/25i83wu
Деактивация объявления, работает все хорошо.
Активация, не активирует объявления, видает что  "Объявление уже деактивировано"  вот пример  https://prnt.sc/25i8j58 
И вот код кнопок. https://prnt.sc/25i8r41
Помогите пожалуйста, разобраться с этой проблемой.
« Последнее редактирование: 01 Январь 2022, 07:23:34 от stegura777 »

 


test