Drupal, типовая задачка. Кто покажет, как решается?

Главные вкладки

Аватар пользователя PG PG 22 апреля 2005 в 21:51

Вижу очень много ситуаций, когда требуется одна вполне конкретная структура сайта, которая с минимальными вариациями подходит для любых проектов.

А именно - статейно-новостная структура.

Опишу формальное ТЗ:

1) На главной странице - новости по двум тематикам (где две там и три, так что нам для примера достаточно понять, как сделать две).

2) Новости каждой из тематик можно просмотреть отдельно, для этого есть отдельные ссылки в меню.

3) Сайт пусть, для конкретики, двухколоночный. Левая колонка - меню, правая - текст. Прочее - по дефолту.

4) Статейная часть сайта должна быть иерархической и иметь навигацию вида [url=http://drupal.org/node/11810]как тут[/url]. Статьи попадать непосредственно на главную страницу никак не должны.

5) Темовый движок пусть используется PHPTemplate с чем-нибудь сугубо дефолтным. Кастомизацию самого шаблона в рамках данного вопроса рассматривать не хочется - это отдельный вопрос, его мне хотелось бы потом самому проиллюстрировать.

А теперь можно по шагам, [i]для тупых[/i]:

- Какие дополнительные модули потребуются?
- Как из свежеустановленного Drupal сделать ту структуру, которая описана? На примере двух новостей и двух статей.

____________

На живом примере концепция друпал должна получиться гораздо понятней, чем после прочтения сухой документации. Лучше один раз увидеть, чем десять раз услышать.

Комментарии

Аватар пользователя PG PG 22 апреля 2005 в 21:54

Только обязательно - ПО ШАГАМ.
Чтобы человек, впервые зашедший на данный сайт мог скачать друпал и тупо следуя инструкции щелкать ссылки и получать искомый результат.

И этап русификации не забудьте. В INSTALL.txt он тоже не описан. Нужно перечислить ВСЁ, что потребуется после выполнения инструкций, описанных в INSTALL.txt.

Аватар пользователя axel axel 26 апреля 2005 в 12:09

Собрать силами drupal.ru дистрибутив движка (например на текущей версии 4.6) с преднастроенными новостями, структурой форумов, настроенными ролями пользователей и т.п. - кроме стандартных модулей ничего и не понадобится. Можно сразу русификацию поставить и включить. В итоге надо получить дамп базы + инструкцию по его импорту и распаковке архива файлов и установке прав на них. Drupal Start Edition Smile

--
Axel,
www.axel.drupal.ru

Аватар пользователя PG PG 26 апреля 2005 в 21:02

Это хорошая мысль, но это нужно делать вместе, а не вместо.

Готовая структура даст сесть сразу на готовенькое, а описание последовательности действий немного и опыта даст набраться, по приемам.

Кстати, хорошо бы и наиболее часто используемые приемчики собрать. У кого тут есть опыт создания реально посещаемых сайтов на друпале? Поделитесь опытом.

Аватар пользователя kiev1 kiev1 27 апреля 2005 в 19:06

>Собрать силами drupal.ru дистрибутив движка
ага - это я первый придумал - у меня есть кое какие доделки которые в друпал добавлять не хотят поэтому сделаем отдельно, правильно?

Аватар пользователя kiev1 kiev1 28 апреля 2005 в 15:28


так я-ж всем тут надоел описывая их и то что мне от друпал надо


первое
- это вставка блоков в произвольное место дизайна а не только лево-право - выкинул из модуля block лишнее и теперь он смотрит на файл темы и если дизайнеру приспичило и он вставил блок где-то сзади сайта назвав его "сзади" - то в админ меню блоков появляется вместо радиобутон выпадающий список содержащий все зоны которые дизайнер отвел для блоков.


второе
- это доделка модуля flexinode так что-бы картинки масштабировались и при нажатии выскакивало popup окошко с полноразмерной, плюс к картинкам есть подписи, плюс надо для flexinode добавить в инсталяшке примеры ввода документов - например картинки слева в столбик, справа в столбик, слева-справа и блочками - текст-картинка-текст-картинка, плюс надо сделать что-бы полю image можно было присваивать еще и маштабирование разное для разных полей.


