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

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

Версия 1.0

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

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

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

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

Версия 2.0

 [fix] Модуль педвергся большим изменениям в плане кода и функционала
 [fix] Бермудский, часть твоих предложений тоже реализована :) В частности перенес файлы объявлений в папку files (сразу почему-то провтыкал)
 [new] Дерево категорий. Оно было полностью переписано. Теперь можно добавлять объявления как сразу в первой категории, так хоть в 10 (как в библиотеке). Огромное спасибо хочу сказать Koenig`y, Димон, не сердчай, но я спер у тебе функцию построения дерева категорий для phdr :D Мне лень было самому мозг ломать, а ты все уже организовал за меня, держи печеньку в карму :)
 [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>';

