ideasdigger, ой ей. Как же это все потом поддерживать и обновлять :)
а можно в том файле шаблона списка, в котором добавляли класс ajax-modal добавить небольшой код в конце. И будет так

Рассмотрим на примере демо-контента новости. Откроем файл templates\modern\content\default_list_featured.tpl.php и сперва добавим класс ajax-modal
Для этого заменим
<a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>">
на
<a class="ajax-modal" href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>">
и затем в конце файла, после пагинации добавим
<?php
$this->addTplJSName('rating');
<script>
icms.modal.setCallback('open', function() {
let checkContentInterval = setInterval(function() {
var $modalBody = $('.modal').find('.modal-body');
if ($modalBody.length > 0 && $modalBody.text().trim().length > 0) {
clearInterval(checkContentInterval);
$('.modal').find('.rating_widget').each(function() {
icms.rating.bindWidget($(this));
});
}
}, 100);
});
</script>
Я изначально думал, что код будет проще, но коллбэк срабатывает раньше, чем появится содержимое модалки. Поэтому в код добавлен интервал.
Обратите внимание, что для типа контента, который открывается в модалке, также должны быть отключены комментарии. Иначе в консоли будут ошибки js и код не сработает. Починить комментарии в модалке — это отдельная история, которая возможно не решаема без правок типа выше.