Page Builder by SiteOrigin - Version 2.5.0

Version Description

Download this release

Release Info

Developer gpriday
Plugin Icon 128x128 Page Builder by SiteOrigin
Version 2.5.0
Comparing to
See all releases

Code changes from version 2.4.25 to 2.5.0

Files changed (58) hide show
  1. css/admin.css +315 -124
  2. css/front.css +19 -12
  3. css/icons/panels-icons.eot +0 -0
  4. css/icons/panels-icons.svg +19 -0
  5. css/icons/panels-icons.ttf +0 -0
  6. css/icons/panels-icons.woff +0 -0
  7. inc/admin-widget-dialog.php +191 -0
  8. inc/admin-widgets-bundle.php +143 -0
  9. inc/admin.php +1280 -0
  10. inc/cache-renderer.php +153 -0
  11. inc/css-builder.php +241 -0
  12. inc/data/widgets-bundle.php +76 -0
  13. inc/functions.php +74 -0
  14. inc/home.php +54 -0
  15. inc/live-editor.php +80 -50
  16. inc/post-content-filters.php +83 -0
  17. inc/renderer.php +782 -0
  18. inc/revisions.php +85 -55
  19. inc/settings.php +607 -0
  20. inc/sidebars-emulator.php +66 -29
  21. inc/styles-admin.php +469 -0
  22. inc/styles.php +564 -336
  23. inc/widget-shortcode.php +124 -0
  24. js/live-editor/live-editor-front.min.js +1 -1
  25. js/siteorigin-panels-24.min.js +0 -3
  26. js/{siteorigin-panels-24.js → siteorigin-panels-25.js} +1680 -862
  27. js/siteorigin-panels-25.min.js +4 -0
  28. js/siteorigin-parallax.min.js +1 -1
  29. js/{styling-24.js → styling-25.js} +8 -3
  30. js/{styling-24.min.js → styling-25.min.js} +1 -1
  31. lang/siteorigin-panels-af_ZA.mo +0 -0
  32. lang/siteorigin-panels-af_ZA.po +0 -1270
  33. lang/siteorigin-panels-bg_BG.mo +0 -0
  34. lang/siteorigin-panels-bg_BG.po +0 -1267
  35. lang/siteorigin-panels-da_DK.mo +0 -0
  36. lang/siteorigin-panels-da_DK.po +0 -1265
  37. lang/siteorigin-panels-de_DE.mo +0 -0
  38. lang/siteorigin-panels-de_DE.po +0 -1269
  39. lang/siteorigin-panels-es_ES.mo +0 -0
  40. lang/siteorigin-panels-es_ES.po +0 -1265
  41. lang/siteorigin-panels-fi_FI.mo +0 -0
  42. lang/siteorigin-panels-fi_FI.po +0 -1264
  43. lang/siteorigin-panels-fr_FR.mo +0 -0
  44. lang/siteorigin-panels-fr_FR.po +0 -1267
  45. lang/siteorigin-panels-hi_IN.mo +0 -0
  46. lang/siteorigin-panels-hi_IN.po +0 -1267
  47. lang/siteorigin-panels-it_IT.mo +0 -0
  48. lang/siteorigin-panels-it_IT.po +0 -1270
  49. lang/siteorigin-panels-ja_JP.mo +0 -0
  50. lang/siteorigin-panels-ja_JP.po +0 -1279
  51. lang/siteorigin-panels-nl_NL.mo +0 -0
  52. lang/siteorigin-panels-nl_NL.po +0 -1283
  53. lang/siteorigin-panels-pl_PL.mo +0 -0
  54. lang/siteorigin-panels-pl_PL.po +0 -1265
  55. lang/siteorigin-panels-pt_BR.mo +0 -0
  56. lang/siteorigin-panels-pt_BR.po +0 -1264
  57. lang/siteorigin-panels-ru_RU.mo +0 -0
  58. lang/siteorigin-panels-ru_RU.po +0 -1237
css/admin.css CHANGED
@@ -1,7 +1,7 @@
1
  @font-face {
2
- font-family: 'siteorigin-panels';
3
- src: url('icons/siteorigin-panels.eot');
4
- src: url('icons/siteorigin-panels.eot') format('embedded-opentype'), url('icons/siteorigin-panels.woff') format('woff'), url('icons/siteorigin-panels.ttf') format('truetype'), url('icons/siteorigin-panels.svg') format('svg');
5
  font-weight: normal;
6
  font-style: normal;
7
  }
@@ -24,34 +24,31 @@
24
  .siteorigin-panels-builder {
25
  position: relative;
26
  /* These are generic iconic buttons used in the page builder interface */
27
- /* Page Builder icons */
28
  }
