Ограничение выборки для inner join
Столкнулся с такой проблемой )
Есть ресурс «Галереи» и у него есть дочерние ресурсы, содержащие собственно галереи (ms2gallery). Надо на страничке «Галереи», сделать предварительный просмотр вложенных галерей с переходом к полному просмотру. Причем в предварительном просмотре, должен быть заголовок, короткое описание взятое из контента самих галерей и 6 штук превьюшек.
Пытался сделать это при помощи сниппета ms2GalleryResources, но не сообразил как, поэтому решил делать напрямую:
И все бы хорошо, но не получается ограничить количество приджойненных превьюшек для каждого ресурса. Выбираются все. А попытка установить
приводит к тому, что ограничивается общее количество выбираемых превьюшек. Решается ли это вообще, средствами xpdo? Помогите пожалуйста, кто знает )
Есть ресурс «Галереи» и у него есть дочерние ресурсы, содержащие собственно галереи (ms2gallery). Надо на страничке «Галереи», сделать предварительный просмотр вложенных галерей с переходом к полному просмотру. Причем в предварительном просмотре, должен быть заголовок, короткое описание взятое из контента самих галерей и 6 штук превьюшек.
Пытался сделать это при помощи сниппета ms2GalleryResources, но не сообразил как, поэтому решил делать напрямую:
$modx->addPackage('ms2gallery', MODX_CORE_PATH . 'components/ms2gallery/model/');
$thumb = $modx->getOption('thumb', $scriptProperties, '120x90');
$q = $modx->newQuery('modResource', array(
'parent' => $modx->resource->id
));
$q->innerJoin('msResourceFile', 'files', "files.resource_id = modResource.id");
$q->sortby('files.resource_id', 'ASC');
$q->select('pagetitle,content,uri,files.resource_id,files.file,files.name,files.alt');
$q->where(array(
'published' => 1,
'files.type' => 'image',
'files.path:LIKE' => "%/{$thumb}%",
'files.active' => 1
)
);И все бы хорошо, но не получается ограничить количество приджойненных превьюшек для каждого ресурса. Выбираются все. А попытка установить
$q->limit($limit);приводит к тому, что ограничивается общее количество выбираемых превьюшек. Решается ли это вообще, средствами xpdo? Помогите пожалуйста, кто знает )
Комментарии: 9
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Вот полный код сниппета:
В простом MySQL, это вроде как решается с помощью подзапроса. А в xpdo, вроде как можно использовать подзапросы. Но собрать это в кучу, пока не хватает мозгов (
MySQL.Пара фокусов с xPDO
Уж лучше в чанке сниппет ms2gallery вызвать