вывод анонсов сообщений на страницу

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

Аватар пользователя ira55 ira55 15 января 2009 в 1:44

Здравствуйте, каким образом можно автоматизировать вывод анонсов сообщений на конкретных страницах (кроме главной)?

Создаю страницы:
mysite.ru/about
mysite.ru/home
mysite.ru/work

Создаю запись, у которой появляется свой путь mysite.ru/node/4
В настройке публикации можно установить только "Поместить на главную"
Мне же нужно иметь возможность поместить эту запись на одну из указанных страниц.
Как этого добиться, чтоб сохранить название страницы?

В идеале хотелось бы даже так:
mysite.ru/home
mysite.ru/home/myhome
mysite.ru/home/yourhome

mysite.ru/work
mysite.ru/work/day
mysite.ru/work/night

Все созданные записи помещаю в соответствующую директорию меню, а именно:
Основное меню
-Общая информация
-Дом
--Интерьер
--Уют
--Цветы
-Работа

Но эффекта от этого никакого, а хотелось бы иметь возможность вывести в соответствующий блок меню конкретной страницы. И делать это не каждый раз при добавлении какой-то информации, а автоматически.
Помогите пожалуйста.

Комментарии

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 января 2009 в 2:06

1. Поставить модуль cck;
2. Создать с его помощью для нужных типов нод чекбоксы «показывать в about», «показывать в home», «показывать в work» и т.п.;
3. Поставить модуль views;
4. Создать с его помощью «представления» в виде страниц, на которых отображаются анонсы нод (фильтровать ноды по чекбоксам, созданным в cck) ;
5. Дать этим «представлениям» адреса /about, /home, /work;
6. С радостью убедиться, что всё работает;
7. Сказать «Спасибо, помогло»;
8. Добавить в заголовок топика «Решено»;
9. Наслаждаться жизнью.

Аватар пользователя direqtor direqtor 15 января 2009 в 3:31

А может просто привязывать к нодам термины таксономии из словаря? Каждый термин - это одна из вышеуказаных страниц.

Аватар пользователя ira55 ira55 15 января 2009 в 3:52

ingumsky@drupal.org
Спасибо большое, большую часть работы уже осилила. Теперь разбираюсь с модулем views и осмысливаю пункт 4 и 5 Smile

Тема пока не закрыта, но надеюсь что завтра доделаю и скажу - РАБОТАЕТ Wink
Еще раз спасибо!

direqtor
это же совсем не то что я спрашивала. все должно быть красиво и работоспособно Smile

Аватар пользователя direqtor direqtor 15 января 2009 в 4:47

"ira55" wrote:
Основное меню
-Общая информация
-Дом
--Интерьер
--Уют
--Цветы
-Работа

Создаете словарь с такой иерархией для нужного вам типа материалов. Создаете синонимы адресов, например если у термина Интерьер страница taxonomy/term/5, ставите ему в соответствие синоним home/interior.

Связка модулей pathauto+transliteration+token+custom_breadcrumbs поможет вам задать автоматические адреса материалов нужного вида (в названием ноды в пути) и красивую навигационную строку.

Что-еще? Если в разделе Дом вверху страницы хотелось бы подпункты Интерьер, Уют, Цветы, то это делается несложным сниппетом в шаблоне страницы.

Конечно, Views и CCK здесь дадут куда больше возможностей.

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 января 2009 в 14:23

ira55
В том, что касается пунктов четыре и пять всё достаточно просто:
1. Добавляете новое представление, открыв www.example.net/admin/build/views/add;
2. Даёте ему имя, например, «about» и переходите к созданию самого «представления»;
3. В самой левой колонке выбираете «страница» и нажимаете «Add display»;
4. Выбираете эту самую «Страницу» и редактируете её «Basic settings»;
5. Заголовок: <Ваш заголовок для страницы about>, Style: Unformatted, Row style: Материал, Use pager: Да, Items per page: 10, ... Empty text: <Текст, если на странице ничего нет>;
6. Редактируете «Page settings» — Путь: <Путь к странице относительно www.example.net, в нашем случае — about>, Меню: <Если должен быть доступ к странице из меню, указываем, как он производится>;
7. Переходим к третьей колонке — в «Sort criteria» нажимаем на плюсик и добавляем «Материал: Дата создания» (и делаем обратную сортировку), в «Фильтрах» добавляете «Материал: Тип» (и указываете, материалы каких типов будут отбираться), а также «Содержимое: показывать в about» (и указываете «Да»);
8. Сохраняете «представление»;
9. Смотрите страничку www.example.net/about;
10. Наслаждаетесь жизнью.

