. * */ namespace Vvveb\Component; use Vvveb\System\Cart\Currency; use Vvveb\System\Cart\Tax; use Vvveb\System\Component\ComponentBase; use Vvveb\System\Event; use Vvveb\System\Images; class Products extends ComponentBase { public static $defaultOptions = [ 'start' => 0, 'limit' => 4, 'language_id' => 1, 'site_id' => 1, 'manufacturer_id'=> NULL, 'vendor_id' => NULL, 'related' => NULL, 'order' => ['url', 'price asc'], //'taxonomy_item_id'=> null, 'product_image' => true, ]; public $options = []; function __construct($class = __CLASS__) { parent::__construct($class); } function results() { $products = new \Vvveb\Sql\ProductSQL(); $results = $products->getAll($this->options); $results['product'] = $results['product'] ?? []; if ($results['product']) { $tax = Tax::getInstance($this->options); $currency = Currency::getInstance($this->options); foreach ($results['product'] as $id => &$product) { if (isset($product['images'])) { $product['images'] = json_decode($product['images'], true); foreach ($product['images'] as &$image) { $image['image'] = Images::image($image['image'], 'product'); } } if (isset($product['image']) && $product['image']) { $product['image'] =Images::image($product['image'], 'product'); } $product['price_tax'] = $tax->addTaxes($product['price'], $product['tax_type_id']); $product['price_tax_formatted'] = $currency->format($product['price_tax']); $product['price_formatted'] = $currency->format($product['price']); } } list($results) = Event :: trigger(__CLASS__,__FUNCTION__, $results); return $results; } }