title
Description
Body
В основе простая идея: заводим дополнительный признак у форума - тип (kind).
Имея такой признак мы можем
1. Разделить полный список форумов на группы по типам, например "статьи", "галереи", "новости", "блоги" и т.д.
В меню верхнего уровня добавим навигацию по типам. Отсюда появился термин супер-категория. Эта группировка как бы выше по иерархии, чем категории.
2. Отрисовывать форум и тему по-разному, в зависимости от типа форума. Например
- в галерее давать превьюшку для приоединенного JPEG
- статью выводить на всю доступную ширину и высоту страницы без лишнего обрамления
- по признаку "новости" фильтровать вывод последних тем на главной странице портала
3. Дать пользователю возможность ограничивать текстовый поиск по одному или нескольким типам форумов.
По мере надобности можно заводить новые типы форумов.
Этот механизм хорошо сочетается с так называемыми "Человеко-Понятными УРЛами" ЧПУ (в английском языке используют термин Search Engine Friendly или Search Engine Optimized). Для каждого типа форума можно и нужно завести наглядный алиас, например:
_http://somesite.com/articles/ будет отображаться на _http://somesite/viewforum.php?kind=3
Тестовый полигон "суперкатегорий" - сайт http://punbb-pe.org.ru/
Неактивен
очень интересует второй пункт -
я рассматриваю твои суперкатегории как возможность интеграции сайта и форума более высоким уровнем (поиск, и то что писал в теме на punbb.ru : http://punbb.ru/viewtopic.php?pid=9666#p9666 )
пока что только догадываюсь - как разделить внешний вид.. или css другой давать (но хеадер ведь один...) или как лучше (правильнее это сделать?
И ещё - не могбы ты применительно к своей сборке написать хауту - про Mod_Rewrite? ато он очень сложный - если будет хауту то по аналогии можно много самому сдлать!
----
Ещё хочу очень чтобы ты учел эту проблему:
Индексация ссылок на пост (дублирование тем - это плохо) http://punbb.ru/viewtopic.php?id=823
И ещё - в сборке 0.0.5 - там ведь нет разделения поиска как пункте 3.
уже писал тут6 http://punbb.ru/viewtopic.php?id=1205 что встроенный поиск не годится.
Надо или ограничивать типом форума, или сделать такой поиск, как на dimonvideo.ru - там результат сразу на категории разбивается - по образцу - выдаются результаты на форуме, отдельно - в статьях, отдельно - в файловом архиве.
Но у него очень много постеителей и часто тупит, Поэтому предлогаю просто сделать возможность выбирать тип форума (статьи, новости, галерея и т.п.)
Неактивен
* разный внешний вид можно задавать в CSS, а если требуется что-то сильно отличное можно выделить какие-то куски viewtopic в отдельные файлы и подключать их через include. тогда во viewtopic будет что-то такое:
switch(@forum_kind){
case PUN_KIND_ARTICLE:
include(PUN_ROOT.'include/PE/article.php');
...
default:
include(PUN_ROOT.'include/PE/focum.php');
}
* сейчас разделения поиска нет, я хочу такое добавить в PE 0.1.0
мне нравится своей простотой поиск c главной страницы на PunRes - чекбоксы на каждый тип. по-умолчанию все включены.
update: уже есть
* дублирование ссылок - это нехорошо, но как-то надо адресовать конкретный пост! в форуме exbb, к примеру, возле постов стоят не прямые ссылки, а по клику выскакивают окошки "Адрес этого сообщения такой-то". Поисковик по такой ссылке не пойдет, но адрес скопировать можно ![]()
Неактивен
дак я и говорю - эта проблема РЕШЕНА втой теме что я привёл - сходи на форум реактора - http://ru55.ru/forum - я там внедрил и этот мод - тоесть там ссылка на пост заменяется ссылкой на ТЕМУ а пост идет как якорь после символа #
это делается для НЕ ЧПУ-панбб форума просто добавлением небольшого кусочка в footer.php
и ещё я туда внедрил Convenient URLs by hcs - который вместо ссылки выводит имя темы на форуме, на которую ссылаешься!
только мне пришлось пару строк добавить - ведь к постам теперь ссылка ведт по другому ![]()
в данном случае я не знаю как изменить mod_rewrite - поэтому на netline.org.ru (твоя 0.0.5) - не внедрял ни первого ни второго ![]()
ссылка на тему: http://nlf.aa.z/topic/105
ссылка на пост: http://nlf.aa.z/post/704#p704
а надо бы вторую сделать примерно такой: http://nlf.aa.z/topic/105#p704
или: http://nlf.aa.z/topic/105:704 (как на ixbt)
тоесть я хочу тебе сказать что сама проблема в движке РЕШАЕТСЯ тем самым модом - stop dublicate urls, осталось только переделать мод-реврайт правильно
Отредактированно niikto (02.04.2007 07:37:26)
Неактивен
mod_rewrite настраивать не придется. в .htaccess есть такая хрень:
RewriteRule ^topic/([0-9]+)?#p([0-9]+)/?$ viewtopic.php?id=$1#p$2 [L,NC]
тут все уже предусмотрено!
то есть модифицировать PE надо точно также как нечпушный форум, только ссылки делаешь не viewtopic.php...#... а topics/...#...
Неактивен
модифицировал таки ![]()
тока вот Convenient urls by hcs не решился поставить...
это вошло в 006 ![]()
Отредактированно niikto (24.05.2007 08:12:04)
Неактивен
Как обычно идея должна пройти какую-то эволюцию, вызреть. Со временем уточняются термины и способы реализации. Чтобы избежать путаницы в названиях буду вместо слова "форум" употреблять термин "доска". Доска Объявлений - Bulletin Board System. Теперь "форум" — это частный случай "доски".
Сейчас я готовлю релиз PE 0.1.0. Попробую перефразировать первый пост темы:
В основе простая идея: заводим дополнительный признак у категории - тип (kind).
Имея такой признак мы можем
1. Разделить полный список досок (boards) на группы по типам, например "форумы", "статьи", "галереи", "блоги" и т.д.
В меню верхнего уровня добавим навигацию по типам. Отсюда появился термин супер-категория. Эта группировка как бы выше по иерархии, чем категории. В пределах одной категории все доски имеют один и тот же тип.
2. Отрисовывать доску и тему по-разному, в зависимости от типа доски. Например
- в галерее давать превьюшку для приоединенного JPEG
- статью выводить на всю доступную ширину и высоту страницы без лишнего обрамления
- "новости" — это свежие записи всех или избранных блогов. блог мы сразу узнаем по тому, что вместо заголовка темы выводится стартовое сообщение
3. Дать пользователю возможность ограничивать текстовый поиск по одному или нескольким типам досок.
По мере надобности можно заводить новые типы досок.
Этот механизм хорошо сочетается с так называемыми "Человеко-Понятными УРЛами" ЧПУ (в английском языке используют термин Search Engine Friendly или Search Engine Optimized). Для каждого типа форума можно и нужно завести наглядный алиас, например:
_http://somesite.com/articles.php будет отображаться на _http://somesite/boards.php с фильтрацией по categories.kind=3
как это работает в PE 0.1.0:
- в таблицу categoies добавляю поле kind
- скрипт index.php (список всех досок) теперь называется boards.php. он никогда не будет вызываться напрямую, а только из оболочек. например имеем оболочку blogs.php:
<?php
define('PUN_ROOT', './');
$kind = PUN_KIND_BLOG;
require PUN_ROOT.'boards.php'аналогично делаем articles.php, forums.php и т.д.
а в boards.php имеем такой код:
...
if (!isset($kind))
exit('You cannot call this script directly');
...
$result = $db->query('SELECT ... FROM categories AS c INNER JOIN forums AS f ... WHERE c.kind='.$kind.'...');
...Из примера видно, что список досок всегда будет фильтроваться по какому-то kind.
Неактивен
вышла 8-я ревизия PE 0.1.0
- доски уже разделены по типам (теперь это называется "доски")
- форумы распределяются по типам в админке: панели Категории и Доски
- в поиск заложена заготовка раздельного поиска по разным типам
пока НЕТ никакого различия в отображении разных типов: что форум, что галерея, все едино ![]()
это задача для будущих правок
можно скачать здесь:
http://www.assembla.com/spaces/files/punbb_pe
UPDATE: АХТУНГ! я забыл добавить в репозиторий пару абсолютно необходимых файлов. такчто пока рано качать ![]()
UPDATE2: файлы добавлены. это 9я ревизия - можно качать ![]()
Неактивен
Продолжение теории: персональные доски - блоги и личные галереи.
В "нормальном" форумном движке новые форумы может создавать только Админ. он же делегирует некоторые административные функции Модераторам.
Теперь вообразим страшное: Админ разрешает какой-то группе пользователей создавать свои доски. В пределах своей личной доски пользователь является Модератором и даже чуть-чуть Админом.
Он может удалять и редактировать любые комментарии, Может разрешить или запретить писать определенным группам пользователей, может вести свой личный блек-лист (почтичто бан-лист).
Как реализовать?
1. В таблице groups заводим еще одно право и один список
+ own_board tinyint(1) default 0. Право на создание своих досок. По-умолчанию выключено.
+ cat_list text null. Сериализованый список категорий где пользователь данной группы может создавать личные доски. Категория имеет свой тип-суперкатегорию (см. выше). Значит Админ может, например, разрешить группе Power Users заводить только блоги, а группе Columnists заводить блоги, галереи и статьи.
2. В таблице forums заводим ссылку на автора.
+ owner_id int(10) null. По-умолчанию автора нет. Обычная доскаЕсли поле не null, значит персональная.
3. В таблице users заводим список для "личных врагов фюрера". Должен он как-то банить плохишей в пределах своих досок?
+ black_list text null. Сериализованный список пользователей, не допущенных к личным доскам данного пользователя.
Это материал для внедрения в ближайших ревизиях PE
Неактивен
вышла 10-я ревизия. набор реализованных особенностей:
- раздельные списки досок по суперкатегориям. для каждой суперкатегории есть отдельный скрипт.
- как следствие: index.php теперь не список форумов, а "портальная" страница с отдельным шаблоном
- панели Админки Boards (бывший Forums) и Categories настроены на работу с суперкатегориями
- в запросе поиска можно указать набор суперкатегорий, в которых надо искать. если указана конкретная доска для поиска, то эта опция игнорируется
- новый help.php - разделы помощи разворачиваются по требованию
основа заложена, приступаю к управлению внешним видом отдельных суперкатегорий
Неактивен
ревизия 15. реализовано:
- поиск возможен по отмеченным типам досок, но если выбрана конкретная доска, то типы игнорируются.
- переходы к другой доске (quickjump) во viewboard и viewtopic делаются только в пределах текущей суперкатегории
- перенос темы аналогично - только в другую доску той же суперкатегории
Неактивен
Я в раздумьях про структуру PUN_KIND_ARTICLES...
Сейчас мне кажется, что статья и комментарии к ней — это должны быть разные "темы". Сама статья может быть из нескольких частей/страниц. Это можно оформить как посты одной темы. Комментарии к статье — классический форум. Просто в заголовке темы будет сказано: "комментарии к статье такой-то".
Какие будут соображения? niikto, что-то давно тебя не было слышно ![]()
Неактивен
Эта тема пережила переезд на другой сайт, сам PE перешел уже в иное состояние, какие-то ссылки устарели.
Поэтому я закрываю тему как неактуальную. Новое время, новые темы. Ура!
Неактивен