Взял за основу два файла tokenSTARTER, переименовал, сделал отдельный модуль, разместил в modules
собрал в массив values свое значение для своего токена
настроил использование своего токена в насройках pathauto для пути к ноде
по логу видно что путь собирается кладется в массив, но при создании самого пути в pathauto
произошло что то странное, значение моего токена начисто исчезло.
сижу размышляю
в функцию _pathauto_set_alias
алиса передан без значения моего токена
в чем дело не понимаю
при этом в функции
pathauto_create_alias
строка с моим значением токена создается но потом чудесным образом исчезает в недрах pathauto
Что я не так делаю?
Комментарии
Сам разобрался.
В $object функции hook_token_values($type, $object = NULL) передается структура описания node.
Но в одних случаях структура узла для $type=='node' определена полностью, а при других вызовах не полностью.
Другим словами в одних случаях $object->taxonomy содержит полное описание, а в других укороченное когда только tid есть но нет полей name и description термина.
Приходится снова делать вызов node_load, чтобы структура содержала полное описание.
Только теперь не знаю как разделитель / вернуть в качестве значения токена, его переписывают.
С этим тоже разобрался, чтобы слэши не вырезались надо чтобы token-ы заканчивались на path, path-raw или alias, тогда pathauto оставить разделитель не тронутым.
node_load нужно использовать только тогда, когда это действительно нужно
А какой выход?
Ну, получить только термины ноды - taxonomy_node_get_terms()
Вы прекрасно сами разобрались:)
а вообще используйте вызов node_load, если что, даже повторно и проблем не возникнет.
Пока при создании или обновлении мои токены используются не страшно, но если откуда-то из другого места начнут дергать, то придется оптимизировать и грузить только термины.
Закрываю.