Skip to content

Instantly share code, notes, and snippets.

@steveosoule
Forked from bheyde/gist:26d12958c5c013dd99165a6bc182a79a
Last active October 5, 2016 18:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save steveosoule/37769f2b43ed8c23079f1a3b06b5b769 to your computer and use it in GitHub Desktop.
Save steveosoule/37769f2b43ed8c23079f1a3b06b5b769 to your computer and use it in GitHub Desktop.
Dynamic Resize Images Based on URL

FROM: http://www.miva.com/forums/forum/general/miva-merchant-dream-features/683966-next-generation-image-machine

Also there is a JavaScript method to pull any image you want with any dimensions:

Make a call to json.mvc with the following parameters:

Session_Type=runtime Function=Runtime_ProductImageList_Load_Product_Var iant Product_Code= Variant_ID= Image_Sizes=pipe separated lists of dimensions, either the string “original” or WIDTHxHEIGHT

The output will be a JSON array containing URLs to the generated product images.

You would then read in the JSON and update the page accordingly.

//create a new page in Miva called REQUEST_IMAGE with the following code:
<mvt:assign name="l.constraints[1]:height" value="encodeentities(g.image_height)" />
<mvt:assign name="l.constraints[1]:width" value="encodeentities(g.image_width)" />
<mvt:assign name="l.imagetype_codes[1]" value="encodeentities(g.image_type)" />
<mvt:do name="l.success" file="g.Module_Library_DB" value="Product_Load_Code( encodeentities(g.Product_Code), l.settings:product )" />
<mvt:assign name="l.constraints_count" value="miva_array_elements( l.constraints )" />
<mvt:assign name="l.imagetypecode_count" value="miva_array_elements( l.imagetype_codes )" />
<mvt:do file="g.Module_Library_DB" name="l.imagedata_count" value="ProductImageDataList_Load_Product_TypeCodes_Constrained(l.settings:product:id, l.imagetype_codes, l.imagetypecode_count , l.constraints,l.constraints_count,l.settings:productimagedatalist)" />
<mvt:comment>
Check and see if the image size requested exists on the server, If not dynamically create it
</mvt:comment>
<mvt:if expr="ISNULL l.settings:productimagedatalist[1]:generatedimages[1]:image">
<mvt:do file="g.Module_Library_DB" name="l.ok" value="GeneratedImage_FindOrInsert_Image_Dimensions( l.settings:productimagedatalist[1]:image, l.constraints[1]:width, l.constraints[1]:height, l.settings:generatedimage )" />
<mvt:assign name="l.ok" value="file_read( '/' $ g.Domain:mod_root $ l.settings:generatedimage:image, 'script', g.image_data)" />
<mvt:else>
<mvt:assign name="l.ok" value="file_read( '/' $ g.Domain:mod_root $ l.settings:productimagedatalist[1]:generatedimages[1]:image, 'script', g.image_data)" />
</mvt:if>
<mvt:eval expr="g.image_data" />
//Add .htacces rewrite rule
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/request_image.jpg$ [NC]
RewriteRule ^(.*)$ http://domain.com/mm5/merchant.mvc?Screen=REQUEST_IMAGE [QSA,L]
//Pass Image size, image type and product code in as parameters
<img src="/request_image.jpg?Product_Code=test&image_type=main&image_height=200&image_width=500" border="0" />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment