<?php echo a_js_button(a_('Crop'), array('icon', 'a-crop', 'lite', 'no-label', 'alt')); ?> </li> <li> <?php echo a_js_button(a_('Delete'), array('icon', 'a-delete', 'lite', 'no-label', 'alt')); ?> </li> </ul> <div class="a-thumbnail-container" style="background-image: url('<?php echo url_for($item->getCropThumbnailUrl()); ?> '); overflow: hidden;"> <img src="<?php echo url_for($item->getCropThumbnailUrl()); ?> " class="a-thumbnail" style="visibility:hidden;" /> </div> </li> <?php a_js_call('apostrophe.setObjectId(?, ?)', $domId, $id); $n++; } ?> <?php a_js_call('apostrophe.mediaEnableSelect(?)', array('setCropUrl' => url_for('aMedia/crop'), 'removeUrl' => url_for('aMedia/multipleRemove'), 'updateMultiplePreviewUrl' => url_for('aMedia/updateMultiplePreview'), 'multipleAddUrl' => url_for('aMedia/multipleAdd'), 'ids' => aMediaTools::getSelection(), 'aspectRatio' => aMediaTools::getAspectRatio(), 'minimumSize' => array(aMediaTools::getAttribute('minimum-width'), aMediaTools::getAttribute('minimum-height')), 'maximumSize' => array(aMediaTools::getAttribute('maximum-width'), aMediaTools::getAttribute('maximum-height')), 'imageInfo' => aMediaTools::getAttribute('imageInfo')));
/** * DOCUMENT ME * @return mixed */ public function getCropThumbnailUrl() { $selectedConstraints = aMediaTools::getOption('selected_constraints'); if ($aspectRatio = aMediaTools::getAspectRatio()) { // Allow for either the width or the height to be flex if (isset($selectedConstraints['height']) && $selectedConstraints['height'] !== false) { $selectedConstraints = array_merge($selectedConstraints, array('width' => floor($selectedConstraints['height'] * $aspectRatio))); } else { $selectedConstraints = array_merge($selectedConstraints, array('height' => floor($selectedConstraints['width'] / $aspectRatio))); } } $imageInfo = aMediaTools::getAttribute('imageInfo'); if (isset($imageInfo[$this->id]['cropLeft']) && isset($imageInfo[$this->id]['cropTop']) && isset($imageInfo[$this->id]['cropWidth']) && isset($imageInfo[$this->id]['cropHeight'])) { $selectedConstraints = array_merge($selectedConstraints, array('cropLeft' => $imageInfo[$this->id]['cropLeft'], 'cropTop' => $imageInfo[$this->id]['cropTop'], 'cropWidth' => $imageInfo[$this->id]['cropWidth'], 'cropHeight' => $imageInfo[$this->id]['cropHeight'])); } return $this->getScaledUrl($selectedConstraints); }
/** * * This mirrors the default size math in aCrop.setAspectMask() in aCrop.js * @param mixed $mediaItem */ public static function setDefaultCropDimensions($mediaItem) { $imageInfo = aMediaTools::getAttribute('imageInfo'); $aspectRatio = aMediaTools::getAspectRatio(); $imageAspectRatio = $mediaItem->getWidth() / $mediaItem->getHeight(); if ($aspectRatio) { // We have an aspect ratio constraint if ($aspectRatio > $imageAspectRatio) { $imageInfo[$mediaItem->id]['cropWidth'] = $mediaItem->getWidth(); $imageInfo[$mediaItem->id]['cropHeight'] = floor($mediaItem->getWidth() / $aspectRatio); $imageInfo[$mediaItem->id]['cropLeft'] = 0; $imageInfo[$mediaItem->id]['cropTop'] = floor(($mediaItem->getHeight() - $imageInfo[$mediaItem->id]['cropHeight']) / 2); } else { $imageInfo[$mediaItem->id]['cropHeight'] = $mediaItem->getHeight(); $imageInfo[$mediaItem->id]['cropWidth'] = floor($mediaItem->getHeight() * $aspectRatio); $imageInfo[$mediaItem->id]['cropLeft'] = floor(($mediaItem->getWidth() - $imageInfo[$mediaItem->id]['cropWidth']) / 2); $imageInfo[$mediaItem->id]['cropTop'] = 0; } } else { $imageInfo[$mediaItem->id]['cropLeft'] = 0; $imageInfo[$mediaItem->id]['cropTop'] = 0; $imageInfo[$mediaItem->id]['cropWidth'] = $mediaItem->getWidth(); $imageInfo[$mediaItem->id]['cropHeight'] = $mediaItem->getHeight(); } aMediaTools::setAttribute('imageInfo', $imageInfo); }