id: Гость   вход   регистрация
текущее время 21:09 28/03/2024
Владелец: SATtva редакция от 12/10/2007 19:36 (автор: SATtva) Печать
Категории: софт, сайт проекта, ошибки и баги, разное, сообщество
создать
просмотр
редакции
ссылки

Это старая редакция страницы Разработки / Движок за 12/10/2007 19:36.


Движок openSpace: разработка и доработка


Оглавление документа:


Сообщения обо всех обнаруженных ошибках в работе сайта, багах и недоработках, а также пожелания и предложения по развитию программной платформы сайта следует публиковать здесь.
Основой платформы сайта служит движок openSpace, представляющий собой сильно модифицированную wiki-систему WackoWiki. Выбор пал на нее из-за простоты устройства, модульности, позволяющей легко изменять систему и подгонять под специфические нужды, наконец, субъективная характеристика — код написан на PHP, и для хранения данных используется БД, а не файловая система.


Поскольку сайт не является wiki в обычном смысле, движок подлежит ряду доработок. В частности, от поддержки ВикиИмен оказалось больше вреда, чем блага, поскольку большинство страниц раскиданы по кластерам, а не размещены в корне сайта, и экранировать все встречающиеся слова со смешанным регистром не слишком удобно. Есть и другие изменения, внесенные в оригинальный движок: основные из них перечислены ниже.

Сделать


  • Форма ввода новостей
  • Страница вывода новостей
  • RSS-канал новостей
  • Новая система опросов/голосований (компонент администрирования, компонент ввода опросов, компонент вывода архивных опросов)
  • Отображение опросов в канале новостей
  • Аскетичное оформление
  • Опция: сравнение редакций документа по исходному тексту страниц (без исполнения WackoFormatter)
  • Email-уведомление пользователя при передаче ему прав владения документом
  • Функция массовой чистки комментариев страницы
  • Функция удаления всех страниц кластера
  • Возможность быстрого возврата на прокомментированную страницу после удаления комментария
  • Контроль стойкости пароля при регистрации и изменении пароля
  • Контроль длины текста сохраняемых страниц (предотвращение потери части очень длинного текста)
  • Функция массового удаления прикрепленных к странице файлов
  • Специальный синтаксис для размещения картинок-ссылок
  • Система рейтинговых оценок страниц
  • Компонент вывода списка страниц с самым высоким / самым низким рейтингом
  • Реализация "Песочницы" для практикования в использовании wiki-разметки
  • Расширение пользовательских параметров и полей профиля
  • Введение опциональной поддержки BBCode для форматирования текста
  • Восстановление новостной рассылки и ее автоматизация
  • Конвертор базы данных из phpBB в Wacko
  • В метаданных страницы сделать отдельное поле "Название"
  • Перенос форума на платформу wiki, унификация сайта
  • RSS-канал форума
  • Листание страниц комментариев, предпросмотр комментария перед сохранением, правка и удаление, распечатка комментариев вместе со страницей
  • Вывод комментариев и изменений, сделанных с последнего посещения пользователя (плюс выделение разделов форума/тем с новыми комментариями)
  • Доработка каталога сайта и других каталогов страниц: переход к произвольной странице, алфавитный указатель
  • Внутренняя система резервного копирования (стандартные средства не подходят вследствие объемов базы данных)
  • Полностью переписать компонент tree (оптимизация по скорости и работе с новой структурой базы данных)
  • Полностью переписать подсистему аутентификации и обработки сессий, дабы сделать невозможным перехват и повторное использование истекших куков
  • Учет и отображение пользовательской статистики в заголовках комментариев
  • Возможность для гостей подписывать комментарии и правки страниц
  • Компоненты вывода списка разделов форума, тем в разделе, модерации сообщений и тем
  • Единый административный журнал событий (системный лог)
  • Установка на сайт SSL-защиты (наконец!)
  • Доработка страницы пользователей: просмотр профилей, списки страниц и пр.
  • Компонент внутренней приватной связи между пользователями сайта
  • Интеграция GnuPG в движок сайта
  • Сделать возможность просмотра опросов, стоящих в премодерации, всеми посетителями сайта
  • Кэширование результатов ?тяжелых? SQL-запросов
  • Изменить структуру списков ACL, добавить правило 'create', определяющее права на создание подстраниц (и, возможно, 'upload' для загрузки файлов)
  • Список недавно удалённых документов
  • Элементы страницы для работы с серверами ключей
  • Сводная страница новых комментариев и новых редакций
  • Обновленный тест Тьюринга
  • Поддержка html-кода на постраничной (индивидуальной) основе
  • Расширение возможностей модерации комментариев за пределы форума на регулярные страницы сайта (также возможность выноса комментариев из форума в иные кластеры)
  • Единый рубрикатор на основе ключевых слов документа. Иерархии рубрик. Упрощенный поиск по рубрикам/ключевым словам
  • Реализовать предложения по упрощению работы Гостей
  • Элементы страницы для работы с сетью доверия
  • Компонент динамического управления рабочими группами
  • Компонент администрирования пользовательских профилей
  • Дополнительный флаг для прав доступа: изменение свойств и правка документа должны быть подтверждены подписью PGP