третье
- надо сделать модуль вывода внизу каждой статьи ссылок на последние статьи из разделов помечнных при создании как смежные.


четвертое
- надо из модуля эл магазина вычистить весь мусор связанный с левыми системами оплаты и макс упростить его


пятое
- надо написать модуль - опросник что-бы у каждого юзера была анкета которую он должен заполнять но это думаю из модуля магазина взять.


шестое
- выкинуть все движки тем как ненужное и не соответствующее стилю друпала что все должно быть просто.


седьмое
- разобратся со стилями, написать какой принцип и как их делать стандартно, соотв создать стандартную простую тему из которой все остальные делать.


восьмое
- найти деньги и заплатить тому кто все это сделает... Smile

Аватар пользователя PG PG 28 апреля 2005 в 17:36

Ссылки на последние статьи смежных разделов - это да, это был бы рулез. Но почему это нельзя сделать модулем?

Да, а чем тебе phptemplate хвост прищемил?

Аватар пользователя MonAmur MonAmur 26 апреля 2005 в 14:41

Но кто возьмется забесплатно это делать? Ведь никто на этом сайте НЕ обещает БЕСплатной поддержки, как бы...

Аватар пользователя edhel edhel 26 апреля 2005 в 16:40

Да, было бы неплохо сделать N-ое кол-во туториалов для создания типичных сайтов на Дрюпале. Как можно проще и обязательно со скриншотами. Если когда-нибудь у меня будет времяя........

Аватар пользователя PG PG 26 апреля 2005 в 20:58

Да вроде бы их и не так уж много бывает (типичных сайтов). Блоги (с рубриками), статейные сайты и форумы.

Всё прочее - лишь сочетание перечисленного в разных долях.

Ну и ТЗ я делал из категорического убеждения что форум надо делать на чем угодно, только не на движке drupal. Поэтому форумную часть я и не упоминал вовсе.

Аватар пользователя PG PG 26 апреля 2005 в 20:53

А по сабжу так никто ничего и не скажет? Неужели "две статьи и две новости" - настолько сложная структура?
.
Может быть тогда кто-нибудь подскажет соответствующую ветку на drupal.org, если на drupal.ru кроме как за деньги никто ничего не делает?

Аватар пользователя edhel edhel 27 апреля 2005 в 5:08

1) Создаем словари "Новости" и "Статьи" и термины в admin/taxonomy.
2) Идем в admin/node/configure и ставим "Количество сообщений на главной странице"=2
3) Идем в admin/node/configure/defaults ("настройки создаваемых документов") и для страницы/page убираем галочку "выдвигать", а для истрии/story ставим эту галочку.
4) Устанавливаем модуль taxonomy_dhtml.
5) В admin/block включаем блоки для словарей новостей и статей.
6) Создаем новости и статьи.

Правда после этого меню с категориями статей будет не совсем так, как на http://drupal.org/handbook. Чтобы оно было разварачиваемым, надо вместо 4-5 помутить с модулем taxonomy_menu. Но у него мне не нравится, что он сразу все категории пихает в основной блок навигации. Чтобы этого не было надо идти и настраивать админ/меню (скрывать ненужные пункты и переносить нужные пункты в другие меню).

Аватар пользователя edhel edhel 27 апреля 2005 в 19:52

menu добавляет в блок "навигация" ссылки на все словари, а когда по ним переходишь, то они разварачиваются (как на drupal.org/handbook).

А dhtml для каждого словаря создает блок, который отображает сразу всю иерархию терминов соответствующего словаря.

Аватар пользователя PG PG 28 апреля 2005 в 14:37

