ТЕХНИЧЕСКОЕ ЗАДАНИЕ на создание сайта-форума MPPD. Рабочий функционал (тестовая частичная реализация проекта) http://new.psorias.info/dr24/ 1. Общие правила Функциональность по возможности реализуется путем подключения и настройки, существующих проверенных модулей. Создание новых модулей (исключая изменения ядра Drupal) происходит только при отсутствии существующих модулей или при их низком качестве. Создание новых модулей происходит только по согласованию с заказчиком. 2. Интерфейс 2.1. Выбран Garland 2.2. Согласовать оформление меню с интерфейсом, т.е. настроить в Nice menu (шрифт, размер, цвет, фон) с возможностью менять эти опции в CSS. Минимизировать высоту верхнего поля, высоту блока с названием сайта, а также высоту блока с меню. Расположить на верхнем поле блоки "Поиск", "Переключатель языка", "Мой аккаунт", "Выйти" более компактно и равномерно. Сейчас последние два включены в меню, ибо они занимали слишком много места (по высоте) в верхнем блоке, а также не были видны обычному user. 2.3. При выводе Inline значений, содержащих линк, происходит смещение выводимого значения вниз: Пример. http://new.psorias.info/dr24/Baker_Barbara. Это происходит в любом ноде (возможно связано с Garland, поскольку в Bartik этого нет.). Исправить, если будет выбран Garland. 2.4. Итоговый вид по согласованию с заказчиком. Требования к оформлению: простое, понятное, удобное и без излишеств. По возможности без боковых блоков. При необходимости только с левым боковым блоком. 3. Форумы и блоги 3.1. Реализовать мод поддержки перевода комментариев (к сообщениям на форуме или в блогах) на другой язык. Аналогично тому, как это сделано для всех нодов. Переключение между переведенными комментариями должно автоматически происходить при смене языка. Переводится не все, а только выбранные администратором комментарии. Положение перевода комментария в списке комментариев к переводу опорного сообщения должно соответствовать положению оригинального комментария в списке комментариев к оригинальному опорному сообщению. Перевод и размещение комментария должен разрешаться только после перевода опорного сообщения. Перевод комментария к комментарию может осуществляться только после перевода оригинального комментария. Эту функцию нужно реализовать в виде отдельного модуля. В качестве основы взять разработку [Automatic] Comment Translation: http://drupal.org/project/comment_translate Результатом работы должна стать рабочая версия этого модуля, опубликованная на drupal.org. 1 4. Динамические страницы 4.1. Публикации Контент http://new.psorias.info/dr24/Publications сформирован не так, как надо. Это всего лишь html-таблица. Страница с публикациями должна быть динамично формируемой. На ней должны быть выбранные по определенным правилам публикации. А каждая из публикаций - должна быть отдельным нодом (см. Приложение п.2) Т.е. должна быть возможность выбора по одному или нескольким полям контента «Publication» по определенным критериям (например, выбрать все публикации конкретного автора или все публикации, которые посвящены одной из моделей или просто все публикации) и динамически сформировать страницу в табличной форме. Табличная форма аналогична тестовой. Также каждая публикация будет иметь несколько меток (ключевых слов). Должна быть возможность выбора всех публикаций, которые имеют одну или несколько заданных меток. Форма выдачи табличная. 4.2. Гипотезы Гипотеза будет иметь привязки к одной или нескольким моделям. (см. Приложение п.4) Необходимо реализовать возможность формирования динамической страницы с перечнем гипотез, использованных в конкретной модели. Каждая гипотеза будет иметь несколько меток (ключевых слов). Должна быть возможность выбора всех гипотез, которые имеют одну или несколько заданных меток. Форма выдачи табличная. 5. Разное 5.1. Перевод имени русскоязычного пользователя. Пользователи должны при регистрации указывать в качестве login свою Фамилию и Имя. Если регистрация открыта в английском варианте, то поле логина будет «Last and first name:» Если же в русском, то поле логина «Фамилия и имя на русском:» + есть еще одно поле «Фамилия и имя на английском:» Причем так, чтобы этот вариант автоматически использовался на всех английских страницах: На английском форуме, если он захочет оставить там сообщение, в блоговом сообщении, если оно будет на английском. Мой пост об этом до сих пор без ответа: http://drupal.org/node/1337492 Есть комментарии одного из разработчиков Gábor Hojtsy: http://drupal.org/user/4166 «I'd use user fields, and entity_translation module to make a real name field translatable then theme it via theme_username() to use the value of this field translated proper» 5.2. Ограниченный доступ. Реализовать возможность доступа к некоторым файлам только зарегистрированных пользователей. Оптимально с помощью существующего модуля. Например: http://drupal.org/project/content_access 5.3. Реализовать возможность создания пустого пункта, для тех пунктов меню, у которых есть подпункты (void menu). Сейчас для этого приходится делать специальный нод. Например: http://new.psorias.info/dr24/node/12 5.4. Реализовать возможность настройки прав доступа к конкретным форумам и контейнерам (например только для администраторов и модераторов). 2 5.5. Ошибка в хлебных крошках (breadcrumbs). Путаница в порядке отражения….При вхождении в подфорум “Y-model” его название отражается не последним: Есть: Home › Forums › Y-model (7) › Discussions (-10) http://new.psorias.info/dr24/forum/18 Должно быть: Home › Forums › Discussions › Y-model Но м.б. их просто убрать http://drupal.org/project/disable_breadcrumbs ? 5.6. Преобразование коротких (внутренних) ссылок зависит от того внутри какого нода они находятся. Именованного (с алиасом) или обычного неименованного. Вот примеры: Неименованный нод на английском: http://new.psorias.info/dr24/node/74 Именованный нод на английском: http://new.psorias.info/dr24/75 Содержание этих двух нодов идентично. Неименованный нод на русском: http://new.psorias.info/dr24/ru/node/76 Именованный нод на русском: http://new.psorias.info/dr24/ru/77 Содержание этих двух нодов идентично. Как из любого нода на русском делать ссылки на английские страницы? Использование полных ссылок делает сайт плохо переносимым. 5.7. Использование алиасов. Только в именованном ноде можно делать ссылки с использованием алиасов. В неименованном ноде это невозможно. Происходит автовставка “node/”. 5.8. В полях профиля не получается использование краткой ссылки или node/NN. (например для ссылки на конкретный нод, для которого задан алиас). При обработке перед краткой ссылкой или node/NN автоматически вставляется «user/». Пример – Link после слов Author's page: http://new.psorias.info/dr24/user/26 Этот линк задан в виде полной ссылки. Примечание к 5.6, 5.7 и 5.8. Алиасы и короткие ссылки должны одинаково правильно работать независимо от того вставляются в неименованный или именованный нод, в профиль пользователя и т.д. Как исключить автовставки типа «ru/», “node/”, “user/” ? 6. Поддержка (после ввода сайта-форума в эксплуатацию). Длительность 6 месяцев. 6.1. Переход на новые версии Друпала, обновление ядра, поддержка при обновлении всех модулей, которые будут подключены в процессе разработки. 6.2. Устранение ошибок, выявленных в процессе эксплуатации и/или при осуществлении обновлений, но не связанных с вмешательством других специалистов в Друпал-код Интернет-сайта. 6.3. Консультации по Друпал: рекомендации по использованию новых модулей, их подключению и обновлению; рекомендации по использованию таксономии и т.п. 3 6.4. Консультации по БД (работа с backup, phpmyadmin и т.п.), а также по хостингу сайта. 4 Приложение. Данные и информационные связи. 1. Author. Автор. http://new.psorias.info/dr24/node#overlay=admin/structure/types/manage/author/fields Перечень авторов является базовым массивом. Для нода каждого автора определен уникальный алиас – «Фамилия_Имя» (в английской транскрипции). Для русскоязычного и англоязычного нодов алиасы совпадают. При выводе списка авторов в табличной форме в первой колонке должен быть выведен алиас. 2. Publication. Публикация. http://new.psorias.info/dr24/#overlay=admin/structure/types/manage/publication/fields Перечень и названия полей: Publication title - уникальный код = фамилия первого автора в английском написании, «_», год публикации, буква английского алфавита (при наличии нескольких публикаций в течении одного года). Authors - упорядоченный перечень авторов (включая линки на алиасы авторов) Name - текстовое поле (полное наименование) Imprint – текстовое поле (полные выходные данные) Body – описание, комментарии Internet Link – ссылки на ресурсы в Интернет Link to Full text - ссылка на полный текст (текст не должен быть доступен анонимному пользователю) Alias = Publication title (пробелы заменены на «_»). Пример правильного решения: http://new.psorias.info/dr24/Fry_2007b В тестовой версии реализован вывод всех публикаций без динамической таблицы: http://new.psorias.info/dr24/Publications 5 Формирование динамической таблицы, содержащей все публикации данного автора может быть решено через функцию от трех переменных: 1) Искомый алиас (например данного автора) 2) Имя контента для выборки (например Publication) 3) Имя поля этого контента, в котором может содержаться искомый алиас (например Authors). Эта же функция может быть использована при построении динамической таблицы, содержащей все гипотезы, которые использованы в заданной модели. 3. Model. Модель. http://new.psorias.info/dr24/node#overlay=admin/structure/types/manage/model/fields Перечень и названия полей: Model title – уникальный код Publications – перечень публикаций, в которых сформулирована модель (включая линки на алиасы публикаций). И т.д. Alias = Model title. 4. Hypothesis. Гипотеза (в тестовой версии не реализовано). Перечень и названия полей: Hypothesis title – уникальный код Models – Перечень моделей, в которых используется данная гипотеза (включая линки на алиасы моделей). И т.д. Alias = Hypothesis title. 5 декабря 2013. Михаил Песляк, E-mail: mikp2000@gmail.com 6