PunBB Power Edition — это ответвление известного форумного движка PunBB 1.2. Я стараюсь по-возможности сохранить совместимость снизу-вверх для модов и стилей.
Основная движущая идея PE такова: любой текстовый контент сайта должен храниться единообразно, использовать один и тот же механизм правил доступа и должен попадать в поисковый индекс.
Контент может быть разный: блог, форум, фотогалерея, статья, проект и т.д. В терминах PE это называется "суперкатегории".
Очевидно, что единая система управления сайтом удобнее, чем набор разрозненных скриптов. Удобнее для администратора и, главное, для пользователя!
Любой сайт развивается, прирастает новыми сервисами. В технологии PE когда вы применяете к темам/сообщениям новый мод, он будет реализован во всех разновидностях данных.
Если рассуждать в терминах объектного программирования, для новых типов данных я создаю классы-наследники, а не новые классы с нуля. Поэтому нет необходимости заново реализовывать то, что уже есть.
Например "поисковые метки" будут работать в статье, фотографии и теме блога.
На очень многих сайтах главная составляющая — это форум. Если в какой-то момент собственно форума становится недостаточно, приходится мучительно переделывать движок, конвертировать данные.
Power Edition предназначен в первую очередь для апгрейда форумов до уровня полноценного сайта.
Можно сказать и иначе: привлечь первых постоянных посетителей и нарастить контент проще всего именно с помощью форума, но уже на начальном этапе хозяин сайта должен представлять куда и как двигаться в перспективе.
Я стараюсь сохранить красивый легкомодифицируемый исходный код PunBB и добавить в него новые невиданные ранее возможности
О каких данных идет речь?
На сегодняшний день разделы-суперкатегории такие:
- классический форум
- статьи с комментариями
- фотогалерея с комментариями
- персональные журналы-блоги
в перспективе наверное будет система Файлообмена и Личных Сообщений
С форумом все понятно, он уже есть
Статья отличается видом заглавного поста и разбивкой на страницы.
Фотогалерея, в моем представлении, это набор тем, каждая тема начинается с прикрепленной картинки.
Блог — поток авторских сообщений с возможными комментариями других пользователей. Можно рассуждать о блоге как о форуме в котором первое сообщение видно сразу, полностью или частично, в списке тем.
Как будет организована навигация по сайту на PE?
Так как форум — это только одна из составляющих движка, частный случай, я ввожу новое понятие "доска" (board). В принципе английский термин давно применяется в форумах, вспомним БиБиЭски BBS (Bulletin Board System). Движки в своем названии содежат эти слова: vBulletin, phpBB, IPB, PunBB.
Иерархия данных PE такая:
1. суперкатегория — тип досок, например Статьи.
2. категория.
3. доска, например набор статей объединенных каким-то признаком.
4. тема — заглавное сообщение (сама статья) и последующие комментарии.
в исходном движке отсутствовал п.1
Создавая движок на базе скриптов PunBB я заменяю слово forum на board во множестве мест, чтобы в будущем не возникала путаница где имеется в виду "абстрактный класс Доска", а где его наследник "дочерний класс Форум".
viewforum.php, например, переименован во viewboard.php, потомучто он используется для всех суперкатегорий.
Что нового в плане хранения/представления данных?
Для хранения всех типов данных используются все те же старые таблицы
categories, forums, topics, posts
Признак типа есть только в записях таблицы categories, это новое поле kind.
Из скриптов viewboard и viewtopic я вынес куски вывода в отдельные файлы, так легче отделить обработку данных от их представления. Новый каталог include/board/ хранит все эти куски. Для вывода данных viewboard обращается к трем внешним файлам — начало, строка данных и конец:
board_top.php, board_row.php и board_bottom.php
В зависимости от kind эти скрипты обращаются к другим файлам, так для блога будут вызываться
board_top_blogs.php, board_row_blogs.php и board_bottom_blogs.php
То есть сами данные для всех суперкатегорий хранятся и добываются одинаково, а формирование страниц может отличаться.
В Power Edition появляется понятия "персональная доска" и "команда".
Пользователи объединяются в команды или клубы по своим групповым интересам. В команде есть руководство, которое решает административные вопросы.
Перснальные доски, например Блоги, принадлежат конкретному пользователю или команде. В пределах этой доски пользователь-хозяин является модератором. Он может править и удалять сообщения по своему вкусу. Хозяин определяет права пользователей на основе ролей: хозяин/друг/пользователь/гость. Например создавать тему в блоге команды смогут только члены команды (друзья), если так решит руководство команды.
а модерировать сообщение члена команды может другой член команды?
я просто так думаю что социальное - это когда пользователь выбирает кого из остальных пользователей ему приоритетнее читать. этопрежде всего лента друзей - т.е. что они написали нового. Т.е. команда должна держаться именно на содержимом публикаций, которые в свою очередь определяют общие интересы команды. но это не значит что они пишут тока на одну тему - в этом и есть смак - просто ты какбы знаешь, что этот человек завтра тоже чтото интересное тебе напишет - вот и добавляешь его в друзья.
короче должно в профиле появиться что-то типа "избранные ленты (новостей) - они же - друзья, избранные [фото/видео] альбомы,
А пока получается, что команда определяет только права на публикацию. не более того.
например я думаю гораздо важнее имея личный дневник (доска пользователя) для отдельных статей - запрещать доступ ВСЕМ/ВСЕМ КРОМЕ ДРУЗЕЙ, или ставить пароль... тоже - к фотоальбомам (или например -пароль к оригиналу), видео-клипам, музыкальным-файлам.
тоесть социо- это такие какбы дополнительные связки, которые во многом заманивают именно своей ограниченностью. я не могу читать в день всех 1000 человек на сайте, но я могу выбрать тех кто мне интересен и запомнить их (занести в избранное/ленту друзей).
Я теперь вообще очень сильно переосмыслил то как надо делать проекты - после 4-х комнат я понял что нельзя ратовать за свободу и надо делать "коридор" - но в форме игры. чтобы не слишком ограничивать. Надо и не давать посетителю свободы и с другой стороны - соблюдать меру. Иначе если много свободы - не будет благодарности - не будет отдачи. и то что нету отдачи - это вина именно создателя проекта. а не "неблагодарных посетителей" - как часто я это слышал...
в последний месяц увлечён проектом torrents.ru
нет - я не качаю гигабайты. мне там почти ничего не нужно.
Но как же они грамотно всё посроили!!!
есть трекеры где я скачал 90,6% фильма и вот уже 2-ю неделю не качает больше. сидер просто ушёл и перестал раздавать фильм. время насмарку. Это свободный трекер - там реально чтото скачать только если это чтото тока что выложили.
а на торрентс.ру - если я скачаю ну там - 10 гигабайт, и не раздам ничего - меня забанят и я больше ничего не могу скачать. И поэтому я отношусь с пониманием, (а не из под палки - хоть и нет выбора) - сижу и раздаю дальше то что скачал.
А чтобы не уходили сидеры - тоже есть маленькая мелочь - за свои раздачи считается в 2 раза юольше. дак я и не перестану раздавать - мне же это очень выгодно - с меня качают а рейтинг растёт - я же потом смогу гораздо больше чем сейчас выкачать чего нибедь!!
Это очень грамотно. это коридор. рн удобный не низкий, не сжимающий, но это и не поле. посетитель по нему будет идти точно так, как задумано. А если споткнется (ошибётся, нарпимер в оформлении раздачи - даст не полную информацию о фильме) - то ему объяснят и дадут время исправить
В общем-то, есть у них и недочёты - я насобирал множество идей и что сделать не так - но основные принципы - очень хорошие!
Ещё меня там восхищает профиль. в обычном форуме я не хожу в профиль после того как его один раз настроил.
Есть конечно люди которые подпись или аватар меняют раз в день. Но он же не функционален!!!
а в социальных проектах - в профиле - лента друзей, в профиле на торрентс.ру - лента закачек и рейтинг - главный стимул проекта - я туда первым делом иду - в свой профиль.
а еще там когда просматриваешь какие то новые раздачи, можно раздачу добавить в избранное - и забыть. а когда придёт время качать - просто в профиле ткнуть избранное и все таки раздачи списком получить - не надо искать заново!! это очень удобно и это тоже пришло из соц-проектов!!!