Add annotation set transform framework
Signed-off-by: Justin Georgi <justin.georgi@gmail.com>
This commit is contained in:
@@ -3,5 +3,6 @@ $magicWords = [];
|
|||||||
|
|
||||||
$magicWords['en'] = [
|
$magicWords['en'] = [
|
||||||
'glmv_view' => [ 1, "view=$1" ],
|
'glmv_view' => [ 1, "view=$1" ],
|
||||||
'glmv_hsset' => [1, "set=$1"]
|
'glmv_hsset' => [1, "set=$1"],
|
||||||
|
'glmv_settrans' => [1, "transform=$1"]
|
||||||
];
|
];
|
||||||
@@ -62,9 +62,9 @@ class GlModelHandler extends ImageHandler {
|
|||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function validateParam( $name, $value ) {
|
public function validateParam( $name, $value ) {
|
||||||
if (in_array($name, ['width', 'height'])) {
|
if (in_array($name, ['width', 'height'])) {
|
||||||
return $value > 0;
|
return $value > 0;
|
||||||
} else if (in_array($name, ['view', 'hsset'])) {
|
} else if (in_array($name, ['view', 'hsset', 'settrans'])) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
@@ -80,10 +80,13 @@ class GlModelHandler extends ImageHandler {
|
|||||||
public function makeParamString( $params ) {
|
public function makeParamString( $params ) {
|
||||||
$res = parent::makeParamString( $params );
|
$res = parent::makeParamString( $params );
|
||||||
if ( $res && isset( $params['hsset'] ) ) {
|
if ( $res && isset( $params['hsset'] ) ) {
|
||||||
$res = "hs{$params['hsset']}-$res";
|
$res = "glhs{$params['hsset']}-$res";
|
||||||
}
|
}
|
||||||
if ( $res && isset( $params['view'] ) ) {
|
if ( $res && isset( $params['view'] ) ) {
|
||||||
$res = "v{$params['view']}-$res";
|
$res = "glv{$params['view']}-$res";
|
||||||
|
}
|
||||||
|
if ( $res && isset( $params['settrans'] ) ) {
|
||||||
|
$res = "gltr{$params['settrans']}-$res";
|
||||||
}
|
}
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
@@ -95,12 +98,14 @@ class GlModelHandler extends ImageHandler {
|
|||||||
* @return array|false Array of parameters or false on failure
|
* @return array|false Array of parameters or false on failure
|
||||||
*/
|
*/
|
||||||
public function parseParamString( $str ) {
|
public function parseParamString( $str ) {
|
||||||
preg_match( '/v([^-]*?)-/', $str, $view );
|
preg_match( '/glv([^-]*?)-/', $str, $view );
|
||||||
preg_match( '/hs([^-]*?)-/', $str, $hsset );
|
preg_match( '/glhs([^-]*?)-/', $str, $hsset );
|
||||||
$otherParams = preg_replace('/(?:(?:hs[^-]*?-)|(?:v[^-]*?-))*(.*)$/', '/$1/', $str);
|
preg_match( '/gltr([^-]*?)-/', $str, $settrans );
|
||||||
|
$otherParams = preg_replace('/(?:gl(?:hs[^-]*?-)|(?:v[^-]*?-)|(?:tr[^-]*?-))*(.*)$/', '/$1/', $str);
|
||||||
$parsedParams = parent::parseParamString( $otherParams );
|
$parsedParams = parent::parseParamString( $otherParams );
|
||||||
$parsedParams['view'] = $view;
|
$parsedParams['view'] = $view;
|
||||||
$parsedParams['hsset'] = $hsset;
|
$parsedParams['hsset'] = $hsset;
|
||||||
|
$parsedParams['settrans'] = $settrans;
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,6 +123,9 @@ class GlModelHandler extends ImageHandler {
|
|||||||
if ( isset( $params['hsset'] ) ) {
|
if ( isset( $params['hsset'] ) ) {
|
||||||
$res['hsset'] = $params['hsset'];
|
$res['hsset'] = $params['hsset'];
|
||||||
}
|
}
|
||||||
|
if ( isset( $params['settrans'] ) ) {
|
||||||
|
$res['settrans'] = $params['settrans'];
|
||||||
|
}
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,7 +138,8 @@ class GlModelHandler extends ImageHandler {
|
|||||||
return [
|
return [
|
||||||
'img_width' => 'width',
|
'img_width' => 'width',
|
||||||
'glmv_view' => 'view',
|
'glmv_view' => 'view',
|
||||||
'glmv_hsset' => 'hsset'
|
'glmv_hsset' => 'hsset',
|
||||||
|
'glmv_settrans' => 'settrans'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ class GlModelTransformOutput extends MediaTransformOutput {
|
|||||||
$this->height = $parameters['height'];
|
$this->height = $parameters['height'];
|
||||||
$this->view = (isset($parameters['view'])) ? $parameters['view'] : 'default';
|
$this->view = (isset($parameters['view'])) ? $parameters['view'] : 'default';
|
||||||
$this->hsset = (isset($parameters['hsset'])) ? $parameters['hsset'] : 'all';
|
$this->hsset = (isset($parameters['hsset'])) ? $parameters['hsset'] : 'all';
|
||||||
|
$this->transform = (isset($parameters['settrans'])) ? preg_split("/[\s,]+/", $parameters['settrans']) : [];
|
||||||
$this->url = $file->getFullUrl();
|
$this->url = $file->getFullUrl();
|
||||||
$this->thumb = isset($parameters['isFilePageThumb']) && $parameters['isFilePageThumb'];
|
$this->thumb = isset($parameters['isFilePageThumb']) && $parameters['isFilePageThumb'];
|
||||||
}
|
}
|
||||||
@@ -112,6 +113,15 @@ class GlModelTransformOutput extends MediaTransformOutput {
|
|||||||
} else {
|
} else {
|
||||||
$annotations = $metadata['annotations'];
|
$annotations = $metadata['annotations'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Apply any request transformations
|
||||||
|
if ($this->transform) {
|
||||||
|
if (in_array('alpha',$this->transform)) {
|
||||||
|
ksort($annotations);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Create hotspot elements
|
||||||
foreach($annotations as $label => $an) {
|
foreach($annotations as $label => $an) {
|
||||||
$elAnnot = Html::rawElement('div',['class' => 'HotspotAnnotation HiddenAnnotation'],$label);
|
$elAnnot = Html::rawElement('div',['class' => 'HotspotAnnotation HiddenAnnotation'],$label);
|
||||||
$hsDefault = array(
|
$hsDefault = array(
|
||||||
|
|||||||
Reference in New Issue
Block a user