Аватар пользователя ira55 ira55 15 января 2009 в 20:54

Не пойму что упустила Beee

1. Модули Views и CCK установлены.
2. /admin/content/types/add - добавляем новый тип содержания:
- Заметка для страницы PRACTICE
- for_practice
- Материал должен отражаться на странице "Практики", расположенной по адресу http://myhome.ru/practice
- изменить, manage fields, удалить
3. /admin/build/views/add - имя представления practice, View type: Материал
4. Основные настройки:
Имя: Страница Практики
Заголовок: Нет
Изменить настройки этого стиля
Стиль: Unformatted
Изменить настройки этого стиля
Стиль строки: Материал
Использовать AJAX: Нет
Постранично: Да
Items per page: 10
Уникальность: Нет
Доступ: Без ограничений
Exposed form in block: Нет
Заголовок: Нет
Подвал: Нет
Пустой текст(выводится при пустом представлении): Filtered HTML
Тема оформления: Информация
Настройки страницы
Путь: practice
Меню: Без меню

5. Sort criteria
Материал: Дата создания убыв.

6. Фильтры
Материал: Тип раскрыт
Материал: Тип = Заметка для страницы PRACTICE

7. Нажимаю предпросмотр - анонс нужной записи отображается внизу этой страницы редактирования, а под ним такая таблица:
Query

SELECT node.nid AS nid,
DATE_FORMAT((FROM_UNIXTIME(node.created) + INTERVAL 7200 SECOND), '%Y%m%d%H') AS node_created_hour
FROM node node
WHERE (node.type in ('for_practice')) AND (node.type in ('for_practice'))
ORDER BY node_created_hour DESC

Заголовок
Путь practice
Query build time 12.27 ms
Query execute time 0.15 ms
View render time 4.56 ms

8. Перехожу на страницу - там пусто Sad

9. Возможно дело в /admin/content/types/fields ? Пишет "No fields have been defined for any content type yet."
И как тогда заполнять /admin/content/node-type/for-practice/fields

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 января 2009 в 22:08

Подождите, давайте разберёмся, что именно Вы хотите получить в итоге. А то я уже запутался -) И скажите сразу сколько вы планируете различных разделов (тематик) для сбора новостей? Если их будет много, вполне вероятно, что пользоваться таксономией (совет direqtor) будет даже удобнее.
1. Вот Вы зачем создаёте новые типы страниц? Чем у вас реально будут отличаться страницы, собираемые на странице www.example.net/about от www.example.net/work? Какими-то определёнными дополнительными полями? Или они все будут одинаковыми заметками (story), для которых авторы будут указывать заголовок и текст, но просто с разным содержимым?
2. Вы хотите сделать, чтобы каждая запись могла отображаться только на странице /about, например, а на странице /work — нет? Или будут страницы, которые будут попадать и в /about, и в /work?

Теперь вопросы по тому, что именно Вы описали в предыдущем сообщении.
1. После создания типа материала «for_practice» вы создали хотя бы одну ноду такого типа?
2. После установок представления, описанного у Вас в пунктах 3-6, и знакомства с предпросмотром (п.7) нажимаете ли вы «сохранить»?

Аватар пользователя ira55 ira55 15 января 2009 в 22:41

ingumsky@drupal.org, спасибо за внимание к моему вопросу Smile Предыдущий ваш пост очень помог Smile

Для начала отвечу на вопросы:
1. Конечно, одну создала Smile Именно она отображалась при использовании "Предпросмотра". Я, правда, создала сначала новые типы материала, потом несколько раз переустанавливала модуль - но все ранее созданное сохранилось, поэтому создавать заново ничего больше не стала. Только переименовала "practice" в "for_practice", чтобы исключить путаницу в одинаковых названиях типа материала, названии страницы и названии представления.
2. Могла забыть, но не забыла Smile Неоднократно возвращалась к сохраненному профилю, пыталась включить/отключить дополнительные настройки - но ничего. В итоге все вернула как вы сказали, но так и не работает.

