Параметр &where
        Всем привет!
Похоже предыдущий вопрос был плохо сформулирован, ответов нет. Попробую проще:
Есть вызов ms2gallery
Ссылка на пример синтаксиса, в котором можно писать чистое SQL условие
Пытаюсь добавить для теста такое условие: &where=`[«File.add = 65»]`
Но при любом содержании перед моим условием появляется 0= и все условия не работают.
0.0006981: Added where condition: File.parent=0, File.active=1, 0=File.add = 65, modResource.id:IN(65)
С синтаксисом, в котором используются фигурные скобки пока не получается поставить такие же условия выборки.
    
    
                                                                                
            Похоже предыдущий вопрос был плохо сформулирован, ответов нет. Попробую проще:
Есть вызов ms2gallery
[[!ms2gallery?
                    &tpl=`tpl.tabs_photo`
                    &limit=`0`
                    &resources=`[[*parent]]`
                    &showLog=`1`
                ]]Есть SQL запрос, который полностью удовлетворяет моим условиям:SELECT *  FROM `ms2_resource_files` WHERE (`add` NOT LIKE '%65%' AND `add` NOT LIKE '') OR `add` IS NULLКак добавить параметр where, чтобы получить тот же результат?Ссылка на пример синтаксиса, в котором можно писать чистое SQL условие
Пытаюсь добавить для теста такое условие: &where=`[«File.add = 65»]`
Но при любом содержании перед моим условием появляется 0= и все условия не работают.
0.0006981: Added where condition: File.parent=0, File.active=1, 0=File.add = 65, modResource.id:IN(65)
С синтаксисом, в котором используются фигурные скобки пока не получается поставить такие же условия выборки.
Комментарии: 7
                Вам надо использовать сниппет pdoResources. В нём возможно выбрать картинки с помощью параметров loadModels и class. И в нём уже параметр where будет работать так как надо (только не забудьте добавить в него поля active, parent, чтобы для каждой картинки выбирать только оригинал и не выбирать неактивные картинки).
Кроме того, заметьте, что условие `add` NOT LIKE '%65%' исключит и записи, у которых будут указаны, например, такие числа: 165, 653, 1065 и пр.
И вообще, так как компонент платный, можете написать в техподдержку на сайте modstore.pro. Думаю, вам помогут составить правильный запрос.
                    Кроме того, заметьте, что условие `add` NOT LIKE '%65%' исключит и записи, у которых будут указаны, например, такие числа: 165, 653, 1065 и пр.
И вообще, так как компонент платный, можете написать в техподдержку на сайте modstore.pro. Думаю, вам помогут составить правильный запрос.
                Благодарю!
Я видел, что &where применяется для ms2Gallery, потому не подумал, что нужно использовать другой сниппет.
Верно, поставили такую задачу, что некоторые изображения не должны выводиться на определенных страницах. Потому в поле «add» идет перечисление страниц, где не должны показываться эти изображения.
                    Я видел, что &where применяется для ms2Gallery, потому не подумал, что нужно использовать другой сниппет.
Кроме того, заметьте, что условие `add` NOT LIKE '%65%' исключит и записи, у которых будут указаны, например, такие числа: 165, 653, 1065 и пр.
Верно, поставили такую задачу, что некоторые изображения не должны выводиться на определенных страницах. Потому в поле «add» идет перечисление страниц, где не должны показываться эти изображения.
И вообще, так как компонент платный, можете написать в техподдержку на сайте modstore.pro. Думаю, вам помогут составить правильный запрос.Я боюсь, что достал Василия с подобными вопросами :) Было уже около трех обращений насчет этого компонента.
                Ну раз компонент действительно куплен официально, попробую помочь.
Вот такой код правильно будет выводить картинки?
И по поводу ID-шников — я имел ввиду, что в ресурсе (65) НЕ будут выведены картинки, у которых в поле add будет указано, например: 165, 653, 1065
                    Вот такой код правильно будет выводить картинки?