Так, начинаю вопросы по существу.
.
Русской локализацией пока не заморачиваюсь, чтобы не возникало разночтений по терминологии.
.
1) Установил Drupal 4.6 в рабочий каталог. Залил в свежесозданную базу стартовое состояние из дистрибутива. В файле конфигурации сайта задал URL создаваемого сайта и путь к базе данных.
.
2) Зашел на сайт, выбрал "создать нового пользователя", задал админу логин-емайл, получил сообщение "пользователь создан" и сгенерированный пароль, вошел с этим паролем, зашел в настройки профиля и поменял пароль на предпочтительный.
.
3) Первым делом поставил темовый движок PHPTemplate, тему box_grey. Зашел в настройки administer/themes, выбрал тему box_grey. Удалил из каталога тем все прочие темы и все прочие движки.
.
4) Установил модуль taxonomy_menu. Зашел в administer/modules, включил его (заодно включил модуль taxonomy).
.
5) Зашел в administer/categories/add vocabulary. Создал словарь с именем "Новости", в настройках иерархии поставил Single, Required. В типах страниц включил галочку Story и отключил галочку Page.
.
6) administer/categories/list Создал в словаре "Новости" две категории: "Категория новостей 1" и "Категория новостей 2". Каждую с нулевым весом и с предком root.
.
7) Повторил пункты 5 и 6, но с созданием словаря "Статьи" и категориями "Категория статей 1" и "2" соответственно. При создании словаря включил галочку Page и отключил галочку Story.
.
8)administer/content/configure/settings: выводить новости на главной странице по три штуки.
.
9)administer/content/configure/content types: для типа "story" поставил галочку "promoted to front page", а для типа "page" - убрал эту галочку.
.
10) В меню create content/story создал четыре новости "новость 1", "..2", "..3" и "..4", попарно привязав их к категориям 1 и 2. В качестве текста использовал фразу "текст новости 1" с указанием номера новости.
.
11) В меню create content/page создал четыре статьи "статья 1", "..2", "..3" и "..4", попарно привязав их к категориям 1 и 2. В качестве текста использовал фразу "текст статьи 1" с указанием номера статьи.
.
Я всё делаю правильно?
.
.
Результат предельно близок к тому, что я хочу получить (правда иерархический адрес просматриваемой страницы выводится внизу, а не вверху, но это уже исключительно темовые, а не структурные заморочки). Но есть одна вещь, которая меня смущает.
.
В меню Navigation когда я раскрываю словарь "новости", ссылки на подкатегории имеют вид
http://site/taxonomy_menu/1/1
Если щелкнуть по такой ссылке, то меню вполне корректно отрисовывается.
.
Однако когда мы смотрим список новостей, возле каждой из них рисуется ссылочка вроде "( categories: Новостная категория 1 )" и она ведет совсем на другой адрес:
http://site/taxonomy/term/1
Если щелкнуть по этой ссылке, мы видим то же самое, что и по вышеприведенной, кроме одного отличия: меню Navigation схлопывается в полностью свернутый вид. Видны только корневые пункты меню.
.
Как с этим бороться?

Аватар пользователя edhel edhel 28 апреля 2005 в 16:43

Я бы просто убрал эти ссылки в PHPTemplate, ни к селу они вообще. Если хочется оставить, то, пожалуй, без программирования не обойтись.

Аватар пользователя PG PG 28 апреля 2005 в 17:24

Забавно, я думал, что хоть в друпале можно будет для приведения сайта к приличному внешнему виду не лазить в код. (В post-nuke, например, это в принципе невозможно, даже теоретически.)
.
А где именно надо программить? Скажем так: у меня нет уверенности, что правильными являются те ссылки, которые предлагаются в меню. Потому что это ерунда. Модуль taxonomy_menu ставится для отображения дополнительных элементов на страницах, а не для того чтобы вся структура ссылок ехала к чёрту.
.
P.S. Впрочем, ссылки вида term/ имеют куда более хитрую структуру, нежели просто ссылка на определенную категорию. В общем случае, такая ссылка может вести на объединенную ленту с нескольких категорий сразу. Понятно, что в этом случае, показать иерархию меню, ведущее к определенной категории не получится. Но отказаться от ссылок term/ вообще, заменив их каким-то своим синтаксисом - это, как мне кажется, излишне радикальное решение, принятое автором модуля taxonomy_menu.
.
Будет очень обидно, если придется отказаться от этого модуля. Он предельно прост и лаконичен в использовании и настройке.

