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

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

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

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

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

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

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

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

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

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

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

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

____________

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

Комментарии

Аватар пользователя PG PG 0

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

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

22 апреля 2005 в 21:54

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

--
Axel,
www.axel.drupal.ru

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

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

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

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

26 апреля 2005 в 21:02

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

27 апреля 2005 в 19:06


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


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


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


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


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


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


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


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


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

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

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

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

28 апреля 2005 в 17:36

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

26 апреля 2005 в 14:41

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

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

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

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

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

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

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

26 апреля 2005 в 20:53

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. Но у него мне не нравится, что он сразу все категории пихает в основной блок навигации. Чтобы этого не было надо идти и настраивать админ/меню (скрывать ненужные пункты и переносить нужные пункты в другие меню).

27 апреля 2005 в 5:08

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

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

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

Так, начинаю вопросы по существу.
.
Русской локализацией пока не заморачиваюсь, чтобы не возникало разночтений по терминологии.
.
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 схлопывается в полностью свернутый вид. Видны только корневые пункты меню.
.
Как с этим бороться?

28 апреля 2005 в 14:37

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

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

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

28 апреля 2005 в 17:24

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

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

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

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

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

28 апреля 2005 в 18:25

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

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

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

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

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

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

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

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

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

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

28 апреля 2005 в 20:40