Удаление объявления без перезагрузки страницы. Boxcode 10.1

 

Привет. В данной статье мы рассматриваем способ реализации метода для удаления объявления в  движке Boxcode 10.1  без перезагрузки страницы. На большинстве досок объявлений данный функционал предусматривается, поэтому, почему бы и нам не попробовать его сделать.

Сначала рассмотрим недостатки и преимущества тех.составляющей:

Преимущества:

  1. Очевидное – страница не перезагружается, человеку не нужно искать способ вернуться обратно к списку объявлений
  2. Человек совершает меньше действий
  3. Человек тратит меньше времени на удаление объявления
  4. Человек видит  сам процесс удаления, благодаря чему не возникает чувства “А удалилось ли оно ?”

 

Недостатки в основном связаны с технической составляющей, что, в своем роде, является недостатком только для людей без знаний кода

  1. Необходимо продумать принцип работы пагинации, т.к у нас есть несколько страниц с объявлениями и удаление одного объявления с одной страницы не компенсируется объявлениями с других страниц. Простыми словами : Удалили с первой страницы все объявления и первая страница получилась пустой, но внизу пагинация ведет на другие страницы, где объявления есть. Решать можно по-разному : исключить пагинацию и выводить все объявления сразу (простое решение) или реализовать подгрузку данных через ajax.
  2. Данный недостаток отпадет сам по себе, когда будет решен первый. Мы удалили все объявления и нужно вывести текст, что объявлений нет у вас. Решение может быть таким: делаем подсчет в нашем скрипте  количества объявлений, передаем в js и, при нулевом результате, выводить текст о том, что объявлений больше нет.
  3. Этот метод удаления практичнее, как по-мне, делать с функцией отмены удаления объявления или созданием нового раздела для архивных объявлений, в котором можно бы было восстановить их. Но это все мое мнение :)

Теперь делаем данный метод для нашей доски объявлений

  1. Качаем архив с файлами
  2. Загрузите файл  /allinclude/del_items.php
  3. Загрузите файл    /moduls/doska/include/delete_one_item.php
  4. Загрузите файл /templates/шаблон/delete_item.js
  5. Далее, открываем файл /templates/coolmini/moduls/doska/mtemplates/forming_tab_synopsis_adv.html и находим строку

    и заменяем ее на

    Потом, находим строку

    и заменяем на
  6. Открываем файл /templates/coolmini/moduls/doska/mtemplates/page/myadvert.html и добавляем наш скрипт в условие, когда есть объявления
  7. Добавляем стили

     

Пример работы можете увидеть на сайте  test 123456 – Создайте любое объявление и перейдите на страницу ваших объявлений, после чего, кликайте на удаление.

Данный метод реализован для модуля доски объявлений, но в файлах  подготовлен код и для других модулей :  объекты и статьи. Все, что вам нужно – это дублировать файл из пункта 3  в каждый модуль. После чего изменять только его, чтобы работал в этом модуле (только для кодеров :) )

Старый метод удаления объявления остался, т.к некоторые используют еще подачу объявлений неавторизованными пользователями.


присылайте свои идеи к нам на admin@make-board.ru
обсудить свои  вопросы можете на форуме Boxcode
вы также можете заказать разработку доски объявлений
или скачать\заказать шаблон Boxcode

13 Комментариев
  1. Подскажите пожалуйста, что это может быть за ошибка?
    Fatal error: Class ‘conversion_data_get_post’ not found in /allinclude/del_items.php

  2. у меня вот что выдает

    Notice: Undefined variable: dbcnx in G:\home\test1.ru\www\allinclude\del_items.php on line 30
    { error:{code:1,text:’ошибка с базой данных’} }

      • 8.5, раскидал все файлы, добавил “возьмите файл doska/include/add_mark.php и гляньте какие инклуды в нем . Далее, делайте по аналогии.” получилось так

        include_once(“../config/config.php”);
        include_once(“../config/db_config.php”);
        include_once(DIR_CMS.”/script/work_site_include.php”);
        include_once(DIR_CMS.”/generalscript/clcontroldata.php”);
        require_once(DIR_CMS.”/generalscript/glav_class_connect_baz.php”);
        include_once(DIR_CMS.”/generalscript/functiontext.php”);
        include_once (DIR_CMS.”/generalscript/list_functions.php”);
        include_once (DIR_CMS.”/generalscript/funct_obr_db_query.php”);
        include_once (DIR_CMS.”/generalscript/funct_db_query_ajax_jc.php”);
        include_once (DIR_CMS.”/generalscript/funct_proces_ajax_jc.php”);

Комментировать

Обязательные поля отмечены *. Ваш электронный адрес не будет опубликован.