Аватар пользователя edhel edhel 28 апреля 2005 в 17:56

Имхо вполне нормальное явление с реализацией собственных ссылок у taxonomy_menu. Я, например, для реализации нужной мне навигации и визуализации (region2.krasu.ru) написал модуль, который генерит меню со ссылками на основные разделы (ссылки выглядят как rubric/ID) и отображает как мне надо страницы разделов и статей.

Можно ли это сделать без программирования - не знаю, у меня не получилось (по крайней мере стандартными средствами и модулями taxonomy_*).

Аватар пользователя PG PG 28 апреля 2005 в 18:25

Что же в этом нормального и почему твой пример "пролезания через дырку в заборе" должен служить примером нормальности такого положения?

Хочется через парадный вход все налаживать. В идеале - штатно идущими в комплекте друпала средствами.

Аватар пользователя edhel edhel 28 апреля 2005 в 20:10

Тот же taxonomy_dhtml, taxonomy_menu и проч. писали оттого, что стандартных средств навигации недостаточно. Так же и мне пришлось делать модуль, который бы реализовал нужную мне навигацию для моего проекта. И в Дрюпале есть все средства для этого, и мне это нравится, что я могу без проблем (почти) дописать нужную мне функциональность. Хотя тоже были подобные проблемы (как с этими ссылкам term/xxx), когда приходилось убирать всю лишнюю и ненужную функциональность перекрытием многих стандартных шаблонов и даже ковырянием в исходниках. Например, кнопочку "модерировать комментарии", насколько я помню, можно убрать только правкой стандартной модуля/библиотеки (файл то ли comment.xxx, то ли node.xxx).

Кстати, если нужна такая же навигация к в drupal.org/handbook, то может и сделать это такими же средствами? Там видимо используется модуль book. Я с ним не работал, может получится.

Аватар пользователя PG PG 28 апреля 2005 в 20:19

В отношении статей - очень может быть. Навигация похожа.
.
А вот в отношении новостей - не уверен. Хотя попробую, ты прав.

Аватар пользователя PG PG 2 мая 2005 в 21:46

"Имхо вполне нормальное явление с реализацией собственных ссылок у taxonomy_menu."
.
Неаккуратное решение, как мне кажется.
.
Во первых, модули, рассчитанные на стандартную систему ссылок придется выкинут, либо они не будут корректно работать, либо они будут приводить на ссылки старой нотации (где контент тот же, а вот навигационная система корректно не отрисовывается). В последнем случае неаккуратность заключается еще и в том, что стандартная система адресации будет индексироваться поисковиками.
.
Во вторых, мы теряем кнопочку XML. Конечно, остается еще модуль Syndication, который, если верить описанию, позволяет централизовать все RSS-ленты сайта, сведя их на одну страницу. Но хотелось бы этот способ использовать вместе с кнопочкой на странице конкретной ленты, а не вместо.
.
Так что модуль taxonomy_menu приходится признать некорректным и нежелательным к использованию. Буду копать альтернативные способы.
.
Book module перспективен, но мне кажется, его некорректно применять к новостным лентам.

Аватар пользователя PG PG 28 апреля 2005 в 14:39

"В admin/block включаем блоки для словарей новостей и статей."
.
Этот момент не понял. Он мне не понадобился, но я и не понял - что именно мне надо включать?

Аватар пользователя PG PG 28 апреля 2005 в 20:40

Резюмируя:
.
Основное достоинство Drupal - простота, красота, могучая структура и гигантский потенциал.
.
И это достоинство полностью съедается отсутствием мало-мальски приемлемых автоматических средств навигации (которые штатно вообще отсутствуют - ссылки на любую страницу полагается прописывать в других страницах и в меню вручную). Так? Или я чего-то не понял?
.
И зачем после этого говорить о каком-то могуществе Drupal, спрашивается, если он штатно "все понимает, только сказать не может"? И даже дополнительных нормальных модулей нету?
.
Все похвалы Drupal начинают смотреться довольно странно. Smile