Northboard

Материал из Колчевики
Перейти к навигации Перейти к поиску

Northboard - Движок Northpole.fi, доступный под лицезией MIT. Код действительно не очень, но эй, по крайней мере, он отлично работает!

README[править]

Требования[править]

  • Apache2
  • PHP5 (точная версия неизвестна. Должно работать на новейших версиях из самых популярных репозиториев.)
  • Mysql5 server
  • Следующие PHP библиотеки: mysql, curl, imagick, gd, geoip
  • ImageMagick для конвертации и изменения размеров изображений

Опционально:

  • PHP-APC для идикатора загрузки (Обратите внимание на то, что текущая версия PHP-APC вылетает на PHP 5.4+)
  • tmpfs (/dev/shm) для более быстрого кэширования файлов, альтернатиная опция tmp/ -директорий в корне инсталляционного директория.
  • GifSicle для ресайза gif и поддрежки анимированных gif
  • PNGCrush и OptiPNG для оптимизации png
  • MP4Box для поддрежки mp4 streaming

Установка[править]

«

<poem>Это руководство предназначено для дистрибутивов, основанных на Debian. Нужны некоторые изменения для других дистрибутивов. Я предполагаю, что у вас уже установлены, настроены и запущены Apache2, PHP5 и MySQL server. Если вы не можете установить gpac, вам нужно добавить http://deb-multimedia.org/ в sources.list.</poem>

»
— Анонимус
  • Установить требуемые библиотеки и софт:

apt-get install php-apc php5-mysql php5-curl php5-imagick imagemagick gifsicle libjpeg-progs optipng pngcrush php5-gd gpac php5-geoip

  • Включить mod_rewrite, если не включен.
  • Активировать apc.rfc1867 добавлением строки
    "apc.rfc1867 = 1" в /etc/php5/apache2/conf.d/apc.ini
  • Загрузить исходный код движка в публичный директорий сервера.
  • Создать базу данных
  • Отредактировать inc/config.php.sample и переименовать его в inc/config.php.
  • Проверить .htaccess если вам нужно отредактировать его (например, для SSL).
  • Открыть http://your.url/install/install.php в вашем веб браузере и следовать инструкциям.
  • Удалить директорию install
  • Создать директорию tmp/ и сделать её записываемой для веб сервера (например: mkdir /path/to/installation/tmp && chown -R www-data /path/to/installation/tmp && chmod -R 744

/path/to/installation/tmp).

  • Установить разрешения для создания папок, файлов и всех подпапок. Самый простой путь конечно это "chmod -R /path/to/installation 777", но это небезопасно.
  • Открыть http://your.url/
  • Для добавления досок, вам необходимо выполнять команды для базы данных на прямую, потому что разработка админ-панели не завершена. Например, вы можете использовать PHPMyAdmin.
    • Для начала создайте категорию в таблице "categories". Обязательна только колонка "name". Запомните ID вставленной записи.
    • Затем добавьте доску в таблицу "boards". Обязательные значения: url (например, "b" - без слешей!), name (напрмиер, "Random") и category (идентификатор созданной ранее категории (например, "1"), необходимо для отображения доски в меню). "Worksafe" может быть установлен в "1" для выключения скрытия когда NSFW скрыт.

Админ-панель[править]

Вход - http://localhost/northboard/mod/index/
Сама админка - http://localhost/northboard/mod/index/

Админка разбита на две области с помощью фреймов.
Слева располагается навигация, справа контент.

Множество пунктов помечено как (TODO), что означает, что они еще не доделаны.
Поэтому админка будет рассмотрена частично.

Управление пользователями[править]

Действия: Просмотр списка/Создание/Редактирование

Параметры аккаунта: Username, Password, E-mail, User class: Admin|Mod|Smod
При просмотре списка помимо перечисленных выше параметров доступны следующие:
Время последнего логина, Время последней активности, Кем создан, Дата создания.

Лог ошибок[править]