Опубликование кода, переход к бета-стадии (v0.9b)

  • Инсталлятор
  • Права доступа на участие в опросах (и просмотр определённых опросов?). Также указывать ID опросов для упрощения ссылок на них. Возможность комментирования опросов. (Перенести опросы в адресное поле документов, но использовать специфический хэндлер?)
  • Соответствие XHTML 1.0 Transitional
  • Универсальная (многоязычная) адресация страниц (a-la /node/[id]<:lang>)
  • Вывод страниц в кодировке UTF-8

Исправить


  • При создании страницы наследование прав доступа должно происходить от родительского документа кластера, вместо использования дефолтных
  • В некоторых случаях не создаётся список прав доступа при создании новой страницы в кластере
  • XML-код каналов не отвечает спецификациям RSS
  • Отсутствует pubDate для элементов канала новостей
  • Не отображается список последних комментариев
  • Контекстный поиск производится по полному пути к текущему документу вместо только имени документа
  • Параметр datetime во внутренних ссылках не имеет смысла. Можно удалить (одновременно исправит проблему с якорями на страницах с datetime в url)
  • Действия {{orphaned}} и {{wanted}} не работают для любых вложенных страниц кластера
  • Функция импорта XML не отслеживает ссылки внутри импортируемых документов
  • Переименование (перенос) страницы не обрабатывает контекстные (относительные) ссылки
  • Есть ли смысл в ВикиИменах, если они практически не используются с учетом структуры сайта? Отключить
  • Некорректное сохранение файлов на определенных страницах (определенные литеры в именах, нюанс хостинга)
  • RSS новостей генерирует не верные ссылки (например для новости "Новое название и обновление платформы проекта" дан URL, по которому новость не доступна). Ну и хотелось бы, чтобы по RSS новостей была доступна не только ссылка на новость, но и текст новости.
  • При открытии http://www.pgpru.com/ происходит явная переадресация на страницу /Главная
  • Переименование (перенос) страницы не затрагивает прикрепленные к ней файлы
  • При удалении страницы прикрепленные файлы остаются в файловой системе и БД
  • Повторное несоответствие RSS-каналов спецификациям RSS (non-ASCII в строках URL)
  • Новости в RSS – заголовки новостей, создаваемые из wiki-имени, не имеют пробелов
  • Поисковая система неуклюже работает с комментариями страниц: каждый комментарий может быть открыт как страница, в результатах поиска непонятно, какая страница была прокоментирована, и т.д.
  • Ошибка в хэндлере rate: не учитывается нулевой балл при оценке страницы
  • Панель управления доступом к документу: список пользователей для передачи прав владения нерационален (в дальнейшем от регистрации новых участников может стать чрезвычано длинным). Следует заменить на поисковую форму.
  • Некорректная работа подсистемы закладок: закладки устанавливаются, но не удаляются (не действует виртуальная отрисовка ссылок)
  • При простом листании (перезагрузке) страниц обновляется код CAPTCHA в комментариях (особенно в форуме) и впустую расходуются попытки. Альтернатива: обновлять можно сколько угодно, а попытки тратить только при вводе и валидации кода, но само число попыток снизить до 5-10.
  • Слишком большой поток уведомлений о новых комментариях. Следует сообщать только один раз, а затем молчать, пока пользователь не просмотрит страницу.
  • Оптимизировать SQL-запрос для поиска отсутствующих страниц (нынешний не успевает исполниться до таймаута)
  • Устранен ряд некритических уязвимостей класса XSS и SQL Injection (поисковик, модули опросов и рейтинга страниц)
  • Улучшен поисковик в плане вида выдачи результатов
  • Прямые ссылки на комментарии выдают неверную страницу комментариев (первую или последнюю)
  • Невозможна передача имени страницы в кодировке, отличной от CP1251: отображается пустой документ
  • При указании внутренней ссылки на комментарий документа, отследить обратную связь становится невозможно. В таких случаях в таблице ссылок следует устанавливать ссылку на базовый документ.
  • Ликвидировать рабочую группу Files. Дать возможность каждому владельцу страницы загружать на неё файлы.
  • Критическая ошибка в функциях определения административных и модераторских полномочий с потенциальной возможностью получения полномочий незарегистрированными гостями
  • Переместить все hardcoded-ссылки в вызовы метода href()
  • Скорректировать функции экспорта/импорта XML-документов согласно новой структуре БД
  • Процедура очистки устаревших данных (лог, редакции и т.д.): неверный расчет даты приводит к удалению всех элементов старше 1 дня
  • Ошибка в функции определения прав доступа HasAccess(), способная в определённых ситуациях привести к раскрытию данных (в частности, при рассылке уведомлений на изменения документа с ограниченным доступом)
  • Во избежание семантических атак, следует отключить параметр nomark для директив include и randomphrase (здесь добавить рамку) в PGP-подписанных текстах
  • Автоматически блокировать отображение раздела в новостных сообщениях
  • При переименовании темы форума через модераторский интерфейс не трогать заголовок, если сообщение электронно подписано
  • При разделении темы форума из первого комментария не создаётся новый документ (tag), и следующие комментарии отделяются в никуда (comment_on)
  • При повторном логине предлагается снова проголосовать в опросе.
    • Уточните симптомы проблемы. О чём речь? — SATtva (12/10/2007 19:36)

