Version Description
(September 27, 2019) = * [Feature] Added the option to resize columns by dragging the divider between the 2 columns. * [Feature] Images can now be pasted from the Clip Board in the Pagelayer Editor. These images will be uploaded and saved. * [Feature] You can now copy Pagelayer Elements from one editor tab into another editor tab. * [Feature] Image and Icon Box's can now have a link for the whole box. * [Feature] Added rotate option to Icon Widget. * [Task] Added the option to remove the color from a color setting to reset to default. * [Task] Improved the Image filter options setting in Pagelayer editor. * [Task] Removed the empty space of the Admin Bar in Pagelayer editor. * [Task] Added Screen options for a number of Widget Settings. * [Bug Fix] On the blog page if the first post was not a Pagelayer post, the other posts were not rendered. This is fixed. * [Bug Fix] On some servers the pagelayer editor JS used to fail to load because of the URL having base64 as a file name. * [Bug Fix] If a Page / Post did not have a title, Pagelayer Live Editor used to fail. This is fixed. * [Bug Fix] The Color Picker had a z-index lower than the rich text editor. This is fixed. * [Bug Fix] The Divider widget had extra spacing which is now fixed.
Release Info
Developer | pagelayer |
Plugin | Page Builder: PageLayer – Drag and Drop website builder |
Version | 1.0.0 |
Comparing to | |
See all releases |
Code changes from version 0.9.9 to 1.0.0
- css/pagelayer-editor-frontend.css +50 -0
- css/pagelayer-editor.css +64 -1
- css/pagelayer-frontend.css +14 -1
- init.php +36 -13
- js/{base64.js → base-64.js} +0 -0
- js/givejs.php +1 -1
- js/pagelayer-editor.js +320 -12
- js/properties.js +16 -5
- js/trumbowyg-pagelayer.js +188 -157
- js/widgets.js +1 -0
- languages/en.json +3 -1
- main/ajax.php +48 -2
- main/class.php +3 -0
- main/functions.php +32 -2
- main/live.php +4 -1
- main/settings.php +4 -4
- main/shortcodes.php +166 -36
- main/template.php +12 -0
- pagelayer.php +1 -1
- readme.txt +18 -2
@@ -263,3 +263,53 @@ width: 1px;
|
|
263 |
height: 100% !important;
|
264 |
}
|
265 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
263 |
height: 100% !important;
|
264 |
}
|
265 |
|
266 |
+
/* Column resize handler icon */
|
267 |
+
.pagelayer-resize-handler{
|
268 |
+
position:absolute;
|
269 |
+
top:50%;
|
270 |
+
left:100%;
|
271 |
+
transform: translate(-43%, -50%);
|
272 |
+
color: #fff;
|
273 |
+
font-size: 11px;
|
274 |
+
z-index: 99;
|
275 |
+
cursor:ew-resize;
|
276 |
+
display:none;
|
277 |
+
pointer-events: all;
|
278 |
+
}
|
279 |
+
|
280 |
+
.pagelayer-resize-icon{
|
281 |
+
background-color: #905101;
|
282 |
+
padding: 3px;
|
283 |
+
border-radius: 4px;
|
284 |
+
height:30px;
|
285 |
+
display:inline-block;
|
286 |
+
}
|
287 |
+
|
288 |
+
.pagelayer-resize-handler:before{
|
289 |
+
content:attr(pre-width);
|
290 |
+
background: #4f4f4f;
|
291 |
+
position: absolute;
|
292 |
+
right: 120%;
|
293 |
+
top: 50%;
|
294 |
+
transform: translateY(-50%);
|
295 |
+
padding: 0 6px;
|
296 |
+
border-radius:100%;
|
297 |
+
}
|
298 |
+
|
299 |
+
.pagelayer-resize-handler:after{
|
300 |
+
content:attr(next-width);
|
301 |
+
background: #4f4f4f;
|
302 |
+
position: absolute;
|
303 |
+
left: 120%;
|
304 |
+
top: 50%;
|
305 |
+
transform: translateY(-50%);
|
306 |
+
padding: 0 6px;
|
307 |
+
border-radius:100%;
|
308 |
+
}
|
309 |
+
|
310 |
+
/* Hide resize handler icon from last child*/
|
311 |
+
.pagelayer-wrap-col:not(:last-child):hover .pagelayer-ele-hover .pagelayer-resize-handler{
|
312 |
+
display:block;
|
313 |
+
}
|
314 |
+
|
315 |
+
/* Column resize handler icon end */
|
@@ -734,6 +734,12 @@ vertical-align: middle;
|
|
734 |
.pagelayer-elp-color-preview{
|
735 |
height: 93%;
|
736 |
border: solid 1px #d1d1d1;
|
|
|
|
|
|
|
|
|
|
|
|
|
737 |
}
|
738 |
|
739 |
.picker_arrow {
|
@@ -760,6 +766,30 @@ background: #fff !important;
|
|
760 |
box-shadow: 0 3px 5px rgba(0,0,0,0.2) !important;
|
761 |
}
|
762 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
763 |
.pagelayer-elp-icon-div{
|
764 |
cursor: pointer;
|
765 |
padding: 6px;
|
@@ -909,7 +939,7 @@ input.pagelayer-elp-slider{
|
|
909 |
width: 75%;
|
910 |
height: 10px;
|
911 |
border-radius: 5px;
|
912 |
-
background: #d3d3d3 !important;
|
913 |
outline: none;
|
914 |
opacity: 0.7;
|
915 |
-webkit-transition: .2s;
|
@@ -1294,6 +1324,39 @@ font-size:13px;
|
|
1294 |
text-align: right;
|
1295 |
}
|
1296 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1297 |
.pagelayer-elp-typo .pagelayer-elp-label{
|
1298 |
font-weight: 600;
|
1299 |
font-size: 11px;
|
734 |
.pagelayer-elp-color-preview{
|
735 |
height: 93%;
|
736 |
border: solid 1px #d1d1d1;
|
737 |
+
background-size: cover !important;
|
738 |
+
}
|
739 |
+
|
740 |
+
.pagelayer-blank-preview{
|
741 |
+
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAC1QTFRFAAAAAQEBBQUFDAwM9PT0+vr6/////v7+BAQE+/v7AgIC/f39AwMDDQ0N8/Pzb6ggJQAAAZ5JREFUeJztlr1twzAQhU+tK7ELDDdBNsgO2SAznAr3JAJXWSJp49YLuPAW2cJbhEdSQZBCEMRHgMVj5U80HnkSfz4Ra06eXjSoTvr6HKGGU94o8vBpqPr2LjLUcAr8ikNEnLx6jT93VZxneBn1Zg9uOlxsxO0suTkXfJywTsG5Ok5x9hK0NKM6bhEosh+nq+HJD+c6TmvG2r8RtrMb9g4aOKY3CA0ElyyHcbAHIXNw5Q9bWeLG2aUH80ItU97K8ihlhmmIUFb+dpZvOceNE7fOnz/UsNztHAMEzSwf6idEqTOLHv0R8THc7/o72Qzrl8vMwAVdmreDFhloLxQcCC65QSC45AYfBV0yfGGjtx78cLjrVaHHF/yAhV8B8EsKfo3CL/pRHFZFnIBlCa5z9EP6If1wBdMPe5QleMkNAumHuZ9+SD9cYPphjzpHP6Qf0g9XMP2wR1mCl9wgkH6Y++mH9MMFph/2qHP0Q/oh/XAF0w97lCV4yQ0C6Ye5n35IP1xg+mGPOkc/pB/SD1cw/bBHWYKX3CCQfpj76Yfr+QfwnsxmcLvdhQAAAABJRU5ErkJggg==') !important;
|
742 |
+
background-size: cover !important;
|
743 |
}
|
744 |
|
745 |
.picker_arrow {
|
766 |
box-shadow: 0 3px 5px rgba(0,0,0,0.2) !important;
|
767 |
}
|
768 |
|
769 |
+
.picker_wrapper{
|
770 |
+
z-index:12 !important;
|
771 |
+
}
|
772 |
+
|
773 |
+
.pagelayer-prop-action{
|
774 |
+
height: 15px;
|
775 |
+
width: 15px;
|
776 |
+
background-color:#616161;
|
777 |
+
position: absolute;
|
778 |
+
top: 0;
|
779 |
+
right: 0;
|
780 |
+
z-index:1;
|
781 |
+
box-shadow: 0 0 3px #333;
|
782 |
+
}
|
783 |
+
|
784 |
+
.pagelayer-prop-action .fa{
|
785 |
+
color: #fff;
|
786 |
+
font-size: 12px;
|
787 |
+
position:absolute;
|
788 |
+
top:50%;
|
789 |
+
left:50%;
|
790 |
+
transform: translate(-50%, -50%);
|
791 |
+
}
|
792 |
+
|
793 |
.pagelayer-elp-icon-div{
|
794 |
cursor: pointer;
|
795 |
padding: 6px;
|
939 |
width: 75%;
|
940 |
height: 10px;
|
941 |
border-radius: 5px;
|
942 |
+
background-color: #d3d3d3 !important;
|
943 |
outline: none;
|
944 |
opacity: 0.7;
|
945 |
-webkit-transition: .2s;
|
1324 |
text-align: right;
|
1325 |
}
|
1326 |
|
1327 |
+
.pagelayer-elp-filter-input{
|
1328 |
+
background-position: center center !important;
|
1329 |
+
background-size: cover !important;
|
1330 |
+
}
|
1331 |
+
|
1332 |
+
.pagelayer-elp-filter-blur .pagelayer-elp-filter-input{
|
1333 |
+
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFwAAAAKCAIAAAC2Wq7lAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAABq9JREFUeJyVlmtvHGcZhnfOszs7u+s9ENtrI9eqHbWJKSSIlBz4QD/mFxQpUvlSviTKb4nyC4qI/0HkCCgijapQQJBDUe04uPEh69re887OeXa43l2wjNsK+toejd/Dc7if+7nfUTMnhiRJGxsbS0tLk3/TNL1+/fra2hrzvPO8c+fOzZs3eZlsuHv37u3btydL5XL5xo0bv/rwwzeXl9Ikff16b+3Bg3v3fvPs6bMwiqbPTF/92ZX33//FpUvvFoulfq/7ycOHH/36o4d//MRxBpZlrays/PKDD35y6d36XN31gid//9tvf/+7x59+2mg0dF1fXlq6cuXylWvXzp07Z1mFXrfz4MHaxx//YfPFJsZnpqdXfnD+xxcvnHv7fC6fazVbX6x/8fTpsxebm439fU2RL1648NPLl996620rb3W73a1/bj198qTf7w+HQ1mWK5XqwsLC4uIbc3PzZGGYpnoSFNI7hdHJ+cnzePLUkpSRcCBl+M2MmMiMt6X8iCOSzIIcR3E6GmVGYrBDVbSJH1lRVE1jb5ImSRJHYRDFIYYUVcWmooi/NMPxxHN9TdWTUYJFlaEpo1Ey9ithM0wiY5TESYJ5JnVVsy0rCAMiGKWjGMsRxiN84F04HdtniLNh6HpD3cV4pE7yPAXHdx0AJSsydoAjEYOcE/AAJwInYk3TFUmJRUj8BmEYEAd14xSR6brBIALf87udnuP0Qz9UJNk09FwuB1N0zQBkTkErUPA8V1Uk3dBY5bhh6rgOwngwcMjQ9704jgEym8vaUUHxXFCnHr7rEtbQdclfkSRN1UamqcgCGvY7w2Gn3QY2w/hvpvzP8Y3YaZqmKEo2m6V6QeA3j5ps6/UHVCyXs6q1ipRK5UpFMwzHcZuHRy7+3SGh66o+NTWVy+aKpSIjDMJWu+UMnTiISF5RlalyGWRVTS8UberW7fb2Gw3o7flelMRWLletVuM4sW2bzFzPPTo88L3hYIBxn5DsQkFVVDvOg6rn+c1WS9XUoQMsrgLfMikuqCTPKI4H/T5wD5wh7FOXl5dPpkoPZ/7TI8yXSiUkZqIazERRtLm5ebwK5Kx+f34eOArFAqX7/PN/sEYvhUHgDoeLiwv1+kwmIxMWiR8eHv75r3+hG8DLGQyKUyWEAmJTq0ql0h/0Xmxs0gppOgr8APq8sbBQn63Td1SPIn/1VaPdbkEB2if0Pdsu6JrOvGgjVe11up7r8g5RAUXT1XKplNgFyKtrGgoSBPRRZiTaM6JzsZOKSDOQKwrDbg+GOmO+y+r6+vpJFM6ePUvaxxjdv39/dXX1mCbIKiAer966dQthfvnyJe8k/OjRo9XVewHM1xTKuLi4ePXqtWKhQBsBEHB/+erVZ5/9icY2dL1aq62snH/vvZ+riuIF/u727s7Oq3bnS/BCROx8ng1z9Xo2myNJ+gISbW/vuq4DNci8YNsz0zPWzKysSHgE4k67gyiQHt1ocz6fL+RtpIoeBqz2mIMoGq2IzaxpGYomKRJZoTXoTuQQVyhUD5RPCufXxeXU6td7h0nIIgTCsh4/fry9s7O7vaPq2vSZM3VIMjMDymw6OjwcOA6RPX/+nILYBfvijy5C/nfe+aGZNTutdhxGGxvrW1tbFBnI5ufnZ2frXAe1ahV67uy9braahwcHjf0GG/JWntU3l5bn6rOarnGh+J4HF/YPGv3+oFCwOVgqTnHNWfm8Zuh7O7ugtvd6j7zptVqtlsvm6XpVVwGFvsNFr99z+gPXE3r03TTl24agnCbwTeKYhleiwPeLIGUY+qThCRo+kw+hkwMt44d+LitqZuWsJIooLPVAjziezZrgpQpRsCu1KlrT6XSoFaU+ah6hCHE5LpWn2MbT0HTuG2jv+m6r2ez1+3RfrfY9lAKbpakSXg729yFjt9MlAHhB37GHypkml1WC7KOvQ8dpddqD3iCMwtOgfCMd/g9QRGdK8r9Pi9tnNLm/meTuU4SkISVQfzxgKfCNnbEuIaW6afDmieEyzU6eKJGhm7xABzkViuaLdS/MR5mxwIML9xo/7EEsh8gpIwjxgDvDFIhTDFzgjoWh5xqmkaRxmqGPVNM0Y24iWVznrDoDB0wxoPK/NB6Zb7lcjsfxd8rJbccaLGUmZmTesUnSkw8YMS+WBGbEmo4H6bFH3Nniw0boP1o4/npJyI1bQHzfjIGGAjIfInQ/oScjUBWWU1IyIKAi8YcEKSIqnEZjGyPxoYJZ7hGuv3gUTeJEnpMoGX8riY8n4skqemRIqixAoAxQBtCHvvcv+qJRH7fzah8AAAAASUVORK5CYII=') !important;
|
1334 |
+
}
|
1335 |
+
|
1336 |
+
.pagelayer-elp-filter-contrast input{
|
1337 |
+
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAKCAMAAAAU2ikOAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAklQTFRFAAAAAgICAwMDBAQEBgYGCAgICwsLAQEBISEhJSUlKioqLy8vNDQ0WFhYXl5eZWVla2trcXFxmpqaoKCgpqamra2ts7OzJiYm1dXV2dnZ3t7e4uLi5ubm2tra+/v7/Pz8/f39/v7+////BQUFBwcHGhoaHh4eIyMjJycnLCwsTk5OVFRUWlpaYWFhaGhoj4+PlpaWnZ2do6Ojqqqqzc3N0tLS19fX3Nzc4ODg9/f3+vr6FBQUGBgYHBwcICAgRUVFS0tLUVFRV1dXhYWFjIyMkpKSmZmZn5+fxMTEysrKz8/P1NTU9PT09vb2+fn5Dw8PEhISFhYWPDw8QUFBSEhIe3t7goKCiIiIu7u7wcHBx8fHzMzM0dHR7+/v8vLy9fX1CgoKDQ0NEBAQFxcXOTk5Pj4+SkpKd3d3fn5+i4uLsrKyuLi4vr6+ycnJ6urq7e3t8PDw8/PzBQYHBQUGBAQFAwMEAgMDFRUVGRkZHR0dIiIiR0dHTU1NYGBglZWVm5uboqKixsbG1tbW29vbBgcIBAUGAwQFExMTGxsbHx8fREREUFBQVlZWhISEkZGRmJiYvb29w8PDzs7O09PT+Pj4AAABDAwMDg4OERERNTU1Ozs7RkZGTExMdHR0enp6gICAjo6OJCQktLS0urq6wMDAy8vL6+vr7u7uAQECLS0tMjIyODg4Q0NDaWlpcHBwdnZ2fX19q6ursbGxt7e35eXl6enpCQkJKysrMDAwX19fbGxsc3NzeXl5oaGhqKiorq6u39/f4+Pj5+fnrIREkAAAAeZJREFUeJxd0Pk/FHEcx/Hv7OLblrvD1S675cjKolJLOVJSIVKtctOKStaQIyKZEuWqJEI50h0lkXT5yzLvT4N2fpnnYx6Pz+vxmQ9jK4+gUjs4OgmMM2GDZuMmZ8jF1c3dQyXLc/OWrdu8ZHn7+Ppth7Q6/wA9yWAwQBxieLig2rGTywgMCg7ZBYUaw3aHQ6aIyKg9Gll790XvPwBpzTG6AJKcWRP7V+QqNRB78FCcBopPSDzsCiUdOZp8DB9Tjp846QNpU9PSY0j2Qa4sidepjMzAIOh01plQI3T2nMUUgeHs8xdycimTl19gXg0a1sQEzinKUS4sKo4tgZwvWuNLIY9LZUnlGLl85WpKBQ1fq7RV/b8hiYnVNddr+eolobr6hhshUGOTMewmZDE1t9zCXGtO7u02KhSY03V2VSaJ4p27TDkl/Xdxe8m9DsjaWXr/AVTWVd7dg5HevoqHjyhjq0p7bPffTJIksRrqZ8pBnww8rauHBoeyng1DI6PPLS/GZI1PTLa+hNqmXuWnkuTgmBKUROg1VxZ1XLlkO/Tm7Tvre+jDx+mZLuzw6fNsbx/t9WWu0kbSr99QkpCqFXg/BdUOX50G8M1rfmFwCPrmtvh9CSM/fv4an6DM7z/LUyR/vZ5u+BdDtnhZvafUoAAAAABJRU5ErkJggg==') !important;
|
1338 |
+
}
|
1339 |
+
|
1340 |
+
.pagelayer-elp-filter-brightness input{
|
1341 |
+
background-image: linear-gradient(90deg,#000,#fff);
|
1342 |
+
}
|
1343 |
+
|
1344 |
+
.pagelayer-elp-filter-grayscale input{
|
1345 |
+
background-image: linear-gradient(90deg, rgba(203,20,106,1) 0%, rgba(88,88,88,1) 56%);
|
1346 |
+
}
|
1347 |
+
|
1348 |
+
.pagelayer-elp-filter-hue input{
|
1349 |
+
background-image: linear-gradient(90deg,red,orange,#ff0,#adff2f,#32cd32,#00bfff,blue,#9400d3 95%);
|
1350 |
+
}
|
1351 |
+
|
1352 |
+
.pagelayer-elp-filter-saturate input{
|
1353 |
+
background-image: linear-gradient(90deg,gray,red);
|
1354 |
+
}
|
1355 |
+
|
1356 |
+
.pagelayer-elp-filter-opacity input{
|
1357 |
+
background-image: linear-gradient(90deg,#fff,#000);
|
1358 |
+
}
|
1359 |
+
|
1360 |
.pagelayer-elp-typo .pagelayer-elp-label{
|
1361 |
font-weight: 600;
|
1362 |
font-size: 11px;
|
@@ -317,7 +317,8 @@ align-items: flex-start;
|
|
317 |
}
|
318 |
|
319 |
.pagelayer-service-image{
|
320 |
-
line-height:0;
|
|
|
321 |
}
|
322 |
|
323 |
.pagelayer-service-image img{
|
@@ -442,6 +443,14 @@ display: block;
|
|
442 |
line-height:1;
|
443 |
}
|
444 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
445 |
/* Icon widget */
|
446 |
|
447 |
.pagelayer-icon-mini{
|
@@ -2837,6 +2846,10 @@ line-height:1.5;
|
|
2837 |
/* Tabs style end */
|
2838 |
|
2839 |
/* Divider start */
|
|
|
|
|
|
|
|
|
2840 |
.pagelayer-divider-seperator{
|
2841 |
display: inline-block;
|
2842 |
}
|
317 |
}
|
318 |
|
319 |
.pagelayer-service-image{
|
320 |
+
line-height:0;
|
321 |
+
overflow:hidden;
|
322 |
}
|
323 |
|
324 |
.pagelayer-service-image img{
|
443 |
line-height:1;
|
444 |
}
|
445 |
|
446 |
+
.pagelayer-box-link{
|
447 |
+
position: absolute;
|
448 |
+
top: 0;
|
449 |
+
left: 0;
|
450 |
+
width: 100%;
|
451 |
+
height: 100%;
|
452 |
+
}
|
453 |
+
|
454 |
/* Icon widget */
|
455 |
|
456 |
.pagelayer-icon-mini{
|
2846 |
/* Tabs style end */
|
2847 |
|
2848 |
/* Divider start */
|
2849 |
+
.pagelayer-divider-holder{
|
2850 |
+
line-height: 0;
|
2851 |
+
font-size: 0;
|
2852 |
+
}
|
2853 |
.pagelayer-divider-seperator{
|
2854 |
display: inline-block;
|
2855 |
}
|
@@ -5,7 +5,7 @@ if (!defined('ABSPATH')) exit;
|
|
5 |
|
6 |
define('PAGELAYER_BASE', plugin_basename(__FILE__));
|
7 |
define('PAGELAYER_FILE', __FILE__);
|
8 |
-
define('PAGELAYER_VERSION', '0.
|
9 |
define('PAGELAYER_DIR', WP_PLUGIN_DIR.'/'.basename(dirname(PAGELAYER_FILE)));
|
10 |
define('PAGELAYER_SLUG', 'pagelayer');
|
11 |
define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
|
@@ -104,7 +104,7 @@ function pagelayer_load_plugin(){
|
|
104 |
'interval' => 30,// In days
|
105 |
//'pro_url' => 'https://pagelayer.com/themes/wordpress/corporate/Bizworx_Pro',
|
106 |
'rating' => 'https://wordpress.org/plugins/pagelayer/#reviews',
|
107 |
-
'twitter' => 'https://twitter.com/pagelayer?status='.rawurlencode('I love #
|
108 |
'facebook' => 'https://www.facebook.com/pagelayer',
|
109 |
'website' => '//pagelayer.com',
|
110 |
'image' => PAGELAYER_URL.'/images/pagelayer-logo-256.png'
|
@@ -128,10 +128,10 @@ function pagelayer_admin_menu() {
|
|
128 |
$capability = 'activate_plugins';// TODO : Capability for accessing this page
|
129 |
|
130 |
// Add the menu page
|
131 |
-
add_menu_page(__('
|
132 |
|
133 |
// Settings Page
|
134 |
-
add_submenu_page('pagelayer', __('
|
135 |
|
136 |
// Its premium
|
137 |
if(defined('PAGELAYER_PREMIUM')){
|
@@ -148,17 +148,20 @@ function pagelayer_admin_menu() {
|
|
148 |
// Add new template
|
149 |
add_submenu_page('pagelayer', __('Add New Template'), __('Add New Template'), $capability, 'pagelayer_template_wizard', 'pagelayer_builder_template_wizard');
|
150 |
|
|
|
|
|
|
|
151 |
// Its free
|
152 |
}else{
|
153 |
|
154 |
// Go Pro link
|
155 |
-
add_submenu_page('pagelayer', __('
|
156 |
|
157 |
}
|
158 |
|
159 |
}
|
160 |
|
161 |
-
// This function will handle the
|
162 |
function pagelayer_page_handler(){
|
163 |
|
164 |
global $wp_version, $pagelayer;
|
@@ -218,9 +221,26 @@ function pagelayer_enqueue_frontend($force = false){
|
|
218 |
if(empty($post->ID)){
|
219 |
return;
|
220 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
|
222 |
// Enqueue the FRONTEND CSS
|
223 |
-
if(get_post_meta($post->ID , 'pagelayer-data') || $force){
|
224 |
|
225 |
// We dont need the auto <p> and <br> as they interfere with us
|
226 |
remove_filter('the_content', 'wpautop');
|
@@ -239,9 +259,12 @@ function pagelayer_enqueue_frontend($force = false){
|
|
239 |
if(defined('PAGELAYER_PREMIUM')){
|
240 |
$premium_js = ',chart.min.js,slick.min.js,premium-frontend.js';
|
241 |
$premium_css = ',slick.css,slick-theme.css,premium-frontend.css';
|
|
|
242 |
// Load this For audio widget
|
243 |
-
|
244 |
-
|
|
|
|
|
245 |
}
|
246 |
|
247 |
// Enqueue our Editor's Frontend JS
|
@@ -307,7 +330,7 @@ function pagelayer_global_styles(){
|
|
307 |
|
308 |
$width = get_option('pagelayer_content_width', '1170');
|
309 |
|
310 |
-
$styles .= '.pagelayer-row-stretch-auto .pagelayer-row-holder{ max-width: '.$width.'px; margin-left: auto; margin-right: auto;}';
|
311 |
|
312 |
$styles .= '</style>';
|
313 |
|
@@ -367,7 +390,7 @@ function pagelayer_after_title(){
|
|
367 |
echo '
|
368 |
<div id="pagelayer-editor-button-row" style="margin-top:15px; display:inline-block;">
|
369 |
<a id="pagelayer-editor-button" href="'.$link.'" class="button button-primary button-large" style="height:auto; padding:6px; font-size:18px;">
|
370 |
-
<img src="'.PAGELAYER_URL.'/images/pagelayer-logo-40.png" align="top" width="24" /> <span>'.__('Edit with
|
371 |
</a>
|
372 |
</div>';
|
373 |
|
@@ -382,7 +405,7 @@ function pagelayer_gutenberg_after_title(){
|
|
382 |
echo '
|
383 |
<div id="pagelayer-editor-button-row" style="margin-left:15px; display:none">
|
384 |
<a id="pagelayer-editor-button" href="'.$link.'" class="button button-primary button-large" style="height:auto; padding:6px; font-size:18px;">
|
385 |
-
<img src="'.PAGELAYER_URL.'/images/pagelayer-logo-40.png" align="top" width="24" /> <span>'.__('Edit with
|
386 |
</a>
|
387 |
</div>
|
388 |
|
@@ -413,7 +436,7 @@ add_filter( 'page_row_actions', 'pagelayer_quick_link', 10, 2 );
|
|
413 |
function pagelayer_quick_link($actions, $post){
|
414 |
$link = pagelayer_shortlink($post->ID).'&pagelayer-live=1';
|
415 |
|
416 |
-
$actions['pagelayer'] = '<a href="'.esc_url( $link ).'">'.__( 'Edit using
|
417 |
|
418 |
return $actions;
|
419 |
}
|
5 |
|
6 |
define('PAGELAYER_BASE', plugin_basename(__FILE__));
|
7 |
define('PAGELAYER_FILE', __FILE__);
|
8 |
+
define('PAGELAYER_VERSION', '1.0.0');
|
9 |
define('PAGELAYER_DIR', WP_PLUGIN_DIR.'/'.basename(dirname(PAGELAYER_FILE)));
|
10 |
define('PAGELAYER_SLUG', 'pagelayer');
|
11 |
define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
|
104 |
'interval' => 30,// In days
|
105 |
//'pro_url' => 'https://pagelayer.com/themes/wordpress/corporate/Bizworx_Pro',
|
106 |
'rating' => 'https://wordpress.org/plugins/pagelayer/#reviews',
|
107 |
+
'twitter' => 'https://twitter.com/pagelayer?status='.rawurlencode('I love #Pagelayer Site Builder by @pagelayer team for my #WordPress site - '.home_url()),
|
108 |
'facebook' => 'https://www.facebook.com/pagelayer',
|
109 |
'website' => '//pagelayer.com',
|
110 |
'image' => PAGELAYER_URL.'/images/pagelayer-logo-256.png'
|
128 |
$capability = 'activate_plugins';// TODO : Capability for accessing this page
|
129 |
|
130 |
// Add the menu page
|
131 |
+
add_menu_page(__('Pagelayer Editor'), __('Pagelayer'), $capability, 'pagelayer', 'pagelayer_page_handler', PAGELAYER_URL.'/images/pagelayer-logo-19.png');
|
132 |
|
133 |
// Settings Page
|
134 |
+
add_submenu_page('pagelayer', __('Pagelayer Editor'), __('Settings'), $capability, 'pagelayer', 'pagelayer_page_handler');
|
135 |
|
136 |
// Its premium
|
137 |
if(defined('PAGELAYER_PREMIUM')){
|
148 |
// Add new template
|
149 |
add_submenu_page('pagelayer', __('Add New Template'), __('Add New Template'), $capability, 'pagelayer_template_wizard', 'pagelayer_builder_template_wizard');
|
150 |
|
151 |
+
// Export Template Wizard
|
152 |
+
add_submenu_page('pagelayer', __('Export Templates into a Theme'), __('Export Templates'), $capability, 'pagelayer_template_export', 'pagelayer_builder_export');
|
153 |
+
|
154 |
// Its free
|
155 |
}else{
|
156 |
|
157 |
// Go Pro link
|
158 |
+
add_submenu_page('pagelayer', __('Pagelayer Go Pro'), __('Go Pro'), $capability, PAGELAYER_PRO_URL);
|
159 |
|
160 |
}
|
161 |
|
162 |
}
|
163 |
|
164 |
+
// This function will handle the Settings Pages in PageLayer
|
165 |
function pagelayer_page_handler(){
|
166 |
|
167 |
global $wp_version, $pagelayer;
|
221 |
if(empty($post->ID)){
|
222 |
return;
|
223 |
}
|
224 |
+
|
225 |
+
$is_pagelayer = false;
|
226 |
+
$is_audio = false;
|
227 |
+
|
228 |
+
// This IF is for Archives mainly as $post->ID is only the first post in the archive
|
229 |
+
// and we need to make sure that other posts are pagelayer or not
|
230 |
+
if(!empty($GLOBALS['wp_query']->posts) && is_array($GLOBALS['wp_query']->posts)){
|
231 |
+
foreach($GLOBALS['wp_query']->posts as $v){
|
232 |
+
if(get_post_meta($v->ID , 'pagelayer-data')){
|
233 |
+
$is_pagelayer = true;
|
234 |
+
}
|
235 |
+
|
236 |
+
if(preg_match('/\[pl_audio/is', $v->post_content)){
|
237 |
+
$is_audio = true;
|
238 |
+
}
|
239 |
+
}
|
240 |
+
}
|
241 |
|
242 |
// Enqueue the FRONTEND CSS
|
243 |
+
if(get_post_meta($post->ID , 'pagelayer-data') || $is_pagelayer || $force){
|
244 |
|
245 |
// We dont need the auto <p> and <br> as they interfere with us
|
246 |
remove_filter('the_content', 'wpautop');
|
259 |
if(defined('PAGELAYER_PREMIUM')){
|
260 |
$premium_js = ',chart.min.js,slick.min.js,premium-frontend.js';
|
261 |
$premium_css = ',slick.css,slick-theme.css,premium-frontend.css';
|
262 |
+
|
263 |
// Load this For audio widget
|
264 |
+
if($is_audio || pagelayer_is_live_iframe()){
|
265 |
+
wp_enqueue_script('wp-mediaelement');
|
266 |
+
wp_enqueue_style( 'wp-mediaelement' );
|
267 |
+
}
|
268 |
}
|
269 |
|
270 |
// Enqueue our Editor's Frontend JS
|
330 |
|
331 |
$width = get_option('pagelayer_content_width', '1170');
|
332 |
|
333 |
+
$styles .= '.pagelayer-row-stretch-auto .pagelayer-row-holder, .pagelayer-row-stretch-full .pagelayer-row-holder.pagelayer-width-auto{ max-width: '.$width.'px; margin-left: auto; margin-right: auto;}';
|
334 |
|
335 |
$styles .= '</style>';
|
336 |
|
390 |
echo '
|
391 |
<div id="pagelayer-editor-button-row" style="margin-top:15px; display:inline-block;">
|
392 |
<a id="pagelayer-editor-button" href="'.$link.'" class="button button-primary button-large" style="height:auto; padding:6px; font-size:18px;">
|
393 |
+
<img src="'.PAGELAYER_URL.'/images/pagelayer-logo-40.png" align="top" width="24" /> <span>'.__('Edit with Pagelayer').'</span>
|
394 |
</a>
|
395 |
</div>';
|
396 |
|
405 |
echo '
|
406 |
<div id="pagelayer-editor-button-row" style="margin-left:15px; display:none">
|
407 |
<a id="pagelayer-editor-button" href="'.$link.'" class="button button-primary button-large" style="height:auto; padding:6px; font-size:18px;">
|
408 |
+
<img src="'.PAGELAYER_URL.'/images/pagelayer-logo-40.png" align="top" width="24" /> <span>'.__('Edit with Pagelayer').'</span>
|
409 |
</a>
|
410 |
</div>
|
411 |
|
436 |
function pagelayer_quick_link($actions, $post){
|
437 |
$link = pagelayer_shortlink($post->ID).'&pagelayer-live=1';
|
438 |
|
439 |
+
$actions['pagelayer'] = '<a href="'.esc_url( $link ).'">'.__( 'Edit using Pagelayer', 'pagelayer') .'</a>';
|
440 |
|
441 |
return $actions;
|
442 |
}
|
File without changes
|
@@ -29,7 +29,7 @@ $files = array(
|
|
29 |
'widgets.js',
|
30 |
'premium.js',
|
31 |
'properties.js',
|
32 |
-
'
|
33 |
'slimscroll.js',
|
34 |
'vanilla-picker.min.js',
|
35 |
'trumbowyg.min.js',
|
29 |
'widgets.js',
|
30 |
'premium.js',
|
31 |
'properties.js',
|
32 |
+
'base-64.js',
|
33 |
'slimscroll.js',
|
34 |
'vanilla-picker.min.js',
|
35 |
'trumbowyg.min.js',
|
@@ -21,7 +21,7 @@ var pagelayer_history_obj = {}, pagelayer_revision_obj = {};
|
|
21 |
jQuery(document).ready(function(){
|
22 |
|
23 |
// Set the title of the parent window
|
24 |
-
pagelayer.$$('head').append(pagelayer.$('title')[0].outerHTML);
|
25 |
|
26 |
pagelayer.blank_img = pagelayer_url+'/images/default-image.png';
|
27 |
|
@@ -57,7 +57,7 @@ jQuery(document).ready(function(){
|
|
57 |
pagelayer_left_click();
|
58 |
pagelayer_right_click();
|
59 |
|
60 |
-
// Setup pagelayer history
|
61 |
pagelayer_history_obj['action_data'] = [];
|
62 |
pagelayer_history_setup(true);
|
63 |
|
@@ -249,6 +249,24 @@ function pagelayer_setup_drag(){
|
|
249 |
return false;
|
250 |
}
|
251 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
// Get the ID
|
253 |
var onId = onWrap.attr('pagelayer-wrap-id');
|
254 |
var onEle = onWrap.children('.pagelayer-ele');
|
@@ -600,13 +618,95 @@ function pagelayer_renumber_col(selector){
|
|
600 |
}
|
601 |
}
|
602 |
jEle.addClass('pagelayer-col-'+cols);
|
|
|
603 |
Ele.addClass('pagelayer-col-'+cols);
|
604 |
-
|
|
|
605 |
// Set the att
|
606 |
pagelayer_set_atts(Ele, obj);
|
607 |
});
|
608 |
}
|
609 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
610 |
// Handle addition of elements from the left
|
611 |
// NOTE : At this point the addition is FINALIZED
|
612 |
// The add element cannot be prevented !
|
@@ -675,7 +775,7 @@ function pagelayer_element_added(jEle){
|
|
675 |
'title' : pagelayer_shortcodes[sc]['name'],
|
676 |
'action' : 'Added',
|
677 |
'pl_id' : id,
|
678 |
-
'html' :
|
679 |
'cEle' : cEle
|
680 |
});
|
681 |
|
@@ -918,6 +1018,9 @@ function pagelayer_element_setup(selector, render){
|
|
918 |
|
919 |
// Is it an empty col ?
|
920 |
pagelayer_empty_col(jEle.children('.pagelayer-col-holder'));
|
|
|
|
|
|
|
921 |
|
922 |
}else{
|
923 |
|
@@ -1124,27 +1227,115 @@ jQuery(document).keydown(function(event){
|
|
1124 |
if(event.keyCode == 89 && event.ctrlKey){
|
1125 |
pagelayer_do_history('redo');
|
1126 |
}
|
|
|
|
|
|
|
|
|
1127 |
|
1128 |
-
//
|
1129 |
-
if(
|
1130 |
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1134 |
}
|
1135 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1136 |
}
|
1137 |
|
1138 |
-
|
1139 |
-
|
|
|
1140 |
|
1141 |
// Check the active element
|
1142 |
if(pagelayer_active.el && pagelayer_active.el.id){
|
1143 |
|
1144 |
var jEle = jQuery("[pagelayer-id='"+pagelayer_active.el.id+"']");
|
1145 |
|
|
|
|
|
1146 |
// Check if the any element is copied
|
1147 |
-
if(
|
|
|
1148 |
pagelayer_paste_element("[pagelayer-id='"+pagelayer_active.el.id+"']");
|
1149 |
}
|
1150 |
|
@@ -3236,3 +3427,120 @@ function pagelayer_add_widget(){
|
|
3236 |
add_sc(tag);
|
3237 |
});
|
3238 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
jQuery(document).ready(function(){
|
22 |
|
23 |
// Set the title of the parent window
|
24 |
+
try{ pagelayer.$$('head').append(pagelayer.$('title')[0].outerHTML); }catch(e){};
|
25 |
|
26 |
pagelayer.blank_img = pagelayer_url+'/images/default-image.png';
|
27 |
|
57 |
pagelayer_left_click();
|
58 |
pagelayer_right_click();
|
59 |
|
60 |
+
// Setup pagelayer history handle
|
61 |
pagelayer_history_obj['action_data'] = [];
|
62 |
pagelayer_history_setup(true);
|
63 |
|
249 |
return false;
|
250 |
}
|
251 |
|
252 |
+
/*// If the columns more than 12 inside the row then return - As of now not enabled the below code
|
253 |
+
if(tag == 'pl_col'){
|
254 |
+
var _onTag = pagelayer_tag(onWrap);
|
255 |
+
var colEles;
|
256 |
+
|
257 |
+
// Is on col
|
258 |
+
if(_onTag == 'pl_col'){
|
259 |
+
colEles = onWrap.closest('.pagelayer-row-holder').children('.pagelayer-ele-wrap');
|
260 |
+
}else{
|
261 |
+
colEles = onWrap.find('.pagelayer-row-holder').first().children('.pagelayer-ele-wrap');
|
262 |
+
}
|
263 |
+
|
264 |
+
// If the columns more than 12
|
265 |
+
if(colEles.length >= 12){
|
266 |
+
return false;
|
267 |
+
}
|
268 |
+
}*/
|
269 |
+
|
270 |
// Get the ID
|
271 |
var onId = onWrap.attr('pagelayer-wrap-id');
|
272 |
var onEle = onWrap.children('.pagelayer-ele');
|
618 |
}
|
619 |
}
|
620 |
jEle.addClass('pagelayer-col-'+cols);
|
621 |
+
jEle.css({'width': ''});
|
622 |
Ele.addClass('pagelayer-col-'+cols);
|
623 |
+
Ele.css({'width': ''});
|
624 |
+
|
625 |
// Set the att
|
626 |
pagelayer_set_atts(Ele, obj);
|
627 |
});
|
628 |
}
|
629 |
|
630 |
+
// Make column resizable handler
|
631 |
+
function pagelayer_col_make_resizable(wrap){
|
632 |
+
|
633 |
+
// Resize handler element
|
634 |
+
var rHandler = jQuery('<div class="pagelayer-resize-handler"><div class="pagelayer-resize-icon"></div></div>');
|
635 |
+
|
636 |
+
if( wrap.is(":last-child") ){
|
637 |
+
wrap = wrap.prev();
|
638 |
+
}
|
639 |
+
|
640 |
+
var pResize = wrap.children('.pagelayer-ele-overlay').find('.pagelayer-resize-handler');
|
641 |
+
|
642 |
+
if(pResize.length > 0){
|
643 |
+
return;
|
644 |
+
}
|
645 |
+
|
646 |
+
// Append it
|
647 |
+
wrap.children('.pagelayer-ele-overlay').append(rHandler);
|
648 |
+
|
649 |
+
// Resize start
|
650 |
+
rHandler.on('mousedown', function(e) {
|
651 |
+
e.preventDefault();
|
652 |
+
|
653 |
+
var next_ele = wrap.next();
|
654 |
+
var rHolder_width = wrap.closest('.pagelayer-row-holder').width();
|
655 |
+
var new_width, nEle_new_width;
|
656 |
+
|
657 |
+
// Original width
|
658 |
+
var original_width = wrap.width();
|
659 |
+
var original_mouse_x = e.pageX;
|
660 |
+
|
661 |
+
// Add the element width and next element width
|
662 |
+
both_width = (original_width / rHolder_width *100) + (next_ele.width() / rHolder_width *100);
|
663 |
+
|
664 |
+
if(both_width > 100){
|
665 |
+
return false;
|
666 |
+
}
|
667 |
+
|
668 |
+
jQuery('body').css({'cursor': 'ew-resize'});
|
669 |
+
rHandler.show();
|
670 |
+
|
671 |
+
var r_mousemove = function(e){
|
672 |
+
var width = original_width + (e.pageX - original_mouse_x);
|
673 |
+
|
674 |
+
// Covert width in percentage
|
675 |
+
new_width = (width / rHolder_width *100).toFixed(2);
|
676 |
+
|
677 |
+
if(both_width > new_width && new_width > 0){
|
678 |
+
nEle_new_width = (both_width - new_width).toFixed(2);
|
679 |
+
wrap.css({'width': new_width+'%'});
|
680 |
+
next_ele.css({'width': nEle_new_width+'%'});
|
681 |
+
|
682 |
+
rHandler.attr({'pre-width': new_width+'%', 'next-width': nEle_new_width+'%'});
|
683 |
+
}
|
684 |
+
|
685 |
+
};
|
686 |
+
|
687 |
+
var r_mouseup = function(e){
|
688 |
+
|
689 |
+
jQuery(document).off('mousemove', r_mousemove);
|
690 |
+
jQuery('body').css({'cursor': ''});
|
691 |
+
rHandler.removeAttr('style pre-width next-width');
|
692 |
+
|
693 |
+
// find real element and next real element
|
694 |
+
var jEle = wrap.find('>.pagelayer-ele');
|
695 |
+
var nEle = next_ele.find('>.pagelayer-ele');
|
696 |
+
|
697 |
+
// Set the element attrs
|
698 |
+
jEle.attr({'pagelayer-a-col_width': new_width, 'pagelayer-a-col': ''});
|
699 |
+
nEle.attr({'pagelayer-a-col_width': nEle_new_width, 'pagelayer-a-col': ''});
|
700 |
+
jQuery(document).off('mouseup', r_mouseup);
|
701 |
+
|
702 |
+
};
|
703 |
+
|
704 |
+
// Resize start
|
705 |
+
jQuery(document).on('mousemove', r_mousemove);
|
706 |
+
jQuery(document).on('mouseup', r_mouseup);
|
707 |
+
});
|
708 |
+
}
|
709 |
+
|
710 |
// Handle addition of elements from the left
|
711 |
// NOTE : At this point the addition is FINALIZED
|
712 |
// The add element cannot be prevented !
|
775 |
'title' : pagelayer_shortcodes[sc]['name'],
|
776 |
'action' : 'Added',
|
777 |
'pl_id' : id,
|
778 |
+
'html' : jQuery("[pagelayer-id="+id+"]"),
|
779 |
'cEle' : cEle
|
780 |
});
|
781 |
|
1018 |
|
1019 |
// Is it an empty col ?
|
1020 |
pagelayer_empty_col(jEle.children('.pagelayer-col-holder'));
|
1021 |
+
|
1022 |
+
// Make col resizable
|
1023 |
+
pagelayer_col_make_resizable(wrap);
|
1024 |
|
1025 |
}else{
|
1026 |
|
1227 |
if(event.keyCode == 89 && event.ctrlKey){
|
1228 |
pagelayer_do_history('redo');
|
1229 |
}
|
1230 |
+
});
|
1231 |
+
|
1232 |
+
// Handle Copy of content
|
1233 |
+
jQuery(document).on('copy', function(copyEvent){
|
1234 |
|
1235 |
+
// Check the active element
|
1236 |
+
if(pagelayer_active.el && pagelayer_active.el.id){
|
1237 |
|
1238 |
+
copyEvent.preventDefault();
|
1239 |
+
|
1240 |
+
var eHtml = jQuery("[pagelayer-id='"+pagelayer_active.el.id+"']")[0].outerHTML;
|
1241 |
+
|
1242 |
+
// We need to do Empty clipboard
|
1243 |
+
(copyEvent.originalEvent || copyEvent).clipboardData.setData('pagelayer_ele', eHtml);
|
1244 |
+
|
1245 |
+
// Save the active element id
|
1246 |
+
//pagelayer_copy_select("[pagelayer-id='"+pagelayer_active.el.id+"']");
|
1247 |
+
|
1248 |
+
}
|
1249 |
+
|
1250 |
+
});
|
1251 |
+
|
1252 |
+
// Handle Paste in the editor
|
1253 |
+
jQuery(document).on('paste', function(pasteEvent){
|
1254 |
+
|
1255 |
+
var pEle_target = jQuery((pasteEvent.originalEvent || pasteEvent).target);
|
1256 |
+
var pagelayer_ajax_func = {};
|
1257 |
+
var contenteditable = false;
|
1258 |
+
|
1259 |
+
if(pEle_target.closest('[contenteditable]').length > 0){
|
1260 |
+
pEle_target = pEle_target.closest('[contenteditable]');
|
1261 |
+
contenteditable = true;
|
1262 |
+
}
|
1263 |
+
|
1264 |
+
// This function for ajax before send call back
|
1265 |
+
pagelayer_ajax_func['beforeSend'] = function(xhr){
|
1266 |
+
|
1267 |
+
// If target is not content editable
|
1268 |
+
if( pagelayer_empty(contenteditable) ){
|
1269 |
+
|
1270 |
+
// If we dont have an active element then return false and stop ajax
|
1271 |
+
if( !(pagelayer_active.el && pagelayer_active.el.id) ){
|
1272 |
+
return false;
|
1273 |
+
}
|
1274 |
+
|
1275 |
+
pagelayer.copy_selected = jQuery('<div pagelayer-tag="pl_image"></div>');
|
1276 |
+
|
1277 |
+
// Is it to be pastable
|
1278 |
+
if(!pagelayer_can_copy_to('[pagelayer-id="'+pagelayer_active.el.id+'"]')){
|
1279 |
+
pagelayer.copy_selected = '';
|
1280 |
+
return false;
|
1281 |
+
}
|
1282 |
}
|
1283 |
|
1284 |
+
pEle_target.css({'opacity': '0.33' , 'transition' : '0.1s'});
|
1285 |
+
}
|
1286 |
+
|
1287 |
+
// This function for ajax success call back
|
1288 |
+
pagelayer_ajax_func['success'] = function(obj){
|
1289 |
+
|
1290 |
+
// Successfully Uploaded
|
1291 |
+
if(obj['success']){
|
1292 |
+
|
1293 |
+
// For content editable e.g. Rich Text
|
1294 |
+
if( !pagelayer_empty(contenteditable) ){
|
1295 |
+
document.execCommand('insertImage', false, obj['data']['url']);
|
1296 |
+
|
1297 |
+
// For our widgets
|
1298 |
+
}else{
|
1299 |
+
var fTo = pagelayer_can_copy_to('[pagelayer-id="'+pagelayer_active.el.id+'"]');
|
1300 |
+
// We need to empty pagelayer.copy_selected
|
1301 |
+
pagelayer.copy_selected = '';
|
1302 |
+
|
1303 |
+
// Create image html
|
1304 |
+
var html = jQuery( pagelayer_create_sc('pl_image') );
|
1305 |
+
html.attr('pagelayer-a-id', obj['data']['id']);
|
1306 |
+
html.attr('pagelayer-tmp-id-url', obj['data']['url']);
|
1307 |
+
|
1308 |
+
// Copy the element
|
1309 |
+
var id = pagelayer_copy_element(html, fTo);
|
1310 |
+
jQuery('[pagelayer-id="'+id+'"]').click();
|
1311 |
+
}
|
1312 |
+
|
1313 |
+
// Some error occured
|
1314 |
+
}else{
|
1315 |
+
alert(obj['data']['message']);
|
1316 |
+
}
|
1317 |
+
}
|
1318 |
+
|
1319 |
+
// This function for ajax complete call back
|
1320 |
+
pagelayer_ajax_func['complete'] = function(xhr){
|
1321 |
+
//console.log(xhr);
|
1322 |
+
pEle_target.css({'opacity': '1' , 'transition' : '0.1s'});
|
1323 |
}
|
1324 |
|
1325 |
+
var findImg = pagelayer_editable_paste_handler(pasteEvent, pagelayer_ajax_func);
|
1326 |
+
|
1327 |
+
if(pagelayer_empty(findImg)){
|
1328 |
|
1329 |
// Check the active element
|
1330 |
if(pagelayer_active.el && pagelayer_active.el.id){
|
1331 |
|
1332 |
var jEle = jQuery("[pagelayer-id='"+pagelayer_active.el.id+"']");
|
1333 |
|
1334 |
+
var copy_ele = jQuery((pasteEvent.originalEvent || pasteEvent).clipboardData.getData('pagelayer_ele'));
|
1335 |
+
|
1336 |
// Check if the any element is copied
|
1337 |
+
if(copy_ele.length > 0 && pagelayer_can_copy_to(jEle)){
|
1338 |
+
pagelayer.copy_selected = copy_ele;
|
1339 |
pagelayer_paste_element("[pagelayer-id='"+pagelayer_active.el.id+"']");
|
1340 |
}
|
1341 |
|
3427 |
add_sc(tag);
|
3428 |
});
|
3429 |
}
|
3430 |
+
|
3431 |
+
// On editable area image paste handler
|
3432 |
+
function pagelayer_editable_paste_handler(pasteEvent, pagelayer_ajax_func){
|
3433 |
+
|
3434 |
+
try {
|
3435 |
+
var items = (pasteEvent.originalEvent || pasteEvent).clipboardData.items,
|
3436 |
+
mustPreventDefault = false,
|
3437 |
+
reader;
|
3438 |
+
|
3439 |
+
for (var i = items.length - 1; i >= 0; i -= 1) {
|
3440 |
+
|
3441 |
+
if (items[i].type.match(/^image\//)) {
|
3442 |
+
|
3443 |
+
reader = new FileReader();
|
3444 |
+
/* jshint -W083 */
|
3445 |
+
reader.onloadend = function (event) {
|
3446 |
+
|
3447 |
+
var src = event.target.result;
|
3448 |
+
|
3449 |
+
if( src.indexOf('data:image') === 0 ) {
|
3450 |
+
|
3451 |
+
var block = src.split(";");
|
3452 |
+
var contentType = block[0].split(":")[1];
|
3453 |
+
var realData = block[1].split(",")[1];
|
3454 |
+
var fileName = "image."+contentType.split("/")[1];
|
3455 |
+
|
3456 |
+
// Convert it to a blob to upload
|
3457 |
+
var blob = pagelayer_b64toBlob(realData, contentType);
|
3458 |
+
|
3459 |
+
var formData = new FormData();
|
3460 |
+
formData.append('action', 'upload-attachment');
|
3461 |
+
formData.append('_ajax_nonce', pagelayer_media_ajax_nonce);
|
3462 |
+
formData.append('async-upload', blob, fileName);
|
3463 |
+
|
3464 |
+
$.ajax({
|
3465 |
+
url:pagelayer_ajax_url,
|
3466 |
+
data: formData,// the formData function is available in almost all new browsers.
|
3467 |
+
type:"post",
|
3468 |
+
contentType:false,
|
3469 |
+
processData:false,
|
3470 |
+
cache:false,
|
3471 |
+
beforeSend: function( xhr ) {
|
3472 |
+
if(typeof pagelayer_ajax_func.beforeSend == 'function'){
|
3473 |
+
pagelayer_ajax_func.beforeSend(xhr);
|
3474 |
+
}
|
3475 |
+
},
|
3476 |
+
error:function(err){
|
3477 |
+
//console.error(err);
|
3478 |
+
alert("Unable to upload image for some reason.");
|
3479 |
+
},
|
3480 |
+
success:function(response){
|
3481 |
+
var obj = jQuery.parseJSON(response);
|
3482 |
+
if(typeof pagelayer_ajax_func.success == 'function'){
|
3483 |
+
pagelayer_ajax_func.success(obj);
|
3484 |
+
}
|
3485 |
+
},
|
3486 |
+
complete:function(xhr){
|
3487 |
+
if(typeof pagelayer_ajax_func.complete == 'function'){
|
3488 |
+
pagelayer_ajax_func.complete(xhr);
|
3489 |
+
}
|
3490 |
+
}
|
3491 |
+
});
|
3492 |
+
|
3493 |
+
}
|
3494 |
+
|
3495 |
+
};
|
3496 |
+
/* jshint +W083 */
|
3497 |
+
reader.readAsDataURL(items[i].getAsFile());
|
3498 |
+
mustPreventDefault = true;
|
3499 |
+
}
|
3500 |
+
}
|
3501 |
+
|
3502 |
+
if(mustPreventDefault){
|
3503 |
+
pasteEvent.stopPropagation();
|
3504 |
+
pasteEvent.preventDefault();
|
3505 |
+
}
|
3506 |
+
|
3507 |
+
}catch(err){}
|
3508 |
+
|
3509 |
+
return mustPreventDefault;
|
3510 |
+
|
3511 |
+
}
|
3512 |
+
|
3513 |
+
// Convert base64 to Blob
|
3514 |
+
function pagelayer_b64toBlob(b64Data, contentType, sliceSize) {
|
3515 |
+
contentType = contentType || '';
|
3516 |
+
sliceSize = sliceSize || 512;
|
3517 |
+
|
3518 |
+
var byteCharacters = atob(b64Data);
|
3519 |
+
var byteArrays = [];
|
3520 |
+
|
3521 |
+
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
|
3522 |
+
var slice = byteCharacters.slice(offset, offset + sliceSize);
|
3523 |
+
|
3524 |
+
var byteNumbers = new Array(slice.length);
|
3525 |
+
for (var i = 0; i < slice.length; i++) {
|
3526 |
+
byteNumbers[i] = slice.charCodeAt(i);
|
3527 |
+
}
|
3528 |
+
|
3529 |
+
var byteArray = new Uint8Array(byteNumbers);
|
3530 |
+
|
3531 |
+
byteArrays.push(byteArray);
|
3532 |
+
}
|
3533 |
+
|
3534 |
+
var blob = new Blob(byteArrays, {type: contentType});
|
3535 |
+
return blob;
|
3536 |
+
}
|
3537 |
+
|
3538 |
+
// Function to check if the URL is external
|
3539 |
+
function pagelayer_parse_theme_vars(img_url){
|
3540 |
+
|
3541 |
+
for(x in pagelayer_theme_vars){
|
3542 |
+
img_url = img_url.replace(x, pagelayer_theme_vars[x]);
|
3543 |
+
}
|
3544 |
+
|
3545 |
+
return img_url;
|
3546 |
+
};
|
@@ -1063,7 +1063,7 @@ function pagelayer_elp_image(row, prop){
|
|
1063 |
// External URL
|
1064 |
if('props' in state){
|
1065 |
|
1066 |
-
id = url = state.props.attributes.url;
|
1067 |
|
1068 |
// Internal from gallery
|
1069 |
}else{
|
@@ -1294,7 +1294,7 @@ function pagelayer_elp_video(row, prop){
|
|
1294 |
// External URL
|
1295 |
if('props' in state){
|
1296 |
|
1297 |
-
id = url = state.props.attributes.url;
|
1298 |
|
1299 |
// Internal from gallery
|
1300 |
}else{
|
@@ -1369,7 +1369,7 @@ function pagelayer_elp_audio(row, prop){
|
|
1369 |
// External URL
|
1370 |
if('props' in state){
|
1371 |
|
1372 |
-
id = url = state.props.attributes.url;
|
1373 |
|
1374 |
// Internal from gallery
|
1375 |
}else{
|
@@ -1442,7 +1442,7 @@ function pagelayer_elp_media(row, prop){
|
|
1442 |
// External URL
|
1443 |
if('props' in state){
|
1444 |
|
1445 |
-
id = url = state.props.attributes.url;
|
1446 |
|
1447 |
// Internal from gallery
|
1448 |
}else{
|
@@ -1791,6 +1791,7 @@ function pagelayer_elp_color(row, prop){
|
|
1791 |
|
1792 |
var div = '<div class="pagelayer-elp-color-div">'+
|
1793 |
'<div class="pagelayer-elp-color-preview"></div>'+
|
|
|
1794 |
'</div>';
|
1795 |
|
1796 |
row.append(div);
|
@@ -1806,10 +1807,20 @@ function pagelayer_elp_color(row, prop){
|
|
1806 |
|
1807 |
// Handle selected color
|
1808 |
picker.onChange = function(color) {
|
1809 |
-
|
|
|
1810 |
_pagelayer_set_atts(row, color.hex);// Save and Render
|
1811 |
};
|
1812 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1813 |
}
|
1814 |
|
1815 |
// The Spinner property
|
1063 |
// External URL
|
1064 |
if('props' in state){
|
1065 |
|
1066 |
+
id = url = pagelayer_parse_theme_vars(state.props.attributes.url);
|
1067 |
|
1068 |
// Internal from gallery
|
1069 |
}else{
|
1294 |
// External URL
|
1295 |
if('props' in state){
|
1296 |
|
1297 |
+
id = url = pagelayer_parse_theme_vars(state.props.attributes.url);
|
1298 |
|
1299 |
// Internal from gallery
|
1300 |
}else{
|
1369 |
// External URL
|
1370 |
if('props' in state){
|
1371 |
|
1372 |
+
id = url = pagelayer_parse_theme_vars(state.props.attributes.url);
|
1373 |
|
1374 |
// Internal from gallery
|
1375 |
}else{
|
1442 |
// External URL
|
1443 |
if('props' in state){
|
1444 |
|
1445 |
+
id = url = pagelayer_parse_theme_vars(state.props.attributes.url);
|
1446 |
|
1447 |
// Internal from gallery
|
1448 |
}else{
|
1791 |
|
1792 |
var div = '<div class="pagelayer-elp-color-div">'+
|
1793 |
'<div class="pagelayer-elp-color-preview"></div>'+
|
1794 |
+
'<span class="pagelayer-elp-remove-color pagelayer-prop-action"><i class="fa fa-times" /></span>'+
|
1795 |
'</div>';
|
1796 |
|
1797 |
row.append(div);
|
1807 |
|
1808 |
// Handle selected color
|
1809 |
picker.onChange = function(color) {
|
1810 |
+
|
1811 |
+
row.find('.pagelayer-elp-color-preview').removeClass('pagelayer-blank-preview').css('background', color.rgbaString);
|
1812 |
_pagelayer_set_atts(row, color.hex);// Save and Render
|
1813 |
};
|
1814 |
|
1815 |
+
picker.onOpen = picker.onChange;
|
1816 |
+
|
1817 |
+
row.find('.pagelayer-elp-remove-color').on('click', function(event){
|
1818 |
+
event.stopPropagation();
|
1819 |
+
picker.setColor(prop.default, true);
|
1820 |
+
row.find('.pagelayer-elp-color-preview').addClass('pagelayer-blank-preview');
|
1821 |
+
_pagelayer_set_atts(row, ' ');// Save and Render
|
1822 |
+
})
|
1823 |
+
|
1824 |
}
|
1825 |
|
1826 |
// The Spinner property
|
@@ -1,67 +1,67 @@
|
|
1 |
(function ($) {
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
|
66 |
var func_media = window['pagelayer_select_frame'];
|
67 |
|
@@ -111,108 +111,139 @@
|
|
111 |
|
112 |
}
|
113 |
|
114 |
-
|
115 |
ico: 'insert-image'
|
116 |
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
foreColor: 'Text color',
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
var t = $(this);
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
|
140 |
-
|
141 |
-
|
142 |
|
143 |
-
|
144 |
-
|
145 |
color: {
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
})(jQuery);
|
217 |
|
218 |
|
1 |
(function ($) {
|
2 |
+
'use strict';
|
3 |
+
// jshint camelcase:true
|
4 |
+
|
5 |
+
|
6 |
+
function hex(x) {
|
7 |
+
return ('0' + parseInt(x).toString(16)).slice(-2);
|
8 |
+
}
|
9 |
+
|
10 |
+
function colorToHex(rgb) {
|
11 |
+
if (rgb.search('rgb') === -1) {
|
12 |
+
return rgb.replace('#', '');
|
13 |
+
} else if (rgb === 'rgba(0, 0, 0, 0)') {
|
14 |
+
return 'transparent';
|
15 |
+
} else {
|
16 |
+
rgb = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/);
|
17 |
+
return hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
function colorTagHandler(element, trumbowyg) {
|
22 |
+
var tags = [];
|
23 |
+
|
24 |
+
if (!element.style) {
|
25 |
+
return tags;
|
26 |
+
}
|
27 |
+
|
28 |
+
// background color
|
29 |
+
if (element.style.backgroundColor !== '') {
|
30 |
+
var backColor = colorToHex(element.style.backgroundColor);
|
31 |
+
if (trumbowyg.o.plugins.colors.colorList.indexOf(backColor) >= 0) {
|
32 |
+
tags.push('backColor' + backColor);
|
33 |
+
} else {
|
34 |
+
tags.push('backColorFree');
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
+
// text color
|
39 |
+
var foreColor;
|
40 |
+
if (element.style.color !== '') {
|
41 |
+
foreColor = colorToHex(element.style.color);
|
42 |
+
} else if (element.hasAttribute('color')) {
|
43 |
+
foreColor = colorToHex(element.getAttribute('color'));
|
44 |
+
}
|
45 |
+
if (foreColor) {
|
46 |
+
if (trumbowyg.o.plugins.colors.colorList.indexOf(foreColor) >= 0) {
|
47 |
+
tags.push('foreColor' + foreColor);
|
48 |
+
} else {
|
49 |
+
tags.push('foreColorFree');
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
return tags;
|
54 |
+
}
|
55 |
+
|
56 |
+
var defaultOptions = {
|
57 |
+
colorList: ['ffffff', '000000', 'eeece1', '1f497d', '4f81bd', 'c0504d', '9bbb59', '8064a2', '4bacc6', 'f79646', 'ffff00', 'f2f2f2', '7f7f7f', 'ddd9c3', 'c6d9f0', 'dbe5f1', 'f2dcdb', 'ebf1dd', 'e5e0ec', 'dbeef3', 'fdeada', 'fff2ca', 'd8d8d8', '595959', 'c4bd97', '8db3e2', 'b8cce4', 'e5b9b7', 'd7e3bc', 'ccc1d9', 'b7dde8', 'fbd5b5', 'ffe694', 'bfbfbf', '3f3f3f', '938953', '548dd4', '95b3d7', 'd99694', 'c3d69b', 'b2a2c7', 'b7dde8', 'fac08f', 'f2c314', 'a5a5a5', '262626', '494429', '17365d', '366092', '953734', '76923c', '5f497a', '92cddc', 'e36c09', 'c09100', '7f7f7f', '0c0c0c', '1d1b10', '0f243e', '244061', '632423', '4f6128', '3f3151', '31859b', '974806', '7f6000']
|
58 |
+
};
|
59 |
|
60 |
+
// If WP media is a button
|
61 |
+
function openwpmediaDef(trumbowyg) {
|
62 |
+
return {
|
63 |
+
fn: function() {
|
64 |
+
// WP media button logic
|
65 |
|
66 |
var func_media = window['pagelayer_select_frame'];
|
67 |
|
111 |
|
112 |
}
|
113 |
|
114 |
+
},
|
115 |
ico: 'insert-image'
|
116 |
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
$.extend(true, $.trumbowyg, {
|
121 |
+
// Add some translations
|
122 |
+
langs: {
|
123 |
+
en: {
|
124 |
+
wpmedia: 'Insert Image',
|
125 |
foreColor: 'Text color',
|
126 |
+
backColor: 'Background color'
|
127 |
+
}
|
128 |
+
},
|
129 |
+
// Add our plugin to Trumbowyg registred plugins
|
130 |
+
plugins: {
|
131 |
+
wpmedia: {
|
132 |
+
init: function(trumbowyg) {
|
133 |
var t = $(this);
|
134 |
+
// Fill current Trumbowyg instance with WP media default options
|
135 |
+
trumbowyg.o.plugins.wpmedia = $.extend(true, {},
|
136 |
+
defaultOptions,
|
137 |
+
trumbowyg.o.plugins.wpmedia || {}
|
138 |
+
);
|
139 |
|
140 |
+
// If WP media is a
|
141 |
+
trumbowyg.addBtnDef('wpmedia', openwpmediaDef(trumbowyg));
|
142 |
|
143 |
+
},
|
144 |
+
},
|
145 |
color: {
|
146 |
+
init: function (trumbowyg) {
|
147 |
+
trumbowyg.o.plugins.colors = trumbowyg.o.plugins.colors || defaultOptions;
|
148 |
+
var foreColorBtnDef = {
|
149 |
+
dropdown: buildDropdown('foreColor', trumbowyg)
|
150 |
+
},
|
151 |
+
backColorBtnDef = {
|
152 |
+
dropdown: buildDropdown('backColor', trumbowyg)
|
153 |
+
};
|
154 |
+
|
155 |
+
trumbowyg.addBtnDef('foreColor', foreColorBtnDef);
|
156 |
+
trumbowyg.addBtnDef('backColor', backColorBtnDef);
|
157 |
+
},
|
158 |
+
tagHandler: colorTagHandler
|
159 |
+
},
|
160 |
+
pasteImage: {
|
161 |
+
init: function (trumbowyg) {
|
162 |
+
trumbowyg.pasteHandlers.push(function (pasteEvent) {
|
163 |
+
|
164 |
+
var pagelayer_ajax_func = {};
|
165 |
+
|
166 |
+
// This function for ajax success call back
|
167 |
+
pagelayer_ajax_func['success'] = function(obj){
|
168 |
+
//alert(obj);
|
169 |
+
if(obj['success']){
|
170 |
+
trumbowyg.execCmd('insertImage', obj['data']['url'], false, true);
|
171 |
+
}else{
|
172 |
+
alert(obj['data']['message']);
|
173 |
+
}
|
174 |
+
}
|
175 |
+
|
176 |
+
// This function for ajax before send call back
|
177 |
+
pagelayer_ajax_func['beforeSend'] = function(xhr){
|
178 |
+
trumbowyg.showOverlay();
|
179 |
+
}
|
180 |
+
|
181 |
+
// This function for ajax complete call back
|
182 |
+
pagelayer_ajax_func['complete'] = function(xhr){
|
183 |
+
trumbowyg.hideOverlay();
|
184 |
+
}
|
185 |
+
|
186 |
+
pagelayer_editable_paste_handler(pasteEvent, pagelayer_ajax_func);
|
187 |
+
});
|
188 |
+
}
|
189 |
+
}
|
190 |
+
}
|
191 |
+
});
|
192 |
+
|
193 |
+
function buildDropdown(fn, trumbowyg) {
|
194 |
+
var dropdown = [];
|
195 |
+
|
196 |
+
$.each(trumbowyg.o.plugins.colors.colorList, function (i, color) {
|
197 |
+
var btn = fn + color,
|
198 |
+
btnDef = {
|
199 |
+
fn: fn,
|
200 |
+
forceCss: true,
|
201 |
+
param: '#' + color,
|
202 |
+
style: 'background-color: #' + color + ';'
|
203 |
+
};
|
204 |
+
trumbowyg.addBtnDef(btn, btnDef);
|
205 |
+
dropdown.push(btn);
|
206 |
+
});
|
207 |
+
|
208 |
+
var removeColorButtonName = fn + 'Remove',
|
209 |
+
removeColorBtnDef = {
|
210 |
+
fn: 'removeFormat',
|
211 |
+
param: fn,
|
212 |
+
style: 'background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);'
|
213 |
+
};
|
214 |
+
trumbowyg.addBtnDef(removeColorButtonName, removeColorBtnDef);
|
215 |
+
dropdown.push(removeColorButtonName);
|
216 |
+
|
217 |
+
// add free color btn
|
218 |
+
var freeColorButtonName = fn + 'Free',
|
219 |
+
freeColorBtnDef = {
|
220 |
+
fn: function () {
|
221 |
+
trumbowyg.openModalInsert(trumbowyg.lang[fn],
|
222 |
+
{
|
223 |
+
color: {
|
224 |
+
label: fn,
|
225 |
+
forceCss: true,
|
226 |
+
type: 'color',
|
227 |
+
value: '#FFFFFF'
|
228 |
+
}
|
229 |
+
},
|
230 |
+
// callback
|
231 |
+
function (values) {
|
232 |
+
trumbowyg.execCmd(fn, values.color);
|
233 |
+
return true;
|
234 |
+
}
|
235 |
+
);
|
236 |
+
},
|
237 |
+
text: '#',
|
238 |
+
// style adjust for displaying the text
|
239 |
+
style: 'text-indent: 0;line-height: 20px;padding: 0 5px;'
|
240 |
+
};
|
241 |
+
trumbowyg.addBtnDef(freeColorButtonName, freeColorBtnDef);
|
242 |
+
dropdown.push(freeColorButtonName);
|
243 |
+
|
244 |
+
return dropdown;
|
245 |
+
}
|
246 |
+
|
247 |
})(jQuery);
|
248 |
|
249 |
|
@@ -44,6 +44,7 @@ function pagelayer_render_pl_col(el){
|
|
44 |
}
|
45 |
|
46 |
el.$.parent().addClass('pagelayer-col-'+el.atts['col']);
|
|
|
47 |
}
|
48 |
|
49 |
if(el.atts['col_width']){
|
44 |
}
|
45 |
|
46 |
el.$.parent().addClass('pagelayer-col-'+el.atts['col']);
|
47 |
+
el.$.parent().css('width', '');
|
48 |
}
|
49 |
|
50 |
if(el.atts['col_width']){
|
@@ -1583,5 +1583,7 @@
|
|
1583 |
"container_position" : "Container Position",
|
1584 |
"fixed_right" : "Fixed On Right",
|
1585 |
"fixed_left" : "Fixed On Left",
|
1586 |
-
"container_style" : "Container Style"
|
|
|
|
|
1587 |
}
|
1583 |
"container_position" : "Container Position",
|
1584 |
"fixed_right" : "Fixed On Right",
|
1585 |
"fixed_left" : "Fixed On Left",
|
1586 |
+
"container_style" : "Container Style",
|
1587 |
+
"rotate_icon" : "Rotate Icon",
|
1588 |
+
"url" : "URL"
|
1589 |
}
|
@@ -1154,12 +1154,22 @@ function pagelayer_export_template(){
|
|
1154 |
}
|
1155 |
|
1156 |
// Get the active theme
|
1157 |
-
$theme_dir =
|
1158 |
$conf = [];
|
1159 |
|
|
|
|
|
1160 |
// Write the files
|
1161 |
foreach($pagelayer->templates as $k => $v){
|
1162 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1163 |
$conf[$v->post_name] = [
|
1164 |
'type' => get_post_meta($v->ID, 'pagelayer_template_type', true),
|
1165 |
'conditions' => get_post_meta($v->ID, 'pagelayer_template_conditions', true),
|
@@ -1169,6 +1179,42 @@ function pagelayer_export_template(){
|
|
1169 |
// Write the config
|
1170 |
file_put_contents($theme_dir.'/pagelayer.conf', json_encode($conf, JSON_PRETTY_PRINT));
|
1171 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1172 |
$done['success'] = __pl('temp_export_success');
|
1173 |
|
1174 |
// Output and die
|
1154 |
}
|
1155 |
|
1156 |
// Get the active theme
|
1157 |
+
$theme_dir = get_stylesheet_directory();
|
1158 |
$conf = [];
|
1159 |
|
1160 |
+
$pagelayer->export_mode = 1;
|
1161 |
+
|
1162 |
// Write the files
|
1163 |
foreach($pagelayer->templates as $k => $v){
|
1164 |
+
|
1165 |
+
// Are there specific templates to export
|
1166 |
+
if(!empty($_POST['templates'])){
|
1167 |
+
if(!isset($_POST['templates'][$v->ID])){
|
1168 |
+
continue;
|
1169 |
+
}
|
1170 |
+
}
|
1171 |
+
|
1172 |
+
file_put_contents($theme_dir.'/'.$v->post_name.'.pgl', pagelayer_export_content($v->post_content));
|
1173 |
$conf[$v->post_name] = [
|
1174 |
'type' => get_post_meta($v->ID, 'pagelayer_template_type', true),
|
1175 |
'conditions' => get_post_meta($v->ID, 'pagelayer_template_conditions', true),
|
1179 |
// Write the config
|
1180 |
file_put_contents($theme_dir.'/pagelayer.conf', json_encode($conf, JSON_PRETTY_PRINT));
|
1181 |
|
1182 |
+
// Any pages to export for users ?
|
1183 |
+
if(!empty($_POST['pages'])){
|
1184 |
+
|
1185 |
+
mkdir($theme_dir.'/data/');
|
1186 |
+
mkdir($theme_dir.'/data/page');
|
1187 |
+
|
1188 |
+
$conf = [];
|
1189 |
+
|
1190 |
+
// Load the pages
|
1191 |
+
$pages_query = new WP_Query(['post_type' => 'page', 'status' => 'publish']);
|
1192 |
+
$pages = $pages_query->posts;
|
1193 |
+
|
1194 |
+
// Write the files
|
1195 |
+
foreach($pages as $k => $v){
|
1196 |
+
|
1197 |
+
if(!isset($_POST['pages'][$v->ID])){
|
1198 |
+
continue;
|
1199 |
+
}
|
1200 |
+
|
1201 |
+
file_put_contents($theme_dir.'/data/page/'.$v->post_name, pagelayer_export_content($v->post_content));
|
1202 |
+
unset($v->post_content);
|
1203 |
+
$conf['page'][$v->post_name] = $v;
|
1204 |
+
|
1205 |
+
}
|
1206 |
+
|
1207 |
+
// Write the config
|
1208 |
+
file_put_contents($theme_dir.'/pagelayer-data.conf', json_encode($conf, JSON_PRETTY_PRINT));
|
1209 |
+
|
1210 |
+
}
|
1211 |
+
|
1212 |
+
// Are we to export any media ?
|
1213 |
+
if(!empty($pagelayer->media_to_export)){
|
1214 |
+
// TODO
|
1215 |
+
//$done['media'] = $pagelayer->media_to_export;
|
1216 |
+
}
|
1217 |
+
|
1218 |
$done['success'] = __pl('temp_export_success');
|
1219 |
|
1220 |
// Output and die
|
@@ -56,6 +56,9 @@ class PageLayer{
|
|
56 |
|
57 |
// Tabs visible in the left panel
|
58 |
var $tabs = ['settings', 'options'];
|
|
|
|
|
|
|
59 |
|
60 |
function __construct() {
|
61 |
|
56 |
|
57 |
// Tabs visible in the left panel
|
58 |
var $tabs = ['settings', 'options'];
|
59 |
+
|
60 |
+
// For exporting templates
|
61 |
+
var $media_to_export = array();
|
62 |
|
63 |
function __construct() {
|
64 |
|
@@ -399,6 +399,11 @@ function pagelayer_shortlink($id){
|
|
399 |
return $link;
|
400 |
}
|
401 |
|
|
|
|
|
|
|
|
|
|
|
402 |
// Are we in live mode ?
|
403 |
function pagelayer_is_live(){
|
404 |
|
@@ -573,7 +578,9 @@ function pagelayer_add_shortcode($tag, $params = array()){
|
|
573 |
|
574 |
// Returns the Image values
|
575 |
function pagelayer_image($id){
|
576 |
-
|
|
|
|
|
577 |
$ret = [];
|
578 |
|
579 |
// External image ?
|
@@ -590,6 +597,11 @@ function pagelayer_image($id){
|
|
590 |
|
591 |
// Is there an attachment which is an image ?
|
592 |
if(!empty($image) && $image->post_type == 'attachment' && wp_attachment_is_image($id)){
|
|
|
|
|
|
|
|
|
|
|
593 |
|
594 |
$sizes = get_intermediate_image_sizes();
|
595 |
array_unshift($sizes, 'full');
|
@@ -656,6 +668,11 @@ function pagelayer_attachment($id){
|
|
656 |
|
657 |
// Attachment
|
658 |
}elseif(!empty($id)){
|
|
|
|
|
|
|
|
|
|
|
659 |
|
660 |
$ret['url'] = wp_get_attachment_url($id);
|
661 |
|
@@ -875,7 +892,7 @@ color: red;
|
|
875 |
}
|
876 |
|
877 |
echo '
|
878 |
-
<p style="font-size:13px">We are glad you like <a href="'.$opts['website'].'"><b>
|
879 |
<p>
|
880 |
'.(empty($opts['rating']) ? '' : '<a class="pagelayer_promo_button pagelayer_promo_button2" target="_blank" href="'.$opts['rating'].'">Rate it 5★\'s</a>').'
|
881 |
'.(empty($opts['facebook']) ? '' : '<a class="pagelayer_promo_button pagelayer_promo_button3" target="_blank" href="'.$opts['facebook'].'"><span class="dashicons dashicons-thumbs-up"></span> Facebook</a>').'
|
@@ -1432,3 +1449,16 @@ function pagelayer_shortcode_current_query($query_args, $atts, $type){
|
|
1432 |
|
1433 |
return $query_args;
|
1434 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
399 |
return $link;
|
400 |
}
|
401 |
|
402 |
+
// Pagelayer live link
|
403 |
+
function pagelayer_livelink($id){
|
404 |
+
return pagelayer_shortlink($id).'&pagelayer-live=1';
|
405 |
+
}
|
406 |
+
|
407 |
// Are we in live mode ?
|
408 |
function pagelayer_is_live(){
|
409 |
|
578 |
|
579 |
// Returns the Image values
|
580 |
function pagelayer_image($id){
|
581 |
+
|
582 |
+
global $pagelayer;
|
583 |
+
|
584 |
$ret = [];
|
585 |
|
586 |
// External image ?
|
597 |
|
598 |
// Is there an attachment which is an image ?
|
599 |
if(!empty($image) && $image->post_type == 'attachment' && wp_attachment_is_image($id)){
|
600 |
+
|
601 |
+
// Need to export necessary media
|
602 |
+
if(!empty($pagelayer->export_mode)){
|
603 |
+
$pagelayer->media_to_export[] = $id;
|
604 |
+
}
|
605 |
|
606 |
$sizes = get_intermediate_image_sizes();
|
607 |
array_unshift($sizes, 'full');
|
668 |
|
669 |
// Attachment
|
670 |
}elseif(!empty($id)){
|
671 |
+
|
672 |
+
// Need to export necessary media
|
673 |
+
if(!empty($pagelayer->export_mode)){
|
674 |
+
$pagelayer->media_to_export[] = $id;
|
675 |
+
}
|
676 |
|
677 |
$ret['url'] = wp_get_attachment_url($id);
|
678 |
|
892 |
}
|
893 |
|
894 |
echo '
|
895 |
+
<p style="font-size:13px">We are glad you like <a href="'.$opts['website'].'"><b>Pagelayer</b></a> and have been using it since the past few days. It is time to take the next step !</p>
|
896 |
<p>
|
897 |
'.(empty($opts['rating']) ? '' : '<a class="pagelayer_promo_button pagelayer_promo_button2" target="_blank" href="'.$opts['rating'].'">Rate it 5★\'s</a>').'
|
898 |
'.(empty($opts['facebook']) ? '' : '<a class="pagelayer_promo_button pagelayer_promo_button3" target="_blank" href="'.$opts['facebook'].'"><span class="dashicons dashicons-thumbs-up"></span> Facebook</a>').'
|
1449 |
|
1450 |
return $query_args;
|
1451 |
}
|
1452 |
+
|
1453 |
+
function pagelayer_export_content($content){
|
1454 |
+
|
1455 |
+
// Just call do_shortcode so we can get list of media files to export
|
1456 |
+
//do_shortcode($content);
|
1457 |
+
|
1458 |
+
$theme_url = preg_replace('/http(s?):\/\//is', '', get_stylesheet_directory_uri());
|
1459 |
+
|
1460 |
+
$content = preg_replace('/http(s?):\/\/'.preg_quote($theme_url, '/').'/is', '{{theme_url}}', $content);
|
1461 |
+
|
1462 |
+
return $content;
|
1463 |
+
|
1464 |
+
}
|
@@ -48,7 +48,7 @@ class PageLayer_LiveEditor{
|
|
48 |
add_filter('the_content', array($this, 'the_content'));
|
49 |
|
50 |
// Enqueue our Editor's JS
|
51 |
-
wp_register_script('pagelayer-editor', PAGELAYER_JS.'/givejs.php?give=pagelayer-editor.js,widgets.js,'.(defined('PAGELAYER_PREMIUM') ? 'premium.js,' : '').'properties.js,
|
52 |
wp_enqueue_script('pagelayer-editor');
|
53 |
|
54 |
// Enqueue the Editor's CSS
|
@@ -69,6 +69,7 @@ class PageLayer_LiveEditor{
|
|
69 |
|
70 |
// Hide Admin Bar
|
71 |
show_admin_bar(false);
|
|
|
72 |
|
73 |
// Load custom widgets
|
74 |
do_action('pagelayer_custom_editor_enqueue');
|
@@ -98,12 +99,14 @@ pagelayer_styles = '.json_encode($pagelayer->styles).';
|
|
98 |
pagelayer_groups = '.json_encode($pagelayer->groups).';
|
99 |
pagelayer_ajax_url = "'.admin_url( 'admin-ajax.php' ).'?";
|
100 |
pagelayer_ajax_nonce = "'.wp_create_nonce('pagelayer_ajax').'";
|
|
|
101 |
pagelayer_url = "'.PAGELAYER_URL.'";
|
102 |
pagelayer_postID = "'.$post->ID.'";
|
103 |
pagelayer_post_permalink = "'.get_permalink($post->ID).'";
|
104 |
pagelayer_tabs = '.json_encode($pagelayer->tabs).';
|
105 |
pagelayer_isDirty = false;
|
106 |
pagelayer_returnURL = "'.$returnURL.'";
|
|
|
107 |
pagelayer_revision_obj = '.json_encode( pagelayer_get_post_revision_by_id( $post->ID ) ).';
|
108 |
pagelayer_author = '.json_encode(pagelayer_author_data($post->ID)).';
|
109 |
pagelayer_site_logo = '.json_encode(pagelayer_site_logo()).';
|
48 |
add_filter('the_content', array($this, 'the_content'));
|
49 |
|
50 |
// Enqueue our Editor's JS
|
51 |
+
wp_register_script('pagelayer-editor', PAGELAYER_JS.'/givejs.php?give=pagelayer-editor.js,widgets.js,'.(defined('PAGELAYER_PREMIUM') ? 'premium.js,' : '').'properties.js,base-64.js,slimscroll.js,vanilla-picker.min.js,trumbowyg.js,trumbowyg.fontfamily.js,trumbowyg-pagelayer.js,trumbowyg.fontsize.min.js,pen.js', array('jquery'), PAGELAYER_VERSION);
|
52 |
wp_enqueue_script('pagelayer-editor');
|
53 |
|
54 |
// Enqueue the Editor's CSS
|
69 |
|
70 |
// Hide Admin Bar
|
71 |
show_admin_bar(false);
|
72 |
+
remove_action('wp_head', '_admin_bar_bump_cb');
|
73 |
|
74 |
// Load custom widgets
|
75 |
do_action('pagelayer_custom_editor_enqueue');
|
99 |
pagelayer_groups = '.json_encode($pagelayer->groups).';
|
100 |
pagelayer_ajax_url = "'.admin_url( 'admin-ajax.php' ).'?";
|
101 |
pagelayer_ajax_nonce = "'.wp_create_nonce('pagelayer_ajax').'";
|
102 |
+
pagelayer_media_ajax_nonce = "'.wp_create_nonce('media-form').'";
|
103 |
pagelayer_url = "'.PAGELAYER_URL.'";
|
104 |
pagelayer_postID = "'.$post->ID.'";
|
105 |
pagelayer_post_permalink = "'.get_permalink($post->ID).'";
|
106 |
pagelayer_tabs = '.json_encode($pagelayer->tabs).';
|
107 |
pagelayer_isDirty = false;
|
108 |
pagelayer_returnURL = "'.$returnURL.'";
|
109 |
+
pagelayer_theme_vars = '.json_encode( pagelayer_template_vars() ).';
|
110 |
pagelayer_revision_obj = '.json_encode( pagelayer_get_post_revision_by_id( $post->ID ) ).';
|
111 |
pagelayer_author = '.json_encode(pagelayer_author_data($post->ID)).';
|
112 |
pagelayer_site_logo = '.json_encode(pagelayer_site_logo()).';
|
@@ -209,8 +209,8 @@ if(!defined('PAGELAYER_VERSION')) {
|
|
209 |
}
|
210 |
?>
|
211 |
<form class="pagelayer-setting-form" method="post" action="">
|
212 |
-
<h1>
|
213 |
-
<p>Welcome To
|
214 |
<div class="tabs-wrapper">
|
215 |
<h2 class="nav-tab-wrapper pagelayer-wrapper">
|
216 |
<a href="#general" class="nav-tab">General</a>
|
@@ -342,7 +342,7 @@ if(!defined('PAGELAYER_VERSION')) {
|
|
342 |
<?php } ?>
|
343 |
<div class="pagelayer-tab-panel" id="support">
|
344 |
<h2>Support</h2>
|
345 |
-
<h3>You can contact the
|
346 |
|
347 |
|
348 |
</div>
|
@@ -351,7 +351,7 @@ if(!defined('PAGELAYER_VERSION')) {
|
|
351 |
<div class="pagelayer-acc-wrapper">
|
352 |
<span class="nav-tab pagelayer-acc-tab">1: Why choose us</span>
|
353 |
<div class="pagelayer-acc-panel">
|
354 |
-
<p>
|
355 |
</div>
|
356 |
|
357 |
<span class="nav-tab pagelayer-acc-tab">2: Support</span>
|
209 |
}
|
210 |
?>
|
211 |
<form class="pagelayer-setting-form" method="post" action="">
|
212 |
+
<h1>Pagelayer Settings</h1>
|
213 |
+
<p>Welcome To Pagelayer</p>
|
214 |
<div class="tabs-wrapper">
|
215 |
<h2 class="nav-tab-wrapper pagelayer-wrapper">
|
216 |
<a href="#general" class="nav-tab">General</a>
|
342 |
<?php } ?>
|
343 |
<div class="pagelayer-tab-panel" id="support">
|
344 |
<h2>Support</h2>
|
345 |
+
<h3>You can contact the Pagelayer Team via email. Our email address is <a href="mailto:support@pagelayer.com">support@pagelayer.com</a>. We will get back to you as soon as possible!</h3>
|
346 |
|
347 |
|
348 |
</div>
|
351 |
<div class="pagelayer-acc-wrapper">
|
352 |
<span class="nav-tab pagelayer-acc-tab">1: Why choose us</span>
|
353 |
<div class="pagelayer-acc-panel">
|
354 |
+
<p>Pagelayer is best live editor and easy to use and we will keep improving it !</P>
|
355 |
</div>
|
356 |
|
357 |
<span class="nav-tab pagelayer-acc-tab">2: Support</span>
|
@@ -610,7 +610,7 @@ $pagelayer->styles['ele_styles'] = [
|
|
610 |
'ele_zindex' => [
|
611 |
'type' => 'slider',
|
612 |
'label' => __pl('z-index'),
|
613 |
-
'css' => 'z-index: {{val}}',
|
614 |
],
|
615 |
'ele_shadow' => [
|
616 |
'type' => 'shadow',
|
@@ -633,6 +633,7 @@ $pagelayer->styles['border_styles'] = [
|
|
633 |
'border_type' => [
|
634 |
'type' => 'select',
|
635 |
'label' => __pl('border_type'),
|
|
|
636 |
'list' => [
|
637 |
'' => __pl('none'),
|
638 |
'solid' => __pl('solid'),
|
@@ -649,6 +650,7 @@ $pagelayer->styles['border_styles'] = [
|
|
649 |
'label' => __pl('border_width'),
|
650 |
'default' => '1,1,1,1',
|
651 |
'units' => ['px', 'em'],
|
|
|
652 |
'show' => [
|
653 |
'border_hover' => ''
|
654 |
],
|
@@ -661,6 +663,7 @@ $pagelayer->styles['border_styles'] = [
|
|
661 |
'type' => 'color',
|
662 |
'label' => __pl('border_color'),
|
663 |
'default' => '#CCC',
|
|
|
664 |
'show' => [
|
665 |
'border_hover' => ''
|
666 |
],
|
@@ -673,6 +676,7 @@ $pagelayer->styles['border_styles'] = [
|
|
673 |
'type' => 'padding',
|
674 |
'label' => __pl('border_radius'),
|
675 |
'units' => ['px', 'em'],
|
|
|
676 |
'show' => ['border_hover' => ''],
|
677 |
'css' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};',
|
678 |
],
|
@@ -685,6 +689,7 @@ $pagelayer->styles['border_styles'] = [
|
|
685 |
'border_type_hover' => [
|
686 |
'type' => 'select',
|
687 |
'label' => __pl('border_type'),
|
|
|
688 |
'list' => [
|
689 |
'' => __pl('none'),
|
690 |
'solid' => __pl('solid'),
|
@@ -700,6 +705,7 @@ $pagelayer->styles['border_styles'] = [
|
|
700 |
'type' => 'padding',
|
701 |
'label' => __pl('border_width'),
|
702 |
'units' => ['px', 'em'],
|
|
|
703 |
'show' => [
|
704 |
'border_hover' => 'hover'
|
705 |
],
|
@@ -711,6 +717,7 @@ $pagelayer->styles['border_styles'] = [
|
|
711 |
'border_color_hover' => [
|
712 |
'type' => 'color',
|
713 |
'label' => __pl('border_color'),
|
|
|
714 |
'show' => [
|
715 |
'border_hover' => 'hover'
|
716 |
],
|
@@ -722,6 +729,7 @@ $pagelayer->styles['border_styles'] = [
|
|
722 |
'border_radius_hover' => [
|
723 |
'type' => 'padding',
|
724 |
'label' => __pl('border_radius'),
|
|
|
725 |
'units' => ['px', 'em'],
|
726 |
'show' => ['border_hover' => 'hover'],
|
727 |
'css' => ['{{element}}:hover' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
|
@@ -828,7 +836,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_row', array(
|
|
828 |
</div>
|
829 |
</div>
|
830 |
<div if="{{overlay_type}}" class="pagelayer-background-overlay"></div>
|
831 |
-
<div class="pagelayer-row-holder pagelayer-row pagelayer-auto"></div>',
|
832 |
'holder' => '.pagelayer-row-holder',
|
833 |
'params' => array(
|
834 |
'stretch' => array(
|
@@ -2307,6 +2315,20 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_icon', array(
|
|
2307 |
'icon_hover' => ''
|
2308 |
),
|
2309 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2310 |
'bg_color' => array(
|
2311 |
'type' => 'color',
|
2312 |
'label' => __pl('service_box_icon_background_color_label'),
|
@@ -2327,7 +2349,8 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_icon', array(
|
|
2327 |
'max' => 5000,
|
2328 |
'default' => 400,
|
2329 |
'screen' => 1,
|
2330 |
-
'css' => ['{{element}} i' => '-webkit-transition: all {{val}}ms; transition: all {{val}}ms;'
|
|
|
2331 |
'show' => array(
|
2332 |
'icon_hover' => 'hover'
|
2333 |
),
|
@@ -2405,6 +2428,20 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_icon', array(
|
|
2405 |
'show' => array(
|
2406 |
'icon_hover' => 'hover'
|
2407 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2408 |
),
|
2409 |
'bg_color_hover' => array(
|
2410 |
'type' => 'color',
|
@@ -4261,10 +4298,13 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
|
|
4261 |
<img class="pagelayer-img pagelayer-animation-{{anim_hover}}" src="{{func_image}}">
|
4262 |
</div>
|
4263 |
<div class="pagelayer-service-details">
|
4264 |
-
<
|
|
|
|
|
4265 |
<div if={{service_text}} class="pagelayer-service-text">{{service_text}}</div>
|
4266 |
<a if="{{service_button}}" href="{{service_button_url}}" class="pagelayer-service-btn {{service_button_type}} pagelayer-ele-link pagelayer-button {{service_button_size}}">{{service_button_text}}</a>
|
4267 |
</div>
|
|
|
4268 |
</div>',
|
4269 |
'params' => [
|
4270 |
'service_image' => array(
|
@@ -4294,6 +4334,10 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
|
|
4294 |
'service_image_size' => 'custom',
|
4295 |
)
|
4296 |
),
|
|
|
|
|
|
|
|
|
4297 |
'anim_hover' => array(
|
4298 |
'type' => 'select',
|
4299 |
'label' => __pl('icon_animation'),
|
@@ -4350,10 +4394,21 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
|
|
4350 |
),
|
4351 |
'req' => ['!service_alignment' => 'top']
|
4352 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4353 |
'service_image_spacing' => array(
|
4354 |
'type' => 'padding',
|
4355 |
'label' => __pl('service_image_spacing'),
|
4356 |
-
'css' => ['{{element}} .pagelayer-service-image
|
4357 |
),
|
4358 |
'img_bor_state' => array(
|
4359 |
'type' => 'radio',
|
@@ -4364,6 +4419,13 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
|
|
4364 |
'hover' => __pl('Hover'),
|
4365 |
),
|
4366 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4367 |
'img_border_type' => array(
|
4368 |
'type' => 'select',
|
4369 |
'label' => __pl('icon_border_type'),
|
@@ -4419,6 +4481,13 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
|
|
4419 |
'css' => ['{{element}} .pagelayer-service-image img' =>'-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
|
4420 |
'show' => ['img_bor_state' => 'hover'],
|
4421 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4422 |
'img_border_type_hover' => array(
|
4423 |
'type' => 'select',
|
4424 |
'label' => __pl('icon_border_type_hover'),
|
@@ -4472,14 +4541,17 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
|
|
4472 |
'default' => 'This is an Image Box',
|
4473 |
'text' => __pl('open_in_wpeditor'),
|
4474 |
),
|
4475 |
-
'
|
4476 |
-
'type' => '
|
4477 |
-
'label' => __pl('
|
4478 |
-
'
|
4479 |
-
|
4480 |
-
|
|
|
|
|
4481 |
'screen' => 1,
|
4482 |
-
'
|
|
|
4483 |
),
|
4484 |
'heading_state' => array(
|
4485 |
'type' => 'radio',
|
@@ -4544,6 +4616,12 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
|
|
4544 |
),
|
4545 |
'css' => ['{{element}} .pagelayer-service-details' => 'text-align:{{val}};'],
|
4546 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
4547 |
'service_text' => array(
|
4548 |
'type' => 'editor',
|
4549 |
'label' => __pl('service_box_text_label'),
|
@@ -4588,12 +4666,23 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
|
|
4588 |
'pagelayer-btn-large' => __pl('large'),
|
4589 |
'pagelayer-btn-extra-large' => __pl('extra_large'),
|
4590 |
'pagelayer-btn-double-large' => __pl('double_large'),
|
4591 |
-
|
4592 |
),
|
4593 |
'req' => array(
|
4594 |
'service_button' => 'true'
|
4595 |
)
|
4596 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4597 |
'service_button_url' => array(
|
4598 |
'type' => 'link',
|
4599 |
'label' => __pl('service_btn_url_label'),
|
@@ -4609,14 +4698,16 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_service', array(
|
|
4609 |
'service_button' => 'true'
|
4610 |
),
|
4611 |
),
|
4612 |
-
'
|
4613 |
-
'type' => '
|
4614 |
-
'label' => __pl('
|
4615 |
-
'min' => '0',
|
4616 |
-
'max' => '200',
|
4617 |
-
'default' => '10',
|
4618 |
'screen' => 1,
|
4619 |
-
'css' => ['{{element}} .pagelayer-service-btn' => '
|
|
|
|
|
|
|
|
|
|
|
4620 |
'req' => [
|
4621 |
'service_button' => 'true',
|
4622 |
]
|
@@ -4713,12 +4804,15 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
|
|
4713 |
<i class="fa fa-{{service_icon}} pagelayer-icon-{{service_icon_shape_type}} pagelayer-animation-{{anim_hover}}" aria-hidden="true"></i>
|
4714 |
</div>
|
4715 |
<div class="pagelayer-service-details">
|
4716 |
-
<
|
|
|
|
|
4717 |
<div if="{{service_text}}" class="pagelayer-service-text">{{service_text}}</div>
|
4718 |
<a if="{{service_button}}" href="{{service_button_url}}" class="pagelayer-service-btn pagelayer-button pagelayer-ele-link {{iconbox_button_type}} {{service_button_size}}">
|
4719 |
<span if="{{service_button_text}}">{{service_button_text}}</span>
|
4720 |
</a>
|
4721 |
</div>
|
|
|
4722 |
</div>',
|
4723 |
'params' => array(
|
4724 |
'service_icon' => array(
|
@@ -4749,6 +4843,21 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
|
|
4749 |
'!service_alignment' => 'top'
|
4750 |
)
|
4751 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4752 |
),
|
4753 |
// icon style
|
4754 |
'service_icon_style' => [
|
@@ -5016,14 +5125,17 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
|
|
5016 |
'default' => 'This is Icon Box',
|
5017 |
'text' => __pl('open_in_wpeditor'),
|
5018 |
),
|
5019 |
-
'
|
5020 |
-
'type' => '
|
5021 |
-
'label' => __pl('
|
5022 |
-
'
|
5023 |
-
|
5024 |
-
|
|
|
|
|
5025 |
'screen' => 1,
|
5026 |
-
'
|
|
|
5027 |
),
|
5028 |
'heading_state' => array(
|
5029 |
'type' => 'radio',
|
@@ -5088,6 +5200,11 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
|
|
5088 |
),
|
5089 |
'css' => ['{{element}} .pagelayer-service-details' => 'text-align:{{val}};'],
|
5090 |
),
|
|
|
|
|
|
|
|
|
|
|
5091 |
'service_text' => array(
|
5092 |
'type' => 'editor',
|
5093 |
'label' => __pl('iconbox_box_text_label'),
|
@@ -5132,12 +5249,23 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
|
|
5132 |
'pagelayer-btn-large' => __pl('large'),
|
5133 |
'pagelayer-btn-extra-large' => __pl('extra_large'),
|
5134 |
'pagelayer-btn-double-large' => __pl('double_large'),
|
5135 |
-
|
5136 |
),
|
5137 |
'req' => array(
|
5138 |
'service_button' => 'true'
|
5139 |
)
|
5140 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5141 |
'service_button_url' => array(
|
5142 |
'type' => 'link',
|
5143 |
'label' => __pl('iconbox_btn_url_label'),
|
@@ -5153,14 +5281,16 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_iconbox', array(
|
|
5153 |
'service_button' => 'true'
|
5154 |
),
|
5155 |
),
|
5156 |
-
'
|
5157 |
-
'type' => '
|
5158 |
-
'label' => __pl('
|
5159 |
-
'min' => '0',
|
5160 |
-
'max' => '200',
|
5161 |
-
'default' => '10',
|
5162 |
'screen' => 1,
|
5163 |
-
'css' => ['{{element}} .pagelayer-service-btn' => '
|
|
|
|
|
|
|
|
|
|
|
5164 |
'req' => [
|
5165 |
'service_button' => 'true',
|
5166 |
]
|
610 |
'ele_zindex' => [
|
611 |
'type' => 'slider',
|
612 |
'label' => __pl('z-index'),
|
613 |
+
'css' => 'z-index: {{val}}; position: relative;',
|
614 |
],
|
615 |
'ele_shadow' => [
|
616 |
'type' => 'shadow',
|
633 |
'border_type' => [
|
634 |
'type' => 'select',
|
635 |
'label' => __pl('border_type'),
|
636 |
+
'screen' => 1,
|
637 |
'list' => [
|
638 |
'' => __pl('none'),
|
639 |
'solid' => __pl('solid'),
|
650 |
'label' => __pl('border_width'),
|
651 |
'default' => '1,1,1,1',
|
652 |
'units' => ['px', 'em'],
|
653 |
+
'screen' => 1,
|
654 |
'show' => [
|
655 |
'border_hover' => ''
|
656 |
],
|
663 |
'type' => 'color',
|
664 |
'label' => __pl('border_color'),
|
665 |
'default' => '#CCC',
|
666 |
+
'screen' => 1,
|
667 |
'show' => [
|
668 |
'border_hover' => ''
|
669 |
],
|
676 |
'type' => 'padding',
|
677 |
'label' => __pl('border_radius'),
|
678 |
'units' => ['px', 'em'],
|
679 |
+
'screen' => 1,
|
680 |
'show' => ['border_hover' => ''],
|
681 |
'css' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};',
|
682 |
],
|
689 |
'border_type_hover' => [
|
690 |
'type' => 'select',
|
691 |
'label' => __pl('border_type'),
|
692 |
+
'screen' => 1,
|
693 |
'list' => [
|
694 |
'' => __pl('none'),
|
695 |
'solid' => __pl('solid'),
|
705 |
'type' => 'padding',
|
706 |
'label' => __pl('border_width'),
|
707 |
'units' => ['px', 'em'],
|
708 |
+
'screen' => 1,
|
709 |
'show' => [
|
710 |
'border_hover' => 'hover'
|
711 |
],
|
717 |
'border_color_hover' => [
|
718 |
'type' => 'color',
|
719 |
'label' => __pl('border_color'),
|
720 |
+
'screen' => 1,
|
721 |
'show' => [
|
722 |
'border_hover' => 'hover'
|
723 |
],
|
729 |
'border_radius_hover' => [
|
730 |
'type' => 'padding',
|
731 |
'label' => __pl('border_radius'),
|
732 |
+
'screen' => 1,
|
733 |
'units' => ['px', 'em'],
|
734 |
'show' => ['border_hover' => 'hover'],
|
735 |
'css' => ['{{element}}:hover' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
|
836 |
</div>
|
837 |
</div>
|
838 |
<div if="{{overlay_type}}" class="pagelayer-background-overlay"></div>
|
839 |
+
<div class="pagelayer-row-holder pagelayer-row pagelayer-auto pagelayer-width-{{width_content}}"></div>',
|
840 |
'holder' => '.pagelayer-row-holder',
|
841 |
'params' => array(
|
842 |
'stretch' => array(
|
2315 |
'icon_hover' => ''
|
2316 |
),
|
2317 |
),
|
2318 |
+
'icon_bg_rotate' => array(
|
2319 |
+
'type' => 'spinner',
|
2320 |
+
'label' => __pl('rotate_icon'),
|
2321 |
+
'default' => 0,
|
2322 |
+
'css' => ['{{element}} i:before' => 'transform: translate(-50%, -50%) rotate({{val}}deg)'],
|
2323 |
+
'min' => 0,
|
2324 |
+
'max' => 360,
|
2325 |
+
'step' => 1,
|
2326 |
+
'screen' => 1,
|
2327 |
+
'show' => array(
|
2328 |
+
'icon_hover' => ''
|
2329 |
+
),
|
2330 |
+
'req' => [ '!bg_shape' => '']
|
2331 |
+
),
|
2332 |
'bg_color' => array(
|
2333 |
'type' => 'color',
|
2334 |
'label' => __pl('service_box_icon_background_color_label'),
|
2349 |
'max' => 5000,
|
2350 |
'default' => 400,
|
2351 |
'screen' => 1,
|
2352 |
+
'css' => ['{{element}} i' => '-webkit-transition: all {{val}}ms; transition: all {{val}}ms;',
|
2353 |
+
'{{element}} i:hover:before' => '-webkit-transition: all {{val}}ms; transition: all {{val}}ms;'],
|
2354 |
'show' => array(
|
2355 |
'icon_hover' => 'hover'
|
2356 |
),
|
2428 |
'show' => array(
|
2429 |
'icon_hover' => 'hover'
|
2430 |
),
|
2431 |
+
'req' => [ '!bg_shape' => '']
|
2432 |
+
),
|
2433 |
+
'icon_bg_rotate_hover' => array(
|
2434 |
+
'type' => 'spinner',
|
2435 |
+
'label' => __pl('rotate_icon'),
|
2436 |
+
'default' => 0,
|
2437 |
+
'css' => ['{{element}} i:hover:before' => 'transform: translate(-50%, -50%) rotate({{val}}deg)'],
|
2438 |
+
'min' => 0,
|
2439 |
+
'max' => 360,
|
2440 |
+
'step' => 1,
|
2441 |
+
'screen' => 1,
|
2442 |
+
'show' => array(
|
2443 |
+
'icon_hover' => 'hover'
|
2444 |
+
),
|
2445 |
),
|
2446 |
'bg_color_hover' => array(
|
2447 |
'type' => 'color',
|
4298 |
<img class="pagelayer-img pagelayer-animation-{{anim_hover}}" src="{{func_image}}">
|
4299 |
</div>
|
4300 |
<div class="pagelayer-service-details">
|
4301 |
+
<a if-ext={{heading_url}} href="{{heading_url}}" class="pagelayer-ele-link">
|
4302 |
+
<div if={{service_heading}} class="pagelayer-service-heading">{{service_heading}}</div>
|
4303 |
+
</a>
|
4304 |
<div if={{service_text}} class="pagelayer-service-text">{{service_text}}</div>
|
4305 |
<a if="{{service_button}}" href="{{service_button_url}}" class="pagelayer-service-btn {{service_button_type}} pagelayer-ele-link pagelayer-button {{service_button_size}}">{{service_button_text}}</a>
|
4306 |
</div>
|
4307 |
+
<a if-ext={{box_url}} href="{{box_url}}" class="pagelayer-ele-link pagelayer-box-link"> </a>
|
4308 |
</div>',
|
4309 |
'params' => [
|
4310 |
'service_image' => array(
|
4334 |
'service_image_size' => 'custom',
|
4335 |
)
|
4336 |
),
|
4337 |
+
'box_url' => array(
|
4338 |
+
'type' => 'link',
|
4339 |
+
'label' => __pl('url'),
|
4340 |
+
),
|
4341 |
'anim_hover' => array(
|
4342 |
'type' => 'select',
|
4343 |
'label' => __pl('icon_animation'),
|
4394 |
),
|
4395 |
'req' => ['!service_alignment' => 'top']
|
4396 |
),
|
4397 |
+
'service_img_alignment' => array(
|
4398 |
+
'type' => 'radio',
|
4399 |
+
'label' => __pl('horizontal_pos'),
|
4400 |
+
'css' => ['{{element}} .pagelayer-service-image' => 'text-align: {{val}};,'],
|
4401 |
+
'list' => array(
|
4402 |
+
'left' => __pl('left'),
|
4403 |
+
'center' => __pl('center'),
|
4404 |
+
'right' => __pl('right'),
|
4405 |
+
),
|
4406 |
+
'req' => ['service_alignment' => 'top']
|
4407 |
+
),
|
4408 |
'service_image_spacing' => array(
|
4409 |
'type' => 'padding',
|
4410 |
'label' => __pl('service_image_spacing'),
|
4411 |
+
'css' => ['{{element}} .pagelayer-service-image' => 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[2]}}px; padding-left:{{val[3]}}px;'],
|
4412 |
),
|
4413 |
'img_bor_state' => array(
|
4414 |
'type' => 'radio',
|
4419 |
'hover' => __pl('Hover'),
|
4420 |
),
|
4421 |
),
|
4422 |
+
'img_filter' => array(
|
4423 |
+
'type' => 'filter',
|
4424 |
+
'label' => __pl('filter'),
|
4425 |
+
'default' => '0,100,100,0,0,100,100',
|
4426 |
+
'css' => ['{{element}} img' => 'filter: blur({{val[0]}}px) brightness({{val[1]}}%) contrast({{val[2]}}%) grayscale({{val[3]}}%) hue-rotate({{val[4]}}deg) opacity({{val[5]}}%) saturate({{val[6]}}%)'],
|
4427 |
+
'show' => ['img_bor_state' => 'normal'],
|
4428 |
+
),
|
4429 |
'img_border_type' => array(
|
4430 |
'type' => 'select',
|
4431 |
'label' => __pl('icon_border_type'),
|
4481 |
'css' => ['{{element}} .pagelayer-service-image img' =>'-webkit-transition: all {{val}}ms !important; transition: all {{val}}ms !important;'],
|
4482 |
'show' => ['img_bor_state' => 'hover'],
|
4483 |
),
|
4484 |
+
'img_filter_hover' => array(
|
4485 |
+
'type' => 'filter',
|
4486 |
+
'label' => __pl('filter'),
|
4487 |
+
'default' => '0,100,100,0,0,100,100',
|
4488 |
+
'css' => ['{{element}}:hover img' => 'filter: blur({{val[0]}}px) brightness({{val[1]}}%) contrast({{val[2]}}%) grayscale({{val[3]}}%) hue-rotate({{val[4]}}deg) opacity({{val[5]}}%) saturate({{val[6]}}%)'],
|
4489 |
+
'show' => ['img_bor_state' => 'hover'],
|
4490 |
+
),
|
4491 |
'img_border_type_hover' => array(
|
4492 |
'type' => 'select',
|
4493 |
'label' => __pl('icon_border_type_hover'),
|
4541 |
'default' => 'This is an Image Box',
|
4542 |
'text' => __pl('open_in_wpeditor'),
|
4543 |
),
|
4544 |
+
'heading_url' => array(
|
4545 |
+
'type' => 'link',
|
4546 |
+
'label' => __pl('url'),
|
4547 |
+
'req' => ['!service_heading' => '']
|
4548 |
+
),
|
4549 |
+
'service_title_spacing' => array(
|
4550 |
+
'type' => 'padding',
|
4551 |
+
'label' => __pl('spacing'),
|
4552 |
'screen' => 1,
|
4553 |
+
'default' => ',,10,',
|
4554 |
+
'css' => ['{{element}} .pagelayer-service-heading' => 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[2]}}px; padding-left:{{val[3]}}px;']
|
4555 |
),
|
4556 |
'heading_state' => array(
|
4557 |
'type' => 'radio',
|
4616 |
),
|
4617 |
'css' => ['{{element}} .pagelayer-service-details' => 'text-align:{{val}};'],
|
4618 |
),
|
4619 |
+
'service_content_spacing' => array(
|
4620 |
+
'type' => 'padding',
|
4621 |
+
'label' => __pl('spacing'),
|
4622 |
+
'screen' => 1,
|
4623 |
+
'css' => ['{{element}} .pagelayer-service-text' => 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[2]}}px; padding-left:{{val[3]}}px;'],
|
4624 |
+
),
|
4625 |
'service_text' => array(
|
4626 |
'type' => 'editor',
|
4627 |
'label' => __pl('service_box_text_label'),
|
4666 |
'pagelayer-btn-large' => __pl('large'),
|
4667 |
'pagelayer-btn-extra-large' => __pl('extra_large'),
|
4668 |
'pagelayer-btn-double-large' => __pl('double_large'),
|
4669 |
+
'pagelayer-btn-custom' => __pl('custom'),
|
4670 |
),
|
4671 |
'req' => array(
|
4672 |
'service_button' => 'true'
|
4673 |
)
|
4674 |
),
|
4675 |
+
'service_btn_dim' => array(
|
4676 |
+
'type' => 'dimension',
|
4677 |
+
'label' => __pl('service_btn_dim'),
|
4678 |
+
'default' => '10,15',
|
4679 |
+
'screen' => 1,
|
4680 |
+
'css' => ['{{element}} .pagelayer-service-btn' => 'padding-top:{{val[0]}}px;padding-right:{{val[1]}}px;padding-bottom:{{val[0]}}px;padding-left:{{val[1]}}px;'],
|
4681 |
+
'req' => [
|
4682 |
+
'service_button' => 'true',
|
4683 |
+
'service_button_size' => 'pagelayer-btn-custom',
|
4684 |
+
]
|
4685 |
+
),
|
4686 |
'service_button_url' => array(
|
4687 |
'type' => 'link',
|
4688 |
'label' => __pl('service_btn_url_label'),
|
4698 |
'service_button' => 'true'
|
4699 |
),
|
4700 |
),
|
4701 |
+
'service_button_typo' => array(
|
4702 |
+
'type' => 'typography',
|
4703 |
+
'label' => __pl('typography'),
|
|
|
|
|
|
|
4704 |
'screen' => 1,
|
4705 |
+
'css' => ['{{element}} .pagelayer-service-btn' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
|
4706 |
+
),
|
4707 |
+
'service_btn_spacing' => array(
|
4708 |
+
'type' => 'padding',
|
4709 |
+
'label' => __pl('spacing'),
|
4710 |
+
'css' => ['{{element}} .pagelayer-service-btn' => 'margin-top:{{val[0]}}px; margin-right:{{val[1]}}px; margin-bottom:{{val[2]}}px; margin-left:{{val[3]}}px;'],
|
4711 |
'req' => [
|
4712 |
'service_button' => 'true',
|
4713 |
]
|
4804 |
<i class="fa fa-{{service_icon}} pagelayer-icon-{{service_icon_shape_type}} pagelayer-animation-{{anim_hover}}" aria-hidden="true"></i>
|
4805 |
</div>
|
4806 |
<div class="pagelayer-service-details">
|
4807 |
+
<a if-ext={{heading_url}} href="{{heading_url}}" class="pagelayer-ele-link">
|
4808 |
+
<div if="{{service_heading}}" class="pagelayer-service-heading">{{service_heading}}</div>
|
4809 |
+
</a>
|
4810 |
<div if="{{service_text}}" class="pagelayer-service-text">{{service_text}}</div>
|
4811 |
<a if="{{service_button}}" href="{{service_button_url}}" class="pagelayer-service-btn pagelayer-button pagelayer-ele-link {{iconbox_button_type}} {{service_button_size}}">
|
4812 |
<span if="{{service_button_text}}">{{service_button_text}}</span>
|
4813 |
</a>
|
4814 |
</div>
|
4815 |
+
<a if-ext={{box_url}} href="{{box_url}}" class="pagelayer-ele-link pagelayer-box-link"> </a>
|
4816 |
</div>',
|
4817 |
'params' => array(
|
4818 |
'service_icon' => array(
|
4843 |
'!service_alignment' => 'top'
|
4844 |
)
|
4845 |
),
|
4846 |
+
'service_icon_alignment' => array(
|
4847 |
+
'type' => 'radio',
|
4848 |
+
'label' => __pl('horizontal_pos'),
|
4849 |
+
'css' => ['{{element}} .pagelayer-service-icon' => 'text-align: {{val}};,'],
|
4850 |
+
'list' => array(
|
4851 |
+
'left' => __pl('left'),
|
4852 |
+
'center' => __pl('center'),
|
4853 |
+
'right' => __pl('right'),
|
4854 |
+
),
|
4855 |
+
'req' => ['service_alignment' => 'top']
|
4856 |
+
),
|
4857 |
+
'box_url' => array(
|
4858 |
+
'type' => 'link',
|
4859 |
+
'label' => __pl('url'),
|
4860 |
+
),
|
4861 |
),
|
4862 |
// icon style
|
4863 |
'service_icon_style' => [
|
5125 |
'default' => 'This is Icon Box',
|
5126 |
'text' => __pl('open_in_wpeditor'),
|
5127 |
),
|
5128 |
+
'heading_url' => array(
|
5129 |
+
'type' => 'link',
|
5130 |
+
'label' => __pl('url'),
|
5131 |
+
'req' => ['!service_heading' => '']
|
5132 |
+
),
|
5133 |
+
'service_title_spacing' => array(
|
5134 |
+
'type' => 'padding',
|
5135 |
+
'label' => __pl('spacing'),
|
5136 |
'screen' => 1,
|
5137 |
+
'default' => ',,10,',
|
5138 |
+
'css' => ['{{element}} .pagelayer-service-heading' => 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[2]}}px; padding-left:{{val[3]}}px;']
|
5139 |
),
|
5140 |
'heading_state' => array(
|
5141 |
'type' => 'radio',
|
5200 |
),
|
5201 |
'css' => ['{{element}} .pagelayer-service-details' => 'text-align:{{val}};'],
|
5202 |
),
|
5203 |
+
'service_content_spacing' => array(
|
5204 |
+
'type' => 'padding',
|
5205 |
+
'label' => __pl('spacing'),
|
5206 |
+
'css' => ['{{element}} .pagelayer-service-text' => 'padding-top:{{val[0]}}px; padding-right:{{val[1]}}px; padding-bottom:{{val[2]}}px; padding-left:{{val[3]}}px;'],
|
5207 |
+
),
|
5208 |
'service_text' => array(
|
5209 |
'type' => 'editor',
|
5210 |
'label' => __pl('iconbox_box_text_label'),
|
5249 |
'pagelayer-btn-large' => __pl('large'),
|
5250 |
'pagelayer-btn-extra-large' => __pl('extra_large'),
|
5251 |
'pagelayer-btn-double-large' => __pl('double_large'),
|
5252 |
+
'pagelayer-btn-custom' => __pl('custom'),
|
5253 |
),
|
5254 |
'req' => array(
|
5255 |
'service_button' => 'true'
|
5256 |
)
|
5257 |
),
|
5258 |
+
'service_btn_dim' => array(
|
5259 |
+
'type' => 'dimension',
|
5260 |
+
'label' => __pl('service_btn_dim'),
|
5261 |
+
'default' => '10,15',
|
5262 |
+
'screen' => 1,
|
5263 |
+
'css' => ['{{element}} .pagelayer-service-btn' => 'padding-top:{{val[0]}}px;padding-right:{{val[1]}}px;padding-bottom:{{val[0]}}px;padding-left:{{val[1]}}px;'],
|
5264 |
+
'req' => [
|
5265 |
+
'service_button' => 'true',
|
5266 |
+
'service_button_size' => 'pagelayer-btn-custom',
|
5267 |
+
]
|
5268 |
+
),
|
5269 |
'service_button_url' => array(
|
5270 |
'type' => 'link',
|
5271 |
'label' => __pl('iconbox_btn_url_label'),
|
5281 |
'service_button' => 'true'
|
5282 |
),
|
5283 |
),
|
5284 |
+
'service_button_typo' => array(
|
5285 |
+
'type' => 'typography',
|
5286 |
+
'label' => __pl('typography'),
|
|
|
|
|
|
|
5287 |
'screen' => 1,
|
5288 |
+
'css' => ['{{element}} .pagelayer-service-btn' => 'font-family: {{val[0]}}; font-size: {{val[1]}}px !important; font-style: {{val[2]}} !important; font-weight: {{val[3]}} !important; font-variant: {{val[4]}} !important; text-decoration-line: {{val[5]}} !important; text-decoration-style: {{val[6]}} !important; line-height: {{val[7]}}em !important; text-transform: {{val[8]}} !important; letter-spacing: {{val[9]}}px !important; word-spacing: {{val[10]}}px !important;'],
|
5289 |
+
),
|
5290 |
+
'service_btn_spacing' => array(
|
5291 |
+
'type' => 'padding',
|
5292 |
+
'label' => __pl('spacing'),
|
5293 |
+
'css' => ['{{element}} .pagelayer-service-btn' => 'margin-top:{{val[0]}}px; margin-right:{{val[1]}}px; margin-bottom:{{val[2]}}px; margin-left:{{val[3]}}px;'],
|
5294 |
'req' => [
|
5295 |
'service_button' => 'true',
|
5296 |
]
|
@@ -479,4 +479,16 @@ function pagelayer_get_post_content($id){
|
|
479 |
|
480 |
return $content;
|
481 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
482 |
}
|
479 |
|
480 |
return $content;
|
481 |
|
482 |
+
}
|
483 |
+
|
484 |
+
// Vars that can be used in template files
|
485 |
+
function pagelayer_template_vars(){
|
486 |
+
|
487 |
+
$replacers['{{theme_url}}'] = get_stylesheet_directory_uri();
|
488 |
+
$replacers['{{theme_images}}'] = get_stylesheet_directory_uri().'/images/';
|
489 |
+
$replacers['{{themes_dir}}'] = dirname(get_stylesheet_directory_uri());
|
490 |
+
$replacers['{{pl_site_url}}'] = home_url();
|
491 |
+
|
492 |
+
return $replacers;
|
493 |
+
|
494 |
}
|
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: PageLayer
|
4 |
Plugin URI: http://wordpress.org/plugins/pagelayer/
|
5 |
Description: PageLayer is a WordPress page builder plugin. Its very easy to use and very light on the browser.
|
6 |
-
Version: 0.
|
7 |
Author: Pagelayer Team
|
8 |
Author URI: https://pagelayer.com/
|
9 |
License: LGPL v2.1
|
3 |
Plugin Name: PageLayer
|
4 |
Plugin URI: http://wordpress.org/plugins/pagelayer/
|
5 |
Description: PageLayer is a WordPress page builder plugin. Its very easy to use and very light on the browser.
|
6 |
+
Version: 1.0.0
|
7 |
Author: Pagelayer Team
|
8 |
Author URI: https://pagelayer.com/
|
9 |
License: LGPL v2.1
|
@@ -1,10 +1,10 @@
|
|
1 |
=== Page Builder: PageLayer - Drag and Drop website builder ===
|
2 |
Contributors: pagelayer
|
3 |
-
Tags: page builder, editor, landing page, drag-and-drop, pagelayer, softaculous, visual editor, wysiwyg, design, maintenance mode, coming soon, under construction, website builder, landing page builder, front-end builder
|
4 |
Requires at least: 4.7
|
5 |
Tested up to: 5.2
|
6 |
Requires PHP: 5.2.4
|
7 |
-
Stable tag: 0.
|
8 |
License: LGPL v2.1
|
9 |
License URI: http://www.gnu.org/licenses/lgpl-2.1.html
|
10 |
|
@@ -113,6 +113,22 @@ Do you have questions related to PageLayer ? Use the following links :
|
|
113 |
|
114 |
== Changelog ==
|
115 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
= 0.9.9 (September 10, 2019) =
|
117 |
* [Feature] Added inline editing so you can now edit text / headers in the editor itself.
|
118 |
* [Task] Editor Font Size has been introduced.
|
1 |
=== Page Builder: PageLayer - Drag and Drop website builder ===
|
2 |
Contributors: pagelayer
|
3 |
+
Tags: page builder, editor, landing page, drag-and-drop, pagelayer, softaculous, visual editor, wysiwyg, design, maintenance mode, coming soon, under construction, website builder, landing page builder, front-end builder, site-builder
|
4 |
Requires at least: 4.7
|
5 |
Tested up to: 5.2
|
6 |
Requires PHP: 5.2.4
|
7 |
+
Stable tag: 1.0.0
|
8 |
License: LGPL v2.1
|
9 |
License URI: http://www.gnu.org/licenses/lgpl-2.1.html
|
10 |
|
113 |
|
114 |
== Changelog ==
|
115 |
|
116 |
+
= 1.0.0 (September 27, 2019) =
|
117 |
+
* [Feature] Added the option to resize columns by dragging the divider between the 2 columns.
|
118 |
+
* [Feature] Images can now be pasted from the Clip Board in the Pagelayer Editor. These images will be uploaded and saved.
|
119 |
+
* [Feature] You can now copy Pagelayer Elements from one editor tab into another editor tab.
|
120 |
+
* [Feature] Image and Icon Box's can now have a link for the whole box.
|
121 |
+
* [Feature] Added rotate option to Icon Widget.
|
122 |
+
* [Task] Added the option to remove the color from a color setting to reset to default.
|
123 |
+
* [Task] Improved the Image filter options setting in Pagelayer editor.
|
124 |
+
* [Task] Removed the empty space of the Admin Bar in Pagelayer editor.
|
125 |
+
* [Task] Added Screen options for a number of Widget Settings.
|
126 |
+
* [Bug Fix] On the blog page if the first post was not a Pagelayer post, the other posts were not rendered. This is fixed.
|
127 |
+
* [Bug Fix] On some servers the pagelayer editor JS used to fail to load because of the URL having base64 as a file name.
|
128 |
+
* [Bug Fix] If a Page / Post did not have a title, Pagelayer Live Editor used to fail. This is fixed.
|
129 |
+
* [Bug Fix] The Color Picker had a z-index lower than the rich text editor. This is fixed.
|
130 |
+
* [Bug Fix] The Divider widget had extra spacing which is now fixed.
|
131 |
+
|
132 |
= 0.9.9 (September 10, 2019) =
|
133 |
* [Feature] Added inline editing so you can now edit text / headers in the editor itself.
|
134 |
* [Task] Editor Font Size has been introduced.
|