Автосоздание термина таксономии при создании материала и привязки его к созданному термину

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

Аватар пользователя vert4 vert4 11 февраля 2018 в 1:42

Доброго времени суток!

Стоит вроде не сложная задача. При создании типа материала, создавать термин таксономии с тем же именем, что и создаваемый материал и привязать этот тип материала к созданному термину таксономии.
Использую RULES
пишу правило
событие: после сохранения нового материала
действие: создать термин таксономии в словаре - это действие срабатывает выполняется
действие: назначить полю "ссылка на термин" значение созданный термин:имя

вот правило:

"ON" : { "node_insert--org" : { "bundle" : "org" } },
    "DO" : [
      { "entity_create" : {
          "USING" : {
            "type" : "taxonomy_term",
            "param_name" : "[node:title]",
            "param_vocabulary" : "orgs"
          },
          "PROVIDE" : { "entity_created" : { "entity_created" : "\u0421\u043e\u0437\u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c" } }
        }
      },
      { "data_set" : {
          "data" : [ "node:field-term-orgs:name" ],
          "value" : "[entity-created:name]"
        }
      }

Вот и не хочет созданный материал привязываться к созданному термину таксономии.
Что не так? Подскажите плиз, кто знает

Лучший ответ

Аватар пользователя bumble bumble 11 февраля 2018 в 8:06
1

vert4 wrote:

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

После этого нужно принудительно сохранить термин.

vert4 wrote:

действие: назначить полю "ссылка на термин" значение созданный термин:имя

Нужно не имя назначать, а сам термин: node:field-term-orgs -> entity-created

Вот изменения приложенного Вами куска экспорта:

"ON" : { "node_insert--org" : { "bundle" : "org" } },
    "DO" : [
      { "entity_create" : {
          "USING" : {
            "type" : "taxonomy_term",
            "param_name" : "[node:title]",
            "param_vocabulary" : "orgs"
          },
          "PROVIDE" : { "entity_created" : { "entity_created" : "\u0421\u043e\u0437\u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c" } }
        }
      },
      { "entity_save" : { "data" : [ "entity-created" ], "immediate" : "1" } },
      { "data_set" : {"data" : [ "node:field-term-orgs" ], "value" : "[entity-created]"}}

Комментарии

Аватар пользователя bumble bumble 11 февраля 2018 в 8:06
1

vert4 wrote:

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

После этого нужно принудительно сохранить термин.

vert4 wrote:

действие: назначить полю "ссылка на термин" значение созданный термин:имя

Нужно не имя назначать, а сам термин: node:field-term-orgs -> entity-created

Вот изменения приложенного Вами куска экспорта:

"ON" : { "node_insert--org" : { "bundle" : "org" } },
    "DO" : [
      { "entity_create" : {
          "USING" : {
            "type" : "taxonomy_term",
            "param_name" : "[node:title]",
            "param_vocabulary" : "orgs"
          },
          "PROVIDE" : { "entity_created" : { "entity_created" : "\u0421\u043e\u0437\u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c" } }
        }
      },
      { "entity_save" : { "data" : [ "entity-created" ], "immediate" : "1" } },
      { "data_set" : {"data" : [ "node:field-term-orgs" ], "value" : "[entity-created]"}}
Аватар пользователя vert4 vert4 11 февраля 2018 в 11:06

Спасибо! Насчет сохранить не подумал )))

bumble wrote:

Нужно не имя назначать, а сам термин: node:field-term-orgs -> entity-created

Так я то же пробовал, но не вышло. Видимо потому что не сохранял термин. Пробую Ваш вариант правила.