Cсылки на терм для CCK Taxonomy

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

Аватар пользователя vedariy vedariy 8 августа 2007 в 13:14

Здравствуйте!
есть тип данных - к примеру Одежда
У этого типа есть поле CCK Taxonomy - "Материал верха", привязанное к терминам словаря "Материалы" (каждый термин - какой либо материал одежды - Плащевка, Полиэстер, ХБ, и т.п.)
При добавлении товара "Одежда", выбираю нужный мне материал верха, сохраняю ноду.
В итоге получаю в теле ноды строку например:
Материал верха: Полиэстер
Вопрос - как сделать чтобы "Полиэстер" был не обычным текстом, а ссылкой на соответствующий ему термин?

Комментарии

Аватар пользователя vedariy vedariy 8 августа 2007 в 17:25

Попробавал сделать через Alinks, вручную прописывая ссылку, но и alinks не стал работать с CCK полем, хотя в body текст "Полиэстер" замечательно меняется на ссылку.
Может быть есть какие нибудь мысли по этому поводу?

Аватар пользователя Piyavkin Piyavkin 8 августа 2007 в 21:53

Здравствуйте!
Расскажите, а как Вы реализовали выбор терминов словаря отдельным полем?

У меня что-то подобное реализовано 2-мя способами:
1. С помощью таксономии:
1) Создал CCK тип ("Одежда");
2) Создал словарь ("Материал") и привязал его к указанному типу;
3) При создании нода данного типа с меткой $название_словаря (т.е. "Материал") появляется выпадающий список, в котором перечисляются все содержащиеся в словаре термины;
4) При отображении выбранный термин отображается как ссылка (однако, уже без названия категории (то бишь, имени словаря), но наверно это можно поправить с помощью шаблона нода).

Тут проблема, скорее, как от этих ссылок избавиться (т.к. у меня они дублируются в меню и в брэдкрумбс). : (

2. Без таксономии:
1) Создаем CCK тип ("Материал");
2) Создаем CCK тип ("Одежда") и при создании создаем поле типа Node Reference а в качестве нодов для него указываем только CCK тип "Материал";
3) При создании нода типа "Одежда" появляется выпадающий список, в котором перечисляются все ноды типа "Материал";
4) При отображении нода типа "Одежда" поле типа Node Reference будет отображаться как ссылка на соотв. нод типа "Материал".

Здесь, однако, могут возникнуть траблы с навигацией (по крайней мере, я не допер, как новосозданные ноды автоматически позиционировать в меню, не прибегая к ручному выбору или к таксономии... : ( Однако Вам это может и не понадобиться).

Аватар пользователя vedariy vedariy 9 августа 2007 в 12:15

Спасибо за ответ.

У меня выбор реализован так:

у меня есть словарь Материалы с терминами к примеру Оксфорд, Кордура, Кожа, Полиэстер, Полиэфир.
Настройки словаря:
Тип:Material,
Иерархия: Множественная,
материал обязан иметь термин в словаре
множественный выбор терминов

У меня есть словарь Каталог с терминами : Одежда, Обувь, Маскировка, Снаряжение
Настройки словаря:
Тип:Clothes, Footwear, Camouflage, Outfit
Иерархия: Множественная,
материал обязан иметь термин в словаре

Есть тип материала "Clothes(Одежда)".
У этого типа в том числе определён CCK поле "Материал верха"(field_clothes_cover). Тип этого CCK поля - CCK taxonomy. Настройка этого поля - Элемент: Материалы (словарь)

В итоге, при добавлении ноды типа Clothes (Оджеда) появляется Listbox-поле выбора Материал верха с элементами Оксфорд, Кордура, Кожа, Полиэстер, Полиэфир.

После добавления ноды, часть ноды имеет вид
......
Материал верха:
Оксфорд
.....
При этом Оксфорд ссылкой не является.;(

Теперь вопрос по Вашему комментарию - какие именно типы у Ваших CCK полей?

Первый вариант - если я правильно понял - с привязкой Одежды к Материалам через настройки словаря Материалы (разрешения типа Одежда) - я пробовал - но меня смутила некая смысловая разорванность - это не одежда часть материала, а материал - составная часть одежда. Кроме материала верха есть ещё ряд других материалов - подклады и тп., и отображать их как категории ноды не хотелось бы,. по смыслу они являются частью описания модели одежды (ноды), они идут наряду с такими характеристиками как наличие кармано, тип застёжки, наличие и вид капюшона и т.п. - то есть типично CCK-йных полей.

Второй вариант - не пробовал - не совсем понятно.
В типе материала Одежда создавать ещё CCK-поле Одежда?? И вопрос - в Node Reference есть возможность привязаться к конкретному словарю - хотя ладно счаc попробуем Smile

Аватар пользователя Piyavkin Piyavkin 10 августа 2007 в 21:21

"Тип этого CCK поля - CCK taxonomy."

Странно... а у меня нет такого типа поля... : (

"какие именно типы у Ваших CCK полей?"

Любые из стандартного набора: Node Reference, Integer, Decimal, Text, User Reference, Image. Какие именно поля не должно играть особой роли.

"меня смутила некая смысловая разорванность - это не одежда часть материала, а материал - составная часть одежда. Кроме материала верха есть ещё ряд других материалов - подклады и тп., и отображать их как категории ноды не хотелось бы,. по смыслу они являются частью описания модели одежды (ноды), они идут наряду с такими характеристиками как наличие кармано, тип застёжки, наличие и вид капюшона и т.п. - то есть типично CCK-йных полей."

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

Аватар пользователя vedariy vedariy 9 августа 2007 в 12:44

Попробовал второй вариант - работает,. показывает ссылки,. но соответственно на Ноды. В принципе лучше чем ничего - можно и так, хотя конечно хотелось бы чтобы ссылки были ссылки на термин ( к примеру Материала типа Оксфорд может быть несколь разновидностей. А в 1 модели могут быть использованы любые из них.). Но всё равно спасибо - открыл для себя NodeRefernce - полезная вообще штука:)

Аватар пользователя Piyavkin Piyavkin 10 августа 2007 в 21:27

Попробовал второй вариант - работает,. показывает ссылки,. но соответственно на Ноды. В принципе лучше чем ничего - можно и так, хотя конечно хотелось бы чтобы ссылки были ссылки на термин ( к примеру Материала типа Оксфорд может быть несколь разновидностей. А в 1 модели могут быть использованы любые из них.).

Ссылка на термин (страница термина) выдаст список нодов отнесенных к этому термину и к подтерминам (на заданную глубину). Если Вам нужен такой список, Вы можете создать его в виде блока view и разместить на странице нода Материала.