Version Description
(June 21, 2019) = * [Feature] Added revision control * [Feature] Added the ability to manage actions while editing i.e. undo and redo * [Feature] Added keyboard options like ctrl+c, ctrl+v, ctrl+z, ctrl+y
Download this release
Release Info
Developer | pagelayer |
Plugin | Page Builder: PageLayer – Drag and Drop website builder |
Version | 0.9.5 |
Comparing to | |
See all releases |
Code changes from version 0.9.4 to 0.9.5
- css/pagelayer-editor.css +98 -4
- css/pagelayer-frontend.css +339 -6
- init.php +13 -231
- js/pagelayer-editor.js +553 -2
- js/pagelayer-frontend.js +70 -0
- js/properties.js +26 -6
- languages/en.json +86 -4
- main/ajax.php +529 -0
- main/functions.php +33 -0
- main/live.php +1 -0
- main/shortcode_functions.php +194 -0
- main/shortcodes.php +2 -2
- pagelayer.php +1 -1
- readme.txt +8 -2
css/pagelayer-editor.css
CHANGED
@@ -393,7 +393,8 @@ float:right;
|
|
393 |
|
394 |
/* Pagelayer editor panel tabs*/
|
395 |
|
396 |
-
.pagelayer-elpd-tab
|
|
|
397 |
display: inline-block;
|
398 |
font-size: 13px;
|
399 |
cursor: pointer;
|
@@ -417,11 +418,32 @@ display: none;
|
|
417 |
display: block;
|
418 |
}
|
419 |
|
420 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
421 |
color: #3e8ef7;
|
422 |
}
|
423 |
|
424 |
-
.pagelayer-elpd-tabs
|
|
|
425 |
background-color: #fff;
|
426 |
border-bottom: 1px solid #d3d3d3;
|
427 |
}
|
@@ -1463,6 +1485,7 @@ padding:1px;
|
|
1463 |
.pagelayer-pl_countdown:before{content:"\e941"}
|
1464 |
.pagelayer-pl_pricing:before{content:"\e933"}
|
1465 |
.pagelayer-pl_contact:before{content:"\f298"}
|
|
|
1466 |
.pagelayer-pl_testimonial:before{content:"\e906"}
|
1467 |
.pagelayer-pl_alert:before{content:"\f06a"}
|
1468 |
.pagelayer-pl_anchor:before{content:"\f13d"}
|
@@ -1477,6 +1500,9 @@ padding:1px;
|
|
1477 |
.pagelayer-pl_collapse:before{content:"\f233"}
|
1478 |
.pagelayer-pl_iconbox:before{content:"\e912"}
|
1479 |
.pagelayer-pl_tooltip:before{content:"\f27a"} /*f18d*/
|
|
|
|
|
|
|
1480 |
.pagelayer-pl_badge:before{content:"\f2c1"}
|
1481 |
.pagelayer-pl_wp_widgets:before{content:"\e945"}
|
1482 |
.pagelayer-pl_wp_custom_menu:before{content:"\e92a"}
|
@@ -1541,4 +1567,72 @@ box-shadow: #000 0 0 2px;
|
|
1541 |
z-index: 10;
|
1542 |
}
|
1543 |
|
1544 |
-
/* Trumbowyg color widget style end */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
393 |
|
394 |
/* Pagelayer editor panel tabs*/
|
395 |
|
396 |
+
.pagelayer-elpd-tab,
|
397 |
+
.pagelayer-history-tab{
|
398 |
display: inline-block;
|
399 |
font-size: 13px;
|
400 |
cursor: pointer;
|
418 |
display: block;
|
419 |
}
|
420 |
|
421 |
+
.pagelayer-history-section{
|
422 |
+
display:none;
|
423 |
+
}
|
424 |
+
|
425 |
+
.pagelayer-history-body{
|
426 |
+
margin:10px 0px;
|
427 |
+
padding:10px;
|
428 |
+
background-color:#ffffff;
|
429 |
+
}
|
430 |
+
|
431 |
+
.pagelayer-history-section.active{
|
432 |
+
display:block;
|
433 |
+
}
|
434 |
+
|
435 |
+
.pagelayer-history-section.active[pagelayer-show-tab="actions"]{
|
436 |
+
display:flex;
|
437 |
+
flex-direction:column-reverse;
|
438 |
+
}
|
439 |
+
|
440 |
+
[pagelayer-elpd-active-tab="1"],
|
441 |
+
[pagelayer-history-active-tab="1"] {
|
442 |
color: #3e8ef7;
|
443 |
}
|
444 |
|
445 |
+
.pagelayer-elpd-tabs,
|
446 |
+
.pagelayer-history-tabs {
|
447 |
background-color: #fff;
|
448 |
border-bottom: 1px solid #d3d3d3;
|
449 |
}
|
1485 |
.pagelayer-pl_countdown:before{content:"\e941"}
|
1486 |
.pagelayer-pl_pricing:before{content:"\e933"}
|
1487 |
.pagelayer-pl_contact:before{content:"\f298"}
|
1488 |
+
.pagelayer-pl_search:before{content:"\f002"}
|
1489 |
.pagelayer-pl_testimonial:before{content:"\e906"}
|
1490 |
.pagelayer-pl_alert:before{content:"\f06a"}
|
1491 |
.pagelayer-pl_anchor:before{content:"\f13d"}
|
1500 |
.pagelayer-pl_collapse:before{content:"\f233"}
|
1501 |
.pagelayer-pl_iconbox:before{content:"\e912"}
|
1502 |
.pagelayer-pl_tooltip:before{content:"\f27a"} /*f18d*/
|
1503 |
+
.pagelayer-pl_post_comment:before{content:"\f0e6"}
|
1504 |
+
.pagelayer-pl_post_info:before{content:"\f05a"}
|
1505 |
+
.pagelayer-pl_post_nav:before{content:"\f0ec"}
|
1506 |
.pagelayer-pl_badge:before{content:"\f2c1"}
|
1507 |
.pagelayer-pl_wp_widgets:before{content:"\e945"}
|
1508 |
.pagelayer-pl_wp_custom_menu:before{content:"\e92a"}
|
1567 |
z-index: 10;
|
1568 |
}
|
1569 |
|
1570 |
+
/* Trumbowyg color widget style end */
|
1571 |
+
|
1572 |
+
/* Pagelayer history style*/
|
1573 |
+
|
1574 |
+
.pagelayer-revision-holder,
|
1575 |
+
.pagelayer-history-holder{
|
1576 |
+
border: 1px solid #b7b5b5fa;
|
1577 |
+
margin-bottom: 10px;
|
1578 |
+
padding: 10px;
|
1579 |
+
display: -webkit-box;
|
1580 |
+
display: -webkit-flex;
|
1581 |
+
display: -ms-flexbox;
|
1582 |
+
display: flex;
|
1583 |
+
-webkit-box-align: center;
|
1584 |
+
-webkit-align-items: center;
|
1585 |
+
-ms-flex-align: center;
|
1586 |
+
align-items: center;
|
1587 |
+
font-size: 12px;
|
1588 |
+
color:#505050;
|
1589 |
+
}
|
1590 |
+
|
1591 |
+
.pagelayer-history,
|
1592 |
+
.pagelayer-history-hidden{
|
1593 |
+
display:none;
|
1594 |
+
}
|
1595 |
+
|
1596 |
+
.pagelayer-revision-holder:hover,
|
1597 |
+
.pagelayer-history-holder:hover,
|
1598 |
+
.pagelayer-history-holder.current_active_item{
|
1599 |
+
background-color:#efefef;
|
1600 |
+
}
|
1601 |
+
|
1602 |
+
.pagelayer-revision-img-holder{
|
1603 |
+
border-radius: 50%;
|
1604 |
+
overflow: hidden;
|
1605 |
+
margin-right:10px;
|
1606 |
+
}
|
1607 |
+
|
1608 |
+
.pagelayer-revision-detail-holder,
|
1609 |
+
.pagelayer-history-detail-holder{
|
1610 |
+
flex:1;
|
1611 |
+
}
|
1612 |
+
|
1613 |
+
.pagelayer-revision-holder .pagelayer-revision-delete,
|
1614 |
+
.pagelayer-history-holder .pagelayer-history-check{
|
1615 |
+
display:none;
|
1616 |
+
}
|
1617 |
+
|
1618 |
+
.pagelayer-revision-holder:hover .pagelayer-revision-delete,
|
1619 |
+
.pagelayer-history-holder.current_active_item .pagelayer-history-check{
|
1620 |
+
display:block;
|
1621 |
+
}
|
1622 |
+
|
1623 |
+
.pagelayer-revision-delete:hover{
|
1624 |
+
cursor:pointer;
|
1625 |
+
}
|
1626 |
+
|
1627 |
+
.pagelayer-revision-img-holder img{
|
1628 |
+
max-width: 100%;
|
1629 |
+
width: 20px;
|
1630 |
+
height: 20px;
|
1631 |
+
}
|
1632 |
+
|
1633 |
+
.pagelayer-history-holder span{
|
1634 |
+
margin-right:5px;
|
1635 |
+
}
|
1636 |
+
|
1637 |
+
|
1638 |
+
/* Pagelayer history end*/
|
css/pagelayer-frontend.css
CHANGED
@@ -2002,27 +2002,250 @@ box-shadow: none !important;
|
|
2002 |
}
|
2003 |
|
2004 |
|
2005 |
-
/* Primary Menu
|
2006 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007 |
display: inline-block;
|
2008 |
font-weight: 600;
|
2009 |
}
|
2010 |
|
2011 |
-
.pagelayer-menu-type-
|
2012 |
box-shadow: none;
|
2013 |
border: none;
|
2014 |
}
|
2015 |
|
2016 |
-
.pagelayer-menu-type-horizontal
|
2017 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018 |
list-style: none;
|
2019 |
}
|
2020 |
|
2021 |
-
.pagelayer-menu-type-
|
|
|
2022 |
box-shadow: none;
|
2023 |
border: none;
|
2024 |
}
|
2025 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026 |
/* Primary Menu End */
|
2027 |
|
2028 |
|
@@ -2722,3 +2945,113 @@ visibility:visible;
|
|
2722 |
|
2723 |
/* Image Hotspot end */
|
2724 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2002 |
}
|
2003 |
|
2004 |
|
2005 |
+
/* Primary Menu */
|
2006 |
+
|
2007 |
+
.pagelayer-wp-menu-container .menu a{
|
2008 |
+
display:flex;
|
2009 |
+
box-shadow: none;
|
2010 |
+
white-space: nowrap;
|
2011 |
+
position:relative;
|
2012 |
+
}
|
2013 |
+
|
2014 |
+
.pagelayer-menu-type-horizontal .sub-menu{
|
2015 |
+
z-index:999;
|
2016 |
+
}
|
2017 |
+
|
2018 |
+
.pagelayer-wp-menu-container ul,
|
2019 |
+
.pagelayer-wp-menu-container ul.sub-menu{
|
2020 |
+
margin-left:0px;
|
2021 |
+
}
|
2022 |
+
|
2023 |
+
.pagelayer-menu-type-horizontal *{
|
2024 |
+
transition: all 0.5s;
|
2025 |
+
}
|
2026 |
+
|
2027 |
+
.pagelayer-menu-type-horizontal li{
|
2028 |
display: inline-block;
|
2029 |
font-weight: 600;
|
2030 |
}
|
2031 |
|
2032 |
+
.pagelayer-menu-type-horizontal li a{
|
2033 |
box-shadow: none;
|
2034 |
border: none;
|
2035 |
}
|
2036 |
|
2037 |
+
.pagelayer-menu-type-horizontal .sub-menu{
|
2038 |
+
position:absolute;
|
2039 |
+
min-width: 100%;
|
2040 |
+
}
|
2041 |
+
|
2042 |
+
.pagelayer-menu-type-horizontal .sub-menu .sub-menu{
|
2043 |
+
top:0px
|
2044 |
+
}
|
2045 |
+
|
2046 |
+
.pagelayer-menu-type-horizontal ul li{
|
2047 |
+
position:relative;
|
2048 |
+
}
|
2049 |
+
|
2050 |
+
.pagelayer-wp-menu-container ul li span.after-icon{
|
2051 |
+
height: auto;
|
2052 |
+
width: 100%;
|
2053 |
+
position: relative;
|
2054 |
+
pointer-events: auto;
|
2055 |
+
line-height:inherit;
|
2056 |
+
color: inherit;
|
2057 |
+
font-size: inherit;
|
2058 |
+
margin-left:10px;
|
2059 |
+
padding-left:5px;
|
2060 |
+
padding-right:5px;
|
2061 |
+
}
|
2062 |
+
|
2063 |
+
.pagelayer-wp-menu-container:not([data-align="left"]) .menu span.after-icon{
|
2064 |
+
width:auto;
|
2065 |
+
}
|
2066 |
+
|
2067 |
+
.pagelayer-wp-menu-container[data-align="right"] .menu a{justify-content: flex-end;}
|
2068 |
+
.pagelayer-wp-menu-container[data-align="left"] .menu a{justify-content: left;}
|
2069 |
+
.pagelayer-wp-menu-container[data-align="center"] .menu a{justify-content: center;}
|
2070 |
+
|
2071 |
+
.pagelayer-wp-menu-container ul li span.after-icon:before{
|
2072 |
+
position:absolute;
|
2073 |
+
right:0;
|
2074 |
+
}
|
2075 |
+
|
2076 |
+
.pagelayer-wp-menu-container .sub-menu,
|
2077 |
+
.pagelayer-primary-menu-bar{
|
2078 |
+
display:none;
|
2079 |
+
}
|
2080 |
+
|
2081 |
+
.pagelayer-menu-type-horizontal .sub-menu li{
|
2082 |
+
display:block;
|
2083 |
+
}
|
2084 |
+
|
2085 |
+
.pagelayer-primary-menu-bar .fa{
|
2086 |
+
padding:5px;
|
2087 |
+
}
|
2088 |
+
|
2089 |
+
/* define fa-times-thin icon*/
|
2090 |
+
.fa-times-thin:before {
|
2091 |
+
content: '\00d7';
|
2092 |
+
}
|
2093 |
+
|
2094 |
+
.pagelayer-menu-type-vertical li{
|
2095 |
list-style: none;
|
2096 |
}
|
2097 |
|
2098 |
+
.pagelayer-menu-type-vertical li a{
|
2099 |
+
margin-top: 6px !important;
|
2100 |
box-shadow: none;
|
2101 |
border: none;
|
2102 |
}
|
2103 |
|
2104 |
+
.pagelayer-menu-type-vertical ul.menu>li>ul.sub-menu{
|
2105 |
+
margin-left:0px;
|
2106 |
+
}
|
2107 |
+
|
2108 |
+
.pagelayer-wp-menu-holder[data-layout="dropdown"] .pagelayer-primary-menu-bar{
|
2109 |
+
display:block;
|
2110 |
+
}
|
2111 |
+
|
2112 |
+
.pagelayer-wp-menu-holder[data-layout="dropdown"] ul.menu{
|
2113 |
+
display:none;
|
2114 |
+
}
|
2115 |
+
|
2116 |
+
.pagelayer-menu-hover-underline:not(.none) ul.menu>li>a:before,
|
2117 |
+
.pagelayer-menu-hover-framed:not(.none) ul.menu>li>a:before,
|
2118 |
+
.pagelayer-menu-hover-doubleline:not(.none) ul.menu>li>a:before,
|
2119 |
+
.pagelayer-menu-hover-doubleline:not(.none) ul.menu>li>a:after,
|
2120 |
+
.pagelayer-menu-hover-overline:not(.none) ul.menu>li>a:before{
|
2121 |
+
position: absolute;
|
2122 |
+
content: '';
|
2123 |
+
left: 0px;
|
2124 |
+
bottom: 0px;
|
2125 |
+
height: 3px;
|
2126 |
+
width: 0px;
|
2127 |
+
background-color: #2154CF;
|
2128 |
+
transition: all 500ms ease;
|
2129 |
+
-moz-transition: all 500ms ease;
|
2130 |
+
-webkit-transition: all 500ms ease;
|
2131 |
+
-ms-transition: all 500ms ease;
|
2132 |
+
-o-transition: all 500ms ease;
|
2133 |
+
border-width:0px;
|
2134 |
+
}
|
2135 |
+
|
2136 |
+
.pagelayer-menu-hover-doubleline ul.menu>li>a:after{
|
2137 |
+
left:unset;
|
2138 |
+
right:0;
|
2139 |
+
}
|
2140 |
+
|
2141 |
+
.pagelayer-menu-hover-framed ul.menu>li>a:before{
|
2142 |
+
background-color:unset !important;
|
2143 |
+
height:100%;
|
2144 |
+
}
|
2145 |
+
.pagelayer-menu-hover-framed ul.menu>li>a:hover:before{
|
2146 |
+
border:3px solid #2154CF;
|
2147 |
+
}
|
2148 |
+
|
2149 |
+
.pagelayer-menu-hover-overline ul.menu>li>a:before,
|
2150 |
+
.pagelayer-menu-hover-doubleline ul.menu>li>a:before{
|
2151 |
+
top:0;
|
2152 |
+
bottom:unset;
|
2153 |
+
}
|
2154 |
+
|
2155 |
+
.pagelayer-menu-hover-underline.dropin ul.menu>li>a:before,
|
2156 |
+
.pagelayer-menu-hover-framed.dropin ul.menu>li>a:before,
|
2157 |
+
.pagelayer-menu-hover-doubleline.dropin ul.menu>li>a:before,
|
2158 |
+
.pagelayer-menu-hover-doubleline.dropin ul.menu>li>a:after,
|
2159 |
+
.pagelayer-menu-hover-overline.dropin ul.menu>li>a:before{
|
2160 |
+
width:100%;
|
2161 |
+
opacity:0;
|
2162 |
+
bottom:-5px;
|
2163 |
+
}
|
2164 |
+
|
2165 |
+
.pagelayer-menu-hover-underline.dropout ul.menu>li>a:before,
|
2166 |
+
.pagelayer-menu-hover-framed.dropout ul.menu>li>a:before,
|
2167 |
+
.pagelayer-menu-hover-doubleline.dropout ul.menu>li>a:before,
|
2168 |
+
.pagelayer-menu-hover-doubleline.dropout ul.menu>li>a:after,
|
2169 |
+
.pagelayer-menu-hover-overline.dropout ul.menu>li>a:before{
|
2170 |
+
width:100%;
|
2171 |
+
opacity:0;
|
2172 |
+
bottom:5px;
|
2173 |
+
}
|
2174 |
+
|
2175 |
+
.pagelayer-menu-hover-underline.dropin ul.menu>li>a:hover:before,
|
2176 |
+
.pagelayer-menu-hover-framed.dropin ul.menu>li>a:hover:before,
|
2177 |
+
.pagelayer-menu-hover-doubleline.dropin ul.menu>li>a:hover:before,
|
2178 |
+
.pagelayer-menu-hover-doubleline.dropin ul.menu>li>a:hover:after,
|
2179 |
+
.pagelayer-menu-hover-overline.dropin ul.menu>li>a:hover:before,
|
2180 |
+
.pagelayer-menu-hover-underline.dropout ul.menu>li>a:hover:before,
|
2181 |
+
.pagelayer-menu-hover-framed.dropout ul.menu>li>a:hover:before,
|
2182 |
+
.pagelayer-menu-hover-doubleline.dropout ul.menu>li>a:hover:before,
|
2183 |
+
.pagelayer-menu-hover-doubleline.dropout ul.menu>li>a:hover:after,
|
2184 |
+
.pagelayer-menu-hover-overline.dropout ul.menu>li>a:hover:before{
|
2185 |
+
bottom:0px;
|
2186 |
+
}
|
2187 |
+
|
2188 |
+
.pagelayer-menu-hover-underline.grow ul.menu>li>a:before,
|
2189 |
+
.pagelayer-menu-hover-framed.grow ul.menu>li>a:before,
|
2190 |
+
.pagelayer-menu-hover-doubleline.grow ul.menu>li>a:before,
|
2191 |
+
.pagelayer-menu-hover-doubleline.grow ul.menu>li>a:after,
|
2192 |
+
.pagelayer-menu-hover-overline.grow ul.menu>li>a:before{
|
2193 |
+
width:100%;
|
2194 |
+
transform:scale(0);
|
2195 |
+
}
|
2196 |
+
|
2197 |
+
.pagelayer-menu-hover-underline.fade ul.menu>li>a:before,
|
2198 |
+
.pagelayer-menu-hover-framed.fade ul.menu>li>a:before,
|
2199 |
+
.pagelayer-menu-hover-doubleline.fade ul.menu>li>a:before,
|
2200 |
+
.pagelayer-menu-hover-doubleline.fade ul.menu>li>a:after,
|
2201 |
+
.pagelayer-menu-hover-overline.fade ul.menu>li>a:before{
|
2202 |
+
width:100%;
|
2203 |
+
transition-duration:1000ms;
|
2204 |
+
opacity:0;
|
2205 |
+
}
|
2206 |
+
|
2207 |
+
.pagelayer-menu-hover-underline ul.menu>li>a:hover:before,
|
2208 |
+
.pagelayer-menu-hover-framed ul.menu>li>a:hover:before,
|
2209 |
+
.pagelayer-menu-hover-doubleline ul.menu>li>a:hover:before,
|
2210 |
+
.pagelayer-menu-hover-doubleline ul.menu>li>a:hover:after,
|
2211 |
+
.pagelayer-menu-hover-overline ul.menu>li>a:hover:before{
|
2212 |
+
transform:scale(1);
|
2213 |
+
opacity:1;
|
2214 |
+
width:100%;
|
2215 |
+
}
|
2216 |
+
|
2217 |
+
.pagelayer-menu-hover-text ul.menu>li>a:hover{
|
2218 |
+
transform:scale(1.2);
|
2219 |
+
}
|
2220 |
+
|
2221 |
+
@media screen and (min-width: 782px){
|
2222 |
+
.pagelayer-menu-type-horizontal .menu li:hover > ul.sub-menu{
|
2223 |
+
display:block;
|
2224 |
+
}
|
2225 |
+
|
2226 |
+
.pagelayer-menu-type-horizontal .sub-menu a{
|
2227 |
+
margin-left:0px !important;
|
2228 |
+
}
|
2229 |
+
}
|
2230 |
+
|
2231 |
+
@media screen and (max-width: 782px){
|
2232 |
+
.pagelayer-menu-type-horizontal ul.menu{
|
2233 |
+
display:none;
|
2234 |
+
}
|
2235 |
+
.pagelayer-menu-type-horizontal li,
|
2236 |
+
.pagelayer-primary-menu-bar{
|
2237 |
+
display: block;
|
2238 |
+
}
|
2239 |
+
.pagelayer-menu-type-horizontal .sub-menu{
|
2240 |
+
position:relative;
|
2241 |
+
}
|
2242 |
+
}
|
2243 |
+
|
2244 |
+
.pagelayer-togglt-on ul.menu,
|
2245 |
+
.active-sub-menu > ul{
|
2246 |
+
display:block !important;
|
2247 |
+
}
|
2248 |
+
|
2249 |
/* Primary Menu End */
|
2250 |
|
2251 |
|
2945 |
|
2946 |
/* Image Hotspot end */
|
2947 |
|
2948 |
+
/* Search Form */
|
2949 |
+
.pagelayer-search-classic .pagelayer-search-fields{
|
2950 |
+
display: flex;
|
2951 |
+
overflow:hidden;
|
2952 |
+
}
|
2953 |
+
|
2954 |
+
.pagelayer-search-classic .pagelayer-search-fields input.pagelayer-search-input{
|
2955 |
+
/*background:none;*/
|
2956 |
+
border-width:0px;
|
2957 |
+
}
|
2958 |
+
|
2959 |
+
.pagelayer-search-classic .pagelayer-search-fields .pagelayer-search-submit{
|
2960 |
+
border-radius:0px;
|
2961 |
+
}
|
2962 |
+
|
2963 |
+
.pagelayer-search-toggle,
|
2964 |
+
.pagelayer-search-full-screen .pagelayer-search-fields{
|
2965 |
+
display:none;
|
2966 |
+
}
|
2967 |
+
|
2968 |
+
.pagelayer-search-full-screen .pagelayer-search-toggle{
|
2969 |
+
display:inline-block;
|
2970 |
+
text-align: center;
|
2971 |
+
}
|
2972 |
+
|
2973 |
+
.pagelayer-search-full-screen .pagelayer-search-fields.show{
|
2974 |
+
position: fixed;
|
2975 |
+
top: 0;
|
2976 |
+
left: 0;
|
2977 |
+
background: #211c1c;
|
2978 |
+
bottom: 0;
|
2979 |
+
right: 0;
|
2980 |
+
z-index: 99;
|
2981 |
+
align-items: center;
|
2982 |
+
display: flex;
|
2983 |
+
text-align: center;
|
2984 |
+
flex-direction: column;
|
2985 |
+
}
|
2986 |
+
|
2987 |
+
.pagelayer-search-full-screen .pagelayer-search-input,
|
2988 |
+
.pagelayer-search-full-screen .pagelayer-search-input:focus{
|
2989 |
+
width: 60%;
|
2990 |
+
text-align: center;
|
2991 |
+
background: transparent;
|
2992 |
+
border-width: 0;
|
2993 |
+
border-bottom-width: 2px;
|
2994 |
+
position: absolute;
|
2995 |
+
top: 50%;
|
2996 |
+
color:#fff;
|
2997 |
+
}
|
2998 |
+
|
2999 |
+
.pagelayer-search-full-screen .pagelayer-search-submit{
|
3000 |
+
display:none;
|
3001 |
+
}
|
3002 |
+
|
3003 |
+
.pagelayer-post-nav-container{
|
3004 |
+
display: flex;
|
3005 |
+
align-items: center;
|
3006 |
+
}
|
3007 |
+
|
3008 |
+
.pagelayer-prev-post a,
|
3009 |
+
.pagelayer-next-post a{
|
3010 |
+
display: inline-flex;
|
3011 |
+
align-items: center;
|
3012 |
+
}
|
3013 |
+
|
3014 |
+
.pagelayer-next-post a .pagelayer-post-nav-icon{
|
3015 |
+
padding-left:12px;
|
3016 |
+
}
|
3017 |
+
|
3018 |
+
.pagelayer-prev-post a .pagelayer-post-nav-icon{
|
3019 |
+
padding-right:12px;
|
3020 |
+
}
|
3021 |
+
|
3022 |
+
.pagelayer-next-post{
|
3023 |
+
text-align:right;
|
3024 |
+
}
|
3025 |
+
|
3026 |
+
.pagelayer-prev-post a:hover,
|
3027 |
+
.pagelayer-next-post a:hover{
|
3028 |
+
text-decoration:none;
|
3029 |
+
}
|
3030 |
+
|
3031 |
+
.pagelayer-prev-post, .pagelayer-next-post{
|
3032 |
+
width: calc(50% - 1px);
|
3033 |
+
}
|
3034 |
+
|
3035 |
+
.pagelayer-post-nav-container .pagelayer-prev-holder,
|
3036 |
+
.pagelayer-post-nav-container .pagelayer-next-holder{
|
3037 |
+
display: -webkit-box;
|
3038 |
+
display: -webkit-flex;
|
3039 |
+
display: -ms-flexbox;
|
3040 |
+
display: flex;
|
3041 |
+
-webkit-box-orient: vertical;
|
3042 |
+
-webkit-box-direction: normal;
|
3043 |
+
-webkit-flex-direction: column;
|
3044 |
+
-ms-flex-direction: column;
|
3045 |
+
flex-direction: column;
|
3046 |
+
}
|
3047 |
+
|
3048 |
+
.pagelayer-post-nav-separator{
|
3049 |
+
align-self: stretch;
|
3050 |
+
}
|
3051 |
+
|
3052 |
+
/* Search Form end*/
|
3053 |
+
/* Post info*/
|
3054 |
+
.pagelayer-post-info-vertical > div{
|
3055 |
+
display:inline-block;
|
3056 |
+
}
|
3057 |
+
/* Post info end*/
|
init.php
CHANGED
@@ -5,7 +5,7 @@ if (!defined('ABSPATH')) exit;
|
|
5 |
|
6 |
define('PAGELAYER_BASE', plugin_basename(__FILE__));
|
7 |
define('PAGELAYER_FILE', __FILE__);
|
8 |
-
define('PAGELAYER_VERSION', '0.9.
|
9 |
define('PAGELAYER_DIR', WP_PLUGIN_DIR.'/'.basename(dirname(PAGELAYER_FILE)));
|
10 |
define('PAGELAYER_SLUG', 'pagelayer');
|
11 |
define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
|
@@ -216,9 +216,14 @@ function pagelayer_enqueue_frontend($force = false){
|
|
216 |
|
217 |
pagelayer_load_shortcodes();
|
218 |
$pagelayer->cache['enqueue_frontend'] = true;
|
219 |
-
|
|
|
|
|
|
|
|
|
|
|
220 |
// Enqueue our Editor's Frontend JS
|
221 |
-
wp_register_script('pagelayer-frontend', PAGELAYER_JS.'/givejs.php?give=pagelayer-frontend.js,nivo-lightbox.min.js,slippry.min.js,wow.min.js,jquery-numerator.js,simpleParallax.min.js', array('jquery'), PAGELAYER_VERSION);
|
222 |
wp_enqueue_script('pagelayer-frontend');
|
223 |
|
224 |
wp_register_style('pagelayer-frontend', PAGELAYER_CSS.'/givecss.php?give=pagelayer-frontend.css,nivo-lightbox.css,slippry.css,animate.min.css', array(), PAGELAYER_VERSION);
|
@@ -300,6 +305,11 @@ function pagelayer_load_live(){
|
|
300 |
|
301 |
}
|
302 |
|
|
|
|
|
|
|
|
|
|
|
303 |
// Show the backend editor options
|
304 |
add_action('edit_form_after_title', 'pagelayer_after_title');
|
305 |
function pagelayer_after_title(){
|
@@ -373,231 +383,3 @@ function pagelayer_quick_link($actions, $post){
|
|
373 |
|
374 |
return $actions;
|
375 |
}
|
376 |
-
|
377 |
-
// The ajax handler
|
378 |
-
add_action('wp_ajax_pagelayer_wp_widget', 'pagelayer_wp_widget_ajax');
|
379 |
-
function pagelayer_wp_widget_ajax(){
|
380 |
-
|
381 |
-
global $pagelayer;
|
382 |
-
|
383 |
-
// Some AJAX security
|
384 |
-
check_ajax_referer('pagelayer_ajax', 'nonce');
|
385 |
-
|
386 |
-
pagelayer_load_shortcodes();
|
387 |
-
|
388 |
-
header('Content-Type: application/json');
|
389 |
-
|
390 |
-
$ret = [];
|
391 |
-
$tag = @$_POST['tag'];
|
392 |
-
//pagelayer_print($pagelayer->shortcodes[$tag]);
|
393 |
-
|
394 |
-
// No tag ?
|
395 |
-
if(empty($pagelayer->shortcodes[$tag])){
|
396 |
-
$ret['error'][] = 'No Tag';
|
397 |
-
echo json_encode($ret);
|
398 |
-
wp_die();
|
399 |
-
}
|
400 |
-
|
401 |
-
// Include the widgets
|
402 |
-
include_once(ABSPATH . 'wp-admin/includes/widgets.php');
|
403 |
-
|
404 |
-
$class = $pagelayer->shortcodes[$tag]['widget'];
|
405 |
-
|
406 |
-
// Check the widget class exists ?
|
407 |
-
if(empty($class) || !class_exists($class)){
|
408 |
-
$ret['error'][] = 'No Widget Class';
|
409 |
-
echo json_encode($ret);
|
410 |
-
wp_die();
|
411 |
-
}
|
412 |
-
|
413 |
-
$instance = [];
|
414 |
-
$widget = new $class();
|
415 |
-
$widget->_set('pagelayer-widget-1234567890');
|
416 |
-
|
417 |
-
// Is there any existing data ?
|
418 |
-
if(!empty($_POST['widget_data'])){
|
419 |
-
$json = json_decode(stripslashes($_POST['widget_data']), true);
|
420 |
-
//pagelayer_print($json);die();
|
421 |
-
if(!empty($json)){
|
422 |
-
$instance = $json;
|
423 |
-
}
|
424 |
-
}
|
425 |
-
|
426 |
-
// Are there any form values ?
|
427 |
-
if(!empty($_POST['values'])){
|
428 |
-
parse_str(stripslashes($_POST['values']), $data);
|
429 |
-
//pagelayer_print($data);die();
|
430 |
-
|
431 |
-
// Any data ?
|
432 |
-
if(!empty($data)){
|
433 |
-
|
434 |
-
// First key is useless
|
435 |
-
$data = current($data);
|
436 |
-
|
437 |
-
// Do we still have valid data ?
|
438 |
-
if(!empty($data)){
|
439 |
-
|
440 |
-
// 2nd key is useless and just over-ride instance
|
441 |
-
$instance = current($data);
|
442 |
-
|
443 |
-
}
|
444 |
-
}
|
445 |
-
}
|
446 |
-
|
447 |
-
// Get the form
|
448 |
-
ob_start();
|
449 |
-
$widget->form($instance);
|
450 |
-
$ret['form'] = ob_get_contents();
|
451 |
-
ob_end_clean();
|
452 |
-
|
453 |
-
// Get the html
|
454 |
-
ob_start();
|
455 |
-
$widget->widget([], $instance);
|
456 |
-
$ret['html'] = ob_get_contents();
|
457 |
-
ob_end_clean();
|
458 |
-
|
459 |
-
// Widget data to set
|
460 |
-
if(!empty($instance)){
|
461 |
-
$ret['widget_data'] = $instance;
|
462 |
-
}
|
463 |
-
|
464 |
-
echo json_encode($ret);
|
465 |
-
wp_die();
|
466 |
-
|
467 |
-
}
|
468 |
-
|
469 |
-
// Update Post content
|
470 |
-
add_action('wp_ajax_pagelayer_save_content', 'pagelayer_save_content');
|
471 |
-
function pagelayer_save_content(){
|
472 |
-
|
473 |
-
// Some AJAX security
|
474 |
-
check_ajax_referer('pagelayer_ajax', 'nonce');
|
475 |
-
|
476 |
-
$content = $_POST['pagelayer_update_content'];
|
477 |
-
|
478 |
-
$postID = (int) $_GET['postID'];
|
479 |
-
|
480 |
-
if(empty($postID)){
|
481 |
-
$msg['error'] = 'Invalid post ID';
|
482 |
-
}
|
483 |
-
|
484 |
-
// Check if the post exists
|
485 |
-
|
486 |
-
if(!empty($postID) && !empty($content)){
|
487 |
-
|
488 |
-
$post = array(
|
489 |
-
'ID' => $postID,
|
490 |
-
'post_content' => $content,
|
491 |
-
);
|
492 |
-
|
493 |
-
// Update the post into the database
|
494 |
-
wp_update_post($post);
|
495 |
-
|
496 |
-
if (is_wp_error($postID)) {
|
497 |
-
$msg['error'] = 'Unable to update the Post Content for some reason';
|
498 |
-
}else{
|
499 |
-
$msg['success'] = 'Post Content was updated successfully!';
|
500 |
-
}
|
501 |
-
|
502 |
-
}else{
|
503 |
-
$msg['error'] = "Unable to update the Post Content for some reason";
|
504 |
-
}
|
505 |
-
|
506 |
-
echo json_encode($msg);
|
507 |
-
wp_die();
|
508 |
-
|
509 |
-
}
|
510 |
-
|
511 |
-
// Shortcodes Widget Handler
|
512 |
-
add_action('wp_ajax_pagelayer_do_shortcodes', 'pagelayer_do_shortcodes');
|
513 |
-
function pagelayer_do_shortcodes(){
|
514 |
-
|
515 |
-
// Some AJAX security
|
516 |
-
check_ajax_referer('pagelayer_ajax', 'nonce');
|
517 |
-
|
518 |
-
$data = '';
|
519 |
-
if(isset($_REQUEST['shortcode_data'])){
|
520 |
-
$data = stripslashes($_REQUEST['shortcode_data']);
|
521 |
-
}
|
522 |
-
|
523 |
-
echo do_shortcode($data);
|
524 |
-
wp_die();
|
525 |
-
|
526 |
-
}
|
527 |
-
|
528 |
-
// Get the Site Title
|
529 |
-
add_action('wp_ajax_pagelayer_fetch_site_title', 'pagelayer_fetch_site_title');
|
530 |
-
function pagelayer_fetch_site_title(){
|
531 |
-
|
532 |
-
// Some AJAX security
|
533 |
-
check_ajax_referer('pagelayer_ajax', 'nonce');
|
534 |
-
|
535 |
-
echo get_bloginfo('name');
|
536 |
-
wp_die();
|
537 |
-
}
|
538 |
-
|
539 |
-
// Update the Site Title
|
540 |
-
add_action('wp_ajax_pagelayer_update_site_title', 'pagelayer_update_site_title');
|
541 |
-
function pagelayer_update_site_title(){
|
542 |
-
global $wpdb;
|
543 |
-
|
544 |
-
// Some AJAX security
|
545 |
-
check_ajax_referer('pagelayer_ajax', 'nonce');
|
546 |
-
|
547 |
-
$site_title = $_POST['site_title'];
|
548 |
-
|
549 |
-
update_option('blogname', $site_title);
|
550 |
-
|
551 |
-
$wpdb->query("UPDATE `sm_sitemeta`
|
552 |
-
SET meta_value = '".$site_title."'
|
553 |
-
WHERE meta_key = 'site_name'");
|
554 |
-
wp_die();
|
555 |
-
}
|
556 |
-
|
557 |
-
// Show the SideBars
|
558 |
-
add_action('wp_ajax_pagelayer_fetch_sidebar', 'pagelayer_fetch_sidebar');
|
559 |
-
function pagelayer_fetch_sidebar(){
|
560 |
-
|
561 |
-
global $wp_registered_sidebars;
|
562 |
-
|
563 |
-
// Some AJAX security
|
564 |
-
check_ajax_referer('pagelayer_ajax', 'nonce');
|
565 |
-
|
566 |
-
// Create a list
|
567 |
-
$pagelayer_wp_widgets = array();
|
568 |
-
|
569 |
-
foreach($wp_registered_sidebars as $v){
|
570 |
-
$pagelayer_wp_widgets[$v['id']] = $v['name'];
|
571 |
-
}
|
572 |
-
|
573 |
-
$id = @$_REQUEST['sidebar'];
|
574 |
-
|
575 |
-
if(function_exists('dynamic_sidebar') && !empty($pagelayer_wp_widgets[$id])) {
|
576 |
-
ob_start();
|
577 |
-
dynamic_sidebar($id);
|
578 |
-
$result = ob_get_clean();
|
579 |
-
}else{
|
580 |
-
$result = 'No such Widget Area !';
|
581 |
-
}
|
582 |
-
|
583 |
-
echo $result;
|
584 |
-
wp_die();
|
585 |
-
|
586 |
-
}
|
587 |
-
|
588 |
-
// Show the primary menu !
|
589 |
-
add_action('wp_ajax_pagelayer_fetch_primary_menu', 'pagelayer_fetch_primary_menu');
|
590 |
-
function pagelayer_fetch_primary_menu(){
|
591 |
-
|
592 |
-
// Some AJAX security
|
593 |
-
check_ajax_referer('pagelayer_ajax', 'nonce');
|
594 |
-
|
595 |
-
echo wp_nav_menu( array(
|
596 |
-
'menu' => 'primary-menu',
|
597 |
-
'menu_id' => 'pagelayer-header-menu',
|
598 |
-
'theme_location' => 'primary',
|
599 |
-
'menu_class' => 'primary-menu',
|
600 |
-
) );
|
601 |
-
|
602 |
-
wp_die();
|
603 |
-
}
|
5 |
|
6 |
define('PAGELAYER_BASE', plugin_basename(__FILE__));
|
7 |
define('PAGELAYER_FILE', __FILE__);
|
8 |
+
define('PAGELAYER_VERSION', '0.9.5');
|
9 |
define('PAGELAYER_DIR', WP_PLUGIN_DIR.'/'.basename(dirname(PAGELAYER_FILE)));
|
10 |
define('PAGELAYER_SLUG', 'pagelayer');
|
11 |
define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
|
216 |
|
217 |
pagelayer_load_shortcodes();
|
218 |
$pagelayer->cache['enqueue_frontend'] = true;
|
219 |
+
|
220 |
+
$premium_js = '';
|
221 |
+
if(defined('PAGELAYER_PREMIUM')){
|
222 |
+
$premium_js = ',chartist.min.js';
|
223 |
+
}
|
224 |
+
|
225 |
// Enqueue our Editor's Frontend JS
|
226 |
+
wp_register_script('pagelayer-frontend', PAGELAYER_JS.'/givejs.php?give=pagelayer-frontend.js,nivo-lightbox.min.js,slippry.min.js,wow.min.js,jquery-numerator.js,simpleParallax.min.js'.$premium_js, array('jquery'), PAGELAYER_VERSION);
|
227 |
wp_enqueue_script('pagelayer-frontend');
|
228 |
|
229 |
wp_register_style('pagelayer-frontend', PAGELAYER_CSS.'/givecss.php?give=pagelayer-frontend.css,nivo-lightbox.css,slippry.css,animate.min.css', array(), PAGELAYER_VERSION);
|
305 |
|
306 |
}
|
307 |
|
308 |
+
// If we are doing ajax and its a pagelayer ajax
|
309 |
+
if(wp_doing_ajax()){
|
310 |
+
include_once(PAGELAYER_DIR.'/main/ajax.php');
|
311 |
+
}
|
312 |
+
|
313 |
// Show the backend editor options
|
314 |
add_action('edit_form_after_title', 'pagelayer_after_title');
|
315 |
function pagelayer_after_title(){
|
383 |
|
384 |
return $actions;
|
385 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/pagelayer-editor.js
CHANGED
@@ -11,9 +11,12 @@ pagelayer = {
|
|
11 |
},
|
12 |
p : this,
|
13 |
copy_selected: '',
|
14 |
-
mouse: {x: -1, y: -1}
|
|
|
15 |
}
|
16 |
|
|
|
|
|
17 |
// Lets start
|
18 |
jQuery(document).ready(function(){
|
19 |
|
@@ -48,6 +51,10 @@ jQuery(document).ready(function(){
|
|
48 |
// Set up right click
|
49 |
pagelayer_left_click();
|
50 |
pagelayer_right_click();
|
|
|
|
|
|
|
|
|
51 |
|
52 |
});
|
53 |
|
@@ -600,6 +607,9 @@ function pagelayer_element_added(jEle){
|
|
600 |
var sc = jEle.attr('pagelayer-tag');
|
601 |
var id, par_id;
|
602 |
|
|
|
|
|
|
|
603 |
// Generate the HTML
|
604 |
html = pagelayer_create_sc(sc);
|
605 |
id = pagelayer_assign_id(html);
|
@@ -632,6 +642,20 @@ function pagelayer_element_added(jEle){
|
|
632 |
|
633 |
}
|
634 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
635 |
return id;
|
636 |
|
637 |
};
|
@@ -922,6 +946,8 @@ function pagelayer_left_click(){
|
|
922 |
|
923 |
jQuery('.entry-content').on('click', function(e){
|
924 |
|
|
|
|
|
925 |
// Hide the context menu
|
926 |
jQuery('.pagelayer-right-click-options').hide();
|
927 |
|
@@ -1059,6 +1085,41 @@ jQuery(document).keydown(function(event){
|
|
1059 |
pagelayer_delete_element('[pagelayer-active]');
|
1060 |
}
|
1061 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1062 |
});
|
1063 |
|
1064 |
// Delete an element as per the selector
|
@@ -1069,12 +1130,38 @@ function pagelayer_delete_element(selector){
|
|
1069 |
if(jEle.length > 0){
|
1070 |
|
1071 |
var id = pagelayer_assign_id(jEle);
|
|
|
1072 |
|
1073 |
// Is there a wrap
|
1074 |
var wrap = jQuery('[pagelayer-wrap-id="'+id+'"]');
|
1075 |
|
1076 |
var par = wrap.parent();
|
1077 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1078 |
wrap.remove();
|
1079 |
|
1080 |
pagelayer_empty_col(par);
|
@@ -1084,6 +1171,7 @@ function pagelayer_delete_element(selector){
|
|
1084 |
}
|
1085 |
|
1086 |
}
|
|
|
1087 |
pagelayer_isDirty = true;
|
1088 |
};
|
1089 |
|
@@ -1169,6 +1257,18 @@ function pagelayer_copy_element(selector, insertAfter){
|
|
1169 |
|
1170 |
pagelayer_element_setup('[pagelayer-id='+id+'], [pagelayer-id='+id+'] .pagelayer-ele', true);
|
1171 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1172 |
//If column then renumber columns
|
1173 |
if(tag == 'pl_col'){
|
1174 |
var row = src.parent().closest('.pagelayer-row');
|
@@ -1374,6 +1474,31 @@ function pagelayer_set_atts(jEle, atts, val){
|
|
1374 |
continue;
|
1375 |
}
|
1376 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1377 |
// Remove the attribute if its BLANK and there is no default for it
|
1378 |
// If there is a default, we set it to blank to keep record of the current val
|
1379 |
if(atts[x].length < 1){
|
@@ -1439,6 +1564,24 @@ function pagelayer_set_tmp_atts(jEle, atts, val){
|
|
1439 |
}
|
1440 |
|
1441 |
for(var x in atts){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1442 |
jEle.attr('pagelayer-tmp-'+x, atts[x]);
|
1443 |
}
|
1444 |
|
@@ -1947,6 +2090,7 @@ function pagelayer_save(){
|
|
1947 |
}else{
|
1948 |
pagelayer_isDirty = false;
|
1949 |
alert(obj['success']);
|
|
|
1950 |
}
|
1951 |
},
|
1952 |
error: function(errorThrown){
|
@@ -2179,6 +2323,7 @@ function pagelayer_leftbar(){
|
|
2179 |
|
2180 |
html += '</div>'+
|
2181 |
'<div id="pagelayer-elpd" class="pagelayer-elpd"></div>'+
|
|
|
2182 |
'</div>'+
|
2183 |
'</div>';
|
2184 |
|
@@ -2229,6 +2374,399 @@ function pagelayer_leftbar(){
|
|
2229 |
|
2230 |
};
|
2231 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2232 |
// Report an error
|
2233 |
function pagelayer_error(error, func){
|
2234 |
var prefix = func || '';
|
@@ -2249,13 +2787,16 @@ function pagelayer_bottombar(){
|
|
2249 |
'<i class="screen-mode fa fa-mobile" pagelayer-mode-data="mobile"></i>'+
|
2250 |
'</div>'+
|
2251 |
'</div>'+
|
|
|
2252 |
'</div>'+
|
2253 |
'</div>';
|
2254 |
|
2255 |
holder.html(html);
|
2256 |
holder.find('.pagelayer-update-button').on('click', function(){
|
2257 |
pagelayer_save();
|
|
|
2258 |
});
|
|
|
2259 |
holder.find('.pagelayer-close-button').on('click', function(){
|
2260 |
pagelayer_close();
|
2261 |
});
|
@@ -2268,7 +2809,17 @@ function pagelayer_bottombar(){
|
|
2268 |
holder.find('.pagelayer-mode-button').on('click', function(){
|
2269 |
holder.find('.pagelayer-mode-buttons-wrapper').toggle();
|
2270 |
});
|
2271 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2272 |
|
2273 |
|
2274 |
///////////////////////////////
|
11 |
},
|
12 |
p : this,
|
13 |
copy_selected: '',
|
14 |
+
mouse: {x: -1, y: -1},
|
15 |
+
history_action : true,
|
16 |
}
|
17 |
|
18 |
+
var pagelayer_history_obj = {}, pagelayer_revision_obj = {};
|
19 |
+
|
20 |
// Lets start
|
21 |
jQuery(document).ready(function(){
|
22 |
|
51 |
// Set up right click
|
52 |
pagelayer_left_click();
|
53 |
pagelayer_right_click();
|
54 |
+
|
55 |
+
// Setup pagelayer history
|
56 |
+
pagelayer_history_obj['action_data'] = [];
|
57 |
+
pagelayer_history_setup(true);
|
58 |
|
59 |
});
|
60 |
|
607 |
var sc = jEle.attr('pagelayer-tag');
|
608 |
var id, par_id;
|
609 |
|
610 |
+
// Set Pagelayer History FALSE to prevent saving attributes in action history
|
611 |
+
pagelayer.history_action = false;
|
612 |
+
|
613 |
// Generate the HTML
|
614 |
html = pagelayer_create_sc(sc);
|
615 |
id = pagelayer_assign_id(html);
|
642 |
|
643 |
}
|
644 |
|
645 |
+
// Save in action history
|
646 |
+
var cEle = pagelayer_near_by_ele(id, sc);
|
647 |
+
|
648 |
+
pagelayer_history_action_push({
|
649 |
+
'title' : pagelayer_shortcodes[sc]['name'],
|
650 |
+
'action' : 'Added',
|
651 |
+
'pl_id' : id,
|
652 |
+
'html' : html[0].outerHTML,
|
653 |
+
'cEle' : cEle
|
654 |
+
});
|
655 |
+
|
656 |
+
// Set pagelayer history TRUE
|
657 |
+
pagelayer.history_action = true;
|
658 |
+
|
659 |
return id;
|
660 |
|
661 |
};
|
946 |
|
947 |
jQuery('.entry-content').on('click', function(e){
|
948 |
|
949 |
+
e.preventDefault();// Added by Jivan in Actions / Revisions version
|
950 |
+
|
951 |
// Hide the context menu
|
952 |
jQuery('.pagelayer-right-click-options').hide();
|
953 |
|
1085 |
pagelayer_delete_element('[pagelayer-active]');
|
1086 |
}
|
1087 |
|
1088 |
+
// ctrl+z handle
|
1089 |
+
if(event.keyCode == 90 && event.ctrlKey){
|
1090 |
+
pagelayer_do_history('undo');
|
1091 |
+
}
|
1092 |
+
|
1093 |
+
// ctrl+y handle
|
1094 |
+
if(event.keyCode == 89 && event.ctrlKey){
|
1095 |
+
pagelayer_do_history('redo');
|
1096 |
+
}
|
1097 |
+
|
1098 |
+
// ctrl+c handle
|
1099 |
+
if(event.keyCode == 67 && event.ctrlKey){
|
1100 |
+
|
1101 |
+
// Check the active element
|
1102 |
+
if(pagelayer_active.el && pagelayer_active.el.id){
|
1103 |
+
pagelayer_copy_select("[pagelayer-id='"+pagelayer_active.el.id+"']");
|
1104 |
+
}
|
1105 |
+
|
1106 |
+
}
|
1107 |
+
|
1108 |
+
// ctrl+v handle
|
1109 |
+
if(event.keyCode == 86 && event.ctrlKey){
|
1110 |
+
|
1111 |
+
// Check the active element
|
1112 |
+
if(pagelayer_active.el && pagelayer_active.el.id){
|
1113 |
+
|
1114 |
+
var jEle = jQuery("[pagelayer-id='"+pagelayer_active.el.id+"']");
|
1115 |
+
|
1116 |
+
// Check if the any element is copied
|
1117 |
+
if(!pagelayer_empty(pagelayer.copy_selected) && pagelayer_can_copy_to(jEle)){
|
1118 |
+
pagelayer_paste_element("[pagelayer-id='"+pagelayer_active.el.id+"']");
|
1119 |
+
}
|
1120 |
+
|
1121 |
+
}
|
1122 |
+
}
|
1123 |
});
|
1124 |
|
1125 |
// Delete an element as per the selector
|
1130 |
if(jEle.length > 0){
|
1131 |
|
1132 |
var id = pagelayer_assign_id(jEle);
|
1133 |
+
var sc = pagelayer_tag(jEle);
|
1134 |
|
1135 |
// Is there a wrap
|
1136 |
var wrap = jQuery('[pagelayer-wrap-id="'+id+'"]');
|
1137 |
|
1138 |
var par = wrap.parent();
|
1139 |
|
1140 |
+
// Save this element in history action
|
1141 |
+
if(pagelayer.history_action){
|
1142 |
+
var cEle = pagelayer_near_by_ele(id, sc);
|
1143 |
+
|
1144 |
+
// To save in history, we need to save only element not the wraps as we call setup if we redo or undo
|
1145 |
+
jEle.find('style').remove();
|
1146 |
+
jEle.find('.pagelayer-ele-overlay').remove();
|
1147 |
+
|
1148 |
+
// Unwrap the wraps
|
1149 |
+
jEle.find('.pagelayer-ele').each(function (){
|
1150 |
+
var ele = jQuery(this);
|
1151 |
+
if(ele.parent().is('.pagelayer-ele-wrap')){
|
1152 |
+
ele.unwrap();
|
1153 |
+
}
|
1154 |
+
});
|
1155 |
+
|
1156 |
+
pagelayer_history_action_push({
|
1157 |
+
'title' : pagelayer_shortcodes[sc]['name'],
|
1158 |
+
'action' : 'Deleted',
|
1159 |
+
'pl_id' : id,
|
1160 |
+
'html' : jEle,
|
1161 |
+
'cEle' : cEle
|
1162 |
+
});
|
1163 |
+
}
|
1164 |
+
|
1165 |
wrap.remove();
|
1166 |
|
1167 |
pagelayer_empty_col(par);
|
1171 |
}
|
1172 |
|
1173 |
}
|
1174 |
+
|
1175 |
pagelayer_isDirty = true;
|
1176 |
};
|
1177 |
|
1257 |
|
1258 |
pagelayer_element_setup('[pagelayer-id='+id+'], [pagelayer-id='+id+'] .pagelayer-ele', true);
|
1259 |
|
1260 |
+
// Save this element in history action
|
1261 |
+
if(pagelayer.history_action){
|
1262 |
+
var cEle = pagelayer_near_by_ele(id, tag);
|
1263 |
+
pagelayer_history_action_push({
|
1264 |
+
'title' : pagelayer_shortcodes[tag]['name'],
|
1265 |
+
'action' : 'Copied',
|
1266 |
+
'pl_id' : id,
|
1267 |
+
'html' : jEle,
|
1268 |
+
'cEle' : cEle
|
1269 |
+
});
|
1270 |
+
}
|
1271 |
+
|
1272 |
//If column then renumber columns
|
1273 |
if(tag == 'pl_col'){
|
1274 |
var row = src.parent().closest('.pagelayer-row');
|
1474 |
continue;
|
1475 |
}
|
1476 |
|
1477 |
+
// Record History
|
1478 |
+
if(pagelayer.history_action){
|
1479 |
+
var attr_label = '';
|
1480 |
+
for(var section in all_props){
|
1481 |
+
for(var props in all_props[section]){
|
1482 |
+
if(props == x){
|
1483 |
+
attr_label = all_props[section][props]['label'];
|
1484 |
+
}
|
1485 |
+
}
|
1486 |
+
|
1487 |
+
}
|
1488 |
+
|
1489 |
+
var old_val = pagelayer_get_att(jEle, x) || '';
|
1490 |
+
pagelayer_history_action_push({
|
1491 |
+
'title' : all_props['name'],
|
1492 |
+
'subTitle' : attr_label,
|
1493 |
+
'action' : 'Edited',
|
1494 |
+
'attrType' : 'a_attr',
|
1495 |
+
'pl_id' : pagelayer_id(jEle),
|
1496 |
+
'atts' : x,
|
1497 |
+
'oldVal' : old_val,
|
1498 |
+
'newVal' : atts[x]
|
1499 |
+
});
|
1500 |
+
}
|
1501 |
+
|
1502 |
// Remove the attribute if its BLANK and there is no default for it
|
1503 |
// If there is a default, we set it to blank to keep record of the current val
|
1504 |
if(atts[x].length < 1){
|
1564 |
}
|
1565 |
|
1566 |
for(var x in atts){
|
1567 |
+
|
1568 |
+
// Record history
|
1569 |
+
if(pagelayer.history_action){
|
1570 |
+
|
1571 |
+
var old_val = pagelayer_get_tmp_att(jEle, x) || '';
|
1572 |
+
pagelayer_history_action_push({
|
1573 |
+
'title' : pagelayer_shortcodes[pagelayer_tag(jEle)]['name'],
|
1574 |
+
'subTitle' : x,
|
1575 |
+
'action' : 'Edited',
|
1576 |
+
'attrType' : 'tmp_attr',
|
1577 |
+
'pl_id' : pagelayer_id(jEle),
|
1578 |
+
'atts' : x,
|
1579 |
+
'oldVal' : old_val,
|
1580 |
+
'newVal' : atts[x]
|
1581 |
+
});
|
1582 |
+
|
1583 |
+
}
|
1584 |
+
|
1585 |
jEle.attr('pagelayer-tmp-'+x, atts[x]);
|
1586 |
}
|
1587 |
|
2090 |
}else{
|
2091 |
pagelayer_isDirty = false;
|
2092 |
alert(obj['success']);
|
2093 |
+
pagelayer_get_revision();
|
2094 |
}
|
2095 |
},
|
2096 |
error: function(errorThrown){
|
2323 |
|
2324 |
html += '</div>'+
|
2325 |
'<div id="pagelayer-elpd" class="pagelayer-elpd"></div>'+
|
2326 |
+
'<div id="pagelayer-history" class="pagelayer-history"></div>'+
|
2327 |
'</div>'+
|
2328 |
'</div>';
|
2329 |
|
2374 |
|
2375 |
};
|
2376 |
|
2377 |
+
// Get the closest element and method
|
2378 |
+
function pagelayer_near_by_ele(id, sc){
|
2379 |
+
|
2380 |
+
// Get the previous element of the id element
|
2381 |
+
var prevEle_id = jQuery('[pagelayer-wrap-id="'+id+'"]').prev().attr('pagelayer-wrap-id') || '';
|
2382 |
+
var method, cEle, args = {};
|
2383 |
+
|
2384 |
+
if(prevEle_id.length > 0){
|
2385 |
+
|
2386 |
+
// If have previous element of the id element
|
2387 |
+
// Set the method and previous element selector
|
2388 |
+
args = {'method' : 'after', 'cEle' : '[pagelayer-wrap-id="'+prevEle_id+'"]'};
|
2389 |
+
|
2390 |
+
}else{
|
2391 |
+
|
2392 |
+
// If don't have previous element of the id element then get parent element
|
2393 |
+
if(sc == "pl_row"){
|
2394 |
+
args = {'method' : 'prepend', 'cEle' : '.entry-content'};
|
2395 |
+
}else{
|
2396 |
+
|
2397 |
+
// Get the parent element
|
2398 |
+
var pEle_id = pagelayer_id(jQuery('[pagelayer-wrap-id="'+id+'"]').closest('.pagelayer-ele'));
|
2399 |
+
|
2400 |
+
// Get the parent element tag
|
2401 |
+
var pEle_tag = pagelayer_tag(jQuery('[pagelayer-id="'+pEle_id+'"]'));
|
2402 |
+
var holder = pagelayer_shortcodes[pEle_tag]['holder'] || '';
|
2403 |
+
args = {'method' : 'prepend', 'cEle' : '[pagelayer-id="'+pEle_id+'"] '+ holder+' '};
|
2404 |
+
|
2405 |
+
}
|
2406 |
+
|
2407 |
+
}
|
2408 |
+
|
2409 |
+
return args;
|
2410 |
+
|
2411 |
+
};
|
2412 |
+
|
2413 |
+
// Push the action data in the pagelayer_history_obj object
|
2414 |
+
function pagelayer_history_action_push(args){
|
2415 |
+
|
2416 |
+
var history_obj_len = pagelayer_history_obj['action_data'].length;
|
2417 |
+
|
2418 |
+
// If the history_obj_len is less then 1 then set the data in array 0 position
|
2419 |
+
if(history_obj_len < 1){
|
2420 |
+
pagelayer_history_obj['action_data'][0] = {'title' : 'Start Editing', 'action' : 'Start' };
|
2421 |
+
pagelayer_history_obj['current_active_item_id'] = 0;
|
2422 |
+
}
|
2423 |
+
|
2424 |
+
// Remove the second array element if the history_obj_len greater then 100
|
2425 |
+
if(history_obj_len > 100){
|
2426 |
+
pagelayer_history_obj['action_data'].splice(1, 1);
|
2427 |
+
}
|
2428 |
+
|
2429 |
+
// Get current active history action id
|
2430 |
+
var action_id = parseInt(pagelayer_history_obj['current_active_item_id']) || '';
|
2431 |
+
|
2432 |
+
// Remove the all array element after the active array element
|
2433 |
+
var del_ele = history_obj_len - action_id - 1;
|
2434 |
+
pagelayer_history_obj['action_data'].splice(action_id + 1, del_ele);
|
2435 |
+
|
2436 |
+
// Check if the same attr set as current active history
|
2437 |
+
if(args.action == "Edited" && history_obj_len > 1){
|
2438 |
+
var atts = pagelayer_history_obj['action_data'][action_id] || '';
|
2439 |
+
if(atts['atts'] == args['atts']){
|
2440 |
+
args['oldVal'] = atts['oldVal'];
|
2441 |
+
pagelayer_history_obj['action_data'][action_id] = args;
|
2442 |
+
pagelayer_history_setup();
|
2443 |
+
return true;
|
2444 |
+
}
|
2445 |
+
}
|
2446 |
+
|
2447 |
+
pagelayer_history_obj['action_data'].push(args);
|
2448 |
+
pagelayer_history_obj['current_active_item_id'] ++;
|
2449 |
+
pagelayer_history_setup();
|
2450 |
+
}
|
2451 |
+
|
2452 |
+
// Setup pagelayer history
|
2453 |
+
function pagelayer_history_setup(force){
|
2454 |
+
|
2455 |
+
var force = force || false;
|
2456 |
+
|
2457 |
+
// If the history tab is visible, only then setup
|
2458 |
+
if(!pagelayer.$$('.pagelayer-history').is(':visible') && !force){
|
2459 |
+
return;
|
2460 |
+
}
|
2461 |
+
|
2462 |
+
// pagelayer-HISTORY - Element Properties Dialog
|
2463 |
+
var pagelayer_history_html = '<div class="pagelayer-history-tabs">'+
|
2464 |
+
'<div class="pagelayer-history-tab" pagelayer-history-tab="actions" pagelayer-history-active-tab="1">Actions</div>'+
|
2465 |
+
'<div class="pagelayer-history-tab" pagelayer-history-tab="revisions">Revisions</div>'+
|
2466 |
+
'</div>'+
|
2467 |
+
'<div class="pagelayer-history-body">'+
|
2468 |
+
'<div class="pagelayer-history-section active" pagelayer-show-tab="actions">';
|
2469 |
+
|
2470 |
+
// Any actions
|
2471 |
+
if(pagelayer_history_obj['action_data'].length > 0){
|
2472 |
+
|
2473 |
+
var current_active = pagelayer_history_obj['action_data'].length - 1 || '';
|
2474 |
+
|
2475 |
+
for(var x in pagelayer_history_obj['action_data']){
|
2476 |
+
|
2477 |
+
if(pagelayer_empty(pagelayer_history_obj['action_data'][x])){continue;}
|
2478 |
+
|
2479 |
+
var title = pagelayer_history_obj['action_data'][x]['title'] || '';
|
2480 |
+
var subTitle = pagelayer_history_obj['action_data'][x]['subTitle'] || '';
|
2481 |
+
var action = pagelayer_history_obj['action_data'][x]['action'] || '';
|
2482 |
+
var tmp_attr = pagelayer_history_obj['action_data'][x]['attrType'] || '';
|
2483 |
+
var eAttr = '';
|
2484 |
+
|
2485 |
+
if(!pagelayer_empty(tmp_attr) && tmp_attr == "tmp_attr"){
|
2486 |
+
eAttr = "pagelayer-history-hidden";
|
2487 |
+
}
|
2488 |
+
|
2489 |
+
pagelayer_history_html += '<div class="pagelayer-history-holder '+((current_active == x) ? 'current_active_item' : '' )+' '+eAttr+'" history-action-id="'+x+'" >'+
|
2490 |
+
'<div class="pagelayer-history-detail-holder">'+
|
2491 |
+
'<span class="pagelayer-history-title"><b> '+title+' </b></span>'+
|
2492 |
+
'<span class="pagelayer-history-subtitle"> '+subTitle+' </span>'+
|
2493 |
+
'<span class="pagelayer-history-action"><i> '+action+' </i></span>'+
|
2494 |
+
'</div>'+
|
2495 |
+
'<div class="pagelayer-history-icon">'+
|
2496 |
+
'<span class="pagelayer-history-check fa fa-check" aria-hidden="true"></span>'+
|
2497 |
+
'</div>'+
|
2498 |
+
'</div>';
|
2499 |
+
}
|
2500 |
+
|
2501 |
+
}else{
|
2502 |
+
pagelayer_history_html += 'No Actions history available yet';
|
2503 |
+
}
|
2504 |
+
|
2505 |
+
pagelayer_history_html += '</div>'+
|
2506 |
+
'<div class="pagelayer-history-section" pagelayer-show-tab="revisions">';
|
2507 |
+
|
2508 |
+
// Any revisions ?
|
2509 |
+
if(pagelayer_revision_obj){
|
2510 |
+
for(var x in pagelayer_revision_obj){
|
2511 |
+
pagelayer_history_html += '<div class="pagelayer-revision-holder" revision-id="'+pagelayer_revision_obj[x]['ID']+'">'+
|
2512 |
+
'<div class="pagelayer-revision-img-holder">'+
|
2513 |
+
'<img src="'+pagelayer_revision_obj[x]['post_author_url']+'" />'+
|
2514 |
+
'</div>'+
|
2515 |
+
'<div class="pagelayer-revision-detail-holder">'+
|
2516 |
+
'<div class="pagelayer-revision-date">'+
|
2517 |
+
pagelayer_revision_obj[x]['post_date_ago']+
|
2518 |
+
'('+pagelayer_revision_obj[x]['post_date']+')'+
|
2519 |
+
'</div>'+
|
2520 |
+
'<div class="pagelayer-revision-author">'+
|
2521 |
+
pagelayer_revision_obj[x]['post_type'] +' by '+
|
2522 |
+
pagelayer_revision_obj[x]['post_author_name']+
|
2523 |
+
'</div>'+
|
2524 |
+
'</div>'+
|
2525 |
+
'<div class="pagelayer-revision-icon-holder">'+
|
2526 |
+
'<i class="pagelayer-revision-delete fa fa-times"></i>'+
|
2527 |
+
'</div>'+
|
2528 |
+
'</div>';
|
2529 |
+
}
|
2530 |
+
|
2531 |
+
}else{
|
2532 |
+
pagelayer_history_html += 'No Revisions history available';
|
2533 |
+
}
|
2534 |
+
|
2535 |
+
pagelayer_history_html += '</div>'+
|
2536 |
+
'</div>';
|
2537 |
+
|
2538 |
+
// Create the dialog box
|
2539 |
+
pagelayer.$$('#pagelayer-history').html(pagelayer_history_html);
|
2540 |
+
var holder = pagelayer.$$('#pagelayer-history');
|
2541 |
+
|
2542 |
+
// Set active history holder
|
2543 |
+
holder.find('.pagelayer-history-holder').on('click', function(){
|
2544 |
+
var hEle = jQuery(this);
|
2545 |
+
var prev_item_id = pagelayer_history_obj['current_active_item_id'];
|
2546 |
+
hEle.parent().children().removeClass('current_active_item');
|
2547 |
+
hEle.addClass('current_active_item');
|
2548 |
+
pagelayer_history_obj['current_active_item_id'] = hEle.attr('history-action-id');
|
2549 |
+
pagelayer_history_action_setup(hEle, prev_item_id);
|
2550 |
+
});
|
2551 |
+
|
2552 |
+
// Apply revision
|
2553 |
+
holder.find('.pagelayer-revision-holder').on('click', function(){
|
2554 |
+
var revision_id = jQuery(this).attr('revision-id');
|
2555 |
+
|
2556 |
+
jQuery.ajax({
|
2557 |
+
url: pagelayer_ajax_url+'&action=pagelayer_apply_revision&revisionID='+revision_id,
|
2558 |
+
type: 'post',
|
2559 |
+
data: {
|
2560 |
+
nonce: pagelayer_ajax_nonce,
|
2561 |
+
'pagelayer-live' : 1,
|
2562 |
+
},
|
2563 |
+
success: function(response, status, xhr){
|
2564 |
+
|
2565 |
+
var obj = jQuery.parseJSON(response);
|
2566 |
+
if(obj['error']){
|
2567 |
+
alert(obj['error']);
|
2568 |
+
}else{
|
2569 |
+
jQuery('.entry-content').html(obj['content']);
|
2570 |
+
alert(obj['success']);
|
2571 |
+
pagelayer_element_setup();
|
2572 |
+
pagelayer_add_widget();
|
2573 |
+
}
|
2574 |
+
}
|
2575 |
+
});
|
2576 |
+
});
|
2577 |
+
|
2578 |
+
// Delete the revision
|
2579 |
+
holder.find('.pagelayer-revision-delete').click(function(e){
|
2580 |
+
|
2581 |
+
e.stopPropagation();
|
2582 |
+
var rEle = jQuery(this).closest('.pagelayer-revision-holder');
|
2583 |
+
var revision_id = rEle.attr('revision-id');
|
2584 |
+
|
2585 |
+
if(confirm("Are you sure you want to delete the revision ?")){
|
2586 |
+
jQuery.ajax({
|
2587 |
+
url: pagelayer_ajax_url+'&action=pagelayer_delete_revision&revisionID='+revision_id,
|
2588 |
+
type: 'post',
|
2589 |
+
data: {nonce: pagelayer_ajax_nonce},
|
2590 |
+
success: function(response, status, xhr){
|
2591 |
+
|
2592 |
+
var obj = jQuery.parseJSON(response);
|
2593 |
+
if(obj['error']){
|
2594 |
+
alert(obj['error']);
|
2595 |
+
}else{
|
2596 |
+
alert(obj['success']);
|
2597 |
+
rEle.hide();
|
2598 |
+
}
|
2599 |
+
|
2600 |
+
}
|
2601 |
+
});
|
2602 |
+
}
|
2603 |
+
|
2604 |
+
});
|
2605 |
+
|
2606 |
+
// The tabs
|
2607 |
+
holder.find('.pagelayer-history-tab').on('click', function(){
|
2608 |
+
var attr = 'pagelayer-history-active-tab';
|
2609 |
+
holder.find('.pagelayer-history-tab').each(function(){
|
2610 |
+
jQuery(this).removeAttr(attr);
|
2611 |
+
});
|
2612 |
+
jQuery(this).attr(attr, 1);
|
2613 |
+
|
2614 |
+
// Get the active tab
|
2615 |
+
var active_tab = holder.find('[pagelayer-history-active-tab]').attr('pagelayer-history-tab');
|
2616 |
+
|
2617 |
+
// Trigger the showing of rows
|
2618 |
+
holder.find('[pagelayer-show-tab]').each(function(){
|
2619 |
+
var sec = jQuery(this);
|
2620 |
+
|
2621 |
+
// Is it the active tab ?
|
2622 |
+
if(sec.attr('pagelayer-show-tab') != active_tab){
|
2623 |
+
sec.hide();
|
2624 |
+
}else{
|
2625 |
+
sec.show();
|
2626 |
+
}
|
2627 |
+
});
|
2628 |
+
});
|
2629 |
+
}
|
2630 |
+
|
2631 |
+
// Get evisions Handler
|
2632 |
+
function pagelayer_get_revision(){
|
2633 |
+
|
2634 |
+
jQuery.ajax({
|
2635 |
+
url: pagelayer_ajax_url+'&action=pagelayer_get_revision&postID='+pagelayer_postID,
|
2636 |
+
type: 'post',
|
2637 |
+
data: {
|
2638 |
+
nonce: pagelayer_ajax_nonce,
|
2639 |
+
},
|
2640 |
+
//async:false,
|
2641 |
+
success: function(response, status, xhr){
|
2642 |
+
var obj = jQuery.parseJSON(response);
|
2643 |
+
|
2644 |
+
if(!pagelayer_empty(obj['error'])){
|
2645 |
+
alert(obj['error']);
|
2646 |
+
}else{
|
2647 |
+
pagelayer_revision_obj = obj;
|
2648 |
+
pagelayer_history_setup(true);
|
2649 |
+
}
|
2650 |
+
}
|
2651 |
+
});
|
2652 |
+
};
|
2653 |
+
|
2654 |
+
// Do the history action - use for ctrl-z and ctrl-y
|
2655 |
+
function pagelayer_do_history(action){
|
2656 |
+
|
2657 |
+
var actions_section = pagelayer.$$('#pagelayer-history [pagelayer-show-tab="actions"]');
|
2658 |
+
var current_item = actions_section.find('.pagelayer-history-holder.current_active_item');
|
2659 |
+
|
2660 |
+
if(action == 'undo'){
|
2661 |
+
current_item = jQuery(current_item).prevAll(":not(.pagelayer-history-hidden)").first();
|
2662 |
+
}else if(action == 'redo'){
|
2663 |
+
current_item = jQuery(current_item).nextAll(":not(.pagelayer-history-hidden)").first();
|
2664 |
+
}
|
2665 |
+
|
2666 |
+
current_item.click();
|
2667 |
+
|
2668 |
+
};
|
2669 |
+
|
2670 |
+
// Action setup handle on ctrl-z and ctrl-y
|
2671 |
+
function pagelayer_history_action_setup(now_active, prev_item_id){
|
2672 |
+
var current_item_id = parseInt(now_active.attr('history-action-id'));
|
2673 |
+
|
2674 |
+
// Delete the element
|
2675 |
+
var delete_ele = function(id){
|
2676 |
+
|
2677 |
+
// Set Pagelayer History FALSE to prevent saving delete action in action history
|
2678 |
+
pagelayer.history_action = false;
|
2679 |
+
|
2680 |
+
pagelayer_delete_element('[pagelayer-id='+id+']');
|
2681 |
+
|
2682 |
+
// Set Pagelayer History TRUE
|
2683 |
+
pagelayer.history_action = true;
|
2684 |
+
|
2685 |
+
};
|
2686 |
+
|
2687 |
+
// Re-setup the element
|
2688 |
+
var resetup_ele = function(history_array){
|
2689 |
+
jQuery(history_array.cEle.cEle)[history_array.cEle.method](history_array.html);
|
2690 |
+
pagelayer_element_setup('[pagelayer-id='+history_array.pl_id+'], [pagelayer-id='+history_array.pl_id+'] .pagelayer-ele', true);
|
2691 |
+
pagelayer_empty_col(jQuery('[pagelayer-id="'+history_array.pl_id+'"]').closest('.pagelayer-col-holder'));
|
2692 |
+
};
|
2693 |
+
|
2694 |
+
// Re-setup the element attr
|
2695 |
+
var reset_ele_attr = function(hEle, atts, val, attrType){
|
2696 |
+
|
2697 |
+
// Set Pagelayer History FALSE to prevent saving attributes in action history
|
2698 |
+
pagelayer.history_action = false;
|
2699 |
+
if(attrType == "tmp_attr"){
|
2700 |
+
pagelayer_set_tmp_atts(hEle, atts, val);
|
2701 |
+
}else{
|
2702 |
+
pagelayer_set_atts(hEle, atts, val);
|
2703 |
+
}
|
2704 |
+
|
2705 |
+
// The property holder
|
2706 |
+
var holder = pagelayer.$$('.pagelayer-elpd-body');
|
2707 |
+
holder.html(' ');
|
2708 |
+
pagelayer_sc_render(hEle);
|
2709 |
+
pagelayer_elpd_generate(hEle, holder);
|
2710 |
+
pagelayer.history_action = true;
|
2711 |
+
|
2712 |
+
};
|
2713 |
+
|
2714 |
+
if(prev_item_id > current_item_id){
|
2715 |
+
|
2716 |
+
// All Actions for undo here
|
2717 |
+
var i = parseInt(prev_item_id);
|
2718 |
+
|
2719 |
+
for(i; i > current_item_id; i--){
|
2720 |
+
|
2721 |
+
var history_array = pagelayer_history_obj['action_data'][i];
|
2722 |
+
var action = history_array.action;
|
2723 |
+
var id = history_array.pl_id;
|
2724 |
+
|
2725 |
+
if(action == "Edited"){
|
2726 |
+
hEle = jQuery('[pagelayer-id="'+id+'"]');
|
2727 |
+
reset_ele_attr(hEle, history_array.atts, history_array.oldVal, history_array.attrType);
|
2728 |
+
}else if(action == "Added"){
|
2729 |
+
delete_ele(id);
|
2730 |
+
}else if(action == "Deleted"){
|
2731 |
+
resetup_ele(history_array);
|
2732 |
+
}else if(action == "Copied"){
|
2733 |
+
delete_ele(id);
|
2734 |
+
}
|
2735 |
+
|
2736 |
+
}
|
2737 |
+
|
2738 |
+
}else{
|
2739 |
+
|
2740 |
+
// All Actions for redo here
|
2741 |
+
var i = parseInt(prev_item_id)+1;
|
2742 |
+
|
2743 |
+
for(i; i <= current_item_id; i++){
|
2744 |
+
|
2745 |
+
var history_array = pagelayer_history_obj['action_data'][i];
|
2746 |
+
var action = history_array.action;
|
2747 |
+
var id = history_array.pl_id;
|
2748 |
+
|
2749 |
+
if(action == "Edited"){
|
2750 |
+
hEle = jQuery('[pagelayer-id="'+id+'"]');
|
2751 |
+
reset_ele_attr(hEle, history_array.atts, history_array.newVal, history_array.attrType);
|
2752 |
+
}else if(action == "Added"){
|
2753 |
+
resetup_ele(history_array);
|
2754 |
+
|
2755 |
+
if(history_array.tag != "pl_row" && history_array.tag != "pl_col" ){
|
2756 |
+
// Ensure the column is not empty
|
2757 |
+
pagelayer_empty_col(history_array.cEle.cEle);
|
2758 |
+
}
|
2759 |
+
}else if(action == "Deleted"){
|
2760 |
+
delete_ele(id);
|
2761 |
+
}else if(action == "Copied"){
|
2762 |
+
resetup_ele(history_array);
|
2763 |
+
}
|
2764 |
+
|
2765 |
+
}
|
2766 |
+
}
|
2767 |
+
|
2768 |
+
};
|
2769 |
+
|
2770 |
// Report an error
|
2771 |
function pagelayer_error(error, func){
|
2772 |
var prefix = func || '';
|
2787 |
'<i class="screen-mode fa fa-mobile" pagelayer-mode-data="mobile"></i>'+
|
2788 |
'</div>'+
|
2789 |
'</div>'+
|
2790 |
+
'<i class="pagelayer-history-icon fa fa-history"></i>'+
|
2791 |
'</div>'+
|
2792 |
'</div>';
|
2793 |
|
2794 |
holder.html(html);
|
2795 |
holder.find('.pagelayer-update-button').on('click', function(){
|
2796 |
pagelayer_save();
|
2797 |
+
pagelayer_history_setup();// Setup history tab after update
|
2798 |
});
|
2799 |
+
|
2800 |
holder.find('.pagelayer-close-button').on('click', function(){
|
2801 |
pagelayer_close();
|
2802 |
});
|
2809 |
holder.find('.pagelayer-mode-button').on('click', function(){
|
2810 |
holder.find('.pagelayer-mode-buttons-wrapper').toggle();
|
2811 |
});
|
2812 |
+
|
2813 |
+
holder.find('.pagelayer-history-icon').click(function(){
|
2814 |
+
pagelayer.$$('.pagelayer-elpd-header').show().find('.pagelayer-elpd-title').text('Pagelayer History');
|
2815 |
+
pagelayer.$$('.pagelayer-elpd').hide();
|
2816 |
+
pagelayer.$$('.pagelayer-logo').hide();
|
2817 |
+
pagelayer.$$('.pagelayer-shortcodes').hide();
|
2818 |
+
pagelayer.$$('.pagelayer-history').show();
|
2819 |
+
pagelayer_active = {};
|
2820 |
+
pagelayer_history_setup();
|
2821 |
+
});
|
2822 |
+
};
|
2823 |
|
2824 |
|
2825 |
///////////////////////////////
|
js/pagelayer-frontend.js
CHANGED
@@ -85,6 +85,14 @@ jQuery(document).ready(function(){
|
|
85 |
pagelayer_table(jQuery(this));
|
86 |
});
|
87 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
});
|
89 |
|
90 |
// For automatic row change
|
@@ -803,3 +811,65 @@ function pagelayer_table(jEle){
|
|
803 |
});
|
804 |
|
805 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
pagelayer_table(jQuery(this));
|
86 |
});
|
87 |
|
88 |
+
jQuery('.pagelayer-wp_menu').each(function(){
|
89 |
+
pagelayer_primary_menu(jQuery(this));
|
90 |
+
});
|
91 |
+
|
92 |
+
jQuery('.pagelayer-search').each(function(){
|
93 |
+
pagelayer_search_form(jQuery(this));
|
94 |
+
});
|
95 |
+
|
96 |
});
|
97 |
|
98 |
// For automatic row change
|
811 |
});
|
812 |
|
813 |
}
|
814 |
+
|
815 |
+
// Primary Menu Handler - Premium
|
816 |
+
function pagelayer_primary_menu(jEle){
|
817 |
+
|
818 |
+
var container = jEle.find('.pagelayer-wp-menu-container');
|
819 |
+
var menu_bar = jEle.find('.pagelayer-primary-menu-bar').find('i.fa');
|
820 |
+
var layout = jEle.find('.pagelayer-wp-menu-holder').data('layout');
|
821 |
+
var submenu_ind = jEle.find('.pagelayer-wp-menu-holder').data('submenu_ind');
|
822 |
+
|
823 |
+
if(layout == 'vertical'){
|
824 |
+
menu_bar.hide();
|
825 |
+
}
|
826 |
+
|
827 |
+
// Menu toggle
|
828 |
+
jQuery(menu_bar).unbind('click');
|
829 |
+
jQuery(menu_bar).click(function(){
|
830 |
+
jQuery(container).toggleClass('pagelayer-togglt-on');
|
831 |
+
if(jQuery(container).hasClass('pagelayer-togglt-on')){
|
832 |
+
jQuery(this).removeClass('fa-bars');
|
833 |
+
jQuery(this).addClass('fa-times');
|
834 |
+
}else{
|
835 |
+
jQuery(this).addClass('fa-bars');
|
836 |
+
jQuery(this).removeClass('fa-times');
|
837 |
+
}
|
838 |
+
});
|
839 |
+
|
840 |
+
// If has sub-menu the as icon
|
841 |
+
var after_icons = '<span class="after-icon fa fa-'+submenu_ind+'"></span>';
|
842 |
+
jQuery(container).find('ul.menu li ul.sub-menu').parent().children('a').append(after_icons);
|
843 |
+
|
844 |
+
// Toggle Sub nav
|
845 |
+
var after_icon = jQuery(container).find('ul.menu li.menu-item-has-children .after-icon');
|
846 |
+
|
847 |
+
after_icon.unbind('click');
|
848 |
+
after_icon.click(function(e){
|
849 |
+
e.preventDefault();
|
850 |
+
if(window.matchMedia("(max-width: 782px)").matches || layout != 'horizontal'){
|
851 |
+
jQuery(this).closest('li').toggleClass('active-sub-menu');
|
852 |
+
}else{
|
853 |
+
jQuery(this).closest('li').removeClass('active-sub-menu');
|
854 |
+
}
|
855 |
+
});
|
856 |
+
|
857 |
+
}
|
858 |
+
|
859 |
+
// Search Form handler - Premium
|
860 |
+
function pagelayer_search_form(jEle){
|
861 |
+
|
862 |
+
// In full screen mode set auto complete offscreenBuffering
|
863 |
+
jEle.find('.pagelayer-search-full-screen form').attr('autocomplete', 'off');
|
864 |
+
|
865 |
+
jEle.find('.pagelayer-search-toggle').click(function(){
|
866 |
+
jEle.find('.pagelayer-search-fields').toggleClass('show');
|
867 |
+
});
|
868 |
+
|
869 |
+
jEle.find('.pagelayer-search-fields').click(function(e){
|
870 |
+
e = window.event || e;
|
871 |
+
if(this === e.target) {
|
872 |
+
jQuery(this).removeClass('show');
|
873 |
+
}
|
874 |
+
});
|
875 |
+
}
|
js/properties.js
CHANGED
@@ -169,6 +169,7 @@ function pagelayer_elpd_setup(){
|
|
169 |
pagelayer.$$('.pagelayer-elpd-header').hide();
|
170 |
pagelayer.$$('.pagelayer-shortcodes').show();
|
171 |
pagelayer.$$('.pagelayer-logo').show();
|
|
|
172 |
pagelayer.$$('.pagelayer-elpd-body').removeAttr('pagelayer-element-id').empty();
|
173 |
pagelayer_active = {};
|
174 |
});
|
@@ -201,6 +202,9 @@ function pagelayer_elpd_setup(){
|
|
201 |
// Open the properties
|
202 |
function pagelayer_elpd_open(jEle){
|
203 |
|
|
|
|
|
|
|
204 |
// Set the position of the element and show
|
205 |
//pagelayer_elpd.css('left', pagelayer_elpd_pos[0]);
|
206 |
//pagelayer_elpd.css('top', pagelayer_elpd_pos[1]);
|
@@ -208,6 +212,7 @@ function pagelayer_elpd_open(jEle){
|
|
208 |
pagelayer.$$('.pagelayer-elpd-header').show();
|
209 |
pagelayer.$$('.pagelayer-logo').hide();
|
210 |
pagelayer.$$('.pagelayer-shortcodes').hide();
|
|
|
211 |
|
212 |
// The property holder
|
213 |
var holder = pagelayer.$$('.pagelayer-elpd-body');
|
@@ -221,6 +226,9 @@ function pagelayer_elpd_open(jEle){
|
|
221 |
// Set the header
|
222 |
pagelayer.$$('.pagelayer-elpd-title').html('Edit '+pagelayer_shortcodes[el.tag]['name']);
|
223 |
|
|
|
|
|
|
|
224 |
};
|
225 |
|
226 |
// Show the properties window
|
@@ -1600,7 +1608,7 @@ function pagelayer_elp_icon(row, prop){
|
|
1600 |
|
1601 |
pagelayer_icons = $.map($.map(document.styleSheets, function(s){
|
1602 |
|
1603 |
-
if(s.href && s.href.
|
1604 |
return s;
|
1605 |
}
|
1606 |
return null;
|
@@ -1786,6 +1794,18 @@ function pagelayer_elp_group(row, prop){
|
|
1786 |
var label_param = prop['item_label']['param'] || '';
|
1787 |
var title = pagelayer_get_att(jEle, label_param) || prop['item_label']['default'];
|
1788 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1789 |
// Create the HTML
|
1790 |
var holder = jQuery('<div class="pagelayer-elp-group-item" pagelayer-group-item-id="'+id+'">'+
|
1791 |
'<div class="pagelayer-elp-group-item-head">'+
|
@@ -2193,12 +2213,12 @@ function pagelayer_elp_typography(row, prop){
|
|
2193 |
val = prop.c['val'].split(',');
|
2194 |
}
|
2195 |
|
2196 |
-
var select = { 'style' : ['', '
|
2197 |
'weight' : ['', '100', '200', '300', '400', '500', '600', '700', '800', '900'],
|
2198 |
-
'variant' : ['', '
|
2199 |
-
'deco-line' : ['', '
|
2200 |
-
'deco-style' : ['
|
2201 |
-
'transform' : ['', '
|
2202 |
'fonts' : ['', 'ABeeZee', 'Abel', 'Abhaya Libre', 'Abril Fatface', 'Aclonica', 'Acme', 'Actor', 'Adamina', 'Advent Pro', 'Aguafina Script', 'Akronim', 'Aladin', 'Aldrich', 'Alef', 'Alegreya', 'Alegreya SC', 'Alegreya Sans', 'Alegreya Sans SC', 'Aleo', 'Alex Brush', 'Alfa Slab One', 'Alice', 'Alike', 'Alike Angular', 'Allan', 'Allerta', 'Allerta Stencil', 'Allura', 'Almendra', 'Almendra Display', 'Almendra SC', 'Amarante', 'Amaranth', 'Amatic SC', 'Amethysta', 'Amiko', 'Amiri', 'Amita', 'Anaheim', 'Andada', 'Andika', 'Angkor', 'Annie Use Your Telescope', 'Anonymous Pro', 'Antic', 'Antic Didone', 'Antic Slab', 'Anton', 'Arapey', 'Arbutus', 'Arbutus Slab', 'Architects Daughter', 'Archivo', 'Archivo Black', 'Archivo Narrow', 'Aref Ruqaa', 'Arima Madurai', 'Arimo', 'Arizonia', 'Armata', 'Arsenal', 'Artifika', 'Arvo', 'Arya', 'Asap', 'Asap Condensed', 'Asar', 'Asset', 'Assistant', 'Astloch', 'Asul', 'Athiti', 'Atma', 'Atomic Age', 'Aubrey', 'Audiowide', 'Autour One', 'Average', 'Average Sans', 'Averia Gruesa Libre', 'Averia Libre', 'Averia Sans Libre', 'Averia Serif Libre', 'B612', 'B612 Mono', 'Bad Script', 'Bahiana', 'Bai Jamjuree', 'Baloo', 'Baloo Bhai', 'Baloo Bhaijaan', 'Baloo Bhaina', 'Baloo Chettan', 'Baloo Da', 'Baloo Paaji', 'Baloo Tamma', 'Baloo Tammudu', 'Baloo Thambi', 'Balthazar', 'Bangers', 'Barlow', 'Barlow Condensed', 'Barlow Semi Condensed', 'Barrio', 'Basic', 'Battambang', 'Baumans', 'Bayon', 'Belgrano', 'Bellefair', 'Belleza', 'BenchNine', 'Bentham', 'Berkshire Swash', 'Bevan', 'Bigelow Rules', 'Bigshot One', 'Bilbo', 'Bilbo Swash Caps', 'BioRhyme', 'BioRhyme Expanded', 'Biryani', 'Bitter', 'Black And White Picture', 'Black Han Sans', 'Black Ops One', 'Bokor', 'Bonbon', 'Boogaloo', 'Bowlby One', 'Bowlby One SC', 'Brawler', 'Bree Serif', 'Bubblegum Sans', 'Bubbler One', 'Buda', 'Buenard', 'Bungee', 'Bungee Hairline', 'Bungee Inline', 'Bungee Outline', 'Bungee Shade', 'Butcherman', 'Butterfly Kids', 'Cabin', 'Cabin Condensed', 'Cabin Sketch', 'Caesar Dressing', 'Cagliostro', 'Cairo', 'Calligraffitti', 'Cambay', 'Cambo', 'Candal', 'Cantarell', 'Cantata One', 'Cantora One', 'Capriola', 'Cardo', 'Carme', 'Carrois Gothic', 'Carrois Gothic SC', 'Carter One', 'Catamaran', 'Caudex', 'Caveat', 'Caveat Brush', 'Cedarville Cursive', 'Ceviche One', 'Chakra Petch', 'Changa', 'Changa One', 'Chango', 'Charm', 'Charmonman', 'Chathura', 'Chau Philomene One', 'Chela One', 'Chelsea Market', 'Chenla', 'Cherry Cream Soda', 'Cherry Swash', 'Chewy', 'Chicle', 'Chivo', 'Chonburi', 'Cinzel', 'Cinzel Decorative', 'Clicker Script', 'Coda', 'Coda Caption', 'Codystar', 'Coiny', 'Combo', 'Comfortaa', 'Coming Soon', 'Concert One', 'Condiment', 'Content', 'Contrail One', 'Convergence', 'Cookie', 'Copse', 'Corben', 'Cormorant', 'Cormorant Garamond', 'Cormorant Infant', 'Cormorant SC', 'Cormorant Unicase', 'Cormorant Upright', 'Courgette', 'Cousine', 'Coustard', 'Covered By Your Grace', 'Crafty Girls', 'Creepster', 'Crete Round', 'Crimson Text', 'Croissant One', 'Crushed', 'Cuprum', 'Cute Font', 'Cutive', 'Cutive Mono', 'Damion', 'Dancing Script', 'Dangrek', 'David Libre', 'Dawning of a New Day', 'Days One', 'Dekko', 'Delius', 'Delius Swash Caps', 'Delius Unicase', 'Della Respira', 'Denk One', 'Devonshire', 'Dhurjati', 'Didact Gothic', 'Diplomata', 'Diplomata SC', 'Do Hyeon', 'Dokdo', 'Domine', 'Donegal One', 'Doppio One', 'Dorsa', 'Dosis', 'Dr Sugiyama', 'Duru Sans', 'Dynalight', 'EB Garamond', 'Eagle Lake', 'East Sea Dokdo', 'Eater', 'Economica', 'Eczar', 'El Messiri', 'Electrolize', 'Elsie', 'Elsie Swash Caps', 'Emblema One', 'Emilys Candy', 'Encode Sans', 'Encode Sans Condensed', 'Encode Sans Expanded', 'Encode Sans Semi Condensed', 'Encode Sans Semi Expanded', 'Engagement', 'Englebert', 'Enriqueta', 'Erica One', 'Esteban', 'Euphoria Script', 'Ewert', 'Exo', 'Exo 2', 'Expletus Sans', 'Fahkwang', 'Fanwood Text', 'Farsan', 'Fascinate', 'Fascinate Inline', 'Faster One', 'Fasthand', 'Fauna One', 'Faustina', 'Federant', 'Federo', 'Felipa', 'Fenix', 'Finger Paint', 'Fira Mono', 'Fira Sans', 'Fira Sans Condensed', 'Fira Sans Extra Condensed', 'Fjalla One', 'Fjord One', 'Flamenco', 'Flavors', 'Fondamento', 'Fontdiner Swanky', 'Forum', 'Francois One', 'Frank Ruhl Libre', 'Freckle Face', 'Fredericka the Great', 'Fredoka One', 'Freehand', 'Fresca', 'Frijole', 'Fruktur', 'Fugaz One', 'GFS Didot', 'GFS Neohellenic', 'Gabriela', 'Gaegu', 'Gafata', 'Galada', 'Galdeano', 'Galindo', 'Gamja Flower', 'Gentium Basic', 'Gentium Book Basic', 'Geo', 'Geostar', 'Geostar Fill', 'Germania One', 'Gidugu', 'Gilda Display', 'Give You Glory', 'Glass Antiqua', 'Glegoo', 'Gloria Hallelujah', 'Goblin One', 'Gochi Hand', 'Gorditas', 'Gothic A1', 'Goudy Bookletter 1911', 'Graduate', 'Grand Hotel', 'Gravitas One', 'Great Vibes', 'Griffy', 'Gruppo', 'Gudea', 'Gugi', 'Gurajada', 'Habibi', 'Halant', 'Hammersmith One', 'Hanalei', 'Hanalei Fill', 'Handlee', 'Hanuman', 'Happy Monkey', 'Harmattan', 'Headland One', 'Heebo', 'Henny Penny', 'Herr Von Muellerhoff', 'Hi Melody', 'Hind', 'Hind Guntur', 'Hind Madurai', 'Hind Siliguri', 'Hind Vadodara', 'Holtwood One SC', 'Homemade Apple', 'Homenaje', 'IBM Plex Mono', 'IBM Plex Sans', 'IBM Plex Sans Condensed', 'IBM Plex Serif', 'IM Fell DW Pica', 'IM Fell DW Pica SC', 'IM Fell Double Pica', 'IM Fell Double Pica SC', 'IM Fell English', 'IM Fell English SC', 'IM Fell French Canon', 'IM Fell French Canon SC', 'IM Fell Great Primer', 'IM Fell Great Primer SC', 'Iceberg', 'Iceland', 'Imprima', 'Inconsolata', 'Inder', 'Indie Flower', 'Inika', 'Inknut Antiqua', 'Irish Grover', 'Istok Web', 'Italiana', 'Italianno', 'Itim', 'Jacques Francois', 'Jacques Francois Shadow', 'Jaldi', 'Jim Nightshade', 'Jockey One', 'Jolly Lodger', 'Jomhuria', 'Josefin Sans', 'Josefin Slab', 'Joti One', 'Jua', 'Judson', 'Julee', 'Julius Sans One', 'Junge', 'Jura', 'Just Another Hand', 'Just Me Again Down Here', 'K2D', 'Kadwa', 'Kalam', 'Kameron', 'Kanit', 'Kantumruy', 'Karla', 'Karma', 'Katibeh', 'Kaushan Script', 'Kavivanar', 'Kavoon', 'Kdam Thmor', 'Keania One', 'Kelly Slab', 'Kenia', 'Khand', 'Khmer', 'Khula', 'Kirang Haerang', 'Kite One', 'Knewave', 'KoHo', 'Kodchasan', 'Kosugi', 'Kosugi Maru', 'Kotta One', 'Koulen', 'Kranky', 'Kreon', 'Kristi', 'Krona One', 'Krub', 'Kumar One', 'Kumar One Outline', 'Kurale', 'La Belle Aurore', 'Laila', 'Lakki Reddy', 'Lalezar', 'Lancelot', 'Lateef', 'Lato', 'League Script', 'Leckerli One', 'Ledger', 'Lekton', 'Lemon', 'Lemonada', 'Libre Barcode 128', 'Libre Barcode 128 Text', 'Libre Barcode 39', 'Libre Barcode 39 Extended', 'Libre Barcode 39 Extended Text', 'Libre Barcode 39 Text', 'Libre Baskerville', 'Libre Franklin', 'Life Savers', 'Lilita One', 'Lily Script One', 'Limelight', 'Linden Hill', 'Lobster', 'Lobster Two', 'Londrina Outline', 'Londrina Shadow', 'Londrina Sketch', 'Londrina Solid', 'Lora', 'Love Ya Like A Sister', 'Loved by the King', 'Lovers Quarrel', 'Luckiest Guy', 'Lusitana', 'Lustria', 'M PLUS 1p', 'M PLUS Rounded 1c', 'Macondo', 'Macondo Swash Caps', 'Mada', 'Magra', 'Maiden Orange', 'Maitree', 'Major Mono Display', 'Mako', 'Mali', 'Mallanna', 'Mandali', 'Manuale', 'Marcellus', 'Marcellus SC', 'Marck Script', 'Margarine', 'Markazi Text', 'Marko One', 'Marmelad', 'Martel', 'Martel Sans', 'Marvel', 'Mate', 'Mate SC', 'Maven Pro', 'McLaren', 'Meddon', 'MedievalSharp', 'Medula One', 'Meera Inimai', 'Megrim', 'Meie Script', 'Merienda', 'Merienda One', 'Merriweather', 'Merriweather Sans', 'Metal', 'Metal Mania', 'Metamorphous', 'Metrophobic', 'Michroma', 'Milonga', 'Miltonian', 'Miltonian Tattoo', 'Mina', 'Miniver', 'Miriam Libre', 'Mirza', 'Miss Fajardose', 'Mitr', 'Modak', 'Modern Antiqua', 'Mogra', 'Molengo', 'Molle', 'Monda', 'Monofett', 'Monoton', 'Monsieur La Doulaise', 'Montaga', 'Montez', 'Montserrat', 'Montserrat Alternates', 'Montserrat Subrayada', 'Moul', 'Moulpali', 'Mountains of Christmas', 'Mouse Memoirs', 'Mr Bedfort', 'Mr Dafoe', 'Mr De Haviland', 'Mrs Saint Delafield', 'Mrs Sheppards', 'Mukta', 'Mukta Mahee', 'Mukta Malar', 'Mukta Vaani', 'Muli', 'Mystery Quest', 'NTR', 'Nanum Brush Script', 'Nanum Gothic', 'Nanum Gothic Coding', 'Nanum Myeongjo', 'Nanum Pen Script', 'Neucha', 'Neuton', 'New Rocker', 'News Cycle', 'Niconne', 'Niramit', 'Nixie One', 'Nobile', 'Nokora', 'Norican', 'Nosifer', 'Notable', 'Nothing You Could Do', 'Noticia Text', 'Noto Sans', 'Noto Sans JP', 'Noto Sans KR', 'Noto Sans SC', 'Noto Sans TC', 'Noto Serif', 'Noto Serif JP', 'Noto Serif KR', 'Noto Serif SC', 'Noto Serif TC', 'Nova Cut', 'Nova Flat', 'Nova Mono', 'Nova Oval', 'Nova Round', 'Nova Script', 'Nova Slim', 'Nova Square', 'Numans', 'Nunito', 'Nunito Sans', 'Odor Mean Chey', 'Offside', 'Old Standard TT', 'Oldenburg', 'Oleo Script', 'Oleo Script Swash Caps', 'Open Sans', 'Open Sans Condensed', 'Oranienbaum', 'Orbitron', 'Oregano', 'Orienta', 'Original Surfer', 'Oswald', 'Over the Rainbow', 'Overlock', 'Overlock SC', 'Overpass', 'Overpass Mono', 'Ovo', 'Oxygen', 'Oxygen Mono', 'PT Mono', 'PT Sans', 'PT Sans Caption', 'PT Sans Narrow', 'PT Serif', 'PT Serif Caption', 'Pacifico', 'Padauk', 'Palanquin', 'Palanquin Dark', 'Pangolin', 'Paprika', 'Parisienne', 'Passero One', 'Passion One', 'Pathway Gothic One', 'Patrick Hand', 'Patrick Hand SC', 'Pattaya', 'Patua One', 'Pavanam', 'Paytone One', 'Peddana', 'Peralta', 'Permanent Marker', 'Petit Formal Script', 'Petrona', 'Philosopher', 'Piedra', 'Pinyon Script', 'Pirata One', 'Plaster', 'Play', 'Playball', 'Playfair Display', 'Playfair Display SC', 'Podkova', 'Poiret One', 'Poller One', 'Poly', 'Pompiere', 'Pontano Sans', 'Poor Story', 'Poppins', 'Port Lligat Sans', 'Port Lligat Slab', 'Pragati Narrow', 'Prata', 'Preahvihear', 'Press Start 2P', 'Pridi', 'Princess Sofia', 'Prociono', 'Prompt', 'Prosto One', 'Proza Libre', 'Puritan', 'Purple Purse', 'Quando', 'Quantico', 'Quattrocento', 'Quattrocento Sans', 'Questrial', 'Quicksand', 'Quintessential', 'Qwigley', 'Racing Sans One', 'Radley', 'Rajdhani', 'Rakkas', 'Raleway', 'Raleway Dots', 'Ramabhadra', 'Ramaraja', 'Rambla', 'Rammetto One', 'Ranchers', 'Rancho', 'Ranga', 'Rasa', 'Rationale', 'Ravi Prakash', 'Redressed', 'Reem Kufi', 'Reenie Beanie', 'Revalia', 'Rhodium Libre', 'Ribeye', 'Ribeye Marrow', 'Righteous', 'Risque', 'Roboto', 'Roboto Condensed', 'Roboto Mono', 'Roboto Slab', 'Rochester', 'Rock Salt', 'Rokkitt', 'Romanesco', 'Ropa Sans', 'Rosario', 'Rosarivo', 'Rouge Script', 'Rozha One', 'Rubik', 'Rubik Mono One', 'Ruda', 'Rufina', 'Ruge Boogie', 'Ruluko', 'Rum Raisin', 'Ruslan Display', 'Russo One', 'Ruthie', 'Rye', 'Sacramento', 'Sahitya', 'Sail', 'Saira', 'Saira Condensed', 'Saira Extra Condensed', 'Saira Semi Condensed', 'Salsa', 'Sanchez', 'Sancreek', 'Sansita', 'Sarabun', 'Sarala', 'Sarina', 'Sarpanch', 'Satisfy', 'Sawarabi Gothic', 'Sawarabi Mincho', 'Scada', 'Scheherazade', 'Schoolbell', 'Scope One', 'Seaweed Script', 'Secular One', 'Sedgwick Ave', 'Sedgwick Ave Display', 'Sevillana', 'Seymour One', 'Shadows Into Light', 'Shadows Into Light Two', 'Shanti', 'Share', 'Share Tech', 'Share Tech Mono', 'Shojumaru', 'Short Stack', 'Shrikhand', 'Siemreap', 'Sigmar One', 'Signika', 'Signika Negative', 'Simonetta', 'Sintony', 'Sirin Stencil', 'Six Caps', 'Skranji', 'Slabo 13px', 'Slabo 27px', 'Slackey', 'Smokum', 'Smythe', 'Sniglet', 'Snippet', 'Snowburst One', 'Sofadi One', 'Sofia', 'Song Myung', 'Sonsie One', 'Sorts Mill Goudy', 'Source Code Pro', 'Source Sans Pro', 'Source Serif Pro', 'Space Mono', 'Special Elite', 'Spectral', 'Spectral SC', 'Spicy Rice', 'Spinnaker', 'Spirax', 'Squada One', 'Sree Krushnadevaraya', 'Sriracha', 'Srisakdi', 'Staatliches', 'Stalemate', 'Stalinist One', 'Stardos Stencil', 'Stint Ultra Condensed', 'Stint Ultra Expanded', 'Stoke', 'Strait', 'Stylish', 'Sue Ellen Francisco', 'Suez One', 'Sumana', 'Sunflower', 'Sunshiney', 'Supermercado One', 'Sura', 'Suranna', 'Suravaram', 'Suwannaphum', 'Swanky and Moo Moo', 'Syncopate', 'Tajawal', 'Tangerine', 'Taprom', 'Tauri', 'Taviraj', 'Teko', 'Telex', 'Tenali Ramakrishna', 'Tenor Sans', 'Text Me One', 'Thasadith', 'The Girl Next Door', 'Tienne', 'Tillana', 'Timmana', 'Tinos', 'Titan One', 'Titillium Web', 'Trade Winds', 'Trirong', 'Trocchi', 'Trochut', 'Trykker', 'Tulpen One', 'Ubuntu', 'Ubuntu Condensed', 'Ubuntu Mono', 'Ultra', 'Uncial Antiqua', 'Underdog', 'Unica One', 'UnifrakturCook', 'UnifrakturMaguntia', 'Unkempt', 'Unlock', 'Unna', 'VT323', 'Vampiro One', 'Varela', 'Varela Round', 'Vast Shadow', 'Vesper Libre', 'Vibur', 'Vidaloka', 'Viga', 'Voces', 'Volkhov', 'Vollkorn', 'Vollkorn SC', 'Voltaire', 'Waiting for the Sunrise', 'Wallpoet', 'Walter Turncoat', 'Warnes', 'Wellfleet', 'Wendy One', 'Wire One', 'Work Sans', 'Yanone Kaffeesatz', 'Yantramanav', 'Yatra One', 'Yellowtail', 'Yeon Sung', 'Yeseva One', 'Yesteryear', 'Yrsa', 'ZCOOL KuaiLe', 'ZCOOL QingKe HuangYou', 'ZCOOL XiaoWei', 'Zeyada', 'Zilla Slab', 'Zilla Slab Highlight']
|
2203 |
}
|
2204 |
|
169 |
pagelayer.$$('.pagelayer-elpd-header').hide();
|
170 |
pagelayer.$$('.pagelayer-shortcodes').show();
|
171 |
pagelayer.$$('.pagelayer-logo').show();
|
172 |
+
pagelayer.$$('.pagelayer-history').hide();
|
173 |
pagelayer.$$('.pagelayer-elpd-body').removeAttr('pagelayer-element-id').empty();
|
174 |
pagelayer_active = {};
|
175 |
});
|
202 |
// Open the properties
|
203 |
function pagelayer_elpd_open(jEle){
|
204 |
|
205 |
+
// Set pagelayer history FALSE
|
206 |
+
pagelayer.history_action = false;
|
207 |
+
|
208 |
// Set the position of the element and show
|
209 |
//pagelayer_elpd.css('left', pagelayer_elpd_pos[0]);
|
210 |
//pagelayer_elpd.css('top', pagelayer_elpd_pos[1]);
|
212 |
pagelayer.$$('.pagelayer-elpd-header').show();
|
213 |
pagelayer.$$('.pagelayer-logo').hide();
|
214 |
pagelayer.$$('.pagelayer-shortcodes').hide();
|
215 |
+
pagelayer.$$('.pagelayer-history').hide();
|
216 |
|
217 |
// The property holder
|
218 |
var holder = pagelayer.$$('.pagelayer-elpd-body');
|
226 |
// Set the header
|
227 |
pagelayer.$$('.pagelayer-elpd-title').html('Edit '+pagelayer_shortcodes[el.tag]['name']);
|
228 |
|
229 |
+
// Set pagelayer history TRUE
|
230 |
+
pagelayer.history_action = true;
|
231 |
+
|
232 |
};
|
233 |
|
234 |
// Show the properties window
|
1608 |
|
1609 |
pagelayer_icons = $.map($.map(document.styleSheets, function(s){
|
1610 |
|
1611 |
+
if(s.href && s.href.match(/font\-awesome\.min\.css/)){
|
1612 |
return s;
|
1613 |
}
|
1614 |
return null;
|
1794 |
var label_param = prop['item_label']['param'] || '';
|
1795 |
var title = pagelayer_get_att(jEle, label_param) || prop['item_label']['default'];
|
1796 |
|
1797 |
+
// We need to get the correct value for select based params which are the label
|
1798 |
+
var child_props = pagelayer_shortcodes[prop.sc];
|
1799 |
+
for(var section in child_props){
|
1800 |
+
for(var _param in child_props[section]){
|
1801 |
+
if(child_props[section][_param]['type'] == 'select'){
|
1802 |
+
if(title in child_props[section][_param]['list']){
|
1803 |
+
title = child_props[section][_param]['list'][title];
|
1804 |
+
}
|
1805 |
+
}
|
1806 |
+
}
|
1807 |
+
}
|
1808 |
+
|
1809 |
// Create the HTML
|
1810 |
var holder = jQuery('<div class="pagelayer-elp-group-item" pagelayer-group-item-id="'+id+'">'+
|
1811 |
'<div class="pagelayer-elp-group-item-head">'+
|
2213 |
val = prop.c['val'].split(',');
|
2214 |
}
|
2215 |
|
2216 |
+
var select = { 'style' : ['', 'Normal', 'Italic', 'Oblique'],
|
2217 |
'weight' : ['', '100', '200', '300', '400', '500', '600', '700', '800', '900'],
|
2218 |
+
'variant' : ['', 'Normal', 'Small-caps'],
|
2219 |
+
'deco-line' : ['', 'None', 'Overline', 'Line-through', 'Underline', 'Underline Overline'],
|
2220 |
+
'deco-style' : ['Solid', 'Double', 'Dotted', 'Dashed', 'Wavy'],
|
2221 |
+
'transform' : ['', 'Capitalize', 'Uppercase', 'Lowercase'],
|
2222 |
'fonts' : ['', 'ABeeZee', 'Abel', 'Abhaya Libre', 'Abril Fatface', 'Aclonica', 'Acme', 'Actor', 'Adamina', 'Advent Pro', 'Aguafina Script', 'Akronim', 'Aladin', 'Aldrich', 'Alef', 'Alegreya', 'Alegreya SC', 'Alegreya Sans', 'Alegreya Sans SC', 'Aleo', 'Alex Brush', 'Alfa Slab One', 'Alice', 'Alike', 'Alike Angular', 'Allan', 'Allerta', 'Allerta Stencil', 'Allura', 'Almendra', 'Almendra Display', 'Almendra SC', 'Amarante', 'Amaranth', 'Amatic SC', 'Amethysta', 'Amiko', 'Amiri', 'Amita', 'Anaheim', 'Andada', 'Andika', 'Angkor', 'Annie Use Your Telescope', 'Anonymous Pro', 'Antic', 'Antic Didone', 'Antic Slab', 'Anton', 'Arapey', 'Arbutus', 'Arbutus Slab', 'Architects Daughter', 'Archivo', 'Archivo Black', 'Archivo Narrow', 'Aref Ruqaa', 'Arima Madurai', 'Arimo', 'Arizonia', 'Armata', 'Arsenal', 'Artifika', 'Arvo', 'Arya', 'Asap', 'Asap Condensed', 'Asar', 'Asset', 'Assistant', 'Astloch', 'Asul', 'Athiti', 'Atma', 'Atomic Age', 'Aubrey', 'Audiowide', 'Autour One', 'Average', 'Average Sans', 'Averia Gruesa Libre', 'Averia Libre', 'Averia Sans Libre', 'Averia Serif Libre', 'B612', 'B612 Mono', 'Bad Script', 'Bahiana', 'Bai Jamjuree', 'Baloo', 'Baloo Bhai', 'Baloo Bhaijaan', 'Baloo Bhaina', 'Baloo Chettan', 'Baloo Da', 'Baloo Paaji', 'Baloo Tamma', 'Baloo Tammudu', 'Baloo Thambi', 'Balthazar', 'Bangers', 'Barlow', 'Barlow Condensed', 'Barlow Semi Condensed', 'Barrio', 'Basic', 'Battambang', 'Baumans', 'Bayon', 'Belgrano', 'Bellefair', 'Belleza', 'BenchNine', 'Bentham', 'Berkshire Swash', 'Bevan', 'Bigelow Rules', 'Bigshot One', 'Bilbo', 'Bilbo Swash Caps', 'BioRhyme', 'BioRhyme Expanded', 'Biryani', 'Bitter', 'Black And White Picture', 'Black Han Sans', 'Black Ops One', 'Bokor', 'Bonbon', 'Boogaloo', 'Bowlby One', 'Bowlby One SC', 'Brawler', 'Bree Serif', 'Bubblegum Sans', 'Bubbler One', 'Buda', 'Buenard', 'Bungee', 'Bungee Hairline', 'Bungee Inline', 'Bungee Outline', 'Bungee Shade', 'Butcherman', 'Butterfly Kids', 'Cabin', 'Cabin Condensed', 'Cabin Sketch', 'Caesar Dressing', 'Cagliostro', 'Cairo', 'Calligraffitti', 'Cambay', 'Cambo', 'Candal', 'Cantarell', 'Cantata One', 'Cantora One', 'Capriola', 'Cardo', 'Carme', 'Carrois Gothic', 'Carrois Gothic SC', 'Carter One', 'Catamaran', 'Caudex', 'Caveat', 'Caveat Brush', 'Cedarville Cursive', 'Ceviche One', 'Chakra Petch', 'Changa', 'Changa One', 'Chango', 'Charm', 'Charmonman', 'Chathura', 'Chau Philomene One', 'Chela One', 'Chelsea Market', 'Chenla', 'Cherry Cream Soda', 'Cherry Swash', 'Chewy', 'Chicle', 'Chivo', 'Chonburi', 'Cinzel', 'Cinzel Decorative', 'Clicker Script', 'Coda', 'Coda Caption', 'Codystar', 'Coiny', 'Combo', 'Comfortaa', 'Coming Soon', 'Concert One', 'Condiment', 'Content', 'Contrail One', 'Convergence', 'Cookie', 'Copse', 'Corben', 'Cormorant', 'Cormorant Garamond', 'Cormorant Infant', 'Cormorant SC', 'Cormorant Unicase', 'Cormorant Upright', 'Courgette', 'Cousine', 'Coustard', 'Covered By Your Grace', 'Crafty Girls', 'Creepster', 'Crete Round', 'Crimson Text', 'Croissant One', 'Crushed', 'Cuprum', 'Cute Font', 'Cutive', 'Cutive Mono', 'Damion', 'Dancing Script', 'Dangrek', 'David Libre', 'Dawning of a New Day', 'Days One', 'Dekko', 'Delius', 'Delius Swash Caps', 'Delius Unicase', 'Della Respira', 'Denk One', 'Devonshire', 'Dhurjati', 'Didact Gothic', 'Diplomata', 'Diplomata SC', 'Do Hyeon', 'Dokdo', 'Domine', 'Donegal One', 'Doppio One', 'Dorsa', 'Dosis', 'Dr Sugiyama', 'Duru Sans', 'Dynalight', 'EB Garamond', 'Eagle Lake', 'East Sea Dokdo', 'Eater', 'Economica', 'Eczar', 'El Messiri', 'Electrolize', 'Elsie', 'Elsie Swash Caps', 'Emblema One', 'Emilys Candy', 'Encode Sans', 'Encode Sans Condensed', 'Encode Sans Expanded', 'Encode Sans Semi Condensed', 'Encode Sans Semi Expanded', 'Engagement', 'Englebert', 'Enriqueta', 'Erica One', 'Esteban', 'Euphoria Script', 'Ewert', 'Exo', 'Exo 2', 'Expletus Sans', 'Fahkwang', 'Fanwood Text', 'Farsan', 'Fascinate', 'Fascinate Inline', 'Faster One', 'Fasthand', 'Fauna One', 'Faustina', 'Federant', 'Federo', 'Felipa', 'Fenix', 'Finger Paint', 'Fira Mono', 'Fira Sans', 'Fira Sans Condensed', 'Fira Sans Extra Condensed', 'Fjalla One', 'Fjord One', 'Flamenco', 'Flavors', 'Fondamento', 'Fontdiner Swanky', 'Forum', 'Francois One', 'Frank Ruhl Libre', 'Freckle Face', 'Fredericka the Great', 'Fredoka One', 'Freehand', 'Fresca', 'Frijole', 'Fruktur', 'Fugaz One', 'GFS Didot', 'GFS Neohellenic', 'Gabriela', 'Gaegu', 'Gafata', 'Galada', 'Galdeano', 'Galindo', 'Gamja Flower', 'Gentium Basic', 'Gentium Book Basic', 'Geo', 'Geostar', 'Geostar Fill', 'Germania One', 'Gidugu', 'Gilda Display', 'Give You Glory', 'Glass Antiqua', 'Glegoo', 'Gloria Hallelujah', 'Goblin One', 'Gochi Hand', 'Gorditas', 'Gothic A1', 'Goudy Bookletter 1911', 'Graduate', 'Grand Hotel', 'Gravitas One', 'Great Vibes', 'Griffy', 'Gruppo', 'Gudea', 'Gugi', 'Gurajada', 'Habibi', 'Halant', 'Hammersmith One', 'Hanalei', 'Hanalei Fill', 'Handlee', 'Hanuman', 'Happy Monkey', 'Harmattan', 'Headland One', 'Heebo', 'Henny Penny', 'Herr Von Muellerhoff', 'Hi Melody', 'Hind', 'Hind Guntur', 'Hind Madurai', 'Hind Siliguri', 'Hind Vadodara', 'Holtwood One SC', 'Homemade Apple', 'Homenaje', 'IBM Plex Mono', 'IBM Plex Sans', 'IBM Plex Sans Condensed', 'IBM Plex Serif', 'IM Fell DW Pica', 'IM Fell DW Pica SC', 'IM Fell Double Pica', 'IM Fell Double Pica SC', 'IM Fell English', 'IM Fell English SC', 'IM Fell French Canon', 'IM Fell French Canon SC', 'IM Fell Great Primer', 'IM Fell Great Primer SC', 'Iceberg', 'Iceland', 'Imprima', 'Inconsolata', 'Inder', 'Indie Flower', 'Inika', 'Inknut Antiqua', 'Irish Grover', 'Istok Web', 'Italiana', 'Italianno', 'Itim', 'Jacques Francois', 'Jacques Francois Shadow', 'Jaldi', 'Jim Nightshade', 'Jockey One', 'Jolly Lodger', 'Jomhuria', 'Josefin Sans', 'Josefin Slab', 'Joti One', 'Jua', 'Judson', 'Julee', 'Julius Sans One', 'Junge', 'Jura', 'Just Another Hand', 'Just Me Again Down Here', 'K2D', 'Kadwa', 'Kalam', 'Kameron', 'Kanit', 'Kantumruy', 'Karla', 'Karma', 'Katibeh', 'Kaushan Script', 'Kavivanar', 'Kavoon', 'Kdam Thmor', 'Keania One', 'Kelly Slab', 'Kenia', 'Khand', 'Khmer', 'Khula', 'Kirang Haerang', 'Kite One', 'Knewave', 'KoHo', 'Kodchasan', 'Kosugi', 'Kosugi Maru', 'Kotta One', 'Koulen', 'Kranky', 'Kreon', 'Kristi', 'Krona One', 'Krub', 'Kumar One', 'Kumar One Outline', 'Kurale', 'La Belle Aurore', 'Laila', 'Lakki Reddy', 'Lalezar', 'Lancelot', 'Lateef', 'Lato', 'League Script', 'Leckerli One', 'Ledger', 'Lekton', 'Lemon', 'Lemonada', 'Libre Barcode 128', 'Libre Barcode 128 Text', 'Libre Barcode 39', 'Libre Barcode 39 Extended', 'Libre Barcode 39 Extended Text', 'Libre Barcode 39 Text', 'Libre Baskerville', 'Libre Franklin', 'Life Savers', 'Lilita One', 'Lily Script One', 'Limelight', 'Linden Hill', 'Lobster', 'Lobster Two', 'Londrina Outline', 'Londrina Shadow', 'Londrina Sketch', 'Londrina Solid', 'Lora', 'Love Ya Like A Sister', 'Loved by the King', 'Lovers Quarrel', 'Luckiest Guy', 'Lusitana', 'Lustria', 'M PLUS 1p', 'M PLUS Rounded 1c', 'Macondo', 'Macondo Swash Caps', 'Mada', 'Magra', 'Maiden Orange', 'Maitree', 'Major Mono Display', 'Mako', 'Mali', 'Mallanna', 'Mandali', 'Manuale', 'Marcellus', 'Marcellus SC', 'Marck Script', 'Margarine', 'Markazi Text', 'Marko One', 'Marmelad', 'Martel', 'Martel Sans', 'Marvel', 'Mate', 'Mate SC', 'Maven Pro', 'McLaren', 'Meddon', 'MedievalSharp', 'Medula One', 'Meera Inimai', 'Megrim', 'Meie Script', 'Merienda', 'Merienda One', 'Merriweather', 'Merriweather Sans', 'Metal', 'Metal Mania', 'Metamorphous', 'Metrophobic', 'Michroma', 'Milonga', 'Miltonian', 'Miltonian Tattoo', 'Mina', 'Miniver', 'Miriam Libre', 'Mirza', 'Miss Fajardose', 'Mitr', 'Modak', 'Modern Antiqua', 'Mogra', 'Molengo', 'Molle', 'Monda', 'Monofett', 'Monoton', 'Monsieur La Doulaise', 'Montaga', 'Montez', 'Montserrat', 'Montserrat Alternates', 'Montserrat Subrayada', 'Moul', 'Moulpali', 'Mountains of Christmas', 'Mouse Memoirs', 'Mr Bedfort', 'Mr Dafoe', 'Mr De Haviland', 'Mrs Saint Delafield', 'Mrs Sheppards', 'Mukta', 'Mukta Mahee', 'Mukta Malar', 'Mukta Vaani', 'Muli', 'Mystery Quest', 'NTR', 'Nanum Brush Script', 'Nanum Gothic', 'Nanum Gothic Coding', 'Nanum Myeongjo', 'Nanum Pen Script', 'Neucha', 'Neuton', 'New Rocker', 'News Cycle', 'Niconne', 'Niramit', 'Nixie One', 'Nobile', 'Nokora', 'Norican', 'Nosifer', 'Notable', 'Nothing You Could Do', 'Noticia Text', 'Noto Sans', 'Noto Sans JP', 'Noto Sans KR', 'Noto Sans SC', 'Noto Sans TC', 'Noto Serif', 'Noto Serif JP', 'Noto Serif KR', 'Noto Serif SC', 'Noto Serif TC', 'Nova Cut', 'Nova Flat', 'Nova Mono', 'Nova Oval', 'Nova Round', 'Nova Script', 'Nova Slim', 'Nova Square', 'Numans', 'Nunito', 'Nunito Sans', 'Odor Mean Chey', 'Offside', 'Old Standard TT', 'Oldenburg', 'Oleo Script', 'Oleo Script Swash Caps', 'Open Sans', 'Open Sans Condensed', 'Oranienbaum', 'Orbitron', 'Oregano', 'Orienta', 'Original Surfer', 'Oswald', 'Over the Rainbow', 'Overlock', 'Overlock SC', 'Overpass', 'Overpass Mono', 'Ovo', 'Oxygen', 'Oxygen Mono', 'PT Mono', 'PT Sans', 'PT Sans Caption', 'PT Sans Narrow', 'PT Serif', 'PT Serif Caption', 'Pacifico', 'Padauk', 'Palanquin', 'Palanquin Dark', 'Pangolin', 'Paprika', 'Parisienne', 'Passero One', 'Passion One', 'Pathway Gothic One', 'Patrick Hand', 'Patrick Hand SC', 'Pattaya', 'Patua One', 'Pavanam', 'Paytone One', 'Peddana', 'Peralta', 'Permanent Marker', 'Petit Formal Script', 'Petrona', 'Philosopher', 'Piedra', 'Pinyon Script', 'Pirata One', 'Plaster', 'Play', 'Playball', 'Playfair Display', 'Playfair Display SC', 'Podkova', 'Poiret One', 'Poller One', 'Poly', 'Pompiere', 'Pontano Sans', 'Poor Story', 'Poppins', 'Port Lligat Sans', 'Port Lligat Slab', 'Pragati Narrow', 'Prata', 'Preahvihear', 'Press Start 2P', 'Pridi', 'Princess Sofia', 'Prociono', 'Prompt', 'Prosto One', 'Proza Libre', 'Puritan', 'Purple Purse', 'Quando', 'Quantico', 'Quattrocento', 'Quattrocento Sans', 'Questrial', 'Quicksand', 'Quintessential', 'Qwigley', 'Racing Sans One', 'Radley', 'Rajdhani', 'Rakkas', 'Raleway', 'Raleway Dots', 'Ramabhadra', 'Ramaraja', 'Rambla', 'Rammetto One', 'Ranchers', 'Rancho', 'Ranga', 'Rasa', 'Rationale', 'Ravi Prakash', 'Redressed', 'Reem Kufi', 'Reenie Beanie', 'Revalia', 'Rhodium Libre', 'Ribeye', 'Ribeye Marrow', 'Righteous', 'Risque', 'Roboto', 'Roboto Condensed', 'Roboto Mono', 'Roboto Slab', 'Rochester', 'Rock Salt', 'Rokkitt', 'Romanesco', 'Ropa Sans', 'Rosario', 'Rosarivo', 'Rouge Script', 'Rozha One', 'Rubik', 'Rubik Mono One', 'Ruda', 'Rufina', 'Ruge Boogie', 'Ruluko', 'Rum Raisin', 'Ruslan Display', 'Russo One', 'Ruthie', 'Rye', 'Sacramento', 'Sahitya', 'Sail', 'Saira', 'Saira Condensed', 'Saira Extra Condensed', 'Saira Semi Condensed', 'Salsa', 'Sanchez', 'Sancreek', 'Sansita', 'Sarabun', 'Sarala', 'Sarina', 'Sarpanch', 'Satisfy', 'Sawarabi Gothic', 'Sawarabi Mincho', 'Scada', 'Scheherazade', 'Schoolbell', 'Scope One', 'Seaweed Script', 'Secular One', 'Sedgwick Ave', 'Sedgwick Ave Display', 'Sevillana', 'Seymour One', 'Shadows Into Light', 'Shadows Into Light Two', 'Shanti', 'Share', 'Share Tech', 'Share Tech Mono', 'Shojumaru', 'Short Stack', 'Shrikhand', 'Siemreap', 'Sigmar One', 'Signika', 'Signika Negative', 'Simonetta', 'Sintony', 'Sirin Stencil', 'Six Caps', 'Skranji', 'Slabo 13px', 'Slabo 27px', 'Slackey', 'Smokum', 'Smythe', 'Sniglet', 'Snippet', 'Snowburst One', 'Sofadi One', 'Sofia', 'Song Myung', 'Sonsie One', 'Sorts Mill Goudy', 'Source Code Pro', 'Source Sans Pro', 'Source Serif Pro', 'Space Mono', 'Special Elite', 'Spectral', 'Spectral SC', 'Spicy Rice', 'Spinnaker', 'Spirax', 'Squada One', 'Sree Krushnadevaraya', 'Sriracha', 'Srisakdi', 'Staatliches', 'Stalemate', 'Stalinist One', 'Stardos Stencil', 'Stint Ultra Condensed', 'Stint Ultra Expanded', 'Stoke', 'Strait', 'Stylish', 'Sue Ellen Francisco', 'Suez One', 'Sumana', 'Sunflower', 'Sunshiney', 'Supermercado One', 'Sura', 'Suranna', 'Suravaram', 'Suwannaphum', 'Swanky and Moo Moo', 'Syncopate', 'Tajawal', 'Tangerine', 'Taprom', 'Tauri', 'Taviraj', 'Teko', 'Telex', 'Tenali Ramakrishna', 'Tenor Sans', 'Text Me One', 'Thasadith', 'The Girl Next Door', 'Tienne', 'Tillana', 'Timmana', 'Tinos', 'Titan One', 'Titillium Web', 'Trade Winds', 'Trirong', 'Trocchi', 'Trochut', 'Trykker', 'Tulpen One', 'Ubuntu', 'Ubuntu Condensed', 'Ubuntu Mono', 'Ultra', 'Uncial Antiqua', 'Underdog', 'Unica One', 'UnifrakturCook', 'UnifrakturMaguntia', 'Unkempt', 'Unlock', 'Unna', 'VT323', 'Vampiro One', 'Varela', 'Varela Round', 'Vast Shadow', 'Vesper Libre', 'Vibur', 'Vidaloka', 'Viga', 'Voces', 'Volkhov', 'Vollkorn', 'Vollkorn SC', 'Voltaire', 'Waiting for the Sunrise', 'Wallpoet', 'Walter Turncoat', 'Warnes', 'Wellfleet', 'Wendy One', 'Wire One', 'Work Sans', 'Yanone Kaffeesatz', 'Yantramanav', 'Yatra One', 'Yellowtail', 'Yeon Sung', 'Yeseva One', 'Yesteryear', 'Yrsa', 'ZCOOL KuaiLe', 'ZCOOL QingKe HuangYou', 'ZCOOL XiaoWei', 'Zeyada', 'Zilla Slab', 'Zilla Slab Highlight']
|
2223 |
}
|
2224 |
|
languages/en.json
CHANGED
@@ -236,11 +236,11 @@
|
|
236 |
"ribbon_text_color": "Color",
|
237 |
"currency_style": "Currency",
|
238 |
"price_style": "Price",
|
239 |
-
"title_style": "Title",
|
240 |
"period_style": "Period",
|
241 |
"header_style": "Header",
|
242 |
"feature_style": "Feature",
|
243 |
-
"button_style": "Button",
|
244 |
"ribbon_style": "Ribbon",
|
245 |
"label": "Label",
|
246 |
"customize_style_fields": "Customize Style for Fields",
|
@@ -882,7 +882,7 @@
|
|
882 |
"testimonial_cite_title_size_desc": "Enter Author Designation",
|
883 |
"testimonial_url_label": "Link",
|
884 |
"testimonial_url_desc": "Author URL",
|
885 |
-
"
|
886 |
"aside": "Aside",
|
887 |
"testimonial_alignment_label": "Alignment",
|
888 |
"testimonial_border_color_label": "Color",
|
@@ -976,5 +976,87 @@
|
|
976 |
"content_pos" : "Content V-Align",
|
977 |
"color_hover" : "Color Hover",
|
978 |
"col_width" : "Column Width",
|
979 |
-
"link_settings" : "Link"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
980 |
}
|
236 |
"ribbon_text_color": "Color",
|
237 |
"currency_style": "Currency",
|
238 |
"price_style": "Price",
|
239 |
+
"title_style": "Title Style",
|
240 |
"period_style": "Period",
|
241 |
"header_style": "Header",
|
242 |
"feature_style": "Feature",
|
243 |
+
"button_style": "Button Style",
|
244 |
"ribbon_style": "Ribbon",
|
245 |
"label": "Label",
|
246 |
"customize_style_fields": "Customize Style for Fields",
|
882 |
"testimonial_cite_title_size_desc": "Enter Author Designation",
|
883 |
"testimonial_url_label": "Link",
|
884 |
"testimonial_url_desc": "Author URL",
|
885 |
+
"position": "Position",
|
886 |
"aside": "Aside",
|
887 |
"testimonial_alignment_label": "Alignment",
|
888 |
"testimonial_border_color_label": "Color",
|
976 |
"content_pos" : "Content V-Align",
|
977 |
"color_hover" : "Color Hover",
|
978 |
"col_width" : "Column Width",
|
979 |
+
"link_settings" : "Link",
|
980 |
+
"search_form" : "Search Form",
|
981 |
+
"form_type" : "Form Type",
|
982 |
+
"button_type" : "Button Type",
|
983 |
+
"button_text" : "Button Text",
|
984 |
+
"button_icon" : "Button Icon",
|
985 |
+
"font_size" : "Font Size",
|
986 |
+
"post_nav" : "Post Navigation",
|
987 |
+
"input_style" : "Input Style",
|
988 |
+
"prev_label" : "Previous Label",
|
989 |
+
"next_label" : "Next Label",
|
990 |
+
"arrows_list" : "Arrows List",
|
991 |
+
"in_same_term" : "Same Taxonomy Term",
|
992 |
+
"Post_taxonomy" : "Post Taxonomy",
|
993 |
+
"post_type" : "Post Type",
|
994 |
+
"post_commment" : "Post Comments",
|
995 |
+
"theme_commment" : "Theme Comments",
|
996 |
+
"post_info" : "Post Info",
|
997 |
+
"post_info_list" : "Post Info List",
|
998 |
+
"post_list" : "Post List",
|
999 |
+
"post_title" : "Post Title",
|
1000 |
+
"classic" : "Classic",
|
1001 |
+
"full_screen" : "Full Screen",
|
1002 |
+
"placeholder" : "Place Holder",
|
1003 |
+
"focus" : "Focus",
|
1004 |
+
"width" : "Width",
|
1005 |
+
"separator" : "Separator",
|
1006 |
+
"skin" : "Skin",
|
1007 |
+
"current" : "Current",
|
1008 |
+
"author" : "Author",
|
1009 |
+
"date" : "Date",
|
1010 |
+
"time" : "Time",
|
1011 |
+
"comments" : "Comments",
|
1012 |
+
"terms" : "Terms",
|
1013 |
+
"date_format" : "Date Format",
|
1014 |
+
"time_format" : "Time Format",
|
1015 |
+
"custom_date_format" : "Custom Date Format",
|
1016 |
+
"custom_time_format" : "Custom Time Format",
|
1017 |
+
"before" : "Before",
|
1018 |
+
"custom_link" : "Custom Link",
|
1019 |
+
"primary_menu" : "Primary Menu",
|
1020 |
+
"select_menu" : "Select Menu",
|
1021 |
+
"icon_list" : "Icon List",
|
1022 |
+
"dropdown" : "Dropdown",
|
1023 |
+
"pointer" : "Pointer",
|
1024 |
+
"underline" : "Underline",
|
1025 |
+
"overline" : "Overline",
|
1026 |
+
"double_line" : "Double Line",
|
1027 |
+
"toggle_style" : "Toggle Style",
|
1028 |
+
"submenu_style" : "Submenu Style",
|
1029 |
+
"menu_style" : "Menu Style",
|
1030 |
+
"left_margin" : "Left Margin",
|
1031 |
+
"vertical_padding" : "Vertical Padding",
|
1032 |
+
"horizontal_padding" : "Horizontal Padding",
|
1033 |
+
"plus" : "Plus",
|
1034 |
+
"arrow_down" : "Arrow Down",
|
1035 |
+
"caret_down" : "Caret Down",
|
1036 |
+
"sbmenu_indicator" : "Submenu Indicator",
|
1037 |
+
"lower_alpha" : "Lower Alpha",
|
1038 |
+
"lower_roman" : "Lower Roman",
|
1039 |
+
"upper_roman" : "Upper Roman",
|
1040 |
+
"upper_alpha" : "Upper Alpha",
|
1041 |
+
"inherit" : "Inherit",
|
1042 |
+
"decimal" : "Decimal",
|
1043 |
+
"list_style" : "List Style",
|
1044 |
+
"slide" : "Slide",
|
1045 |
+
"drop_in" : "Drop In",
|
1046 |
+
"label_style" : "Label Style",
|
1047 |
+
"separator_style" : "Separator Style",
|
1048 |
+
"theme_tamplate" : "Theme Template",
|
1049 |
+
"Drop_out" : "Drop Out",
|
1050 |
+
"no_tag" : "No Tag",
|
1051 |
+
"no_widget_class" : "No Widget Class",
|
1052 |
+
"invalid_post_id" : "Invalid post ID",
|
1053 |
+
"post_update_err" : "Unable to update the Post content for some reason",
|
1054 |
+
"post_update_success" : "Post Content was updated successfully!",
|
1055 |
+
"no_widget_area" : "No such Widget Area !",
|
1056 |
+
"invalid_revision" : "Invalid revision",
|
1057 |
+
"rev_load_error" : "Unable to load the Post revision content for some reason",
|
1058 |
+
"rev_load_success" : "Post revision was loaded successfully!",
|
1059 |
+
"access_denied" : "Access denied.",
|
1060 |
+
"delete_rev_error" : "Can't delete this revision.",
|
1061 |
+
"delete_rev_success" : "Revision was deleted Successfully"
|
1062 |
}
|
main/ajax.php
ADDED
@@ -0,0 +1,529 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
//////////////////////////////////////////////////////////////
|
4 |
+
//===========================================================
|
5 |
+
// ajax.php
|
6 |
+
//===========================================================
|
7 |
+
// PAGELAYER
|
8 |
+
// Inspired by the DESIRE to be the BEST OF ALL
|
9 |
+
// ----------------------------------------------------------
|
10 |
+
// Started by: Pulkit Gupta
|
11 |
+
// Date: 23rd Jan 2017
|
12 |
+
// Time: 23:00 hrs
|
13 |
+
// Site: http://pagelayer.com/wordpress (PAGELAYER)
|
14 |
+
// ----------------------------------------------------------
|
15 |
+
// Please Read the Terms of use at http://pagelayer.com/tos
|
16 |
+
// ----------------------------------------------------------
|
17 |
+
//===========================================================
|
18 |
+
// (c)Pagelayer Team
|
19 |
+
//===========================================================
|
20 |
+
//////////////////////////////////////////////////////////////
|
21 |
+
|
22 |
+
// Are we being accessed directly ?
|
23 |
+
if(!defined('PAGELAYER_VERSION')) {
|
24 |
+
exit('Hacking Attempt !');
|
25 |
+
}
|
26 |
+
|
27 |
+
|
28 |
+
// The ajax handler
|
29 |
+
add_action('wp_ajax_pagelayer_wp_widget', 'pagelayer_wp_widget_ajax');
|
30 |
+
function pagelayer_wp_widget_ajax(){
|
31 |
+
|
32 |
+
global $pagelayer;
|
33 |
+
|
34 |
+
// Some AJAX security
|
35 |
+
check_ajax_referer('pagelayer_ajax', 'nonce');
|
36 |
+
|
37 |
+
pagelayer_load_shortcodes();
|
38 |
+
|
39 |
+
header('Content-Type: application/json');
|
40 |
+
|
41 |
+
$ret = [];
|
42 |
+
$tag = @$_POST['tag'];
|
43 |
+
//pagelayer_print($pagelayer->shortcodes[$tag]);
|
44 |
+
|
45 |
+
// No tag ?
|
46 |
+
if(empty($pagelayer->shortcodes[$tag])){
|
47 |
+
$ret['error'][] = __pl('no_tag');
|
48 |
+
echo json_encode($ret);
|
49 |
+
wp_die();
|
50 |
+
}
|
51 |
+
|
52 |
+
// Include the widgets
|
53 |
+
include_once(ABSPATH . 'wp-admin/includes/widgets.php');
|
54 |
+
|
55 |
+
$class = $pagelayer->shortcodes[$tag]['widget'];
|
56 |
+
|
57 |
+
// Check the widget class exists ?
|
58 |
+
if(empty($class) || !class_exists($class)){
|
59 |
+
$ret['error'][] = __pl('no_widget_class');
|
60 |
+
echo json_encode($ret);
|
61 |
+
wp_die();
|
62 |
+
}
|
63 |
+
|
64 |
+
$instance = [];
|
65 |
+
$widget = new $class();
|
66 |
+
$widget->_set('pagelayer-widget-1234567890');
|
67 |
+
|
68 |
+
// Is there any existing data ?
|
69 |
+
if(!empty($_POST['widget_data'])){
|
70 |
+
$json = json_decode(stripslashes($_POST['widget_data']), true);
|
71 |
+
//pagelayer_print($json);die();
|
72 |
+
if(!empty($json)){
|
73 |
+
$instance = $json;
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
// Are there any form values ?
|
78 |
+
if(!empty($_POST['values'])){
|
79 |
+
parse_str(stripslashes($_POST['values']), $data);
|
80 |
+
//pagelayer_print($data);die();
|
81 |
+
|
82 |
+
// Any data ?
|
83 |
+
if(!empty($data)){
|
84 |
+
|
85 |
+
// First key is useless
|
86 |
+
$data = current($data);
|
87 |
+
|
88 |
+
// Do we still have valid data ?
|
89 |
+
if(!empty($data)){
|
90 |
+
|
91 |
+
// 2nd key is useless and just over-ride instance
|
92 |
+
$instance = current($data);
|
93 |
+
|
94 |
+
}
|
95 |
+
}
|
96 |
+
}
|
97 |
+
|
98 |
+
// Get the form
|
99 |
+
ob_start();
|
100 |
+
$widget->form($instance);
|
101 |
+
$ret['form'] = ob_get_contents();
|
102 |
+
ob_end_clean();
|
103 |
+
|
104 |
+
// Get the html
|
105 |
+
ob_start();
|
106 |
+
$widget->widget([], $instance);
|
107 |
+
$ret['html'] = ob_get_contents();
|
108 |
+
ob_end_clean();
|
109 |
+
|
110 |
+
// Widget data to set
|
111 |
+
if(!empty($instance)){
|
112 |
+
$ret['widget_data'] = $instance;
|
113 |
+
}
|
114 |
+
|
115 |
+
echo json_encode($ret);
|
116 |
+
wp_die();
|
117 |
+
|
118 |
+
}
|
119 |
+
|
120 |
+
// Update Post content
|
121 |
+
add_action('wp_ajax_pagelayer_save_content', 'pagelayer_save_content');
|
122 |
+
function pagelayer_save_content(){
|
123 |
+
|
124 |
+
// Some AJAX security
|
125 |
+
check_ajax_referer('pagelayer_ajax', 'nonce');
|
126 |
+
|
127 |
+
$content = $_POST['pagelayer_update_content'];
|
128 |
+
|
129 |
+
$postID = (int) $_GET['postID'];
|
130 |
+
|
131 |
+
if(empty($postID)){
|
132 |
+
$msg['error'] = __pl('invalid_post_id');
|
133 |
+
}
|
134 |
+
|
135 |
+
// Check if the post exists
|
136 |
+
|
137 |
+
if(!empty($postID) && !empty($content)){
|
138 |
+
|
139 |
+
$post = array(
|
140 |
+
'ID' => $postID,
|
141 |
+
'post_content' => $content,
|
142 |
+
);
|
143 |
+
|
144 |
+
// Update the post into the database
|
145 |
+
wp_update_post($post);
|
146 |
+
|
147 |
+
if (is_wp_error($postID)) {
|
148 |
+
$msg['error'] = __pl('post_update_err');
|
149 |
+
}else{
|
150 |
+
$msg['success'] = __pl('post_update_success');
|
151 |
+
}
|
152 |
+
|
153 |
+
}else{
|
154 |
+
$msg['error'] = __pl('post_update_err');
|
155 |
+
}
|
156 |
+
|
157 |
+
echo json_encode($msg);
|
158 |
+
wp_die();
|
159 |
+
|
160 |
+
}
|
161 |
+
|
162 |
+
// Shortcodes Widget Handler
|
163 |
+
add_action('wp_ajax_pagelayer_do_shortcodes', 'pagelayer_do_shortcodes');
|
164 |
+
function pagelayer_do_shortcodes(){
|
165 |
+
|
166 |
+
// Some AJAX security
|
167 |
+
check_ajax_referer('pagelayer_ajax', 'nonce');
|
168 |
+
|
169 |
+
$data = '';
|
170 |
+
if(isset($_REQUEST['shortcode_data'])){
|
171 |
+
$data = stripslashes($_REQUEST['shortcode_data']);
|
172 |
+
}
|
173 |
+
|
174 |
+
echo do_shortcode($data);
|
175 |
+
wp_die();
|
176 |
+
|
177 |
+
}
|
178 |
+
|
179 |
+
// Get the Site Title
|
180 |
+
add_action('wp_ajax_pagelayer_fetch_site_title', 'pagelayer_fetch_site_title');
|
181 |
+
function pagelayer_fetch_site_title(){
|
182 |
+
|
183 |
+
// Some AJAX security
|
184 |
+
check_ajax_referer('pagelayer_ajax', 'nonce');
|
185 |
+
|
186 |
+
echo get_bloginfo('name');
|
187 |
+
wp_die();
|
188 |
+
}
|
189 |
+
|
190 |
+
// Update the Site Title
|
191 |
+
add_action('wp_ajax_pagelayer_update_site_title', 'pagelayer_update_site_title');
|
192 |
+
function pagelayer_update_site_title(){
|
193 |
+
global $wpdb;
|
194 |
+
|
195 |
+
// Some AJAX security
|
196 |
+
check_ajax_referer('pagelayer_ajax', 'nonce');
|
197 |
+
|
198 |
+
$site_title = $_POST['site_title'];
|
199 |
+
|
200 |
+
update_option('blogname', $site_title);
|
201 |
+
|
202 |
+
$wpdb->query("UPDATE `sm_sitemeta`
|
203 |
+
SET meta_value = '".$site_title."'
|
204 |
+
WHERE meta_key = 'site_name'");
|
205 |
+
wp_die();
|
206 |
+
}
|
207 |
+
|
208 |
+
// Show the SideBars
|
209 |
+
add_action('wp_ajax_pagelayer_fetch_sidebar', 'pagelayer_fetch_sidebar');
|
210 |
+
function pagelayer_fetch_sidebar(){
|
211 |
+
|
212 |
+
global $wp_registered_sidebars;
|
213 |
+
|
214 |
+
// Some AJAX security
|
215 |
+
check_ajax_referer('pagelayer_ajax', 'nonce');
|
216 |
+
|
217 |
+
// Create a list
|
218 |
+
$pagelayer_wp_widgets = array();
|
219 |
+
|
220 |
+
foreach($wp_registered_sidebars as $v){
|
221 |
+
$pagelayer_wp_widgets[$v['id']] = $v['name'];
|
222 |
+
}
|
223 |
+
|
224 |
+
$id = @$_REQUEST['sidebar'];
|
225 |
+
|
226 |
+
if(function_exists('dynamic_sidebar') && !empty($pagelayer_wp_widgets[$id])) {
|
227 |
+
ob_start();
|
228 |
+
dynamic_sidebar($id);
|
229 |
+
$result = ob_get_clean();
|
230 |
+
}else{
|
231 |
+
$result = __pl('no_widget_area');
|
232 |
+
}
|
233 |
+
|
234 |
+
echo $result;
|
235 |
+
wp_die();
|
236 |
+
|
237 |
+
}
|
238 |
+
|
239 |
+
// Show the primary menu !
|
240 |
+
add_action('wp_ajax_pagelayer_fetch_primary_menu', 'pagelayer_fetch_primary_menu');
|
241 |
+
function pagelayer_fetch_primary_menu(){
|
242 |
+
|
243 |
+
// Some AJAX security
|
244 |
+
check_ajax_referer('pagelayer_ajax', 'nonce');
|
245 |
+
|
246 |
+
if(isset($_POST['nav_list'])){
|
247 |
+
echo wp_nav_menu([
|
248 |
+
'menu' => wp_get_nav_menu_object($_POST['nav_list']),
|
249 |
+
'menu_id' => $_POST["nav_list"],
|
250 |
+
//'theme_location' => 'primary',
|
251 |
+
//'menu_class' => 'primary-menu',
|
252 |
+
]);
|
253 |
+
}
|
254 |
+
|
255 |
+
wp_die();
|
256 |
+
}
|
257 |
+
|
258 |
+
// Get post revision
|
259 |
+
add_action('wp_ajax_pagelayer_get_revision', 'pagelayer_get_revision');
|
260 |
+
function pagelayer_get_revision(){
|
261 |
+
|
262 |
+
// Some AJAX security
|
263 |
+
check_ajax_referer('pagelayer_ajax', 'nonce');
|
264 |
+
|
265 |
+
$postID = (int) $_GET['postID'];
|
266 |
+
$post_revisions = array();
|
267 |
+
|
268 |
+
if(empty($postID)){
|
269 |
+
$post_revisions['error'] = __pl('invalid_post_id');
|
270 |
+
}else{
|
271 |
+
$post_revisions = pagelayer_get_post_revision_by_id($postID);
|
272 |
+
}
|
273 |
+
|
274 |
+
echo json_encode($post_revisions);
|
275 |
+
wp_die();
|
276 |
+
}
|
277 |
+
|
278 |
+
// Get post revision
|
279 |
+
add_action('wp_ajax_pagelayer_apply_revision', 'pagelayer_apply_revision');
|
280 |
+
function pagelayer_apply_revision(){
|
281 |
+
|
282 |
+
// Some AJAX security
|
283 |
+
check_ajax_referer('pagelayer_ajax', 'nonce');
|
284 |
+
|
285 |
+
$revisionID = (int) $_REQUEST['revisionID'];
|
286 |
+
$post_data = array();
|
287 |
+
|
288 |
+
if(empty($revisionID)){
|
289 |
+
$post_data['error'] = __pl('invalid_post_id');
|
290 |
+
}else{
|
291 |
+
|
292 |
+
$post = get_post( $revisionID );
|
293 |
+
|
294 |
+
if ( empty( $post ) ) {
|
295 |
+
$post_data['error'] = __pl('invalid_revision');
|
296 |
+
echo json_encode($post_data);
|
297 |
+
return false;
|
298 |
+
}
|
299 |
+
|
300 |
+
// Need to make the reviews post global
|
301 |
+
$GLOBALS['post'] = $post;
|
302 |
+
|
303 |
+
// Need to reload the shortcodes
|
304 |
+
pagelayer_load_shortcodes();
|
305 |
+
|
306 |
+
$post_data['content'] = do_shortcode($post->post_content);
|
307 |
+
|
308 |
+
if (is_wp_error($postID)) {
|
309 |
+
$post_data['error'] = __pl('rev_load_error');
|
310 |
+
}else{
|
311 |
+
$post_data['success'] = __pl('rev_load_success');
|
312 |
+
}
|
313 |
+
|
314 |
+
wp_reset_postdata();
|
315 |
+
}
|
316 |
+
|
317 |
+
echo json_encode($post_data);
|
318 |
+
wp_die();
|
319 |
+
}
|
320 |
+
|
321 |
+
// Get post revision
|
322 |
+
add_action('wp_ajax_pagelayer_delete_revision', 'pagelayer_delete_revision');
|
323 |
+
function pagelayer_delete_revision() {
|
324 |
+
|
325 |
+
// Some AJAX security
|
326 |
+
check_ajax_referer('pagelayer_ajax', 'nonce');
|
327 |
+
|
328 |
+
$revisionID = (int) $_REQUEST['revisionID'];
|
329 |
+
|
330 |
+
if(empty($revisionID)){
|
331 |
+
$post_data['error'] = __pl('invalid_post_id');
|
332 |
+
}else{
|
333 |
+
|
334 |
+
$revision = get_post( $revisionID );
|
335 |
+
|
336 |
+
if ( empty( $revision ) ) {
|
337 |
+
$post_data['error'] = __pl('invalid_revision');
|
338 |
+
}else{
|
339 |
+
|
340 |
+
if ( ! current_user_can( 'delete_post', $revision->ID ) ) {
|
341 |
+
$post_data['error'] = __pl('access_denied');
|
342 |
+
echo json_encode($post_data);
|
343 |
+
return false;
|
344 |
+
}
|
345 |
+
|
346 |
+
$deleted = wp_delete_post_revision( $revision->ID );
|
347 |
+
|
348 |
+
if ( ! $deleted || is_wp_error( $deleted ) ) {
|
349 |
+
$post_data['error'] = __pl('delete_rev_error');
|
350 |
+
}else{
|
351 |
+
$post_data['success'] = __pl('delete_rev_success');
|
352 |
+
}
|
353 |
+
}
|
354 |
+
}
|
355 |
+
|
356 |
+
echo json_encode($post_data);
|
357 |
+
wp_die();
|
358 |
+
}
|
359 |
+
|
360 |
+
// Get post revision
|
361 |
+
add_action('wp_ajax_pagelayer_post_nav', 'pagelayer_post_nav');
|
362 |
+
function pagelayer_post_nav() {
|
363 |
+
|
364 |
+
// Some AJAX security
|
365 |
+
check_ajax_referer('pagelayer_ajax', 'nonce');
|
366 |
+
|
367 |
+
if(!isset($_REQUEST['data']) || !isset($_REQUEST['postID'])){
|
368 |
+
return;
|
369 |
+
}
|
370 |
+
|
371 |
+
$el['atts'] = $_REQUEST['data'];
|
372 |
+
|
373 |
+
$post = get_post($_REQUEST['postID']);
|
374 |
+
|
375 |
+
// Need to make this post global
|
376 |
+
$GLOBALS['post'] = $post;
|
377 |
+
|
378 |
+
$in_same_term = false;
|
379 |
+
$taxonomies = 'category';
|
380 |
+
$title = '';
|
381 |
+
$arrows_list = $el['atts']['arrows_list'];
|
382 |
+
|
383 |
+
if($el['atts']['in_same_term']){
|
384 |
+
$in_same_term = true;
|
385 |
+
$taxonomies = $el['atts']['taxonomies'];
|
386 |
+
}
|
387 |
+
|
388 |
+
if($el['atts']['post_title']){
|
389 |
+
$title = '<span class="pagelayer-post-nav-title">%title</span>';
|
390 |
+
}
|
391 |
+
|
392 |
+
$next_label = '<span class="pagelayer-next-holder">
|
393 |
+
<span class="pagelayer-post-nav-link"> '.$el["atts"]["next_label"].'</span>'.$title.'
|
394 |
+
</span>
|
395 |
+
<span class="pagelayer-post-nav-icon fa fa-'.$arrows_list.'-right"></span>';
|
396 |
+
|
397 |
+
$prev_label = '<span class="pagelayer-post-nav-icon fa fa-'.$arrows_list.'-left"></span>
|
398 |
+
<span class="pagelayer-next-holder">
|
399 |
+
<span class="pagelayer-post-nav-link"> '.$el["atts"]["prev_label"].'</span>'.$title.'
|
400 |
+
</span>';
|
401 |
+
|
402 |
+
$el['atts']['next_link'] = get_next_post_link('%link', $next_label, $in_same_term, '', $taxonomies);
|
403 |
+
|
404 |
+
$el['atts']['prev_link'] = get_previous_post_link('%link', $prev_label, $in_same_term, '', $taxonomies );
|
405 |
+
|
406 |
+
echo json_encode($el);
|
407 |
+
wp_die();
|
408 |
+
|
409 |
+
}
|
410 |
+
|
411 |
+
// Get post comment template
|
412 |
+
add_action('wp_ajax_pagelayer_post_comment', 'pagelayer_post_comment');
|
413 |
+
function pagelayer_post_comment() {
|
414 |
+
global $post;
|
415 |
+
|
416 |
+
// Some AJAX security
|
417 |
+
check_ajax_referer('pagelayer_ajax', 'nonce');
|
418 |
+
|
419 |
+
if(!isset($_REQUEST['postID'])){
|
420 |
+
return true;
|
421 |
+
}
|
422 |
+
|
423 |
+
$GLOBALS['post'] = get_post($_REQUEST['postID']);
|
424 |
+
$GLOBALS['withcomments'] = true;
|
425 |
+
|
426 |
+
if ( comments_open() || get_comments_number() ) {
|
427 |
+
echo '<div class="pagelayer-comments-template">'.comments_template().'</div>';
|
428 |
+
}else{
|
429 |
+
echo '<div class="pagelayer-comments-close">
|
430 |
+
<h2>Comments are closed!</h2>
|
431 |
+
</div>';
|
432 |
+
}
|
433 |
+
wp_die();
|
434 |
+
|
435 |
+
}
|
436 |
+
|
437 |
+
// Get post comment template
|
438 |
+
add_action('wp_ajax_pagelayer_post_info', 'pagelayer_post_info');
|
439 |
+
function pagelayer_post_info() {
|
440 |
+
global $post;
|
441 |
+
|
442 |
+
// Some AJAX security
|
443 |
+
check_ajax_referer('pagelayer_ajax', 'nonce');
|
444 |
+
|
445 |
+
if(!isset($_REQUEST['postID']) || !isset($_REQUEST['el'])){
|
446 |
+
return true;
|
447 |
+
}
|
448 |
+
|
449 |
+
$el['atts'] = $_REQUEST['el'];
|
450 |
+
|
451 |
+
$GLOBALS['post'] = get_post($_REQUEST['postID']);
|
452 |
+
|
453 |
+
$post_info_content ='';
|
454 |
+
$link ='';
|
455 |
+
$info_content ='';
|
456 |
+
$avatar_url ='';
|
457 |
+
|
458 |
+
switch($el['atts']['type']){
|
459 |
+
case 'author':
|
460 |
+
|
461 |
+
$link = get_author_posts_url( get_the_author_meta( 'ID' ) );
|
462 |
+
$avatar_url = get_avatar_url( get_the_author_meta( 'ID' ), 96 );
|
463 |
+
$post_info_content = get_the_author_meta( 'display_name', $post->post_author );
|
464 |
+
break;
|
465 |
+
|
466 |
+
case 'date':
|
467 |
+
|
468 |
+
$format = [
|
469 |
+
'default' => 'F j, Y',
|
470 |
+
'0' => 'F j, Y',
|
471 |
+
'1' => 'Y-m-d',
|
472 |
+
'2' => 'm/d/Y',
|
473 |
+
'3' => 'd/m/Y',
|
474 |
+
'custom' => empty( $el['atts']['date_format_custom'] ) ? 'F j, Y' : $el['atts']['date_format_custom'],
|
475 |
+
];
|
476 |
+
|
477 |
+
$post_info_content = get_the_time( $format[ $el['atts']['date_format'] ] );
|
478 |
+
$link = get_day_link( get_post_time( 'Y' ), get_post_time( 'm' ), get_post_time( 'j' ) );
|
479 |
+
|
480 |
+
break;
|
481 |
+
|
482 |
+
case 'time':
|
483 |
+
|
484 |
+
$format = [
|
485 |
+
'default' => 'g:i a',
|
486 |
+
'0' => 'g:i a',
|
487 |
+
'1' => 'g:i A',
|
488 |
+
'2' => 'H:i',
|
489 |
+
'custom' => empty( $el['atts']['time_format_custom'] ) ? 'F j, Y' : $el['atts']['time_format_custom'],
|
490 |
+
];
|
491 |
+
$post_info_content = get_the_time( $format[ $el['atts']['time_format'] ] );
|
492 |
+
|
493 |
+
break;
|
494 |
+
|
495 |
+
case 'comments':
|
496 |
+
|
497 |
+
if (comments_open()) {
|
498 |
+
$post_info_content = (int) get_comments_number();
|
499 |
+
$link = get_comments_link();
|
500 |
+
}
|
501 |
+
|
502 |
+
break;
|
503 |
+
|
504 |
+
case 'terms':
|
505 |
+
|
506 |
+
$taxonomy = $el['atts']['taxonomy'];
|
507 |
+
$terms = wp_get_post_terms( get_the_ID(), $taxonomy );
|
508 |
+
foreach ( $terms as $term ) {
|
509 |
+
$post_info_content .= ' <a if-ext="{{info_link}}" href="'. get_term_link( $term ) .'" class="pagelayer-post-info-list-link"> '. $term->name .' </a>';
|
510 |
+
}
|
511 |
+
|
512 |
+
break;
|
513 |
+
|
514 |
+
case 'custom':
|
515 |
+
|
516 |
+
$post_info_content = $el['atts']['type_custom'];
|
517 |
+
$link = $el['atts']['info_custom_link'];
|
518 |
+
|
519 |
+
break;
|
520 |
+
}
|
521 |
+
|
522 |
+
$el['atts']['post_info_content'] = $post_info_content;
|
523 |
+
$el['atts']['avatar_url'] = $avatar_url;
|
524 |
+
$el['atts']['link'] = $link;
|
525 |
+
|
526 |
+
echo json_encode($el['atts']);
|
527 |
+
wp_die();
|
528 |
+
|
529 |
+
}
|
main/functions.php
CHANGED
@@ -896,3 +896,36 @@ function pagelayer_maybe_promo($opts){
|
|
896 |
}
|
897 |
|
898 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
896 |
}
|
897 |
|
898 |
}
|
899 |
+
|
900 |
+
// Get Post Revision
|
901 |
+
function pagelayer_get_post_revision_by_id($postID){
|
902 |
+
|
903 |
+
// Insert the post revision into the database
|
904 |
+
$post_revisions = array();
|
905 |
+
$reviews = wp_get_post_revisions($postID);
|
906 |
+
|
907 |
+
foreach($reviews as $values){
|
908 |
+
|
909 |
+
$date_format = date_i18n('j-M @ H:i', strtotime( $values->post_modified ) );
|
910 |
+
$user_meta = get_userdata($values->post_author);
|
911 |
+
|
912 |
+
if ( false !== strpos( $values->post_name, 'autosave' ) ) {
|
913 |
+
$type = 'autosave';
|
914 |
+
} else {
|
915 |
+
$type = 'revision';
|
916 |
+
}
|
917 |
+
|
918 |
+
$post_tmp_data = array(
|
919 |
+
'ID' => $values->ID,
|
920 |
+
'post_author_name' => $user_meta->data->display_name,
|
921 |
+
'post_author_url' => get_avatar_url($values->post_author),
|
922 |
+
'post_date' => $date_format,
|
923 |
+
'post_date_ago' => human_time_diff(strtotime($values->post_modified), current_time( 'timestamp' )) . ' ago ',
|
924 |
+
'post_type' => $type,
|
925 |
+
);
|
926 |
+
|
927 |
+
$post_revisions[] = $post_tmp_data;
|
928 |
+
}
|
929 |
+
|
930 |
+
return $post_revisions;
|
931 |
+
}
|
main/live.php
CHANGED
@@ -103,6 +103,7 @@ pagelayer_postID = "'.$post->ID.'";
|
|
103 |
pagelayer_tabs = '.json_encode($pagelayer->tabs).';
|
104 |
pagelayer_isDirty = false;
|
105 |
pagelayer_returnURL = "'.$returnURL.'";
|
|
|
106 |
</script>';
|
107 |
}
|
108 |
|
103 |
pagelayer_tabs = '.json_encode($pagelayer->tabs).';
|
104 |
pagelayer_isDirty = false;
|
105 |
pagelayer_returnURL = "'.$returnURL.'";
|
106 |
+
pagelayer_revision_obj = '.json_encode( pagelayer_get_post_revision_by_id( $post->ID ) ).';
|
107 |
</script>';
|
108 |
}
|
109 |
|
main/shortcode_functions.php
CHANGED
@@ -1184,6 +1184,156 @@ function pagelayer_sc_service(&$el){
|
|
1184 |
}
|
1185 |
}
|
1186 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1187 |
/*pagelayer_print($atts);
|
1188 |
pagelayer_print($content);
|
1189 |
die();*/
|
@@ -1262,3 +1412,47 @@ function pagelayer_tax_list($item, $page = false){
|
|
1262 |
return $taxonomies;
|
1263 |
}
|
1264 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1184 |
}
|
1185 |
}
|
1186 |
|
1187 |
+
// Primary menu Handler
|
1188 |
+
function pagelayer_sc_wp_menu(&$el){
|
1189 |
+
|
1190 |
+
$el['atts']['nav_menu'] = wp_nav_menu( array(
|
1191 |
+
'menu' => wp_get_nav_menu_object($el['atts']['nav_list']),
|
1192 |
+
'menu_id' => $el['atts']['nav_list'],
|
1193 |
+
//'theme_location' => 'primary',
|
1194 |
+
//'menu_class' => 'primary-menu',
|
1195 |
+
'echo' => false,
|
1196 |
+
) );
|
1197 |
+
}
|
1198 |
+
|
1199 |
+
// Post Navigation Handler
|
1200 |
+
function pagelayer_sc_post_nav(&$el){
|
1201 |
+
|
1202 |
+
$in_same_term = false;
|
1203 |
+
$taxonomies = 'category';
|
1204 |
+
$title = '';
|
1205 |
+
$arrows_list = $el['atts']['arrows_list'];
|
1206 |
+
|
1207 |
+
if($el['atts']['in_same_term']){
|
1208 |
+
$in_same_term = true;
|
1209 |
+
$taxonomies = $el['atts']['taxonomies'];
|
1210 |
+
}
|
1211 |
+
|
1212 |
+
if($el['atts']['post_title']){
|
1213 |
+
$title = '<span class="pagelayer-post-nav-title">%title</span>';
|
1214 |
+
}
|
1215 |
+
|
1216 |
+
$next_label = '<span class="pagelayer-next-holder">
|
1217 |
+
<span class="pagelayer-post-nav-link"> '.$el["atts"]["next_label"].'</span>'.$title.'
|
1218 |
+
</span>
|
1219 |
+
<span class="pagelayer-post-nav-icon fa fa-'.$arrows_list.'-right"></span>';
|
1220 |
+
|
1221 |
+
$prev_label = '<span class="pagelayer-post-nav-icon fa fa-'.$arrows_list.'-left"></span>
|
1222 |
+
<span class="pagelayer-next-holder">
|
1223 |
+
<span class="pagelayer-post-nav-link"> '.$el["atts"]["prev_label"].'</span>'.$title.'
|
1224 |
+
</span>';
|
1225 |
+
|
1226 |
+
$el['atts']['next_link'] = get_next_post_link('%link', $next_label, $in_same_term, '', $taxonomies);
|
1227 |
+
|
1228 |
+
$el['atts']['prev_link'] = get_previous_post_link('%link', $prev_label, $in_same_term, '', $taxonomies );
|
1229 |
+
}
|
1230 |
+
|
1231 |
+
// Comments Handler
|
1232 |
+
function pagelayer_sc_post_comment(&$el){
|
1233 |
+
global $post;
|
1234 |
+
|
1235 |
+
// Is it custom ?
|
1236 |
+
if($el['atts']['post_type'] == 'custom' && !empty($el['atts']['post_id'])){
|
1237 |
+
$orig_post = $post;
|
1238 |
+
$post = get_post($el['atts']['post_id']);
|
1239 |
+
}
|
1240 |
+
|
1241 |
+
$post_id = $post->ID;
|
1242 |
+
//echo $post_id.' - '.$el['atts']['post_id'];
|
1243 |
+
|
1244 |
+
if ( comments_open($post_id) || get_comments_number($post_id) ) {
|
1245 |
+
|
1246 |
+
// Handel comments template echo
|
1247 |
+
ob_start();
|
1248 |
+
comments_template();
|
1249 |
+
|
1250 |
+
$el['atts']['post_comment'] = '<div class="pagelayer-comments-template">'.ob_get_clean().'</div>';
|
1251 |
+
}else{
|
1252 |
+
$el['atts']['post_comment'] = '<div class="pagelayer-comments-close">
|
1253 |
+
<h2>Comments are closed!</h2>
|
1254 |
+
</div>';
|
1255 |
+
}
|
1256 |
+
|
1257 |
+
if(!empty($orig_post)){
|
1258 |
+
$post = $orig_post;
|
1259 |
+
}
|
1260 |
+
|
1261 |
+
}
|
1262 |
+
|
1263 |
+
// post navigation Handler
|
1264 |
+
function pagelayer_sc_post_info_list(&$el){
|
1265 |
+
|
1266 |
+
$el['atts']['post_info_content'] ='';
|
1267 |
+
|
1268 |
+
switch($el['atts']['type']){
|
1269 |
+
case 'author':
|
1270 |
+
|
1271 |
+
$el['atts']['link'] = get_author_posts_url( get_the_author_meta( 'ID' ) );
|
1272 |
+
$el['atts']['avatar_url'] = get_avatar_url( get_the_author_meta( 'ID' ), 96 );
|
1273 |
+
$el['atts']['post_info_content'] = get_the_author_meta( 'display_name' );
|
1274 |
+
|
1275 |
+
break;
|
1276 |
+
|
1277 |
+
case 'date':
|
1278 |
+
|
1279 |
+
$format = [
|
1280 |
+
'default' => 'F j, Y',
|
1281 |
+
'0' => 'F j, Y',
|
1282 |
+
'1' => 'Y-m-d',
|
1283 |
+
'2' => 'm/d/Y',
|
1284 |
+
'3' => 'd/m/Y',
|
1285 |
+
'custom' => empty( $el['atts']['date_format_custom'] ) ? 'F j, Y' : $el['atts']['date_format_custom'],
|
1286 |
+
];
|
1287 |
+
|
1288 |
+
$el['atts']['post_info_content'] = get_the_time( $format[ $el['atts']['date_format'] ] );
|
1289 |
+
$el['atts']['link'] = get_day_link( get_post_time( 'Y' ), get_post_time( 'm' ), get_post_time( 'j' ) );
|
1290 |
+
|
1291 |
+
break;
|
1292 |
+
|
1293 |
+
case 'time':
|
1294 |
+
|
1295 |
+
$format = [
|
1296 |
+
'default' => 'g:i a',
|
1297 |
+
'0' => 'g:i a',
|
1298 |
+
'1' => 'g:i A',
|
1299 |
+
'2' => 'H:i',
|
1300 |
+
'custom' => empty( $el['atts']['time_format_custom'] ) ? 'F j, Y' : $el['atts']['time_format_custom'],
|
1301 |
+
];
|
1302 |
+
$el['atts']['post_info_content'] = get_the_time( $format[ $el['atts']['time_format'] ] );
|
1303 |
+
|
1304 |
+
break;
|
1305 |
+
|
1306 |
+
case 'comments':
|
1307 |
+
|
1308 |
+
if (comments_open()) {
|
1309 |
+
$el['atts']['post_info_content'] = (int) get_comments_number();
|
1310 |
+
$el['atts']['link'] = get_comments_link();
|
1311 |
+
}
|
1312 |
+
|
1313 |
+
break;
|
1314 |
+
|
1315 |
+
case 'terms':
|
1316 |
+
|
1317 |
+
$taxonomy = $el['atts']['taxonomy'];
|
1318 |
+
$terms = wp_get_post_terms( get_the_ID(), $taxonomy );
|
1319 |
+
foreach ( $terms as $term ) {
|
1320 |
+
$el['atts']['post_info_content'] .= ' <a href="'. get_term_link( $term ) .'"> '. $term->name .' </a>';
|
1321 |
+
}
|
1322 |
+
|
1323 |
+
$el['atts']['info_link'] = '';
|
1324 |
+
break;
|
1325 |
+
|
1326 |
+
case 'custom':
|
1327 |
+
|
1328 |
+
$el['atts']['post_info_content'] = $el['atts']['type_custom'];
|
1329 |
+
$el['atts']['link'] = $el['atts']['info_custom_link'];
|
1330 |
+
|
1331 |
+
break;
|
1332 |
+
}
|
1333 |
+
|
1334 |
+
|
1335 |
+
}
|
1336 |
+
|
1337 |
/*pagelayer_print($atts);
|
1338 |
pagelayer_print($content);
|
1339 |
die();*/
|
1412 |
return $taxonomies;
|
1413 |
}
|
1414 |
|
1415 |
+
// Get all posts and pages list
|
1416 |
+
function pagelayer_get_posts($args){
|
1417 |
+
|
1418 |
+
if(empty($args)){
|
1419 |
+
$args = array_keys(pagelayer_post_types(true));
|
1420 |
+
}
|
1421 |
+
|
1422 |
+
$posts_list = array();
|
1423 |
+
|
1424 |
+
// Get type
|
1425 |
+
foreach($args as $p){
|
1426 |
+
|
1427 |
+
// Create post list
|
1428 |
+
foreach(get_posts(['post_type' => $p]) as $post){
|
1429 |
+
$posts_list[$post->ID] = $post->post_title;
|
1430 |
+
}
|
1431 |
+
}
|
1432 |
+
|
1433 |
+
return $posts_list;
|
1434 |
+
}
|
1435 |
+
|
1436 |
+
// Get Menu List()
|
1437 |
+
function pagelayer_get_menu_list($return_def = false){
|
1438 |
+
|
1439 |
+
$menus = wp_get_nav_menus();
|
1440 |
+
$nav_menu = array();
|
1441 |
+
|
1442 |
+
$default = $menus[0]->term_id;
|
1443 |
+
|
1444 |
+
foreach ( $menus as $menu ) {
|
1445 |
+
$nav_menu[$menu->term_id] = $menu->name;
|
1446 |
+
|
1447 |
+
if($default > $menu->term_id){
|
1448 |
+
$default = $menu->term_id;
|
1449 |
+
}
|
1450 |
+
}
|
1451 |
+
|
1452 |
+
if($return_def){
|
1453 |
+
return $default;
|
1454 |
+
}
|
1455 |
+
|
1456 |
+
return $nav_menu;
|
1457 |
+
|
1458 |
+
}
|
main/shortcodes.php
CHANGED
@@ -5463,7 +5463,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_testimonial', array(
|
|
5463 |
'params' => array(
|
5464 |
'image_position' => array(
|
5465 |
'type' => 'select',
|
5466 |
-
'label' => __pl('
|
5467 |
'default' => 'aside-position',
|
5468 |
'list' =>array(
|
5469 |
'aside-position' => __pl('aside'),
|
@@ -5976,7 +5976,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_stars', array(
|
|
5976 |
),
|
5977 |
],
|
5978 |
'styles' => [
|
5979 |
-
'title_style' => __pl('
|
5980 |
'stars_style' => __pl('stars_style'),
|
5981 |
],
|
5982 |
)
|
5463 |
'params' => array(
|
5464 |
'image_position' => array(
|
5465 |
'type' => 'select',
|
5466 |
+
'label' => __pl('position'),
|
5467 |
'default' => 'aside-position',
|
5468 |
'list' =>array(
|
5469 |
'aside-position' => __pl('aside'),
|
5976 |
),
|
5977 |
],
|
5978 |
'styles' => [
|
5979 |
+
'title_style' => __pl('title'),
|
5980 |
'stars_style' => __pl('stars_style'),
|
5981 |
],
|
5982 |
)
|
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: 0.9.
|
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: 0.9.5
|
7 |
Author: Pagelayer Team
|
8 |
Author URI: https://pagelayer.com/
|
9 |
License: LGPL v2.1
|
readme.txt
CHANGED
@@ -2,8 +2,9 @@
|
|
2 |
Contributors: pagelayer
|
3 |
Tags: page builder, editor, landing page, drag-and-drop, pagelayer, softaculous, visual editor, wysiwyg, design, maintenance mode, coming soon, under construction, website builder, landing page builder, front-end builder
|
4 |
Requires at least: 4.7
|
5 |
-
Tested up to: 5.
|
6 |
-
|
|
|
7 |
License: LGPL v2.1
|
8 |
License URI: http://www.gnu.org/licenses/lgpl-2.1.html
|
9 |
|
@@ -112,6 +113,11 @@ Do you have questions related to PageLayer ? Use the following links :
|
|
112 |
|
113 |
== Changelog ==
|
114 |
|
|
|
|
|
|
|
|
|
|
|
115 |
= 0.9.4 (May 7, 2019) =
|
116 |
* [Feature] Added Inner Row which allows to create columns within columns for complex designs
|
117 |
* [Task] The PageLayer Admin JS and CSS was loaded everywhere in the admin panel. This is fixed.
|
2 |
Contributors: pagelayer
|
3 |
Tags: page builder, editor, landing page, drag-and-drop, pagelayer, softaculous, visual editor, wysiwyg, design, maintenance mode, coming soon, under construction, website builder, landing page builder, front-end builder
|
4 |
Requires at least: 4.7
|
5 |
+
Tested up to: 5.2
|
6 |
+
Requires PHP: 5.2.4
|
7 |
+
Stable tag: 0.9.5
|
8 |
License: LGPL v2.1
|
9 |
License URI: http://www.gnu.org/licenses/lgpl-2.1.html
|
10 |
|
113 |
|
114 |
== Changelog ==
|
115 |
|
116 |
+
= 0.9.5 (June 21, 2019) =
|
117 |
+
* [Feature] Added revision control
|
118 |
+
* [Feature] Added the ability to manage actions while editing i.e. undo and redo
|
119 |
+
* [Feature] Added keyboard options like ctrl+c, ctrl+v, ctrl+z, ctrl+y
|
120 |
+
|
121 |
= 0.9.4 (May 7, 2019) =
|
122 |
* [Feature] Added Inner Row which allows to create columns within columns for complex designs
|
123 |
* [Task] The PageLayer Admin JS and CSS was loaded everywhere in the admin panel. This is fixed.
|