Introtext вместо tv-параметра tags в TagLister
Здравствуйте. Помогите пожалуйста с одним вопросом. У меня в блоге ключевые слова (они же теги) всегда заполнялись в introtext. Я подключил tagLister для создания облака тегов, но работать он хочет только с tv-параметром.
Как заставить tagLister выводить в облако теги не из tv-параметра, а из introtext?
Как заставить tagLister выводить в облако теги не из tv-параметра, а из introtext?
Комментарии: 23
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Вызов облака тегов такой: [[tagLister? &parent=`1` &tv=`tags` &sortBy=`tag` &target=`562` &limit=`50`]], а мне нужно вместо &tv=`tags` — &tv=`introtext`, но с introtext taglister не работает
Код не проверял, но должен быть рабочим.
Создал плагин perenos с кодом:
А вот что делать дальше не знаю)
Если серьезно, этот кусок кода для однократного запуска — он переносит значения из introtext в TV для всех ресурсов сразу.
Плагин надо повесить на событие OnDocFormSave. Его код:
Тоже не проверял.
Код примерно такой:
Только вот он переносит, если сохранить документ, а как сделать, чтобы он разом перенес во всех (около 600) документах?
А работает и код Михаила и код Максима, но опять же только если сохранить ресурс
<?php
$q = $modx->newQuery('modResource');
// Дальше несколько строк с критериями для выборки ресурсов. Например, ресурсы с шаблоном 2
$q->where('template' => 4);
$resources = $modx->getIterator('modResource', $q);
foreach ($resources as $resource) {
$resource->setTVValue('tags', $resource->introtext);
$resource->save();
}
Но выходит ошибка: Parse error: syntax error, unexpected T_DOUBLE_ARROW in
С чем может быть связано?
Ну а дальше я не понимаю, что там)
Для таких же неумех, как я):
Чтобы перенести значение из любого стандартного поля (типа introtext, longtitle, pagetitle и так далее) в tv-параметр нужно:
1. Зайти в репозиторий, скачать и установить дополнение «Console»
2. Зайти в Приложения/«Console» и выполнить следующий скрипт:
где
4 — шаблон, к которому привязан tv-параметр tags
tags — tv-параметр, в который нужно перенести значения из introtext (или любого другого стандартного поля)
introtext — поле, из которого переносится значение в tv-параметр tags
Спасибо еще раз, Вам, Михаил