* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ declare(strict_types=1); namespace PrestaShopBundle\Bridge\Helper\Listing\HelperBridge; use Db; use DbQuery; use PrestaShopBundle\Bridge\Helper\Listing\HelperListConfiguration; /** * This class customize the result of the list for the feature controller. */ class FeatureHelperListBridge extends HelperListBridge { /** * {@inheritDoc} */ public function generateListQuery( HelperListConfiguration $helperListConfiguration, int $idLang ): string { $listSql = parent::generateListQuery($helperListConfiguration, $idLang); // adds feature_value count to evey row of feature foreach ($helperListConfiguration->list as $featureRowRecord) { $featureRowRecord['value'] = $this->countFeatureValues((int) $featureRowRecord['id_feature']); } return $listSql; } /** * Counts feature values of realated feature */ private function countFeatureValues(int $featureId): int { $query = new DbQuery(); $query ->select('COUNT(fv.id_feature_value) as count_values') ->from('feature_value', 'fv') ->where('fv.id_feature =' . $featureId) ->where('(fv.custom=0 OR fv.custom IS NULL)') ; return (int) Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query); } }