mainBinding->getChildValue('attachmentId', 0);
if ( !empty($attachmentId) ) {
//Verify that the attachment exists.
$attachmentUrl = wp_get_attachment_image_url($attachmentId, 'full');
if ( !$attachmentUrl ) {
$attachmentId = 0;
}
}
$externalUrlsAllowed = $this->mainBinding->areExternalUrlsAllowed();
$externalUrl = $this->mainBinding->getChildValue('externalUrl', '');
$imageUrl = $this->mainBinding->getImageUrl();
$canSelectAttachment = $this->isEnabled($context) && current_user_can('upload_files');
$canSelectExternalUrl = $this->isEnabled($context) && $externalUrlsAllowed;
echo HtmlHelper::tag('div', [
'class' => 'ame-image-selector-v2',
'data-bind' => 'ameObservableChangeEvents: ' . $this->getKoObservableExpression($imageUrl),
]);
?>
Sorry, this feature is not available in the demo because image upload is disabled.
%s',
empty($imageUrl) ? '' : 'display: none;',
esc_attr($noImageText),
esc_attr('Loading...'),
esc_html($noImageText)
);
if ( !empty($imageUrl) ) {
/** @noinspection HtmlUnknownTarget */
printf('

', esc_attr($imageUrl));
}
?>
'hidden',
'name' => $this->getFieldName($context, 'attachmentId'),
'value' => $attachmentId,
'class' => 'ame-image-attachment-id',
));
echo HtmlHelper::tag('input', array(
'type' => 'hidden',
'name' => $this->getFieldName($context, 'attachmentSiteId'),
'value' => $this->mainBinding['attachmentSiteId']->getValue(0),
'class' => 'ame-image-attachment-site-id',
));
//Attachment URL will usually be overwritten on the server side, but it's useful
//for screens that don't trigger server-side post-processing (e.g. the "Style" dialog).
echo HtmlHelper::tag('input', array(
'type' => 'hidden',
'name' => $this->getFieldName($context, 'attachmentUrl'),
'value' => $this->mainBinding['attachmentUrl']->getValue(''),
'class' => 'ame-image-attachment-url',
));
?>
>
'hidden',
'name' => $this->getFieldName($context, $dimension),
'value' => $this->mainBinding->getChildValue($dimension, ''),
'class' => 'ame-detected-image-' . $dimension,
));
}
?>
outputSiblingDescription($context); ?>
'; //Close the container div.
}
protected static function enqueueDependencies() {
static $done = false;
if ( $done ) {
return;
}
$done = true;
parent::enqueueDependencies();
wp_enqueue_media();
wp_enqueue_auto_versioned_script(
'ame-image-selector-control-v2',
plugins_url('assets/image-selector.js', AME_CUSTOMIZABLE_BASE_FILE),
array('jquery', 'ame-lodash')
);
wp_add_inline_script(
'ame-image-selector-control-v2',
sprintf("var AmeIscBlogId = %d;", get_current_blog_id())
);
}
protected function getKoComponentParams(EvaluationContext $context): array {
$params = parent::getKoComponentParams($context);
$params['externalUrlsAllowed'] = $this->mainBinding->areExternalUrlsAllowed();
$params['canSelectMedia'] = current_user_can('upload_files');
return $params;
}
}