Add annotation set transform framework

Signed-off-by: Justin Georgi <justin.georgi@gmail.com>
This commit is contained in:
2024-11-14 08:41:59 -07:00
parent 7cba86ce30
commit dd475f29c7
3 changed files with 29 additions and 9 deletions

View File

@@ -62,9 +62,9 @@ class GlModelHandler extends ImageHandler {
* @return bool
*/
public function validateParam( $name, $value ) {
if (in_array($name, ['width', 'height'])) {
if (in_array($name, ['width', 'height'])) {
return $value > 0;
} else if (in_array($name, ['view', 'hsset'])) {
} else if (in_array($name, ['view', 'hsset', 'settrans'])) {
return true;
} else {
return false;
@@ -80,10 +80,13 @@ class GlModelHandler extends ImageHandler {
public function makeParamString( $params ) {
$res = parent::makeParamString( $params );
if ( $res && isset( $params['hsset'] ) ) {
$res = "hs{$params['hsset']}-$res";
$res = "glhs{$params['hsset']}-$res";
}
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;
}
@@ -95,12 +98,14 @@ class GlModelHandler extends ImageHandler {
* @return array|false Array of parameters or false on failure
*/
public function parseParamString( $str ) {
preg_match( '/v([^-]*?)-/', $str, $view );
preg_match( '/hs([^-]*?)-/', $str, $hsset );
$otherParams = preg_replace('/(?:(?:hs[^-]*?-)|(?:v[^-]*?-))*(.*)$/', '/$1/', $str);
preg_match( '/glv([^-]*?)-/', $str, $view );
preg_match( '/glhs([^-]*?)-/', $str, $hsset );
preg_match( '/gltr([^-]*?)-/', $str, $settrans );
$otherParams = preg_replace('/(?:gl(?:hs[^-]*?-)|(?:v[^-]*?-)|(?:tr[^-]*?-))*(.*)$/', '/$1/', $str);
$parsedParams = parent::parseParamString( $otherParams );
$parsedParams['view'] = $view;
$parsedParams['hsset'] = $hsset;
$parsedParams['settrans'] = $settrans;
return $res;
}
@@ -118,6 +123,9 @@ class GlModelHandler extends ImageHandler {
if ( isset( $params['hsset'] ) ) {
$res['hsset'] = $params['hsset'];
}
if ( isset( $params['settrans'] ) ) {
$res['settrans'] = $params['settrans'];
}
return $res;
}
@@ -130,7 +138,8 @@ class GlModelHandler extends ImageHandler {
return [
'img_width' => 'width',
'glmv_view' => 'view',
'glmv_hsset' => 'hsset'
'glmv_hsset' => 'hsset',
'glmv_settrans' => 'settrans'
];
}