Доска объявлений for JohnCMS 6.x.x

4.23K
.
Str@nnik

Модуль "Доска oбъявлений для JohnCMS 6.x.x"
Автор: Str@nnik
Контакты:
http://johncms.com/users/profi ... 21326
ICQ: 609745227
valera_shikuta@mail.ru

Скрипт распостраняется на бесплатной основе! Продажа и присвоение авторства запрещены!!!

Пример (+/-)

Функционал (+/-)

Версия 1.0

Функционал:
[*] Админка
- Создание, Редактирование, Удаление категорий/подкатегорий;
- Настройки объявлений;

[*] Краткое описание
Начнем с админа. Админ может создавать категории/подкатегории. В "Настройках" он может:
- Вкл/выкл модерацию объявлений;
- Вкл/выкл плату за объявления (необходимо поле balans);
- Вкл/выкл уведомления в почту с модерации;
- Указывать цену за день (если конечно включена плата за объявления);
- Указывать количество бесплатных дней для показа лбъявлений (если конечно включена плата за объявления);
Рядовой юзверь может (как и админ собственно):
- Добавлять, Редактировать, Удалять объявления. Если срок показа объявлений истек, он может продлить показ зависимо от настроек админом (планые или бесплатные), предварительно найдя его в архиве собственных объявлений. В анкете юзверя находится ссылка на его объявления, где, собственно, он может найти ссылку на архивные объявления (если таковы имеются). К объявлению можно прикреплять картинку. Короче, не люблю много писать, Гг. Ставьте, смотрите.

[*] В планах написать
- Комментарии;
- Рейтинг или что-то вроде него;

#############################################################################################################################################

Версия 2.0

[fix] Модуль педвергся большим изменениям в плане кода и функционала
[fix] Бермудский, часть твоих предложений тоже реализована В частности перенес файлы объявлений в папку files (сразу почему-то провтыкал)
[new] Дерево категорий. Оно было полностью переписано. Теперь можно добавлять объявления как сразу в первой категории, так хоть в 10 (как в библиотеке). Огромное спасибо хочу сказать Koenig`y, Димон, не сердчай, но я спер у тебе функцию построения дерева категорий для phdr Мне лень было самому мозг ломать, а ты все уже организовал за меня, держи печеньку в карму
[new] Добавлены новые поля - "Моб. номер" и "Email"
[new] Плату за объявления не выпилил, НО если плата выключена, то объявление можно разместить на 30 дней, после чего его опять можно продлить на 30. Если не продлить - через 10 дней оно авоматически удалится. Обо всех действиях приходят оповещания в почту, которые как и в первой версии модуля включаются через админку
[new] Теперь к объявлению можно крепить несколько фото
[new] Появились разделы "Новые за неделю" и "Популярные по просмотрам"
[new] Комментарии
[new] И еще есть что-то новое, короче увидете, гг

Внимание! Таблицы изменены и добавлены новые, поэтому установку нужно совершать с нуля.

#############################################################################################################################################

Версия 2.1 (Финальная)

[fix] Поправлено удаление категорий, опять же спасибо примеру Кениг`а
[new] При редактировании объявления можно перемещать его в другую категорию
[new] Объявления можно теперь добавлять как в категории, так и с главной, только при добавлении нужно будет указать категорию куда добавляем
[new] Масовое удаление объявлений

Установка (+/-)
1. Распаковать архив в корень сайта
2. Залить таблицы с файла sql.sql
3. CHMOD 777 files/board/ && files/board/small/
4. incfiles/classes/counters.php
/*
    -----------------------------------------------------------------
    Доска объявлений
    -----------------------------------------------------------------
    */
    static function board() {
        $total = mysql_result(mysql_query("SELECT COUNT(*) FROM `board_ads` WHERE `status` != 0"), 0);
        $new = mysql_result(mysql_query("SELECT COUNT(*) FROM `board_ads` WHERE `status` != 0 AND `time` > (" . time() . " - 3600 * 24)"), 0);
        if ($new)
            $total .= '&nbsp;/&nbsp;<span class="red">+' . $new . '</span>';
        $mod = mysql_result(mysql_query("SELECT COUNT(*) FROM `board_ads` WHERE `status` = 0"), 0);
        if ($mod)
            $total .= '&nbsp;/&nbsp;<span class="green">M:' . $mod . '</span>';
        return $total;
    }

5. users/profile.php
$total_ads = mysql_result(mysql_query("SELECT COUNT(*) FROM  `board_ads` WHERE `status` = 1 AND `user_id` = " . $user['id'] . ""), 0);
(160 строка приблизительно)
'<div>' . functions::image('board.png') . '<a href="../board/?act=my&amp;id=' . $user['id'] . '">Объявления</a>&#160;(' . $total_ads . ')</div>' .

после
'<div>' . functions::image('guestbook.gif') . '<a href="profile.php?act=guestbook&amp;user=' . $user['id'] . '">' . $lng['guestbook'] . '</a>&#160;(' . $user['comm_count'] . ')</div>' .

6. pages/mainmenu.php
echo '<div class="menu"><a href="board/">Доска объявлений</a>&nbsp;(' . counters::board() . ')</div>';

Последняя версия! Скачать!
Вывод последних объявлений на главную
Прикрепленные файлы:
.

Скрин 1

Прикрепленные файлы:
.

Скрин 2

Прикрепленные файлы:
.

Tor, Может еще какие пожелания будут, то можно сделать.

.
(\/)____o_O____(\/)

Str@nnik, мне только один момент не понравился, это удаление категории. там запрос в цикле
его можно избежать, тем более.. зная иды

.

Koenig, Там id подкатегорий удаляющейся категории в массиве хранятся. Вот и сделал циклом удаление.
Хотя, согласен, не до конца этот момент продумал.

.
Koenig
(\/)____o_O____(\/)

Str@nnik, удаление можно в один запрос
where id in()
глянь в библиотеке как я реализовал

.

Koenig, В голову пришло посмотреть как на форуме организовано, но не уверен, что там лучше... Спасибо, гляну, за библиотеку твою забыл.

.
Бермудский
Треугольник

Ну нареканий много.
Первое. Это навязывание двухуровнего стандарта. То бишь раздел должен состоять обязательно из подраздела -
это напрягает! Комментировать почему напрягает - думаю будут излишне.
Надо переделать. Раздел может вообще не иметь ни одного раздела -
а может состоять из 10(десяти) например разделов.
Второе. Кнопка создания(размещения) обьявлени запрятана опять же в подразделах.
Нужно делать как на веб сайтах -
Кнопка размещения обьявления размещена на главной странице доски обьявлений в вверху.
При переходе по ссылке размещения обьявления - должен быть предоставлен ввыбор разделов...
Третий пункт замечаний. При создании размещении обьявления - напрягает графа с указанием количества бесплат.дней. Даже если пункт плат. отключен - но требование с указанием дней бесп. всё равно вылазиет.
------------------------
Необходимы:
1. Лента всех обьявлений. По ринципу схожести билиотеки - с указанием раздела, в котором размещено обьявлени.
2. Комментарии.
Кнопка просмотра коммментируемых обьявлений.

--------------
По поводу реализации рейтинга, оценок - вот это точно ни к чему. Лишнее.

.
Бермудский
Треугольник

В недавнем прошлом, я наткнулся на модуль "газеты сайта" - данный мод привлек моё внимание тем, что для себя я понял что его несложно заточить под доску обьявлений.
Реализация кое каких моментов весьма интересна, - аффтар, думаю тебе пригодится....

Прикрепленные файлы:
Всего: 66