Как получить в админке имя альбома в MIGX?
Хочу создать такой tv параметр с помощью MIGX, чтобы можно было прикреплять несколько альбомов из компонента Gallery к странице.
Создаю так:
Вкладки
[{«caption»: «Альбом», «fields»: [
{«field»:«album», «caption»: «Альбом», «inputTVtype»:«galleryalbumlist»}
]}]
Колонки
[
{«header»: «Альбом», «sortable»: «false», «dataIndex»: «album»}
]
Все вроде бы ничего, но в админке при добавлении я вижу ID альбома, что логично.
Вопрос в том, можно ли как-то «рендерить» ID альбома в его название?
Создаю так:
Вкладки
[{«caption»: «Альбом», «fields»: [
{«field»:«album», «caption»: «Альбом», «inputTVtype»:«galleryalbumlist»}
]}]
Колонки
[
{«header»: «Альбом», «sortable»: «false», «dataIndex»: «album»}
]
Все вроде бы ничего, но в админке при добавлении я вижу ID альбома, что логично.
Вопрос в том, можно ли как-то «рендерить» ID альбома в его название?
Комментарии: 10
Можно сделать сниппет по мотивам этого:
И вызывать его так:
А можно поставить Rowboat и вызывать так:
Чанк «album-name»:
<?php
if(empty($id)) return '';
$table = 'modx_gallery_albums';
$sql = "SELECT `name` FROM `$table` WHERE `id` = $id";
$query = new xPDOCriteria($modx, $sql);
if ($query->prepare() && $query->stmt->execute()){
$res = $query->stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($res as $row){
$out = $row['name'];
}
} else {
$out = "Ошибка";
}
return $out;
И вызывать его так:
[[Snippet? &id=`[[+album]]`]]
А можно поставить Rowboat и вызывать так:
[[Rowboat?
&table=`modx_gallery_albums`
&tpl=`album-name`
&where=`{"id":"[[+album]]"}`
]]
Чанк «album-name»:
[[+name]]
Ответил Вам, ниже комментарий.
Вы написали это для фронтэнда? Я наверное не уточнил вопрос.
Я хочу чтобы именно в админке выводился не ID альбома, а его имя.
Вот тут modx.pro/assets/images/tickets/9158/b24aebf564007b263232a4ad9072490bd3b71e32.png
То есть, я думаю, что нужно писать свой рендер по типу «this.renderImage», который делает превьюшки изображений.
Вот только я не знаю как его написать. Нашел где описаны имеющиеся уже в MIGX рендереры, тот же «this.renderImage»:
/core/components/migx/configs/grid/grid.renderer.inc.php
И получиться примерно должно вот так:
[
{«header»: «Альбом», «sortable»: «true», «dataIndex»: «album», «renderer»: "this.AlbumName"}
]
только «this.AlbumName» надо написать, а там мешанина из js/php, я вообще без понятия как туда запрос к базе вкорячить…
Я хочу чтобы именно в админке выводился не ID альбома, а его имя.
Вот тут modx.pro/assets/images/tickets/9158/b24aebf564007b263232a4ad9072490bd3b71e32.png
То есть, я думаю, что нужно писать свой рендер по типу «this.renderImage», который делает превьюшки изображений.
Вот только я не знаю как его написать. Нашел где описаны имеющиеся уже в MIGX рендереры, тот же «this.renderImage»:
/core/components/migx/configs/grid/grid.renderer.inc.php
И получиться примерно должно вот так:
[
{«header»: «Альбом», «sortable»: «true», «dataIndex»: «album», «renderer»: "this.AlbumName"}
]
только «this.AlbumName» надо написать, а там мешанина из js/php, я вообще без понятия как туда запрос к базе вкорячить…
Да, сорри, это я не понял, что речь про админку.
Прежде чем писать свой, попробуйте сделать это MIGX-поле через конфигурацию.
Только для вывода в таблице назовите поле не album, а как-нибудь иначе, например, albumname.
У него в качестве ререндера выберите thisRenderChunk и в поле renderChunk template пропишите:
Прежде чем писать свой, попробуйте сделать это MIGX-поле через конфигурацию.
Только для вывода в таблице назовите поле не album, а как-нибудь иначе, например, albumname.
У него в качестве ререндера выберите thisRenderChunk и в поле renderChunk template пропишите:
[[Snippet? &id=`[[+album]]`]]
Не получается, мб я что-то делаю не так?
Я указываю «renderer»: «this.RenderChunk»
Следом написал «renderChunk template»: "[[Snippet? &id=`[[+album]]`]]"
Я тоже читал эту тему community.modx-cms.ru/blog/questions/199271.html, только опять же я наверное не понимаю, как именно правильно должен выглядеть код колонок моего rv параметра.
Я указываю «renderer»: «this.RenderChunk»
Следом написал «renderChunk template»: "[[Snippet? &id=`[[+album]]`]]"
[
{"header": "Альбом", "sortable": "false", "dataIndex": "albumname", "renderer": "this.RenderChunk", "renderChunk template": "[[Snippet? &id=`[[+album]]`]]"}
]
Я тоже читал эту тему community.modx-cms.ru/blog/questions/199271.html, только опять же я наверное не понимаю, как именно правильно должен выглядеть код колонок моего rv параметра.
Я сейчас проверил — работает. Сделайте конфигурацию — таким образом Вы избегнете ошибок.
Например, эта строка, как минимум, должна быть такой:
Например, эта строка, как минимум, должна быть такой:
{"header":"Альбом", "sortable":"false", "dataIndex":"albumname", "renderer": "this.renderChunk", "renderchunktpl":"[[Snippet? &id=`[[+album]]`]]"}
Сделал все точно как Вы пишете. Пустоту выдает :(
Сниппет
TV параметр
Результат добавленного альбома
Сниппет
TV параметр
Результат добавленного альбома
1. Если вывести на какой-нибудь странице:
2. И сделайте, все же, через конфигурацию.
[[Snippet? &id=`1`]]
Что-то выводит?2. И сделайте, все же, через конфигурацию.
Сделал через конфигурацию, раньше никогда так не делал, помогла эта тема modx.pro/help/8883/#comment-61366
Спасибо Вам за помощь! Все работает!
Спасибо Вам за помощь! Все работает!
Ну и славненько ).
Вообще, IMHO, если вывод чуть хитрее стандартного (несколько вкладок у формы, зависимые TV, запросы, подобные Вашему), лучше всегда конфигурации использовать — там, кстати, и возможностей больше.
Вообще, IMHO, если вывод чуть хитрее стандартного (несколько вкладок у формы, зависимые TV, запросы, подобные Вашему), лучше всегда конфигурации использовать — там, кстати, и возможностей больше.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.