29
  .siteorigin-panels-builder .so-tool-button {
30
  padding: 6px 7px;
31
- font-size: 11px;
32
  text-decoration: none;
33
- line-height: 0.9em;
34
  float: left;
35
  margin-right: 2px;
36
  display: block;
37
  visibility: visible;
38
  position: relative;
39
  cursor: pointer;
40
- border: 1px solid #C0C0C0;
41
- background: #F0F0F0;
42
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #F0F0F0), color-stop(1, #F9F9F9));
43
- background: -ms-linear-gradient(bottom, #F0F0F0, #F9F9F9);
44
- background: -moz-linear-gradient(center bottom, #F0F0F0 0%, #F9F9F9 100%);
45
- background: -o-linear-gradient(#F9F9F9, #F0F0F0);
46
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F9F9F9', endColorstr='#F0F0F0', GradientType=0);
47
- -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04), inset 0 1px 0 #FFF;
48
- -moz-box-shadow: 0 1px 1px rgba(0,0,0,0.04), inset 0 1px 0 #FFF;
49
- box-shadow: 0 1px 1px rgba(0,0,0,0.04), inset 0 1px 0 #FFF;
50
  outline: none;
51
- -webkit-border-radius: 2px;
52
- -moz-border-radius: 2px;
53
  border-radius: 2px;
54
  }
 
 
 
55
  .siteorigin-panels-builder .so-tool-button span {
56
  display: inline-block;
57
  color: #666666;
@@ -65,18 +62,6 @@
65
  .siteorigin-panels-builder .so-tool-button:hover span {
66
  color: #444444;
67
  }
68
- .siteorigin-panels-builder .so-tool-button.so-siteorigin-premium,
69
- .siteorigin-panels-builder .so-tool-button.so-learn {
70
- background: #ebebeb;
71
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ebebeb), color-stop(1, #f3f3f3));
72
- background: -ms-linear-gradient(bottom, #ebebeb, #f3f3f3);
73
- background: -moz-linear-gradient(center bottom, #ebebeb 0%, #f3f3f3 100%);
74
- background: -o-linear-gradient(#f3f3f3, #ebebeb);
75
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3f3f3', endColorstr='#ebebeb', GradientType=0);
76
- -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04), inset 0 1px 0 #FFF, inset 0 -1px rgba(0,0,0,0.05);
77
- -moz-box-shadow: 0 1px 1px rgba(0,0,0,0.04), inset 0 1px 0 #FFF, inset 0 -1px rgba(0,0,0,0.05);
78
- box-shadow: 0 1px 1px rgba(0,0,0,0.04), inset 0 1px 0 #FFF, inset 0 -1px rgba(0,0,0,0.05);
79
- }
80
  .siteorigin-panels-builder .so-builder-toolbar {
81
  -ms-box-sizing: border-box;
82
  -moz-box-sizing: border-box;
@@ -107,23 +92,39 @@
107
  display: table;
108
  clear: both;
109
  }
110
- .siteorigin-panels-builder .so-builder-toolbar > .so-tool-button {
111
  display: inline-block;
112
  color: #666666;
113
- padding-right: 8px;
 
 
 
 
114
  }
115
- .siteorigin-panels-builder .so-builder-toolbar > .so-tool-button .so-panels-icon {
116
  float: left;
117
- margin: 0 5px 0 0;
 
 
118
  }
119
- .siteorigin-panels-builder .so-builder-toolbar > .so-tool-button:hover {
 
120
  color: #444444;
121
  }
 
 
 
 
 
 
 
 
 
 
 
122
  .siteorigin-panels-builder .so-builder-toolbar .so-switch-to-standard {
123
- position: absolute;
124
- top: 5px;
125
- right: 10px;
126
  cursor: pointer;
 
127
  display: none;
128
  text-decoration: none;
129
  color: #666666;
@@ -132,7 +133,6 @@
132
  -moz-border-radius: 2px;
133
  border-radius: 2px;
134
  border: 1px solid transparent;
135
- margin-top: 2px;
136
  font-size: 11px;
137
  }
138
  .siteorigin-panels-builder .so-builder-toolbar .so-switch-to-standard:hover {
@@ -143,6 +143,110 @@
143
  .siteorigin-panels-builder .so-rows-container {
144
  padding: 20px 15px 0 15px;
145
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  .siteorigin-panels-builder .so-rows-container .so-row-toolbar {
147
  zoom: 1;
148
  margin-bottom: 4px;
@@ -161,11 +265,19 @@
161
  -moz-box-sizing: border-box;
162
  -webkit-box-sizing: border-box;
163
  box-sizing: border-box;
164
- height: 22px;
165
- padding: 5px;
166
- font-size: 10px;
167
  float: right;
168
  }
 
 
 
 
 
 
 
 
 
 
169
  .siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-tool-button.so-row-move {
170
  cursor: move;
171
  }
@@ -183,6 +295,28 @@
183
  color: #FFF;
184
  background: #a00;
185
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  .siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper:hover .so-dropdown-links-wrapper {
187
  display: block;
188
  }
@@ -201,6 +335,9 @@
201
  -ms-user-select: none;
202
  user-select: none;
203
  }
 
 
 
204
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells {
205
  zoom: 1;
206
  margin: 0 -5px;
@@ -219,7 +356,6 @@
219
  width: 10px;
220
  left: -11px;
221
  cursor: col-resize;
222
- background: rgba(0, 150, 211, 0);
223
  background: rgba(0, 150, 211, 0.25);
224
  -webkit-transition: background 0.25s ease-in-out;
225
  -moz-transition: background 0.25s ease-in-out;
@@ -246,16 +382,13 @@
246
  }
247
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .cell-wrapper {
248
  background: #e4eff4;
249
- border: 1px solid #bcccd2;
250
- padding: 7px 7px 1px 7px;
251
- /* 6px bottom to remove bottom margin from panels */
252
  height: 100%;
253
  min-height: 70px;
254
- }
255
- .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell.cell-selected .cell-wrapper {
256
- background: #cae7f4 url("images/cell-selected.png") repeat;
257
- border-color: #9abcc7;
258
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
259
  }
260
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
261
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell.cell-selected .cell-wrapper {
@@ -271,30 +404,30 @@
271
  }
272
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget {
273
  cursor: move;
274
- margin-bottom: 5px;
275
  background: #f9f9fb;
276
- border: 1px solid #9bafb5;
277
  max-height: 49px;
 
 
 
278
  -ms-box-sizing: border-box;
279
  -moz-box-sizing: border-box;
280
  -webkit-box-sizing: border-box;
281
  box-sizing: border-box;
282
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.075);
283
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.075);
284
- box-shadow: 0 1px 2px rgba(0,0,0,0.075);
285
  }
286
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-no-move {
287
  cursor: auto;
288
  }
289
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget:hover {
290
- border: 1px solid #93a7ad;
291
  background: #fff;
292
- -webkit-box-shadow: 0 2px 2px rgba(0,0,0,0.075);
293
- -moz-box-shadow: 0 2px 2px rgba(0,0,0,0.075);
294
- box-shadow: 0 2px 2px rgba(0,0,0,0.075);
295
  }
296
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .so-widget-wrapper {
297
- padding: 7px 9px;
298
  overflow: hidden;
299
  position: relative;
300
  }
@@ -394,15 +527,14 @@
394
  color: #eee;
395
  }
396
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget-sortable-highlight {
397
- border: 1px solid;
 
398
  -ms-box-sizing: border-box;
399
  -moz-box-sizing: border-box;
400
  -webkit-box-sizing: border-box;
401
  box-sizing: border-box;
402
  height: 49px;
403
- background: #ddebef;
404
- border-color: #bcccd2;
405
- margin-bottom: 5px;
406
  position: relative;
407
  -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.01);
408
  -moz-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.01);
@@ -415,61 +547,16 @@
415
  width: 10px;
416
  left: -5px;
417
  cursor: col-resize;
418
- background: #e5f4fa;
419
  height: 100%;
420
  -webkit-transition: background 0.25s ease-in-out;
421
  -moz-transition: background 0.25s ease-in-out;
422
  -o-transition: background 0.25s ease-in-out;
423
  transition: background 0.25s ease-in-out;
424
  }
425
- .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .resize-handle:hover {
426
- background: #bfe4f3;
427
- }
428
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell:first-child .resize-handle {
429
  display: none;
430
  }
431
- .siteorigin-panels-builder .so-panels-icon {
432
- font-family: 'siteorigin-panels';
433
- speak: none;
434
- font-style: normal;
435
- font-weight: normal;
436
- font-variant: normal;
437
- text-transform: none;
438
- line-height: 1;
439
- /* Better Font Rendering =========== */
440
- -webkit-font-smoothing: antialiased;
441
- -moz-osx-font-smoothing: grayscale;
442
- }
443
- .siteorigin-panels-builder .so-panels-icon.so-panels-icon-plus:before {
444
- content: "\f067";
445
- }
446
- .siteorigin-panels-builder .so-panels-icon.so-panels-icon-film:before {
447
- content: "\f008";
448
- }
449
- .siteorigin-panels-builder .so-panels-icon.so-panels-icon-th-large:before {
450
- content: "\f009";
451
- }
452
- .siteorigin-panels-builder .so-panels-icon.so-panels-icon-arrows:before {
453
- content: "\f047";
454
- }
455
- .siteorigin-panels-builder .so-panels-icon.so-panels-icon-arrow-up:before {
456
- content: "\f062";
457
- }
458
- .siteorigin-panels-builder .so-panels-icon.so-panels-icon-eye:before {
459
- content: "\f06e";
460
- }
461
- .siteorigin-panels-builder .so-panels-icon.so-panels-icon-hdd-o:before {
462
- content: "\f0a0";
463
- }
464
- .siteorigin-panels-builder .so-panels-icon.so-panels-icon-wrench:before {
465
- content: "\f0ad";
466
- }
467
- .siteorigin-panels-builder .so-panels-icon.so-panels-icon-rotate-left:before {
468
- content: "\f0e2";
469
- }
470
- .siteorigin-panels-builder .so-panels-icon.so-panels-icon-undo:before {
471
- content: "\f0e2";
472
- }
473
  .siteorigin-panels-builder .so-panels-welcome-message {
474
  text-align: center;
475
  padding: 0px 15px 20px 15px;
@@ -509,6 +596,9 @@
509
  .siteorigin-panels-builder.so-display-narrow .so-builder-toolbar > .so-tool-button span.so-button-text {
510
  display: none;
511
  }
 
 
 
512
  .siteorigin-panels-builder.so-display-narrow .so-builder-toolbar .so-switch-to-standard {
513
  display: none !important;
514
  }
@@ -521,31 +611,32 @@
521
  z-index: 500002 !important;
522
  opacity: 0.9;
523
  pointer-events: none;
 
524
  cursor: move;
525
- margin-bottom: 5px;
526
  background: #f9f9fb;
527
- border: 1px solid #9bafb5;
528
  max-height: 49px;
 
 
 
529
  -ms-box-sizing: border-box;
530
  -moz-box-sizing: border-box;
531
  -webkit-box-sizing: border-box;
532
  box-sizing: border-box;
533
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.075);
534
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.075);
535
- box-shadow: 0 1px 2px rgba(0,0,0,0.075);
536
  }
537
  .so-widget.ui-sortable-helper.widget-being-dragged.so-widget-no-move {
538
  cursor: auto;
539
  }
540
  .so-widget.ui-sortable-helper.widget-being-dragged:hover {
541
- border: 1px solid #93a7ad;
542
  background: #fff;
543
- -webkit-box-shadow: 0 2px 2px rgba(0,0,0,0.075);
544
- -moz-box-shadow: 0 2px 2px rgba(0,0,0,0.075);
545
- box-shadow: 0 2px 2px rgba(0,0,0,0.075);
546
  }
547
  .so-widget.ui-sortable-helper.widget-being-dragged .so-widget-wrapper {
548
- padding: 7px 9px;
549
  overflow: hidden;
550
  position: relative;
551
  }
