Всем, привет!
Я новичок в CMS, но решил сразу же начать с Drupal! Потому как слышал хорошие отзывы :).
Я не сомневаюсь что Drupal такое сможет сделать, да и разными путями, проблема не в том что он может, а в том что я знаю.
Стоит простая задача:
есть каталог товаров (просто каталог - цен нет) Несколько видов товаров и у каждого товара есть несколько атрибутов.
Например: Телевизор | Большой | 7 кг | 2005 года
или
Молоко | жидкость | ГОСТ 12.1 | не кислое | белое
Хотелось бы узнать каким модулем это можно и лучше будет сделать в Drupal 4.7.
И как в таком модуле организовать свой вывод, т.е. изменить (настроить свой) формат вывода.
Заранее, спасибо!
Комментарии
Если нужны категории - например, кликаем на "жидкость" и получаем все виды жидкости, то поможет таксономия (она вообще существует для классификации). Если нужны отдельные заполняемые поля - например, размер - то не обойтись без модулей, создающих новые типы контента - CCK или Flexinode. (имейте в виду, что CCK пока еще не совсем доделан).
Что-то я не могу понять что flexinode позволяет делать?
Мне нужен каталог: Наименование : Фото : Краткое описание : Полное описание : Цена : Кол-во и т.д. Каталог должен иметь структурированную форму, т.е. есть группы товара, в группах подгруппы, в подгруппах ещё подгруппы и т.д., а потом товары.
Какой модуль тогда мне лучше всего использовать?
Спасибо за внимание. Я рассмотрел эти модули, они бузусловно полезны! Но видно я не до конца описал задачу:
Есть каталог товаров (без цен и не нужна возможность заказа товаров через инет, просто каталог)
Марка | Год выпуска | Cостояние | Наработка |
---------------------------------------------
M1 | 1995 | удовл | 75% |
M2 | 1998 | хорошее | 55% |
N1 | 2005 | отличное | 25% |
W2 | 2006 | новое | 0% |
по сути это таблица. Хочется, чтобы заказчик не возился там с таблицами в редакторе, а работал в рамках данных таблице.
Запомнил 5 колонок и на выходе сгенерировалась новая таблица. Захотел удалить, изменить или отредактировать - пжл.
Подскажите, пожалуйста какой модуль наиболее подходит под эту задачу.
Спасибо всем, кто отликнулся!
Посмотрите в сторону View. Там есть тип представления данных "таблица".
Flexinode (или аналогичный модуль CCK) позволяют создавать новые типы материалов, а View предоставляет возможности различным образом выводить информацию на экран.
Группы и подгруппы (классификация) - это таксономия.
Всем спасиба за внимание. Я занимаюсь понемногу(сессия), но вопросы задавать обязательно буду!!!
Здрасти!
Просмотрел модули таксономии, taxonomy_dhtml, модуль views все поустанаваливал, потыкал (конечно сразу все не получилось :)),
но пришел к выводу, что я явно не понимаю как и чем сделать что мне нужно...
Еще раз поразмышляем на тему создания каталога:
Есть меню: меню1, меню2, меню3. Пусть меню1 имеет название "Оборудование". При нажатии на пункт "Оборудование" появляется
страницы с оборудованием. Страница представляет собой таблицу (со своими стилями и формой предстваления) в которой оборудование
разделяется на следующие типы: Тип1, Тип2, Тип3. И теперь уже у каждого типа идут конкретные названия оборудования. Причем,
некоторые из них могут быть ссылками на детальное описнаие и фото.
Получается следующее: ну явно напрашивается категоризация оборудования по принципу:
Оборудование (нажали) ТАБЛИЦА
-Тип1
--Модель11
--Модель12
-Тип2
--Модель21
--Модель22
-Тип3
--Модель31
Но проблема в том, что "Оборудование" - это пункт меню. А Тип и Модель - это категоризация по контенту (внутри страницы).
И модель11 может представлять собой 5 столбцов! Название - Характеристика - Срок годности - ... и некоторые из них могут
иметь ссылки на более детальное описание!
Я не понимаю, какими модулями это все категоризовать,потому как конечный лист иерархии является строка в 5 столбцов!!!
И если можно, то хотелось еще узнать как эти данные вывести так как мне надо, т.е. чтобы данные были раскиданы по таблице
с нужной мне цветовой гаммой и типами border'ов.
Всем спасиба! Помогите пожалуйста.
З.Ы. Перелистывал форумы, но так и не нашел четкого и конечного решения, которое помогло бы мне.
З.З.Ы. Если не понятно описал, то могу дать ссылку.
Абстрагируйтесь сначала от того, какими модулями что делается. Представьте себе детально иерархию категорий. Что-то типа вашего:
-Тип1
—Модель11
--- Параметр1
--- Параметр2
--- Параметр3
--- Параметр4
--- Параметр5
—Модель12
-Тип2
—Модель21
—Модель22
-Тип3
—Модель31
Когда структура станет окончательно понятной, смоделируйте ее средствами taxonomy (может быть category удобнее, не знаю - спросите Natalie :-)), т.е. создайте соответствующие словари и термины в них.
Теперь создайте формы представления (виды, views) для разных типов и моделей с помощью модуля Views. Каждый параметр - колонка в табличной форме представления. (Кстати, 5 колонок - это совсем немного. У меня на http://novostroyka-ru.ru/ , к примеру, в таблице по 14-15 колонок и это совсем не предел).
Затем постройте систему меню штатными средствами Drupal (при желании оформите меню с помощью nice_menu или ext_menu). Я полагаю, что система меню будет в общем аналогична той структуре, которую вы создали на первом шаге.
На десерт - доработать "хлебные крошки" (навигационое меню) с помощью taxonomy_breadcrumb, чтобы они помогали пользователю четко понимать, на каком уровне иерархии он сейчас находится.
Спасибо, vadbars. Я обдумаю. А это что перварил за время пока не проверял форум.
Просмотрел кучу форумов и прочитал кучу всяких постов. В голове - каша. Некоторое осознование того, что хочу и как сделал бы, если бы писал руками.
Создать некоторое представление (виртуальное) - n столбцов. Множество связок по n значений хранится где то в БД и не имеет физического адреса типа node/number (т.е. что типа понятия таксономии, которое не является материалом).
Затем, с создаю node/5->equipment которая генерит таблицу (со своей стилистикой) из вот этих вот выше описанных связок по n значений.
Блин, задача вообще стандартная. Самописные сайты так и делаются. Таблица (оборудование) в ней хравнится описание. есил что то сложное то таблицы стараются приводить к нормальной форме. И потом уже на нужной старнице делается
Select что_надо from нужная_таблица, еще одна нужная таблица. А затем это отображается.
Неужели на такое простое решение трубется куча модулей???
Буду благодарен как за совет по модули так и по тому (возможно это будет проще) как встроить свой код в ноду и откуда выдергивать
данные (из служебных таблиц Друпала)
Спасиба!
Ладно, давайте рассмотрим простой пункт меню (по-моему как у Вас на сайте, поэтому. думаю Вы мне поможете). На приведенном
сайте, я нажал на недвижимость http://novostroyka-ru.ru/realty - это в общем то что мне надо (для одного из пунктов меню).
Хочу научиться.
Иерархия
-ТИП1
--Продукт1
--Продукт2
--Продукт3
Все. Каждый из продуктов у меня имеет, допустим 2 атрибута (атрибут1, атрибут2). На выходе я хочу получить следующую таблицу
ПРОДУКТ ---- Атрибут1 ---- Атрибут2
П1 ф1 ф2
П2 а1 а2
Если я правильно понял, Вы предлагаете сделать так:
-ТИП1
--Продукт1
----ф1
----а1
--Продукт2
----ф2
----а2
а потом все это выводить с помощью модуля views. Так?
З.Ы. Как было бы хорошо, если бы Продукт1 был бы "контейнером" так сказать [Продукт1 - ф1 - а1]
Если я вас понял, то вы можете реализовать это так: 1) создать (taxonomy) словарь "ТИПы", в нем термин "типы продукции" и зададим возможные значения этого термина "самолет, вертолет, танк, ракета"; 2) создать тип материалов (например, с помощью модуля CCK), который представляет собой набор полей ф1, a1 (к примеру, "вес, ширина, высота, длина, описание"). Назовем его для ясности, скажем, "product"; 3) указать, что созданный вами словарь относится к (действует для) вашего нового типа материалов.
Теперь при создании нового материала этого типа ("вертолет Черная акула"), на странице редактирования вы получите список полей (вес, длина и т.п.) плюс возможность (или обязанность) указать, к какому из типов продукции его отнести (к "вертолетам" или к танкам, самолетам...).
А с помощью Views вы создаете табличную форму представления всех ваших продуктов:
ТЕХНИКА - ВЕС - ДЛИНА - ШИРИНА - ВЫСОТА - ОПИСАНИЕ
Чер.акула - 1000 - 200 - 100 - 250 - "Красивый, но страшный вертолет"
Белая.акула - 1000 - 500 - 750 - 250 - "Красивый, но не страшный вертолет"
Синяя.акула - 10 - 20 - 10 - 25 - "Некрасивый, но маленький вертолетик"
Да, думаю, что это то, что нужно. Но неполучается увидеть это!
Все сделал как в примере с техникой. Все нормально. Создаю view а таблица не получается, вместо этого просто список
ТИПЫ
-вертолет (2)
-Танк (1)
Наверное я не правильно поля задал. Поля пробовал по разному создавать:
а. Вкладка fileds->add Terms for ТИПы
б. Вкладка fileds->add Terms и в label писал названия столбцы данных типа product (number. weight, text)
Везде и в странице и блоке выстаивл Table view, но таблица никак не получается.
Что не так? Объясните пжл, что вы имели в виду когда говорили в предыдущем посте
>>Теперь создайте формы представления (виды, views) для разных типов и моделей с помощью модуля Views.
>>Каждый параметр - колонка в табличной форме представления.
З.Ы. Блок в меню управление/блоки - активирован (не забыл).
З.З.Ы. Читал примеры на wikidrupallers про view. Тяжело разобраться.
Создали ли вы новый тип материалов (в модуле CCK или Flexinode)? По вашему описанию похоже, что нет. Создайте, иначе вам будут доступны только поля taxonomy.
Процедура создания табличного вида в модуле Views примерно такая:
- В разделе "Basic Information" заполняем поля Name и Decription.
- В разделе "Page" (Страница) ставим галочку на "Provide Page View" (Страничный вид), пишем URL (адрес), по которому будет видна наша страница с таблицей. "ViewType" (Тип вида) выбираем, естественно, "Table View". Зполняем Title (Заголовок), ставим галку на "Use Pager" (если будет много строк в таблице, то таблица разобьется на несколько страниц).
- В разделе "Fields" выбираем последовательно поля из созданного нами типа материалов. У меня это что-то вроде "Текст: Район (field_rayon)", т.е. текстовое поле "Район" имеет название field_rayon. После добавления поля можно написать, как оно будет называться в таблице (label), будет ли возможность сортировать таблицу по данному полю и сортировка по умолчанию (увыбание и возрастание).
Еще можно добавить в таблицу поля других типов, например "Материал: Заголовок" (Node: Title). Оно удобно тем, что там можно поставить опцию "With updated mark" и все новые строки будут помечаться словом или значком "New!". Если нужно, добавьте поля "Время размещения" или "обновления", "Автор" и т.п. Если нужна ссылка на категорию ("танки", "вертолеты") - добавьте поле "Taxonomy: Terms for ...".
- В разделе "Filters" рекомендуется добавить фильтр "Node: Published"-"Equals"-"Published", чтобы показывать только разрешенные к публикации материалы. В моем случае добавлен еще фильтр "Taxonomy: Terms for"-"Is One Of"-"Долевка/Вторичка", т.е. показывать только материалы из определенных категорий (у вас, наверное, будут "вертолеты").
Все, делаете Save и эта таблица становится доступной по тому URL, который ей назначили выше.
Там еще мноджество настроек и доп.возможностей, но вам нужно разобраться с основным пока. Блоки с таблицей делаются аналогично (в разделе Block).
Я все делал как Вы говорили. И я создал(flexinode) новый тип материала. Назвал его product. Он состоит из 3 полей (пока)
и созданный словарь ТИПы я указал, что он моего типа ПРОДУКТ
и создал пару нодов типа ПРОДУКТ(привязал их к вертолету и самолету).
Но в разделе FIELDS у меня тока
Node:Title
Node:Create/Update time
Node:Type
еще пару с node
Taxonomy:All terms
Taxonomy:Terms for ТИПы
Taxonomy:Term
и т.д.
Очень странно, но у меня нету вообще таких частных полей. Все какие то общие. Что делать?
Сегодня новый день... Всем привет! И снова разбираюсь с Друпал :).
Мне кажется что проблема с взаимодействием flexinode и view, возможно где то не выставил какую то опция.
Попробовал использовать CCK - то во view сразу появились поля из созданного мне типа. НО CCK для новичка
по сложнее будет, да и flexinode по надежней (обкатанней) так сказать. Поэтому, хотелось бы все таки понять в чем дело.
Блин, создал таксономию
ТИПЫ
-вертолеты
-танки
-самолеты
создал новый тип материала с помощью ССК. Добавил в категорию ТИПЫ/танки 2 танка.
Настроил View, добавил поля filed_name и field_description. Пробовал устанавливать
и отключать фильтр по категории танки, но все равно при отображении страницы выдает
warning: Invalid argument supplied for foreach() in ...\www\modules\views\views.module on line 1372.
Т.е. нет содержимого для отображения таблицы. Что такое, в чем причина?
Это сообщение выдается иногда (array вроде-бы пустой). Обычно можно игнорировать, поскольку это не error (ошибка), а warning (предупреждение).
А список танков-то выдает?
Нет :(, в том то все и дело...
Т.е. у вас созданы 2 материала типа "product", относящихся к категории "танки"?
Оба материала опубликованы (стоят галочки "опубликовать")?
Да, у меня создано 2 материала типа "продукция". Каждый материал приктреплен к категории ТИПы->танки. В настройках
публикации у меня стоит галочка опубликовано, но я снял галку на отображать наглавной странице. Указав адрес node/53, я заходя
на эту страницу прекрасно наблюдаю описания (данные в созданных мною полях) моего танка. Но когда вкл view,
то он говорит..., собственно, что в пред посте описано.
З.Ы. Я просто уже не зна в чем прикол, потому как уже так хорошо с Вами разобрали эту тему, что просто...
Блин, вообще... Я все снес!! Поставил все заново. И что? Ну все сработало :).
Vadbars спасибо Вам большое! За помощь и терпение!!!
Так, мы теперь умеем создавать таблицы. Но это лишь певрое. У меня есть еще такие вопросы:
1. Созданные нами ноды (танки) они видны по адресу например node/50, node/51. Как сделать чтобы они были не видны.
Т.е. как бы отключить их, потому как мы предоставлеям "глобальное" просматривание через страницу с помощью view.
Через не опубликовано? Это никак не отразится в дальнейшем?
2. Можно ли организовать на странице просмотр view+дополнительный текст (поля шапка и подвал не подойдут - текста много
и он темизирован). Из вариантов, можно попробовать с помощью блоков и расположить их с весами по порядку.
А есть еще варианты (важна возможность темизации)?
3. Темизация (материалы есть, попробую по разбираться). Но за любые подсказки буду ОЧЕНЬ благодарен
4. На вашем сайте http://novostroyka-ru.ru/realty например поля АДРЕС являются ссылками. Как вы из делали?
Добавлялм поле ссылка в ССК? Мне это очень нужно, так как мне бы надо чтобы не все "адреса" имели ноду. Т.е.
у которой есть описание, то название ссылка. А которое не имеет - то просто текст. Как бы завсети такую опцию, которая
указывала, что это нода или нет. Как вариант можно завести еще одно поле, в котором прописывать когда надо адрес ссылки.
Выскажите пожалуйста свое мнение.
Очень благодарю!
1. Чем вам так не угодило наличие адреса у материалов? Вы можете, действительно, убрать их с публикации (не забудьте только выключить фильтр в View по критерию публикации). Можете заменить /node/123 на что-нибудь вроде /abracadabra/123, "чтоб никто не догадался" (это делается в "Общих настройках сайта").
Но зачем? "Доктор, скажите, я жить буду? - А смысл?"
2. Оформлением сопроводительного текста я особенно не занимался, но гляжу на это дело оптимистично, поскольку можно поставить шапке и подвалу тип форматирования "Full HTML" и изукрасить текст так, как вам нужно.
Кроме того, проскакивало сообщение, что можно объединять несколько видов (views) на одной странице (поищите, кажется, на drupal.org). Посмотрите также модуль insert_view (http://drupal.org/project/insert_view) - он позволяет вставлять виды в тело страницы. Т.е. вы можете пойти обратным путем - создать нужную вам страницу с оформленным текстом, а потом навтыкать туда таблиц, созданных во Views.
Разберетесь с этим модулем - напишите здесь. Всем интересно и полезно, вам - почет и уважение
4. Поле "Адрес" является ссылкой поскольку оно - типа "Terms for ...".
На самом деле это слабое место (создание ссылок из любого поля), но можно воспользоваться "темизацией" полей CCK (см. /modules/cck/theme, там это описано, правда по-английски).
Кстати, из всех типов полей в CCK я пользуюсь только типом "текстовое поле". Пока этого хватало, за исключением потребности в типе "изображение" (с закачкой файла на сервер, изменением размера картинки и миниатюры (thumbmnail)).
Вот вот тип изображение..... как вы решили эту задачу?
Спасибо за советы. Попробую поразбираться. Вы говорили:
>>На самом деле это слабое место (создание ссылок из любого поля), но можно воспользоваться “темизацией” полей CCK
Я хотел у Вас спросить следующее: Что позволяет делать темизация? Я просто думал, что она облдает лишь механизмом
придавать данным "дизайнерское" обрамление (раскрашивать, просто говоря). А она может еще и функциональность менять?
Т.е. из какого текста я захочу (по определенному критерию выбора) могу сделать ссылку, а могу и нет?
Как то пока не понимаю мощи темизации... Объясните пжл.
Да, оформление полей в CCK очень гибкое и довольно удобное. Прочитайте об этом по-русски здесь - http://wiki.drupallers.ru/Perevody/Modul'CCK/Temizacija/Readmetxt Это перевод файла /modules/cck/theme/readme.txt
Суть в том, что вы можете получить значение любого CCK-поля как переменную $field_имяполя[0]['view']. Например, вы создали поле $field_russkojepole. Теперь вы можете вывести это значение в шаблоне материала как <?php print $field_russkojepole[0]['view']; ?>.
А что мешает вам вывести его как ссылку? Вроде такой, например:
<a href="http://microsoft.com/" title="Привет, дядя Билл!"><?php print $field_russkojepole[0]['view']; ?></a>
Здравствуйте. Хочется сделать так, чтобы в вертолет1 имел описание (т.е. у него была ссылка на страницу где он представлен),
а вертолет2 - нет. Попробовал создать в ССК полу Web Url (Text Field with URL validation). Views генерит таблицу и оно
выглядит как простой текст (ну как и сказано), а я так недеялся)). Тогда я попробовал переписать функцию представления вида
function phptemplate_views_view_viewvertolet($view, $type, $nodes)
{
...
$cell['data'] = "Вертолеты";
/* попробовал просто текст для начала. Т.к. в любой момент можно $value добавить */
}
Если туда пишу всякие там то работает без проблем. А вот якорь вообще никак не всопринимает!!!! Что делать?
Таксномия Terms for (как у Вас на http://novostroyka-ru.ru/realty ) мне не подходит. Так как не все термины в
таксономии у меня имеют свою собственную ноду.
Вот не зна как решить проблему. В голове одна мысль, т.к. категории являются материалом (в отличии от таксономии), то
возможно там можно будет как то указать что у этого термина нету ноды.
Посоветуйте пожалуйста.
P.S. якори профильтрует, поэтому словами.
Здравствуйте. Хочется сделать так, чтобы в вертолет1 имел описание (т.е. у него была ссылка на страницу где он представлен),
а вертолет2 - нет. Попробовал создать в ССК полу Web Url (Text Field with URL validation). Views генерит таблицу и оно
выглядит как простой текст (ну как и сказано), а я так недеялся)). Тогда я попробовал переписать функцию представления вида
function phptemplate_views_view_viewvertolet($view, $type, $nodes)
{
...
$cell['data'] = "<a href=\"node/22\">Вертолеты</a>";
/* попробовал просто текст для начала. Т.к. в любой момент можно $value добавить */
}
?>
Если туда пишу всякие там то работает без проблем. А вот якорь вообще никак не всопринимает!!!! Что делать?
Таксномия Terms for (как у Вас на http://novostroyka-ru.ru/realty ) мне не подходит. Так как не все термины в
таксономии у меня имеют свою собственную ноду.
Вот не зна как решить проблему. В голове одна мысль, т.к. категории являются материалом (в отличии от таксономии), то
возможно там можно будет как то указать что у этого термина нету ноды.
Посоветуйте пожалуйста.
Офигительное спасибо!!!!..
как раз такая задача стоит.....это полностью ее решает.
достойно написания ноуту.