Plugin Directory

Changeset 3118690


Ignore:
Timestamp:
07/15/2024 07:52:07 PM (21 months ago)
Author:
antonlukin
Message:

Update to version 3.3 from GitHub

Location:
sharing-image
Files:
32 edited
1 copied

Legend:

Unmodified
Added
Removed
  • sharing-image/tags/3.3/assets/sidebar/index.asset.php

    r3109241 r3118690  
    1 <?php return array('dependencies' => array('react', 'wp-api-fetch', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-primitives'), 'version' => 'f7294e68b3214a597c70');
     1<?php return array('dependencies' => array('react', 'wp-api-fetch', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-primitives'), 'version' => '3cd3bf43b85328242b8c');
  • sharing-image/tags/3.3/assets/sidebar/index.js

    r3109241 r3118690  
    1 (()=>{"use strict";var e={n:t=>{var a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var r in a)e.o(a,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:a[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,a=window.wp.i18n,r=window.wp.apiFetch;var n=e.n(r);const i=window.wp.element,o=window.wp.data,l=window.wp.plugins,s=window.wp.editPost,c=window.wp.components,u=window.wp.notices,d=({name:e,layer:a,fieldset:r,updateFieldset:n,attribute:l})=>{const[s,u]=(0,i.useState)(!1),d=(0,o.useSelect)((e=>e("core/editor").getEditedPostAttribute(l)));return(0,i.useEffect)((()=>{s||n(e,d)}),[d]),(0,t.createElement)(c.TextareaControl,{name:e,label:a.title,value:r[e],onChange:t=>(t=>{n(e,t),u(!0)})(t)})},m=({name:e,layer:a,fieldset:r,updateFieldset:n,attribute:l,entity:s})=>{const[u,d]=(0,i.useState)(!1),m=(0,o.useSelect)((e=>{const t=[];let r=e("core/editor").getEditedPostAttribute(l);return r||(r=[]),r.forEach((a=>{const r=e("core").getEntityRecord("taxonomy",s,a);r&&t.push(r.name)})),t.join(a.separator||", ")}));return(0,i.useEffect)((()=>{u||n(e,m)}),[m]),(0,t.createElement)(c.TextareaControl,{name:e,label:a.title,value:r[e],onChange:t=>(t=>{n(e,t),d(!0)})(t)})},g=(0,i.forwardRef)((function({icon:e,size:t=24,...a},r){return(0,i.cloneElement)(e,{width:t,height:t,...a,ref:r})})),p=window.wp.primitives,w=(0,t.createElement)(p.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,t.createElement)(p.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z"})),E=window.wp.blockEditor,h=({name:e,layer:r,mode:n,fieldset:l,updateFieldset:s})=>{const u=(0,o.useSelect)((e=>e("core/editor").getEditedPostAttribute("featured_media"))),d=(0,o.useSelect)((t=>{const a=t("core").getMedia(l[e]);let r=a?.media_details?.sizes?.thumbnail?.source_url;return r||(r=a?.source_url),r}),[l]);(0,i.useEffect)((()=>{"manual"!==n&&"featured"===r.preset&&s(e,u)}),[u,e]);const m=()=>{s(e,0)};return(0,t.createElement)(E.MediaUploadCheck,null,(0,t.createElement)(E.MediaUpload,{onSelect:t=>{var a;a=t.id,s(e,a)},allowedTypes:["image"],value:l[e],render:({open:r})=>l[e]?(0,t.createElement)(t.Fragment,null,d&&(0,t.createElement)("img",{src:d,alt:"",className:"g4qkvGu7xkyoImxRZ6GR"}),(0,t.createElement)(c.Button,{variant:"link",onClick:m},(0,a.__)("Remove image","sharing-image"))):(e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)(g,{icon:w,className:"ipnonin6Xj5A9QU3K38L"}),(0,t.createElement)(c.Button,{variant:"link",onClick:e},(0,a.__)("Set layer image","sharing-image"))))(r)}))},f=({layers:e,mode:a,fieldset:r,updateFieldset:n})=>{const i=(e,a)=>(0,t.createElement)(c.TextareaControl,{name:a,label:e.title,defaultValue:r[a],onChange:e=>n(a,e)}),o=(e,o)=>{if("manual"===a)return i(e,o);const l={name:o,layer:e,fieldset:r,updateFieldset:n};switch(e.preset){case"title":return(0,t.createElement)(d,{...l,attribute:"title"});case"excerpt":return(0,t.createElement)(d,{...l,attribute:"excerpt"});case"categories":return(0,t.createElement)(m,{...l,attribute:"categories",entity:"category"});case"tags":return(0,t.createElement)(m,{...l,attribute:"tags",entity:"post_tag"})}return i(e,o)},l=(e,i)=>{const o={name:i,layer:e,mode:a,fieldset:r,updateFieldset:n};return(0,t.createElement)(c.BaseControl,{id:null,label:e.title},(0,t.createElement)(c.Flex,{justify:"flex-start",style:{border:"solid 1px #ccc",padding:"4px",borderRadius:"4px"}},(0,t.createElement)(h,{...o})))};return(()=>{const t=[];for(const a in e){const r=e[a];if(r.dynamic)switch(r.type){case"text":t.push(o(r,a));break;case"image":t.push(l(r,a))}}return t})()},y=({meta:e,templates:r,autogenerate:l})=>{const{createErrorNotice:s,removeNotice:d}=(0,o.useDispatch)(u.store),m=(0,o.useSelect)((e=>e("core/editor").getCurrentPostId())),g=(0,o.useSelect)((e=>e("core/editor").getEditedPostAttribute("meta")||{})),{editPost:p}=(0,o.useDispatch)("core/editor",[g]),[w,E]=(0,i.useState)(g[e.source]?.template),[h,y]=(0,i.useState)(g[e.fieldset]),[b,v]=(0,i.useState)(!1);return(0,i.useEffect)((()=>{p({meta:{[e.fieldset]:h}})}),[h]),(0,i.useEffect)((()=>{if(r[w])return;if(l&&r[l])return void E(l);const[e]=Object.keys(r);e&&E(e)}),[r,w,l]),(0,t.createElement)(c.Flex,{direction:"column",gap:2,style:{position:"relative"}},g[e.source]?.poster&&(0,t.createElement)("img",{src:g[e.source].poster,alt:(0,a.__)("Sharing Image poster","sharing-image")}),"auto"===g[e.source]?.mode&&(()=>{const e=(0,a.__)("Poster was generated automatically and will update on post saving.","sharing-image");return(0,t.createElement)(c.Dashicon,{icon:"awards",className:"BygBjwYpqPpeTZbVCcRT",title:e})})(),(0,t.createElement)(c.SelectControl,{value:w,options:Object.keys(r).map((e=>({label:r[e].title||(0,a.__)("Untitled","sharing-image"),value:e}))),onChange:t=>{p({meta:{[e.source]:{...g[e.source],template:t}}}),E(t)}}),r[w]&&(0,t.createElement)(c.Flex,{direction:"column",gap:2},(0,t.createElement)(f,{layers:r[w].layers||[],mode:g[e.source]?.mode,fieldset:h,updateFieldset:(e,t)=>{y((a=>({...a,[e]:t})))}})),(0,t.createElement)(c.Flex,{justify:"flex-start"},(0,t.createElement)(c.Button,{variant:"secondary",type:"button",onClick:()=>(async()=>{if(b)return;d("sharing-image-generate");const t={path:"sharing-image/v1/poster/"+m,method:"POST",data:{fieldset:h,template:w}};v(!0);try{const a=await n()(t);if(!a.data)throw new Error;p({meta:{[e.source]:{...a.data,template:w}}})}catch(e){s((0,a.__)("An unexpected error occurred","sharing-image"),{id:"sharing-image-generate",type:"snackbar"})}v(!1)})()},(0,a.__)("Generate","sharing-image")),(0,t.createElement)(c.Button,{variant:"tertiary",isDestructive:!0,onClick:()=>{p({meta:{[e.source]:{}}})}},(0,a.__)("Remove","sharing-image")),b&&(0,t.createElement)(c.Spinner,null)))};(0,l.registerPlugin)("sharing-image-sidebar",{render:()=>{const e=window.sharingImageSidebar||{};if(e.meta?.source&&e.meta?.fieldset)return(0,t.createElement)(s.PluginDocumentSettingPanel,{name:"sharing-image-sidebar",title:(0,a.__)("Sharing Image","sharing-image")},(0,t.createElement)(y,{...e}))}})})();
     1(()=>{"use strict";var e={n:t=>{var a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var r in a)e.o(a,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:a[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,a=window.wp.i18n,r=window.wp.apiFetch;var n=e.n(r);const i=window.wp.element,l=window.wp.data,o=window.wp.plugins,s=window.wp.editPost,c=window.wp.components,u=window.wp.notices,d=({name:e,layer:a,fieldset:r,updateFieldset:n,attribute:o})=>{const[s,u]=(0,i.useState)(!1),d=(0,l.useSelect)((e=>e("core/editor").getEditedPostAttribute(o)));return(0,i.useEffect)((()=>{s||n(e,d)}),[d]),(0,t.createElement)(c.TextareaControl,{name:e,label:a.title,value:r?.[e]||"",onChange:t=>(t=>{n(e,t),u(!0)})(t)})},m=({name:e,layer:a,fieldset:r,updateFieldset:n,attribute:o,entity:s})=>{const[u,d]=(0,i.useState)(!1),m=(0,l.useSelect)((e=>{const t=[];let r=e("core/editor").getEditedPostAttribute(o);return r||(r=[]),r.forEach((a=>{const r=e("core").getEntityRecord("taxonomy",s,a);r&&t.push(r.name)})),t.join(a.separator||", ")}));return(0,i.useEffect)((()=>{u||n(e,m)}),[m]),(0,t.createElement)(c.TextareaControl,{name:e,label:a.title,value:r?.[e]||"",onChange:t=>(t=>{n(e,t),d(!0)})(t)})},g=(0,i.forwardRef)((function({icon:e,size:t=24,...a},r){return(0,i.cloneElement)(e,{width:t,height:t,...a,ref:r})})),p=window.wp.primitives,w=(0,t.createElement)(p.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,t.createElement)(p.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z"})),E=window.wp.blockEditor,f=({name:e,layer:r,mode:n,fieldset:o,updateFieldset:s})=>{const u=(0,l.useSelect)((e=>e("core/editor").getEditedPostAttribute("featured_media"))),d=(0,l.useSelect)((t=>{if(!o?.[e])return null;const a=t("core").getMedia(o?.[e]);let r=a?.media_details?.sizes?.thumbnail?.source_url;return r||(r=a?.source_url),r}),[o]);(0,i.useEffect)((()=>{"manual"!==n&&"featured"===r.preset&&s(e,u)}),[u,e]);const m=()=>{s(e,0)};return(0,t.createElement)(E.MediaUploadCheck,null,(0,t.createElement)(E.MediaUpload,{onSelect:t=>{var a;a=t.id,s(e,a)},allowedTypes:["image"],value:o?.[e],render:({open:r})=>o?.[e]?(0,t.createElement)(t.Fragment,null,d&&(0,t.createElement)("img",{src:d,alt:"",className:"g4qkvGu7xkyoImxRZ6GR"}),(0,t.createElement)(c.Button,{variant:"link",onClick:m},(0,a.__)("Remove image","sharing-image"))):(e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)(g,{icon:w,className:"ipnonin6Xj5A9QU3K38L"}),(0,t.createElement)(c.Button,{variant:"link",onClick:e},(0,a.__)("Set layer image","sharing-image"))))(r)}))},h=({layers:e,mode:a,fieldset:r,updateFieldset:n})=>{const i=(e,a)=>(0,t.createElement)(c.TextareaControl,{name:a,label:e.title,defaultValue:r?.[a]||"",onChange:e=>n(a,e)}),l=(e,l)=>{if("manual"===a)return i(e,l);const o={name:l,layer:e,fieldset:r,updateFieldset:n};switch(e.preset){case"title":return(0,t.createElement)(d,{...o,attribute:"title"});case"excerpt":return(0,t.createElement)(d,{...o,attribute:"excerpt"});case"categories":return(0,t.createElement)(m,{...o,attribute:"categories",entity:"category"});case"tags":return(0,t.createElement)(m,{...o,attribute:"tags",entity:"post_tag"})}return i(e,l)},o=(e,i)=>{const l={name:i,layer:e,mode:a,fieldset:r,updateFieldset:n};return(0,t.createElement)(c.BaseControl,{id:null,label:e.title},(0,t.createElement)(c.Flex,{justify:"flex-start",style:{border:"solid 1px #ccc",padding:"4px",borderRadius:"4px"}},(0,t.createElement)(f,{...l})))};return(()=>{const t=[];for(const a in e){const r=e[a];if(r.dynamic)switch(r.type){case"text":t.push(l(r,a));break;case"image":t.push(o(r,a))}}return t})()},y=({meta:e,templates:r,autogenerate:o})=>{const{createErrorNotice:s,removeNotice:d}=(0,l.useDispatch)(u.store),m=(0,l.useSelect)((e=>e("core/editor").getCurrentPostId())),g=(0,l.useSelect)((e=>e("core/editor").getEditedPostAttribute("meta")||{})),{editPost:p}=(0,l.useDispatch)("core/editor",[g]),[w,E]=(0,i.useState)(g[e.source]?.template),[f,y]=(0,i.useState)(g[e.fieldset]),[b,v]=(0,i.useState)(!1);return(0,i.useEffect)((()=>{p({meta:{[e.fieldset]:f}})}),[f]),(0,i.useEffect)((()=>{if(r[w])return;if(o&&r[o])return void E(o);const[e]=Object.keys(r);e&&E(e)}),[r,w,o]),(0,t.createElement)(c.Flex,{direction:"column",gap:2,style:{position:"relative"}},g[e.source]?.poster&&(0,t.createElement)("img",{src:g[e.source].poster,alt:(0,a.__)("Sharing Image poster","sharing-image")}),"auto"===g[e.source]?.mode&&(()=>{const e=(0,a.__)("Poster was generated automatically and will update on post saving.","sharing-image");return(0,t.createElement)(c.Dashicon,{icon:"awards",className:"BygBjwYpqPpeTZbVCcRT",title:e})})(),(0,t.createElement)(c.SelectControl,{value:w,options:Object.keys(r).map((e=>({label:r[e].title||(0,a.__)("Untitled","sharing-image"),value:e}))),onChange:t=>{p({meta:{[e.source]:{...g[e.source],template:t}}}),E(t)}}),r[w]&&(0,t.createElement)(c.Flex,{direction:"column",gap:2},(0,t.createElement)(h,{layers:r[w].layers||[],mode:g[e.source]?.mode,fieldset:f,updateFieldset:(e,t)=>{y((a=>({...a,[e]:t})))}})),(0,t.createElement)(c.Flex,{justify:"flex-start"},(0,t.createElement)(c.Button,{variant:"secondary",type:"button",onClick:()=>(async()=>{if(b)return;d("sharing-image-generate");const t={path:"sharing-image/v1/poster/"+m,method:"POST",data:{fieldset:f,template:w}};v(!0);try{const a=await n()(t);if(!a.data)throw new Error;p({meta:{[e.source]:{...a.data,template:w}}})}catch(e){s((0,a.__)("An unexpected error occurred","sharing-image"),{id:"sharing-image-generate",type:"snackbar"})}v(!1)})()},(0,a.__)("Generate","sharing-image")),(0,t.createElement)(c.Button,{variant:"tertiary",isDestructive:!0,onClick:()=>{p({meta:{[e.source]:{}}})}},(0,a.__)("Remove","sharing-image")),b&&(0,t.createElement)(c.Spinner,null)))};(0,o.registerPlugin)("sharing-image-sidebar",{render:()=>{const e=window.sharingImageSidebar||{};if(e.meta?.source&&e.meta?.fieldset)return(0,t.createElement)(s.PluginDocumentSettingPanel,{name:"sharing-image-sidebar",title:(0,a.__)("Sharing Image","sharing-image")},(0,t.createElement)(y,{...e}))}})})();
  • sharing-image/tags/3.3/assets/widget/index.asset.php

    r3113737 r3118690  
    1 <?php return array('dependencies' => array(), 'version' => '954c4dd2d896f32b4998');
     1<?php return array('dependencies' => array(), 'version' => 'e096167d72f4deffd494');
  • sharing-image/tags/3.3/assets/widget/index.css

    r3108262 r3118690  
    1 .sharing-image-widget{display:block;margin-top:12px;max-width:100%;position:relative}.sharing-image-widget *{box-sizing:border-box}.sharing-image-widget .sharing-image-widget-template{display:block;margin-bottom:12px;width:100%}.sharing-image-widget .sharing-image-widget-template select{display:block;max-width:100%;width:100%}.sharing-image-widget .sharing-image-widget-fieldset{display:none;position:relative}.sharing-image-widget .sharing-image-widget-fieldset.fieldset-visible{display:block}.sharing-image-widget .sharing-image-widget-image{align-items:center;display:flex;flex-flow:row wrap;margin-bottom:12px}.sharing-image-widget .sharing-image-widget-image h4{display:block;margin:0 0 5px;width:100%}.sharing-image-widget .sharing-image-widget-image figure{align-items:center;border-radius:2px;display:flex;height:30px;justify-content:center;margin:0 8px 0 0;overflow:hidden;position:relative;width:30px}.sharing-image-widget .sharing-image-widget-image figure:before{content:"";display:block;font-family:dashicons;font-size:2rem;line-height:1;opacity:.375}.sharing-image-widget .sharing-image-widget-image figure img{background-color:#fff;display:block;height:100%;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%;z-index:3}.sharing-image-widget .sharing-image-widget-image .button{margin-right:14px}.sharing-image-widget .sharing-image-widget-text{display:block;margin-bottom:12px;width:100%}.sharing-image-widget .sharing-image-widget-text h4{margin:0}.sharing-image-widget .sharing-image-widget-text>*{display:block;width:100%}.sharing-image-widget .sharing-image-widget-text textarea{height:55px;margin-top:5px;min-height:28px}.sharing-image-widget .sharing-image-widget-designer{display:block;position:relative}.sharing-image-widget .sharing-image-widget-poster{display:block;position:relative;visibility:hidden;width:100%}.sharing-image-widget .sharing-image-widget-poster img{border-radius:2px;display:block;height:auto;margin-bottom:12px;max-width:100%}@media screen and (max-width:1199px){.sharing-image-widget .sharing-image-widget-poster{flex:1 1 100%;margin-left:0}}.sharing-image-widget .sharing-image-widget-manager{align-items:center;display:flex;width:100%}.sharing-image-widget .sharing-image-widget-manager .button{margin-right:12px}.sharing-image-widget .sharing-image-widget-warning{color:#b32d2e;display:none;margin:0 0 12px;position:relative}.sharing-image-widget .sharing-image-widget-warning.warning-visible{display:block}.sharing-image-widget .sharing-image-widget-delete{border-color:#b32d2e;color:#b32d2e;cursor:pointer;display:none}.sharing-image-widget .sharing-image-widget-delete:hover{color:#710d0d}.sharing-image-widget .sharing-image-widget-spinner{float:none;margin:0}.sharing-image-widget .sharing-image-widget-mode{color:#fff;cursor:help;display:none;font-family:dashicons;font-size:1rem;line-height:1;opacity:.375;position:absolute;right:.5rem;top:.5rem}.sharing-image-widget .sharing-image-widget-mode:after{content:""}.sharing-image-widget.widget-visible .sharing-image-widget-designer .sharing-image-widget-delete{display:inline-flex}.sharing-image-widget.widget-loader .sharing-image-widget-designer .sharing-image-widget-spinner,.sharing-image-widget.widget-visible .sharing-image-widget-poster{visibility:visible}.sharing-image-widget.widget-auto .sharing-image-widget-mode{display:block}.sharing-image-widget.widget-term{background:#fff;border-radius:3px;box-shadow:0 0 1px 1px rgba(0,0,0,.125);margin:20px 5% 20px 220px;padding:10px}@media(max-width:782px){.sharing-image-widget.widget-term{margin:20px 0 0;max-width:100%}}.sharing-image-widget.widget-post{max-width:480px;width:100%}
     1.sharing-image-widget{display:block;margin-top:12px;max-width:100%;position:relative}.sharing-image-widget *{box-sizing:border-box}.sharing-image-widget .sharing-image-widget-template{display:block;margin-bottom:12px;width:100%}.sharing-image-widget .sharing-image-widget-template select{display:block;max-width:100%;width:100%}.sharing-image-widget .sharing-image-widget-fieldset{display:none;position:relative}.sharing-image-widget .sharing-image-widget-fieldset.fieldset-visible{display:block}.sharing-image-widget .sharing-image-widget-image{align-items:center;display:flex;flex-flow:row wrap;margin-bottom:12px}.sharing-image-widget .sharing-image-widget-image h4{border:0;display:block;font-size:13px;margin:0 0 5px;padding:0;width:100%}.sharing-image-widget .sharing-image-widget-image figure{align-items:center;border-radius:2px;display:flex;height:30px;justify-content:center;margin:0 8px 0 0;overflow:hidden;position:relative;width:30px}.sharing-image-widget .sharing-image-widget-image figure:before{content:"";display:block;font-family:dashicons;font-size:2rem;line-height:1;opacity:.375}.sharing-image-widget .sharing-image-widget-image figure img{background-color:#fff;display:block;height:100%;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%;z-index:3}.sharing-image-widget .sharing-image-widget-image .button{margin-right:14px}.sharing-image-widget .sharing-image-widget-text{display:block;margin-bottom:12px;width:100%}.sharing-image-widget .sharing-image-widget-text h4{border:0;display:block;font-size:13px;margin:0 0 5px;padding:0;width:100%}.sharing-image-widget .sharing-image-widget-text>*{display:block;width:100%}.sharing-image-widget .sharing-image-widget-text textarea{height:55px;margin-top:5px;min-height:28px}.sharing-image-widget .sharing-image-widget-designer{display:block;position:relative}.sharing-image-widget .sharing-image-widget-poster{display:block;position:relative;visibility:hidden;width:100%}.sharing-image-widget .sharing-image-widget-poster img{border-radius:2px;display:block;height:auto;margin-bottom:12px;max-width:100%}@media screen and (max-width:1199px){.sharing-image-widget .sharing-image-widget-poster{flex:1 1 100%;margin-left:0}}.sharing-image-widget .sharing-image-widget-manager{align-items:center;display:flex;width:100%}.sharing-image-widget .sharing-image-widget-manager .button{margin-right:12px}.sharing-image-widget .sharing-image-widget-warning{color:#b32d2e;display:none;margin:0 0 12px;position:relative}.sharing-image-widget .sharing-image-widget-warning.warning-visible{display:block}.sharing-image-widget .sharing-image-widget-delete{border-color:#b32d2e;color:#b32d2e;cursor:pointer;display:none}.sharing-image-widget .sharing-image-widget-delete:hover{color:#710d0d}.sharing-image-widget .sharing-image-widget-spinner{float:none;margin:0}.sharing-image-widget .sharing-image-widget-mode{color:#fff;cursor:help;display:none;font-family:dashicons;font-size:1rem;line-height:1;opacity:.375;position:absolute;right:.5rem;top:.5rem}.sharing-image-widget .sharing-image-widget-mode:after{content:""}.sharing-image-widget.widget-visible .sharing-image-widget-designer .sharing-image-widget-delete{display:inline-flex}.sharing-image-widget.widget-loader .sharing-image-widget-designer .sharing-image-widget-spinner,.sharing-image-widget.widget-visible .sharing-image-widget-poster{visibility:visible}.sharing-image-widget.widget-auto .sharing-image-widget-mode{display:block}.sharing-image-widget.widget-term{background:#fff;border-radius:3px;box-shadow:0 0 1px 1px rgba(0,0,0,.125);margin:20px 5% 20px 220px;padding:10px}@media(max-width:782px){.sharing-image-widget.widget-term{margin:20px 0 0;max-width:100%}}.sharing-image-widget.widget-post{max-width:480px;width:100%}
  • sharing-image/tags/3.3/classes/class-generator.php

    r3113737 r3118690  
    121121            }
    122122
    123             if ( null === $path ) {
     123            if ( is_null( $path ) ) {
    124124                return $poster->show( Config::get_file_format(), Config::get_quality() );
    125125            }
     
    337337        $layer = self::update_layer_dimensions( $layer, $poster );
    338338
    339         // Prepare common layer args.
    340339        $args = self::prepare_args( $layer, array( 'x', 'y', 'opacity' ) );
    341340
     341        // Try to get file from attachment id.
     342        $file = get_attached_file( $layer['attachment'] );
     343
     344        if ( empty( $file ) ) {
     345            return $poster;
     346        }
     347
    342348        // Create new editor  instance by attachment id.
    343         $attachment = $image->make( get_attached_file( $layer['attachment'] ) );
     349        $attachment = $image->make( $file );
    344350
    345351        return $poster->insert( self::resize_attachment( $attachment, $layer ), $args, $boundary );
  • sharing-image/tags/3.3/classes/class-meta.php

    r3108262 r3118690  
    206206        }
    207207
    208         if ( null === $term_id ) {
     208        if ( is_null( $term_id ) ) {
    209209            $term_id = get_queried_object_id();
    210210        }
  • sharing-image/tags/3.3/classes/class-settings.php

    r3108262 r3118690  
    259259        $tab = self::get_current_tab();
    260260
    261         if ( null === $tab ) {
     261        if ( is_null( $tab ) ) {
    262262            return $title;
    263263        }
     
    313313        $tab = self::get_current_tab();
    314314
    315         if ( null === $tab ) {
     315        if ( is_null( $tab ) ) {
    316316            return;
    317317        }
     
    427427            }
    428428
    429             if ( null === $current && ! empty( $args['default'] ) ) {
     429            if ( is_null( $current ) && ! empty( $args['default'] ) ) {
    430430                $classes[] = 'active';
    431431            }
  • sharing-image/tags/3.3/classes/class-templates.php

    r3113737 r3118690  
    287287        $templates[ $index ] = $editor;
    288288
    289         if ( null === $editor ) {
     289        if ( is_null( $editor ) ) {
    290290            unset( $templates[ $index ] );
    291291        }
  • sharing-image/tags/3.3/classes/class-tools.php

    r3108262 r3118690  
    155155        }
    156156
     157        $layers = array();
     158
     159        foreach ( $template['layers'] as $layer ) {
     160            $key = Templates::generate_layer_key();
     161
     162            $layers[ $key ] = $layer;
     163        }
     164
     165        $template['layers'] = $layers;
     166
    157167        if ( ! Templates::update_templates( Templates::create_unique_index(), $template ) ) {
    158168            Settings::redirect_with_message( $redirect, 10 );
  • sharing-image/tags/3.3/classes/class-widget.php

    r3113737 r3118690  
    5656
    5757        // Try to autogenerate poster if it is needed.
    58         add_action( 'wp_after_insert_post', array( __CLASS__, 'autogenerate_poster' ), 20, 2 );
     58        add_action( 'wp_after_insert_post', array( __CLASS__, 'prepare_autogenerated_poster' ), 20, 2 );
    5959    }
    6060
     
    586586
    587587    /**
    588      * Try to autogenerate poster on post insert or update.
     588     * Prepare poster for autogeneration on post insert or update.
    589589     *
    590590     * @param int    $post_id Updated post_id.
    591591     * @param object $post Updated post object.
    592592     */
    593     public static function autogenerate_poster( $post_id, $post ) {
     593    public static function prepare_autogenerated_poster( $post_id, $post ) {
    594594        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
    595595            return;
     
    618618        }
    619619
    620         $index = Config::get_autogenerate_index();
     620        self::autogenerate_poster( $post_id );
     621    }
     622
     623    /**
     624     * Autogenerate poster for post_id and custom index if defined.
     625     * Use this public method to autogenerate poster manually.
     626     *
     627     * @param int         $post_id Post ID.
     628     * @param string|null $index Template index.
     629     */
     630    public static function autogenerate_poster( $post_id, $index = null ) {
     631        if ( is_null( $index ) ) {
     632            $index = Config::get_autogenerate_index();
     633        }
    621634
    622635        if ( ! Templates::has_template( $index ) ) {
     
    666679
    667680    /**
    668      * Generate poster by AJAX request.
    669      * Used in widget and sidebar.
     681     * Generate poster.
     682     * Used in widget, sidebar and for auto-generation.
    670683     *
    671684     * @param array   $fieldset  Fieldset data from widget.
  • sharing-image/tags/3.3/readme.txt

    r3113737 r3118690  
    44Tags: social image, sharing image, og image, facebook, twitter
    55Requires at least: 5.3
    6 Tested up to: 6.5
    7 Stable tag: 3.2
     6Tested up to: 6.5.5
     7Stable tag: 3.3
    88Requires PHP: 5.5
    99License: GPLv2 or later
     
    3131== Changelog ==
    3232
     33= 3.3 =
     34* Fixed duplicate layers key names on templates cloning.
     35* Fixed undefined preset fields.
     36* Updated PosterEditor library.
     37* Rebuild autogenerate_poster method.
     38
    3339= 3.2 =
    3440* Fixed post status checks and default template for auto-generating posters.
     
    4349
    4450= 3.0 =
    45 * Updated Poster Editor library
     51* Updated PosterEditor library
    4652* Redesigned template settings page
    4753* Added new layer settings
  • sharing-image/tags/3.3/sharing-image.php

    r3113737 r3118690  
    33 * Plugin Name:       Sharing Image
    44 * Description:       Create sharing image for Facebook, VK.com, Telegram and other social networks
    5  * Version:           3.2
     5 * Version:           3.3
    66 * Requires at least: 5.3
    77 * Requires PHP:      5.6
     
    2525 * Plugin version.
    2626 */
    27 define( 'SHARING_IMAGE_VERSION', '3.2' );
     27define( 'SHARING_IMAGE_VERSION', '3.3' );
    2828
    2929/**
  • sharing-image/tags/3.3/vendor/antonlukin/poster-editor/composer.json

    r3113737 r3118690  
    11{
    22    "name": "antonlukin/poster-editor",
    3     "version": "5.15",
     3    "version": "5.16",
    44    "description": "Wrapper for PHP's GD Library for easy image manipulation",
    55    "keywords": ["php", "image", "text", "gd"],
  • sharing-image/tags/3.3/vendor/antonlukin/poster-editor/src/PosterEditor.php

    r3113737 r3118690  
    2424  * @author   Anton Lukin <anton@lukin.me>
    2525  * @license  MIT License (http://www.opensource.org/licenses/mit-license.php)
    26   * @version  Release: 5.15
     26  * @version  Release: 5.16
    2727  * @link     https://github.com/antonlukin/poster-editor
    2828  */
     
    655655
    656656        // Scale by 25% and apply Gaussian blur.
    657         $this->resize($width / 4, $height / 4);
     657        $this->resize(intval($width / 4), intval($height / 4));
    658658        imagefilter($this->resource, IMG_FILTER_GAUSSIAN_BLUR);
    659659
    660660        // Scale result by 200% and blur again.
    661         $this->resize($width / 2, $height / 2);
     661        $this->resize(intval($width / 2), intval($height / 2));
    662662        imagefilter($this->resource, IMG_FILTER_GAUSSIAN_BLUR);
    663663
  • sharing-image/tags/3.3/vendor/composer/installed.json

    r3113737 r3118690  
    33        {
    44            "name": "antonlukin/poster-editor",
    5             "version": "5.15",
    6             "version_normalized": "5.15.0.0",
     5            "version": "5.16",
     6            "version_normalized": "5.16.0.0",
    77            "source": {
    88                "type": "git",
    99                "url": "https://github.com/antonlukin/poster-editor.git",
    10                 "reference": "2c31ec7b318e895ad7a140782df7ab5aaa46f24f"
    11             },
    12             "dist": {
    13                 "type": "zip",
    14                 "url": "https://api.github.com/repos/antonlukin/poster-editor/zipball/2c31ec7b318e895ad7a140782df7ab5aaa46f24f",
    15                 "reference": "2c31ec7b318e895ad7a140782df7ab5aaa46f24f",
     10                "reference": "190fc123de1d8c4453481d413dfcf40bd58eb30d"
     11            },
     12            "dist": {
     13                "type": "zip",
     14                "url": "https://api.github.com/repos/antonlukin/poster-editor/zipball/190fc123de1d8c4453481d413dfcf40bd58eb30d",
     15                "reference": "190fc123de1d8c4453481d413dfcf40bd58eb30d",
    1616                "shasum": ""
    1717            },
     
    2626                "ext-gd": "to use GD library based image processing."
    2727            },
    28             "time": "2024-07-06T16:53:08+00:00",
     28            "time": "2024-07-14T17:11:11+00:00",
    2929            "type": "library",
    3030            "installation-source": "dist",
     
    5454            "support": {
    5555                "issues": "https://github.com/antonlukin/poster-editor/issues",
    56                 "source": "https://github.com/antonlukin/poster-editor/tree/v5.15"
     56                "source": "https://github.com/antonlukin/poster-editor/tree/v5.16"
    5757            },
    5858            "install-path": "../antonlukin/poster-editor"
  • sharing-image/tags/3.3/vendor/composer/installed.php

    r3113737 r3118690  
    44        'pretty_version' => 'dev-develop',
    55        'version' => 'dev-develop',
    6         'reference' => 'fdf5f29ddff8a79a24fee5ff129362a66eb52672',
     6        'reference' => 'b4de69e2c9ba0158f23679a67f2cef96b399d307',
    77        'type' => 'library',
    88        'install_path' => __DIR__ . '/../../',
     
    1212    'versions' => array(
    1313        'antonlukin/poster-editor' => array(
    14             'pretty_version' => '5.15',
    15             'version' => '5.15.0.0',
    16             'reference' => '2c31ec7b318e895ad7a140782df7ab5aaa46f24f',
     14            'pretty_version' => '5.16',
     15            'version' => '5.16.0.0',
     16            'reference' => '190fc123de1d8c4453481d413dfcf40bd58eb30d',
    1717            'type' => 'library',
    1818            'install_path' => __DIR__ . '/../antonlukin/poster-editor',
     
    2323            'pretty_version' => 'dev-develop',
    2424            'version' => 'dev-develop',
    25             'reference' => 'fdf5f29ddff8a79a24fee5ff129362a66eb52672',
     25            'reference' => 'b4de69e2c9ba0158f23679a67f2cef96b399d307',
    2626            'type' => 'library',
    2727            'install_path' => __DIR__ . '/../../',
  • sharing-image/trunk/assets/sidebar/index.asset.php

    r3109241 r3118690  
    1 <?php return array('dependencies' => array('react', 'wp-api-fetch', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-primitives'), 'version' => 'f7294e68b3214a597c70');
     1<?php return array('dependencies' => array('react', 'wp-api-fetch', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-primitives'), 'version' => '3cd3bf43b85328242b8c');
  • sharing-image/trunk/assets/sidebar/index.js

    r3109241 r3118690  
    1 (()=>{"use strict";var e={n:t=>{var a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var r in a)e.o(a,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:a[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,a=window.wp.i18n,r=window.wp.apiFetch;var n=e.n(r);const i=window.wp.element,o=window.wp.data,l=window.wp.plugins,s=window.wp.editPost,c=window.wp.components,u=window.wp.notices,d=({name:e,layer:a,fieldset:r,updateFieldset:n,attribute:l})=>{const[s,u]=(0,i.useState)(!1),d=(0,o.useSelect)((e=>e("core/editor").getEditedPostAttribute(l)));return(0,i.useEffect)((()=>{s||n(e,d)}),[d]),(0,t.createElement)(c.TextareaControl,{name:e,label:a.title,value:r[e],onChange:t=>(t=>{n(e,t),u(!0)})(t)})},m=({name:e,layer:a,fieldset:r,updateFieldset:n,attribute:l,entity:s})=>{const[u,d]=(0,i.useState)(!1),m=(0,o.useSelect)((e=>{const t=[];let r=e("core/editor").getEditedPostAttribute(l);return r||(r=[]),r.forEach((a=>{const r=e("core").getEntityRecord("taxonomy",s,a);r&&t.push(r.name)})),t.join(a.separator||", ")}));return(0,i.useEffect)((()=>{u||n(e,m)}),[m]),(0,t.createElement)(c.TextareaControl,{name:e,label:a.title,value:r[e],onChange:t=>(t=>{n(e,t),d(!0)})(t)})},g=(0,i.forwardRef)((function({icon:e,size:t=24,...a},r){return(0,i.cloneElement)(e,{width:t,height:t,...a,ref:r})})),p=window.wp.primitives,w=(0,t.createElement)(p.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,t.createElement)(p.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z"})),E=window.wp.blockEditor,h=({name:e,layer:r,mode:n,fieldset:l,updateFieldset:s})=>{const u=(0,o.useSelect)((e=>e("core/editor").getEditedPostAttribute("featured_media"))),d=(0,o.useSelect)((t=>{const a=t("core").getMedia(l[e]);let r=a?.media_details?.sizes?.thumbnail?.source_url;return r||(r=a?.source_url),r}),[l]);(0,i.useEffect)((()=>{"manual"!==n&&"featured"===r.preset&&s(e,u)}),[u,e]);const m=()=>{s(e,0)};return(0,t.createElement)(E.MediaUploadCheck,null,(0,t.createElement)(E.MediaUpload,{onSelect:t=>{var a;a=t.id,s(e,a)},allowedTypes:["image"],value:l[e],render:({open:r})=>l[e]?(0,t.createElement)(t.Fragment,null,d&&(0,t.createElement)("img",{src:d,alt:"",className:"g4qkvGu7xkyoImxRZ6GR"}),(0,t.createElement)(c.Button,{variant:"link",onClick:m},(0,a.__)("Remove image","sharing-image"))):(e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)(g,{icon:w,className:"ipnonin6Xj5A9QU3K38L"}),(0,t.createElement)(c.Button,{variant:"link",onClick:e},(0,a.__)("Set layer image","sharing-image"))))(r)}))},f=({layers:e,mode:a,fieldset:r,updateFieldset:n})=>{const i=(e,a)=>(0,t.createElement)(c.TextareaControl,{name:a,label:e.title,defaultValue:r[a],onChange:e=>n(a,e)}),o=(e,o)=>{if("manual"===a)return i(e,o);const l={name:o,layer:e,fieldset:r,updateFieldset:n};switch(e.preset){case"title":return(0,t.createElement)(d,{...l,attribute:"title"});case"excerpt":return(0,t.createElement)(d,{...l,attribute:"excerpt"});case"categories":return(0,t.createElement)(m,{...l,attribute:"categories",entity:"category"});case"tags":return(0,t.createElement)(m,{...l,attribute:"tags",entity:"post_tag"})}return i(e,o)},l=(e,i)=>{const o={name:i,layer:e,mode:a,fieldset:r,updateFieldset:n};return(0,t.createElement)(c.BaseControl,{id:null,label:e.title},(0,t.createElement)(c.Flex,{justify:"flex-start",style:{border:"solid 1px #ccc",padding:"4px",borderRadius:"4px"}},(0,t.createElement)(h,{...o})))};return(()=>{const t=[];for(const a in e){const r=e[a];if(r.dynamic)switch(r.type){case"text":t.push(o(r,a));break;case"image":t.push(l(r,a))}}return t})()},y=({meta:e,templates:r,autogenerate:l})=>{const{createErrorNotice:s,removeNotice:d}=(0,o.useDispatch)(u.store),m=(0,o.useSelect)((e=>e("core/editor").getCurrentPostId())),g=(0,o.useSelect)((e=>e("core/editor").getEditedPostAttribute("meta")||{})),{editPost:p}=(0,o.useDispatch)("core/editor",[g]),[w,E]=(0,i.useState)(g[e.source]?.template),[h,y]=(0,i.useState)(g[e.fieldset]),[b,v]=(0,i.useState)(!1);return(0,i.useEffect)((()=>{p({meta:{[e.fieldset]:h}})}),[h]),(0,i.useEffect)((()=>{if(r[w])return;if(l&&r[l])return void E(l);const[e]=Object.keys(r);e&&E(e)}),[r,w,l]),(0,t.createElement)(c.Flex,{direction:"column",gap:2,style:{position:"relative"}},g[e.source]?.poster&&(0,t.createElement)("img",{src:g[e.source].poster,alt:(0,a.__)("Sharing Image poster","sharing-image")}),"auto"===g[e.source]?.mode&&(()=>{const e=(0,a.__)("Poster was generated automatically and will update on post saving.","sharing-image");return(0,t.createElement)(c.Dashicon,{icon:"awards",className:"BygBjwYpqPpeTZbVCcRT",title:e})})(),(0,t.createElement)(c.SelectControl,{value:w,options:Object.keys(r).map((e=>({label:r[e].title||(0,a.__)("Untitled","sharing-image"),value:e}))),onChange:t=>{p({meta:{[e.source]:{...g[e.source],template:t}}}),E(t)}}),r[w]&&(0,t.createElement)(c.Flex,{direction:"column",gap:2},(0,t.createElement)(f,{layers:r[w].layers||[],mode:g[e.source]?.mode,fieldset:h,updateFieldset:(e,t)=>{y((a=>({...a,[e]:t})))}})),(0,t.createElement)(c.Flex,{justify:"flex-start"},(0,t.createElement)(c.Button,{variant:"secondary",type:"button",onClick:()=>(async()=>{if(b)return;d("sharing-image-generate");const t={path:"sharing-image/v1/poster/"+m,method:"POST",data:{fieldset:h,template:w}};v(!0);try{const a=await n()(t);if(!a.data)throw new Error;p({meta:{[e.source]:{...a.data,template:w}}})}catch(e){s((0,a.__)("An unexpected error occurred","sharing-image"),{id:"sharing-image-generate",type:"snackbar"})}v(!1)})()},(0,a.__)("Generate","sharing-image")),(0,t.createElement)(c.Button,{variant:"tertiary",isDestructive:!0,onClick:()=>{p({meta:{[e.source]:{}}})}},(0,a.__)("Remove","sharing-image")),b&&(0,t.createElement)(c.Spinner,null)))};(0,l.registerPlugin)("sharing-image-sidebar",{render:()=>{const e=window.sharingImageSidebar||{};if(e.meta?.source&&e.meta?.fieldset)return(0,t.createElement)(s.PluginDocumentSettingPanel,{name:"sharing-image-sidebar",title:(0,a.__)("Sharing Image","sharing-image")},(0,t.createElement)(y,{...e}))}})})();
     1(()=>{"use strict";var e={n:t=>{var a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var r in a)e.o(a,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:a[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,a=window.wp.i18n,r=window.wp.apiFetch;var n=e.n(r);const i=window.wp.element,l=window.wp.data,o=window.wp.plugins,s=window.wp.editPost,c=window.wp.components,u=window.wp.notices,d=({name:e,layer:a,fieldset:r,updateFieldset:n,attribute:o})=>{const[s,u]=(0,i.useState)(!1),d=(0,l.useSelect)((e=>e("core/editor").getEditedPostAttribute(o)));return(0,i.useEffect)((()=>{s||n(e,d)}),[d]),(0,t.createElement)(c.TextareaControl,{name:e,label:a.title,value:r?.[e]||"",onChange:t=>(t=>{n(e,t),u(!0)})(t)})},m=({name:e,layer:a,fieldset:r,updateFieldset:n,attribute:o,entity:s})=>{const[u,d]=(0,i.useState)(!1),m=(0,l.useSelect)((e=>{const t=[];let r=e("core/editor").getEditedPostAttribute(o);return r||(r=[]),r.forEach((a=>{const r=e("core").getEntityRecord("taxonomy",s,a);r&&t.push(r.name)})),t.join(a.separator||", ")}));return(0,i.useEffect)((()=>{u||n(e,m)}),[m]),(0,t.createElement)(c.TextareaControl,{name:e,label:a.title,value:r?.[e]||"",onChange:t=>(t=>{n(e,t),d(!0)})(t)})},g=(0,i.forwardRef)((function({icon:e,size:t=24,...a},r){return(0,i.cloneElement)(e,{width:t,height:t,...a,ref:r})})),p=window.wp.primitives,w=(0,t.createElement)(p.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,t.createElement)(p.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z"})),E=window.wp.blockEditor,f=({name:e,layer:r,mode:n,fieldset:o,updateFieldset:s})=>{const u=(0,l.useSelect)((e=>e("core/editor").getEditedPostAttribute("featured_media"))),d=(0,l.useSelect)((t=>{if(!o?.[e])return null;const a=t("core").getMedia(o?.[e]);let r=a?.media_details?.sizes?.thumbnail?.source_url;return r||(r=a?.source_url),r}),[o]);(0,i.useEffect)((()=>{"manual"!==n&&"featured"===r.preset&&s(e,u)}),[u,e]);const m=()=>{s(e,0)};return(0,t.createElement)(E.MediaUploadCheck,null,(0,t.createElement)(E.MediaUpload,{onSelect:t=>{var a;a=t.id,s(e,a)},allowedTypes:["image"],value:o?.[e],render:({open:r})=>o?.[e]?(0,t.createElement)(t.Fragment,null,d&&(0,t.createElement)("img",{src:d,alt:"",className:"g4qkvGu7xkyoImxRZ6GR"}),(0,t.createElement)(c.Button,{variant:"link",onClick:m},(0,a.__)("Remove image","sharing-image"))):(e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)(g,{icon:w,className:"ipnonin6Xj5A9QU3K38L"}),(0,t.createElement)(c.Button,{variant:"link",onClick:e},(0,a.__)("Set layer image","sharing-image"))))(r)}))},h=({layers:e,mode:a,fieldset:r,updateFieldset:n})=>{const i=(e,a)=>(0,t.createElement)(c.TextareaControl,{name:a,label:e.title,defaultValue:r?.[a]||"",onChange:e=>n(a,e)}),l=(e,l)=>{if("manual"===a)return i(e,l);const o={name:l,layer:e,fieldset:r,updateFieldset:n};switch(e.preset){case"title":return(0,t.createElement)(d,{...o,attribute:"title"});case"excerpt":return(0,t.createElement)(d,{...o,attribute:"excerpt"});case"categories":return(0,t.createElement)(m,{...o,attribute:"categories",entity:"category"});case"tags":return(0,t.createElement)(m,{...o,attribute:"tags",entity:"post_tag"})}return i(e,l)},o=(e,i)=>{const l={name:i,layer:e,mode:a,fieldset:r,updateFieldset:n};return(0,t.createElement)(c.BaseControl,{id:null,label:e.title},(0,t.createElement)(c.Flex,{justify:"flex-start",style:{border:"solid 1px #ccc",padding:"4px",borderRadius:"4px"}},(0,t.createElement)(f,{...l})))};return(()=>{const t=[];for(const a in e){const r=e[a];if(r.dynamic)switch(r.type){case"text":t.push(l(r,a));break;case"image":t.push(o(r,a))}}return t})()},y=({meta:e,templates:r,autogenerate:o})=>{const{createErrorNotice:s,removeNotice:d}=(0,l.useDispatch)(u.store),m=(0,l.useSelect)((e=>e("core/editor").getCurrentPostId())),g=(0,l.useSelect)((e=>e("core/editor").getEditedPostAttribute("meta")||{})),{editPost:p}=(0,l.useDispatch)("core/editor",[g]),[w,E]=(0,i.useState)(g[e.source]?.template),[f,y]=(0,i.useState)(g[e.fieldset]),[b,v]=(0,i.useState)(!1);return(0,i.useEffect)((()=>{p({meta:{[e.fieldset]:f}})}),[f]),(0,i.useEffect)((()=>{if(r[w])return;if(o&&r[o])return void E(o);const[e]=Object.keys(r);e&&E(e)}),[r,w,o]),(0,t.createElement)(c.Flex,{direction:"column",gap:2,style:{position:"relative"}},g[e.source]?.poster&&(0,t.createElement)("img",{src:g[e.source].poster,alt:(0,a.__)("Sharing Image poster","sharing-image")}),"auto"===g[e.source]?.mode&&(()=>{const e=(0,a.__)("Poster was generated automatically and will update on post saving.","sharing-image");return(0,t.createElement)(c.Dashicon,{icon:"awards",className:"BygBjwYpqPpeTZbVCcRT",title:e})})(),(0,t.createElement)(c.SelectControl,{value:w,options:Object.keys(r).map((e=>({label:r[e].title||(0,a.__)("Untitled","sharing-image"),value:e}))),onChange:t=>{p({meta:{[e.source]:{...g[e.source],template:t}}}),E(t)}}),r[w]&&(0,t.createElement)(c.Flex,{direction:"column",gap:2},(0,t.createElement)(h,{layers:r[w].layers||[],mode:g[e.source]?.mode,fieldset:f,updateFieldset:(e,t)=>{y((a=>({...a,[e]:t})))}})),(0,t.createElement)(c.Flex,{justify:"flex-start"},(0,t.createElement)(c.Button,{variant:"secondary",type:"button",onClick:()=>(async()=>{if(b)return;d("sharing-image-generate");const t={path:"sharing-image/v1/poster/"+m,method:"POST",data:{fieldset:f,template:w}};v(!0);try{const a=await n()(t);if(!a.data)throw new Error;p({meta:{[e.source]:{...a.data,template:w}}})}catch(e){s((0,a.__)("An unexpected error occurred","sharing-image"),{id:"sharing-image-generate",type:"snackbar"})}v(!1)})()},(0,a.__)("Generate","sharing-image")),(0,t.createElement)(c.Button,{variant:"tertiary",isDestructive:!0,onClick:()=>{p({meta:{[e.source]:{}}})}},(0,a.__)("Remove","sharing-image")),b&&(0,t.createElement)(c.Spinner,null)))};(0,o.registerPlugin)("sharing-image-sidebar",{render:()=>{const e=window.sharingImageSidebar||{};if(e.meta?.source&&e.meta?.fieldset)return(0,t.createElement)(s.PluginDocumentSettingPanel,{name:"sharing-image-sidebar",title:(0,a.__)("Sharing Image","sharing-image")},(0,t.createElement)(y,{...e}))}})})();
  • sharing-image/trunk/assets/widget/index.asset.php

    r3113737 r3118690  
    1 <?php return array('dependencies' => array(), 'version' => '954c4dd2d896f32b4998');
     1<?php return array('dependencies' => array(), 'version' => 'e096167d72f4deffd494');
  • sharing-image/trunk/assets/widget/index.css

    r3108262 r3118690  
    1 .sharing-image-widget{display:block;margin-top:12px;max-width:100%;position:relative}.sharing-image-widget *{box-sizing:border-box}.sharing-image-widget .sharing-image-widget-template{display:block;margin-bottom:12px;width:100%}.sharing-image-widget .sharing-image-widget-template select{display:block;max-width:100%;width:100%}.sharing-image-widget .sharing-image-widget-fieldset{display:none;position:relative}.sharing-image-widget .sharing-image-widget-fieldset.fieldset-visible{display:block}.sharing-image-widget .sharing-image-widget-image{align-items:center;display:flex;flex-flow:row wrap;margin-bottom:12px}.sharing-image-widget .sharing-image-widget-image h4{display:block;margin:0 0 5px;width:100%}.sharing-image-widget .sharing-image-widget-image figure{align-items:center;border-radius:2px;display:flex;height:30px;justify-content:center;margin:0 8px 0 0;overflow:hidden;position:relative;width:30px}.sharing-image-widget .sharing-image-widget-image figure:before{content:"";display:block;font-family:dashicons;font-size:2rem;line-height:1;opacity:.375}.sharing-image-widget .sharing-image-widget-image figure img{background-color:#fff;display:block;height:100%;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%;z-index:3}.sharing-image-widget .sharing-image-widget-image .button{margin-right:14px}.sharing-image-widget .sharing-image-widget-text{display:block;margin-bottom:12px;width:100%}.sharing-image-widget .sharing-image-widget-text h4{margin:0}.sharing-image-widget .sharing-image-widget-text>*{display:block;width:100%}.sharing-image-widget .sharing-image-widget-text textarea{height:55px;margin-top:5px;min-height:28px}.sharing-image-widget .sharing-image-widget-designer{display:block;position:relative}.sharing-image-widget .sharing-image-widget-poster{display:block;position:relative;visibility:hidden;width:100%}.sharing-image-widget .sharing-image-widget-poster img{border-radius:2px;display:block;height:auto;margin-bottom:12px;max-width:100%}@media screen and (max-width:1199px){.sharing-image-widget .sharing-image-widget-poster{flex:1 1 100%;margin-left:0}}.sharing-image-widget .sharing-image-widget-manager{align-items:center;display:flex;width:100%}.sharing-image-widget .sharing-image-widget-manager .button{margin-right:12px}.sharing-image-widget .sharing-image-widget-warning{color:#b32d2e;display:none;margin:0 0 12px;position:relative}.sharing-image-widget .sharing-image-widget-warning.warning-visible{display:block}.sharing-image-widget .sharing-image-widget-delete{border-color:#b32d2e;color:#b32d2e;cursor:pointer;display:none}.sharing-image-widget .sharing-image-widget-delete:hover{color:#710d0d}.sharing-image-widget .sharing-image-widget-spinner{float:none;margin:0}.sharing-image-widget .sharing-image-widget-mode{color:#fff;cursor:help;display:none;font-family:dashicons;font-size:1rem;line-height:1;opacity:.375;position:absolute;right:.5rem;top:.5rem}.sharing-image-widget .sharing-image-widget-mode:after{content:""}.sharing-image-widget.widget-visible .sharing-image-widget-designer .sharing-image-widget-delete{display:inline-flex}.sharing-image-widget.widget-loader .sharing-image-widget-designer .sharing-image-widget-spinner,.sharing-image-widget.widget-visible .sharing-image-widget-poster{visibility:visible}.sharing-image-widget.widget-auto .sharing-image-widget-mode{display:block}.sharing-image-widget.widget-term{background:#fff;border-radius:3px;box-shadow:0 0 1px 1px rgba(0,0,0,.125);margin:20px 5% 20px 220px;padding:10px}@media(max-width:782px){.sharing-image-widget.widget-term{margin:20px 0 0;max-width:100%}}.sharing-image-widget.widget-post{max-width:480px;width:100%}
     1.sharing-image-widget{display:block;margin-top:12px;max-width:100%;position:relative}.sharing-image-widget *{box-sizing:border-box}.sharing-image-widget .sharing-image-widget-template{display:block;margin-bottom:12px;width:100%}.sharing-image-widget .sharing-image-widget-template select{display:block;max-width:100%;width:100%}.sharing-image-widget .sharing-image-widget-fieldset{display:none;position:relative}.sharing-image-widget .sharing-image-widget-fieldset.fieldset-visible{display:block}.sharing-image-widget .sharing-image-widget-image{align-items:center;display:flex;flex-flow:row wrap;margin-bottom:12px}.sharing-image-widget .sharing-image-widget-image h4{border:0;display:block;font-size:13px;margin:0 0 5px;padding:0;width:100%}.sharing-image-widget .sharing-image-widget-image figure{align-items:center;border-radius:2px;display:flex;height:30px;justify-content:center;margin:0 8px 0 0;overflow:hidden;position:relative;width:30px}.sharing-image-widget .sharing-image-widget-image figure:before{content:"";display:block;font-family:dashicons;font-size:2rem;line-height:1;opacity:.375}.sharing-image-widget .sharing-image-widget-image figure img{background-color:#fff;display:block;height:100%;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%;z-index:3}.sharing-image-widget .sharing-image-widget-image .button{margin-right:14px}.sharing-image-widget .sharing-image-widget-text{display:block;margin-bottom:12px;width:100%}.sharing-image-widget .sharing-image-widget-text h4{border:0;display:block;font-size:13px;margin:0 0 5px;padding:0;width:100%}.sharing-image-widget .sharing-image-widget-text>*{display:block;width:100%}.sharing-image-widget .sharing-image-widget-text textarea{height:55px;margin-top:5px;min-height:28px}.sharing-image-widget .sharing-image-widget-designer{display:block;position:relative}.sharing-image-widget .sharing-image-widget-poster{display:block;position:relative;visibility:hidden;width:100%}.sharing-image-widget .sharing-image-widget-poster img{border-radius:2px;display:block;height:auto;margin-bottom:12px;max-width:100%}@media screen and (max-width:1199px){.sharing-image-widget .sharing-image-widget-poster{flex:1 1 100%;margin-left:0}}.sharing-image-widget .sharing-image-widget-manager{align-items:center;display:flex;width:100%}.sharing-image-widget .sharing-image-widget-manager .button{margin-right:12px}.sharing-image-widget .sharing-image-widget-warning{color:#b32d2e;display:none;margin:0 0 12px;position:relative}.sharing-image-widget .sharing-image-widget-warning.warning-visible{display:block}.sharing-image-widget .sharing-image-widget-delete{border-color:#b32d2e;color:#b32d2e;cursor:pointer;display:none}.sharing-image-widget .sharing-image-widget-delete:hover{color:#710d0d}.sharing-image-widget .sharing-image-widget-spinner{float:none;margin:0}.sharing-image-widget .sharing-image-widget-mode{color:#fff;cursor:help;display:none;font-family:dashicons;font-size:1rem;line-height:1;opacity:.375;position:absolute;right:.5rem;top:.5rem}.sharing-image-widget .sharing-image-widget-mode:after{content:""}.sharing-image-widget.widget-visible .sharing-image-widget-designer .sharing-image-widget-delete{display:inline-flex}.sharing-image-widget.widget-loader .sharing-image-widget-designer .sharing-image-widget-spinner,.sharing-image-widget.widget-visible .sharing-image-widget-poster{visibility:visible}.sharing-image-widget.widget-auto .sharing-image-widget-mode{display:block}.sharing-image-widget.widget-term{background:#fff;border-radius:3px;box-shadow:0 0 1px 1px rgba(0,0,0,.125);margin:20px 5% 20px 220px;padding:10px}@media(max-width:782px){.sharing-image-widget.widget-term{margin:20px 0 0;max-width:100%}}.sharing-image-widget.widget-post{max-width:480px;width:100%}
  • sharing-image/trunk/classes/class-generator.php

    r3113737 r3118690  
    121121            }
    122122
    123             if ( null === $path ) {
     123            if ( is_null( $path ) ) {
    124124                return $poster->show( Config::get_file_format(), Config::get_quality() );
    125125            }
     
    337337        $layer = self::update_layer_dimensions( $layer, $poster );
    338338
    339         // Prepare common layer args.
    340339        $args = self::prepare_args( $layer, array( 'x', 'y', 'opacity' ) );
    341340
     341        // Try to get file from attachment id.
     342        $file = get_attached_file( $layer['attachment'] );
     343
     344        if ( empty( $file ) ) {
     345            return $poster;
     346        }
     347
    342348        // Create new editor  instance by attachment id.
    343         $attachment = $image->make( get_attached_file( $layer['attachment'] ) );
     349        $attachment = $image->make( $file );
    344350
    345351        return $poster->insert( self::resize_attachment( $attachment, $layer ), $args, $boundary );
  • sharing-image/trunk/classes/class-meta.php

    r3108262 r3118690  
    206206        }
    207207
    208         if ( null === $term_id ) {
     208        if ( is_null( $term_id ) ) {
    209209            $term_id = get_queried_object_id();
    210210        }
  • sharing-image/trunk/classes/class-settings.php

    r3108262 r3118690  
    259259        $tab = self::get_current_tab();
    260260
    261         if ( null === $tab ) {
     261        if ( is_null( $tab ) ) {
    262262            return $title;
    263263        }
     
    313313        $tab = self::get_current_tab();
    314314
    315         if ( null === $tab ) {
     315        if ( is_null( $tab ) ) {
    316316            return;
    317317        }
     
    427427            }
    428428
    429             if ( null === $current && ! empty( $args['default'] ) ) {
     429            if ( is_null( $current ) && ! empty( $args['default'] ) ) {
    430430                $classes[] = 'active';
    431431            }
  • sharing-image/trunk/classes/class-templates.php

    r3113737 r3118690  
    287287        $templates[ $index ] = $editor;
    288288
    289         if ( null === $editor ) {
     289        if ( is_null( $editor ) ) {
    290290            unset( $templates[ $index ] );
    291291        }
  • sharing-image/trunk/classes/class-tools.php

    r3108262 r3118690  
    155155        }
    156156
     157        $layers = array();
     158
     159        foreach ( $template['layers'] as $layer ) {
     160            $key = Templates::generate_layer_key();
     161
     162            $layers[ $key ] = $layer;
     163        }
     164
     165        $template['layers'] = $layers;
     166
    157167        if ( ! Templates::update_templates( Templates::create_unique_index(), $template ) ) {
    158168            Settings::redirect_with_message( $redirect, 10 );
  • sharing-image/trunk/classes/class-widget.php

    r3113737 r3118690  
    5656
    5757        // Try to autogenerate poster if it is needed.
    58         add_action( 'wp_after_insert_post', array( __CLASS__, 'autogenerate_poster' ), 20, 2 );
     58        add_action( 'wp_after_insert_post', array( __CLASS__, 'prepare_autogenerated_poster' ), 20, 2 );
    5959    }
    6060
     
    586586
    587587    /**
    588      * Try to autogenerate poster on post insert or update.
     588     * Prepare poster for autogeneration on post insert or update.
    589589     *
    590590     * @param int    $post_id Updated post_id.
    591591     * @param object $post Updated post object.
    592592     */
    593     public static function autogenerate_poster( $post_id, $post ) {
     593    public static function prepare_autogenerated_poster( $post_id, $post ) {
    594594        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
    595595            return;
     
    618618        }
    619619
    620         $index = Config::get_autogenerate_index();
     620        self::autogenerate_poster( $post_id );
     621    }
     622
     623    /**
     624     * Autogenerate poster for post_id and custom index if defined.
     625     * Use this public method to autogenerate poster manually.
     626     *
     627     * @param int         $post_id Post ID.
     628     * @param string|null $index Template index.
     629     */
     630    public static function autogenerate_poster( $post_id, $index = null ) {
     631        if ( is_null( $index ) ) {
     632            $index = Config::get_autogenerate_index();
     633        }
    621634
    622635        if ( ! Templates::has_template( $index ) ) {
     
    666679
    667680    /**
    668      * Generate poster by AJAX request.
    669      * Used in widget and sidebar.
     681     * Generate poster.
     682     * Used in widget, sidebar and for auto-generation.
    670683     *
    671684     * @param array   $fieldset  Fieldset data from widget.
  • sharing-image/trunk/readme.txt

    r3113737 r3118690  
    44Tags: social image, sharing image, og image, facebook, twitter
    55Requires at least: 5.3
    6 Tested up to: 6.5
    7 Stable tag: 3.2
     6Tested up to: 6.5.5
     7Stable tag: 3.3
    88Requires PHP: 5.5
    99License: GPLv2 or later
     
    3131== Changelog ==
    3232
     33= 3.3 =
     34* Fixed duplicate layers key names on templates cloning.
     35* Fixed undefined preset fields.
     36* Updated PosterEditor library.
     37* Rebuild autogenerate_poster method.
     38
    3339= 3.2 =
    3440* Fixed post status checks and default template for auto-generating posters.
     
    4349
    4450= 3.0 =
    45 * Updated Poster Editor library
     51* Updated PosterEditor library
    4652* Redesigned template settings page
    4753* Added new layer settings
  • sharing-image/trunk/sharing-image.php

    r3113737 r3118690  
    33 * Plugin Name:       Sharing Image
    44 * Description:       Create sharing image for Facebook, VK.com, Telegram and other social networks
    5  * Version:           3.2
     5 * Version:           3.3
    66 * Requires at least: 5.3
    77 * Requires PHP:      5.6
     
    2525 * Plugin version.
    2626 */
    27 define( 'SHARING_IMAGE_VERSION', '3.2' );
     27define( 'SHARING_IMAGE_VERSION', '3.3' );
    2828
    2929/**
  • sharing-image/trunk/vendor/antonlukin/poster-editor/composer.json

    r3113737 r3118690  
    11{
    22    "name": "antonlukin/poster-editor",
    3     "version": "5.15",
     3    "version": "5.16",
    44    "description": "Wrapper for PHP's GD Library for easy image manipulation",
    55    "keywords": ["php", "image", "text", "gd"],
  • sharing-image/trunk/vendor/antonlukin/poster-editor/src/PosterEditor.php

    r3113737 r3118690  
    2424  * @author   Anton Lukin <anton@lukin.me>
    2525  * @license  MIT License (http://www.opensource.org/licenses/mit-license.php)
    26   * @version  Release: 5.15
     26  * @version  Release: 5.16
    2727  * @link     https://github.com/antonlukin/poster-editor
    2828  */
     
    655655
    656656        // Scale by 25% and apply Gaussian blur.
    657         $this->resize($width / 4, $height / 4);
     657        $this->resize(intval($width / 4), intval($height / 4));
    658658        imagefilter($this->resource, IMG_FILTER_GAUSSIAN_BLUR);
    659659
    660660        // Scale result by 200% and blur again.
    661         $this->resize($width / 2, $height / 2);
     661        $this->resize(intval($width / 2), intval($height / 2));
    662662        imagefilter($this->resource, IMG_FILTER_GAUSSIAN_BLUR);
    663663
  • sharing-image/trunk/vendor/composer/installed.json

    r3113737 r3118690  
    33        {
    44            "name": "antonlukin/poster-editor",
    5             "version": "5.15",
    6             "version_normalized": "5.15.0.0",
     5            "version": "5.16",
     6            "version_normalized": "5.16.0.0",
    77            "source": {
    88                "type": "git",
    99                "url": "https://github.com/antonlukin/poster-editor.git",
    10                 "reference": "2c31ec7b318e895ad7a140782df7ab5aaa46f24f"
    11             },
    12             "dist": {
    13                 "type": "zip",
    14                 "url": "https://api.github.com/repos/antonlukin/poster-editor/zipball/2c31ec7b318e895ad7a140782df7ab5aaa46f24f",
    15                 "reference": "2c31ec7b318e895ad7a140782df7ab5aaa46f24f",
     10                "reference": "190fc123de1d8c4453481d413dfcf40bd58eb30d"
     11            },
     12            "dist": {
     13                "type": "zip",
     14                "url": "https://api.github.com/repos/antonlukin/poster-editor/zipball/190fc123de1d8c4453481d413dfcf40bd58eb30d",
     15                "reference": "190fc123de1d8c4453481d413dfcf40bd58eb30d",
    1616                "shasum": ""
    1717            },
     
    2626                "ext-gd": "to use GD library based image processing."
    2727            },
    28             "time": "2024-07-06T16:53:08+00:00",
     28            "time": "2024-07-14T17:11:11+00:00",
    2929            "type": "library",
    3030            "installation-source": "dist",
     
    5454            "support": {
    5555                "issues": "https://github.com/antonlukin/poster-editor/issues",
    56                 "source": "https://github.com/antonlukin/poster-editor/tree/v5.15"
     56                "source": "https://github.com/antonlukin/poster-editor/tree/v5.16"
    5757            },
    5858            "install-path": "../antonlukin/poster-editor"
  • sharing-image/trunk/vendor/composer/installed.php

    r3113737 r3118690  
    44        'pretty_version' => 'dev-develop',
    55        'version' => 'dev-develop',
    6         'reference' => 'fdf5f29ddff8a79a24fee5ff129362a66eb52672',
     6        'reference' => 'b4de69e2c9ba0158f23679a67f2cef96b399d307',
    77        'type' => 'library',
    88        'install_path' => __DIR__ . '/../../',
     
    1212    'versions' => array(
    1313        'antonlukin/poster-editor' => array(
    14             'pretty_version' => '5.15',
    15             'version' => '5.15.0.0',
    16             'reference' => '2c31ec7b318e895ad7a140782df7ab5aaa46f24f',
     14            'pretty_version' => '5.16',
     15            'version' => '5.16.0.0',
     16            'reference' => '190fc123de1d8c4453481d413dfcf40bd58eb30d',
    1717            'type' => 'library',
    1818            'install_path' => __DIR__ . '/../antonlukin/poster-editor',
     
    2323            'pretty_version' => 'dev-develop',
    2424            'version' => 'dev-develop',
    25             'reference' => 'fdf5f29ddff8a79a24fee5ff129362a66eb52672',
     25            'reference' => 'b4de69e2c9ba0158f23679a67f2cef96b399d307',
    2626            'type' => 'library',
    2727            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.