Page Builder: PageLayer – Drag and Drop website builder - Version 1.0.7

Version Description

(March 3, 2020) = * [Feature] The Add New Section code is now working. We have added 10 blocks and more are on the way. * [Task] Improved the layout of the color selector. Also when no color is selected, the color box will show blank space instead of white color. * [Task] Some more improvement has been done to the Pagelayer Widget Settings UI.

Download this release

Release Info

Developer pagelayer
Plugin Icon 128x128 Page Builder: PageLayer – Drag and Drop website builder
Version 1.0.7
Comparing to
See all releases

Code changes from version 1.0.6 to 1.0.7

css/pagelayer-editor.css CHANGED
@@ -423,6 +423,10 @@ color:#444;
423
border: 1px solid #d3d3d3;
424
}
425
426
#pagelayer-elpd .slimScrollDiv{
427
height: calc(100% - 50px) !important;
428
}
@@ -460,20 +464,41 @@ background-color: #FFF;
460
border-top: 1px solid #d3d3d3;
461
}
462
463
.pagelayer-elpd-section-name{
464
margin-top: 10px;
465
padding: 11px 10px;
466
background-color: #FFF;
467
- font-size: 12px;
468
font-weight: bold;
469
- color: #666;
470
cursor: pointer;
471
transition: all 0.3s;
472
}
473
474
.pagelayer-elpd-section-name:hover,
475
.pagelayer-elpd-section-open{
476
- color:#000000;
477
}
478
479
.pagelayer-elpd-section-name:not(.pagelayer-elpd-section-open) .pli:before,
@@ -504,6 +529,14 @@ padding: 10px 6px;
504
margin: 0px 5px 0px 0px;
505
}
506
507
.pagelayer-elpd-settings-body{
508
display: none;
509
}
@@ -544,12 +577,24 @@ flex-direction:column-reverse;
544
color: #3e8ef7;
545
}
546
547
.pagelayer-elpd-tabs,
548
.pagelayer-history-tabs {
549
background-color: #fff;
550
border-bottom: 1px solid #d3d3d3;
551
}
552
553
.pagelayer-elpd-tabs{
554
display: flex;
555
align-items: center;
@@ -566,6 +611,14 @@ padding:4px 5px;
566
cursor:pointer;
567
}
568
569
.pagelayer-form-item {
570
border-bottom: 1px dashed #e6e6e6;
571
padding: 10px 8px 10px 6px;
@@ -573,6 +626,10 @@ margin-bottom: 0px;
573
position: relative;
574
}
575
576
.pagelayer-elp-label-div{
577
padding:4px 0px 4px 0px;
578
position:relative;
@@ -585,6 +642,10 @@ font-size: 12px;
585
line-height: 150%;
586
}
587
588
.pagelayer-elp-heading{
589
font-size: 13px;
590
font-weight:600;
@@ -610,6 +671,11 @@ line-height: 30px;
610
transition-duration: 0.1s;
611
}
612
613
.pagelayer-elp-screen .pli-desktop:not(.pagelayer-prop-screen),
614
.pagelayer-elp-screen .pli-tablet:not(.pagelayer-prop-screen),
615
.pagelayer-elp-screen .pli-mobile:not(.pagelayer-prop-screen){
@@ -622,6 +688,12 @@ background:#aaaaaa;
622
color:#ffffff;
623
}
624
625
.pagelayer-elp-screen .pli-desktop.open{
626
transform: rotate(-90deg) translate(30px, -27px) rotate(90deg);
627
transition-delay: 0s;
@@ -662,6 +734,10 @@ line-height: 20px;
662
background-color: #3E8EF7;
663
}
664
665
.pagelayer-elp-screen .pagelayer-prop-screen:hover{
666
color: #3E8EF7;
667
}
@@ -678,6 +754,10 @@ font-size:12px;
678
cursor: pointer;
679
}
680
681
.pagelayer-elp-units span[selected] {
682
color: #3e8ef7;
683
}
@@ -703,6 +783,22 @@ line-height: 26px;
703
width: 100%;
704
}
705
706
.pagelayer-elpd-body input:focus,
707
.pagelayer-elpd-body textarea:focus,
708
.pagelayer-elpd-body select:focus{
@@ -776,29 +872,47 @@ display:none !important;
776
display:flex;
777
}
778
779
.pagelayer-elp-radio{
780
display: inline-block;
781
vertical-align: middle;
782
- padding: 6px 8px;
783
cursor: pointer;
784
font-size:12px;
785
color: #666 !important;
786
text-decoration: none;
787
background: #eee;
788
- margin: 5px 2px;
789
flex:1;
790
text-align:center;
791
}
792
793
.pagelayer-elp-radio:hover{
794
- background-color:#3e8ef7bf !important;
795
color:#fff !important;
796
- transition: all 0.6s;
797
}
798
799
.pagelayer-elp-radio-active{
800
- background-color: #3e8ef7 !important;
801
- color:#ffffff !important;
802
}
803
804
.pagelayer-elp-color-div{
@@ -812,20 +926,24 @@ margin: 0 auto;
812
position: absolute;
813
top: 5px;
814
right: 7px;
815
- border: solid 1px #d1d1d1;
816
color: #333;
817
vertical-align: middle;
818
}
819
820
.pagelayer-elp-color-preview{
821
- height: 93%;
822
- border: solid 1px #d1d1d1;
823
background-size: cover !important;
824
}
825
826
.pagelayer-blank-preview{
827
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;
828
background-size: cover !important;
829
}
830
831
.picker_arrow {
@@ -852,10 +970,28 @@ background: #fff !important;
852
box-shadow: 0 3px 5px rgba(0,0,0,0.2) !important;
853
}
854
855
.picker_wrapper{
856
z-index:12 !important;
857
}
858
859
.pagelayer-elp-remove-color{
860
background-color:#616161;
861
position: absolute;
@@ -888,6 +1024,12 @@ top: 7px;
888
right: 10px;
889
}
890
891
.pagelayer-elp-icon-preview{
892
position: relative;
893
display: block;
@@ -908,6 +1050,11 @@ color: #666;
908
vertical-align: middle;
909
}
910
911
.pagelayer-elp-icon-name{
912
font-size: 13px;
913
}
@@ -920,6 +1067,11 @@ padding: 0px;
920
line-height: 20px;
921
}
922
923
.pagelayer-elp-icon-close{
924
padding-right: 5px;
925
font-size: 12px;
@@ -953,6 +1105,12 @@ top: 40px;
953
right: 10px;
954
}
955
956
.pagelayer-elp-search-icon{
957
margin-bottom: 5px !important;
958
padding: 2px 6px;
@@ -981,6 +1139,11 @@ font-size: 13px;
981
padding: 3px;
982
}
983
984
.pagelayer-elp-icon-span:hover{
985
border-color: #00A0D2;
986
background-color: #3e8ef7;
@@ -1022,6 +1185,10 @@ border: 1px solid #777;
1022
background-color:#666666;
1023
}
1024
1025
.pagelayer-elp-icon-sets{
1026
line-height: 27px;
1027
height: 27px;
@@ -1082,6 +1249,10 @@ background: #4CAF50;
1082
cursor: pointer;
1083
}
1084
1085
.pagelayer-elp-slider::-moz-range-thumb{
1086
width: 15px;
1087
height: 15px;
@@ -1133,7 +1304,12 @@ transition: all .2s ease-in-out;
1133
}
1134
1135
input[type="checkbox"].pagelayer-elp-checkbox:checked{
1136
- background-color: #3e8ef7;
1137
}
1138
1139
input[type="checkbox"].pagelayer-elp-checkbox:after{
@@ -1176,6 +1352,10 @@ background:#FFF;
1176
line-height:26px !important;
1177
}
1178
1179
.pagelayer-elp-padding-div i.pli{
1180
padding:6px 11px;
1181
border: 1px solid #d1d1d1;
@@ -1189,6 +1369,10 @@ vertical-align:top;
1189
background: #CCC !important;
1190
}
1191
1192
.pagelayer-elp-dimension-div i.pli{
1193
padding:6px 11px;
1194
border: 1px solid #d1d1d1;
@@ -1222,16 +1406,32 @@ z-index:1;
1222
width:100%;
1223
}
1224
1225
.pagelayer-elp-multiselect-option{
1226
font-size:13px;
1227
padding:3px 8px;
1228
cursor:pointer;
1229
}
1230
1231
.pagelayer-elp-multiselect-option[selected="selected"]{
1232
background: #cccccc;
1233
}
1234
1235
.pagelayer-elp-multiselect-selected{
1236
padding: 3px 5px;
1237
border-radius: 5px;
@@ -1241,6 +1441,11 @@ line-height: 13px;
1241
font-size: 13px;
1242
}
1243
1244
.pagelayer-elp-multiselect{
1245
display: flex;
1246
flex-wrap: wrap;
@@ -1350,13 +1555,6 @@ width: 40px;
1350
box-sizing: content-box;
1351
}
1352
1353
- .pagelayer-elp-select-div .pli{
1354
- position: absolute;
1355
- right: 12px;
1356
- top: 0;
1357
- line-height: 40px;
1358
- }
1359
-
1360
.pagelayer-elp-shadow-div,
1361
.pagelayer-elp-typo-div,
1362
.pagelayer-elp-filter-div{
@@ -1372,6 +1570,12 @@ width: 86%;
1372
z-index: 12;
1373
}
1374
1375
.pagelayer-elp-typo-container{
1376
max-height:250px;
1377
overflow: auto;
@@ -1391,6 +1595,11 @@ border-radius: 4px;
1391
cursor: pointer;
1392
}
1393
1394
.pagelayer-elp-typo-container span {
1395
display: block;
1396
font-size: 13px;
@@ -1400,6 +1609,10 @@ margin: 2px 0;
1400
cursor: pointer;
1401
}
1402
1403
.pagelayer-elp-typo-search{
1404
padding: 0 2px;
1405
height: 24px;
@@ -1427,6 +1640,10 @@ border-radius: 3px;
1427
font-size: 20px;
1428
}
1429
1430
.pagelayer-prop-show{
1431
display: block;
1432
}
@@ -1518,6 +1735,10 @@ font-size: 11px;
1518
color: #555;
1519
}
1520
1521
.pagelayer-elp-typo select.pagelayer-elp-typo-input,
1522
.pagelayer-elp-typo-input,
1523
.pagelayer-elp-shadow-input{
@@ -1555,9 +1776,46 @@ padding: 2px 0 2px 6px;
1555
border-radius: 4px !important;
1556
}
1557
1558
- .pagelayer-elp-select-div .pagelayer-elp-select {
1559
- border-radius: 4px;
1560
- padding: 6px;
1561
}
1562
1563
.pagelayer-elpd-body input:focus,
@@ -1588,12 +1846,20 @@ display:flex;
1588
background: #F8F8F8;
1589
}
1590
1591
.pagelayer-elp-group-item-head span{
1592
cursor: pointer;
1593
padding: 9px;
1594
display:inline-block;
1595
}
1596
1597
.pagelayer-elp-group-item-title{
1598
flex-grow: 100;
1599
}
@@ -1650,6 +1916,18 @@ border-top: none;
1650
padding: 8px;
1651
}
1652
1653
/* End Widget Parameters */
1654
1655
.trumbowyg-box{
@@ -1713,7 +1991,7 @@ width:270px !important;
1713
padding-top:0;
1714
background-color: #E3E3E3;
1715
overflow: hidden;
1716
- background: -moz-linear-gradient(224deg, rgba(222,222,222,1) 0%, rgba(191,202,214,1) 100%); /* ff3.6+ */
1717
background: -webkit-gradient(linear, left bottom, right top, color-stop(0%, rgba(191,202,214,1)), color-stop(100%, rgba(222,222,222,1))); /* safari4+,chrome */
1718
background: -webkit-linear-gradient(224deg, rgba(222,222,222,1) 0%, rgba(191,202,214,1) 100%); /* safari5.1+,chrome10+ */
1719
background: -o-linear-gradient(224deg, rgba(222,222,222,1) 0%, rgba(191,202,214,1) 100%); /* opera 11.10+ */
@@ -1722,6 +2000,11 @@ background: linear-gradient(226deg, rgba(222,222,222,1) 0%, rgba(191,202,214,1)
1722
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#BFCAD6', endColorstr='#DEDEDE',GradientType=1 ); /* ie6-9 */
1723
}
1724
1725
.pagelayer-leftbar-search{
1726
text-align:center;
1727
margin: 20px 40px 10px 25px;
@@ -1788,12 +2071,18 @@ width: 100px !important;
1788
height:67px !important;
1789
margin-bottom:12px;
1790
margin-left:12px;
1791
- background-color:#FFFFFF;
1792
border-radius: 4px;
1793
float: left;
1794
transition: all 0.1s;
1795
}
1796
1797
.pagelayer-shortcode-drag:hover{
1798
transform: scale(1.06);
1799
}
@@ -1827,11 +2116,20 @@ transition: all 0.3s;
1827
padding:1px;
1828
}
1829
1830
.pagelayer-shortcode-drag:hover .pagelayer-shortcode:before,
1831
.pagelayer-shortcode-drag:hover .pagelayer-shortcode-text{
1832
color: #00A0D2;
1833
}
1834
1835
/* Trumbowyg color widget style */
1836
.trumbowyg-dropdown-foreColor,
1837
.trumbowyg-dropdown-backColor {
@@ -2115,23 +2413,23 @@ display:none;
2115
font-family: Roboto, 'Open Sans', Arial, Helvetica, sans-serif;
2116
}
2117
2118
- .pagelayer-add-section-modal-container span{
2119
- font-family: Roboto, 'Open Sans', Arial, Helvetica, sans-serif;
2120
}
2121
2122
.pagelayer-add-section-modal-holder{
2123
position: relative;
2124
- top: 40px;
2125
font-size: 18px;
2126
}
2127
2128
.pagelayer-add-section-modal{
2129
background-color: #ffffff;
2130
- width: 90%;
2131
- height: calc(100vh - 80px);
2132
- border-radius: 5px;
2133
margin: auto;
2134
- overflow:auto;
2135
position: relative;
2136
}
2137
@@ -2159,20 +2457,92 @@ border-radius:5px;
2159
2160
.pagelayer-add-section-modal-header{
2161
padding: 15px;
2162
- border-bottom: 1px solid #e5e5e5;
2163
position: sticky;
2164
- background: #fff;
2165
top: 0;
2166
z-index: 999;
2167
}
2168
2169
.pagelayer-add-section-modal-body{
2170
padding: 20px;
2171
margin: 0;
2172
box-sizing: border-box;
2173
- position:relative;
2174
- /*display: flex;
2175
- flex-flow: row wrap; */
2176
}
2177
2178
@media (min-width: 360px) {
@@ -2208,10 +2578,6 @@ padding: 15px;
2208
border-top: 1px solid #e5e5e5;
2209
}
2210
2211
- .pagelayer-add-section-modal-close{
2212
- float: right;
2213
- }
2214
-
2215
.pagelayer-section-item[pagelayer-sc]{
2216
text-align: center;
2217
display:flex;
@@ -2223,8 +2589,6 @@ border:2px dashed #e1e1e1;
2223
2224
.pagelayer-section-item{
2225
min-height: 50px;
2226
- box-shadow: 0px 3px 5px #c3c1c1;
2227
- border-radius:4px;
2228
margin:5px 0px 15px;
2229
-webkit-column-break-inside: avoid;
2230
break-inside: avoid;
@@ -2233,25 +2597,64 @@ display:inline-block;
2233
z-index: 9;
2234
transition-duration: 0.2s;
2235
background-color:#fff;
2236
- width:100%;
2237
}
2238
2239
.pagelayer-section-item:hover{
2240
z-index: 99;
2241
- transform: scale(1.03);
2242
position: relative;
2243
}
2244
2245
.pagelayer-section-item img{
2246
width:100%;
2247
- box-sizing: border-box;
2248
}
2249
2250
.pagelayer-add-section-modal-overlay{
2251
- position:sticky;
2252
top:0;
2253
bottom:0;
2254
height:100%;
2255
z-index:999999;
2256
align-items: center;
2257
justify-content: center;
@@ -2265,10 +2668,6 @@ background-color:#f7f7f7c2;
2265
font-size:50px;
2266
}
2267
2268
- .pagelayer-add-section-modal-close{
2269
- cursor:pointer;
2270
- }
2271
-
2272
/* Add section modal end */
2273
2274
/* Navigator start */
423
border: 1px solid #d3d3d3;
424
}
425
426
+ .pagelayer-dark #pagelayer-elpd {
427
+ border: 1px solid #252529;
428
+ }
429
+
430
#pagelayer-elpd .slimScrollDiv{
431
height: calc(100% - 50px) !important;
432
}
464
border-top: 1px solid #d3d3d3;
465
}
466
467
+ .pagelayer-dark .pagelayer-elpd-section-rows{
468
+ background-color: #1c1c1f;
469
+ border-top: 1px solid #1c1c1f;
470
+ }
471
+
472
.pagelayer-elpd-section-name{
473
margin-top: 10px;
474
padding: 11px 10px;
475
background-color: #FFF;
476
+ font-size: 13px;
477
font-weight: bold;
478
+ color: #555;
479
cursor: pointer;
480
transition: all 0.3s;
481
}
482
483
+ .pagelayer-dark .pagelayer-elpd-section-name{
484
+ background-color: #252529;
485
+ font-family: Roboto;
486
+ font-size: 12px;
487
+ font-weight: 400;
488
+ color: #ffffff;
489
+ }
490
+
491
.pagelayer-elpd-section-name:hover,
492
.pagelayer-elpd-section-open{
493
+ color:#1a7fb0;
494
+ }
495
+
496
+ .pagelayer-dark .pagelayer-elpd-section-open{
497
+ background-color: #0d47a1;
498
+ }
499
+
500
+ .pagelayer-dark .pagelayer-elpd-section-name:hover{
501
+ color:#ffffff;
502
}
503
504
.pagelayer-elpd-section-name:not(.pagelayer-elpd-section-open) .pli:before,
529
margin: 0px 5px 0px 0px;
530
}
531
532
+ .pagelayer-dark .pagelayer-elpd-tab,
533
+ .pagelayer-dark .pagelayer-history-tab{
534
+ font-family: Roboto !important;
535
+ color:#777777;
536
+ font-size: 14px;
537
+ font-weight: 400;
538
+ }
539
+
540
.pagelayer-elpd-settings-body{
541
display: none;
542
}
577
color: #3e8ef7;
578
}
579
580
+ .pagelayer-dark [pagelayer-elpd-active-tab="1"],
581
+ .pagelayer-dark [pagelayer-history-active-tab="1"]{
582
+ color: #ffffff;
583
+ }
584
+
585
.pagelayer-elpd-tabs,
586
.pagelayer-history-tabs {
587
background-color: #fff;
588
border-bottom: 1px solid #d3d3d3;
589
}
590
591
+ .pagelayer-dark .pagelayer-elpd-tabs,
592
+ .pagelayer-dark .pagelayer-history-tabs{
593
+ background-color: #1c1c1f;
594
+ border-bottom: 1px solid #1c1c1f;
595
+ }
596
+
597
+
598
.pagelayer-elpd-tabs{
599
display: flex;
600
align-items: center;
611
cursor:pointer;
612
}
613
614
+ .pagelayer-dark .pagelayer-elpd-options i{
615
+ color:#777777;
616
+ }
617
+
618
+ .pagelayer-dark .pagelayer-elpd-options i:hover{
619
+ color: #ffffff;
620
+ }
621
+
622
.pagelayer-form-item {
623
border-bottom: 1px dashed #e6e6e6;
624
padding: 10px 8px 10px 6px;
626
position: relative;
627
}
628
629
+ .pagelayer-dark .pagelayer-form-item{
630
+ border-bottom: 1px dashed #686870;
631
+ }
632
+
633
.pagelayer-elp-label-div{
634
padding:4px 0px 4px 0px;
635
position:relative;
642
line-height: 150%;
643
}
644
645
+ .pagelayer-dark .pagelayer-elp-label{
646
+ color:#bdbdbd;
647
+ }
648
+
649
.pagelayer-elp-heading{
650
font-size: 13px;
651
font-weight:600;
671
transition-duration: 0.1s;
672
}
673
674
+ .pagelayer-dark .pagelayer-elp-screen .pli{
675
+ color:#bdbdbd;
676
+ }
677
+
678
+
679
.pagelayer-elp-screen .pli-desktop:not(.pagelayer-prop-screen),
680
.pagelayer-elp-screen .pli-tablet:not(.pagelayer-prop-screen),
681
.pagelayer-elp-screen .pli-mobile:not(.pagelayer-prop-screen){
688
color:#ffffff;
689
}
690
691
+ .pagelayer-dark .pagelayer-elp-screen .pli-desktop:not(.pagelayer-prop-screen),
692
+ .pagelayer-dark .pagelayer-elp-screen .pli-tablet:not(.pagelayer-prop-screen),
693
+ .pagelayer-dark .pagelayer-elp-screen .pli-mobile:not(.pagelayer-prop-screen){
694
+ background:#0d47a1;
695
+ }
696
+
697
.pagelayer-elp-screen .pli-desktop.open{
698
transform: rotate(-90deg) translate(30px, -27px) rotate(90deg);
699
transition-delay: 0s;
734
background-color: #3E8EF7;
735
}
736
737
+ .pagelayer-dark .pagelayer-elp-screen .pli:not(.pagelayer-prop-screen):hover{
738
+ background-color: #1066fd;
739
+ }
740
+
741
.pagelayer-elp-screen .pagelayer-prop-screen:hover{
742
color: #3E8EF7;
743
}
754
cursor: pointer;
755
}
756
757
+ .pagelayer-dark .pagelayer-elp-units span{
758
+ color:#bdbdbd;
759
+ }
760
+
761
.pagelayer-elp-units span[selected] {
762
color: #3e8ef7;
763
}
783
width: 100%;
784
}
785
786
+ .pagelayer-dark .pagelayer-elpd-body input,
787
+ .pagelayer-dark .pagelayer-elpd-body textarea,
788
+ .pagelayer-dark .pagelayer-elpd-body select,
789
+ .pagelayer-dark .pagelayer-elpd-body option,
790
+ .pagelayer-dark .pagelayer-elp-multiselect{
791
+ border:1px solid #6e6d6d;
792
+ }
793
+
794
+ .pagelayer-dark .pagelayer-elpd-body input,
795
+ .pagelayer-dark .pagelayer-elpd-body textarea,
796
+ .pagelayer-dark .pagelayer-elpd-body select,
797
+ .pagelayer-dark .pagelayer-elpd-body option,
798
+ .pagelayer-dark .pagelayer-elp-multiselect{
799
+ color:#bdbdbd;
800
+ }
801
+
802
.pagelayer-elpd-body input:focus,
803
.pagelayer-elpd-body textarea:focus,
804
.pagelayer-elpd-body select:focus{
872
display:flex;
873
}
874
875
+ .pagelayer-elp-radio:first-child{
876
+ border-radius: 4px 0px 0px 4px;
877
+ -moz-outline-radius: 7px 0px 0px 7px;
878
+ }
879
+
880
+ .pagelayer-elp-radio:last-child{
881
+ border-radius: 0px 4px 4px 0px;
882
+ -moz-outline-radius: 0px 7px 7px 0px;
883
+ }
884
+
885
.pagelayer-elp-radio{
886
display: inline-block;
887
vertical-align: middle;
888
+ padding: 6px;
889
cursor: pointer;
890
font-size:12px;
891
color: #666 !important;
892
text-decoration: none;
893
background: #eee;
894
flex:1;
895
text-align:center;
896
}
897
898
.pagelayer-elp-radio:hover{
899
+ background-color: #4CB5E8 !important;
900
color:#fff !important;
901
+ transition: all 0.3s;
902
+ }
903
+
904
+ .pagelayer-dark .pagelayer-elp-radio{
905
+ background-color: #fafafa;
906
+ }
907
+
908
+ .pagelayer-dark .pagelayer-elp-radio:hover,
909
+ .pagelayer-dark .pagelayer-elp-radio-active{
910
+ background-color:#0d47a1 !important;
911
}
912
913
.pagelayer-elp-radio-active{
914
+ background-color: #1A9CDB !important;
915
+ color:#ffffff !important;
916
}
917
918
.pagelayer-elp-color-div{
926
position: absolute;
927
top: 5px;
928
right: 7px;
929
+ border: solid 1px #999;
930
color: #333;
931
vertical-align: middle;
932
}
933
934
.pagelayer-elp-color-preview{
935
+ height: 100%;
936
background-size: cover !important;
937
}
938
939
+ .pagelayer-white-border{
940
+ outline: 1px solid #dfdfdf;
941
+ }
942
+
943
.pagelayer-blank-preview{
944
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;
945
background-size: cover !important;
946
+ opacity: 70%;
947
}
948
949
.picker_arrow {
970
box-shadow: 0 3px 5px rgba(0,0,0,0.2) !important;
971
}
972
973
+ .pagelayer-dark .pagelayer-elp-color-div .picker_wrapper{
974
+ border: 1px solid #0277bd !important;
975
+ background: #252529 !important;
976
+ box-shadow: 0 0.5rem 1rem #00000026 !important;
977
+ }
978
+
979
.picker_wrapper{
980
z-index:12 !important;
981
}
982
983
+ .pagelayer-dark .picker_done button {
984
+ border: none;
985
+ font-family: roboto;
986
+ color: #777;
987
+ background-color: #ffffff;
988
+ }
989
+
990
+ .pagelayer-dark .picker_editor input{
991
+ color: #bdbdbd;
992
+ background-color: #1c1c1f;
993
+ }
994
+
995
.pagelayer-elp-remove-color{
996
background-color:#616161;
997
position: absolute;
1024
right: 10px;
1025
}
1026
1027
+ .pagelayer-dark .pagelayer-elp-icon-div{
1028
+ background-color: #1c1c1f;
1029
+ color: #bdbdbd;
1030
+ border: 1px solid #6e6d6d;
1031
+ }
1032
+
1033
.pagelayer-elp-icon-preview{
1034
position: relative;
1035
display: block;
1050
vertical-align: middle;
1051
}
1052
1053
+ .pagelayer-dark .pagelayer-elp-icon-preview i,
1054
+ .pagelayer-dark .pagelayer-elp-icon-name{
1055
+ color:#bdbdbd;
1056
+ }
1057
+
1058
.pagelayer-elp-icon-name{
1059
font-size: 13px;
1060
}
1067
line-height: 20px;
1068
}
1069
1070
+ .pagelayer-dark .pagelayer-elp-icon-open,
1071
+ .pagelayer-dark .pagelayer-elp-icon-close{
1072
+ color:#bdbdbd;
1073
+ }
1074
+
1075
.pagelayer-elp-icon-close{
1076
padding-right: 5px;
1077
font-size: 12px;
1105
right: 10px;
1106
}
1107
1108
+ .pagelayer-dark .pagelayer-elp-icon-selector,
1109
+ .pagelayer-dark .pagelayer-ele-type-sec{
1110
+ background: #252529 !important;
1111
+ border: 1px solid #ffffff73 !important;
1112
+ }
1113
+
1114
.pagelayer-elp-search-icon{
1115
margin-bottom: 5px !important;
1116
padding: 2px 6px;
1139
padding: 3px;
1140
}
1141
1142
+ .pagelayer-dark .pagelayer-elp-icon-span,
1143
+ .pagelayer-dark .pagelayer-elp-icon-span i{
1144
+ color:#bdbdbd;
1145
+ }
1146
+
1147
.pagelayer-elp-icon-span:hover{
1148
border-color: #00A0D2;
1149
background-color: #3e8ef7;
1185
background-color:#666666;
1186
}
1187
1188
+ .pagelayer-dark .pagelayer-elp-icon-type p.active{
1189
+ background: #0277bd;
1190
+ }
1191
+
1192
.pagelayer-elp-icon-sets{
1193
line-height: 27px;
1194
height: 27px;
1249
cursor: pointer;
1250
}
1251
1252
+ .pagelayer-dark .pagelayer-elp-slider::-webkit-slider-thumb{
1253
+ background: #3e8ef7;
1254
+ }
1255
+
1256
.pagelayer-elp-slider::-moz-range-thumb{
1257
width: 15px;
1258
height: 15px;
1304
}
1305
1306
input[type="checkbox"].pagelayer-elp-checkbox:checked{
1307
+ background-color: #1A9CDB;
1308
+ border-color: #1A9CDB;
1309
+ }
1310
+
1311
+ .pagelayer-dark input[type="checkbox"].pagelayer-elp-checkbox:checked{
1312
+ background-color: #0d47a1;
1313
}
1314
1315
input[type="checkbox"].pagelayer-elp-checkbox:after{
1352
line-height:26px !important;
1353
}
1354
1355
+ .pagelayer-dark .pagelayer-elp-input-icon i.pli{
1356
+ background: #e0e0e0;
1357
+ }
1358
+
1359
.pagelayer-elp-padding-div i.pli{
1360
padding:6px 11px;
1361
border: 1px solid #d1d1d1;
1369
background: #CCC !important;
1370
}
1371
1372
+ .pagelayer-dark .pagelayer-elp-padding-linked{
1373
+ background: #e0e0e0 !important;
1374
+ }
1375
+
1376
.pagelayer-elp-dimension-div i.pli{
1377
padding:6px 11px;
1378
border: 1px solid #d1d1d1;
1406
width:100%;
1407
}
1408
1409
+ .pagelayer-dark .pagelayer-elp-multiselect-ul{
1410
+ background: #1c1c1f;
1411
+ border: 1px solid #6e6d6d;
1412
+ border-top: none;
1413
+ box-shadow: 0 0.5rem 1rem #00000026;
1414
+ }
1415
+
1416
.pagelayer-elp-multiselect-option{
1417
font-size:13px;
1418
padding:3px 8px;
1419
cursor:pointer;
1420
}
1421
1422
+ .pagelayer-dark .pagelayer-elp-multiselect-option{
1423
+ color: #777;
1424
+ }
1425
+
1426
.pagelayer-elp-multiselect-option[selected="selected"]{
1427
background: #cccccc;
1428
}
1429
1430
+ .pagelayer-dark .pagelayer-elp-multiselect-option[selected="selected"]{
1431
+ background: #0277bd;
1432
+ color: #fff;
1433
+ }
1434
+
1435
.pagelayer-elp-multiselect-selected{
1436
padding: 3px 5px;
1437
border-radius: 5px;
1441
font-size: 13px;
1442
}
1443
1444
+ .pagelayer-dark .pagelayer-elp-multiselect-selected{
1445
+ color: #777;
1446
+ background: #ffffff;
1447
+ }
1448
+
1449
.pagelayer-elp-multiselect{
1450
display: flex;
1451
flex-wrap: wrap;
1555
box-sizing: content-box;
1556
}
1557
1558
.pagelayer-elp-shadow-div,
1559
.pagelayer-elp-typo-div,
1560
.pagelayer-elp-filter-div{
1570
z-index: 12;
1571
}
1572
1573
+ .pagelayer-dark .pagelayer-elp-shadow-div,
1574
+ .pagelayer-dark .pagelayer-elp-typo-div,
1575
+ .pagelayer-dark .pagelayer-elp-filter-div{
1576
+ background-color:#252529;
1577
+ }
1578
+
1579
.pagelayer-elp-typo-container{
1580
max-height:250px;
1581
overflow: auto;
1595
cursor: pointer;
1596
}
1597
1598
+ .pagelayer-dark .pagelayer-elp-typo-sele{
1599
+ color:#bdbdbd;
1600
+ border:1px solid #6e6d6d;
1601
+ }
1602
+
1603
.pagelayer-elp-typo-container span {
1604
display: block;
1605
font-size: 13px;
1609
cursor: pointer;
1610
}
1611
1612
+ .pagelayer-dark .pagelayer-elp-typo-container span{
1613
+ color:#bdbdbd;
1614
+ }
1615
+
1616
.pagelayer-elp-typo-search{
1617
padding: 0 2px;
1618
height: 24px;
1640
font-size: 20px;
1641
}
1642
1643
+ .pagelayer-dark .pagelayer-prop-edit i{
1644
+ color:#bdbdbd;
1645
+ }
1646
+
1647
.pagelayer-prop-show{
1648
display: block;
1649
}
1735
color: #555;
1736
}
1737
1738
+ .pagelayer-dark .pagelayer-elp-typo .pagelayer-elp-label{
1739
+ color:#bdbdbd;
1740
+ }
1741
+
1742
.pagelayer-elp-typo select.pagelayer-elp-typo-input,
1743
.pagelayer-elp-typo-input,
1744
.pagelayer-elp-shadow-input{
1776
border-radius: 4px !important;
1777
}
1778
1779
+ .pagelayer-elp-select {
1780
+ font-size: 16px;
1781
+ font-weight: 700;
1782
+ color: #444;
1783
+ line-height: 1.3;
1784
+ padding: 2px 2px 2px 6px;
1785
+ width: 100%;
1786
+ max-width: 100%;
1787
+ margin: 0;
1788
+ border: 1px solid #aaa;
1789
+ border-radius: 3px !important;
1790
+ box-shadow: 0 1px 0 1px rgba(0,0,0,.04);
1791
+ -moz-appearance: none;
1792
+ -webkit-appearance: none;
1793
+ appearance: none;
1794
+ background-image: linear-gradient(45deg, transparent 50%, #1A9CDB 50%), linear-gradient(135deg, #1A9CDB 50%, transparent 50%);
1795
+ background-position: right .9em top 50%, right .55em top 50%;
1796
+ background-size: 5px 5px, 5px 5px;
1797
+ background-repeat: no-repeat;
1798
+ }
1799
+ .pagelayer-elp-select::-ms-expand {
1800
+ display: none;
1801
+ }
1802
+ .pagelayer-elp-select:hover {
1803
+ border-color: #888;
1804
+ }
1805
+ .pagelayer-elp-select:focus {
1806
+ border-color: #aaa;
1807
+ box-shadow: 0 0 1px 3px rgba(59, 153, 252, .7);
1808
+ box-shadow: 0 0 0 3px -moz-mac-focusring;
1809
+ color: #222;
1810
+ outline: none;
1811
+ }
1812
+ .pagelayer-elp-select option{
1813
+ font-weight:normal;
1814
+ }
1815
+
1816
+ .pagelayer-dark .pagelayer-elp-select-div .pagelayer-elp-select{
1817
+ background-color: #252529;
1818
+ color:#bdbdbd;
1819
}
1820
1821
.pagelayer-elpd-body input:focus,
1846
background: #F8F8F8;
1847
}
1848
1849
+ .pagelayer-dark .pagelayer-elp-group-item-head{
1850
+ background:#252529;
1851
+ }
1852
+
1853
.pagelayer-elp-group-item-head span{
1854
cursor: pointer;
1855
padding: 9px;
1856
display:inline-block;
1857
}
1858
1859
+ .pagelayer-dark .pagelayer-elp-group-item-head span{
1860
+ color:#bdbdbd;
1861
+ }
1862
+
1863
.pagelayer-elp-group-item-title{
1864
flex-grow: 100;
1865
}
1916
padding: 8px;
1917
}
1918
1919
+ .pagelayer-dark .pagelayer-widgets-form label{
1920
+ color:#bdbdbd;
1921
+ }
1922
+
1923
+ .pagelayer-dark .pagelayer-widgets-form input,
1924
+ .pagelayer-dark .pagelayer-widgets-form select,
1925
+ .pagelayer-dark .pagelayer-widgets-form textarea {
1926
+ color:#bdbdbd;
1927
+ background-color:#1c1c1f;
1928
+ border:1px solid #6e6d6d;
1929
+ }
1930
+
1931
/* End Widget Parameters */
1932
1933
.trumbowyg-box{
1991
padding-top:0;
1992
background-color: #E3E3E3;
1993
overflow: hidden;
1994
+ background: -moz-linear-gradient(224deg, rgba(222,222,222,1) 0%, rgba(191,202,214,1) 100%); /* ff3.6+ */
1995
background: -webkit-gradient(linear, left bottom, right top, color-stop(0%, rgba(191,202,214,1)), color-stop(100%, rgba(222,222,222,1))); /* safari4+,chrome */
1996
background: -webkit-linear-gradient(224deg, rgba(222,222,222,1) 0%, rgba(191,202,214,1) 100%); /* safari5.1+,chrome10+ */
1997
background: -o-linear-gradient(224deg, rgba(222,222,222,1) 0%, rgba(191,202,214,1) 100%); /* opera 11.10+ */
2000
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#BFCAD6', endColorstr='#DEDEDE',GradientType=1 ); /* ie6-9 */
2001
}
2002
2003
+ .pagelayer-dark .pagelayer-leftbar{
2004
+ background: unset !important;
2005
+ background-color: #1c1c1f !important;
2006
+ }
2007
+
2008
.pagelayer-leftbar-search{
2009
text-align:center;
2010
margin: 20px 40px 10px 25px;
2071
height:67px !important;
2072
margin-bottom:12px;
2073
margin-left:12px;
2074
+ background-color: #FFFFFF;
2075
border-radius: 4px;
2076
float: left;
2077
transition: all 0.1s;
2078
}
2079
2080
+ .pagelayer-dark .pagelayer-shortcode-drag,
2081
+ .pagelayer-dark .pagelayer-shortcode-drag:hover{
2082
+ background-color:#252529;
2083
+ box-shadow:0 0.5rem 1rem #00000026;
2084
+ }
2085
+
2086
.pagelayer-shortcode-drag:hover{
2087
transform: scale(1.06);
2088
}
2116
padding:1px;
2117
}
2118
2119
+ .pagelayer-dark .pagelayer-shortcode-text{
2120
+ color: #bdbdbd;
2121
+ }
2122
+
2123
.pagelayer-shortcode-drag:hover .pagelayer-shortcode:before,
2124
.pagelayer-shortcode-drag:hover .pagelayer-shortcode-text{
2125
color: #00A0D2;
2126
}
2127
2128
+ .pagelayer-dark .pagelayer-shortcode-drag:hover .pagelayer-shortcode:before,
2129
+ .pagelayer-dark .pagelayer-shortcode-drag:hover .pagelayer-shortcode-text{
2130
+ color: #3d5afe;
2131
+ }
2132
+
2133
/* Trumbowyg color widget style */
2134
.trumbowyg-dropdown-foreColor,
2135
.trumbowyg-dropdown-backColor {
2413
font-family: Roboto, 'Open Sans', Arial, Helvetica, sans-serif;
2414
}
2415
2416
+ .pagelayer-add-section-modal-close{
2417
+ font-size: 30px;
2418
+ float: right;
2419
+ cursor:pointer;
2420
+ line-height: 100%;
2421
}
2422
2423
.pagelayer-add-section-modal-holder{
2424
position: relative;
2425
font-size: 18px;
2426
+ height: 100vh;
2427
}
2428
2429
.pagelayer-add-section-modal{
2430
background-color: #ffffff;
2431
+ width: 100%;
2432
margin: auto;
2433
position: relative;
2434
}
2435
2457
2458
.pagelayer-add-section-modal-header{
2459
padding: 15px;
2460
position: sticky;
2461
+ background: #5e5e5e;
2462
top: 0;
2463
z-index: 999;
2464
+ color: #fff;
2465
+ }
2466
+
2467
+ .pagelayer-add-section-modal-header>div{
2468
+ display: inline-block;
2469
+ }
2470
+
2471
+ .pagelayer-section-type-div{
2472
+ width: 85%;
2473
+ text-align: center;
2474
+ }
2475
+
2476
+ .pagelayer-add-section-modal-row{
2477
+ display: flex;
2478
+ flex-direction: row;
2479
+ }
2480
+
2481
+ .pagelayer-add-section-modal-left{
2482
+ min-width: 250px;
2483
+ width: 250px;
2484
+ background-color: #ccc;
2485
+ }
2486
+
2487
+ .pagelayer-section-search-div{
2488
+ text-align:center;
2489
+ margin: 20px;
2490
+ position:relative;
2491
+ }
2492
+
2493
+ .pagelayer-section-search{
2494
+ width:100%;
2495
+ line-height:120%;
2496
+ padding: 5px 20px 5px 30px;
2497
+ border-radius: 5px;
2498
+ border: none;
2499
+ font-size: 14px;
2500
+ height:30px;
2501
+ }
2502
+
2503
+ .pagelayer-section-search-div .pli{
2504
+ position: absolute;
2505
+ top: 0;
2506
+ height: 30px;
2507
+ padding: 0 7px;
2508
+ color: #666;
2509
+ line-height: 30px;
2510
+ }
2511
+
2512
+ .pagelayer-section-search-div .pagelayer-sf-empty{
2513
+ right:0;
2514
+ left:auto;
2515
+ font-weight:bolder;
2516
+ cursor:pointer;
2517
+ }
2518
+
2519
+ .pagelayer-section-tags-holder{
2520
+ padding: 10px;
2521
+ }
2522
+
2523
+ .pagelayer-section-tags{
2524
+ background: #1A9CDB;
2525
+ cursor: pointer;
2526
+ padding: 5px;
2527
+ color: #fff;
2528
+ font-size: 13px;
2529
+ display: inline-block;
2530
+ margin: 3px;
2531
+ }
2532
+
2533
+ .pagelayer-section-tags[on="1"]{
2534
+ background: #326fa6;
2535
+ }
2536
+
2537
+ .pagelayer-section-modal-body-holder{
2538
+ overflow:auto;
2539
+ height: calc(100vh - 20px);
2540
}
2541
2542
.pagelayer-add-section-modal-body{
2543
padding: 20px;
2544
margin: 0;
2545
box-sizing: border-box;
2546
}
2547
2548
@media (min-width: 360px) {
2578
border-top: 1px solid #e5e5e5;
2579
}
2580
2581
.pagelayer-section-item[pagelayer-sc]{
2582
text-align: center;
2583
display:flex;
2589
2590
.pagelayer-section-item{
2591
min-height: 50px;
2592
margin:5px 0px 15px;
2593
-webkit-column-break-inside: avoid;
2594
break-inside: avoid;
2597
z-index: 9;
2598
transition-duration: 0.2s;
2599
background-color:#fff;
2600
+ width:95%;
2601
+ border: 3px solid #fff;
2602
+ border-radius: 4px;
2603
+ cursor: pointer;
2604
+ position: relative;
2605
}
2606
2607
.pagelayer-section-item:hover{
2608
z-index: 99;
2609
+ transform: scale(1.01);
2610
position: relative;
2611
+ border: 3px solid #1A9CDB;
2612
}
2613
2614
.pagelayer-section-item img{
2615
width:100%;
2616
+ }
2617
+
2618
+ .pagelayer-section-pro-req{
2619
+ position: absolute;
2620
+ top: 15px;
2621
+ right: 0px;
2622
+ font-size: 14px;
2623
+ padding: 10px;
2624
+ background-color: #e63131;
2625
+ color: #fff;
2626
+ margin-left: 4px;
2627
+ border-radius: 2px;
2628
+ cursor: pointer;
2629
+ }
2630
+
2631
+ .pagelayer-section-pro-txt{
2632
+ position: absolute;
2633
+ top: 45%;
2634
+ left: 0px;
2635
+ font-size: 14px;
2636
+ padding: 10px;
2637
+ color: #fff;
2638
+ line-height: 120%;
2639
+ background: #111;
2640
+ opacity: 0;
2641
+ transition: all 0.3s;
2642
+ }
2643
+
2644
+ .pagelayer-section-item:hover > .pagelayer-section-pro-txt{
2645
+ opacity: 0.8;
2646
+ }
2647
+
2648
+ .pagelayer-section-pro-txt a{
2649
+ color: #1A9CDB;
2650
}
2651
2652
.pagelayer-add-section-modal-overlay{
2653
+ position: absolute;
2654
top:0;
2655
bottom:0;
2656
height:100%;
2657
+ width:100%;
2658
z-index:999999;
2659
align-items: center;
2660
justify-content: center;
2668
font-size:50px;
2669
}
2670
2671
/* Add section modal end */
2672
2673
/* Navigator start */
css/pagelayer-icons.css CHANGED
@@ -44,6 +44,10 @@ line-height: 1;
44
text-align: center;
45
}
46
47
.trumbowyg-dropdown-formatting > button:before{
48
margin-right:10px;
49
}
44
text-align: center;
45
}
46
47
+ .pagelayer-dark .pagelayer-shortcode{
48
+ color:#fff;
49
+ }
50
+
51
.trumbowyg-dropdown-formatting > button:before{
52
margin-right:10px;
53
}
init.php CHANGED
@@ -5,7 +5,7 @@ if (!defined('ABSPATH')) exit;
5
6
define('PAGELAYER_BASE', plugin_basename(PAGELAYER_FILE));
7
define('PAGELAYER_PRO_BASE', 'pagelayer-pro/pagelayer-pro.php');
8
- define('PAGELAYER_VERSION', '1.0.6');
9
define('PAGELAYER_DIR', dirname(PAGELAYER_FILE));
10
define('PAGELAYER_SLUG', 'pagelayer');
11
define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
5
6
define('PAGELAYER_BASE', plugin_basename(PAGELAYER_FILE));
7
define('PAGELAYER_PRO_BASE', 'pagelayer-pro/pagelayer-pro.php');
8
+ define('PAGELAYER_VERSION', '1.0.7');
9
define('PAGELAYER_DIR', dirname(PAGELAYER_FILE));
10
define('PAGELAYER_SLUG', 'pagelayer');
11
define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
js/pagelayer-editor.js CHANGED
@@ -15,6 +15,7 @@ pagelayer = {
15
history_action : true,
16
history_lastTime : new Date(),
17
props_ref : {},
18
}
19
20
var pagelayer_history_obj = {}, pagelayer_revision_obj = {};
@@ -88,6 +89,10 @@ jQuery(document).ready(function(){
88
89
// Set row-option top zero(0) of the first row
90
pagelayer_set_row_option_position();
91
});
92
93
// Set row-option top zero(0) of the first row
@@ -2943,7 +2948,7 @@ function pagelayer_leftbar(){
2943
'<div class="pagelayer-leftbar-scroll">'+
2944
'<div id="pagelayer-shortcodes" class="pagelayer-leftbar-tab pagelayer-shortcodes">'+
2945
'<div class="pagelayer-leftbar-search">'+
2946
- '<i class="pli pli-search" /><input class="pagelayer-search-field" /><i class="pagelayer-sf-empty pli">&times;</i>'+
2947
'</div>';
2948
2949
for(var x in pagelayer_groups){
@@ -4105,6 +4110,23 @@ function pagelayer_add_widget(){
4105
});
4106
};
4107
4108
// Append section modal into body
4109
function pagelayer_add_section_area(){
4110
@@ -4120,10 +4142,27 @@ function pagelayer_add_section_area(){
4120
'<div class="pagelayer-add-section-modal-holder">'+
4121
'<div class="pagelayer-add-section-modal">'+
4122
'<div class="pagelayer-add-section-modal-header">'+
4123
- '<i class="pagelayer-add-section-modal-close">&times;</i>'+
4124
- '<span>Add Sections</span>'+
4125
'</div>'+
4126
- '<div class="pagelayer-add-section-modal-body">'+
4127
'</div>'+
4128
'<div class="pagelayer-add-section-modal-overlay" style="display:none;">'+
4129
'<div class="pagelayer-section-wait">'+
@@ -4144,6 +4183,17 @@ function pagelayer_add_section_area(){
4144
mEle.hide();
4145
});
4146
4147
// Append the list items into modal body
4148
pagelayer_add_sections_list_setup();
4149
@@ -4158,39 +4208,177 @@ function pagelayer_add_sections_list_setup(type){
4158
var add_area = jQuery('.pagelayer-add-widget-area');
4159
type = type || 'section';
4160
4161
- var default_content = '<div style="display:inline-block;position:absolute;top:0;left:0;right:0;text-align:center;"><h1>Coming Soon</h1>'+
4162
- '<span>We will soon add some pre-defined '+type+' layouts which you can add to your post with just one click !</span>'+
4163
- '</div>';
4164
-
4165
- // Set coming soon
4166
- mEle.find('.pagelayer-add-section-modal-body').html(default_content);
4167
- return;
4168
4169
// Create list of items
4170
var pagelayer_section_list = function(){
4171
4172
- var section_html = '';
4173
- var data = pagelayer_add_section_data[type];
4174
4175
- // Get data form pagelayer_add_section_data object to create list
4176
- for(var section in data['list']){
4177
4178
- var id = data['list'][section];
4179
4180
- section_html += '<div class="pagelayer-section-item" pagelayer-add-section-id="'+ id +'">'+
4181
- '<img src="'+ data['image_url'] + id +'.png" alt="Pagelayer code screenshot">'+
4182
'</div>';
4183
4184
}
4185
-
4186
- // Create items list
4187
- mEle.find('.pagelayer-add-section-modal-body').html(section_html);
4188
mEle.find('.pagelayer-section-item').unbind('click');
4189
mEle.find('.pagelayer-section-item').on('click', function(e){
4190
pagelayer_section_item_clickable(jQuery(this));
4191
});
4192
4193
- };
4194
4195
// On click items
4196
var pagelayer_section_item_clickable = function(jEle){
@@ -4202,6 +4390,10 @@ function pagelayer_add_sections_list_setup(type){
4202
return false;
4203
}
4204
4205
// Show the overlay
4206
mEle.find('.pagelayer-add-section-modal-overlay').show();
4207
@@ -4214,22 +4406,31 @@ function pagelayer_add_sections_list_setup(type){
4214
'pagelayer_section_id': section_id,
4215
'pagelayer-live': 1
4216
},
4217
- success: function(data) {
4218
-
4219
- var data = JSON.parse(data);
4220
- var cEle = jQuery(data['code']);
4221
-
4222
- // Add section before add widget area
4223
- add_area.before(cEle);
4224
4225
- // We need to it setup
4226
- cEle.each(function(){
4227
- var pl_id = pagelayer_id(jQuery(this));
4228
4229
- if(!pagelayer_empty(pl_id)){
4230
- pagelayer_element_setup('[pagelayer-id="'+pl_id+'"], [pagelayer-id='+pl_id+'] .pagelayer-ele', true);
4231
- }
4232
- });
4233
4234
},
4235
complete: function(){
@@ -4241,7 +4442,10 @@ function pagelayer_add_sections_list_setup(type){
4241
4242
// Load the data if not there
4243
if(!(type in pagelayer_add_section_data)){
4244
-
4245
// Get the sections list data and append it
4246
jQuery.ajax({
4247
url: pagelayer_api_url+'/library.php?give='+type,
@@ -4259,6 +4463,12 @@ function pagelayer_add_sections_list_setup(type){
4259
// Create the Type
4260
pagelayer_section_list(type);
4261
4262
}
4263
});
4264
@@ -4268,6 +4478,44 @@ function pagelayer_add_sections_list_setup(type){
4268
}
4269
}
4270
4271
// On editable area image paste handler
4272
function pagelayer_editable_paste_handler(pasteEvent, pagelayer_ajax_func){
4273
@@ -4296,39 +4544,7 @@ function pagelayer_editable_paste_handler(pasteEvent, pagelayer_ajax_func){
4296
// Convert it to a blob to upload
4297
var blob = pagelayer_b64toBlob(realData, contentType);
4298
4299
- var formData = new FormData();
4300
- formData.append('action', 'upload-attachment');
4301
- formData.append('_ajax_nonce', pagelayer_media_ajax_nonce);
4302
- formData.append('async-upload', blob, fileName);
4303
-
4304
- jQuery.ajax({
4305
- url:pagelayer_ajax_url,
4306
- data: formData,// the formData function is available in almost all new browsers.
4307
- type:"post",
4308
- contentType:false,
4309
- processData:false,
4310
- cache:false,
4311
- beforeSend: function( xhr ) {
4312
- if(typeof pagelayer_ajax_func.beforeSend == 'function'){
4313
- pagelayer_ajax_func.beforeSend(xhr);
4314
- }
4315
- },
4316
- error:function(err){
4317
- //console.error(err);
4318
- alert("Unable to upload image for some reason.");
4319
- },
4320
- success:function(response){
4321
- var obj = jQuery.parseJSON(response);
4322
- if(typeof pagelayer_ajax_func.success == 'function'){
4323
- pagelayer_ajax_func.success(obj);
4324
- }
4325
- },
4326
- complete:function(xhr){
4327
- if(typeof pagelayer_ajax_func.complete == 'function'){
4328
- pagelayer_ajax_func.complete(xhr);
4329
- }
4330
- }
4331
- });
4332
4333
}
4334
15
history_action : true,
16
history_lastTime : new Date(),
17
props_ref : {},
18
+ pro_txt : '',
19
}
20
21
var pagelayer_history_obj = {}, pagelayer_revision_obj = {};
89
90
// Set row-option top zero(0) of the first row
91
pagelayer_set_row_option_position();
92
+
93
+ // Just the txt
94
+ pagelayer.pro_txt = 'This feature is a part of <a href="'+pagelayer_pro_url+'" target="_blank">Pagelayer Pro</a>. You will need purchase <a href="'+pagelayer_pro_url+'" target="_blank">Pagelayer Pro</a> to use this feature.';
95
+
96
});
97
98
// Set row-option top zero(0) of the first row
2948
'<div class="pagelayer-leftbar-scroll">'+
2949
'<div id="pagelayer-shortcodes" class="pagelayer-leftbar-tab pagelayer-shortcodes">'+
2950
'<div class="pagelayer-leftbar-search">'+
2951
+ '<i class="pli pli-search" /><input class="pagelayer-search-field" /><span class="pagelayer-sf-empty pli">&times;</span>'+
2952
'</div>';
2953
2954
for(var x in pagelayer_groups){
4110
});
4111
};
4112
4113
+ // Is the element in view while scrolling
4114
+ function pagelayer_isElementInView(elem, holder, partial) {
4115
+ partial = partial || true;
4116
+ var container = jQuery(holder);
4117
+ var contHeight = container.height();
4118
+ var contTop = container.scrollTop();
4119
+ var contBottom = contTop + contHeight ;
4120
+
4121
+ var elemTop = jQuery(elem).offset().top - container.offset().top;
4122
+ var elemBottom = elemTop + jQuery(elem).height();
4123
+
4124
+ var isTotal = (elemTop >= 0 && elemBottom <=contHeight);
4125
+ var isPart = ((elemTop < 0 && elemBottom > 0 ) || (elemTop > 0 && elemTop <= container.height())) && partial;
4126
+
4127
+ return isTotal || isPart ;
4128
+ }
4129
+
4130
// Append section modal into body
4131
function pagelayer_add_section_area(){
4132
4142
'<div class="pagelayer-add-section-modal-holder">'+
4143
'<div class="pagelayer-add-section-modal">'+
4144
'<div class="pagelayer-add-section-modal-header">'+
4145
+ '<div>Add Sections</div>'+
4146
+ '<div class="pagelayer-section-type-div">Type : '+
4147
+ '<select name="type" id="pagelayer-section-type">'+
4148
+ '<option value="section">Sections</option>'+
4149
+ '<option value="header">Headers</option>'+
4150
+ '<option value="footer">Footers</option>'+
4151
+ '<option value="page">Pages</option>'+
4152
+ '</select>'+
4153
+ '</div>'+
4154
+ '<div class="pagelayer-add-section-modal-close">&times;</div>'+
4155
'</div>'+
4156
+ '<div class="pagelayer-add-section-modal-row">'+
4157
+ '<div class="pagelayer-add-section-modal-left">'+
4158
+ '<div class="pagelayer-section-search-div">'+
4159
+ '<i class="pli pli-search" /><input class="pagelayer-section-search" /><span class="pagelayer-sf-empty pli">&times;</span>'+
4160
+ '</div>'+
4161
+ '<div class="pagelayer-section-tags-holder"></div>'+
4162
+ '</div>'+
4163
+ '<div class="pagelayer-section-modal-body-holder">'+
4164
+ '<div class="pagelayer-add-section-modal-body"></div>'+
4165
+ '</div>'+
4166
'</div>'+
4167
'<div class="pagelayer-add-section-modal-overlay" style="display:none;">'+
4168
'<div class="pagelayer-section-wait">'+
4183
mEle.hide();
4184
});
4185
4186
+ // Search Empty
4187
+ mEle.find('.pagelayer-sf-empty').on('click', function(){
4188
+ mEle.find('.pagelayer-section-search').val('');
4189
+ });
4190
+
4191
+ // On click close modal
4192
+ mEle.find('#pagelayer-section-type').on('change', function(){
4193
+ var val = jQuery(this).val();
4194
+ pagelayer_add_sections_list_setup(val);
4195
+ });
4196
+
4197
// Append the list items into modal body
4198
pagelayer_add_sections_list_setup();
4199
4208
var add_area = jQuery('.pagelayer-add-widget-area');
4209
type = type || 'section';
4210
4211
+ var viewer = '<div class="pagelayer-section-is-visible" style="height:50px;"><div>';
4212
+ var selected_tags = {};
4213
+ var result_set = {};
4214
4215
// Create list of items
4216
var pagelayer_section_list = function(){
4217
4218
+ // List the tags
4219
+ if(!pagelayer_empty(pagelayer_add_section_data[type]['tags'])){
4220
+ var tags_html = '';
4221
+ var tags = pagelayer_add_section_data[type]['tags'];
4222
+ for(var k in tags){
4223
+ tags_html += '<span class="pagelayer-section-tags" tag="'+k+'">'+k+' ('+tags[k].length+')</span>';
4224
+ }
4225
+ mEle.find('.pagelayer-section-tags-holder').html(tags_html);
4226
+
4227
+ // Handle tag click
4228
+ mEle.find('.pagelayer-section-tags').unbind('click');
4229
+ mEle.find('.pagelayer-section-tags').on('click', function(e){
4230
+
4231
+ var search = mEle.find('.pagelayer-section-search');
4232
+
4233
+ // Blank the search
4234
+ if(search.val().length > 0){
4235
+ search.val('');
4236
+ selected_tags = {};
4237
+ }
4238
+
4239
+ // Fill the selected_tags
4240
+ tEle = jQuery(this);
4241
+ var tag = tEle.attr('tag')
4242
+
4243
+ if(tEle.attr('on') == '1'){
4244
+ delete selected_tags[tag];
4245
+ tEle.removeAttr('on');
4246
+ }else{
4247
+ tEle.attr('on', 1);
4248
+ selected_tags[tag] = 1;
4249
+ }
4250
+
4251
+ // Filter
4252
+ pagelayer_section_filter(false, 1);
4253
+
4254
+ });
4255
+ }
4256
+
4257
+ // Fill in the result
4258
+ result_set = { ...pagelayer_add_section_data[type]['list']};
4259
4260
+ show_result();
4261
+
4262
+ };
4263
+
4264
+ // How the result and setup scroll
4265
+ var show_result = function(){
4266
+
4267
+ // Blank the body
4268
+ mEle.find('.pagelayer-add-section-modal-body').html(viewer);
4269
+
4270
+ mEle.find('.pagelayer-section-modal-body-holder').on('scroll', pagelayer_section_body_scroll);
4271
+ pagelayer_section_body_scroll();
4272
+ }
4273
+
4274
+ var scroll_accessed = false;
4275
+
4276
+ // Section body ON scroll
4277
+ var pagelayer_section_body_scroll = function(){
4278
+
4279
+ // Check if there is anything to display in the first place, as we do delete pagelayer_add_section_data
4280
+ if(pagelayer_empty(result_set)){
4281
+ return;
4282
+ }
4283
+
4284
+ var tester = mEle.find('.pagelayer-section-is-visible');
4285
+ var modal = mEle.find('.pagelayer-section-modal-body-holder');
4286
+
4287
+ // If we have scroll
4288
+ if(!pagelayer_isElementInView(tester, modal) || scroll_accessed){
4289
+ return;
4290
+ }
4291
+
4292
+ scroll_accessed = true;
4293
+
4294
+ var html = '';
4295
+ var i = 0;
4296
+
4297
+ // Loop result_set
4298
+ for(var id in result_set){
4299
+
4300
+ if(i >= 10){
4301
+ break;
4302
+ }
4303
+
4304
+ i++;
4305
4306
+ var pro = 0;
4307
+
4308
+ // Is it pro ?
4309
+ if(!pagelayer_empty(result_set[id]) && pagelayer_empty(pagelayer_pro)){
4310
+ pro = 1;
4311
+ }
4312
4313
+ html += '<div class="pagelayer-section-item" pagelayer-add-section-id="'+id+'">'+
4314
+ '<img src="'+ pagelayer_add_section_data[type]['image_url'] + id +'/screenshot.jpg" alt="Pagelayer code screenshot">'+
4315
+ (pro ? '<div class="pagelayer-section-pro-req">Pro</div><div class="pagelayer-section-pro-txt">'+pagelayer.pro_txt+'</div>' : '')+
4316
'</div>';
4317
4318
+ delete result_set[id];
4319
+
4320
}
4321
+
4322
+ //console.log(result_set);
4323
+
4324
+ jQuery(html).insertBefore(tester);
4325
+
4326
mEle.find('.pagelayer-section-item').unbind('click');
4327
mEle.find('.pagelayer-section-item').on('click', function(e){
4328
pagelayer_section_item_clickable(jQuery(this));
4329
});
4330
4331
+ scroll_accessed = false;
4332
+
4333
+ }
4334
+
4335
+ // If we have searched something / or clicked tags
4336
+ var pagelayer_section_filter = function(event, not_input){
4337
+
4338
+ var txt = mEle.find('.pagelayer-section-search').val();
4339
+ var tags = pagelayer_add_section_data[type]['tags'];
4340
+
4341
+ // Searched anything
4342
+ if(!pagelayer_empty(txt) || pagelayer_empty(not_input)){
4343
+
4344
+ // Blank the tags
4345
+ selected_tags = {};
4346
+
4347
+ mEle.find('.pagelayer-section-tags').removeAttr('on');
4348
+
4349
+ for(var k in tags){
4350
+ if(k.search(txt) >= 0){
4351
+ selected_tags[k] = 1;
4352
+ mEle.find('.pagelayer-section-tags[tag='+k+']').attr('on', 1);
4353
+ }
4354
+ }
4355
+
4356
+ }
4357
+
4358
+ var new_result = {};
4359
+ var new_length = 0;
4360
+
4361
+ // Filter the content
4362
+ for(var t in selected_tags){
4363
+
4364
+ for(var i in tags[t]){
4365
+ new_length++;
4366
+ new_result[tags[t][i]] = tags[t][i];
4367
+ }
4368
+
4369
+ }
4370
+
4371
+ // Copy the result
4372
+ result_set = {...new_result};
4373
+ //console.log(type);console.log(selected_tags);console.log(result_set);
4374
+
4375
+ show_result();
4376
+
4377
+ }
4378
+
4379
+ // On search change
4380
+ mEle.find('.pagelayer-section-search').unbind('input');
4381
+ mEle.find('.pagelayer-section-search').on('input', pagelayer_section_filter);
4382
4383
// On click items
4384
var pagelayer_section_item_clickable = function(jEle){
4390
return false;
4391
}
4392
4393
+ if(jEle.find('.pagelayer-section-pro-req').length > 0){
4394
+ return false;
4395
+ }
4396
+
4397
// Show the overlay
4398
mEle.find('.pagelayer-add-section-modal-overlay').show();
4399
4406
'pagelayer_section_id': section_id,
4407
'pagelayer-live': 1
4408
},
4409
+ success: function(data) {
4410
4411
+ try{
4412
4413
+ var data = JSON.parse(data);
4414
+ var cEle = jQuery(data['code']);
4415
+
4416
+ // Add section before add widget area
4417
+ add_area.before(cEle);
4418
+
4419
+ // We need to it setup
4420
+ cEle.each(function(){
4421
+ var pl_id = pagelayer_id(jQuery(this));
4422
+
4423
+ if(!pagelayer_empty(pl_id)){
4424
+ pagelayer_element_setup('[pagelayer-id="'+pl_id+'"], [pagelayer-id='+pl_id+'] .pagelayer-ele', true);
4425
+ }
4426
+ });
4427
+
4428
+ }catch(e){
4429
+ alert('Error getting the section');
4430
+ mEle.find('.pagelayer-add-section-modal-overlay').hide();
4431
+ mEle.hide();
4432
+ return;
4433
+ }
4434
4435
},
4436
complete: function(){
4442
4443
// Load the data if not there
4444
if(!(type in pagelayer_add_section_data)){
4445
+
4446
+ // Show the loading
4447
+ mEle.find('.pagelayer-add-section-modal-overlay').show();
4448
+
4449
// Get the sections list data and append it
4450
jQuery.ajax({
4451
url: pagelayer_api_url+'/library.php?give='+type,
4463
// Create the Type
4464
pagelayer_section_list(type);
4465
4466
+ // Hide the loading
4467
+ mEle.find('.pagelayer-add-section-modal-overlay').hide();
4468
+
4469
+ },
4470
+ complete: function(){
4471
+ mEle.find('.pagelayer-add-section-modal-overlay').hide();
4472
}
4473
});
4474
4478
}
4479
}
4480
4481
+ // Upload an image
4482
+ function pagelayer_upload_image(fileName, blob, pagelayer_ajax_func){
4483
+
4484
+ var formData = new FormData();
4485
+ formData.append('action', 'upload-attachment');
4486
+ formData.append('_ajax_nonce', pagelayer_media_ajax_nonce);
4487
+ formData.append('async-upload', blob, fileName);
4488
+
4489
+ jQuery.ajax({
4490
+ url:pagelayer_ajax_url,
4491
+ data: formData,// the formData function is available in almost all new browsers.
4492
+ type:"post",
4493
+ contentType:false,
4494
+ processData:false,
4495
+ cache:false,
4496
+ beforeSend: function( xhr ) {
4497
+ if(typeof pagelayer_ajax_func.beforeSend == 'function'){
4498
+ pagelayer_ajax_func.beforeSend(xhr);
4499
+ }
4500
+ },
4501
+ error:function(err){
4502
+ //console.error(err);
4503
+ alert("Unable to upload image for some reason.");
4504
+ },
4505
+ success:function(response){
4506
+ var obj = jQuery.parseJSON(response);
4507
+ if(typeof pagelayer_ajax_func.success == 'function'){
4508
+ pagelayer_ajax_func.success(obj);
4509
+ }
4510
+ },
4511
+ complete:function(xhr){
4512
+ if(typeof pagelayer_ajax_func.complete == 'function'){
4513
+ pagelayer_ajax_func.complete(xhr);
4514
+ }
4515
+ }
4516
+ });
4517
+ };
4518
+
4519
// On editable area image paste handler
4520
function pagelayer_editable_paste_handler(pasteEvent, pagelayer_ajax_func){
4521
4544
// Convert it to a blob to upload
4545
var blob = pagelayer_b64toBlob(realData, contentType);
4546
4547
+ pagelayer_upload_image(fileName, blob, pagelayer_ajax_func);
4548
4549
}
4550
js/properties.js CHANGED
@@ -841,7 +841,7 @@ function pagelayer_elp_label(row, prop){
841
842
// Do we have pro version requirement ?
843
if('pro' in prop && pagelayer_empty(pagelayer_pro)){
844
- var txt = prop['pro'].length > 1 ? prop['pro'] : 'This feature is a part of <a href="'+pagelayer_pro_url+'" target="_blank">Pagelayer Pro</a>. You will need purchase <a href="'+pagelayer_pro_url+'" target="_blank">Pagelayer Pro</a> to use this feature.'
845
var pro = jQuery('<div class="pagelayer-pro-req">Pro</div>');
846
pro.attr('data-tlite', txt);
847
label.append(pro);
@@ -1079,7 +1079,7 @@ function pagelayer_elp_radio(row, prop){
1079
div += '<a class="pagelayer-elp-radio '+addclass+'" val="'+x+'">'+prop.list[x]+'</a>';
1080
}
1081
1082
- div += '<div>';
1083
1084
row.append(div);
1085
@@ -2031,10 +2031,27 @@ function pagelayer_elp_color(row, prop){
2031
doc: window.parent.document
2032
});
2033
2034
// Handle selected color
2035
- picker.onChange = function(color) {
2036
-
2037
- row.find('.pagelayer-elp-color-preview').removeClass('pagelayer-blank-preview').css('background', color.rgbaString);
2038
_pagelayer_set_atts(row, color.hex);// Save and Render
2039
};
2040
@@ -2043,7 +2060,8 @@ function pagelayer_elp_color(row, prop){
2043
row.find('.pagelayer-elp-remove-color').on('click', function(event){
2044
event.stopPropagation();
2045
picker.setColor(prop.default, true);
2046
- row.find('.pagelayer-elp-color-preview').addClass('pagelayer-blank-preview');
2047
_pagelayer_set_atts(row, ' ');// Save and Render
2048
})
2049
841
842
// Do we have pro version requirement ?
843
if('pro' in prop && pagelayer_empty(pagelayer_pro)){
844
+ var txt = prop['pro'].length > 1 ? prop['pro'] : pagelayer.pro_txt;
845
var pro = jQuery('<div class="pagelayer-pro-req">Pro</div>');
846
pro.attr('data-tlite', txt);
847
label.append(pro);
1079
div += '<a class="pagelayer-elp-radio '+addclass+'" val="'+x+'">'+prop.list[x]+'</a>';
1080
}
1081
1082
+ div += '</div>';
1083
1084
row.append(div);
1085
2031
doc: window.parent.document
2032
});
2033
2034
+ var preview = row.find('.pagelayer-elp-color-preview');
2035
+
2036
+ // If no val, then set blank
2037
+ if(pagelayer_empty(prop.c['val'])){
2038
+ preview.addClass('pagelayer-blank-preview');
2039
+ }
2040
+
2041
+ var handle_white = function(col){
2042
+ if(col.charAt(1) == 'f'){
2043
+ preview.addClass('pagelayer-white-border');
2044
+ }else{
2045
+ preview.removeClass('pagelayer-white-border');
2046
+ }
2047
+ }
2048
+
2049
+ handle_white(prop.c['val']);
2050
+
2051
// Handle selected color
2052
+ picker.onChange = function(color) {
2053
+ preview.removeClass('pagelayer-blank-preview').css('background', color.rgbaString);
2054
+ handle_white(color.hex);
2055
_pagelayer_set_atts(row, color.hex);// Save and Render
2056
};
2057
2060
row.find('.pagelayer-elp-remove-color').on('click', function(event){
2061
event.stopPropagation();
2062
picker.setColor(prop.default, true);
2063
+ preview.addClass('pagelayer-blank-preview');
2064
+ handle_white('');
2065
_pagelayer_set_atts(row, ' ');// Save and Render
2066
})
2067
js/shuffle.min.js ADDED
@@ -0,0 +1,2 @@
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Shuffle=e()}(this,function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function i(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}function n(t){return(n=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function o(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function r(){}r.prototype={on:function(t,e,i){var n=this.e||(this.e={});return(n[t]||(n[t]=[])).push({fn:e,ctx:i}),this},once:function(t,e,i){var n=this;function s(){n.off(t,s),e.apply(i,arguments)}return s._=e,this.on(t,s,i)},emit:function(t){for(var e=[].slice.call(arguments,1),i=((this.e||(this.e={}))[t]||[]).slice(),n=0,s=i.length;n<s;n++)i[n].fn.apply(i[n].ctx,e);return this},off:function(t,e){var i=this.e||(this.e={}),n=i[t],s=[];if(n&&e)for(var o=0,r=n.length;o<r;o++)n[o].fn!==e&&n[o].fn._!==e&&s.push(n[o]);return s.length?i[t]=s:delete i[t],this}};var l=r,a=r;l.TinyEmitter=a;var u="undefined"!=typeof Element?Element.prototype:{},h=u.matches||u.matchesSelector||u.webkitMatchesSelector||u.mozMatchesSelector||u.msMatchesSelector||u.oMatchesSelector,f=function(t,e){if(!t||1!==t.nodeType)return!1;if(h)return h.call(t,e);for(var i=t.parentNode.querySelectorAll(e),n=0;n<i.length;n++)if(i[n]==t)return!0;return!1};var c=function(t,e){var i,n,s,o,r=0;return function(){i=this,n=arguments;var t=new Date-r;return o||(t>=e?l():o=setTimeout(l,e-t)),s};function l(){o=0,r=+new Date,s=t.apply(i,n),i=null,n=null}};function d(){}function m(t){return parseFloat(t)||0}var p=function(){function e(i,n){t(this,e),this.x=m(i),this.y=m(n)}return i(e,null,[{key:"equals",value:function(t,e){return t.x===e.x&&t.y===e.y}}]),e}(),v=function(){function e(i,n,s,o,r){t(this,e),this.id=r,this.left=i,this.top=n,this.width=s,this.height=o}return i(e,null,[{key:"intersects",value:function(t,e){return t.left<e.left+e.width&&e.left<t.left+t.width&&t.top<e.top+e.height&&e.top<t.top+t.height}}]),e}(),y={BASE:"shuffle",SHUFFLE_ITEM:"shuffle-item",VISIBLE:"shuffle-item--visible",HIDDEN:"shuffle-item--hidden"},g=0,_=function(){function e(i){t(this,e),g+=1,this.id=g,this.element=i,this.isVisible=!0,this.isHidden=!1}return i(e,[{key:"show",value:function(){this.isVisible=!0,this.element.classList.remove(y.HIDDEN),this.element.classList.add(y.VISIBLE),this.element.removeAttribute("aria-hidden")}},{key:"hide",value:function(){this.isVisible=!1,this.element.classList.remove(y.VISIBLE),this.element.classList.add(y.HIDDEN),this.element.setAttribute("aria-hidden",!0)}},{key:"init",value:function(){this.addClasses([y.SHUFFLE_ITEM,y.VISIBLE]),this.applyCss(e.Css.INITIAL),this.scale=e.Scale.VISIBLE,this.point=new p}},{key:"addClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.add(t)})}},{key:"removeClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.remove(t)})}},{key:"applyCss",value:function(t){var e=this;Object.keys(t).forEach(function(i){e.element.style[i]=t[i]})}},{key:"dispose",value:function(){this.removeClasses([y.HIDDEN,y.VISIBLE,y.SHUFFLE_ITEM]),this.element.removeAttribute("style"),this.element=null}}]),e}();_.Css={INITIAL:{position:"absolute",top:0,left:0,visibility:"visible",willChange:"transform"},VISIBLE:{before:{opacity:1,visibility:"visible"},after:{transitionDelay:""}},HIDDEN:{before:{opacity:0},after:{visibility:"hidden",transitionDelay:""}}},_.Scale={VISIBLE:1,HIDDEN:.001};var E=null,I=function(){if(null!==E)return E;var t=document.body||document.documentElement,e=document.createElement("div");return e.style.cssText="width:10px;padding:2px;box-sizing:border-box;",t.appendChild(e),E="10px"===window.getComputedStyle(e,null).width,t.removeChild(e),E};function b(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.getComputedStyle(t,null),n=m(i[e]);return I()||"width"!==e?I()||"height"!==e||(n+=m(i.paddingTop)+m(i.paddingBottom)+m(i.borderTopWidth)+m(i.borderBottomWidth)):n+=m(i.paddingLeft)+m(i.paddingRight)+m(i.borderLeftWidth)+m(i.borderRightWidth),n}var S={reverse:!1,by:null,compare:null,randomize:!1,key:"element"};function T(t,e){var i=Object.assign({},S,e),n=Array.from(t),s=!1;return t.length?i.randomize?function(t){for(var e=t.length;e;){e-=1;var i=Math.floor(Math.random()*(e+1)),n=t[i];t[i]=t[e],t[e]=n}return t}(t):("function"==typeof i.by?t.sort(function(t,e){if(s)return 0;var n=i.by(t[i.key]),o=i.by(e[i.key]);return void 0===n&&void 0===o?(s=!0,0):n<o||"sortFirst"===n||"sortLast"===o?-1:n>o||"sortLast"===n||"sortFirst"===o?1:0}):"function"==typeof i.compare&&t.sort(i.compare),s?n:(i.reverse&&t.reverse(),t)):[]}var k={},w="transitionend",C=0;function L(t){return!!k[t]&&(k[t].element.removeEventListener(w,k[t].listener),k[t]=null,!0)}function D(t,e){var i=w+(C+=1),n=function(t){t.currentTarget===t.target&&(L(i),e(t))};return t.addEventListener(w,n),k[i]={element:t,listener:n},i}function z(t){return Math.max.apply(Math,t)}function M(t,e,i,n){var s=t/e;return Math.abs(Math.round(s)-s)<n&&(s=Math.round(s)),Math.min(Math.ceil(s),i)}function A(t,e,i){if(1===e)return t;for(var n=[],s=0;s<=i-e;s++)n.push(z(t.slice(s,s+e)));return n}function F(t,e){for(var i,n=(i=t,Math.min.apply(Math,i)),s=0,o=t.length;s<o;s++)if(t[s]>=n-e&&t[s]<=n+e)return s;return 0}function x(t,e){var i={};t.forEach(function(t){i[t.top]?i[t.top].push(t):i[t.top]=[t]});var n=[],s=[],o=[];return Object.keys(i).forEach(function(t){var r=i[t];s.push(r);var l,a=r[r.length-1],u=a.left+a.width,h=Math.round((e-u)/2),f=r,c=!1;if(h>0){var d=[];(c=r.every(function(t){var e=new v(t.left+h,t.top,t.width,t.height,t.id),i=!n.some(function(t){return v.intersects(e,t)});return d.push(e),i}))&&(f=d)}if(!c&&r.some(function(t){return n.some(function(e){var i=v.intersects(t,e);return i&&(l=e),i})})){var m=o.findIndex(function(t){return t.includes(l)});o.splice(m,1,s[m])}n=n.concat(f),o.push(f)}),[].concat.apply([],o).sort(function(t,e){return t.id-e.id}).map(function(t){return new p(t.left,t.top)})}function O(t){return Array.from(new Set(t))}var N=0,H=function(e){function r(e){var i,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t(this,r),(i=o(this,n(r).call(this))).options=Object.assign({},r.options,s),i.options.delimeter&&(i.options.delimiter=i.options.delimeter),i.lastSort={},i.group=r.ALL_ITEMS,i.lastFilter=r.ALL_ITEMS,i.isEnabled=!0,i.isDestroyed=!1,i.isInitialized=!1,i._transitions=[],i.isTransitioning=!1,i._queue=[];var l=i._getElementOption(e);if(!l)throw new TypeError("Shuffle needs to be initialized with an element.");return i.element=l,i.id="shuffle_"+N,N+=1,i._init(),i.isInitialized=!0,i}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)}(r,l),i(r,[{key:"_init",value:function(){if(this.items=this._getItems(),this.options.sizer=this._getElementOption(this.options.sizer),this.element.classList.add(r.Classes.BASE),this._initItems(this.items),this._onResize=this._getResizeFunction(),window.addEventListener("resize",this._onResize),"complete"!==document.readyState){var t=this.layout.bind(this);window.addEventListener("load",function e(){window.removeEventListener("load",e),t()})}var e=window.getComputedStyle(this.element,null),i=r.getSize(this.element).width;this._validateStyles(e),this._setColumns(i),this.filter(this.options.group,this.options.initialSort),this.element.offsetWidth,this.setItemTransitions(this.items),this.element.style.transition="height ".concat(this.options.speed,"ms ").concat(this.options.easing)}},{key:"_getResizeFunction",value:function(){var t=this._handleResize.bind(this);return this.options.throttle?this.options.throttle(t,this.options.throttleTime):t}},{key:"_getElementOption",value:function(t){return"string"==typeof t?this.element.querySelector(t):t&&t.nodeType&&1===t.nodeType?t:t&&t.jquery?t[0]:null}},{key:"_validateStyles",value:function(t){"static"===t.position&&(this.element.style.position="relative"),"hidden"!==t.overflow&&(this.element.style.overflow="hidden")}},{key:"_filter",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lastFilter,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.items,i=this._getFilteredSets(t,e);return this._toggleFilterClasses(i),this.lastFilter=t,"string"==typeof t&&(this.group=t),i}},{key:"_getFilteredSets",value:function(t,e){var i=this,n=[],s=[];return t===r.ALL_ITEMS?n=e:e.forEach(function(e){i._doesPassFilter(t,e.element)?n.push(e):s.push(e)}),{visible:n,hidden:s}}},{key:"_doesPassFilter",value:function(t,e){if("function"==typeof t)return t.call(e,e,this);var i=e.getAttribute("data-"+r.FILTER_ATTRIBUTE_KEY),n=this.options.delimiter?i.split(this.options.delimiter):JSON.parse(i);function s(t){return n.includes(t)}return Array.isArray(t)?this.options.filterMode===r.FilterMode.ANY?t.some(s):t.every(s):n.includes(t)}},{key:"_toggleFilterClasses",value:function(t){var e=t.visible,i=t.hidden;e.forEach(function(t){t.show()}),i.forEach(function(t){t.hide()})}},{key:"_initItems",value:function(t){t.forEach(function(t){t.init()})}},{key:"_disposeItems",value:function(t){t.forEach(function(t){t.dispose()})}},{key:"_updateItemCount",value:function(){this.visibleItems=this._getFilteredItems().length}},{key:"setItemTransitions",value:function(t){var e=this.options,i=e.speed,n=e.easing,s=this.options.useTransforms?["transform"]:["top","left"],o=Object.keys(_.Css.HIDDEN.before).map(function(t){return t.replace(/([A-Z])/g,function(t,e){return"-".concat(e.toLowerCase())})}),r=s.concat(o).join();t.forEach(function(t){t.element.style.transitionDuration=i+"ms",t.element.style.transitionTimingFunction=n,t.element.style.transitionProperty=r})}},{key:"_getItems",value:function(){var t=this;return Array.from(this.element.children).filter(function(e){return f(e,t.options.itemSelector)}).map(function(t){return new _(t)})}},{key:"_mergeNewItems",value:function(t){var e=Array.from(this.element.children);return T(this.items.concat(t),{by:function(t){return e.indexOf(t)}})}},{key:"_getFilteredItems",value:function(){return this.items.filter(function(t){return t.isVisible})}},{key:"_getConcealedItems",value:function(){return this.items.filter(function(t){return!t.isVisible})}},{key:"_getColumnSize",value:function(t,e){var i;return 0===(i="function"==typeof this.options.columnWidth?this.options.columnWidth(t):this.options.sizer?r.getSize(this.options.sizer).width:this.options.columnWidth?this.options.columnWidth:this.items.length>0?r.getSize(this.items[0].element,!0).width:t)&&(i=t),i+e}},{key:"_getGutterSize",value:function(t){return"function"==typeof this.options.gutterWidth?this.options.gutterWidth(t):this.options.sizer?b(this.options.sizer,"marginLeft"):this.options.gutterWidth}},{key:"_setColumns",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r.getSize(this.element).width,e=this._getGutterSize(t),i=this._getColumnSize(t,e),n=(t+e)/i;Math.abs(Math.round(n)-n)<this.options.columnThreshold&&(n=Math.round(n)),this.cols=Math.max(Math.floor(n||0),1),this.containerWidth=t,this.colWidth=i}},{key:"_setContainerSize",value:function(){this.element.style.height=this._getContainerSize()+"px"}},{key:"_getContainerSize",value:function(){return z(this.positions)}},{key:"_getStaggerAmount",value:function(t){return Math.min(t*this.options.staggerAmount,this.options.staggerAmountMax)}},{key:"_dispatch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.isDestroyed||(e.shuffle=this,this.emit(t,e))}},{key:"_resetCols",value:function(){var t=this.cols;for(this.positions=[];t;)t-=1,this.positions.push(0)}},{key:"_layout",value:function(t){var e=this,i=this._getNextPositions(t),n=0;t.forEach(function(t,s){function o(){t.applyCss(_.Css.VISIBLE.after)}if(p.equals(t.point,i[s])&&!t.isHidden)return t.applyCss(_.Css.VISIBLE.before),void o();t.point=i[s],t.scale=_.Scale.VISIBLE,t.isHidden=!1;var r=e.getStylesForTransition(t,_.Css.VISIBLE.before);r.transitionDelay=e._getStaggerAmount(n)+"ms",e._queue.push({item:t,styles:r,callback:o}),n+=1})}},{key:"_getNextPositions",value:function(t){var e=this;if(this.options.isCentered){var i=t.map(function(t,i){var n=r.getSize(t.element,!0),s=e._getItemPosition(n);return new v(s.x,s.y,n.width,n.height,i)});return this.getTransformedPositions(i,this.containerWidth)}return t.map(function(t){return e._getItemPosition(r.getSize(t.element,!0))})}},{key:"_getItemPosition",value:function(t){return function(t){for(var e=t.itemSize,i=t.positions,n=t.gridSize,s=t.total,o=t.threshold,r=t.buffer,l=M(e.width,n,s,o),a=A(i,l,s),u=F(a,r),h=new p(n*u,a[u]),f=a[u]+e.height,c=0;c<l;c++)i[u+c]=f;return h}({itemSize:t,positions:this.positions,gridSize:this.colWidth,total:this.cols,threshold:this.options.columnThreshold,buffer:this.options.buffer})}},{key:"getTransformedPositions",value:function(t,e){return x(t,e)}},{key:"_shrink",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._getConcealedItems(),i=0;e.forEach(function(e){function n(){e.applyCss(_.Css.HIDDEN.after)}if(e.isHidden)return e.applyCss(_.Css.HIDDEN.before),void n();e.scale=_.Scale.HIDDEN,e.isHidden=!0;var s=t.getStylesForTransition(e,_.Css.HIDDEN.before);s.transitionDelay=t._getStaggerAmount(i)+"ms",t._queue.push({item:e,styles:s,callback:n}),i+=1})}},{key:"_handleResize",value:function(){this.isEnabled&&!this.isDestroyed&&this.update()}},{key:"getStylesForTransition",value:function(t,e){var i=Object.assign({},e);if(this.options.useTransforms){var n=this.options.roundTransforms?Math.round(t.point.x):t.point.x,s=this.options.roundTransforms?Math.round(t.point.y):t.point.y;i.transform="translate(".concat(n,"px, ").concat(s,"px) scale(").concat(t.scale,")")}else i.left=t.point.x+"px",i.top=t.point.y+"px";return i}},{key:"_whenTransitionDone",value:function(t,e,i){var n=D(t,function(t){e(),i(null,t)});this._transitions.push(n)}},{key:"_getTransitionFunction",value:function(t){var e=this;return function(i){t.item.applyCss(t.styles),e._whenTransitionDone(t.item.element,t.callback,i)}}},{key:"_processQueue",value:function(){this.isTransitioning&&this._cancelMovement();var t=this.options.speed>0,e=this._queue.length>0;e&&t&&this.isInitialized?this._startTransitions(this._queue):e?(this._styleImmediately(this._queue),this._dispatch(r.EventType.LAYOUT)):this._dispatch(r.EventType.LAYOUT),this._queue.length=0}},{key:"_startTransitions",value:function(t){var e=this;this.isTransitioning=!0,function(t,e,i){i||("function"==typeof e?(i=e,e=null):i=d);var n=t&&t.length;if(!n)return i(null,[]);var s=!1,o=new Array(n);function r(t){return function(e,r){if(!s){if(e)return i(e,o),void(s=!0);o[t]=r,--n||i(null,o)}}}t.forEach(e?function(t,i){t.call(e,r(i))}:function(t,e){t(r(e))})}(t.map(function(t){return e._getTransitionFunction(t)}),this._movementFinished.bind(this))}},{key:"_cancelMovement",value:function(){this._transitions.forEach(L),this._transitions.length=0,this.isTransitioning=!1}},{key:"_styleImmediately",value:function(t){if(t.length){var e=t.map(function(t){return t.item.element});r._skipTransitions(e,function(){t.forEach(function(t){t.item.applyCss(t.styles),t.callback()})})}}},{key:"_movementFinished",value:function(){this._transitions.length=0,this.isTransitioning=!1,this._dispatch(r.EventType.LAYOUT)}},{key:"filter",value:function(t,e){this.isEnabled&&((!t||t&&0===t.length)&&(t=r.ALL_ITEMS),this._filter(t),this._shrink(),this._updateItemCount(),this.sort(e))}},{key:"sort",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lastSort;if(this.isEnabled){this._resetCols();var e=T(this._getFilteredItems(),t);this._layout(e),this._processQueue(),this._setContainerSize(),this.lastSort=t}}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isEnabled&&(t||this._setColumns(),this.sort())}},{key:"layout",value:function(){this.update(!0)}},{key:"add",value:function(t){var e=this,i=O(t).map(function(t){return new _(t)});this._initItems(i),this._resetCols();var n=T(this._mergeNewItems(i),this.lastSort),s=this._filter(this.lastFilter,n),o=function(t){return i.includes(t)},r=function(t){t.scale=_.Scale.HIDDEN,t.isHidden=!0,t.applyCss(_.Css.HIDDEN.before),t.applyCss(_.Css.HIDDEN.after)},l=this._getNextPositions(s.visible);s.visible.forEach(function(t,i){o(t)&&(t.point=l[i],r(t),t.applyCss(e.getStylesForTransition(t,{})))}),s.hidden.forEach(function(t){o(t)&&r(t)}),this.element.offsetWidth,this.setItemTransitions(i),this.items=this._mergeNewItems(i),this.filter(this.lastFilter)}},{key:"disable",value:function(){this.isEnabled=!1}},{key:"enable",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.isEnabled=!0,t&&this.update()}},{key:"remove",value:function(t){var e=this;if(t.length){var i=O(t),n=i.map(function(t){return e.getItemByElement(t)}).filter(function(t){return!!t});this._toggleFilterClasses({visible:[],hidden:n}),this._shrink(n),this.sort(),this.items=this.items.filter(function(t){return!n.includes(t)}),this._updateItemCount(),this.once(r.EventType.LAYOUT,function(){e._disposeItems(n),i.forEach(function(t){t.parentNode.removeChild(t)}),e._dispatch(r.EventType.REMOVED,{collection:i})})}}},{key:"getItemByElement",value:function(t){return this.items.find(function(e){return e.element===t})}},{key:"resetItems",value:function(){var t=this;this._disposeItems(this.items),this.isInitialized=!1,this.items=this._getItems(),this._initItems(this.items),this.once(r.EventType.LAYOUT,function(){t.setItemTransitions(t.items),t.isInitialized=!0}),this.filter(this.lastFilter)}},{key:"destroy",value:function(){this._cancelMovement(),window.removeEventListener("resize",this._onResize),this.element.classList.remove("shuffle"),this.element.removeAttribute("style"),this._disposeItems(this.items),this.items.length=0,this._transitions.length=0,this.options.sizer=null,this.element=null,this.isDestroyed=!0,this.isEnabled=!1}}],[{key:"getSize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=window.getComputedStyle(t,null),n=b(t,"width",i),s=b(t,"height",i);if(e){var o=b(t,"marginLeft",i),r=b(t,"marginRight",i),l=b(t,"marginTop",i),a=b(t,"marginBottom",i);n+=o+r,s+=l+a}return{width:n,height:s}}},{key:"_skipTransitions",value:function(t,e){var i=t.map(function(t){var e=t.style,i=e.transitionDuration,n=e.transitionDelay;return e.transitionDuration="0ms",e.transitionDelay="0ms",{duration:i,delay:n}});e(),t[0].offsetWidth,t.forEach(function(t,e){t.style.transitionDuration=i[e].duration,t.style.transitionDelay=i[e].delay})}}]),r}();return H.ShuffleItem=_,H.ALL_ITEMS="all",H.FILTER_ATTRIBUTE_KEY="groups",H.EventType={LAYOUT:"shuffle:layout",REMOVED:"shuffle:removed"},H.Classes=y,H.FilterMode={ANY:"any",ALL:"all"},H.options={group:H.ALL_ITEMS,speed:250,easing:"cubic-bezier(0.4, 0.0, 0.2, 1)",itemSelector:"*",sizer:null,gutterWidth:0,columnWidth:0,delimiter:null,buffer:0,columnThreshold:.01,initialSort:null,throttle:c,throttleTime:300,staggerAmount:15,staggerAmountMax:150,useTransforms:!0,filterMode:H.FilterMode.ANY,isCentered:!1,roundTransforms:!0},H.Point=p,H.Rect=v,H.__sorter=T,H.__getColumnSpan=M,H.__getAvailablePositions=A,H.__getShortColumn=F,H.__getCenteredPositions=x,H});
2
+ //# sourceMappingURL=shuffle.min.js.map
main/ajax.php CHANGED
@@ -231,13 +231,17 @@ function pagelayer_givejs(){
231
// Shortcodes Widget Handler
232
add_action('wp_ajax_pagelayer_get_section_shortcodes', 'pagelayer_get_section_shortcodes');
233
function pagelayer_get_section_shortcodes(){
234
-
235
// Some AJAX security
236
check_ajax_referer('pagelayer_ajax', 'pagelayer_nonce');
237
238
$data = '';
239
if(isset($_REQUEST['pagelayer_section_id'])){
240
- $data = json_decode(file_get_contents(PAGELAYER_API.'/library.php?give_id='.$_REQUEST['pagelayer_section_id']), true);
241
}
242
243
if(isset($_REQUEST['postID'])){
@@ -251,6 +255,31 @@ function pagelayer_get_section_shortcodes(){
251
}
252
}
253
}
254
255
// Load shortcodes
256
pagelayer_load_shortcodes();
231
// Shortcodes Widget Handler
232
add_action('wp_ajax_pagelayer_get_section_shortcodes', 'pagelayer_get_section_shortcodes');
233
function pagelayer_get_section_shortcodes(){
234
+
235
+ global $pagelayer;
236
+
237
// Some AJAX security
238
check_ajax_referer('pagelayer_ajax', 'pagelayer_nonce');
239
240
$data = '';
241
if(isset($_REQUEST['pagelayer_section_id'])){
242
+ $get_url = PAGELAYER_API.'/library.php?give_id='.$_REQUEST['pagelayer_section_id'].(!empty($pagelayer->license['license']) ? '&license='.$pagelayer->license['license'] : '');
243
+ $fetch = file_get_contents($get_url);
244
+ $data = json_decode($fetch, true);
245
}
246
247
if(isset($_REQUEST['postID'])){
255
}
256
}
257
}
258
+
259
+ // Upload the images if any in the shortcode
260
+ preg_match_all('/"'.preg_quote('{{pl_lib_images}}', '/').'([^"]*)"/is', $data['code'], $matches);
261
+
262
+ foreach($matches[0] as $k => $v){
263
+ $image_url = trim($v, '"\'');
264
+ $urls[$image_url] = $image_url;
265
+ }
266
+
267
+ foreach($urls as $k => $image_url){
268
+
269
+ $file = basename($image_url);
270
+ $id = 0;
271
+
272
+ // Upload this
273
+ if(!empty($data[$file])){
274
+
275
+ $id = pagelayer_upload_media($file, base64_decode($data[$file]));
276
+
277
+ if(!empty($id)){
278
+ $data['code'] = str_replace('"'.$image_url.'"', '"'.$id.'"', $data['code']);
279
+ }
280
+ }
281
+
282
+ }
283
284
// Load shortcodes
285
pagelayer_load_shortcodes();
main/functions.php CHANGED
@@ -1776,4 +1776,63 @@ function pagelayer_get_option($opt){
1776
}
1777
1778
return $ret;
1779
}
1776
}
1777
1778
return $ret;
1779
+ }
1780
+
1781
+ // Uploads an image / media
1782
+ function pagelayer_upload_media($filename, $blob){
1783
+
1784
+ $md5 = md5($blob);
1785
+
1786
+ // Do we have this image
1787
+ $args = array(
1788
+ 'post_type' => 'attachment',
1789
+ 'post_status' => 'inherit',
1790
+ 'meta_query' => array(
1791
+ array(
1792
+ 'key' => 'pagelayer_image_md5',
1793
+ 'value' => $md5,
1794
+ )
1795
+ )
1796
+ );
1797
+
1798
+ $query = new WP_Query($args);
1799
+
1800
+ // If we found the image, return
1801
+ foreach($query->posts as $ck => $cv){
1802
+ return $cv->ID;
1803
+ }
1804
+
1805
+ $upload = wp_upload_bits($filename, null, $blob);
1806
+
1807
+ if( !empty( $upload['error'] ) ) {
1808
+ return false;
1809
+ }
1810
+
1811
+ $file_path = $upload['file'];
1812
+ $file_name = basename( $file_path );
1813
+ $file_type = wp_check_filetype( $file_name, null );
1814
+ $attachment_title = sanitize_file_name( pathinfo( $file_name, PATHINFO_FILENAME ) );
1815
+ $wp_upload_dir = wp_upload_dir();
1816
+
1817
+ $post_info = array(
1818
+ 'guid' => $wp_upload_dir['url'] . '/' . $file_name,
1819
+ 'post_mime_type' => $file_type['type'],
1820
+ 'post_title' => $attachment_title,
1821
+ 'post_content' => '',
1822
+ 'post_status' => 'inherit',
1823
+ );
1824
+
1825
+ $attach_id = wp_insert_attachment( $post_info, $file_path, $parent_post_id );
1826
+ update_post_meta($attach_id, 'pagelayer_image_md5', $md5);
1827
+
1828
+ $lib = ABSPATH . 'site-admin/includes/image.php';
1829
+ $lib = file_exists($lib) ? $lib : ABSPATH . 'wp-admin/includes/image.php';
1830
+
1831
+ require_once($lib);
1832
+
1833
+ $attach_data = wp_generate_attachment_metadata( $attach_id, $file_path );
1834
+ wp_update_attachment_metadata( $attach_id, $attach_data );
1835
+
1836
+ return $attach_id;
1837
+
1838
}
main/settings.php CHANGED
@@ -119,8 +119,11 @@ function pagelayer_page_footer(){
119
echo '
120
</tr>
121
</table>
122
- <br />
123
- <div style="width:45%;background:#FFF;padding:15px; margin:auto">
124
<b>Let your followers know that you use Pagelayer to build your website :</b>
125
<form method="get" action="https://twitter.com/intent/tweet" id="tweet" onsubmit="return dotweet(this);">
126
<textarea name="text" cols="45" row="3" style="resize:none;">I easily built my #WordPress #site using @pagelayer</textarea>
@@ -138,8 +141,11 @@ function pagelayer_page_footer(){
138
</script>
139
140
<hr />
141
- <a href="'.PAGELAYER_WWW_URL.'" target="_blank">Pagelayer</a> v'.PAGELAYER_VERSION.'. '.(empty($GLOBALS['sitepad']) ? 'You can report any bugs <a href="http://wordpress.org/support/plugin/pagelayer" target="_blank">here</a>.' : '').'
142
143
</div>
144
</div>
145
</div>
119
echo '
120
</tr>
121
</table>
122
+ <br />';
123
+
124
+ if(empty($GLOBALS['sitepad'])){
125
+
126
+ echo '<div style="width:45%;background:#FFF;padding:15px; margin:auto">
127
<b>Let your followers know that you use Pagelayer to build your website :</b>
128
<form method="get" action="https://twitter.com/intent/tweet" id="tweet" onsubmit="return dotweet(this);">
129
<textarea name="text" cols="45" row="3" style="resize:none;">I easily built my #WordPress #site using @pagelayer</textarea>
141
</script>
142
143
<hr />
144
+ <a href="'.PAGELAYER_WWW_URL.'" target="_blank">Pagelayer</a> v'.PAGELAYER_VERSION.' You can report any bugs <a href="http://wordpress.org/support/plugin/pagelayer" target="_blank">here</a>.';
145
+
146
+ }
147
148
+ echo '
149
</div>
150
</div>
151
</div>
pagelayer.php CHANGED
@@ -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: 1.0.6
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.7
7
Author: Pagelayer Team
8
Author URI: https://pagelayer.com/
9
License: LGPL v2.1
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: pagelayer
3
Tags: page builder, editor, landing page, drag-and-drop, pagelayer, form-builder, popup, widgets, 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.3
6
- Requires PHP: 5.4
7
- Stable tag: 1.0.6
8
License: LGPL v2.1
9
License URI: http://www.gnu.org/licenses/lgpl-2.1.html
10
@@ -109,6 +109,11 @@ Do you have questions related to PageLayer ? Use the following links :
109
110
== Changelog ==
111
112
= 1.0.6 (February 20, 2020) =
113
* [Feature] Added settings for widgets - Contact Email, Phone, Address. You can specify these defaults and it will be changed throughout the website.
114
* [Feature] Added keyboard options Ctrl+S to update posts.
3
Tags: page builder, editor, landing page, drag-and-drop, pagelayer, form-builder, popup, widgets, 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.3
6
+ Requires PHP: 5.5
7
+ Stable tag: 1.0.7
8
License: LGPL v2.1
9
License URI: http://www.gnu.org/licenses/lgpl-2.1.html
10
109
110
== Changelog ==
111
112
+ = 1.0.7 (March 3, 2020) =
113
+ * [Feature] The Add New Section code is now working. We have added 10 blocks and more are on the way.
114
+ * [Task] Improved the layout of the color selector. Also when no color is selected, the color box will show blank space instead of white color.
115
+ * [Task] Some more improvement has been done to the Pagelayer Widget Settings UI.
116
+
117
= 1.0.6 (February 20, 2020) =
118
* [Feature] Added settings for widgets - Contact Email, Phone, Address. You can specify these defaults and it will be changed throughout the website.
119
* [Feature] Added keyboard options Ctrl+S to update posts.