Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'api/allproducts' => [
- 'elementType' => 'Commerce_Product',
- 'criteria' => [
- 'search' => buildSearchQuery(craft()->request->getParam('types'))
- ],
- 'transformer' => function(Commerce_ProductModel $product) {
- $mergedProductData = [];
- $title = $product->title;
- $url = UrlHelper::getUrl($product->url);
- $brand = (string)$product->productBrand[0];
- $designer = (string)$product->productDesigner[0];
- $num_decimals = (intval($product->defaultVariant->price) == $product->defaultVariant->price) ? 0 :2;
- $price = number_format($product->defaultVariant->price,$num_decimals);
- $frontImage = $product->productImages[0];
- $frontImages = [];
- if ($frontImage)
- {
- craft()->config->set('generateTransformsBeforePageLoad', true);
- if (craft()->plugins->getPlugin('Imager'))
- {
- $transformedImages = craft()->imager->transformImage(
- $frontImage,
- array(
- array(
- 'width' => 1170,
- ),
- array(
- 'width' => 780,
- 'jpegQuality' => 65,
- ),
- array(
- 'width' => 390,
- 'jpegQuality' => 65,
- ),
- ),
- array(
- 'ratio' => 16/9,
- 'position' => 'bottom-right',
- 'jpegQuality' => 80,
- ),
- array(
- 'fillTransforms' => true,
- )
- );
- $frontImages[] = craft()->imager->srcset($transformedImages);
- } else {
- $frontImages[] = $frontImage->getUrl(['width' => 390, 'height' => 294]);
- }
- }
- $mergedProductData[] = [
- 'id' => $product->id,
- 'title' => $title,
- 'productImage' => $frontImages,
- 'body' => (string) $product->body,
- 'brand' => $brand,
- 'designer' => $designer,
- 'url' => $url
- ];
- return [
- 'title' => $title,
- 'id' => $product->id,
- 'frontImage' => $frontImages,
- 'type' => $product->type->name,
- 'designer' => $designer,
- 'brand' => $brand,
- 'price' => $price,
- 'url' => $url,
- 'isInWishlist' => craft()->like->isLike($product->id),
- 'quickViewJson' => $mergedProductData
- ];
- },
- ],
- function buildSearchQuery($input) {
- $query = "";
- $i = 0;
- foreach ($input as $value) {
- if($i > 0) {
- $query .= " OR ";
- }
- $query .= "title:*$value* OR body:*$value*";
- $i++;
- }
- return $query;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement