Как реализовать вывод элементов ИС по доп.полю "флажок"?

#
Как реализовать вывод элементов ИС по доп.полю "флажок"?
Здравствуйте! Имеем обычный xsl c выводом элементов ИС. Также есть доп.поле типа "флажок"  - show-in-mainpage
Как обернуть код вывода, чтобы показывались только отмеченные элементы?

   
   <xsl:template match="/">
      <xsl:apply-templates select="/informationsystem/informationsystem_item" />
   </xsl:template>
   
   <xsl:template match="informationsystem_item">   
      <div class="col-md-2 works-example-item">
         <a href="{dir}{image_large}" data-lightbox="lightbox" class="works-example-item__link">
            <img src="{dir}{image_small}" class="img-responsive works-example-item__img"/>
         </a>
      </div>      
   </xsl:template>
</xsl:stylesheet>
#
Re: Как реализовать вывод элементов ИС по доп.полю "флажок"?
Корректней будет задать ограничение на уровне контроллера,  а не в xsl https://www.hostcms.ru/documentation/modules/properties/controllers/
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Как реализовать вывод элементов ИС по доп.полю "флажок"?
llirik, сделал так,

$Informationsystem_Controller_Show
                           ->informationsystemItems()
                           ->queryBuilder()
                           ->where('informationsystem_item_properties.property_id', '=', 71)    
                         ->where('property_value_ints.value', '=', '1');                           
                     


но выходит ошибка в стиле

Цитата:

Exception: Query error 42S22: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'informationsystem_item_properties.property_id' in 'where clause'. Query: SELECT SQL_CALC_FOUND_ROWS `informationsystem_items`.* FROM `informationsystem_items` WHERE `informationsystem_items`.`informationsystem_id` = 17 AND ( `informationsystem_items`.`start_datetime` < '2017-06-22 16:16:04' OR `informationsystem_items`.`start_datetime` = '0000-00-00 00:00:00' ) AND ( `informationsystem_items`.`end_datetime` > '2017-06-22 16:16:04' OR `informationsystem_items`.`end_datetime` = '0000-00-00 00:00:00' ) AND `informationsystem_items`.`siteuser_group_id` IN (0, -1) AND `informationsystem_item_properties`.`property_id` = 71 AND `property_value_ints`.`value` IS NULL AND `informationsystem_items`.`active` = 1 AND `informationsystem_items`.`deleted` = 0 ORDER BY `informationsystem_items`.`sorting` DESC, `informationsystem_items`.`name` DESC LIMIT 12 OFFSET 0
#
Re: Как реализовать вывод элементов ИС по доп.полю "флажок"?
Почему не делаете объединение таблиц, как в примере в документации?
$Informationsystem_Controller_Show
    ->informationsystemItems()
    ->queryBuilder()
    ->leftJoin('informationsystem_item_properties', 'informationsystem_items.informationsystem_id', '=', 'informationsystem_item_properties.informationsystem_id')
    ->leftJoin('property_value_ints', 'informationsystem_items.id', '=', 'property_value_ints.entity_id',
  array(
          array('AND' => array('informationsystem_item_properties.property_id', '=', Core_QueryBuilder::expression('`property_value_ints`.`property_id`')))
  )
    )

    ->where('informationsystem_item_properties.property_id', '=', 71)    
    ->where('property_value_ints.value', '=', '1');  
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Как реализовать вывод элементов ИС по доп.полю "флажок"?
llirik, спасибо, получилось)
Авторизация