[[pdoResources?
  &loadModels=`ms2gallery`
  &class=`msResourceFile`
  &tpl=`tpl.tabs_photo`
  &sortby=`{ "msResourceFile.rank":"ASC" }`
  &limit=`0`
  &where=`[
      { "active":1, "parent":0, "resource_id":25 },
      [
          {"add:NOT LIKE":"%65%", "OR:add:IS":null },
          { "add:NOT LIKE":"", "OR:add:IS":null }
      ]
    ]`
  &showLog=`1`
]]И по поводу ID-шников — я имел ввиду, что в ресурсе (65) НЕ будут выведены картинки, у которых в поле add будет указано, например: 165, 653, 1065
                Ого, этот способ много интереснее моего!
Конечный вариант кода выглядит так:
                    Конечный вариант кода выглядит так:
[[!pdoResources?
                          &loadModels=`ms2gallery`
                          &class=`msResourceFile`
                          &tpl=`@INLINE: 
                            <a href="/assets/images/resources/[[*parent]]/800x536/[[+file]]" data-fancybox="gallery" class="item fancybox swiper-slide" rel="phototabs" data-caption="[[+name]]">
                                <img src="/assets/images/resources/[[*parent]]/150x130/[[+file]]" alt="[[+name]]" title="[[+name]]">
                            </a>`
                          &sortby=`{ "msResourceFile.rank":"ASC" }`
                          &limit=`0`
                          &where=`[
                              { "active":1, "parent":0, "resource_id":[[*parent]] }, {"add:NOT LIKE":"%|[[*id]]|%", "OR:add:LIKE":"", "OR:add:IS":null }
                            ]`
                          &showLog=`1`
                        ]]Подскажите, пожалуйста, что это за чудный вариант синтаксиса? Где про него можно почитать? Я правильно понял, что второй уровень квадратных скобок это аналог AND (… OR ...)?&where=`[
      { "active":1, "parent":0, "resource_id":25 },
      [
          {"add:NOT LIKE":"%65%", "OR:add:IS":null },
          { "add:NOT LIKE":"", "OR:add:IS":null }
      ]
    ]`Ну раз компонент действительно куплен официально, попробую помочь.Безусловно, я почти с самого начала проталкиваю покупку платных дополнений при создании сайта.
                Это не синтаксис — это обычный JSON. Он преобразуется в коде сниппета в массив и передаётся в xPDO. xPDO объединяет все элементы через AND. Вложенность преобразует в скобки. Если находит префикс OR, объединяет через OR вместо AND.            
                    
                А на Fenom можно и вовсе сразу массив задавать, без JSON =)            
                    
                Используя pdoresources смог решить проблему так:
Благодарю за подсказку! Иначе дальше бы мучался с ms2gallery
                    [[!pdoResources?
                            &loadModels=`ms2gallery`
                            &parents=`0`
                            &resources=`[[*parent]]`
                            &limit=`0`
                            &tpl=`@INLINE:
                            <a href="/assets/images/resources/[[*parent]]/800x536/[[+file]]" data-fancybox="gallery" class="item fancybox swiper-slide" rel="phototabs" data-caption="[[+name]]">
                                <img src="/assets/images/resources/[[*parent]]/150x130/[[+file]]" alt="[[+name]]" title="[[+name]]">
                            </a>`
                            &leftJoin=`{
                            "File": {
                        			"class":"msResourceFile"
                        			,"alias":"File"
                        			,"on": "File.resource_id = '[[*parent]]' AND File.path = '[[*parent]]/' AND (File.add LIKE '' OR File.add IS NULL OR File.add NOT LIKE '%[[*id]]%')"
                        		}
                            }`
                            &select=`{
                            "File" : "*"
                            }`
                        ]]Выглядит очень криво на мой взгляд, но лучше ничего не придумал.Благодарю за подсказку! Иначе дальше бы мучался с ms2gallery
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.