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-доски
- Автозагрузка медиаплееров и embeds
- Animate thumbnails of animated gifs
- Не скроллить на верх при перезагрузке страницы
- Показать сайдбар: Всегда показывать, Всегда скрывать, Использовать настройки по умолчанию
- Скрыть все имена постеров и трипкоды.
- Скрыть мой регион
Затем следует список скрытых тредов. Лучше было бы вынести его в отдельное меню.
- Overboard settings
Доски, которые не будут отображаться в разделе overboard
- Сохранённые настройки
- Загрузка сохранённых настроек
- Удаление сохранённых настроек
Заключение[править]
Движок в целом вышел довольно интересный.
Набор пользовательских фич весьма порадовал.
Но я пока не стал бы его использовать, потому что очень много функционала отсутствует.
В основном это касается админской части. Ну и без багов не обошлось.
Скриншоты[править]
- Northboard 1.png
- Northboard 2.png
- Northboard 3.png
- Northboard 4.png
- Northboard 5.png
- Northboard 6.png
- Northboard 7.png
- Northboard 8.png
- Northboard 9.jpg
- Northboard 10.png
- Northboard 11.png
- Northboard 12.jpg
- Northboard 13.png
- Northboard 14.png
- Northboard 15.png
- Northboard 16.jpg
- Northboard 17.png
- Northboard 18.png
- Northboard 19.png
- Northboard 20.png
- Northboard 21.png
- Northboard 22.png
- Northboard 23.jpg
- Northboard 24.jpg
Ссылки[править]
- Официальный сайт
- Github
- [[email protected] Контакты]