<poem>В этом разделе располагается список последних 100 обнаруженных ошибок. Список представляет собой таблицу со следующими колонками: Информация, Данные ошибки, Время, IP пользователя. Информация содержит описание ошибки. Например: Wrong username or password! или No categories exist! Данные ошибки отображаются только по клику. В них содержатся дампы _GET, _POST, _SERVER массивов, а так же отправленные заголовки.

Годно сделали. Вопросов нет. Хотя всё же есть замечание. Лучше дать возможность администратору самому решать, что делать с логами. Сделать настройку автоочистки (отключить на совсем или задать период). Неплохо было бы иметь возможность скачать лог. Ну и естесственно тогда нужно будет добавить возможность ручной очистки.</poem>

Баны[править]

Добавление:

  • IP-Address (SHA512-encrypted)
  • IP-Address (Unencrypted - replaces the former field, leave empty if using it)
  • Allow reading of the boards
  • Length in seconds: 1h 1d 3d 1w 2w 1m 1y Permanent
  • Reason
  • Note to another moderators

Добавить бан так и не удалось.

<poem>Ниже формы располагается список последних двадцати банов. Список представлен в виде таблицы со следующими колонками: Reason, Note, Can read, Added, Length (Expires), Expired/Deleted, Banned by Посмотреть весь список можно в разделе Manage Bans. Для истёкших банов так же предусмотрен отдельный раздел. На мой взгляд было бы логичнее объединить эти два раздела и сделать возможность сортировки или фильтрования. А лучше запилить и то и другое.</poem>

Управление досками[править]

Параметры доски:

  • ID
  • URL
  • Name
  • Description
  • Order
  • Category
  • International
  • Pages
  • Locked
  • Worksafe
  • Ads
  • Namefield
  • Default name
  • Show empty names
  • Default style
  • Hide sidebar

<poem>В самом конце для каждой доски располагаются ссылки на редактирование и удаление. Уж очень любят бордостроители таблицы, но на мой взгляд это не всегда удобно. Как например в этом случае. Кол-во параметров большое и приходится горизонтально скроллить страницу для того, чтобы ознакомиться с ними. Создание доски вынесено в отдельный пункт навигации.

Как вы уже наверное догадались, имеется возможность разбить доски по категориям. Создавать, редактировать и удалять категории и из админки.</poem> Напомню, что в README говорилось, что создавать доски и категории можно только обратившись напрямую к базе данных. <poem>Для каждой категории можно задать только имя и порядок. Удаление категорий на данный момент не реализовано. Редактирование имеется, но тут есть небольшой баг. При сохранении категории вернувшись к списку категорий, если снова попытаться перейти к форме редактирования, то ничего не выйдет.</poem>

Прочее[править]

  • Сто последних загруженных файлов
  • Сто последних постов
  • Репорты
  • Заблокированные треды
  • Стики треды
  • Перемещение тредов
  • Слияние тредов
  • Посткаунт по доскам

Неясно зачем нужно слияние тредов. На мой взгляд это плохая идея.
Перемещение тредов лучше вынести из админки.
Неудобно же запоминать или копировать в буфер ID треда, затем идти в админку и перемещать его.

Постинг[править]

Перед тем как создать тред нужно добавить разрешенные типы файлов в базу данных.

Выполнить нужно следующее:
# mysql -u root -p
> use northboard;
> insert into filetypes set extension='jpg', mime = 'image/jpeg';
> insert into filetypes set extension='jpeg', mime = 'image/jpeg';
> insert into filetypes set extension='png', mime = 'image/png';
> insert into filetypes set extension='gif', mime = 'image/gif';
> exit

Нумерация постов глобальная. Например, гет можно взять в любой только одной доске.

Форма:

  • Имя (OP) - Установить имя как OP если вы OP треда
  • Опции:
    • Sage
    • RAGE! - Show your feelings!
    • Love - Show your feelings!
    • Noko - После отправки поста вернуться к треду вместо доски
  • Тема
  • Сообщение
  • Файлы - Максимум 4 файла
  • Очистить JPG EXIF
  • Embed
  • Пароль
  • Modpost - показать админ-тег