@@ -718,8 +809,35 @@
718
  /* These are the action buttons in the title bar */
719
  }
720
  .so-panels-dialog .so-title-bar h3.so-title {
721
- margin: 0 !important;
722
- padding: 0 !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
723
  }
724
  .so-panels-dialog .so-title-bar h3.so-parent-link {
725
  cursor: pointer;
@@ -809,6 +927,21 @@
809
  .so-panels-dialog .so-title-bar a.so-nav.so-disabled .so-dialog-icon {
810
  color: #dddddd;
811
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
812
  .so-panels-dialog .so-toolbar {
813
  left: 30px;
814
  right: 30px;
@@ -1125,6 +1258,7 @@
1125
  display: inline-block;
1126
  position: relative;
1127
  padding: 0 6px;
 
1128
  }
1129
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in {
1130
  border: 1px solid #bcccd2;
@@ -1132,6 +1266,11 @@
1132
  background: #e4eff4;
1133
  position: relative;
1134
  }
 
 
 
 
 
1135
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight,
1136
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input {
1137
  position: absolute;
@@ -1641,6 +1780,9 @@
1641
  font-style: italic;
1642
  clear: both;
1643
  }
 
 
 
1644
  .so-panels-dialog .so-content .siteorigin-panels-builder .so-builder-toolbar {
1645
  border: 1px solid #dedede;
1646
  }
@@ -1673,6 +1815,9 @@
1673
  .wp-customizer .so-panels-dialog .so-right-sidebar {
1674
  z-index: 500001;
1675
  }
 
 
 
1676
  .so-panels-live-editor > div {
1677
  position: fixed;
1678
  z-index: 99999;
@@ -1758,9 +1903,12 @@
1758
  bottom: 0;
1759
  width: 360px;
1760
  overflow-y: auto;
1761
- background: #F2F2F2;
1762
  border-right: 1px solid #D0D0D0;
1763
  }
 
 
 
1764
  .so-panels-live-editor .so-preview {
1765
  top: 0;
1766
  right: 0;
@@ -2153,3 +2301,46 @@
2153
  top: 1px;
2154
  right: 18px;
2155
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  @font-face {
2
+ font-family: 'siteorigin-panels-icons';
3
+ src: url('icons/panels-icons.eot');
4
+ src: url('icons/panels-icons.eot') format('embedded-opentype'), url('icons/panels-icons.woff') format('woff'), url('icons/panels-icons.ttf') format('truetype'), url('icons/panels-icons.svg') format('svg');
5
  font-weight: normal;
6
  font-style: normal;
7
  }
24
  .siteorigin-panels-builder {
25
  position: relative;
26
  /* These are generic iconic buttons used in the page builder interface */
 
27
  }
28
  .siteorigin-panels-builder .so-tool-button {
29
  padding: 6px 7px;
 
30
  text-decoration: none;
31
+ line-height: 1em;
32
  float: left;
33
  margin-right: 2px;
34
  display: block;
35
  visibility: visible;
36
  position: relative;
37
  cursor: pointer;
38
+ border: 1px solid #bebebe;
39
+ background: #eeeeee;
40
+ background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #f9f9f9));
41
+ background: -ms-linear-gradient(bottom, #eeeeee, #f9f9f9);
42
+ background: -moz-linear-gradient(center bottom, #eeeeee 0%, #f9f9f9 100%);
43
+ background: -o-linear-gradient(#f9f9f9, #eeeeee);
44
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#eeeeee', GradientType=0);
45
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.5);
 
 
46
  outline: none;
 
 
47
  border-radius: 2px;
48
  }
49
+ .siteorigin-panels-builder .so-tool-button .so-panels-icon {
50
+ font-size: 12px;
51
+ }
52
  .siteorigin-panels-builder .so-tool-button span {
53
  display: inline-block;
54
  color: #666666;
62
  .siteorigin-panels-builder .so-tool-button:hover span {
63
  color: #444444;
64
  }
 
 
 
 
 
 
 
 
 
 
 
 
65
  .siteorigin-panels-builder .so-builder-toolbar {
66
  -ms-box-sizing: border-box;
67
  -moz-box-sizing: border-box;
92
  display: table;
93
  clear: both;
94
  }
95
+ .siteorigin-panels-builder .so-builder-toolbar .so-tool-button {
96
  display: inline-block;
97
  color: #666666;
98
+ padding: 2px 10px 2px 8px;
99
+ }
100
+ .siteorigin-panels-builder .so-builder-toolbar .so-tool-button .so-button-text {
101
+ margin: 3px 0 2px 0;
102
+ font-size: 11px;
103
  }
104
+ .siteorigin-panels-builder .so-builder-toolbar .so-tool-button .so-panels-icon {
105
  float: left;
106
+ margin: 3px 7px 2px 0;
107
+ font-size: 14px;
108
+ color: #747474;
109
  }
110
+ .siteorigin-panels-builder .so-builder-toolbar .so-tool-button:hover,
111
+ .siteorigin-panels-builder .so-builder-toolbar .so-tool-button:hover .so-panels-icon {
112
  color: #444444;
113
  }
114
+ .siteorigin-panels-builder .so-builder-toolbar .so-tool-button.so-learn {
115
+ background: #e5e5e5;
116
+ background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #e5e5e5), color-stop(1, #f6f6f6));
117
+ background: -ms-linear-gradient(bottom, #e5e5e5, #f6f6f6);
118
+ background: -moz-linear-gradient(center bottom, #e5e5e5 0%, #f6f6f6 100%);
119
+ background: -o-linear-gradient(#f6f6f6, #e5e5e5);
120
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f6f6f6', endColorstr='#e5e5e5', GradientType=0);
121
+ }
122
+ .siteorigin-panels-builder .so-builder-toolbar .so-tool-button.so-learn:hover {
123
+ background: #FFFFFF;
124
+ }
125
  .siteorigin-panels-builder .so-builder-toolbar .so-switch-to-standard {
 
 
 
126
  cursor: pointer;
127
+ float: right;
128
  display: none;
129
  text-decoration: none;
130
  color: #666666;
133
  -moz-border-radius: 2px;
134
  border-radius: 2px;
135
  border: 1px solid transparent;
 
136
  font-size: 11px;
137
  }
138
  .siteorigin-panels-builder .so-builder-toolbar .so-switch-to-standard:hover {
143
  .siteorigin-panels-builder .so-rows-container {
144
  padding: 20px 15px 0 15px;
145
  }
146
+ .siteorigin-panels-builder .so-rows-container .so-row-color-1.so-row-color {
147
+ background-color: #CDE2EC;
148
+ border: 1px solid #a4cadd;
149
+ }
150
+ .siteorigin-panels-builder .so-rows-container .so-row-color-1.so-row-color.so-row-color-selected:before {
151
+ background: #a8cdde;
152
+ }
153
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-1 .so-cells .cell .cell-wrapper {
154
+ background-color: #CDE2EC;
155
+ }
156
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-1 .so-cells .cell.cell-selected .cell-wrapper {
157
+ background-color: #99c4d8;
158
+ }
159
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-1 .so-cells .cell .resize-handle {
160
+ background-color: #e7f1f6;
161
+ }
162
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-1 .so-cells .cell .resize-handle:hover {
163
+ background-color: #dcebf2;
164
+ }
165
+ .siteorigin-panels-builder .so-rows-container .so-row-color-2.so-row-color {
166
+ background-color: #F2C2BE;
167
+ border: 1px solid #e9968f;
168
+ }
169
+ .siteorigin-panels-builder .so-rows-container .so-row-color-2.so-row-color.so-row-color-selected:before {
170
+ background: #ea9a93;
171
+ }
172
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-2 .so-cells .cell .cell-wrapper {
173
+ background-color: #F2C2BE;
174
+ }
175
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-2 .so-cells .cell.cell-selected .cell-wrapper {
176
+ background-color: #e68a83;
177
+ }
178
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-2 .so-cells .cell .resize-handle {
179
+ background-color: #f8dedc;
180
+ }
181
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-2 .so-cells .cell .resize-handle:hover {
182
+ background-color: #f5d2cf;
183
+ }
184
+ .siteorigin-panels-builder .so-rows-container .so-row-color-3.so-row-color {
185
+ background-color: #D5CCDF;
186
+ border: 1px solid #b9aac9;
187
+ }
188
+ .siteorigin-panels-builder .so-rows-container .so-row-color-3.so-row-color.so-row-color-selected:before {
189
+ background: #bbadcb;
190
+ }
191
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-3 .so-cells .cell .cell-wrapper {
192
+ background-color: #D5CCDF;
193
+ }
194
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-3 .so-cells .cell.cell-selected .cell-wrapper {
195
+ background-color: #b1a0c3;
196
+ }
197
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-3 .so-cells .cell .resize-handle {
198
+ background-color: #e7e2ed;
199
+ }
200
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-3 .so-cells .cell .resize-handle:hover {
201
+ background-color: #dfd9e7;
202
+ }
203
+ .siteorigin-panels-builder .so-rows-container .so-row-color-4.so-row-color {
204
+ background-color: #CAE7CD;
205
+ border: 1px solid #a3d6a9;
206
+ }
207
+ .siteorigin-panels-builder .so-rows-container .so-row-color-4.so-row-color.so-row-color-selected:before {
208
+ background: #a7d7ac;
209
+ }
210
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-4 .so-cells .cell .cell-wrapper {
211
+ background-color: #CAE7CD;
212
+ }
213
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-4 .so-cells .cell.cell-selected .cell-wrapper {
214
+ background-color: #99d19f;
215
+ }
216
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-4 .so-cells .cell .resize-handle {
217
+ background-color: #e3f2e4;
218
+ }
219
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-4 .so-cells .cell .resize-handle:hover {
220
+ background-color: #d8edda;
221
+ }
222
+ .siteorigin-panels-builder .so-rows-container .so-row-color-5.so-row-color {
223
+ background-color: #E2DCB1;
224
+ border: 1px solid #d3ca88;
225
+ }
226
+ .siteorigin-panels-builder .so-rows-container .so-row-color-5.so-row-color.so-row-color-selected:before {
227
+ background: #d4cb8c;
228
+ }
229
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-5 .so-cells .cell .cell-wrapper {
230
+ background-color: #E2DCB1;
231
+ }
232
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-5 .so-cells .cell.cell-selected .cell-wrapper {
233
+ background-color: #cfc57d;
234
+ }
235
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-5 .so-cells .cell .resize-handle {
236
+ background-color: #ece8cb;
237
+ }
238
+ .siteorigin-panels-builder .so-rows-container .so-row-container.so-row-color-5 .so-cells .cell .resize-handle:hover {
239
+ background-color: #e8e3c0;
240
+ }
241
+ .siteorigin-panels-builder .so-rows-container h3.so-row-label {
242
+ display: inline-block;
243
+ font-size: 1em;
244
+ font-weight: 500;
245
+ color: #474747;
246
+ margin: 0 0 0 4px;
247
+ line-height: 22px;
248
+ float: left;
249
+ }
250
  .siteorigin-panels-builder .so-rows-container .so-row-toolbar {
251
  zoom: 1;
252
  margin-bottom: 4px;
265
  -moz-box-sizing: border-box;
266
  -webkit-box-sizing: border-box;
267
  box-sizing: border-box;
268
+ padding: 4px;
 
 
269
  float: right;
270
  }
271
+ .siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-tool-button .so-panels-icon {
272
+ color: #777;
273
+ font-size: 11px;
274
+ width: 11px;
275
+ height: 11px;
276
+ display: block;
277
+ }
278
+ .siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-tool-button:hover .so-panels-icon {
279
+ color: #555;
280
+ }
281
  .siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-tool-button.so-row-move {
282
  cursor: move;
283
  }
295
  color: #FFF;
296
  background: #a00;
297
  }
298
+ .siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper ul li.so-row-colors-container {
299
+ display: flex;
300
+ justify-content: space-around;
301
+ padding: 5px;
302
+ }
303
+ .siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper ul li.so-row-colors-container .so-row-color {
304
+ display: inline-block;
305
+ cursor: pointer;
306
+ position: relative;
307
+ text-align: center;
308
+ width: 14px;
309
+ height: 14px;
310
+ }
311
+ .siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper .so-dropdown-links-wrapper ul li.so-row-colors-container .so-row-color.so-row-color-selected:before {
312
+ content: "";
313
+ display: block;
314
+ position: absolute;
315
+ top: 2px;
316
+ bottom: 2px;
317
+ left: 2px;
318
+ right: 2px;
319
+ }
320
  .siteorigin-panels-builder .so-rows-container .so-row-toolbar .so-dropdown-wrapper:hover .so-dropdown-links-wrapper {
321
  display: block;
322
  }
335
  -ms-user-select: none;
336
  user-select: none;
337
  }
338
+ .siteorigin-panels-builder .so-rows-container .so-row-container.ui-sortable-helper {
339
+ opacity: 0.9;
340
+ }
341
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells {
342
  zoom: 1;
343
  margin: 0 -5px;
356
  width: 10px;
357
  left: -11px;
358
  cursor: col-resize;
 
359
  background: rgba(0, 150, 211, 0.25);
360
  -webkit-transition: background 0.25s ease-in-out;
361
  -moz-transition: background 0.25s ease-in-out;
382
  }
383
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .cell-wrapper {
384
  background: #e4eff4;
385
+ padding: 7px 7px 0px 7px;
 
 
386
  height: 100%;
387
  min-height: 70px;
388
+ -webkit-transition: background 0.25s ease-in-out;
389
+ -moz-transition: background 0.25s ease-in-out;
390
+ -o-transition: background 0.25s ease-in-out;
391
+ transition: background 0.25s ease-in-out;
 
392
  }
393
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
394
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell.cell-selected .cell-wrapper {
404
  }
405
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget {
406
  cursor: move;
407
+ margin-bottom: 7px;
408
  background: #f9f9fb;
409
+ border: 1px solid rgba(255, 255, 255, 0.75);
410
  max-height: 49px;
411
+ -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.075);
412
+ -moz-box-shadow: 0 1px 1px rgba(0,0,0,0.075);
413
+ box-shadow: 0 1px 1px rgba(0,0,0,0.075);
414
  -ms-box-sizing: border-box;
415
  -moz-box-sizing: border-box;
416
  -webkit-box-sizing: border-box;
417
  box-sizing: border-box;
 
 
 
418
  }
419
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget.so-widget-no-move {
420
  cursor: auto;
421
  }
422
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget:hover {
423
+ border: 1px solid rgba(255, 255, 255, 0.55);
424
  background: #fff;
425
+ -webkit-box-shadow: 0 0 2px rgba(0,0,0,0.1);
426
+ -moz-box-shadow: 0 0 2px rgba(0,0,0,0.1);
427
+ box-shadow: 0 0 2px rgba(0,0,0,0.1);
428
  }
429
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget .so-widget-wrapper {
430
+ padding: 7px 8px;
431
  overflow: hidden;
432
  position: relative;
433
  }
527
  color: #eee;
528
  }
529
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell .widgets-container .so-widget-sortable-highlight {
530
+ border: 1px solid rgba(0, 0, 0, 0.075);
531
+ background: rgba(0, 0, 0, 0.025);
532
  -ms-box-sizing: border-box;
533
  -moz-box-sizing: border-box;
534
  -webkit-box-sizing: border-box;
535
  box-sizing: border-box;
536
  height: 49px;
537
+ margin-bottom: 7px;
 
 
538
  position: relative;
539
  -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.01);
540
  -moz-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.01);
547
  width: 10px;
548
  left: -5px;
549
  cursor: col-resize;
550
+ background: #f6fafb;
551
  height: 100%;
552
  -webkit-transition: background 0.25s ease-in-out;
553
  -moz-transition: background 0.25s ease-in-out;
554
  -o-transition: background 0.25s ease-in-out;
555
  transition: background 0.25s ease-in-out;
556
  }
 
 
 
557
  .siteorigin-panels-builder .so-rows-container .so-row-container .so-cells .cell:first-child .resize-handle {
558
  display: none;
559
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
560
  .siteorigin-panels-builder .so-panels-welcome-message {
561
  text-align: center;
562
  padding: 0px 15px 20px 15px;
596
  .siteorigin-panels-builder.so-display-narrow .so-builder-toolbar > .so-tool-button span.so-button-text {
597
  display: none;
598
  }
599
+ .siteorigin-panels-builder.so-display-narrow .so-builder-toolbar > .so-tool-button.so-learn {
600
+ display: none;
601
+ }
602
  .siteorigin-panels-builder.so-display-narrow .so-builder-toolbar .so-switch-to-standard {
603
  display: none !important;
604
  }
611
  z-index: 500002 !important;
612
  opacity: 0.9;
613
  pointer-events: none;
614
+ border: 1px solid rgba(0, 0, 0, 0.35) !important;
615
  cursor: move;
616
+ margin-bottom: 7px;
617
  background: #f9f9fb;
618
+ border: 1px solid rgba(255, 255, 255, 0.75);
619
  max-height: 49px;
620
+ -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.075);
621
+ -moz-box-shadow: 0 1px 1px rgba(0,0,0,0.075);
622
+ box-shadow: 0 1px 1px rgba(0,0,0,0.075);
623
  -ms-box-sizing: border-box;
624
  -moz-box-sizing: border-box;
625
  -webkit-box-sizing: border-box;
626
  box-sizing: border-box;
 
 
 
627
  }
628
  .so-widget.ui-sortable-helper.widget-being-dragged.so-widget-no-move {
629
  cursor: auto;
630
  }
631
  .so-widget.ui-sortable-helper.widget-being-dragged:hover {
632
+ border: 1px solid rgba(255, 255, 255, 0.55);
633
  background: #fff;
634
+ -webkit-box-shadow: 0 0 2px rgba(0,0,0,0.1);
635
+ -moz-box-shadow: 0 0 2px rgba(0,0,0,0.1);
636
+ box-shadow: 0 0 2px rgba(0,0,0,0.1);
637
  }
638
  .so-widget.ui-sortable-helper.widget-being-dragged .so-widget-wrapper {
639
+ padding: 7px 8px;
640
  overflow: hidden;
641
  position: relative;
642
  }
809
  /* These are the action buttons in the title bar */
810
  }
811
  .so-panels-dialog .so-title-bar h3.so-title {
812
+ -ms-box-sizing: border-box;
813
+ -moz-box-sizing: border-box;
814
+ -webkit-box-sizing: border-box;
815
+ box-sizing: border-box;
816
+ margin: -3px 150px 0 -3px;
817
+ padding: 5px 6px;
818
+ display: block;
819
+ }
820
+ .so-panels-dialog .so-title-bar h3.so-title.so-title-editable:hover,
821
+ .so-panels-dialog .so-title-bar h3.so-title.so-title-editable:focus {
822
+ outline: none;
823
+ background-color: #F0F0F0;
824
+ }
825
+ .so-panels-dialog .so-title-bar h3.so-title.so-title-editable:focus {
826
+ margin-top: -4px;
827
+ margin-left: -4px;
828
+ border: 1px solid #E4E4E4;
829
+ }
830
+ .so-panels-dialog .so-title-bar input[type=text].so-edit-title {
831
+ margin-top: -3px;
832
+ margin-left: -3px;
833
+ display: none;
834
+ color: #23282d;
835
+ font-size: 1.3em;
836
+ font-weight: 600;
837
+ border: none;
838
+ box-shadow: none;
839
+ background-color: #F0F0F0;
840
+ padding: 4px 5px;
841
  }
842
  .so-panels-dialog .so-title-bar h3.so-parent-link {
843
  cursor: pointer;
927
  .so-panels-dialog .so-title-bar a.so-nav.so-disabled .so-dialog-icon {
928
  color: #dddddd;
929
  }
930
+ .so-panels-dialog .so-title-bar.so-has-icon {
931
+ padding-left: 45px;
932
+ }
933
+ .so-panels-dialog .so-title-bar.so-has-icon .so-panels-icon {
934
+ position: absolute;
935
+ top: 14.5px;
936
+ left: 14px;
937
+ font-size: 22px;
938
+ line-height: 22px;
939
+ display: block;
940
+ width: 22px;
941
+ height: 22px;
942
+ text-align: center;
943
+ color: #666;
944
+ }
945
  .so-panels-dialog .so-toolbar {
946
  left: 30px;
947
  right: 30px;
1258
  display: inline-block;
1259
  position: relative;
1260
  padding: 0 6px;
1261
+ cursor: pointer;
1262
  }
1263
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in {
1264
  border: 1px solid #bcccd2;
1266
  background: #e4eff4;
1267
  position: relative;
1268
  }
1269
+ .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in.cell-selected {
1270
+ background: #cae7f4 url("images/cell-selected.png") repeat;
1271
+ border-color: #9abcc7;
1272
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
1273
+ }
1274
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight,
1275
  .so-panels-dialog.so-panels-dialog-row-edit .so-content .row-preview .preview-cell .preview-cell-in .preview-cell-weight-input {
1276
  position: absolute;
1780
  font-style: italic;
1781
  clear: both;
1782
  }
1783
+ .so-panels-dialog .so-visual-styles.so-cell-styles {
1784
+ margin-top: 15px;
1785
+ }
1786
  .so-panels-dialog .so-content .siteorigin-panels-builder .so-builder-toolbar {
1787
  border: 1px solid #dedede;
1788
  }
1815
  .wp-customizer .so-panels-dialog .so-right-sidebar {
1816
  z-index: 500001;
1817
  }
1818
+ .wp-customizer .so-panels-dialog .so-toolbar {
1819
+ z-index: 500002;
1820
+ }
1821
  .so-panels-live-editor > div {
1822
  position: fixed;
1823
  z-index: 99999;
1903
  bottom: 0;
1904
  width: 360px;
1905
  overflow-y: auto;
1906
+ background: #f7f7f7;
1907
  border-right: 1px solid #D0D0D0;
1908
  }
1909
+ .so-panels-live-editor .so-sidebar .siteorigin-panels-builder .so-rows-container {
1910
+ padding: 10px 10px 0 10px !important;
1911
+ }
1912
  .so-panels-live-editor .so-preview {
1913
  top: 0;
1914
  right: 0;
2301
  top: 1px;
2302
  right: 18px;
2303
  }
2304
+ /* Page Builder icons */
2305
+ .so-panels-icon {
2306
+ font-family: 'siteorigin-panels-icons';
2307
+ speak: none;
2308
+ font-style: normal;
2309
+ font-weight: normal;
2310
+ font-variant: normal;
2311
+ text-transform: none;
2312
+ line-height: 1;
2313
+ /* Better Font Rendering =========== */
2314
+ -webkit-font-smoothing: antialiased;
2315
+ -moz-osx-font-smoothing: grayscale;
2316
+ }
2317
+ .so-panels-icon.so-panels-icon-add-row:before {
2318
+ content: "\e900";
2319
+ }
2320
+ .so-panels-icon.so-panels-icon-add-widget:before {
2321
+ content: "\e901";
2322
+ }
2323
+ .so-panels-icon.so-panels-icon-addons:before {
2324
+ content: "\e902";
2325
+ }
2326
+ .so-panels-icon.so-panels-icon-history:before {
2327
+ content: "\e903";
2328
+ }
2329
+ .so-panels-icon.so-panels-icon-layouts:before {
2330
+ content: "\e904";
2331
+ }
2332
+ .so-panels-icon.so-panels-icon-learn:before {
2333
+ content: "\e905";
2334
+ }
2335
+ .so-panels-icon.so-panels-icon-live-editor:before {
2336
+ content: "\e906";
2337
+ }
2338
+ .so-panels-icon.so-panels-icon-move:before {
2339
+ content: "\e907";
2340
+ }
2341
+ .so-panels-icon.so-panels-icon-settings:before {
2342
+ content: "\e908";
2343
+ }
2344
+ #post-status-info.for-siteorigin-panels {
2345
+ margin-top: -21px !important;
2346
+ }
css/front.css CHANGED
@@ -1,21 +1,19 @@
1
- .panel-grid {
2
- zoom: 1;
3
- }
4
- .panel-grid:before {
5
- content: '';
6
- display: block;
7
- }
8
- .panel-grid:after {
9
- content: '';
10
- display: table;
11
- clear: both;
12
  }
13
  .panel-grid-cell {
14
  -ms-box-sizing: border-box;
15
  -moz-box-sizing: border-box;
16
  -webkit-box-sizing: border-box;
17
  box-sizing: border-box;
18
- min-height: 1em;
 
 
19
  }
20
  .panel-grid-cell .so-panel {
21
  zoom: 1;
@@ -47,3 +45,12 @@
47
  display: table;
48
  clear: both;
49
  }
 
 
 
 
 
 
 
 
 
1
+ .panel-grid.panel-no-style,
2
+ .panel-grid.panel-has-style > .panel-row-style {
3
+ display: -webkit-flex;
4
+ display: flex;
5
+ -ms-flex-wrap: wrap;
6
+ -webkit-flex-wrap: wrap;
7
+ flex-wrap: nowrap;
 
 
 
 
8
  }
9
  .panel-grid-cell {
10
  -ms-box-sizing: border-box;
11
  -moz-box-sizing: border-box;
12
  -webkit-box-sizing: border-box;
13
  box-sizing: border-box;
14
+ }
15
+ .panel-grid-cell .panel-cell-style {
16
+ height: 100%;
17
  }
18
  .panel-grid-cell .so-panel {
19
  zoom: 1;
45
  display: table;
46
  clear: both;
47
  }
48
+ .siteorigin-panels-stretch {
49
+ margin-right: -1000px;
50
+ margin-left: -1000px;
51
+ padding-right: 1000px;
52
+ padding-left: 1000px;
53
+ }
54
+ body.siteorigin-panels-before-js {
55
+ overflow-x: hidden;
56
+ }
css/icons/panels-icons.eot ADDED
Binary file
css/icons/panels-icons.svg ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="icomoon" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#xe900;" glyph-name="add-row" d="M73.143 813.714h877.714v-146.286h-877.714v146.286zM73.143 521.143h877.714v-146.286h-877.714v146.286zM73.143 228.571h877.714v-146.286h-877.714v146.286z" />
11
+ <glyph unicode="&#xe901;" glyph-name="add-widget" d="M128.22 448v0h-128.219v126.838c-0.039 17.044 6.714 33.401 18.766 45.453s28.409 18.805 45.453 18.766h117.029l-56.027 97.938c-17.574 30.423-7.201 69.331 23.186 86.967l219.429 127.415c14.615 8.522 32.031 10.843 48.368 6.446s30.235-15.146 38.599-29.852l57.198-99.401v-92.819c-29.048 0.066-57.934-4.325-85.65-13.019l-49.737 86.382-109.714-63.634 49.883-86.894c-42.724-39.544-72.459-91.109-85.285-147.895h-103.278v-62.691zM128.22 448v-62.691h103.278c12.825-56.786 42.56-108.351 85.285-147.895l-49.883-86.894 109.714-63.634 49.737 86.382c27.716-8.694 56.602-13.085 85.65-13.019v-92.819l-57.198-99.401c-8.363-14.706-22.262-25.455-38.599-29.852s-33.753-2.075-48.368 6.446l-219.429 127.415c-30.387 17.636-40.761 56.544-23.186 86.967l56.027 97.938h-117.029c-17.044-0.039-33.401 6.714-45.453 18.766s-18.805 28.409-18.766 45.453v126.838h128.219zM895.78 448v62.691h-103.278c-12.825 56.786-42.56 108.351-85.285 147.895l49.883 86.894-109.714 63.634-49.737-86.382c-27.716 8.694-56.602 13.085-85.65 13.019v92.819l57.198 99.401c8.363 14.706 22.262 25.455 38.599 29.852s33.753 2.075 48.368-6.446l219.429-127.415c30.387-17.636 40.761-56.544 23.186-86.967l-56.027-97.938h117.029c17.044 0.039 33.401-6.714 45.453-18.766s18.805-28.409 18.766-45.453v-126.838h-128.219zM895.78 448v0h128.219v-126.838c0.039-17.044-6.714-33.401-18.766-45.453s-28.409-18.805-45.453-18.766h-117.029l56.027-97.938c17.574-30.423 7.201-69.331-23.186-86.967l-219.429-127.415c-14.615-8.522-32.031-10.843-48.368-6.446s-30.235 15.146-38.599 29.852l-57.198 99.401v92.819c29.048-0.066 57.934 4.325 85.65 13.019l49.737-86.382 109.714 63.634-49.883 86.894c42.724 39.544 72.459 91.109 85.285 147.895h103.278v62.691zM658.286 448c0-80.791-65.494-146.286-146.286-146.286s-146.286 65.494-146.286 146.286c0 80.791 65.494 146.286 146.286 146.286s146.286-65.494 146.286-146.286z" />
12
+ <glyph unicode="&#xe902;" glyph-name="addons" d="M820.809 350.501c-39.944-31.404-85.922-57.731-135.495-76.817l97.753-129.007-271.067-208.677-146.286 219.429-7.314 7.314-65.829-80.457-146.286 146.286 80.457 65.829-7.314 7.314-219.429 146.286 208.384 271.067 128.073-101.522c20.393 53.136 46.736 99.059 78.987 140.121 173.575 173.735 472.73 256.898 567.962 161.666s11.995-394.313-162.597-568.832zM785.189 722.286c-22.211 22.212-52.895 35.95-86.788 35.95-67.784 0-122.734-54.95-122.734-122.734s54.95-122.734 122.734-122.734c33.893 0 64.577 13.738 86.788 35.95 22.209 22.21 35.946 52.893 35.946 86.784s-13.737 64.574-35.946 86.784zM150.382 74.021l69.047-138.021h-219.429v219.429z" />
13
+ <glyph unicode="&#xe903;" glyph-name="history" d="M1021.733 448c0.526-241.821-195.062-438.292-436.882-438.857-80.969 0-85.87 146.286 0 146.286 77.42 0.174 151.6 31.097 206.221 85.965s85.208 129.187 85.034 206.607v0c0 104.068-55.52 200.232-145.646 252.266s-201.166 52.034-291.291 0c-90.126-52.034-145.646-148.197-145.646-252.266h-145.627c0 241.304 195.615 436.919 436.919 436.919s436.919-195.615 436.919-436.919v0 0zM656.018 521.143v146.286h-146.286v-292.571h292.571v146.286h-146.286zM421.522 355.84l-162.231-182.857c-10.062-11.985-24.909-18.906-40.558-18.906s-30.496 6.921-40.558 18.906l-162.304 182.857c-22.406 26.358-22.406 65.070 0 91.429h405.65c22.406-26.358 22.406-65.070 0-91.429z" />
14
+ <glyph unicode="&#xe904;" glyph-name="layouts" d="M950.857-64h-950.857v1024h1024v-1024h-73.143zM950.857 886.857h-877.714v-877.714h877.714v877.714zM877.714 667.429h-731.429v146.286h731.429v-146.286zM365.714 82.286h-219.429v512h219.429v-512zM877.714 82.286h-438.857v512h438.857v-512z" />
15
+ <glyph unicode="&#xe905;" glyph-name="learn" d="M950.857 229.933h-261.778l105.618-182.517c14.025-22.628 14.606-51.080 1.516-74.259s-37.777-37.415-64.434-37.154c-26.656 0.261-51.060 14.976-63.692 38.407l-147.895 255.523h-16.384l-147.895-255.523c-12.973-22.774-37.177-36.865-63.424-36.923s-50.513 13.927-63.586 36.644c-13.073 22.717-12.949 50.685 0.326 73.285l105.618 182.517h-261.705c-40.396 0-73.143 32.686-73.143 73.007v584.053c0 40.32 32.747 73.007 73.143 73.007h877.714c40.396 0 73.143-32.686 73.143-73.007v-584.053c0-40.32-32.747-73.007-73.143-73.007zM146.286 813.987v-438.040h731.429v438.040h-731.429zM731.429 594.286l-365.714-219.429v438.857z" />
16
+ <glyph unicode="&#xe906;" glyph-name="live-editor" d="M1017.417 420.864c-5.851-16.75-148.041-411.721-506.88-411.721s-501.102 394.971-506.953 411.721c-2.877 8.089-4.539 17.418-4.539 27.136s1.662 19.048 4.718 27.72c5.672 16.166 147.935 411.137 506.774 411.137s501.029-394.971 506.88-411.721c2.877-8.089 4.539-17.418 4.539-27.136s-1.662-19.048-4.718-27.72zM510.537 740.571c-225.28 0-342.309-215.625-377.125-292.571 34.816-78.043 150.162-292.571 377.125-292.571 225.499 0 342.455 215.625 377.051 292.571-34.523 77.97-150.162 292.571-377.051 292.571zM510.537 301.714c-78.92 3.787-141.849 67.225-144.815 146.007 3.796 79.493 67.063 142.76 145.927 146.551 79.565-3.791 142.832-67.058 146.623-145.922-4.335-79.837-68.104-143.098-147.406-146.625z" />
17
+ <glyph unicode="&#xe907;" glyph-name="move" d="M585.143 521.143h-146.286v201.143l-219.429-54.857 292.571 292.571 331.41-292.571-258.267 56.978v-203.264zM438.857 374.857h146.286v-203.264l258.267 56.978-331.41-292.571-292.571 292.571 219.429-54.857v201.143z" />
18
+ <glyph unicode="&#xe908;" glyph-name="settings" d="M731.429 883.054c-27.486-27.395-44.492-65.288-44.492-107.154 0-83.55 67.731-151.281 151.281-151.281 41.684 0 79.431 16.859 106.793 44.131l69.847 70.067c5.514-21.339 8.83-45.902 9.141-71.189 0.249-4.585 0.39-9.717 0.39-14.883 0-153.504-124.439-277.943-277.943-277.943-1.963 0-3.921 0.020-5.873 0.061-29.749 0.452-58.496 5.286-85.565 13.885 0.719-2.114 0.28-4.089-1.183-5.552l-444.050-444.123h-206.921v206.921l444.050 444.050c1.536 1.536 3.657 2.048 5.266 3.511-8.042 25.164-12.878 54.142-13.309 84.185-0.033 1.763-0.051 3.58-0.051 5.401 0 153.14 124.145 277.285 277.285 277.285 5.395 0 10.753-0.154 16.072-0.458 23.744-0.165 47.43-3.14 70.153-8.591zM109.714 82.286c-20.198 0-36.571-16.374-36.571-36.571s16.374-36.571 36.571-36.571c20.198 0 36.571 16.374 36.571 36.571s-16.374 36.571-36.571 36.571z" />
19
+ </font></defs></svg>
css/icons/panels-icons.ttf ADDED
Binary file
css/icons/panels-icons.woff ADDED
Binary file
inc/admin-widget-dialog.php ADDED
@@ -0,0 +1,191 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class SiteOrigin_Panels_Admin_Widget_Dialog {
4
+
5
+ function __construct() {
6
+ add_filter( 'siteorigin_panels_widgets', array( $this, 'add_recommended_widgets' ) );
7
+ add_filter( 'siteorigin_panels_widget_dialog_tabs', array( $this, 'add_widgets_dialog_tabs' ), 20 );
8
+ }
9
+
10
+ /**
11
+ * @return SiteOrigin_Panels_Admin
12
+ */
13
+ public static function single() {
14
+ static $single;
15
+ return empty( $single ) ? $single = new self() : $single;
16
+ }
17
+
18
+ /**
19
+ * Add some default recommended widgets.
20
+ *
21
+ * @param $widgets
22
+ *
23
+ * @return array
24
+ */
25
+ function add_recommended_widgets( $widgets ) {
26
+
27
+ if ( ! empty( $widgets['WP_Widget_Black_Studio_TinyMCE'] ) ) {
28
+ $widgets['WP_Widget_Black_Studio_TinyMCE']['groups'] = array( 'recommended' );
29
+ $widgets['WP_Widget_Black_Studio_TinyMCE']['icon'] = 'dashicons dashicons-edit';
30
+ }
31
+
32
+ if ( siteorigin_panels_setting( 'recommended-widgets' ) ) {
33
+ // Add in all the widgets bundle widgets
34
+ $widgets = wp_parse_args(
35
+ $widgets,
36
+ include plugin_dir_path( __FILE__ ) . 'data/widgets-bundle.php'
37
+ );
38
+ }
39
+
40
+ foreach ( $widgets as $class => $data ) {
41
+ if ( strpos( $class, 'SiteOrigin_Panels_Widgets_' ) === 0 || strpos( $class, 'SiteOrigin_Panels_Widget_' ) === 0 ) {
42
+ $widgets[ $class ]['groups'] = array( 'panels' );
43
+ }
44
+ }
45
+
46
+ $widgets['SiteOrigin_Panels_Widgets_Layout']['icon'] = 'dashicons dashicons-analytics';
47
+
48
+ $wordpress_widgets = array(
49
+ 'WP_Widget_Pages',
50
+ 'WP_Widget_Links',
51
+ 'WP_Widget_Search',
52
+ 'WP_Widget_Archives',
53
+ 'WP_Widget_Meta',
54
+ 'WP_Widget_Calendar',
55
+ 'WP_Widget_Text',
56
+ 'WP_Widget_Categories',
57
+ 'WP_Widget_Recent_Posts',
58
+ 'WP_Widget_Recent_Comments',
59
+ 'WP_Widget_RSS',
60
+ 'WP_Widget_Tag_Cloud',
61
+ 'WP_Nav_Menu_Widget',
62
+ );
63
+
64
+ foreach ( $wordpress_widgets as $wordpress_widget ) {
65
+ if ( isset( $widgets[ $wordpress_widget ] ) ) {
66
+ $widgets[ $wordpress_widget ]['groups'] = array( 'wordpress' );
67
+ $widgets[ $wordpress_widget ]['icon'] = 'dashicons dashicons-wordpress';
68
+ }
69
+ }
70
+
71
+ // Third-party plugins dettection.
72
+ foreach ( $widgets as $widget_id => &$widget ) {
73
+ if ( strpos( $widget_id, 'WC_' ) === 0 || strpos( $widget_id, 'WooCommerce' ) !== false ) {
74
+ $widget['groups'][] = 'woocommerce';
75
+ }
76
+ if ( strpos( $widget_id, 'BBP_' ) === 0 || strpos( $widget_id, 'BBPress' ) !== false ) {
77
+ $widget['groups'][] = 'bbpress';
78
+ }
79
+ if ( strpos( $widget_id, 'Jetpack' ) !== false || strpos( $widget['title'], 'Jetpack' ) !== false ) {
80
+ $widget['groups'][] = 'jetpack';
81
+ }
82
+ }
83
+
84
+ return $widgets;
85
+ }
86
+
87
+ /**
88
+ * Add tabs to the widget dialog
89
+ *
90
+ * @param $tabs
91
+ *
92
+ * @return array
93
+ */
94
+ function add_widgets_dialog_tabs( $tabs ) {
95
+
96
+ $tabs['widgets_bundle'] = array(
97
+ 'title' => __( 'Widgets Bundle', 'siteorigin-panels' ),
98
+ 'filter' => array(
99
+ 'groups' => array( 'so-widgets-bundle' )
100
+ )
101
+ );
102
+
103
+ if ( class_exists( 'SiteOrigin_Widgets_Bundle' ) ) {
104
+ // Add a message about enabling more widgets
105
+ $tabs['widgets_bundle']['message'] = preg_replace(
106
+ array(
107
+ '/1\{ *(.*?) *\}/'
108
+ ),
109
+ array(
110
+ '<a href="' . admin_url( 'plugins.php?page=so-widgets-plugins' ) . '">$1</a>'
111
+ ),
112
+ __( 'Enable more widgets in the 1{Widgets Bundle settings}.', 'siteorigin-panels' )
113
+ );
114
+ } else {
115
+ // Add a message about installing the widgets bundle
116
+ $tabs['widgets_bundle']['message'] = preg_replace(
117
+ '/1\{ *(.*?) *\}/',
118
+ '<a href="' . siteorigin_panels_plugin_activation_install_url( 'so-widgets-bundle', __( 'SiteOrigin Widgets Bundle', 'siteorigin-panels' ) ) . '">$1</a>',
119
+ __( 'Install the 1{Widgets Bundle} to get extra widgets.', 'siteorigin-panels' )
120
+ );
121
+ }
122
+
123
+ // Add the Widgets Bundle message to the main widgets tab
124
+ $tabs[0]['message'] = $tabs['widgets_bundle']['message'];
125
+
126
+ $tabs['page_builder'] = array(
127
+ 'title' => __( 'Page Builder Widgets', 'siteorigin-panels' ),
128
+ 'message' => preg_replace(
129
+ array(
130
+ '/1\{ *(.*?) *\}/'
131
+ ),
132
+ array(
133
+ '<a href="' . admin_url( 'options-general.php?page=siteorigin_panels' ) . '">$1</a>'
134
+ ),
135
+ __( 'You can enable the legacy (PB) widgets in the 1{Page Builder settings}.', 'siteorigin-panels' )
136
+ ),
137
+ 'filter' => array(
138
+ 'groups' => array( 'panels' )
139
+ )
140
+ );
141
+
142
+ $tabs['wordpress'] = array(
143
+ 'title' => __( 'WordPress Widgets', 'siteorigin-panels' ),
144
+ 'filter' => array(
145
+ 'groups' => array( 'wordpress' )
146
+ )
147
+ );
148
+
149
+ // Check for woocommerce plugin.
150
+ if ( defined( 'WOOCOMMERCE_VERSION' ) ) {
151
+ $tabs['woocommerce'] = array(
152
+ // TRANSLATORS: The name of WordPress plugin
153
+ 'title' => __( 'WooCommerce', 'woocommerce' ),
154
+ 'filter' => array(
155
+ 'groups' => array( 'woocommerce' )
156
+ )
157
+ );
158
+ }
159
+
160
+ // Check for jetpack plugin.
161
+ if ( defined( 'JETPACK__VERSION' ) ) {
162
+ $tabs['jetpack'] = array(
163
+ // TRANSLATORS: The name of WordPress plugin
164
+ 'title' => __( 'Jetpack', 'jetpack' ),
165
+ 'filter' => array(
166
+ 'groups' => array( 'jetpack' )
167
+ ),
168
+ );
169
+ }
170
+
171
+ // Check for bbpress plugin.
172
+ if ( function_exists( 'bbpress' ) ) {
173
+ $tabs['bbpress'] = array(
174
+ // TRANSLATORS: The name of WordPress plugin
175
+ 'title' => __( 'BBPress', 'bbpress' ),
176
+ 'filter' => array(
177
+ 'groups' => array( 'bbpress' )
178
+ ),
179
+ );
180
+ }
181
+
182
+ $tabs['recommended'] = array(
183
+ 'title' => __( 'Recommended Widgets', 'siteorigin-panels' ),
184
+ 'filter' => array(
185
+ 'groups' => array( 'recommended' )
186
+ )
187
+ );
188
+
189
+ return $tabs;
190
+ }
191
+ }
inc/admin-widgets-bundle.php ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ class SiteOrigin_Panels_Admin_Widgets_Bundle {
5
+
6
+ function __construct() {
7
+ if ( isset( $_GET['siteorigin-pa-install'] ) ) {
8
+ add_action( 'admin_menu', array( $this, 'activation_page' ) );
9
+ }
10
+ }
11
+
12
+ public static function single() {
13
+ static $single;
14
+ return empty( $single ) ? $single = new self() : $single;
15
+ }
16
+
17
+ function activation_page() {
18
+ add_plugins_page(
19
+ __( 'Install Page Builder Plugin', 'siteorigin-panels' ),
20
+ __( 'Install Page Builder Plugin', 'siteorigin-panels' ),
21
+ 'install_plugins',
22
+ 'siteorigin_panels_plugin_activation',
23
+ array( $this, 'render_page' )
24
+ );
25
+ }
26
+
27
+ function render_page() {
28
+ ?>
29
+ <div class="wrap">
30
+ <?php
31
+ /** All plugin information will be stored in an array for processing */
32
+ $plugin = array();
33
+
34
+ /** Checks for actions from hover links to process the installation */
35
+ if ( isset( $_GET[ sanitize_key( 'plugin' ) ] ) && ( isset( $_GET[ sanitize_key( 'siteorigin-pa-install' ) ] ) && 'install-plugin' == $_GET[ sanitize_key( 'siteorigin-pa-install' ) ] ) && current_user_can( 'install_plugins' ) ) {
36
+ check_admin_referer( 'siteorigin-pa-install' );
37
+
38
+ $plugin['name'] = $_GET['plugin_name']; // Plugin name
39
+ $plugin['slug'] = $_GET['plugin']; // Plugin slug
40
+
41
+ if ( ! empty( $_GET['plugin_source'] ) ) {
42
+ $plugin['source'] = $_GET['plugin_source'];
43
+ } else {
44
+ $plugin['source'] = false;
45
+ }
46
+
47
+ /** Pass all necessary information via URL if WP_Filesystem is needed */
48
+ $url = wp_nonce_url(
49
+ add_query_arg(
50
+ array(
51
+ 'page' => 'siteorigin_panels_plugin_activation',
52
+ 'plugin' => urlencode( $plugin['slug'] ),
53
+ 'plugin_name' => urlencode( $plugin['name'] ),
54
+ 'plugin_source' => urlencode( $plugin['source'] ),
55
+ 'siteorigin-pa-install' => 'install-plugin',
56
+ ),
57
+ admin_url( 'themes.php' )
58
+ ),
59
+ 'siteorigin-pa-install'
60
+ );
61
+ $method = ''; // Leave blank so WP_Filesystem can populate it as necessary
62
+ $fields = array( sanitize_key( 'siteorigin-pa-install' ) ); // Extra fields to pass to WP_Filesystem
63
+
64
+ if ( false === ( $creds = request_filesystem_credentials( $url, $method, false, false, $fields ) ) ) {
65
+ return true;
66
+ }
67
+
68
+ if ( ! WP_Filesystem( $creds ) ) {
69
+ request_filesystem_credentials( $url, $method, true, false, $fields ); // Setup WP_Filesystem
70
+ return true;
71
+ }
72
+
73
+ require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; // Need for plugins_api
74
+ require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; // Need for upgrade classes
75
+
76
+ /** Prep variables for Plugin_Installer_Skin class */
77
+ $title = sprintf( __( 'Installing %s', 'siteorigin-panels' ), $plugin['name'] );
78
+ $url = add_query_arg( array(
79
+ 'action' => 'install-plugin',
80
+ 'plugin' => urlencode( $plugin['slug'] )
81
+ ), 'update.php' );
82
+ if ( isset( $_GET['from'] ) ) {
83
+ $url .= add_query_arg( 'from', urlencode( stripslashes( $_GET['from'] ) ), $url );
84
+ }
85
+
86
+ $nonce = 'install-plugin_' . $plugin['slug'];
87
+
88
+ // Find the source of the plugin
89
+ $source = ! empty( $plugin['source'] ) ? $plugin['source'] : 'http://downloads.wordpress.org/plugin/' . urlencode( $plugin['slug'] ) . '.zip';
90
+
91
+ /** Create a new instance of Plugin_Upgrader */
92
+ $upgrader = new Plugin_Upgrader( $skin = new Plugin_Installer_Skin( compact( 'type', 'title', 'url', 'nonce', 'plugin', 'api' ) ) );
93
+
94
+ /** Perform the action and install the plugin from the $source urldecode() */
95
+ $upgrader->install( $source );
96
+
97
+ /** Flush plugins cache so we can make sure that the installed plugins list is always up to date */
98
+ wp_cache_flush();
99
+ }
100
+ ?>
101
+ </div>
102
+ <?php
103
+ }
104
+
105
+ static function install_url( $plugin, $plugin_name, $source = false ) {
106
+ // This is to prevent the issue where this URL is called from outside the admin
107
+ if ( ! is_admin() || ! function_exists( 'get_plugins' ) ) {
108
+ return false;
109
+ }
110
+
111
+ $plugins = get_plugins();
112
+ $plugins = array_keys( $plugins );
113
+
114
+ $installed = false;
115
+ foreach ( $plugins as $plugin_path ) {
116
+ if ( strpos( $plugin_path, $plugin . '/' ) === 0 ) {
117
+ $installed = true;
118
+ break;
119
+ }
120
+ }
121
+
122
+ if ( $installed && ! is_plugin_active( $plugin ) ) {
123
+ return wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=' . $plugin_path ), 'activate-plugin_' . $plugin_path );
124
+ } elseif ( $installed && is_plugin_active( $plugin ) ) {
125
+ return '#';
126
+ } else {
127
+ return wp_nonce_url(
128
+ add_query_arg(
129
+ array(
130
+ 'page' => 'siteorigin_panels_plugin_activation',
131
+ 'plugin' => $plugin,
132
+ 'plugin_name' => $plugin_name,
133
+ 'plugin_source' => ! empty( $source ) ? urlencode( $source ) : false,
134
+ 'siteorigin-pa-install' => 'install-plugin',
135
+ ),
136
+ admin_url( 'plugins.php' )
137
+ ),
138
+ 'siteorigin-pa-install'
139
+ );
140
+ }
141
+ }
142
+
143
+ }
inc/admin.php ADDED
@@ -0,0 +1,1280 @@