Инструменты пользователя

Инструменты сайта


eaze:panda:описание

Проект Panda

Проект Panda - это пример создания новостной ленты, где пользователи сами смогут добавлять ссылки на новости, определять категорию новости, голосовать за новость и комментировать её. Цель проекта - познакомиться с основами Eaze.

Задание

  1. Спроектировать базу данных, взяв за основу объектную модель и предоставленный шаблон (Panda.dm2) для Toad Data Modeller.
  2. Реализовать административный интерфейс (VT) для управления новостями, категориями новостей и комментариями.
  3. Донастройка – улучшить шаблоны, проверка ошибок.
  4. Реализовать основную часть сайта (FE).

Структура сайта

  1. Объектная модель (Panda.News)
    1. Новость (news)
      1. Свойства новости
        1. Заголовок* – заголовок новости (title, varchar 255)
        2. Преамбула* – краткое описание новости (foreword, varchar 1024)
        3. Текст – полный текст новости (content, text)
        4. Картинка – маленькая картинка 100х100 (fileId, int)
        5. Ссылка на источник* – url новости (url, varchar 2048)
        6. Email* – почтовый адрес автора, создавшего новость (email, varchar 255)
        7. Дата* – дата добавления комментария (createdAt, timestamp, default now)
        8. Рейтинг* – кол-во проголосовавших за новость (rating, int)
        9. Категория* – категория новости (categoryId, int)
        10. Статус* – (statusId, int)
    2. Категория новости (categories)
      1. Свойства категории
        1. Название* – название категории (title,varchar 255)
        2. Системное имя* – английское название (alias, varchar 32, [a-z0-9-])
        3. Статус* – (statusId, int)
    3. Комментарий (comments)
      1. Свойства комментария
        1. Автор* – автор комментария (author, varchar 16)
        2. Email* – почтовый адрес автора (email, varchar 255)
        3. Текст* – комментарий (comment, varchar 1024)
        4. Дата* – дата добавления комментария (createdAt, timestamp, default now)
        5. IP* – IP адрес отправителя (ip, inet)
        6. Родительский комментарий – (parentCommentId, int)
        7. Флаг постмодерации* (isPostModerated, bool, default false).
        8. Новость* – (newsId, int)
        9. Статус* – (statusId, int)
    4. Рейтинг новости (newsRatings)
      1. Свойства рейтинга новости
        1. IP* – IP адрес оценившего (ip, inet)
        2. Дата* – дата голосования (createdAt, timestamp, default now)
        3. Новость* – (newsId, int)
  2. Основные требования
    1. Полная проверка пользовательского ввода (включая проверку на существование email [mx] или url [http 200])
    2. Проверка уникальности url

Комментарии к шаблону базы данных

Base.Common

  • statuses – системная таблица со статусами. Служит для логического удаления объектов из базы или снятия их с публикации. По умолчанию статусов в ней 3, но можно расширять своими.
    • 1 – опубликован
    • 2 – не опубликован
    • 3 – удален
  • users – пользователи административной части.
  • daemonLocks – таблица блокировок для демонов. Существует возможность вызова любого статического метода и создания блокировки для него на какое-то время. После завершения метода блокировка снимается. Если метод выпал в Fatal, то следующий запуск метода возможен только после истечения интервала maxExecutionTime от runAt.

Base.VFS

Пакет Base.VFS – это виртуальная файловая система. Все интерфейсы для работы с ней уже написаны (выбор файла, загрузка файла и т.д.)

  • vfsFolders – древовидный список папок.
  • vfsFoldersTree – реализация деревьев для списка папок.
  • vfsFiles – список файлов.

Panda.Common

Пакет Panda.Common позволяет решить стандартные задачи по наполнению и структуре сайта.

  • siteParams – таблица, в которой удобно хранить различные параметры, например Email, кому нужно отправлять письмо или идентификатор счетчика для Google Analytics. В шаблонном проекте на основе Eaze уже есть следующие параметры: Google.Meta, Google.API, Google.Analytics, Yandex.Meta, Yandex.API (.Meta – инструменты для веб-мастеров, .API – ключи для карт).
  • staticPages – поддержка обычных статических страниц.
  • metaDetails – переопределение meta-информации по url для поисковой оптимизации.
  • navigationTypes – типы навигации (например, нижнее меню или верхнее меню).
  • navigations – элементы навигации.

Постарайтесь спроектировать в TDM базу данных, после этого перейти к следующему этапу и проверить то, что у Вас получилось.

eaze/panda/описание.txt · Последние изменения: 2012/01/16 20:40 — sergeyfast