[TASK] Adds ability to make plugins change the multi-media insertion gallery HTML

This commit is contained in:
Garvin Hicking 2019-12-03 15:50:51 +01:00
parent 4daa718362
commit cad25673cf
4 changed files with 113 additions and 74 deletions

View File

@ -551,8 +551,12 @@ function serendipity_smarty_hookPlugin($params, $smarty) {
}
if (!isset($params['data'])) {
if (isset($params['eventData'])) {
$params['data'] = &$params['eventData'];
} else {
$params['data'] = &$serendipity;
}
}
if (!isset($params['addData'])) {
$params['addData'] = null;

View File

@ -3,13 +3,29 @@
{else}
{if $medias}
<script>
var blockSkip = false;
var block = '';
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_prepend' addData="galleryListing"}
if (!blockSkip) {
block = '<ul class="s9y_gallery plainList">';
}
{foreach $medias as $media}
{* generate the images of the gallery with their markup *}
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_unknown' eventData=$media}
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_unknown' data=$media addData="galleryListing"}
if (blockSkip) {
// Plugins can emit this variable and also assign their own "block" variable, which will override the s9y default
} else {
block += '<li class="s9y_gallery_item"><a class="serendipity_image_link" href="{$media.file.links.imagelinkurl}"><!-- s9ymdb:{$media.file.id} --><img class="s9y_gallery_image" src="{$media.file.full_thumbHTTP|escape}" alt=""></a></li>';
}
{/foreach}
blockSkip = false;
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_append' addData="galleryListing"}
if (!blockSkip) {
block += '</ul>';
}
if (parent.self.opener == undefined) {
// in iframes, there is no opener, and the magnific popup is wrapped
@ -29,13 +45,13 @@
<div class="clearfix">
{if $media.file.is_image}
{serendipity_hookPlugin hook="frontend_image_selector" eventData=$media.file hookAll=true}
{serendipity_hookPlugin hook="frontend_image_selector" data=$media.file hookAll=true}
<h1>{$CONST.YOU_CHOSE|sprintf:$media.file.realname}</h1>
<img src="{$media.file.imgsrc}" alt="">
<form id="imageForm" name="serendipity[selForm]" action="#" method="GET">
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_hiddenfields' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_hiddenfields' data=$media.file}
<input name="imgThumbWidth" type="hidden" value="{$media.file.thumbWidth}">
<input name="imgThumbHeight" type="hidden" value="{$media.file.thumbHeight}">
<input name="imgWidth" type="hidden" value="{$media.file.dimensions_width}">
@ -54,7 +70,7 @@
{/if}
{if $media.file.fast_select}
<script>
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' data=$media.file}
serendipity.serendipity_imageSelector_done('{$media.textarea|escape}');
</script>
{else}
@ -72,7 +88,7 @@
<label for="radio_link_yes">{$CONST.I_WANT_BIG_IMAGE}</label>
</div>
</div>
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagesize' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagesize' data=$media.file}
</fieldset>
{if NOT $media.filename_only}
<fieldset id="image_alignment">
@ -94,7 +110,7 @@
<label for="image_align_right"><img src="{serendipity_getFile file='img/img_align_right.png'}" alt="{$CONST.ALIGN_RIGHT}"></label>
</div>
</div>
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagealign' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagealign' data=$media.file}
</fieldset>
<fieldset id="image_as_link">
@ -116,7 +132,7 @@
{if $media.file.hotlink}
<input id="media_file_path" name="serendipity[url]" type="text" value="{$media.file.path}">
{else}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_link_url' eventData=$media.file.links}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_link_url' data=$media.file.links}
<input id="media_file_path" name="serendipity[url]" type="text" value="{$media.file.links.imagelinkurl}">
{/if}
</div>
@ -130,7 +146,7 @@
<option value="plugin" {'target'|ifRemember:'plugin':false:'selected'}>{$CONST.MEDIA_ENTRY}</option>
<option value="_blank" {'target'|ifRemember:'_blank':false:'selected'}>{$CONST.MEDIA_TARGET_BLANK}</option>
</select>
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagelink2' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagelink2' data=$media.file}
<label for="select_image_target">{$CONST.MEDIA_TARGET}</label>
</div>
</fieldset>
@ -138,33 +154,33 @@
<div id="image_comment" class="form_area">
<label for="serendipity_imagecomment">{$CONST.COMMENT}</label>
<textarea id="serendipity_imagecomment" name="serendipity[imagecomment]" rows="5">{$media.file.props.base_property.COMMENT1|escape|escape}</textarea>
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagecomment' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagecomment' data=$media.file}
</div>
<div id="image_alttext" class="form_field">
<label for="serendipity_alt">{$CONST.MEDIA_ALT}</label>
<input id="serendipity_alt" name="serendipity[alt]" type="text" value="{$media.file.props.base_property.ALT|escape}">
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_alt' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_alt' data=$media.file}
</div>
<div id="image_title" class="form_field">
<label for="serendipity_title">{$CONST.MEDIA_TITLE}</label>
<input id="serendipity_title" name="serendipity[title]" type="text" value="{$media.file.props.base_property.TITLE|escape}">
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_title' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_title' data=$media.file}
</div>
{/if}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_more' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_more' data=$media.file}
<div class="form_buttons">
<input class="go_back" type="button" value="{$CONST.BACK}">
<input type="button" value="{$CONST.DONE}" onclick="serendipity.rememberMediaOptions(); {$media.file.origfinishJSFunction}">
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_submit' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_submit' data=$media.file}
</div>
{/if}{* else fast_select end *}
</form>
{else}{* if $media.file.is_image end *}
{if $media.filename_only}
<script>
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' eventData=$media}
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' data=$media}
if (parent.self.opener == undefined) {
// in iframes, there is no opener, and the magnific popup is wrapped
parent.self = window.parent.parent.$.magnificPopup;
@ -173,10 +189,28 @@
parent.self.opener.serendipity.serendipity_imageSelector_addToElement('{$media.file.full_file|escape}', '{$media.htmltarget|escape}');
parent.self.close();
</script>
{else}
{if $media.file.mediatype == 'video'}
<script>
block = '<video src="{$media.file.full_file}" controls><!-- s9ymdb:{$media.file.id} --><a class="block_level opens_window" href="{$media.file.full_file}" title="{$media.file.realname|escape}">{$media.file.realname|escape}</a></video>';
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_unknown' data=$media}
if (parent.self.opener == undefined) {
// in iframes, there is no opener, and the magnific popup is wrapped
parent.self = window.parent.parent.$.magnificPopup;
parent.self.opener = window.parent.parent;
}
if (parent.self.opener.editorref) {
parent.self.opener.editorref.surroundHTML(block, '');
} else {
parent.self.opener.serendipity.serendipity_imageSelector_addToBody(block, '{$media.textarea}');
}
parent.self.close();
</script>
{else}
<script>
block = '<a class="block_level opens_window" href="{$media.file.full_file}" title="{$media.file.realname|escape}"><!-- s9ymdb:{$media.file.id} -->{$media.file.realname|escape}</a>';
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_unknown' eventData=$media}
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_unknown' data=$media}
if (parent.self.opener == undefined) {
// in iframes, there is no opener, and the magnific popup is wrapped
parent.self = window.parent.parent.$.magnificPopup;
@ -190,6 +224,7 @@
parent.self.close();
</script>
{/if}
{/if}
{/if}{* if $media.file.is_image is something else end *}
</div>
{/if}

View File

@ -57,7 +57,7 @@
<div>{$plugin_example}</div>
{/if}
{if $spawnNuggets}
{serendipity_hookPlugin hook="backend_wysiwyg_nuggets" eventData=$ev hookAll=true}
{serendipity_hookPlugin hook="backend_wysiwyg_nuggets" data=$ev hookAll=true}
{if $ev['skip_nuggets'] === false && $init !== false}

View File

@ -119,13 +119,13 @@
{$media.external}
<div>
{if $media.file.is_image}
{serendipity_hookPlugin hook="frontend_image_selector" eventData=$media.file hookAll=true}
{serendipity_hookPlugin hook="frontend_image_selector" data=$media.file hookAll=true}
<img align="right" src="{$media.file.imgsrc}" />
<h1>{$CONST.YOU_CHOSE|@sprintf:$media.file.realname}</h1>
<p>
<form action="#" method="GET" id="imageForm" name="serendipity[selForm]" onsubmit="serendipity_imageSelector_done()">
<div>
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_hiddenfields' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_hiddenfields' data=$media.file}
<input type="hidden" name="imgThumbWidth" value="{$media.file.thumbWidth}" />
<input type="hidden" name="imgThumbHeight" value="{$media.file.thumbHeight}" />
<input type="hidden" name="imgWidth" value="{$media.file.dimensions_width}" />
@ -145,7 +145,7 @@
{if $media.file.fast_select}
<script type="text/javascript">
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' data=$media.file}
serendipity_imageSelector_done('{$media.textarea|@escape}');
</script>
{else}
@ -153,7 +153,7 @@
<br />
<input class="input_radio" id="radio_link_no" type="radio" name="serendipity[linkThumbnail]" value="no" {'linkThumbnail'|@ifRemember:'no':true} /><label for="radio_link_no">{$CONST.I_WANT_THUMB}</label><br />
<input class="input_radio" id="radio_link_yes" type="radio" name="serendipity[linkThumbnail]" value="yes" {'linkThumbnail'|@ifRemember:'yes'} /><label for="radio_link_yes">{$CONST.I_WANT_BIG_IMAGE}</label><br />
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagesize' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagesize' data=$media.file}
<br />
{if NOT $media.filename_only}
@ -163,7 +163,7 @@
<input class="input_radio" type="radio" name="serendipity[align]" {'align'|@ifRemember:''} value="" /> <img src="{serendipity_getFile file='img/img_align_top.png'}" vspace="5" /><br />
<input class="input_radio" type="radio" name="serendipity[align]" {'align'|@ifRemember:'left':true} value="left" /> <img src="{serendipity_getFile file='img/img_align_left.png'}" vspace="5" /><br />
<input class="input_radio" type="radio" name="serendipity[align]" {'align'|@ifRemember:'right'} value="right" /><img src="{serendipity_getFile file='img/img_align_right.png'}" vspace="5" /><br />
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagealign' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagealign' data=$media.file}
<br />
<b>{$CONST.IMAGE_AS_A_LINK}:</b>
@ -175,7 +175,7 @@
<input class="input_textbox" type="text" name="serendipity[url]" size="30" value="{$media.file.path}" /><br />
{else}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_link_url' eventData=$media.file.links}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_link_url' data=$media.file.links}
<input class="input_textbox" type="text" name="serendipity[url]" size="30" value="{$media.file.links.imagelinkurl}" /><br />
{/if}
@ -188,32 +188,32 @@
</select>
<br />
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagelink2' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagelink2' data=$media.file}
<br />
<b>{$CONST.COMMENT}:</b>
<br />
<textarea id="serendipity_imagecomment" name="serendipity[imagecomment]" rows="5" cols="40">{$media.file.props.base_property.COMMENT1|@escape}</textarea>
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagecomment' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagecomment' data=$media.file}
<br />
<b>{$CONST.MEDIA_ALT}:</b>
<br />
<input size="30" class="input_textbox" type="text" id="serendipity_alt" name="serendipity[alt]" value="{$media.file.props.base_property.ALT|@escape}" /></textarea>
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_alt' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_alt' data=$media.file}
<br />
<b>{$CONST.MEDIA_TITLE}:</b>
<br />
<input size="30" class="input_textbox" type="text" id="serendipity_title" name="serendipity[title]" value="{$media.file.props.base_property.TITLE|@escape}" /></textarea>
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_title' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_title' data=$media.file}
<br />
{/if}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_more' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_more' data=$media.file}
<input class="serendipityPrettyButton input_button" type="button" value="{$CONST.BACK}" onclick="history.go(-1);" />
<input class="serendipityPrettyButton input_button" type="button" value="{$CONST.DONE}" onclick="rememberMediaOptions(); {$media.file.origfinishJSFunction}" />
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_submit' eventData=$media.file}
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_submit' data=$media.file}
{/if}
</div>
</form>
@ -221,7 +221,7 @@
{else}
{if $media.filename_only}
<script type="text/javascript">
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' eventData=$media}
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' data=$media}
if (parent.self.opener == undefined) {
// in iframes, there is no opener, and the magnific popup is wrapped
parent.self = window.parent.parent.$.magnificPopup;
@ -233,7 +233,7 @@
{else}
<script type="text/javascript">
block = '<a href="{$media.file.full_file}" title="{$media.file.realname|@escape}" target="_blank">{$media.file.realname|@escape}</a>';
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_unknown' eventData=$media}
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_unknown' data=$media}
if (parent.self.opener == undefined) {
// in iframes, there is no opener, and the magnific popup is wrapped
parent.self = window.parent.parent.$.magnificPopup;