За да получите списък с етикети, разделени със запетая, бих препоръчал да използвате командния ред, вградената Конструктор на AEM заявки, curl
и jq
(https://stedolan.github.io/jq/).
Общият подход:
- Използвайте конструктора на заявки, за да създадете JSON представяне на
/etc/tags
- Използвайте
curl
, за да "изтеглите" JSON
- Използвайте
jq
, за да „анализирате“ JSON и да създадете CSV
Пример:
Експортирането на всички тагове под /etc/tags
с техния път, заглавие и описание ще изглежда така:
curl \
--user admin:admin \
--silent \
"http://localhost:4502/bin/querybuilder.json?p.hits=selective&p.limit=-1&p.properties=jcr%3atitle%20jcr%3apath%20jcr%3adescription&path=%2fetc%2ftags&type=cq%3aTag" \
| jq --raw-output '.hits[] | [."jcr:path", ."jcr:title", ."jcr:description"] | @csv' \
> tags.csv
Това ще изпрати GET
заявка до вашия локален екземпляр на AEM (http://localhost:4502
), ще се удостовери като потребител admin
с парола admin
(настройки по подразбиране за AEM), ще използва API за създаване на заявки (/bin/querybuilder.json
), за да получите всички ресурси с тип cq:Tag
под /etc/tags
и от тези ресурси това би "избрало" свойствата jcr:path
, jcr:title
и jcr:description
.
Полученият JSON изглежда така:
{
"success": true,
"results": 2,
"total": 2,
"more": false,
"offset": 0,
"hits": [
{
"jcr:path": "/etc/tags/experience-fragments",
"jcr:description": "Tag structured used by the Experience Fragments feature",
"jcr:title": "Experience Fragments"
},
{
"jcr:path": "/etc/tags/experience-fragments/variation",
"jcr:description": "A tag used by the experience fragments variations",
"jcr:title": "Variation"
},
]
}
След това командата по-горе ще прехвърли получения JSON от конструктора на заявки към jq
, който ще използва „заявката“ .hits[] | [."jcr:path", ."jcr:title", ."jcr:description"]
, за да прочете само масива hits
и на всеки елемент в този масив само jcr:path
, jcr:title
и jcr:description
. След това получените масиви се използват като вход за @csv
"форматиращ низ" на jq
, който ще създаде правилен изход, разделен със запетая.
JSON от по-горе ще бъде форматиран, за да:
"/etc/tags/experience-fragments","Experience Fragments","Tag structured used by the Experience Fragments feature"
"/etc/tags/experience-fragments/variation","Variation","A tag used by the experience fragments variations"
Последната част от командата > tags.csv
просто ще пренасочи изхода към файл, наречен tags.csv
, вместо към командния ред.
AEM има дебъгер за създаване на заявки, който можете да използвате за създаване на заявки, които след това можете да използвате в командата на командния ред:
http://localhost:4502/libs/cq/search/content/querydebug.html
Параметрите на заявката, които използвах по-горе, ще изглеждат така в инструмента:
path=/etc/tags
type=cq:Tag
p.hits=selective
p.limit=-1
p.properties=jcr:title jcr:path jcr:description
Можете да добавяте свойства, както желаете, но за да се показват в CSV файла, трябва също да актуализирате заявката, използвана от jq
.
Ако добавите преводи към маркерите си, те ще бъдат съхранени в свойство, наречено jcr:title.<language-code>
. Ако преведете етикетите си на немски например, ще имате две свойства: jcr:title
и jcr:title.de
. Ако искате превода, трябва да разширите p.properties
и да добавите jcr:title.de
и т.н.
person
Jens
schedule
05.04.2019