Блоттер:

  • Разрешенные типы файлов: gif, jpeg, jpg, png
  • Максимальный размер файла 150 MB.
  • Пользователей онлайн.
  • Загрузка сервера
  • Список тредов

<poem>Под полем ввода сообщения показывается максимально допустимое кол-во символов, которое по мере ввода текста обновляется. Рядом с полем ввода сообщения располагается кнопка для изменения ширины поля. Поле embed не работает. Имеется возможность скрыть форму и навигационный фрейм. При обновлении страницы положение запоминается.

Есть что-то вроде потока тредов (Overboard). Здесь располагаются треды со всех досок. Отсюда же можно и создать новый тред или быстро ответить в существующий. При создании нового треда из потока тредов необходимо указать доску, которой будет принадлежать будущий тред.</poem>

Опции для треда:

  • Follow thread (Что-то вроде избранного)
  • Show/Hide thread (Скрыть/Показать)
  • Collapse/Expand thread (Свернуть/Развернуть тред)
  • Quick reply (Быстрый ответ)
  • Reply (Ответ)
  • Ban (Бан)
  • Delete (Удалить)
  • Delete all (Удалить всё)
  • Merge (Объединение с другим тредом)
  • Move (Переместить в другую доску)
  • Lock (Заблокировать)
  • Stick (Закрепить)

Опции для поста:

  • Ban (Бан)
  • Delete (Удалить)
  • Delete all (Удалить все)

Имеется возможность отметить сразу все посты. Действия над отмеченными постами:

  • Скачать файлы: (Максимальный размер 150 MB)

Вводим имя архива и жмем сабмит. На выходе получим zip архив с файлами постов.

  • Пожаловаться на сообщение.
  • Удалить сообщение или только файл. Нужен пароль.

Под ОП-постом располагается кнопка для раскрытия всех изображений.
Изображения раскрываются в теле поста.
На данный момент оно не работает. Хотя на офф сайте с этим проблем нет.

Списки тредов:

  • Followed

Треды, за которыми вы следите

  • My threads

Треды, созданные вами

  • Replied

Треды, на которые вы ответили

Настройки

  • Cтили:
    • NorthBoard
    • Dark
    • Orange
    • Foliage
    • Yotsuba
    • Yotsuba B
    • Harvest Moon
    • Galtsulauta
  • Локаль:
    • Suomi
    • American/English
    • Polski
  • Временная зона.

Например, Europe/Moscow или Europe/London. Со списком временных зон можно ознакомиться здесь: http://www.php.net/manual/ru/timezones.php

  • Скрыть NSFW-доски
> Выключение этой опции разблокирует части сайта, которые могут содержать наготу, кровь и прочее.
> Не рекомендуется для лиц, недостигших 18 лет.
  • Автозагрузка медиаплееров и embeds
  • Animate thumbnails of animated gifs
  • Не скроллить на верх при перезагрузке страницы
  • Показать сайдбар: Всегда показывать, Всегда скрывать, Использовать настройки по умолчанию
  • Скрыть все имена постеров и трипкоды.
  • Скрыть мой регион

Затем следует список скрытых тредов. Лучше было бы вынести его в отдельное меню.

  • Overboard settings

Доски, которые не будут отображаться в разделе overboard

  • Сохранённые настройки
> Ваши настройки автоматически сохраняются. Удаляются они, если вы не были активны более 30-ти дней. Если вы хотите загрузить эти настройки на другом компьютере, то вы можете использовать автоматически генерируемые имя пользователя и пароль.
  • Загрузка сохранённых настроек
  • Удаление сохранённых настроек
> Пожалуйста, обратите внимание, что после удаление своего профайла, нет никакого способа восстановления каких-либо данных о нем. Также отметим, что после удаления, новый профиль будет создан автоматически.

Заключение[править]

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

Скриншоты[править]

Ссылки[править]

Скачать[править]