Что именно я хочу получить в итоге? В итоге я хочу получить 5 страниц (с обозначенными выше адресами), на каждой из которых будут размещаться анонсы уникальных заметок (т.е. на других страницах этого сайта отображение таких записей больше не планируется). В общем, прототип стандартной главной страницы.

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

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

Аватар пользователя ira55 ira55 15 января 2009 в 22:48

Вот, только что удалила существующее представление и попыталась прописать новое, но при создании страницы выдало таблицу:

* Display "По умолчанию" uses fields but there are none defined for it or all are excluded.
* Display "Страница" uses fields but there are none defined for it or all are excluded.
* Display "Страница" uses a path but the path is undefined.

Аватар пользователя ira55 ira55 15 января 2009 в 23:12

Создала все заново, в предпросмотре работает - на странице ничего нет. Ошибки пока не выдает Smile

P.S. Добавила еще одну запись. В предпросмотре теперь 2 Smile

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 января 2009 в 23:14

Ага... Хм-м-м... Понимаю, что вы где-то небольшую ошибку допустили и потому не работает, а так всё сделали правильно...

Я могу предложить Вам попробовать дать мне доступ к управлению, а я попробую посмотреть, в чём именно ошибка и поправить (если смогу, конечно). Это, правда, не самый корректный вариант давать доступ к управлению чужому человеку, но мне можно — я хороший на самом деле -)

А ещё неплохо бы сначала глянуть на сам сайт — может визуальный осмотр что-нибудь даст?

PS Если решитесь дать мне доступ к сайту, можете скинуть информацию, заменив в моём здешнем нике drupal.org на gmail.com — торжественно клянусь использовать эти данные только для того, чтобы помочь Вам -)

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 января 2009 в 23:55

А как Вы создавали страницу, которой дали алиас /practice? У Вас на сайте создана нода http://www.example.net/node/3, которой дан псевдоним /practice — в ней-то и проблема. Удалите эту ноду и всё появится. Я для примера заменил в настройках представления «Путь: practice» на «Путь: practice2» и теперь по адресу http://www.example.net/practice2 присутствует как раз то, что и должно. А создавать отдельные ноды для /practice /work и др. не надо — нужно только представления сделать.

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 16 января 2009 в 0:05

Не за что — на здоровье! Я сам не так уж давно работаю с Друпал, так что по ходу дела я просто повторил то, с чем сам совсем недавно познакомился -) Вам спасибо тоже -) Можете удалять аккаунт, который для меня создавали, чтобы у меня соблазна не было — да и мало ли кто заберётся в мою почту -)

Аватар пользователя nicklas@drupal.org nicklas@drupal.org 31 марта 2009 в 21:45

Я уже схожу с ума, перечитал все факи, проблема в следующем:

1) При создании нового представления(Views), чтобы я не делал, убирал-добавлял опции, появляется надпись в красной табличке:

Display "По умолчанию" uses fields but there are none defined for it or all are excluded.

2)Соответственно при добавление разных типов вывода (страница,блок) появляется еще одна такая красная табличка:

Display "Блок" uses fields but there are none defined for it or all are excluded.

И эта предупреждающая надпись не позволять сохранить представление.

Оно появляется после любого изменения.

Прошу помощи.

Аватар пользователя nicklas@drupal.org nicklas@drupal.org 31 марта 2009 в 23:41

Страшно извиняюсь перед теми кто потратил время на чтение моего вопроса Smile Я не знал тонкости создания представления, оказалось, что сначала надо все настроить в "по умолчанию", а потом уже добавлять тип вывода. I`m crazy Smile

Аватар пользователя iT iT 6 апреля 2009 в 13:31

Спасибо за топик и ответы!
У меня эти слова на красном фоне выдавались потому, что я забыл выбрать Row style: Материал и пытался сохранить с Row style: Поля
;]