Проблемы


  • Отработка процедуры замены надстрочных кавычек на кавычки-лапки в классе типографики в некоторых случаях выдаёт пустую строку (очевидно, некий артефакт в регулярных выражениях). В данный момент исправление не представляется возможным, типографический корректор отключен.
    • Форматтеры переработаны, проблема исправлена, корректор включен.
    • Поправка: более детальное тестирование показало, что в определённых случаях проблема сохранилась. Однако, стало возможным отключение части функций типографики (в частности, обработки кавычек) без ущерба для остальной функциональности. Окончательное решение пока не найдено.
  • Несколько подряд вызываемых редакций одного и того же комментария имеют один и тот же урл, что приводит к невозможности редактировать несколько раз подряд один и тот же комментарий в браузерах с активным использованием хэша (links, elinks и другие).
    • Примечание: в связи с технической сложностью и нехваткой времени решение этой проблемы отложено на будущее.
  • При использовании BBCode-разметки если использовать цитирование в списке, сообщение выводится некорректно (большая часть не выводится вообще), не говоря уже о корректном форматировании.
    • Обход: использовать только wiki-разметку в указанном случае.

Идеи


  • Возможность загрузки в профиль открытого ключа PGP, используемого в дальнейшем для шифрования забытого пароля и сообщений приватной связи. Реализовано.