diff --git a/wp-content/index.php b/wp-content/index.php new file mode 100644 index 0000000..6220032 --- /dev/null +++ b/wp-content/index.php @@ -0,0 +1,2 @@ + + Order Deny,Allow + Deny from all + + +# Apache 2.4 + + Require all denied + + +# Akismet CSS and JS + + + Allow from all + + + + Require all granted + + + +# Akismet images + + + Allow from all + + + + Require all granted + + \ No newline at end of file diff --git a/wp-content/plugins/akismet/LICENSE.txt b/wp-content/plugins/akismet/LICENSE.txt new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/wp-content/plugins/akismet/LICENSE.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/wp-content/plugins/akismet/_inc/akismet.css b/wp-content/plugins/akismet/_inc/akismet.css new file mode 100644 index 0000000..d38e14b --- /dev/null +++ b/wp-content/plugins/akismet/_inc/akismet.css @@ -0,0 +1,474 @@ + +#submitted-on { + position: relative; +} +#the-comment-list .author .akismet-user-comment-count { + display: inline; +} +#the-comment-list .author a span { + text-decoration: none; + color: #999; +} +#the-comment-list .author a span.akismet-span-link { + text-decoration: inherit; + color: inherit; +} +#the-comment-list .remove_url { + margin-left: 3px; + color: #999; + padding: 2px 3px 2px 0; +} +#the-comment-list .remove_url:hover { + color: #A7301F; + font-weight: bold; + padding: 2px 2px 2px 0; +} +#dashboard_recent_comments .akismet-status { + display: none; +} +.akismet-status { + float: right; +} +.akismet-status a { + color: #AAA; + font-style: italic; +} +table.comments td.comment p a { + text-decoration: underline; +} +table.comments td.comment p a:after { + content: attr(href); + color: #aaa; + display: inline-block; /* Show the URL without the link's underline extending under it. */ + padding: 0 1ex; /* Because it's inline block, we can't just use spaces in the content: attribute to separate it from the link text. */ +} +.mshot-arrow { + width: 0; + height: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + border-right: 10px solid #5C5C5C; + position: absolute; + left: -6px; + top: 91px; +} +.mshot-container { + background: #5C5C5C; + position: absolute; + top: -94px; + padding: 7px; + width: 450px; + height: 338px; + z-index: 20000; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-border-radius: 6px; +} +.akismet-mshot { + position: absolute; + z-index: 100; +} +.akismet-mshot .mshot-image { + margin: 0; + height: 338px; + width: 450px; +} +h2.ak-header { + padding: 30px; + background: #649316 url('img/logo-full-2x.png') no-repeat 20px center; + background-size: 185px 33px; + height: 33px; + text-indent: -9999em; + margin-right: 10px; +} +.checkforspam { + display: inline-block !important; +} +.checkforspam-spinner { + display: inline-block; + margin-top: 7px; +} + +.config-wrap { + margin-top: 2em; + max-width: 700px; +} + +.activate-option { + background: #e3e3e3; + border-radius: 3px; + margin-bottom: 30px; + overflow: hidden; + padding: 20px; +} +.activate-option.clicked { + background: #649316; + color: #fff; +} +.activate-option.clicked:hover { + background: #68802E; + color: #fff; +} + +.activate-option .button.button-secondary { + margin: 15px 0; +} + +.activate-option p { + margin: 10px 0 10px; +} + +.activate-highlight { + background: #fff; + padding: 30px; + margin-right: 10px; +} + +.activate-highlight.secondary { + background: #ddd; + padding: 20px 30px; +} + +.activate-highlight h3 { + margin: 0 0 0.3em; +} +.activate-highlight p { + color: #777; +} +.activate-highlight .button-primary { + margin-top: 15px; +} + +#akismet-enter-api-key .regular-text { + width: 18em; + margin-top: 15px; +} + +.right { + float: right; +} + +.alert-text { + color: #dd3d36; +} +.success { + color: #649316; +} +.option-description { + float: left; + font-size: 16px; +} +.option-description span { + color: #666; + display: block; + font-size: 14px; + margin-top: 5px; +} +.option-action { + float: right; +} +.key-config-link { + font-size: 14px; + margin-left: 20px; +} +.jetpack-account { + float: left; + font-size: 18px; + margin-right: 40px; +} +.small-heading { + color: #777; + display: block; + font-size: 12px; + font-weight: bold; + margin-bottom: 5px; + text-transform: uppercase; +} +.inline-label { + background: #ddd; + border-radius: 3px; + font-size: 11px; + padding: 3px 8px; + text-transform: uppercase; +} +.inline-label.alert { + background: #e54747; + color: #fff; +} +.jetpack-account .inline-label { + margin-left: 5px; +} +.option-action .manual-key { + margin-top: 7px; +} + +.alert { + border: 1px solid #e5e5e5; + padding: 0.4em 1em 1.4em 1em; + border-radius: 3px; + -webkit-border-radius: 3px; + border-width: 1px; + border-style: solid; +} + +.alert h3.key-status { + color: #fff; + margin: 1em 0 0.5em 0; +} + +.alert.critical { + background-color: #993300; +} + +.alert.active { + background-color: #649316; +} + +.alert p.key-status { + font-size: 24px; +} + +.alert p.description { + color:#fff; + font-size: 14px; + margin: 0 0; + font-style: normal; +} + +.alert p.description a, +.alert p.description a, +.alert p.description a, +.alert p.description a { + color: #fff; +} + +.new-snapshot { + margin-top: 1em; + padding: 1em; + text-align: center; +} + +.new-snapshot.stats { + background: #fff; + border: 1px solid #e5e5e5; +} + +.new-snapshot h3 { + background: #f5f5f5; + color: #888; + font-size: 11px; + margin: 0; + padding: 3px; +} + +.new-snapspot ul { + font-size: 12px; + width: 100%; +} + +.new-snapshot ul li { + color: #999; + float: left; + font-size: 11px; + padding: 0 20px; + text-transform: uppercase; + width: 33%; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; +} + +.new-snapshot.stats ul li:first-child, +.new-snapshot.stats ul li:nth-child(2) { + border-right:1px dotted #ccc; +} + +.new-snapshot.account ul li:nth-child(2) { + border-right: none; +} + +.new-snapshot ul li span { + color: #52accc; + display: block; + font-size: 32px; + font-weight: lighter; + line-height: 1.5em; +} + +.new-snapshot.stats { +} + +.new-snapshot.account, +.new-snapshot.settings { + float: left; + padding: 0; + text-align: left; + width: 50%; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; +} + +.account-container { + background: #fff; + border: 1px solid #e5e5e5; + margin-right: 0.5em; +} + +.settings-container { + background: #fff; + border: 1px solid #e5e5e5; + margin-left: 0.5em; +} + +.new-snapshot.account ul li { + width:100% +} + +.new-snapshot.account ul li span { + font-size: 14px; + font-weight: normal; +} + + +.new-snapshot.settings ul li { + border: none; + display: block; + width:100% +} + +.new-snapshot.settings ul li span { + display: block; + font-size: 14px; + font-weight: normal; +} + +.new-snapshot.settings p.submit { + margin: 0; + text-align: center; +} + +.akismet-settings th:first-child { + vertical-align: top; + padding-top: 15px; +} + +.akismet-settings th.akismet-api-key { + vertical-align: middle; + padding-top: 0; +} + +.akismet-settings input[type=text] { + width: 75%; +} + +.akismet-settings span.note{ + float: left; + padding-left: 23px; + font-size: 75%; + margin-top: -10px; +} + +.clearfix { + clear:both; +} + +/** + * For the activation notice on the plugins page. + */ +.akismet_activate { + min-width: 825px; + border: 1px solid #4F800D; + padding: 5px; + margin: 15px 0; + background: #83AF24; + background-image: -webkit-gradient(linear, 0% 0, 80% 100%, from(#83AF24), to(#4F800D)); + background-image: -moz-linear-gradient(80% 100% 120deg, #4F800D, #83AF24); + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-border-radius: 3px; + position: relative; + overflow: hidden; +} + +.akismet_activate .aa_a { + position: absolute; + top: -5px; + right: 10px; + font-size: 140px; + color: #769F33; + font-family: Georgia, "Times New Roman", Times, serif; + z-index: 1; +} + +.akismet_activate .aa_button { + font-weight: bold; + border: 1px solid #029DD6; + border-top: 1px solid #06B9FD; + font-size: 15px; + text-align: center; + padding: 9px 0 8px 0; + color: #FFF; + background: #029DD6; + background-image: -webkit-gradient(linear, 0% 0, 0% 100%, from(#029DD6), to(#0079B1)); + background-image: -moz-linear-gradient(0% 100% 90deg, #0079B1, #029DD6); + -moz-border-radius: 2px; + border-radius: 2px; + -webkit-border-radius: 2px; + width: 100%; + cursor: pointer; + margin: 0; +} + +.akismet_activate .aa_button:hover { + text-decoration: none !important; + border: 1px solid #029DD6; + border-bottom: 1px solid #00A8EF; + font-size: 15px; + text-align: center; + padding: 9px 0 8px 0; + color: #F0F8FB; + background: #0079B1; + background-image: -webkit-gradient(linear, 0% 0, 0% 100%, from(#0079B1), to(#0092BF)); + background-image: -moz-linear-gradient(0% 100% 90deg, #0092BF, #0079B1); + -moz-border-radius: 2px; + border-radius: 2px; + -webkit-border-radius: 2px; +} + +.akismet_activate .aa_button_border { + border: 1px solid #006699; + -moz-border-radius: 2px; + border-radius: 2px; + -webkit-border-radius: 2px; + background: #029DD6; + background-image: -webkit-gradient(linear, 0% 0, 0% 100%, from(#029DD6), to(#0079B1)); + background-image: -moz-linear-gradient(0% 100% 90deg, #0079B1, #029DD6); +} + +.akismet_activate .aa_button_container { + display: inline-block; + background: #DEF1B8; + padding: 5px; + -moz-border-radius: 2px; + border-radius: 2px; + -webkit-border-radius: 2px; + width: 266px; +} + +.akismet_activate .aa_description { + position: absolute; + top: 22px; + left: 285px; + margin-left: 25px; + color: #E5F2B1; + font-size: 15px; + z-index: 1000; +} + +.akismet_activate .aa_description strong { + color: #FFF; + font-weight: normal; +} \ No newline at end of file diff --git a/wp-content/plugins/akismet/_inc/akismet.js b/wp-content/plugins/akismet/_inc/akismet.js new file mode 100644 index 0000000..246c858 --- /dev/null +++ b/wp-content/plugins/akismet/_inc/akismet.js @@ -0,0 +1,197 @@ +jQuery( function ( $ ) { + var mshotRemovalTimer = null; + var mshotSecondTryTimer = null + var mshotThirdTryTimer = null + + $( 'a.activate-option' ).click( function(){ + var link = $( this ); + if ( link.hasClass( 'clicked' ) ) { + link.removeClass( 'clicked' ); + } + else { + link.addClass( 'clicked' ); + } + $( '.toggle-have-key' ).slideToggle( 'slow', function() {}); + return false; + }); + $('.akismet-status').each(function () { + var thisId = $(this).attr('commentid'); + $(this).prependTo('#comment-' + thisId + ' .column-comment'); + }); + $('.akismet-user-comment-count').each(function () { + var thisId = $(this).attr('commentid'); + $(this).insertAfter('#comment-' + thisId + ' .author strong:first').show(); + }); + $('#the-comment-list') + .find('tr.comment, tr[id ^= "comment-"]') + .find('.column-author a[href^="http"]:first') // Ignore mailto: links, which would be the comment author's email. + .each(function () { + var linkHref = $(this).attr( 'href' ); + + // Ignore any links to the current domain, which are diagnostic tools, like the IP address link + // or any other links another plugin might add. + var currentHostParts = document.location.href.split( '/' ); + var currentHost = currentHostParts[0] + '//' + currentHostParts[2] + '/'; + + if ( linkHref.indexOf( currentHost ) != 0 ) { + var thisCommentId = $(this).parents('tr:first').attr('id').split("-"); + + $(this) + .attr("id", "author_comment_url_"+ thisCommentId[1]) + .after( + $( 'x' ) + .attr( 'commentid', thisCommentId[1] ) + .attr( 'title', WPAkismet.strings['Remove this URL'] ) + ); + } + }); + $('.remove_url').live('click', function () { + var thisId = $(this).attr('commentid'); + var data = { + action: 'comment_author_deurl', + _wpnonce: WPAkismet.comment_author_url_nonce, + id: thisId + }; + $.ajax({ + url: ajaxurl, + type: 'POST', + data: data, + beforeSend: function () { + // Removes "x" link + $("a[commentid='"+ thisId +"']").hide(); + // Show temp status + $("#author_comment_url_"+ thisId).html( $( '' ).text( WPAkismet.strings['Removing...'] ) ); + }, + success: function (response) { + if (response) { + // Show status/undo link + $("#author_comment_url_"+ thisId) + .attr('cid', thisId) + .addClass('akismet_undo_link_removal') + .html( + $( '' ).text( WPAkismet.strings['URL removed'] ) + ) + .append( ' ' ) + .append( + $( '' ) + .text( WPAkismet.strings['(undo)'] ) + .addClass( 'akismet-span-link' ) + ); + } + } + }); + + return false; + }); + $('.akismet_undo_link_removal').live('click', function () { + var thisId = $(this).attr('cid'); + var thisUrl = $(this).attr('href'); + var data = { + action: 'comment_author_reurl', + _wpnonce: WPAkismet.comment_author_url_nonce, + id: thisId, + url: thisUrl + }; + $.ajax({ + url: ajaxurl, + type: 'POST', + data: data, + beforeSend: function () { + // Show temp status + $("#author_comment_url_"+ thisId).html( $( '' ).text( WPAkismet.strings['Re-adding...'] ) ); + }, + success: function (response) { + if (response) { + // Add "x" link + $("a[commentid='"+ thisId +"']").show(); + // Show link. Core strips leading http://, so let's do that too. + $("#author_comment_url_"+ thisId).removeClass('akismet_undo_link_removal').text( thisUrl.replace( /^http:\/\/(www\.)?/ig, '' ) ); + } + } + }); + + return false; + }); + + // Show a preview image of the hovered URL. Applies to author URLs and URLs inside the comments. + $( 'a[id^="author_comment_url"], tr.pingback td.column-author a:first-of-type, table.comments td.comment p a' ).mouseover( function () { + clearTimeout( mshotRemovalTimer ); + + if ( $( '.akismet-mshot' ).length > 0 ) { + if ( $( '.akismet-mshot:first' ).data( 'link' ) == this ) { + // The preview is already showing for this link. + return; + } + else { + // A new link is being hovered, so remove the old preview. + $( '.akismet-mshot' ).remove(); + } + } + + clearTimeout( mshotSecondTryTimer ); + clearTimeout( mshotThirdTryTimer ); + + var thisHref = $.URLEncode( $( this ).attr( 'href' ) ); + + var mShot = $( '
' ); + mShot.data( 'link', this ); + + var offset = $( this ).offset(); + + mShot.offset( { + left : Math.min( $( window ).width() - 475, offset.left + $( this ).width() + 10 ), // Keep it on the screen if the link is near the edge of the window. + top: offset.top + ( $( this ).height() / 2 ) - 101 // 101 = top offset of the arrow plus the top border thickness + } ); + + mshotSecondTryTimer = setTimeout( function () { + mShot.find( '.mshot-image' ).attr( 'src', '//s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=2' ); + }, 6000 ); + + mshotThirdTryTimer = setTimeout( function () { + mShot.find( '.mshot-image' ).attr( 'src', '//s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=3' ); + }, 12000 ); + + $( 'body' ).append( mShot ); + } ).mouseout( function () { + mshotRemovalTimer = setTimeout( function () { + clearTimeout( mshotSecondTryTimer ); + clearTimeout( mshotThirdTryTimer ); + + $( '.akismet-mshot' ).remove(); + }, 200 ); + } ); + + $('.checkforspam:not(.button-disabled)').click( function(e) { + $('.checkforspam:not(.button-disabled)').addClass('button-disabled'); + $('.checkforspam-spinner').addClass( 'spinner' ); + akismet_check_for_spam(0, 100); + e.preventDefault(); + }); + + function akismet_check_for_spam(offset, limit) { + $.post( + ajaxurl, + { + 'action': 'akismet_recheck_queue', + 'offset': offset, + 'limit': limit + }, + function(result) { + if (result.processed < limit) { + window.location.reload(); + } + else { + // Account for comments that were caught as spam and moved out of the queue. + akismet_check_for_spam(offset + limit - result.counts.spam, limit); + } + } + ); + } +}); +// URL encode plugin +jQuery.extend({URLEncode:function(c){var o='';var x=0;c=c.toString();var r=/(^[a-zA-Z0-9_.]*)/; + while(x1 && m[1]!=''){o+=m[1];x+=m[1].length; + }else{if(c[x]==' ')o+='+';else{var d=c.charCodeAt(x);var h=d.toString(16); + o+='%'+(h.length<2?'0':'')+h.toUpperCase();}x++;}}return o;} +}); diff --git a/wp-content/plugins/akismet/_inc/form.js b/wp-content/plugins/akismet/_inc/form.js new file mode 100644 index 0000000..3a5be8a --- /dev/null +++ b/wp-content/plugins/akismet/_inc/form.js @@ -0,0 +1,30 @@ +var ak_js = document.getElementById( "ak_js" ); + +if ( ! ak_js ) { + ak_js = document.createElement( 'input' ); + ak_js.setAttribute( 'id', 'ak_js' ); + ak_js.setAttribute( 'name', 'ak_js' ); + ak_js.setAttribute( 'type', 'hidden' ); +} +else { + ak_js.parentNode.removeChild( ak_js ); +} + +ak_js.setAttribute( 'value', ( new Date() ).getTime() ); + +var commentForm = document.getElementById( 'commentform' ); + +if ( commentForm ) { + commentForm.appendChild( ak_js ); +} +else { + var replyRowContainer = document.getElementById( 'replyrow' ); + + if ( replyRowContainer ) { + var children = replyRowContainer.getElementsByTagName( 'td' ); + + if ( children.length > 0 ) { + children[0].appendChild( ak_js ); + } + } +} \ No newline at end of file diff --git a/wp-content/plugins/akismet/_inc/img/logo-full-2x.png b/wp-content/plugins/akismet/_inc/img/logo-full-2x.png new file mode 100644 index 0000000..a9bed8b Binary files /dev/null and b/wp-content/plugins/akismet/_inc/img/logo-full-2x.png differ diff --git a/wp-content/plugins/akismet/akismet.php b/wp-content/plugins/akismet/akismet.php new file mode 100644 index 0000000..a65a0d6 --- /dev/null +++ b/wp-content/plugins/akismet/akismet.php @@ -0,0 +1,60 @@ +protect your blog from spam. It keeps your site protected even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) Sign up for an Akismet plan to get an API key, and 3) Go to your Akismet configuration page, and save your API key. +Version: 3.1.11 +Author: Automattic +Author URI: https://automattic.com/wordpress-plugins/ +License: GPLv2 or later +Text Domain: akismet +*/ + +/* +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +Copyright 2005-2015 Automattic, Inc. +*/ + +// Make sure we don't expose any info if called directly +if ( !function_exists( 'add_action' ) ) { + echo 'Hi there! I\'m just a plugin, not much I can do when called directly.'; + exit; +} + +define( 'AKISMET_VERSION', '3.1.11' ); +define( 'AKISMET__MINIMUM_WP_VERSION', '3.2' ); +define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); +define( 'AKISMET_DELETE_LIMIT', 100000 ); + +register_activation_hook( __FILE__, array( 'Akismet', 'plugin_activation' ) ); +register_deactivation_hook( __FILE__, array( 'Akismet', 'plugin_deactivation' ) ); + +require_once( AKISMET__PLUGIN_DIR . 'class.akismet.php' ); +require_once( AKISMET__PLUGIN_DIR . 'class.akismet-widget.php' ); + +add_action( 'init', array( 'Akismet', 'init' ) ); + +if ( is_admin() ) { + require_once( AKISMET__PLUGIN_DIR . 'class.akismet-admin.php' ); + add_action( 'init', array( 'Akismet_Admin', 'init' ) ); +} + +//add wrapper class around deprecated akismet functions that are referenced elsewhere +require_once( AKISMET__PLUGIN_DIR . 'wrapper.php' ); + diff --git a/wp-content/plugins/akismet/class.akismet-admin.php b/wp-content/plugins/akismet/class.akismet-admin.php new file mode 100644 index 0000000..c9e82eb --- /dev/null +++ b/wp-content/plugins/akismet/class.akismet-admin.php @@ -0,0 +1,1011 @@ + array( + 'href' => true, + 'title' => true, + ), + 'b' => array(), + 'code' => array(), + 'del' => array( + 'datetime' => true, + ), + 'em' => array(), + 'i' => array(), + 'q' => array( + 'cite' => true, + ), + 'strike' => array(), + 'strong' => array(), + ); + + public static function init() { + if ( ! self::$initiated ) { + self::init_hooks(); + } + + if ( isset( $_POST['action'] ) && $_POST['action'] == 'enter-key' ) { + self::enter_api_key(); + } + } + + public static function init_hooks() { + // The standalone stats page was removed in 3.0 for an all-in-one config and stats page. + // Redirect any links that might have been bookmarked or in browser history. + if ( isset( $_GET['page'] ) && 'akismet-stats-display' == $_GET['page'] ) { + wp_safe_redirect( esc_url_raw( self::get_page_url( 'stats' ) ), 301 ); + die; + } + + self::$initiated = true; + + add_action( 'admin_init', array( 'Akismet_Admin', 'admin_init' ) ); + add_action( 'admin_menu', array( 'Akismet_Admin', 'admin_menu' ), 5 ); # Priority 5, so it's called before Jetpack's admin_menu. + add_action( 'admin_notices', array( 'Akismet_Admin', 'display_notice' ) ); + add_action( 'admin_enqueue_scripts', array( 'Akismet_Admin', 'load_resources' ) ); + add_action( 'activity_box_end', array( 'Akismet_Admin', 'dashboard_stats' ) ); + add_action( 'rightnow_end', array( 'Akismet_Admin', 'rightnow_stats' ) ); + add_action( 'manage_comments_nav', array( 'Akismet_Admin', 'check_for_spam_button' ) ); + add_action( 'admin_action_akismet_recheck_queue', array( 'Akismet_Admin', 'recheck_queue' ) ); + add_action( 'wp_ajax_akismet_recheck_queue', array( 'Akismet_Admin', 'recheck_queue' ) ); + add_action( 'wp_ajax_comment_author_deurl', array( 'Akismet_Admin', 'remove_comment_author_url' ) ); + add_action( 'wp_ajax_comment_author_reurl', array( 'Akismet_Admin', 'add_comment_author_url' ) ); + add_action( 'jetpack_auto_activate_akismet', array( 'Akismet_Admin', 'connect_jetpack_user' ) ); + + add_filter( 'plugin_action_links', array( 'Akismet_Admin', 'plugin_action_links' ), 10, 2 ); + add_filter( 'comment_row_actions', array( 'Akismet_Admin', 'comment_row_action' ), 10, 2 ); + + add_filter( 'plugin_action_links_'.plugin_basename( plugin_dir_path( __FILE__ ) . 'akismet.php'), array( 'Akismet_Admin', 'admin_plugin_settings_link' ) ); + + add_filter( 'wxr_export_skip_commentmeta', array( 'Akismet_Admin', 'exclude_commentmeta_from_export' ), 10, 3 ); + } + + public static function admin_init() { + load_plugin_textdomain( 'akismet' ); + add_meta_box( 'akismet-status', __('Comment History', 'akismet'), array( 'Akismet_Admin', 'comment_status_meta_box' ), 'comment', 'normal' ); + } + + public static function admin_menu() { + if ( class_exists( 'Jetpack' ) ) + add_action( 'jetpack_admin_menu', array( 'Akismet_Admin', 'load_menu' ) ); + else + self::load_menu(); + } + + public static function admin_head() { + if ( !current_user_can( 'manage_options' ) ) + return; + } + + public static function admin_plugin_settings_link( $links ) { + $settings_link = ''.__('Settings', 'akismet').''; + array_unshift( $links, $settings_link ); + return $links; + } + + public static function load_menu() { + if ( class_exists( 'Jetpack' ) ) + $hook = add_submenu_page( 'jetpack', __( 'Akismet' , 'akismet'), __( 'Akismet' , 'akismet'), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) ); + else + $hook = add_options_page( __('Akismet', 'akismet'), __('Akismet', 'akismet'), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) ); + + if ( version_compare( $GLOBALS['wp_version'], '3.3', '>=' ) ) { + add_action( "load-$hook", array( 'Akismet_Admin', 'admin_help' ) ); + } + } + + public static function load_resources() { + global $hook_suffix; + + if ( in_array( $hook_suffix, array( + 'index.php', # dashboard + 'edit-comments.php', + 'comment.php', + 'post.php', + 'settings_page_akismet-key-config', + 'jetpack_page_akismet-key-config', + 'plugins.php', + ) ) ) { + wp_register_style( 'akismet.css', plugin_dir_url( __FILE__ ) . '_inc/akismet.css', array(), AKISMET_VERSION ); + wp_enqueue_style( 'akismet.css'); + + wp_register_script( 'akismet.js', plugin_dir_url( __FILE__ ) . '_inc/akismet.js', array('jquery','postbox'), AKISMET_VERSION ); + wp_enqueue_script( 'akismet.js' ); + wp_localize_script( 'akismet.js', 'WPAkismet', array( + 'comment_author_url_nonce' => wp_create_nonce( 'comment_author_url_nonce' ), + 'strings' => array( + 'Remove this URL' => __( 'Remove this URL' , 'akismet'), + 'Removing...' => __( 'Removing...' , 'akismet'), + 'URL removed' => __( 'URL removed' , 'akismet'), + '(undo)' => __( '(undo)' , 'akismet'), + 'Re-adding...' => __( 'Re-adding...' , 'akismet'), + ) + ) ); + } + } + + /** + * Add help to the Akismet page + * + * @return false if not the Akismet page + */ + public static function admin_help() { + $current_screen = get_current_screen(); + + // Screen Content + if ( current_user_can( 'manage_options' ) ) { + if ( !Akismet::get_api_key() || ( isset( $_GET['view'] ) && $_GET['view'] == 'start' ) ) { + //setup page + $current_screen->add_help_tab( + array( + 'id' => 'overview', + 'title' => __( 'Overview' , 'akismet'), + 'content' => + '

' . esc_html__( 'Akismet Setup' , 'akismet') . '

' . + '

' . esc_html__( 'Akismet filters out spam, so you can focus on more important things.' , 'akismet') . '

' . + '

' . esc_html__( 'On this page, you are able to set up the Akismet plugin.' , 'akismet') . '

', + ) + ); + + $current_screen->add_help_tab( + array( + 'id' => 'setup-signup', + 'title' => __( 'New to Akismet' , 'akismet'), + 'content' => + '

' . esc_html__( 'Akismet Setup' , 'akismet') . '

' . + '

' . esc_html__( 'You need to enter an API key to activate the Akismet service on your site.' , 'akismet') . '

' . + '

' . sprintf( __( 'Sign up for an account on %s to get an API Key.' , 'akismet'), 'Akismet.com' ) . '

', + ) + ); + + $current_screen->add_help_tab( + array( + 'id' => 'setup-manual', + 'title' => __( 'Enter an API Key' , 'akismet'), + 'content' => + '

' . esc_html__( 'Akismet Setup' , 'akismet') . '

' . + '

' . esc_html__( 'If you already have an API key' , 'akismet') . '

' . + '
    ' . + '
  1. ' . esc_html__( 'Copy and paste the API key into the text field.' , 'akismet') . '
  2. ' . + '
  3. ' . esc_html__( 'Click the Use this Key button.' , 'akismet') . '
  4. ' . + '
', + ) + ); + } + elseif ( isset( $_GET['view'] ) && $_GET['view'] == 'stats' ) { + //stats page + $current_screen->add_help_tab( + array( + 'id' => 'overview', + 'title' => __( 'Overview' , 'akismet'), + 'content' => + '

' . esc_html__( 'Akismet Stats' , 'akismet') . '

' . + '

' . esc_html__( 'Akismet filters out spam, so you can focus on more important things.' , 'akismet') . '

' . + '

' . esc_html__( 'On this page, you are able to view stats on spam filtered on your site.' , 'akismet') . '

', + ) + ); + } + else { + //configuration page + $current_screen->add_help_tab( + array( + 'id' => 'overview', + 'title' => __( 'Overview' , 'akismet'), + 'content' => + '

' . esc_html__( 'Akismet Configuration' , 'akismet') . '

' . + '

' . esc_html__( 'Akismet filters out spam, so you can focus on more important things.' , 'akismet') . '

' . + '

' . esc_html__( 'On this page, you are able to enter/remove an API key, view account information and view spam stats.' , 'akismet') . '

', + ) + ); + + $current_screen->add_help_tab( + array( + 'id' => 'settings', + 'title' => __( 'Settings' , 'akismet'), + 'content' => + '

' . esc_html__( 'Akismet Configuration' , 'akismet') . '

' . + '

' . esc_html__( 'API Key' , 'akismet') . ' - ' . esc_html__( 'Enter/remove an API key.' , 'akismet') . '

' . + '

' . esc_html__( 'Comments' , 'akismet') . ' - ' . esc_html__( 'Show the number of approved comments beside each comment author in the comments list page.' , 'akismet') . '

' . + '

' . esc_html__( 'Strictness' , 'akismet') . ' - ' . esc_html__( 'Choose to either discard the worst spam automatically or to always put all spam in spam folder.' , 'akismet') . '

', + ) + ); + + $current_screen->add_help_tab( + array( + 'id' => 'account', + 'title' => __( 'Account' , 'akismet'), + 'content' => + '

' . esc_html__( 'Akismet Configuration' , 'akismet') . '

' . + '

' . esc_html__( 'Subscription Type' , 'akismet') . ' - ' . esc_html__( 'The Akismet subscription plan' , 'akismet') . '

' . + '

' . esc_html__( 'Status' , 'akismet') . ' - ' . esc_html__( 'The subscription status - active, cancelled or suspended' , 'akismet') . '

', + ) + ); + } + } + + // Help Sidebar + $current_screen->set_help_sidebar( + '

' . esc_html__( 'For more information:' , 'akismet') . '

' . + '

' . esc_html__( 'Akismet FAQ' , 'akismet') . '

' . + '

' . esc_html__( 'Akismet Support' , 'akismet') . '

' + ); + } + + public static function enter_api_key() { + if ( function_exists('current_user_can') && !current_user_can('manage_options') ) + die(__('Cheatin’ uh?', 'akismet')); + + if ( !wp_verify_nonce( $_POST['_wpnonce'], self::NONCE ) ) + return false; + + foreach( array( 'akismet_strictness', 'akismet_show_user_comments_approved' ) as $option ) { + update_option( $option, isset( $_POST[$option] ) && (int) $_POST[$option] == 1 ? '1' : '0' ); + } + + if ( defined( 'WPCOM_API_KEY' ) ) + return false; //shouldn't have option to save key if already defined + + $new_key = preg_replace( '/[^a-f0-9]/i', '', $_POST['key'] ); + $old_key = Akismet::get_api_key(); + + if ( empty( $new_key ) ) { + if ( !empty( $old_key ) ) { + delete_option( 'wordpress_api_key' ); + self::$notices[] = 'new-key-empty'; + } + } + elseif ( $new_key != $old_key ) { + self::save_key( $new_key ); + } + + return true; + } + + public static function save_key( $api_key ) { + $key_status = Akismet::verify_key( $api_key ); + + if ( $key_status == 'valid' ) { + $akismet_user = self::get_akismet_user( $api_key ); + + if ( $akismet_user ) { + if ( in_array( $akismet_user->status, array( 'active', 'active-dunning', 'no-sub' ) ) ) + update_option( 'wordpress_api_key', $api_key ); + + if ( $akismet_user->status == 'active' ) + self::$notices['status'] = 'new-key-valid'; + elseif ( $akismet_user->status == 'notice' ) + self::$notices['status'] = $akismet_user; + else + self::$notices['status'] = $akismet_user->status; + } + else + self::$notices['status'] = 'new-key-invalid'; + } + elseif ( in_array( $key_status, array( 'invalid', 'failed' ) ) ) + self::$notices['status'] = 'new-key-'.$key_status; + } + + public static function dashboard_stats() { + if ( !function_exists('did_action') || did_action( 'rightnow_end' ) ) + return; // We already displayed this info in the "Right Now" section + + if ( !$count = get_option('akismet_spam_count') ) + return; + + global $submenu; + + echo '

' . esc_html( _x( 'Spam', 'comments' , 'akismet') ) . '

'; + + echo '

'.sprintf( _n( + 'Akismet has protected your site from %3$s spam comment.', + 'Akismet has protected your site from %3$s spam comments.', + $count + , 'akismet'), 'https://akismet.com/wordpress/', esc_url( add_query_arg( array( 'page' => 'akismet-admin' ), admin_url( isset( $submenu['edit-comments.php'] ) ? 'edit-comments.php' : 'edit.php' ) ) ), number_format_i18n($count) ).'

'; + } + + // WP 2.5+ + public static function rightnow_stats() { + if ( $count = get_option('akismet_spam_count') ) { + $intro = sprintf( _n( + 'Akismet has protected your site from %2$s spam comment already. ', + 'Akismet has protected your site from %2$s spam comments already. ', + $count + , 'akismet'), 'https://akismet.com/wordpress/', number_format_i18n( $count ) ); + } else { + $intro = sprintf( __('Akismet blocks spam from getting to your blog. ', 'akismet'), 'https://akismet.com/wordpress/' ); + } + + $link = add_query_arg( array( 'comment_status' => 'spam' ), admin_url( 'edit-comments.php' ) ); + + if ( $queue_count = self::get_spam_count() ) { + $queue_text = sprintf( _n( + 'There’s %1$s comment in your spam queue right now.', + 'There are %1$s comments in your spam queue right now.', + $queue_count + , 'akismet'), number_format_i18n( $queue_count ), esc_url( $link ) ); + } else { + $queue_text = sprintf( __( "There’s nothing in your spam queue at the moment." , 'akismet'), esc_url( $link ) ); + } + + $text = $intro . '
' . $queue_text; + echo "

$text

\n"; + } + + public static function check_for_spam_button( $comment_status ) { + // The "Check for Spam" button should only appear when the page might be showing + // a comment with comment_approved=0, which means an un-trashed, un-spammed, + // not-yet-moderated comment. + if ( 'all' != $comment_status && 'moderated' != $comment_status ) { + return; + } + + if ( function_exists('plugins_url') ) + $link = add_query_arg( array( 'action' => 'akismet_recheck_queue' ), admin_url( 'admin.php' ) ); + else + $link = add_query_arg( array( 'page' => 'akismet-admin', 'recheckqueue' => 'true', 'noheader' => 'true' ), admin_url( 'edit-comments.php' ) ); + + echo '
' . esc_html__('Check for Spam', 'akismet') . ''; + } + + public static function recheck_queue() { + global $wpdb; + + Akismet::fix_scheduled_recheck(); + + if ( ! ( isset( $_GET['recheckqueue'] ) || ( isset( $_REQUEST['action'] ) && 'akismet_recheck_queue' == $_REQUEST['action'] ) ) ) + return; + + $paginate = ''; + if ( isset( $_POST['limit'] ) && isset( $_POST['offset'] ) ) { + $paginate = $wpdb->prepare( " LIMIT %d OFFSET %d", array( $_POST['limit'], $_POST['offset'] ) ); + } + $moderation = $wpdb->get_results( "SELECT * FROM {$wpdb->comments} WHERE comment_approved = '0'{$paginate}", ARRAY_A ); + + $result_counts = array( + 'spam' => 0, + 'ham' => 0, + 'error' => 0, + ); + + foreach ( (array) $moderation as $c ) { + $c['user_ip'] = $c['comment_author_IP']; + $c['user_agent'] = $c['comment_agent']; + $c['referrer'] = ''; + $c['blog'] = get_bloginfo('url'); + $c['blog_lang'] = get_locale(); + $c['blog_charset'] = get_option('blog_charset'); + $c['permalink'] = get_permalink($c['comment_post_ID']); + + $c['user_role'] = ''; + if ( isset( $c['user_ID'] ) ) + $c['user_role'] = Akismet::get_user_roles($c['user_ID']); + + if ( Akismet::is_test_mode() ) + $c['is_test'] = 'true'; + + add_comment_meta( $c['comment_ID'], 'akismet_rechecking', true ); + + $response = Akismet::http_post( Akismet::build_query( $c ), 'comment-check' ); + + if ( 'true' == $response[1] ) { + wp_set_comment_status( $c['comment_ID'], 'spam' ); + update_comment_meta( $c['comment_ID'], 'akismet_result', 'true' ); + delete_comment_meta( $c['comment_ID'], 'akismet_error' ); + delete_comment_meta( $c['comment_ID'], 'akismet_delayed_moderation_email' ); + Akismet::update_comment_history( $c['comment_ID'], '', 'recheck-spam' ); + ++$result_counts['spam']; + } elseif ( 'false' == $response[1] ) { + update_comment_meta( $c['comment_ID'], 'akismet_result', 'false' ); + delete_comment_meta( $c['comment_ID'], 'akismet_error' ); + delete_comment_meta( $c['comment_ID'], 'akismet_delayed_moderation_email' ); + Akismet::update_comment_history( $c['comment_ID'], '', 'recheck-ham' ); + ++$result_counts['ham']; + } else { + // abnormal result: error + update_comment_meta( $c['comment_ID'], 'akismet_result', 'error' ); + Akismet::update_comment_history( + $c['comment_ID'], + '', + 'recheck-error', + array( 'response' => substr( $response[1], 0, 50 ) ) + ); + ++$result_counts['error']; + } + + delete_comment_meta( $c['comment_ID'], 'akismet_rechecking' ); + } + if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { + wp_send_json( array( + 'processed' => count((array) $moderation), + 'counts' => $result_counts, + )); + } + else { + $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : admin_url( 'edit-comments.php' ); + wp_safe_redirect( $redirect_to ); + exit; + } + } + + // Adds an 'x' link next to author URLs, clicking will remove the author URL and show an undo link + public static function remove_comment_author_url() { + if ( !empty( $_POST['id'] ) && check_admin_referer( 'comment_author_url_nonce' ) ) { + $comment = get_comment( intval( $_POST['id'] ), ARRAY_A ); + if ( $comment && current_user_can( 'edit_comment', $comment['comment_ID'] ) ) { + $comment['comment_author_url'] = ''; + do_action( 'comment_remove_author_url' ); + print( wp_update_comment( $comment ) ); + die(); + } + } + } + + public static function add_comment_author_url() { + if ( !empty( $_POST['id'] ) && !empty( $_POST['url'] ) && check_admin_referer( 'comment_author_url_nonce' ) ) { + $comment = get_comment( intval( $_POST['id'] ), ARRAY_A ); + if ( $comment && current_user_can( 'edit_comment', $comment['comment_ID'] ) ) { + $comment['comment_author_url'] = esc_url( $_POST['url'] ); + do_action( 'comment_add_author_url' ); + print( wp_update_comment( $comment ) ); + die(); + } + } + } + + public static function comment_row_action( $a, $comment ) { + + // failsafe for old WP versions + if ( !function_exists('add_comment_meta') ) + return $a; + + $akismet_result = get_comment_meta( $comment->comment_ID, 'akismet_result', true ); + $akismet_error = get_comment_meta( $comment->comment_ID, 'akismet_error', true ); + $user_result = get_comment_meta( $comment->comment_ID, 'akismet_user_result', true); + $comment_status = wp_get_comment_status( $comment->comment_ID ); + $desc = null; + if ( $akismet_error ) { + $desc = __( 'Awaiting spam check' , 'akismet'); + } elseif ( !$user_result || $user_result == $akismet_result ) { + // Show the original Akismet result if the user hasn't overridden it, or if their decision was the same + if ( $akismet_result == 'true' && $comment_status != 'spam' && $comment_status != 'trash' ) + $desc = __( 'Flagged as spam by Akismet' , 'akismet'); + elseif ( $akismet_result == 'false' && $comment_status == 'spam' ) + $desc = __( 'Cleared by Akismet' , 'akismet'); + } else { + $who = get_comment_meta( $comment->comment_ID, 'akismet_user', true ); + if ( $user_result == 'true' ) + $desc = sprintf( __('Flagged as spam by %s', 'akismet'), $who ); + else + $desc = sprintf( __('Un-spammed by %s', 'akismet'), $who ); + } + + // add a History item to the hover links, just after Edit + if ( $akismet_result ) { + $b = array(); + foreach ( $a as $k => $item ) { + $b[ $k ] = $item; + if ( + $k == 'edit' + || ( $k == 'unspam' && $GLOBALS['wp_version'] >= 3.4 ) + ) { + $b['history'] = ' '. esc_html__('History', 'akismet') . ''; + } + } + + $a = $b; + } + + if ( $desc ) + echo ''.esc_html( $desc ).''; + + $show_user_comments = apply_filters( 'akismet_show_user_comments_approved', get_option('akismet_show_user_comments_approved') ); + $show_user_comments = $show_user_comments === 'false' ? false : $show_user_comments; //option used to be saved as 'false' / 'true' + + if ( $show_user_comments ) { + $comment_count = Akismet::get_user_comments_approved( $comment->user_id, $comment->comment_author_email, $comment->comment_author, $comment->comment_author_url ); + $comment_count = intval( $comment_count ); + echo ''; + } + + return $a; + } + + public static function comment_status_meta_box( $comment ) { + $history = Akismet::get_comment_history( $comment->comment_ID ); + + if ( $history ) { + echo '
'; + + foreach ( $history as $row ) { + $time = date( 'D d M Y @ h:i:m a', $row['time'] ) . ' GMT'; + + $message = ''; + + if ( ! empty( $row['message'] ) ) { + // Old versions of Akismet stored the message as a literal string in the commentmeta. + // New versions don't do that for two reasons: + // 1) Save space. + // 2) The message can be translated into the current language of the blog, not stuck + // in the language of the blog when the comment was made. + $message = $row['message']; + } + + // If possible, use a current translation. + switch ( $row['event'] ) { + case 'recheck-spam'; + $message = __( 'Akismet re-checked and caught this comment as spam.', 'akismet' ); + break; + case 'check-spam': + $message = __( 'Akismet caught this comment as spam.', 'akismet' ); + break; + case 'recheck-ham': + $message = __( 'Akismet re-checked and cleared this comment.', 'akismet' ); + break; + case 'check-ham': + $message = __( 'Akismet cleared this comment.', 'akismet' ); + break; + case 'wp-blacklisted': + $message = __( 'Comment was caught by wp_blacklist_check.', 'akismet' ); + break; + case 'report-spam': + if ( isset( $row['user'] ) ) { + $message = sprintf( __( '%s reported this comment as spam.', 'akismet' ), $row['user'] ); + } + else if ( ! $message ) { + $message = __( 'This comment was reported as spam.', 'akismet' ); + } + break; + case 'report-ham': + if ( isset( $row['user'] ) ) { + $message = sprintf( __( '%s reported this comment as not spam.', 'akismet' ), $row['user'] ); + } + else if ( ! $message ) { + $message = __( 'This comment was reported as not spam.', 'akismet' ); + } + break; + case 'cron-retry-spam': + $message = __( 'Akismet caught this comment as spam during an automatic retry.' , 'akismet'); + break; + case 'cron-retry-ham': + $message = __( 'Akismet cleared this comment during an automatic retry.', 'akismet'); + break; + case 'check-error': + if ( isset( $row['meta'], $row['meta']['response'] ) ) { + $message = sprintf( __( 'Akismet was unable to check this comment (response: %s) but will automatically retry later.', 'akismet'), $row['meta']['response'] ); + } + break; + case 'recheck-error': + if ( isset( $row['meta'], $row['meta']['response'] ) ) { + $message = sprintf( __( 'Akismet was unable to recheck this comment (response: %s).', 'akismet'), $row['meta']['response'] ); + } + break; + default: + if ( preg_match( '/^status-changed/', $row['event'] ) ) { + // Half of these used to be saved without the dash after 'status-changed'. + // See https://plugins.trac.wordpress.org/changeset/1150658/akismet/trunk + $new_status = preg_replace( '/^status-changed-?/', '', $row['event'] ); + $message = sprintf( __( 'Comment status was changed to %s', 'akismet' ), $new_status ); + } + else if ( preg_match( '/^status-/', $row['event'] ) ) { + $new_status = preg_replace( '/^status-/', '', $row['event'] ); + + if ( isset( $row['user'] ) ) { + $message = sprintf( __( '%1$s changed the comment status to %2$s.', 'akismet' ), $row['user'], $new_status ); + } + } + break; + + } + + echo '
'; + echo '' . sprintf( esc_html__('%s ago', 'akismet'), human_time_diff( $row['time'] ) ) . ''; + echo ' - '; + echo esc_html( $message ); + echo '
'; + } + + echo '
'; + } + } + + public static function plugin_action_links( $links, $file ) { + if ( $file == plugin_basename( plugin_dir_url( __FILE__ ) . '/akismet.php' ) ) { + $links[] = ''.esc_html__( 'Settings' , 'akismet').''; + } + + return $links; + } + + // Total spam in queue + // get_option( 'akismet_spam_count' ) is the total caught ever + public static function get_spam_count( $type = false ) { + global $wpdb; + + if ( !$type ) { // total + $count = wp_cache_get( 'akismet_spam_count', 'widget' ); + if ( false === $count ) { + if ( function_exists('wp_count_comments') ) { + $count = wp_count_comments(); + $count = $count->spam; + } else { + $count = (int) $wpdb->get_var("SELECT COUNT(comment_ID) FROM {$wpdb->comments} WHERE comment_approved = 'spam'"); + } + wp_cache_set( 'akismet_spam_count', $count, 'widget', 3600 ); + } + return $count; + } elseif ( 'comments' == $type || 'comment' == $type ) { // comments + $type = ''; + } + + return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(comment_ID) FROM {$wpdb->comments} WHERE comment_approved = 'spam' AND comment_type = %s", $type ) ); + } + + // Check connectivity between the WordPress blog and Akismet's servers. + // Returns an associative array of server IP addresses, where the key is the IP address, and value is true (available) or false (unable to connect). + public static function check_server_ip_connectivity() { + + $servers = $ips = array(); + + // Some web hosts may disable this function + if ( function_exists('gethostbynamel') ) { + + $ips = gethostbynamel( 'rest.akismet.com' ); + if ( $ips && is_array($ips) && count($ips) ) { + $api_key = Akismet::get_api_key(); + + foreach ( $ips as $ip ) { + $response = Akismet::verify_key( $api_key, $ip ); + // even if the key is invalid, at least we know we have connectivity + if ( $response == 'valid' || $response == 'invalid' ) + $servers[$ip] = 'connected'; + else + $servers[$ip] = $response ? $response : 'unable to connect'; + } + } + } + + return $servers; + } + + // Simpler connectivity check + public static function check_server_connectivity($cache_timeout = 86400) { + + $debug = array(); + $debug[ 'PHP_VERSION' ] = PHP_VERSION; + $debug[ 'WORDPRESS_VERSION' ] = $GLOBALS['wp_version']; + $debug[ 'AKISMET_VERSION' ] = AKISMET_VERSION; + $debug[ 'AKISMET__PLUGIN_DIR' ] = AKISMET__PLUGIN_DIR; + $debug[ 'SITE_URL' ] = site_url(); + $debug[ 'HOME_URL' ] = home_url(); + + $servers = get_option('akismet_available_servers'); + if ( (time() - get_option('akismet_connectivity_time') < $cache_timeout) && $servers !== false ) { + $servers = self::check_server_ip_connectivity(); + update_option('akismet_available_servers', $servers); + update_option('akismet_connectivity_time', time()); + } + + $response = wp_remote_get( 'http://rest.akismet.com/1.1/test' ); + + $debug[ 'gethostbynamel' ] = function_exists('gethostbynamel') ? 'exists' : 'not here'; + $debug[ 'Servers' ] = $servers; + $debug[ 'Test Connection' ] = $response; + + Akismet::log( $debug ); + + if ( $response && 'connected' == wp_remote_retrieve_body( $response ) ) + return true; + + return false; + } + + // Check the server connectivity and store the available servers in an option. + public static function get_server_connectivity($cache_timeout = 86400) { + return self::check_server_connectivity( $cache_timeout ); + } + + public static function get_number_spam_waiting() { + global $wpdb; + return (int) $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" ); + } + + public static function get_page_url( $page = 'config' ) { + + $args = array( 'page' => 'akismet-key-config' ); + + if ( $page == 'stats' ) + $args = array( 'page' => 'akismet-key-config', 'view' => 'stats' ); + elseif ( $page == 'delete_key' ) + $args = array( 'page' => 'akismet-key-config', 'view' => 'start', 'action' => 'delete-key', '_wpnonce' => wp_create_nonce( self::NONCE ) ); + + $url = add_query_arg( $args, class_exists( 'Jetpack' ) ? admin_url( 'admin.php' ) : admin_url( 'options-general.php' ) ); + + return $url; + } + + public static function get_akismet_user( $api_key ) { + $akismet_user = false; + + $subscription_verification = Akismet::http_post( Akismet::build_query( array( 'key' => $api_key, 'blog' => get_bloginfo( 'url' ) ) ), 'get-subscription' ); + + if ( ! empty( $subscription_verification[1] ) ) { + if ( 'invalid' !== $subscription_verification[1] ) { + $akismet_user = json_decode( $subscription_verification[1] ); + } + } + + return $akismet_user; + } + + public static function get_stats( $api_key ) { + $stat_totals = array(); + + foreach( array( '6-months', 'all' ) as $interval ) { + $response = Akismet::http_post( Akismet::build_query( array( 'blog' => get_bloginfo( 'url' ), 'key' => $api_key, 'from' => $interval ) ), 'get-stats' ); + + if ( ! empty( $response[1] ) ) { + $stat_totals[$interval] = json_decode( $response[1] ); + } + } + + return $stat_totals; + } + + public static function verify_wpcom_key( $api_key, $user_id, $extra = array() ) { + $akismet_account = Akismet::http_post( Akismet::build_query( array_merge( array( + 'user_id' => $user_id, + 'api_key' => $api_key, + 'get_account_type' => 'true' + ), $extra ) ), 'verify-wpcom-key' ); + + if ( ! empty( $akismet_account[1] ) ) + $akismet_account = json_decode( $akismet_account[1] ); + + Akismet::log( compact( 'akismet_account' ) ); + + return $akismet_account; + } + + public static function connect_jetpack_user() { + + if ( $jetpack_user = self::get_jetpack_user() ) { + if ( isset( $jetpack_user['user_id'] ) && isset( $jetpack_user['api_key'] ) ) { + $akismet_user = self::verify_wpcom_key( $jetpack_user['api_key'], $jetpack_user['user_id'], array( 'action' => 'connect_jetpack_user' ) ); + + if ( is_object( $akismet_user ) ) { + self::save_key( $akismet_user->api_key ); + return in_array( $akismet_user->status, array( 'active', 'active-dunning', 'no-sub' ) ); + } + } + } + + return false; + } + + public static function display_alert() { + Akismet::view( 'notice', array( + 'type' => 'alert', + 'code' => (int) get_option( 'akismet_alert_code' ), + 'msg' => get_option( 'akismet_alert_msg' ) + ) ); + } + + public static function display_spam_check_warning() { + Akismet::fix_scheduled_recheck(); + + if ( wp_next_scheduled('akismet_schedule_cron_recheck') > time() && self::get_number_spam_waiting() > 0 ) { + $link_text = apply_filters( 'akismet_spam_check_warning_link_text', sprintf( __( 'Please check your Akismet configuration and contact your web host if problems persist.', 'akismet'), esc_url( self::get_page_url() ) ) ); + Akismet::view( 'notice', array( 'type' => 'spam-check', 'link_text' => $link_text ) ); + } + } + + public static function display_invalid_version() { + Akismet::view( 'notice', array( 'type' => 'version' ) ); + } + + public static function display_api_key_warning() { + Akismet::view( 'notice', array( 'type' => 'plugin' ) ); + } + + public static function display_page() { + if ( !Akismet::get_api_key() || ( isset( $_GET['view'] ) && $_GET['view'] == 'start' ) ) + self::display_start_page(); + elseif ( isset( $_GET['view'] ) && $_GET['view'] == 'stats' ) + self::display_stats_page(); + else + self::display_configuration_page(); + } + + public static function display_start_page() { + if ( isset( $_GET['action'] ) ) { + if ( $_GET['action'] == 'delete-key' ) { + if ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], self::NONCE ) ) + delete_option( 'wordpress_api_key' ); + } + } + + if ( $api_key = Akismet::get_api_key() && ( empty( self::$notices['status'] ) || 'existing-key-invalid' != self::$notices['status'] ) ) { + self::display_configuration_page(); + return; + } + + //the user can choose to auto connect their API key by clicking a button on the akismet done page + //if jetpack, get verified api key by using connected wpcom user id + //if no jetpack, get verified api key by using an akismet token + + $akismet_user = false; + + if ( isset( $_GET['token'] ) && preg_match('/^(\d+)-[0-9a-f]{20}$/', $_GET['token'] ) ) + $akismet_user = self::verify_wpcom_key( '', '', array( 'token' => $_GET['token'] ) ); + elseif ( $jetpack_user = self::get_jetpack_user() ) + $akismet_user = self::verify_wpcom_key( $jetpack_user['api_key'], $jetpack_user['user_id'] ); + + if ( isset( $_GET['action'] ) ) { + if ( $_GET['action'] == 'save-key' ) { + if ( is_object( $akismet_user ) ) { + self::save_key( $akismet_user->api_key ); + self::display_notice(); + self::display_configuration_page(); + return; + } + } + } + + echo '

'.esc_html__('Akismet', 'akismet').'

'; + + self::display_status(); + + Akismet::view( 'start', compact( 'akismet_user' ) ); + } + + public static function display_stats_page() { + Akismet::view( 'stats' ); + } + + public static function display_configuration_page() { + $api_key = Akismet::get_api_key(); + $akismet_user = self::get_akismet_user( $api_key ); + + if ( ! $akismet_user ) { + // This could happen if the user's key became invalid after it was previously valid and successfully set up. + self::$notices['status'] = 'existing-key-invalid'; + self::display_start_page(); + return; + } + + $stat_totals = self::get_stats( $api_key ); + + // If unset, create the new strictness option using the old discard option to determine its default + if ( get_option( 'akismet_strictness' ) === false ) + add_option( 'akismet_strictness', (get_option('akismet_discard_month') === 'true' ? '1' : '0') ); + + if ( empty( self::$notices ) ) { + //show status + if ( ! empty( $stat_totals['all'] ) && isset( $stat_totals['all']->time_saved ) && $akismet_user->status == 'active' && $akismet_user->account_type == 'free-api-key' ) { + + $time_saved = false; + + if ( $stat_totals['all']->time_saved > 1800 ) { + $total_in_minutes = round( $stat_totals['all']->time_saved / 60 ); + $total_in_hours = round( $total_in_minutes / 60 ); + $total_in_days = round( $total_in_hours / 8 ); + $cleaning_up = __( 'Cleaning up spam takes time.' , 'akismet'); + + if ( $total_in_days > 1 ) + $time_saved = $cleaning_up . ' ' . sprintf( _n( 'Akismet has saved you %s day!', 'Akismet has saved you %s days!', $total_in_days, 'akismet' ), number_format_i18n( $total_in_days ) ); + elseif ( $total_in_hours > 1 ) + $time_saved = $cleaning_up . ' ' . sprintf( _n( 'Akismet has saved you %d hour!', 'Akismet has saved you %d hours!', $total_in_hours, 'akismet' ), $total_in_hours ); + elseif ( $total_in_minutes >= 30 ) + $time_saved = $cleaning_up . ' ' . sprintf( _n( 'Akismet has saved you %d minute!', 'Akismet has saved you %d minutes!', $total_in_minutes, 'akismet' ), $total_in_minutes ); + } + + Akismet::view( 'notice', array( 'type' => 'active-notice', 'time_saved' => $time_saved ) ); + } + + if ( !empty( $akismet_user->limit_reached ) && in_array( $akismet_user->limit_reached, array( 'yellow', 'red' ) ) ) { + Akismet::view( 'notice', array( 'type' => 'limit-reached', 'level' => $akismet_user->limit_reached ) ); + } + } + + if ( !isset( self::$notices['status'] ) && in_array( $akismet_user->status, array( 'cancelled', 'suspended', 'missing', 'no-sub' ) ) ) + Akismet::view( 'notice', array( 'type' => $akismet_user->status ) ); + + Akismet::log( compact( 'stat_totals', 'akismet_user' ) ); + Akismet::view( 'config', compact( 'api_key', 'akismet_user', 'stat_totals' ) ); + } + + public static function display_notice() { + global $hook_suffix; + + if ( in_array( $hook_suffix, array( 'jetpack_page_akismet-key-config', 'settings_page_akismet-key-config', 'edit-comments.php' ) ) && (int) get_option( 'akismet_alert_code' ) > 0 ) { + Akismet::verify_key( Akismet::get_api_key() ); //verify that the key is still in alert state + + if ( get_option( 'akismet_alert_code' ) > 0 ) + self::display_alert(); + } + elseif ( $hook_suffix == 'plugins.php' && !Akismet::get_api_key() ) { + self::display_api_key_warning(); + } + elseif ( $hook_suffix == 'edit-comments.php' && wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) { + self::display_spam_check_warning(); + } + elseif ( in_array( $hook_suffix, array( 'jetpack_page_akismet-key-config', 'settings_page_akismet-key-config' ) ) && Akismet::get_api_key() ) { + self::display_status(); + } + } + + public static function display_status() { + $type = ''; + + if ( !self::get_server_connectivity() ) + $type = 'servers-be-down'; + + if ( !empty( $type ) ) + Akismet::view( 'notice', compact( 'type' ) ); + elseif ( !empty( self::$notices ) ) { + foreach ( self::$notices as $type ) { + if ( is_object( $type ) ) { + $notice_header = $notice_text = ''; + + if ( property_exists( $type, 'notice_header' ) ) + $notice_header = wp_kses( $type->notice_header, self::$allowed ); + + if ( property_exists( $type, 'notice_text' ) ) + $notice_text = wp_kses( $type->notice_text, self::$allowed ); + + if ( property_exists( $type, 'status' ) ) { + $type = wp_kses( $type->status, self::$allowed ); + Akismet::view( 'notice', compact( 'type', 'notice_header', 'notice_text' ) ); + } + } + else + Akismet::view( 'notice', compact( 'type' ) ); + } + } + } + + private static function get_jetpack_user() { + if ( !class_exists('Jetpack') ) + return false; + + Jetpack::load_xml_rpc_client(); + $xml = new Jetpack_IXR_ClientMulticall( array( 'user_id' => get_current_user_id() ) ); + + $xml->addCall( 'wpcom.getUserID' ); + $xml->addCall( 'akismet.getAPIKey' ); + $xml->query(); + + Akismet::log( compact( 'xml' ) ); + + if ( !$xml->isError() ) { + $responses = $xml->getResponse(); + if ( count( $responses ) > 1 ) { + $api_key = array_shift( $responses[0] ); + $user_id = (int) array_shift( $responses[1] ); + return compact( 'api_key', 'user_id' ); + } + } + return false; + } + + /** + * Some commentmeta isn't useful in an export file. Suppress it (when supported). + * + * @param bool $exclude + * @param string $key The meta key + * @param object $meta The meta object + * @return bool Whether to exclude this meta entry from the export. + */ + public static function exclude_commentmeta_from_export( $exclude, $key, $meta ) { + if ( in_array( $key, array( 'akismet_as_submitted', 'akismet_rechecking', 'akismet_delayed_moderation_email' ) ) ) { + return true; + } + + return $exclude; + } +} \ No newline at end of file diff --git a/wp-content/plugins/akismet/class.akismet-widget.php b/wp-content/plugins/akismet/class.akismet-widget.php new file mode 100644 index 0000000..a2c4f30 --- /dev/null +++ b/wp-content/plugins/akismet/class.akismet-widget.php @@ -0,0 +1,110 @@ + __( 'Display the number of spam comments Akismet has caught' , 'akismet') ) + ); + + if ( is_active_widget( false, false, $this->id_base ) ) { + add_action( 'wp_head', array( $this, 'css' ) ); + } + } + + function css() { +?> + + + + + +

+ + +

+ + + + + + '', 'blog_charset' => '', 'blog_lang' => '', 'blog_ua' => '', 'comment_agent' => '', 'comment_author' => '', 'comment_author_IP' => '', 'comment_author_email' => '', 'comment_author_url' => '', 'comment_content' => '', 'comment_date_gmt' => '', 'comment_tags' => '', 'comment_type' => '', 'guid' => '', 'is_test' => '', 'permalink' => '', 'reporter' => '', 'site_domain' => '', 'submit_referer' => '', 'submit_uri' => '', 'user_ID' => '', 'user_agent' => '', 'user_id' => '', 'user_ip' => '' ); + + public static function init() { + if ( ! self::$initiated ) { + self::init_hooks(); + } + } + + /** + * Initializes WordPress hooks + */ + private static function init_hooks() { + self::$initiated = true; + + add_action( 'wp_insert_comment', array( 'Akismet', 'auto_check_update_meta' ), 10, 2 ); + add_filter( 'preprocess_comment', array( 'Akismet', 'auto_check_comment' ), 1 ); + add_action( 'akismet_scheduled_delete', array( 'Akismet', 'delete_old_comments' ) ); + add_action( 'akismet_scheduled_delete', array( 'Akismet', 'delete_old_comments_meta' ) ); + add_action( 'akismet_schedule_cron_recheck', array( 'Akismet', 'cron_recheck' ) ); + + /** + * To disable the Akismet comment nonce, add a filter for the 'akismet_comment_nonce' tag + * and return any string value that is not 'true' or '' (empty string). + * + * Don't return boolean false, because that implies that the 'akismet_comment_nonce' option + * has not been set and that Akismet should just choose the default behavior for that + * situation. + */ + $akismet_comment_nonce_option = apply_filters( 'akismet_comment_nonce', get_option( 'akismet_comment_nonce' ) ); + + if ( $akismet_comment_nonce_option == 'true' || $akismet_comment_nonce_option == '' ) + add_action( 'comment_form', array( 'Akismet', 'add_comment_nonce' ), 1 ); + + add_action( 'admin_head-edit-comments.php', array( 'Akismet', 'load_form_js' ) ); + add_action( 'comment_form', array( 'Akismet', 'load_form_js' ) ); + add_action( 'comment_form', array( 'Akismet', 'inject_ak_js' ) ); + + add_filter( 'comment_moderation_recipients', array( 'Akismet', 'disable_moderation_emails_if_unreachable' ), 1000, 2 ); + add_filter( 'pre_comment_approved', array( 'Akismet', 'last_comment_status' ), 10, 2 ); + + add_action( 'transition_comment_status', array( 'Akismet', 'transition_comment_status' ), 10, 3 ); + + // Run this early in the pingback call, before doing a remote fetch of the source uri + add_action( 'xmlrpc_call', array( 'Akismet', 'pre_check_pingback' ) ); + + // Jetpack compatibility + add_filter( 'jetpack_options_whitelist', array( 'Akismet', 'add_to_jetpack_options_whitelist' ) ); + add_action( 'update_option_wordpress_api_key', array( 'Akismet', 'updated_option' ), 10, 2 ); + } + + public static function get_api_key() { + return apply_filters( 'akismet_get_api_key', defined('WPCOM_API_KEY') ? constant('WPCOM_API_KEY') : get_option('wordpress_api_key') ); + } + + public static function check_key_status( $key, $ip = null ) { + return self::http_post( Akismet::build_query( array( 'key' => $key, 'blog' => get_option('home') ) ), 'verify-key', $ip ); + } + + public static function verify_key( $key, $ip = null ) { + $response = self::check_key_status( $key, $ip ); + + if ( $response[1] != 'valid' && $response[1] != 'invalid' ) + return 'failed'; + + return $response[1]; + } + + public static function deactivate_key( $key ) { + $response = self::http_post( Akismet::build_query( array( 'key' => $key, 'blog' => get_option('home') ) ), 'deactivate' ); + + if ( $response[1] != 'deactivated' ) + return 'failed'; + + return $response[1]; + } + + /** + * Add the akismet option to the Jetpack options management whitelist. + * + * @param array $options The list of whitelisted option names. + * @return array The updated whitelist + */ + public static function add_to_jetpack_options_whitelist( $options ) { + $options[] = 'wordpress_api_key'; + return $options; + } + + /** + * When the akismet option is updated, run the registration call. + * + * This should only be run when the option is updated from the Jetpack/WP.com + * API call, and only if the new key is different than the old key. + * + * @param mixed $old_value The old option value. + * @param mixed $value The new option value. + */ + public static function updated_option( $old_value, $value ) { + // Not an API call + if ( ! class_exists( 'WPCOM_JSON_API_Update_Option_Endpoint' ) ) { + return; + } + // Only run the registration if the old key is different. + if ( $old_value !== $value ) { + self::verify_key( $value ); + } + } + + public static function auto_check_comment( $commentdata ) { + self::$last_comment_result = null; + + $comment = $commentdata; + + $comment['user_ip'] = self::get_ip_address(); + $comment['user_agent'] = self::get_user_agent(); + $comment['referrer'] = self::get_referer(); + $comment['blog'] = get_option('home'); + $comment['blog_lang'] = get_locale(); + $comment['blog_charset'] = get_option('blog_charset'); + $comment['permalink'] = get_permalink( $comment['comment_post_ID'] ); + + if ( !empty( $comment['user_ID'] ) ) + $comment['user_role'] = Akismet::get_user_roles( $comment['user_ID'] ); + + /** See filter documentation in init_hooks(). */ + $akismet_nonce_option = apply_filters( 'akismet_comment_nonce', get_option( 'akismet_comment_nonce' ) ); + $comment['akismet_comment_nonce'] = 'inactive'; + if ( $akismet_nonce_option == 'true' || $akismet_nonce_option == '' ) { + $comment['akismet_comment_nonce'] = 'failed'; + if ( isset( $_POST['akismet_comment_nonce'] ) && wp_verify_nonce( $_POST['akismet_comment_nonce'], 'akismet_comment_nonce_' . $comment['comment_post_ID'] ) ) + $comment['akismet_comment_nonce'] = 'passed'; + + // comment reply in wp-admin + if ( isset( $_POST['_ajax_nonce-replyto-comment'] ) && check_ajax_referer( 'replyto-comment', '_ajax_nonce-replyto-comment' ) ) + $comment['akismet_comment_nonce'] = 'passed'; + + } + + if ( self::is_test_mode() ) + $comment['is_test'] = 'true'; + + foreach( $_POST as $key => $value ) { + if ( is_string( $value ) ) + $comment["POST_{$key}"] = $value; + } + + foreach ( $_SERVER as $key => $value ) { + if ( ! is_string( $value ) ) { + continue; + } + + if ( preg_match( "/^HTTP_COOKIE/", $key ) ) { + continue; + } + + // Send any potentially useful $_SERVER vars, but avoid sending junk we don't need. + if ( preg_match( "/^(HTTP_|REMOTE_ADDR|REQUEST_URI|DOCUMENT_URI)/", $key ) ) { + $comment[ "$key" ] = $value; + } + } + + $post = get_post( $comment['comment_post_ID'] ); + $comment[ 'comment_post_modified_gmt' ] = $post->post_modified_gmt; + + $response = self::http_post( Akismet::build_query( $comment ), 'comment-check' ); + + do_action( 'akismet_comment_check_response', $response ); + + $commentdata['comment_as_submitted'] = array_intersect_key( $comment, self::$comment_as_submitted_allowed_keys ); + $commentdata['akismet_result'] = $response[1]; + + if ( isset( $response[0]['x-akismet-pro-tip'] ) ) + $commentdata['akismet_pro_tip'] = $response[0]['x-akismet-pro-tip']; + + if ( isset( $response[0]['x-akismet-error'] ) ) { + // An error occurred that we anticipated (like a suspended key) and want the user to act on. + // Send to moderation. + self::$last_comment_result = '0'; + } + else if ( 'true' == $response[1] ) { + // akismet_spam_count will be incremented later by comment_is_spam() + self::$last_comment_result = 'spam'; + + $discard = ( isset( $commentdata['akismet_pro_tip'] ) && $commentdata['akismet_pro_tip'] === 'discard' && self::allow_discard() ); + + do_action( 'akismet_spam_caught', $discard ); + + if ( $discard ) { + // akismet_result_spam() won't be called so bump the counter here + if ( $incr = apply_filters('akismet_spam_count_incr', 1) ) + update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr ); + $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : get_permalink( $post ); + wp_safe_redirect( esc_url_raw( $redirect_to ) ); + die(); + } + } + + // if the response is neither true nor false, hold the comment for moderation and schedule a recheck + if ( 'true' != $response[1] && 'false' != $response[1] ) { + if ( !current_user_can('moderate_comments') ) { + // Comment status should be moderated + self::$last_comment_result = '0'; + } + if ( function_exists('wp_next_scheduled') && function_exists('wp_schedule_single_event') ) { + if ( !wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) { + wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); + do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] ); + } + } + + self::$prevent_moderation_email_for_these_comments[] = $commentdata; + } + + if ( function_exists('wp_next_scheduled') && function_exists('wp_schedule_event') ) { + // WP 2.1+: delete old comments daily + if ( !wp_next_scheduled( 'akismet_scheduled_delete' ) ) + wp_schedule_event( time(), 'daily', 'akismet_scheduled_delete' ); + } + elseif ( (mt_rand(1, 10) == 3) ) { + // WP 2.0: run this one time in ten + self::delete_old_comments(); + } + + self::set_last_comment( $commentdata ); + self::fix_scheduled_recheck(); + + return $commentdata; + } + + public static function get_last_comment() { + return self::$last_comment; + } + + public static function set_last_comment( $comment ) { + if ( is_null( $comment ) ) { + self::$last_comment = null; + } + else { + // We filter it here so that it matches the filtered comment data that we'll have to compare against later. + // wp_filter_comment expects comment_author_IP + self::$last_comment = wp_filter_comment( + array_merge( + array( 'comment_author_IP' => self::get_ip_address() ), + $comment + ) + ); + } + } + + // this fires on wp_insert_comment. we can't update comment_meta when auto_check_comment() runs + // because we don't know the comment ID at that point. + public static function auto_check_update_meta( $id, $comment ) { + + // failsafe for old WP versions + if ( !function_exists('add_comment_meta') ) + return false; + + if ( !isset( self::$last_comment['comment_author_email'] ) ) + self::$last_comment['comment_author_email'] = ''; + + // wp_insert_comment() might be called in other contexts, so make sure this is the same comment + // as was checked by auto_check_comment + if ( is_object( $comment ) && !empty( self::$last_comment ) && is_array( self::$last_comment ) ) { + if ( self::matches_last_comment( $comment ) ) { + + load_plugin_textdomain( 'akismet' ); + + // normal result: true or false + if ( self::$last_comment['akismet_result'] == 'true' ) { + update_comment_meta( $comment->comment_ID, 'akismet_result', 'true' ); + self::update_comment_history( $comment->comment_ID, '', 'check-spam' ); + if ( $comment->comment_approved != 'spam' ) + self::update_comment_history( + $comment->comment_ID, + '', + 'status-changed-'.$comment->comment_approved + ); + } + elseif ( self::$last_comment['akismet_result'] == 'false' ) { + update_comment_meta( $comment->comment_ID, 'akismet_result', 'false' ); + self::update_comment_history( $comment->comment_ID, '', 'check-ham' ); + // Status could be spam or trash, depending on the WP version and whether this change applies: + // https://core.trac.wordpress.org/changeset/34726 + if ( $comment->comment_approved == 'spam' || $comment->comment_approved == 'trash' ) { + if ( wp_blacklist_check($comment->comment_author, $comment->comment_author_email, $comment->comment_author_url, $comment->comment_content, $comment->comment_author_IP, $comment->comment_agent) ) + self::update_comment_history( $comment->comment_ID, '', 'wp-blacklisted' ); + else + self::update_comment_history( $comment->comment_ID, '', 'status-changed-'.$comment->comment_approved ); + } + } // abnormal result: error + else { + update_comment_meta( $comment->comment_ID, 'akismet_error', time() ); + self::update_comment_history( + $comment->comment_ID, + '', + 'check-error', + array( 'response' => substr( self::$last_comment['akismet_result'], 0, 50 ) ) + ); + } + + // record the complete original data as submitted for checking + if ( isset( self::$last_comment['comment_as_submitted'] ) ) + update_comment_meta( $comment->comment_ID, 'akismet_as_submitted', self::$last_comment['comment_as_submitted'] ); + + if ( isset( self::$last_comment['akismet_pro_tip'] ) ) + update_comment_meta( $comment->comment_ID, 'akismet_pro_tip', self::$last_comment['akismet_pro_tip'] ); + } + } + } + + public static function delete_old_comments() { + global $wpdb; + + /** + * Determines how many comments will be deleted in each batch. + * + * @param int The default, as defined by AKISMET_DELETE_LIMIT. + */ + $delete_limit = apply_filters( 'akismet_delete_comment_limit', defined( 'AKISMET_DELETE_LIMIT' ) ? AKISMET_DELETE_LIMIT : 10000 ); + $delete_limit = max( 1, intval( $delete_limit ) ); + + /** + * Determines how many days a comment will be left in the Spam queue before being deleted. + * + * @param int The default number of days. + */ + $delete_interval = apply_filters( 'akismet_delete_comment_interval', 15 ); + $delete_interval = max( 1, intval( $delete_interval ) ); + + while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_id FROM {$wpdb->comments} WHERE DATE_SUB(NOW(), INTERVAL %d DAY) > comment_date_gmt AND comment_approved = 'spam' LIMIT %d", $delete_interval, $delete_limit ) ) ) { + if ( empty( $comment_ids ) ) + return; + + $wpdb->queries = array(); + + foreach ( $comment_ids as $comment_id ) { + do_action( 'delete_comment', $comment_id ); + } + + $comma_comment_ids = implode( ', ', array_map('intval', $comment_ids) ); + + $wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_id IN ( $comma_comment_ids )"); + $wpdb->query("DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( $comma_comment_ids )"); + + clean_comment_cache( $comment_ids ); + } + + if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->comments ) ) // lucky number + $wpdb->query("OPTIMIZE TABLE {$wpdb->comments}"); + } + + public static function delete_old_comments_meta() { + global $wpdb; + + $interval = apply_filters( 'akismet_delete_commentmeta_interval', 15 ); + + # enfore a minimum of 1 day + $interval = absint( $interval ); + if ( $interval < 1 ) + $interval = 1; + + // akismet_as_submitted meta values are large, so expire them + // after $interval days regardless of the comment status + while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT m.comment_id FROM {$wpdb->commentmeta} as m INNER JOIN {$wpdb->comments} as c USING(comment_id) WHERE m.meta_key = 'akismet_as_submitted' AND DATE_SUB(NOW(), INTERVAL %d DAY) > c.comment_date_gmt LIMIT 10000", $interval ) ) ) { + if ( empty( $comment_ids ) ) + return; + + $wpdb->queries = array(); + + foreach ( $comment_ids as $comment_id ) { + delete_comment_meta( $comment_id, 'akismet_as_submitted' ); + } + } + + if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number + $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}"); + } + + // how many approved comments does this author have? + public static function get_user_comments_approved( $user_id, $comment_author_email, $comment_author, $comment_author_url ) { + global $wpdb; + + if ( !empty( $user_id ) ) + return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE user_id = %d AND comment_approved = 1", $user_id ) ); + + if ( !empty( $comment_author_email ) ) + return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE comment_author_email = %s AND comment_author = %s AND comment_author_url = %s AND comment_approved = 1", $comment_author_email, $comment_author, $comment_author_url ) ); + + return 0; + } + + // get the full comment history for a given comment, as an array in reverse chronological order + public static function get_comment_history( $comment_id ) { + + // failsafe for old WP versions + if ( !function_exists('add_comment_meta') ) + return false; + + $history = get_comment_meta( $comment_id, 'akismet_history', false ); + usort( $history, array( 'Akismet', '_cmp_time' ) ); + return $history; + } + + /** + * Log an event for a given comment, storing it in comment_meta. + * + * @param int $comment_id The ID of the relevant comment. + * @param string $message The string description of the event. No longer used. + * @param string $event The event code. + * @param array $meta Metadata about the history entry. e.g., the user that reported or changed the status of a given comment. + */ + public static function update_comment_history( $comment_id, $message, $event=null, $meta=null ) { + global $current_user; + + // failsafe for old WP versions + if ( !function_exists('add_comment_meta') ) + return false; + + $user = ''; + + $event = array( + 'time' => self::_get_microtime(), + 'event' => $event, + ); + + if ( is_object( $current_user ) && isset( $current_user->user_login ) ) { + $event['user'] = $current_user->user_login; + } + + if ( ! empty( $meta ) ) { + $event['meta'] = $meta; + } + + // $unique = false so as to allow multiple values per comment + $r = add_comment_meta( $comment_id, 'akismet_history', $event, false ); + } + + public static function check_db_comment( $id, $recheck_reason = 'recheck_queue' ) { + global $wpdb; + + $c = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $id ), ARRAY_A ); + if ( !$c ) + return; + + $c['user_ip'] = $c['comment_author_IP']; + $c['user_agent'] = $c['comment_agent']; + $c['referrer'] = ''; + $c['blog'] = get_option('home'); + $c['blog_lang'] = get_locale(); + $c['blog_charset'] = get_option('blog_charset'); + $c['permalink'] = get_permalink($c['comment_post_ID']); + $c['recheck_reason'] = $recheck_reason; + + if ( self::is_test_mode() ) + $c['is_test'] = 'true'; + + $response = self::http_post( Akismet::build_query( $c ), 'comment-check' ); + + return ( is_array( $response ) && ! empty( $response[1] ) ) ? $response[1] : false; + } + + + + public static function transition_comment_status( $new_status, $old_status, $comment ) { + + if ( $new_status == $old_status ) + return; + + # we don't need to record a history item for deleted comments + if ( $new_status == 'delete' ) + return; + + if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) && !current_user_can( 'moderate_comments' ) ) + return; + + if ( defined('WP_IMPORTING') && WP_IMPORTING == true ) + return; + + // if this is present, it means the status has been changed by a re-check, not an explicit user action + if ( get_comment_meta( $comment->comment_ID, 'akismet_rechecking' ) ) + return; + + global $current_user; + $reporter = ''; + if ( is_object( $current_user ) ) + $reporter = $current_user->user_login; + + // Assumption alert: + // We want to submit comments to Akismet only when a moderator explicitly spams or approves it - not if the status + // is changed automatically by another plugin. Unfortunately WordPress doesn't provide an unambiguous way to + // determine why the transition_comment_status action was triggered. And there are several different ways by which + // to spam and unspam comments: bulk actions, ajax, links in moderation emails, the dashboard, and perhaps others. + // We'll assume that this is an explicit user action if certain POST/GET variables exist. + if ( ( isset( $_POST['status'] ) && in_array( $_POST['status'], array( 'spam', 'unspam' ) ) ) || + ( isset( $_POST['spam'] ) && (int) $_POST['spam'] == 1 ) || + ( isset( $_POST['unspam'] ) && (int) $_POST['unspam'] == 1 ) || + ( isset( $_POST['comment_status'] ) && in_array( $_POST['comment_status'], array( 'spam', 'unspam' ) ) ) || + ( isset( $_GET['action'] ) && in_array( $_GET['action'], array( 'spam', 'unspam', 'spamcomment', 'unspamcomment', ) ) ) || + ( isset( $_POST['action'] ) && in_array( $_POST['action'], array( 'editedcomment' ) ) ) || + ( isset( $_GET['for'] ) && ( 'jetpack' == $_GET['for'] ) ) // Moderation via WP.com notifications/WP app/etc. + ) { + if ( $new_status == 'spam' && ( $old_status == 'approved' || $old_status == 'unapproved' || !$old_status ) ) { + return self::submit_spam_comment( $comment->comment_ID ); + } elseif ( $old_status == 'spam' && ( $new_status == 'approved' || $new_status == 'unapproved' ) ) { + return self::submit_nonspam_comment( $comment->comment_ID ); + } + } + + self::update_comment_history( $comment->comment_ID, '', 'status-' . $new_status ); + } + + public static function submit_spam_comment( $comment_id ) { + global $wpdb, $current_user, $current_site; + + $comment_id = (int) $comment_id; + + $comment = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $comment_id ) ); + + if ( !$comment ) // it was deleted + return; + + if ( 'spam' != $comment->comment_approved ) + return; + + // use the original version stored in comment_meta if available + $as_submitted = self::sanitize_comment_as_submitted( get_comment_meta( $comment_id, 'akismet_as_submitted', true ) ); + + if ( $as_submitted && is_array( $as_submitted ) && isset( $as_submitted['comment_content'] ) ) + $comment = (object) array_merge( (array)$comment, $as_submitted ); + + $comment->blog = get_bloginfo('url'); + $comment->blog_lang = get_locale(); + $comment->blog_charset = get_option('blog_charset'); + $comment->permalink = get_permalink($comment->comment_post_ID); + + if ( is_object($current_user) ) + $comment->reporter = $current_user->user_login; + + if ( is_object($current_site) ) + $comment->site_domain = $current_site->domain; + + $comment->user_role = ''; + if ( isset( $comment->user_ID ) ) + $comment->user_role = Akismet::get_user_roles( $comment->user_ID ); + + if ( self::is_test_mode() ) + $comment->is_test = 'true'; + + $post = get_post( $comment->comment_post_ID ); + $comment->comment_post_modified_gmt = $post->post_modified_gmt; + + $response = Akismet::http_post( Akismet::build_query( $comment ), 'submit-spam' ); + if ( $comment->reporter ) { + self::update_comment_history( $comment_id, '', 'report-spam' ); + update_comment_meta( $comment_id, 'akismet_user_result', 'true' ); + update_comment_meta( $comment_id, 'akismet_user', $comment->reporter ); + } + + do_action('akismet_submit_spam_comment', $comment_id, $response[1]); + } + + public static function submit_nonspam_comment( $comment_id ) { + global $wpdb, $current_user, $current_site; + + $comment_id = (int) $comment_id; + + $comment = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $comment_id ) ); + if ( !$comment ) // it was deleted + return; + + // use the original version stored in comment_meta if available + $as_submitted = self::sanitize_comment_as_submitted( get_comment_meta( $comment_id, 'akismet_as_submitted', true ) ); + + if ( $as_submitted && is_array($as_submitted) && isset($as_submitted['comment_content']) ) + $comment = (object) array_merge( (array)$comment, $as_submitted ); + + $comment->blog = get_bloginfo('url'); + $comment->blog_lang = get_locale(); + $comment->blog_charset = get_option('blog_charset'); + $comment->permalink = get_permalink( $comment->comment_post_ID ); + $comment->user_role = ''; + + if ( is_object($current_user) ) + $comment->reporter = $current_user->user_login; + + if ( is_object($current_site) ) + $comment->site_domain = $current_site->domain; + + if ( isset( $comment->user_ID ) ) + $comment->user_role = Akismet::get_user_roles($comment->user_ID); + + if ( Akismet::is_test_mode() ) + $comment->is_test = 'true'; + + $post = get_post( $comment->comment_post_ID ); + $comment->comment_post_modified_gmt = $post->post_modified_gmt; + + $response = self::http_post( Akismet::build_query( $comment ), 'submit-ham' ); + if ( $comment->reporter ) { + self::update_comment_history( $comment_id, '', 'report-ham' ); + update_comment_meta( $comment_id, 'akismet_user_result', 'false' ); + update_comment_meta( $comment_id, 'akismet_user', $comment->reporter ); + } + + do_action('akismet_submit_nonspam_comment', $comment_id, $response[1]); + } + + public static function cron_recheck() { + global $wpdb; + + $api_key = self::get_api_key(); + + $status = self::verify_key( $api_key ); + if ( get_option( 'akismet_alert_code' ) || $status == 'invalid' ) { + // since there is currently a problem with the key, reschedule a check for 6 hours hence + wp_schedule_single_event( time() + 21600, 'akismet_schedule_cron_recheck' ); + do_action( 'akismet_scheduled_recheck', 'key-problem-' . get_option( 'akismet_alert_code' ) . '-' . $status ); + return false; + } + + delete_option('akismet_available_servers'); + + $comment_errors = $wpdb->get_col( "SELECT comment_id FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error' LIMIT 100" ); + + load_plugin_textdomain( 'akismet' ); + + foreach ( (array) $comment_errors as $comment_id ) { + // if the comment no longer exists, or is too old, remove the meta entry from the queue to avoid getting stuck + $comment = get_comment( $comment_id ); + if ( !$comment || strtotime( $comment->comment_date_gmt ) < strtotime( "-15 days" ) ) { + delete_comment_meta( $comment_id, 'akismet_error' ); + delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); + continue; + } + + add_comment_meta( $comment_id, 'akismet_rechecking', true ); + $status = self::check_db_comment( $comment_id, 'retry' ); + + $event = ''; + if ( $status == 'true' ) { + $event = 'cron-retry-spam'; + } elseif ( $status == 'false' ) { + $event = 'cron-retry-ham'; + } + + // If we got back a legit response then update the comment history + // other wise just bail now and try again later. No point in + // re-trying all the comments once we hit one failure. + if ( !empty( $event ) ) { + delete_comment_meta( $comment_id, 'akismet_error' ); + self::update_comment_history( $comment_id, '', $event ); + update_comment_meta( $comment_id, 'akismet_result', $status ); + // make sure the comment status is still pending. if it isn't, that means the user has already moved it elsewhere. + $comment = get_comment( $comment_id ); + if ( $comment && 'unapproved' == wp_get_comment_status( $comment_id ) ) { + if ( $status == 'true' ) { + wp_spam_comment( $comment_id ); + } elseif ( $status == 'false' ) { + // comment is good, but it's still in the pending queue. depending on the moderation settings + // we may need to change it to approved. + if ( check_comment($comment->comment_author, $comment->comment_author_email, $comment->comment_author_url, $comment->comment_content, $comment->comment_author_IP, $comment->comment_agent, $comment->comment_type) ) + wp_set_comment_status( $comment_id, 1 ); + else if ( get_comment_meta( $comment_id, 'akismet_delayed_moderation_email', true ) ) + wp_notify_moderator( $comment_id ); + } + } + + delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); + } else { + // If this comment has been pending moderation for longer than MAX_DELAY_BEFORE_MODERATION_EMAIL, + // send a moderation email now. + if ( ( intval( gmdate( 'U' ) ) - strtotime( $comment->comment_date_gmt ) ) < self::MAX_DELAY_BEFORE_MODERATION_EMAIL ) { + delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); + wp_notify_moderator( $comment_id ); + } + + delete_comment_meta( $comment_id, 'akismet_rechecking' ); + wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); + do_action( 'akismet_scheduled_recheck', 'check-db-comment-' . $status ); + return; + } + delete_comment_meta( $comment_id, 'akismet_rechecking' ); + } + + $remaining = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" ); + if ( $remaining && !wp_next_scheduled('akismet_schedule_cron_recheck') ) { + wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); + do_action( 'akismet_scheduled_recheck', 'remaining' ); + } + } + + public static function fix_scheduled_recheck() { + $future_check = wp_next_scheduled( 'akismet_schedule_cron_recheck' ); + if ( !$future_check ) { + return; + } + + if ( get_option( 'akismet_alert_code' ) > 0 ) { + return; + } + + $check_range = time() + 1200; + if ( $future_check > $check_range ) { + wp_clear_scheduled_hook( 'akismet_schedule_cron_recheck' ); + wp_schedule_single_event( time() + 300, 'akismet_schedule_cron_recheck' ); + do_action( 'akismet_scheduled_recheck', 'fix-scheduled-recheck' ); + } + } + + public static function add_comment_nonce( $post_id ) { + echo '

'; + wp_nonce_field( 'akismet_comment_nonce_' . $post_id, 'akismet_comment_nonce', FALSE ); + echo '

'; + } + + public static function is_test_mode() { + return defined('AKISMET_TEST_MODE') && AKISMET_TEST_MODE; + } + + public static function allow_discard() { + if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) + return false; + if ( is_user_logged_in() ) + return false; + + return ( get_option( 'akismet_strictness' ) === '1' ); + } + + public static function get_ip_address() { + return isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : null; + } + + /** + * Do these two comments, without checking the comment_ID, "match"? + * + * @param mixed $comment1 A comment object or array. + * @param mixed $comment2 A comment object or array. + * @return bool Whether the two comments should be treated as the same comment. + */ + private static function comments_match( $comment1, $comment2 ) { + $comment1 = (array) $comment1; + $comment2 = (array) $comment2; + + $comments_match = ( + isset( $comment1['comment_post_ID'], $comment2['comment_post_ID'] ) + && intval( $comment1['comment_post_ID'] ) == intval( $comment2['comment_post_ID'] ) + && ( + // The comment author length max is 255 characters, limited by the TINYTEXT column type. + // If the comment author includes multibyte characters right around the 255-byte mark, they + // may be stripped when the author is saved in the DB, so a 300+ char author may turn into + // a 253-char author when it's saved, not 255 exactly. The longest possible character is + // theoretically 6 bytes, so we'll only look at the first 248 bytes to be safe. + substr( $comment1['comment_author'], 0, 248 ) == substr( $comment2['comment_author'], 0, 248 ) + || substr( stripslashes( $comment1['comment_author'] ), 0, 248 ) == substr( $comment2['comment_author'], 0, 248 ) + || substr( $comment1['comment_author'], 0, 248 ) == substr( stripslashes( $comment2['comment_author'] ), 0, 248 ) + // Certain long comment author names will be truncated to nothing, depending on their encoding. + || ( ! $comment1['comment_author'] && strlen( $comment2['comment_author'] ) > 248 ) + || ( ! $comment2['comment_author'] && strlen( $comment1['comment_author'] ) > 248 ) + ) + && ( + // The email max length is 100 characters, limited by the VARCHAR(100) column type. + // Same argument as above for only looking at the first 93 characters. + substr( $comment1['comment_author_email'], 0, 93 ) == substr( $comment2['comment_author_email'], 0, 93 ) + || substr( stripslashes( $comment1['comment_author_email'] ), 0, 93 ) == substr( $comment2['comment_author_email'], 0, 93 ) + || substr( $comment1['comment_author_email'], 0, 93 ) == substr( stripslashes( $comment2['comment_author_email'] ), 0, 93 ) + // Very long emails can be truncated and then stripped if the [0:100] substring isn't a valid address. + || ( ! $comment1['comment_author_email'] && strlen( $comment2['comment_author_email'] ) > 100 ) + || ( ! $comment2['comment_author_email'] && strlen( $comment1['comment_author_email'] ) > 100 ) + ) + ); + + return $comments_match; + } + + // Does the supplied comment match the details of the one most recently stored in self::$last_comment? + public static function matches_last_comment( $comment ) { + if ( is_object( $comment ) ) + $comment = (array) $comment; + + return self::comments_match( self::$last_comment, $comment ); + } + + private static function get_user_agent() { + return isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : null; + } + + private static function get_referer() { + return isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : null; + } + + // return a comma-separated list of role names for the given user + public static function get_user_roles( $user_id ) { + $roles = false; + + if ( !class_exists('WP_User') ) + return false; + + if ( $user_id > 0 ) { + $comment_user = new WP_User( $user_id ); + if ( isset( $comment_user->roles ) ) + $roles = join( ',', $comment_user->roles ); + } + + if ( is_multisite() && is_super_admin( $user_id ) ) { + if ( empty( $roles ) ) { + $roles = 'super_admin'; + } else { + $comment_user->roles[] = 'super_admin'; + $roles = join( ',', $comment_user->roles ); + } + } + + return $roles; + } + + // filter handler used to return a spam result to pre_comment_approved + public static function last_comment_status( $approved, $comment ) { + if ( is_null( self::$last_comment_result ) ) { + // We didn't have reason to store the result of the last check. + return $approved; + } + + // Only do this if it's the correct comment + if ( ! self::matches_last_comment( $comment ) ) { + self::log( "comment_is_spam mismatched comment, returning unaltered $approved" ); + return $approved; + } + + // bump the counter here instead of when the filter is added to reduce the possibility of overcounting + if ( $incr = apply_filters('akismet_spam_count_incr', 1) ) + update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr ); + + return self::$last_comment_result; + } + + /** + * If Akismet is temporarily unreachable, we don't want to "spam" the blogger with + * moderation emails for comments that will be automatically cleared or spammed on + * the next retry. + * + * For comments that will be rechecked later, empty the list of email addresses that + * the moderation email would be sent to. + * + * @param array $emails An array of email addresses that the moderation email will be sent to. + * @param int $comment_id The ID of the relevant comment. + * @return array An array of email addresses that the moderation email will be sent to. + */ + public static function disable_moderation_emails_if_unreachable( $emails, $comment_id ) { + if ( ! empty( self::$prevent_moderation_email_for_these_comments ) && ! empty( $emails ) ) { + $comment = get_comment( $comment_id ); + + foreach ( self::$prevent_moderation_email_for_these_comments as $possible_match ) { + if ( self::comments_match( $possible_match, $comment ) ) { + update_comment_meta( $comment_id, 'akismet_delayed_moderation_email', true ); + return array(); + } + } + } + + return $emails; + } + + public static function _cmp_time( $a, $b ) { + return $a['time'] > $b['time'] ? -1 : 1; + } + + public static function _get_microtime() { + $mtime = explode( ' ', microtime() ); + return $mtime[1] + $mtime[0]; + } + + /** + * Make a POST request to the Akismet API. + * + * @param string $request The body of the request. + * @param string $path The path for the request. + * @param string $ip The specific IP address to hit. + * @return array A two-member array consisting of the headers and the response body, both empty in the case of a failure. + */ + public static function http_post( $request, $path, $ip=null ) { + + $akismet_ua = sprintf( 'WordPress/%s | Akismet/%s', $GLOBALS['wp_version'], constant( 'AKISMET_VERSION' ) ); + $akismet_ua = apply_filters( 'akismet_ua', $akismet_ua ); + + $content_length = strlen( $request ); + + $api_key = self::get_api_key(); + $host = self::API_HOST; + + if ( !empty( $api_key ) ) + $host = $api_key.'.'.$host; + + $http_host = $host; + // use a specific IP if provided + // needed by Akismet_Admin::check_server_connectivity() + if ( $ip && long2ip( ip2long( $ip ) ) ) { + $http_host = $ip; + } + + $http_args = array( + 'body' => $request, + 'headers' => array( + 'Content-Type' => 'application/x-www-form-urlencoded; charset=' . get_option( 'blog_charset' ), + 'Host' => $host, + 'User-Agent' => $akismet_ua, + ), + 'httpversion' => '1.0', + 'timeout' => 15 + ); + + $akismet_url = $http_akismet_url = "http://{$http_host}/1.1/{$path}"; + + /** + * Try SSL first; if that fails, try without it and don't try it again for a while. + */ + + $ssl = $ssl_failed = false; + + // Check if SSL requests were disabled fewer than X hours ago. + $ssl_disabled = get_option( 'akismet_ssl_disabled' ); + + if ( $ssl_disabled && $ssl_disabled < ( time() - 60 * 60 * 24 ) ) { // 24 hours + $ssl_disabled = false; + delete_option( 'akismet_ssl_disabled' ); + } + else if ( $ssl_disabled ) { + do_action( 'akismet_ssl_disabled' ); + } + + if ( ! $ssl_disabled && function_exists( 'wp_http_supports') && ( $ssl = wp_http_supports( array( 'ssl' ) ) ) ) { + $akismet_url = set_url_scheme( $akismet_url, 'https' ); + + do_action( 'akismet_https_request_pre' ); + } + + $response = wp_remote_post( $akismet_url, $http_args ); + + Akismet::log( compact( 'akismet_url', 'http_args', 'response' ) ); + + if ( $ssl && is_wp_error( $response ) ) { + do_action( 'akismet_https_request_failure', $response ); + + // Intermittent connection problems may cause the first HTTPS + // request to fail and subsequent HTTP requests to succeed randomly. + // Retry the HTTPS request once before disabling SSL for a time. + $response = wp_remote_post( $akismet_url, $http_args ); + + Akismet::log( compact( 'akismet_url', 'http_args', 'response' ) ); + + if ( is_wp_error( $response ) ) { + $ssl_failed = true; + + do_action( 'akismet_https_request_failure', $response ); + + do_action( 'akismet_http_request_pre' ); + + // Try the request again without SSL. + $response = wp_remote_post( $http_akismet_url, $http_args ); + + Akismet::log( compact( 'http_akismet_url', 'http_args', 'response' ) ); + } + } + + if ( is_wp_error( $response ) ) { + do_action( 'akismet_request_failure', $response ); + + return array( '', '' ); + } + + if ( $ssl_failed ) { + // The request failed when using SSL but succeeded without it. Disable SSL for future requests. + update_option( 'akismet_ssl_disabled', time() ); + + do_action( 'akismet_https_disabled' ); + } + + $simplified_response = array( $response['headers'], $response['body'] ); + + self::update_alert( $simplified_response ); + + return $simplified_response; + } + + // given a response from an API call like check_key_status(), update the alert code options if an alert is present. + private static function update_alert( $response ) { + $code = $msg = null; + if ( isset( $response[0]['x-akismet-alert-code'] ) ) { + $code = $response[0]['x-akismet-alert-code']; + $msg = $response[0]['x-akismet-alert-msg']; + } + + // only call update_option() if the value has changed + if ( $code != get_option( 'akismet_alert_code' ) ) { + if ( ! $code ) { + delete_option( 'akismet_alert_code' ); + delete_option( 'akismet_alert_msg' ); + } + else { + update_option( 'akismet_alert_code', $code ); + update_option( 'akismet_alert_msg', $msg ); + } + } + } + + public static function load_form_js() { + // WP < 3.3 can't enqueue a script this late in the game and still have it appear in the footer. + // Once we drop support for everything pre-3.3, this can change back to a single enqueue call. + wp_register_script( 'akismet-form', plugin_dir_url( __FILE__ ) . '_inc/form.js', array(), AKISMET_VERSION, true ); + add_action( 'wp_footer', array( 'Akismet', 'print_form_js' ) ); + add_action( 'admin_footer', array( 'Akismet', 'print_form_js' ) ); + } + + public static function print_form_js() { + wp_print_scripts( 'akismet-form' ); + } + + public static function inject_ak_js( $fields ) { + echo '

'; + echo ''; + echo '

'; + } + + private static function bail_on_activation( $message, $deactivate = true ) { +?> + + + + + + +

+ + + $plugin ) { + if ( $plugin === $akismet ) { + $plugins[$i] = false; + $update = true; + } + } + + if ( $update ) { + update_option( 'active_plugins', array_filter( $plugins ) ); + } + } + exit; + } + + public static function view( $name, array $args = array() ) { + $args = apply_filters( 'akismet_view_arguments', $args, $name ); + + foreach ( $args AS $key => $val ) { + $$key = $val; + } + + load_plugin_textdomain( 'akismet' ); + + $file = AKISMET__PLUGIN_DIR . 'views/'. $name . '.php'; + + include( $file ); + } + + /** + * Attached to activate_{ plugin_basename( __FILES__ ) } by register_activation_hook() + * @static + */ + public static function plugin_activation() { + if ( version_compare( $GLOBALS['wp_version'], AKISMET__MINIMUM_WP_VERSION, '<' ) ) { + load_plugin_textdomain( 'akismet' ); + + $message = ''.sprintf(esc_html__( 'Akismet %s requires WordPress %s or higher.' , 'akismet'), AKISMET_VERSION, AKISMET__MINIMUM_WP_VERSION ).' '.sprintf(__('Please upgrade WordPress to a current version, or downgrade to version 2.4 of the Akismet plugin.', 'akismet'), 'https://codex.wordpress.org/Upgrading_WordPress', 'https://wordpress.org/extend/plugins/akismet/download/'); + + Akismet::bail_on_activation( $message ); + } + } + + /** + * Removes all connection options + * @static + */ + public static function plugin_deactivation( ) { + return self::deactivate_key( self::get_api_key() ); + } + + /** + * Essentially a copy of WP's build_query but one that doesn't expect pre-urlencoded values. + * + * @param array $args An array of key => value pairs + * @return string A string ready for use as a URL query string. + */ + public static function build_query( $args ) { + return _http_build_query( $args, '', '&' ); + } + + /** + * Log debugging info to the error log. + * + * Enabled when WP_DEBUG_LOG is enabled (and WP_DEBUG, since according to + * core, "WP_DEBUG_DISPLAY and WP_DEBUG_LOG perform no function unless + * WP_DEBUG is true), but can be disabled via the akismet_debug_log filter. + * + * @param mixed $akismet_debug The data to log. + */ + public static function log( $akismet_debug ) { + if ( apply_filters( 'akismet_debug_log', defined( 'WP_DEBUG' ) && WP_DEBUG && defined( 'WP_DEBUG_LOG' ) && WP_DEBUG_LOG ) ) { + error_log( print_r( compact( 'akismet_debug' ), true ) ); + } + } + + public static function pre_check_pingback( $method ) { + if ( $method !== 'pingback.ping' ) + return; + + global $wp_xmlrpc_server; + + if ( !is_object( $wp_xmlrpc_server ) ) + return false; + + // Lame: tightly coupled with the IXR class. + $args = $wp_xmlrpc_server->message->params; + + if ( !empty( $args[1] ) ) { + $post_id = url_to_postid( $args[1] ); + + // If this gets through the pre-check, make sure we properly identify the outbound request as a pingback verification + Akismet::pingback_forwarded_for( null, $args[0] ); + add_filter( 'http_request_args', array( 'Akismet', 'pingback_forwarded_for' ), 10, 2 ); + + $comment = array( + 'comment_author_url' => $args[0], + 'comment_post_ID' => $post_id, + 'comment_author' => '', + 'comment_author_email' => '', + 'comment_content' => '', + 'comment_type' => 'pingback', + 'akismet_pre_check' => '1', + 'comment_pingback_target' => $args[1], + ); + + $comment = Akismet::auto_check_comment( $comment ); + + if ( isset( $comment['akismet_result'] ) && 'true' == $comment['akismet_result'] ) { + // Lame: tightly coupled with the IXR classes. Unfortunately the action provides no context and no way to return anything. + $wp_xmlrpc_server->error( new IXR_Error( 0, 'Invalid discovery target' ) ); + } + } + } + + public static function pingback_forwarded_for( $r, $url ) { + static $urls = array(); + + // Call this with $r == null to prime the callback to add headers on a specific URL + if ( is_null( $r ) && !in_array( $url, $urls ) ) { + $urls[] = $url; + } + + // Add X-Pingback-Forwarded-For header, but only for requests to a specific URL (the apparent pingback source) + if ( is_array( $r ) && is_array( $r['headers'] ) && !isset( $r['headers']['X-Pingback-Forwarded-For'] ) && in_array( $url, $urls ) ) { + $remote_ip = preg_replace( '/[^a-fx0-9:.,]/i', '', $_SERVER['REMOTE_ADDR'] ); + + // Note: this assumes REMOTE_ADDR is correct, and it may not be if a reverse proxy or CDN is in use + $r['headers']['X-Pingback-Forwarded-For'] = $remote_ip; + + // Also identify the request as a pingback verification in the UA string so it appears in logs + $r['user-agent'] .= '; verifying pingback from ' . $remote_ip; + } + + return $r; + } + + /** + * Ensure that we are loading expected scalar values from akismet_as_submitted commentmeta. + * + * @param mixed $meta_value + * @return mixed + */ + private static function sanitize_comment_as_submitted( $meta_value ) { + if ( empty( $meta_value ) ) { + return $meta_value; + } + + $meta_value = (array) $meta_value; + + foreach ( $meta_value as $key => $value ) { + if ( ! isset( self::$comment_as_submitted_allowed_keys[$key] ) || ! is_scalar( $value ) ) { + unset( $meta_value[$key] ); + } + } + + return $meta_value; + } +} diff --git a/wp-content/plugins/akismet/index.php b/wp-content/plugins/akismet/index.php new file mode 100644 index 0000000..cf879a5 --- /dev/null +++ b/wp-content/plugins/akismet/index.php @@ -0,0 +1,2 @@ + + +

+ +
+ + spam > 0 ) : ?> + +
+ + + + + + +
    +
  • +

    + spam );?> + spam, 'akismet' ) ); ?> +
  • +
  • +

    + spam );?> + spam, 'akismet' ) ); ?> +
  • +
  • +

    + accuracy; ?>% + missed_spam, 'akismet' ), number_format( $stat_totals['all']->missed_spam ) ); ?> + | + false_positives, 'akismet' ), number_format( $stat_totals['all']->false_positives ) ); ?> +
  • +
+
+
+ + + + +
+ +
+
+
+

+

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+

+ wp_http_supports' ); ?> +

+
+

+ +

+
+
+

+

+
+ + spam folder older than 1 day is deleted automatically.', + 'Spam in the spam folder older than %2$d days is deleted automatically.', + $delete_interval, + 'akismet' + ), + admin_url( 'edit-comments.php?comment_status=spam' ), + $delete_interval + ); + + ?> +
+
+
+ +
+ +
+ + +
+ + + +
+
+
+
+
+
+
+
+
+
+

+

+
+ + + + + + + + + + + next_billing_date ) : ?> + + + + + + +
+ + account_name; ?> +
+ + status ) : + esc_html_e( 'Cancelled', 'akismet' ); + elseif ( 'suspended' == $akismet_user->status ) : + esc_html_e( 'Suspended', 'akismet' ); + elseif ( 'missing' == $akismet_user->status ) : + esc_html_e( 'Missing', 'akismet' ); + elseif ( 'no-sub' == $akismet_user->status ) : + esc_html_e( 'No Subscription Found', 'akismet' ); + else : + esc_html_e( 'Active', 'akismet' ); + endif; ?> +
+ + next_billing_date ); ?> +
+
+
+
+ ( $akismet_user->account_type == 'free-api-key' && $akismet_user->status == 'active' ? __( 'Upgrade' , 'akismet') : __( 'Change' , 'akismet') ), 'redirect' => 'upgrade' ) ); ?> +
+
+
+
+
+
+
+ + + +
+
\ No newline at end of file diff --git a/wp-content/plugins/akismet/views/get.php b/wp-content/plugins/akismet/views/get.php new file mode 100644 index 0000000..72a3b6e --- /dev/null +++ b/wp-content/plugins/akismet/views/get.php @@ -0,0 +1,6 @@ +
+ + + + +
\ No newline at end of file diff --git a/wp-content/plugins/akismet/views/notice.php b/wp-content/plugins/akismet/views/notice.php new file mode 100644 index 0000000..8e6e508 --- /dev/null +++ b/wp-content/plugins/akismet/views/notice.php @@ -0,0 +1,123 @@ + +
+
+
+
A
+
+
+ +
+
+
Almost done - activate Akismet and say goodbye to spam', 'akismet');?>
+
+
+
+ +
+

+

+ +

+ +
+ +

upgrade WordPress to a current version, or downgrade to version 2.4 of the Akismet plugin.', 'akismet'), 'https://codex.wordpress.org/Upgrading_WordPress', 'https://wordpress.org/extend/plugins/akismet/download/');?>

+ +
+

+

+

https://akismet.com/errors/' . $code . '' ); + + ?> +

+
+ +
+

+

+ +

+
+ +
+

+

gethostbynamel function. Akismet cannot work correctly until this is fixed. Please contact your web host or firewall administrator and give them this information about Akismet’s system requirements.', 'akismet'), 'https://blog.akismet.com/akismet-hosting-faq/'); ?>

+
+ +
+

+

our guide about firewalls.', 'akismet'), 'https://blog.akismet.com/akismet-hosting-faq/'); ?>

+
+ +
+

+

update your payment details.', 'akismet'), 'https://akismet.com/account/'); ?>

+
+ +
+

+

Akismet account page to reactivate your subscription.', 'akismet'), 'https://akismet.com/account/'); ?>

+
+ +
+

+

Akismet support for assistance.', 'akismet'), 'https://akismet.com/contact/'); ?>

+
+ +
+

+

contributing a token amount.', 'akismet'), 'https://akismet.com/account/upgrade/'); ?>

+
+ +
+

+

Akismet support for assistance.', 'akismet'), 'https://akismet.com/contact/'); ?>

+
+ +
+

+

+ sign into your account and choose one.', 'akismet'), 'https://akismet.com/account/upgrade/' ); ?> +

+ contact our support team with any questions.', 'akismet' ), 'https://akismet.com/contact/' ); ?> +

+
+ +
+

+
+ +
+

+
+ +
+

+
+ +
+

+

our guide about firewalls and check your server configuration.', 'akismet'), 'https://blog.akismet.com/akismet-hosting-faq/'); ?>

+
+ +
+ +

+

+ purchase additional Pro subscriptions or upgrade to an Enterprise subscription that allows the use of Akismet on unlimited sites.', 'akismet' ), 'https://docs.akismet.com/billing/add-more-sites/' ); ?> +

+ contact our support team with any questions.', 'akismet' ), 'https://akismet.com/contact/'); ?> +

+ +

+

+ upgrade to an Enterprise subscription, which covers an unlimited number of sites.', 'akismet'), 'https://akismet.com/account/upgrade/' ); ?>

+

+ contact our support team with any questions.', 'akismet' ), 'https://akismet.com/contact/'); ?>

+

+ +
+ \ No newline at end of file diff --git a/wp-content/plugins/akismet/views/start.php b/wp-content/plugins/akismet/views/start.php new file mode 100644 index 0000000..75eb032 --- /dev/null +++ b/wp-content/plugins/akismet/views/start.php @@ -0,0 +1,97 @@ +
status, array( 'active', 'active-dunning', 'no-sub', 'missing', 'cancelled', 'suspended' ) ) ) : + if ( in_array( $akismet_user->status, array( 'no-sub', 'missing' ) ) ) :?> +

+
+
+ + user_email ); ?> +
+
+ + + + + +
+
+status == 'cancelled' ) :?> +

+
+
+ + user_email ); ?> +
+
+ + + + + +
+
+status == 'suspended' ) : ?> +

+
+ +

user_email ); ?>

+

+ +
+ +

+
+
+ + user_email ); ?> +
+
+ + + + +
+
+ +
+
+ +

+
+ __( 'Sign up with a different email address' , 'akismet'), 'classes' => array( 'right', 'button', 'button-secondary' ) ) ); ?> +
+
+
+ +

+
+
+ + + + +
+
+ +

+
+
+ +

+
+ __( 'Get your API key' , 'akismet'), 'classes' => array( 'right', 'button', 'button-primary' ) ) ); ?> +
+
+
+ +

+
+
+ + + + +
+
+
\ No newline at end of file diff --git a/wp-content/plugins/akismet/views/stats.php b/wp-content/plugins/akismet/views/stats.php new file mode 100644 index 0000000..1ca7661 --- /dev/null +++ b/wp-content/plugins/akismet/views/stats.php @@ -0,0 +1,4 @@ +
+

+ +
\ No newline at end of file diff --git a/wp-content/plugins/akismet/views/strict.php b/wp-content/plugins/akismet/views/strict.php new file mode 100644 index 0000000..83d7a50 --- /dev/null +++ b/wp-content/plugins/akismet/views/strict.php @@ -0,0 +1,17 @@ +
+ + + +

+ +

+

+ +

+
diff --git a/wp-content/plugins/akismet/wrapper.php b/wp-content/plugins/akismet/wrapper.php new file mode 100644 index 0000000..a77d4ce --- /dev/null +++ b/wp-content/plugins/akismet/wrapper.php @@ -0,0 +1,213 @@ +Hello, Dolly in the upper right of your admin screen on every page. +Author: Matt Mullenweg +Version: 1.6 +Author URI: http://ma.tt/ +*/ + +function hello_dolly_get_lyric() { + /** These are the lyrics to Hello Dolly */ + $lyrics = "Hello, Dolly +Well, hello, Dolly +It's so nice to have you back where you belong +You're lookin' swell, Dolly +I can tell, Dolly +You're still glowin', you're still crowin' +You're still goin' strong +We feel the room swayin' +While the band's playin' +One of your old favourite songs from way back when +So, take her wrap, fellas +Find her an empty lap, fellas +Dolly'll never go away again +Hello, Dolly +Well, hello, Dolly +It's so nice to have you back where you belong +You're lookin' swell, Dolly +I can tell, Dolly +You're still glowin', you're still crowin' +You're still goin' strong +We feel the room swayin' +While the band's playin' +One of your old favourite songs from way back when +Golly, gee, fellas +Find her a vacant knee, fellas +Dolly'll never go away +Dolly'll never go away +Dolly'll never go away again"; + + // Here we split it into lines + $lyrics = explode( "\n", $lyrics ); + + // And then randomly choose a line + return wptexturize( $lyrics[ mt_rand( 0, count( $lyrics ) - 1 ) ] ); +} + +// This just echoes the chosen line, we'll position it later +function hello_dolly() { + $chosen = hello_dolly_get_lyric(); + echo "

$chosen

"; +} + +// Now we set that function up to execute when the admin_notices action is called +add_action( 'admin_notices', 'hello_dolly' ); + +// We need some CSS to position the paragraph +function dolly_css() { + // This makes sure that the positioning is also good for right-to-left languages + $x = is_rtl() ? 'left' : 'right'; + + echo " + + "; +} + +add_action( 'admin_head', 'dolly_css' ); + +?> diff --git a/wp-content/plugins/index.php b/wp-content/plugins/index.php new file mode 100644 index 0000000..6220032 --- /dev/null +++ b/wp-content/plugins/index.php @@ -0,0 +1,2 @@ +, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.3\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: 2009-06-11 18:42+0200\n" +"Last-Translator: Hristo Chakarov \n" +"Language-Team: iNetStudio \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Bulgarian\n" +"X-Poedit-Country: BULGARIA\n" +"X-Poedit-KeywordsList: __;_e;_ngettext:1,2\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d чаÑ" +msgstr[1] "%d чаÑа" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d минута" +msgstr[1] "%d минути" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] Твърде много грешни опити за вход" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d грешни опити за вход (%d заключваниÑ) от IP: %s" + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "ПоÑледно Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ðµ опитал: %s" + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "IP е блокирано за %s." + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "ГРЕШКÐ: Твърде много грешни опита за вход." + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "МолÑ, опитайте отново по-къÑно." + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "МолÑ, опитайте пак Ñлед %d чаÑ." +msgstr[1] "МолÑ, опитайте пак Ñлед %d чаÑа." + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "МолÑ, опитайте пак Ñлед %d минута." +msgstr[1] "МолÑ, опитайте пак Ñлед %d минути." + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "Имате право на Ñамо %d опит!" +msgstr[1] "Имате право на още %d опита." + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "ГРЕШКÐ: Грешно потребителÑко име или парола." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "Опитва да влезе като" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d заключване" +msgstr[1] "%d заключваниÑ" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "IP логът беше зачиÑтен" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "Ðулирай Ð±Ñ€Ð¾Ñ Ð·Ð°ÐºÐ»ÑŽÑ‡Ð²Ð°Ð½Ð¸Ñ" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "ЗаключваниÑта Ñа изчиÑтени" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "ÐаÑтройките Ñа запазени" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "ЗÐБЕЛЕЖКÐ: Работи Ñамо Ñ WordPress верÑÐ¸Ñ 2.7+" + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Изглежда Ñайтът е доÑтъпен директно (от IP: %s)" + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Изглежда Ñайтът е доÑтъпен през прокÑи Ñървър (IP на прокÑи Ñървъра: %s, IP на Ñайта: %s)" + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "ÐаÑтройките Ñа невалидни. Повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñ‚ÑƒÐº" + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "Limit Login Attempts ÐаÑтройки" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "СтатиÑтики" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "Общо заключваниÑ" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "Ðулирай броÑча" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d заключване от поÑледното нулиране" +msgstr[1] "%d Ð·Ð°ÐºÐ»ÑŽÑ‡Ð²Ð°Ð½Ð¸Ñ Ð¾Ñ‚ поÑледното нулиране" + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "ÐÑма Ð·Ð°ÐºÐ»ÑŽÑ‡Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾Ñега" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "Ðктивни заключваниÑ" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "Поднови заключваниÑта" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "%d IP е блокирано" + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "ÐаÑтройки" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "Заключване" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "позволени опити" + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "минути заключване" + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "Ð·Ð°ÐºÐ»ÑŽÑ‡Ð²Ð°Ð½Ð¸Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡Ð°Ð²Ð°Ñ‚ времето на заключване на " + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "чаÑа" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "чаÑа грешните опити Ñе нулират" + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "Връзка към Ñайта" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "Директна връзка" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "През ПрокÑи Ñървър" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "Ðаблюдавай cookie login" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "Да" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "Ðе" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "УведомÑвай при заключване" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "Log IP" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "Прати Email до админиÑтратора Ñлед" + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "заключваниÑ" + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "Обнови наÑтройки" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "Лог на заключваниÑта" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "ИзчиÑти лог" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Limit Login Attempts" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Ограничава Ð±Ñ€Ð¾Ñ Ð½Ð° опитите за вход, включително тези от cookies, за вÑÑко различно IP." + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-ca.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-ca.mo new file mode 100644 index 0000000..5898b69 Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-ca.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-ca.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-ca.po new file mode 100644 index 0000000..976501c --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-ca.po @@ -0,0 +1,277 @@ +# Limit Login Attempts German Translation +# Copyright (C) 2009 Johan Eenfeldt +# This file is distributed under the same license as the Wordpress package. +# Johan Eenfeldt , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.3\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: 2009-03-16 21:05+0100\n" +"Last-Translator: Robert Buj \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Catalan\n" +"X-Poedit-Country: SPAIN\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d hora" +msgstr[1] "%d hores" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minut" +msgstr[1] "%d minuts" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] Massa intents d'accés fallits" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d intents d'accedir fallits (%d bloqueig(s)) de de l'IP: %s" + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "Últim intent d'usuari: %s" + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "La IP ha estat bloquejada per %s" + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "ERROR: Massa intents d'accedir fallits." + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "Si us plau torneu-ho a intentar més tard." + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "Si us plau torneu-ho a provar d'aquí a %d hora." +msgstr[1] "Si us plau torneu-ho a provar d'aquí a %d hores." + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "Si us plau torneu-ho a provar d'aquí a %d minut." +msgstr[1] "Si us plau torneu-ho a provar d'aquí a %d minuts." + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "%d intent restant." +msgstr[1] "%d intents restants." + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "ERROR: Nom d'usuari o contrasenya incorrectes." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP|Adreça d'internet" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "Heu tractat d'accedir com" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d bloqueig" +msgstr[1] "%d bloqueigs" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "Netejat el registre IP" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "Restablir contador de bloqueig" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "Netejats els bloqueigs actuals" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "Opcions canviades" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "NOTA: Només funciona amb Wordpress 2.7 i posteriors" + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Pel que sembla, al lloc s'arriba directament (a partir de la vostra IP: %s)" + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Pel que sembla, al lloc s'arriba a través d'un servidor intermediari (proxy IP: %s, la vostra IP: %s)" + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "La configuració actual sembla ser incorrecta. Si us plau, assegureu-vos que és correcta. Podeu trobar més informació aquí" + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "Preferències del límit d'intents d'identificació" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "Estadístiques" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "Bloqueigs totals" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "Restablir contador" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d bloqueig des de l'ultim restabliment." +msgstr[1] "%d bloqueigs des de l'ultim restabliment." + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "Encara sense bloqueigs" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "Bloqueigs actius" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "Restablir bloqueigs" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "La IP %d actualment està bloquejada al tractar d'iniciar la sessió" + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "Opcions" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "Bloqueig" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "reintents permesos" + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "minuts a bloquejar" + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "bloqueigs incrementen el temps a" + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "hores" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "hores fins que es restableixen els reintents" + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "Lloc de connexió" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "Connexió directa" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "Des de darrere d'un proxy reversy" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "Manejar galletes d'identificació" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "Si" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "No" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "Notificar al bloquejar" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "Registre IP" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "Enviar després un correu a l'administrador" + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "Bloqueigs" + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "Canviar opcions" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "Registre de bloqueigs" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "Netejar registre" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Límit d'intents d'identificació" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Limitar la taxa d'intents d'accés, per mitjà de galetes, per a cada IP." + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-cs_CZ.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-cs_CZ.mo new file mode 100644 index 0000000..f148d92 Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-cs_CZ.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-cs_CZ.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-cs_CZ.po new file mode 100644 index 0000000..bd453ef --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-cs_CZ.po @@ -0,0 +1,281 @@ +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.3\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: \n" +"Last-Translator: Jakub Jedelsky \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n>=2 && n<=4 ? 1 : 2;\n" +"X-Poedit-Language: Czech\n" +"X-Poedit-Country: Czech Republic\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d hodina" +msgstr[1] "%d hodin" +msgstr[2] "%d hodin" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuta" +msgstr[1] "%d minuty" +msgstr[2] "%d minut" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] PříliÅ¡ mnoho chybných pokusů o pÅ™ihlášení" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d Å¡patných pokusů o pÅ™ihlášení (zablokováno %d krát) z IP: %s" + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "Poslední chybující uživatel: %s" + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "IP adresa byla zablokována na %s" + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "CHYBA: PříliÅ¡ mnoho chybných pokusů o pÅ™ihlášení" + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "Prosím, opakujte akci pozdÄ›ji." + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "Prosím, opakujte akci za %d hodinu." +msgstr[1] "Prosím, opakujte akci za %d hodiny." +msgstr[2] "Prosím, opakujte akci za %d hodin." + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "Prosím, opakujte akci za %d minutu." +msgstr[1] "Prosím, opakujte akci za %d minuty." +msgstr[2] "Prosím, opakujte akci za %d minut." + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "%d zbývající pokusů." +msgstr[1] "%d zbývající pokusy." +msgstr[2] "%d zbývajících pokusů." + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "CHYBA: Å patné uživatelské jméno nebo heslo." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP|Internetové adresy" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "Pokus o pÅ™ihlášení jako" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d uzamÄení" +msgstr[1] "%d uzamÄení" +msgstr[2] "%d uzamÄení" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "IP log smazán" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "aktuální blokování bylo resetováno" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "Aktuální blokování bylo promazáno" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "Nastavení zmÄ›nÄ›no" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "POZNÃMKA: Funguje pouze ve verzi Wordpress 2.7 a vyšší" + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Zdá se, že web je přímo dosažitelný (z Vaší IP: %s)" + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Zdá se, že web je dosažitelný pÅ™es proxy server (IP proxy: %s, VaÅ¡e IP: %s)" + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "Aktuální nastavení je zÅ™ejmÄ› chybné. Prosím, ujistÄ›te se o jeho správnosti. Další informace jsou k nalezení zde (anglicky)." + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "Nastavení Limit Login Attempts" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "Statistiky" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "Celkem blokováno" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "Reset poÄítadla" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d blokování od posledního resetu" +msgstr[1] "%d blokování od posledního resetu" +msgstr[2] "%d blokování od posledního resetu" + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "Dosud nebylo nic blokováno" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "Aktivní blokování" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "Smazat blokování" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "IP %d je aktuálnÄ› blokována z důvodu chybného pÅ™ihlášení" + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "Nastavení" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "Blokování" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "povolených pokusů" + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "minut blokován" + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "- poÄet blokovaných pokusů, po kterém se zvýší Äas blokování na" + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "hodin" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "- poÄet hodin, po kterém jsou chybné pokusy o pÅ™ihlášení resetovány" + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "PÅ™ipojení webu" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "Přímé pÅ™ipojení" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "Za proxy serverem" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "Pracovat s pÅ™ihlaÅ¡ovacím cookie" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "Ano" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "Ne" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "UpozornÄ›ní na blokování" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "Logovat IP" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "Poslat e-mail administrátorovi po" + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "pokusech" + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "ZmÄ›nit nastavení" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "Log blokování" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "Smazat log" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Limit Login Attempts" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +# Popis rozšíření v seznamu pluginů - z nÄ›jakého důvodu nefunguje +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Omezení pokusů o pÅ™ihlášení, mimo jiné prostÅ™ednictvím cookies, pro každou IP." + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-de_DE.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-de_DE.mo new file mode 100644 index 0000000..55046d9 Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-de_DE.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-de_DE.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-de_DE.po new file mode 100644 index 0000000..9ed3def --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-de_DE.po @@ -0,0 +1,277 @@ +# Limit Login Attempts German Translation +# Copyright (C) 2009 Johan Eenfeldt +# This file is distributed under the same license as the Wordpress package. +# Johan Eenfeldt , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.3\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: 2009-01-28 18:27+0100\n" +"Last-Translator: Johan Eenfeldt \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d Stunde" +msgstr[1] "%d Stunden" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d Minute" +msgstr[1] "%d Minuten" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] Zu viele ungültige Anmeldeversuche" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d ungültige Anmeldeversuche (%d Sperrung(en)) von IP: %s" + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "Letzter Anmeldeversuch erfolgte mit dem Benutzernamen: %s" + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "IP wurde gesperrt für %s." + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "FEHLER: Zuviele ungültige Anmeldeversuche." + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "Bitte versuchen Sie es später noch einmal." + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "Bitte versuchen Sie es in %d Stunde noch einmal." +msgstr[1] "Bitte versuchen Sie es in %d Stunden noch einmal." + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "Bitte versuchen Sie es in %d Minute noch einmal." +msgstr[1] "Bitte versuchen Sie es in %d Minuten noch einmal." + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "Es ist noch %d Anmeldeversuch möglich." +msgstr[1] "Es sind noch %d Anmeldeversuche möglich." + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "FEHLER: Ungültiger Benutzername oder Passwort." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "Anmeldeversuch als" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d Sperrung" +msgstr[1] "%d Sperrungen" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "Protokoll wurde gelöscht" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "Anzahl Sperrungen zurücksetzen" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "Sperrungen wurden deaktiviert" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "Einstellungen wurden geändert" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "Hinweis: Erst ab Wordpress 2.7 verwendbar" + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Der Zugriff auf diese Webseite erfolgt auf direktem Weg (von Ihrer IP: %s)" + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Der Zugriff auf diese Webseite erfolgt über einen Proxy Server (IP des Proxy Servers: %s, Ihre IP: %s)" + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "Die aktuellen Einstellungen sind u.U. nicht korrekt, bzw. nicht konsistent. Weitere Infos zu den Einstellungen finden Sie hier" + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "Limit Login Attempts Einstellungen" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "Statistik" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "Bisher vorgenommene Sperrungen" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "Zähler zurücksetzen" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d Sperrung seit letztem Zurücksetzen" +msgstr[1] "%d Sperrungen seit letztem Zurücksetzen" + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "Derzeit sind keine Sperrungen aktiv" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "Aktive Sperrungen" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "Sperrungen aufheben" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "%d IP ist derzeit für Anmeldeversuche gesperrt" + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "Einstellungen" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "Sperrung" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "erlaubte Anmeldeversuche" + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "Minuten Sperrung nach Überschreiten der zulässigen Anmeldeversuche" + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "Sperrungen erhöhen die insgesamte Sperrzeit um" + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "Stunden" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "Stunden bis fehlgeschlagene Anmeldeversuche zurückgesetzt werden" + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "Verbindungsweg zu dieser Webseite" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "Direkte Verbindung" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "Über einen Reverse Proxy Server" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "Anmeldungen via Cockies berücksichtigen" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "Ja" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "Nein" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "Benachrichtigung im Falle einer Sperrung" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "IP protokollieren" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "Email an den Administrator nach" + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "Sperrungen" + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "Einstellungen speichern" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "Protokoll der durchgeführten Sperrungen" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "Protokoll zurücksetzen" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Limit Login Attempts" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Limit rate of login attempts, including by way of cookies, for each IP." + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-es_ES.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-es_ES.mo new file mode 100644 index 0000000..a4d2033 Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-es_ES.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-es_ES.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-es_ES.po new file mode 100644 index 0000000..35f76ee --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-es_ES.po @@ -0,0 +1,266 @@ +# Limit Login Attempts German Translation +# Copyright (C) 2009 Johan Eenfeldt +# This file is distributed under the same license as the Wordpress package. +# Johan Eenfeldt , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.3\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2011-02-17 15:08:09+00:00\n" +"PO-Revision-Date: 2011-02-20 09:24-0300\n" +"Last-Translator: Marcelo Pedra \n" +"Language-Team: Español \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Spanish\n" +"X-Poedit-Country: ARGENTINA\n" + +#: limit-login-attempts.php:474 +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d hora" +msgstr[1] "%d horas" + +#: limit-login-attempts.php:480 +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuto" +msgstr[1] "%d minutos" + +#: limit-login-attempts.php:485 +msgid "[%s] Too many failed login attempts" +msgstr "[%s] Demasiados intentos de acceso fallidos" + +#: limit-login-attempts.php:487 +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d intentos de acceso fallidos (%d bloqueo(s)) desde la IP: %s" + +#: limit-login-attempts.php:491 +msgid "Last user attempted: %s" +msgstr "Ultimo usuario probado: %s" + +#: limit-login-attempts.php:494 +msgid "IP was blocked for %s" +msgstr "La IP se ha bloqueado para %s" + +#: limit-login-attempts.php:551 +msgid "ERROR: Too many failed login attempts." +msgstr "ERROR: Demasiados intentos de acceso fallidos." + +#: limit-login-attempts.php:555 +msgid "Please try again later." +msgstr "Por favor inténtelo más tarde." + +#: limit-login-attempts.php:562 +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "Por favor inténtelo dentro de %d hora." +msgstr[1] "Por favor inténtelo dentro de %d horas." + +#: limit-login-attempts.php:564 +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "Por favor inténtelo dentro de %d minuto." +msgstr[1] "Por favor inténtelo dentro de %d minutos." + +#: limit-login-attempts.php:593 +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "Le queda %d intento más." +msgstr[1] "Le quedan %d intentos más." + +#: limit-login-attempts.php:658 +msgid "ERROR: Incorrect username or password." +msgstr "ERROR: Nombre de usuario o contraseña incorrectos." + +#: limit-login-attempts.php:826 +msgctxt "Internet address" +msgid "IP" +msgstr "IP" + +#: limit-login-attempts.php:826 +msgid "Tried to log in as" +msgstr "Intentó ingresar como" + +#: limit-login-attempts.php:831 +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d bloqueo" +msgstr[1] "%d bloqueos" + +#: limit-login-attempts.php:860 +msgid "Cleared IP log" +msgstr "Direcciones liberadas" + +#: limit-login-attempts.php:868 +msgid "Reset lockout count" +msgstr "Reiniciar contador de bloqueos" + +#: limit-login-attempts.php:876 +msgid "Cleared current lockouts" +msgstr "Bloqueos actuales liberados" + +#: limit-login-attempts.php:905 +msgid "Options changed" +msgstr "Opciones actualizadas" + +#: limit-login-attempts.php:923 +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Al parecer, el sitio está siendo accedido directamente (desde tu IP: %s)" + +#: limit-login-attempts.php:925 +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Al parecer, el sitio está siendo accedido desde un servidor proxy (IP del proxy: %s, tu IP: %s)" + +#: limit-login-attempts.php:933 +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "La configuración actual parece ser incorrecta. Asegúrate de verificarla. Para mayor información, click aquí" + +#: limit-login-attempts.php:941 +msgid "Limit Login Attempts Settings" +msgstr "Preferencias del Limitador de Acceso" + +#: limit-login-attempts.php:942 +msgid "Statistics" +msgstr "Estadísticas" + +#: limit-login-attempts.php:947 +msgid "Total lockouts" +msgstr "Bloqueos totales" + +#: limit-login-attempts.php:950 +msgid "Reset Counter" +msgstr "Reiniciar contador" + +#: limit-login-attempts.php:951 +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d bloqueo desde el último reinicio." +msgstr[1] "%d bloqueos desde el último reinicio." + +#: limit-login-attempts.php:952 +msgid "No lockouts yet" +msgstr "Ningún bloqueo hasta ahora" + +#: limit-login-attempts.php:957 +msgid "Active lockouts" +msgstr "Bloqueos activos" + +#: limit-login-attempts.php:959 +msgid "Restore Lockouts" +msgstr "Restablecer bloqueos" + +#: limit-login-attempts.php:960 +msgid "%d IP is currently blocked from trying to log in" +msgstr "La IP %d actualmente tiene restringido el acceso" + +#: limit-login-attempts.php:966 +msgid "Options" +msgstr "Opciones" + +#: limit-login-attempts.php:971 +msgid "Lockout" +msgstr "Bloqueo" + +#: limit-login-attempts.php:973 +msgid "allowed retries" +msgstr "reintentos permitidos" + +#: limit-login-attempts.php:974 +msgid "minutes lockout" +msgstr "minutos por bloqueo" + +#: limit-login-attempts.php:975 +msgid "lockouts increase lockout time to" +msgstr "bloqueos incrementan el tiempo a" + +#: limit-login-attempts.php:975 +msgid "hours" +msgstr "horas" + +#: limit-login-attempts.php:976 +msgid "hours until retries are reset" +msgstr "horas hasta restablecer los reintentos" + +#: limit-login-attempts.php:980 +msgid "Site connection" +msgstr "Conexión" + +#: limit-login-attempts.php:986 +msgid "Direct connection" +msgstr "Connexión directa" + +#: limit-login-attempts.php:991 +msgid "From behind a reversy proxy" +msgstr "Detrás de un proxy" + +#: limit-login-attempts.php:997 +msgid "Handle cookie login" +msgstr "Gestionar cookies de login" + +#: limit-login-attempts.php:999 +msgid "Yes" +msgstr "Sí" + +#: limit-login-attempts.php:999 +msgid "No" +msgstr "No" + +#: limit-login-attempts.php:1003 +msgid "Notify on lockout" +msgstr "Notificar al bloquear" + +#: limit-login-attempts.php:1005 +msgid "Log IP" +msgstr "Registrar IP" + +#: limit-login-attempts.php:1006 +msgid "Email to admin after" +msgstr "Enviar email al administrador cada" + +#: limit-login-attempts.php:1006 +msgid "lockouts" +msgstr "bloqueos" + +#: limit-login-attempts.php:1011 +msgid "Change Options" +msgstr "Cambiar opciones" + +#: limit-login-attempts.php:1019 +msgid "Lockout log" +msgstr "Registro de bloqueos" + +#: limit-login-attempts.php:1024 +msgid "Clear Log" +msgstr "Limpiar registro" + +#. Plugin Name of the plugin/theme +msgid "Limit Login Attempts" +msgstr "Límitador de intentos de login" + +#. Plugin URI of the plugin/theme +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of the plugin/theme +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Limita la tasa de intentos de acceso, usando cookies por IP." + +#. Author of the plugin/theme +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of the plugin/theme +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + +#~ msgid "IP|Internet address" +#~ msgstr "IP|Dirección de Internet" +#~ msgid "NOTE: Only works in Wordpress 2.7 or later" +#~ msgstr "" +#~ "NOTA: Este plugin sólo funciona en Wordpress 2.7 o " +#~ "superior" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-fa_IR.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-fa_IR.mo new file mode 100644 index 0000000..2fa613d Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-fa_IR.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-fa_IR.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-fa_IR.po new file mode 100644 index 0000000..4777d6f --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-fa_IR.po @@ -0,0 +1,245 @@ +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-08-02 10:44+0330\n" +"PO-Revision-Date: \n" +"Last-Translator: mostafa.s1990@gmail.com \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Persian\n" +"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" +"X-Poedit-KeywordsList: __;_e\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: .\n" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:383 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] حملات زیاد برای ورود ناموÙÙ‚" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:385 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d حملات ورود ناموÙÙ‚ (%d تحریم(s)) از Ø¢ÛŒ Ù¾ÛŒ: %s" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:389 +#, php-format +msgid "Last user attempted: %s" +msgstr "آخرین حملات کاربر: %s" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:392 +#, php-format +msgid "IP was blocked for %s" +msgstr "Ø¢ÛŒ Ù¾ÛŒ شما برای %s Ù‚ÙÙ„ شده است" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:447 +msgid "ERROR: Too many failed login attempts." +msgstr "خطا: تلاش نا موÙÙ‚ برای ورود به سایت." + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:451 +msgid "Please try again later." +msgstr "لطÙا بعدا امتحان کنید." + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:553 +msgid "ERROR: Incorrect username or password." +msgstr "خطا: نام کاربری یا رمز عبور اشتباه است." + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:716 +msgid "Tried to log in as" +msgstr "برای ورود سعی کنید" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:745 +msgid "Cleared IP log" +msgstr "گزارش Ø¢ÛŒ Ù¾ÛŒ ها پاک شده" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:753 +msgid "Reset lockout count" +msgstr "ریست کردن تعداد بن شدگان" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:761 +msgid "Cleared current lockouts" +msgstr "پاک کردن تعداد بن شدگان" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:790 +msgid "Options changed" +msgstr "تنظیمات ذخیره شد" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:801 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "نکته: Ùقط در وردپرس 2.7 یا بالاتر" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "به نظر میرسد این سایت از یک پروکسی سرور رسیده است (از Ø¢ÛŒ Ù¾ÛŒ شما: %s)" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:819 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "به نظر میرسد این سایت از یک پروکسی سرور رسیده است (از Ø¢ÛŒ Ù¾ÛŒ شما: %s)" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:827 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "تنظیمات Ùعلی معتبر نیستلطÙا درستی را Ú†Ú© کنید. اطلاعات تکمیلی میتواند در بر داشته باشد در اینجا" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:835 +msgid "Limit Login Attempts Settings" +msgstr "تنظیمات محاÙظت از حملات ورودی" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:836 +msgid "Statistics" +msgstr "وضعیت" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:840 +msgid "Total lockouts" +msgstr "Ú©Ù„ تحریم ها" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:843 +msgid "Reset Counter" +msgstr "ریست کردن شمارنده" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:845 +msgid "No lockouts yet" +msgstr "هم اکنون کاربر تحریمی وجود ندارد" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:850 +msgid "Active lockouts" +msgstr "Ùعال کردن تحریم ها" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:852 +msgid "Restore Lockouts" +msgstr "بازگردانی تحریمی ها" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:853 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "در حال حاظر Ø¢ÛŒ Ù¾ÛŒ شما %d برای ورود به سایت مسدود شده است" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:859 +msgid "Options" +msgstr "تنظیمات" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:863 +msgid "Lockout" +msgstr "تحریم" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:865 +msgid "allowed retries" +msgstr "اجازه retries" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:866 +msgid "minutes lockout" +msgstr "دقیقه تحریم" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:867 +msgid "lockouts increase lockout time to" +msgstr "اÙزایش زمان تحریم برای بن شدگان" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:867 +msgid "hours" +msgstr "ساعت" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:868 +msgid "hours until retries are reset" +msgstr "ریست کردن ساعت بازنشانی ها" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:872 +msgid "Site connection" +msgstr "اتصال سایت" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:878 +msgid "Direct connection" +msgstr "هدایت اتصال" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:883 +msgid "From behind a reversy proxy" +msgstr "از قبل با پروکسی استÙاده شده است" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:889 +msgid "Handle cookie login" +msgstr "به کار گرÙتن Ú©ÙˆÚ©ÛŒ ها برای ورود" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:891 +msgid "Yes" +msgstr "بله" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:891 +msgid "No" +msgstr "خیر" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:896 +msgid "Notify on lockout" +msgstr "آگاهی از تحریم" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:898 +msgid "Log IP" +msgstr "گزارش Ø¢ÛŒ Ù¾ÛŒ" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:899 +msgid "Email to admin after" +msgstr "رایانامه به مدیر" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:899 +msgid "lockouts" +msgstr "تحریم" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:904 +msgid "Change Options" +msgstr "ذخیره تغییرات" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:912 +msgid "Lockout log" +msgstr "گزارش تحریم" + +#: F:\Program +#: Files\AppServ\www\wordpress\wp-content\plugins\limit-login-attempts/limit-login-attempts.php:916 +msgid "Clear Log" +msgstr "پاک کردن گزارش" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-fi.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-fi.mo new file mode 100644 index 0000000..9fba79c Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-fi.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-fi.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-fi.po new file mode 100644 index 0000000..64363c8 --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-fi.po @@ -0,0 +1,270 @@ +msgid "" +msgstr "Project-Id-Version: wp-limit-login-attempts-plugin\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: 2010-08-12 04:22-0400\n" +"Last-Translator: AriK \n" +"Language-Team: Finnish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: crowdin.net\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d tunti" +msgstr[1] "%d tuntia" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuutti(a)" +msgstr[1] "%d minuutti(a)" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] Liikaa epäonnistuneita kirjautumisyrityksiä" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d epäonnistunutta kirjautumisyritystä (%d lukitus(ta)) IP:stä %s" + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "Viimeisin käyttäjä yritti: %s" + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "IP estettiin: %s" + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "VIRHE: Liian monta epäonnistunutta kirjautumisyritystä." + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "Yritä myöhemmin uudelleen." + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "Yritä uudelleen %d tunnin kuluttua." +msgstr[1] "Yritä uudelleen %d tunnin kuluttua." + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "Yritä uudelleen %d minuutin kuluttua." +msgstr[1] "Yritä uudelleen %d minuutin kuluttua." + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "%d yritys jäljellä." +msgstr[1] "%d yritystä jäljellä." + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "VIRHE: Virheellinen käyttäjätunnus tai salasana." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP | Internet-osoite" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "Yritti kirjautua tunnuksella" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d lukitus" +msgstr[1] "%d lukitusta" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "IP loki tyhjennetty" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "Nollaa lukitusten laskuri" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "Lukitusten laskuri nollattu" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "Asetuksia muutettu" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "HUOM: Toimii vain WordPress 2.7 tai uudemmassa" + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Sivustolle näytään tulevan suoraan (IP-osoitteesta: %s)" + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Sivustolle näytään tulevan välityspalvelimen kautta (proxy IP: %s, koneen IP: %s)" + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "Nykyinen asetus saattaa olla virheellinen. Varmista oikeellisuus. Lisätietoja löytyy tästä" + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "Limit Login Attempts asetukset" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "Tilastotietoa" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "Lukituksia yhteensä" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "Nollaa laskuri" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d lukitus edellisen nollauksen jälkeen" +msgstr[1] "%d lukitusta edellisen nollauksen jälkeen" + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "Ei lukituksia" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "Aktiiviset lukitukset" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "Palauta lukitukset" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "IP-osoitteesta %d on tällä hetkellä estetty kirjautuminen" + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "Asetukset" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "Lukitus" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "uudelleenyritystä sallitaan" + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "minuutin lukitus" + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "lukitusta lisää lukitusaikaa" + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "tuntiin" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "tuntia, kunnes uudelleenyritykset nollataan" + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "Sivuston yhteys" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "Suora yhteys" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "Käänteisen välityspalvelimen (proxy) takana" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "Käsittele evästesisäänkirjautuminen" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "Kyllä" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "Ei" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "Ilmoita lukituksesta" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "Kirjaa IP" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "Lähetä sähköposti ylläpitäjälle" + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "lukituksen jälkeen" + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "Muuta asetuksia" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "Lukitusloki" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "Tyhjennä loki" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Limit Login Attempts" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Rajaa sisäänkirjautumisten määrää, mukaalukien evästeillä, per IP-osoite." + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-fr_FR.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-fr_FR.mo new file mode 100644 index 0000000..815a737 Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-fr_FR.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-fr_FR.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-fr_FR.po new file mode 100644 index 0000000..72977b6 --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-fr_FR.po @@ -0,0 +1,277 @@ +# Limit Login Attempts German Translation +# Copyright (C) 2009 Johan Eenfeldt +# This file is distributed under the same license as the Wordpress package. +# Johan Eenfeldt , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.3\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: 2010-04-29 17:54+0100\n" +"Last-Translator: ova \n" +"Language-Team: ova \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: French\n" +"X-Poedit-Country: FRANCE\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d heure" +msgstr[1] "%d heures" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minute" +msgstr[1] "%d minutes" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] Trop de tentatives de connexions ont échouées" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d tentatives d'accès ont échouées (%d bloqué(s)) depuis l'adresse IP: %s" + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "Dernière tentative de l'utilisateur: %s" + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "L'adresse IP a été bloquée pour %s" + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "ERREUR: Trop de tentatives de connexions ont échouées." + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "Merci de retenter de vous connecter plus tard." + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "Merci de retenter de vous connecter dans %d heure." +msgstr[1] "Merci de retenter de vous connecter dans %d heures." + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "Merci de retenter de vous connecter dans %d minute." +msgstr[1] "Merci de retenter de vous connecter dans %d minutes." + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "%d tentative restante." +msgstr[1] "%d tentatives restantes." + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "ERREUR: Nom d'utilisateur ou mot de passe incorrect." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP|Adresse Internet" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "Tentez de vous connecter en tant que" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d blocage" +msgstr[1] "%d blocages" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "Journal d'IP effacé" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "Réinitialiser le nombre de blocage" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "Effacer les blocages actuels" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "Options modifiées" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "NOTE: Cette extension ne fonctionne qu'avec la version 2.7 de Wordpress 2.7 ou un version supérieure" + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Il semble que le site soit directement accessible (depuis votre IP: %s)" + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Il semble que le site soit accessible via un serveur proxy (IP du proxy: %s, votre IP: %s)" + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "Le réglage actuel semble être invalide. Merci de vous assurer qu'il est correct. Pour plus d'informations, cliquez ici" + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "Paramètres des tentatives d'accès" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "Statistiques" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "Blocages totaux" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "Réinitialiser le compteur" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d blocage depuis la dernière réinitialisation." +msgstr[1] "%d blocages depuis la dernière réinitialisation." + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "Aucun blocage" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "Blocages actifs" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "Restaurer les blocages" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "L'adresse IP %d est actuellement bloquée pour se connecter" + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "Options" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "Blocage" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "tentatives autorisées" + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "minutes de blocage" + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "blocages augmentent le temps de blocage à" + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "heures" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "heures jusqu'à ce que les tentatives soient réinitialisées" + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "Connexion" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "Connexion directe" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "Derrière un serveur proxy" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "Gérer les cookies de connexion" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "Oui" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "Non" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "Notifier lors d'un blocage" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "Enregistrer l'adresse IP" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "Envoyer un email à l'administrateur après" + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "blocages" + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "Modifier options" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "Journal de blocage" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "Effacer le journal" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Limiter les tentatives de connexion" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Limiter le taux de tentatives de connexion, y compris par voie de cookies, pour chaque adresse IP." + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-hu_HU.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-hu_HU.mo new file mode 100644 index 0000000..4c38d6f Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-hu_HU.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-hu_HU.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-hu_HU.po new file mode 100644 index 0000000..9602d3c --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-hu_HU.po @@ -0,0 +1,277 @@ +# Limit Login Attempts German Translation +# Copyright (C) 2009 Johan Eenfeldt +# This file is distributed under the same license as the Wordpress package. +# Johan Eenfeldt , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.3\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: 2010-01-26 16:08+0100\n" +"Last-Translator: Vereskuti Balint \n" +"Language-Team: Hungarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Hungarian\n" +"X-Poedit-Country: HUNGARY\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d óra" +msgstr[1] "%d óra" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d perc" +msgstr[1] "%d perc" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] Túl sok hibás bejelentkezési kísérlet" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d hibás bejelentkezési kísérlet (%d kizárás) %s IP-címrÅ‘l" + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "Az utolsó helyes bejelentkezés %s felhasználónévvel." + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "Az IP-cím %s idÅ‘re kizárásra került." + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "HIBA: Túl sok hibás bejeletkezési kísérlet." + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "Próbáljs meg késÅ‘bb." + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "Próbálja meg %d óra múlva." +msgstr[1] "Próbálja meg %d óra múlva." + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "Próbálja meg %d perc múlva." +msgstr[1] "Próbálja meg %d perc múlva." + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "Még %d bejelentkezési lehetÅ‘ség maradt." +msgstr[1] "Még %d bejelentkezési lehetÅ‘ség maradt." + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "HIBA: Érvénytelen felhasználónév vagy jelszó." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "Bejelentkezés mint" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d kizárás" +msgstr[1] "%d kizárás" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "IP log törölve" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "Kizárási számláló nullázása" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "A kizárások feloldásra kerültek" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "A beállítások megváltoztatásra kerültek" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "Figyelmeztetés: Csak a Wordpress 2.7, és annál újabb verziókkal működik!" + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Az oldal direkt módon került elérésre (%s IP-címrÅ‘l)" + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Az oldal proxy-n keresztül került elérésre (proxy IP: %s, saját IP: %s)" + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "Helytelenek az aktuális beállítások. További információk itt érhetÅ‘k el." + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "A Limit Login Attempts beállításai" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "Statisztikák" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "Eddigi kizárások" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "Számláló nullázása" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d kizárás az elÅ‘zÅ‘ nullázás óta" +msgstr[1] "%d kizárás az elÅ‘zÅ‘ nullázás óta" + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "Jelenleg nincs aktív kizárás" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "Aktív kizárás(ok)" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "Kizárások feloldása" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "%d IP, melyrÅ‘l bejelentkezni próbál jelenleg kizárva!" + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "Beállítások" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "Kizárás" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "engedélyezett bejelentkezési lehetÅ‘ség" + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "perc kizárás az engedélyezett lehetÅ‘ségek elérése után" + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "kizárás ennyivel emeli meg a teljes kizárási idÅ‘t: " + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "óra" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "óra teljen el a hibás bejelentkezések visszaállításáig" + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "Oldal elérése" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "direkt-elérés" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "elérés Reverse Proxy Serveren keresztül" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "Cookie-n keresztüli bejelentkezés" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "Igen" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "Nem" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "Értesítés kizárásról" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "IP logok mentése" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "Email az adminisztrátornak " + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "darab kizárás után" + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "Beállítások mentése" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "Kizárási napló" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "Log törlése" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Limit Login Attempts" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Bejelentkezések felügyelete - akár cookie-kon kereszütl minden IP-re." + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-nb_NO.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-nb_NO.mo new file mode 100644 index 0000000..6f175aa Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-nb_NO.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-nb_NO.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-nb_NO.po new file mode 100644 index 0000000..59841f6 --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-nb_NO.po @@ -0,0 +1,277 @@ +# Limit Login Attempts Swedish Translation +# Copyright (C) 2009 Johan Eenfeldt +# This file is distributed under the same license as the Wordpress package. +# Johan Eenfeldt , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.2\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: 2009-07-15 13:14+0100\n" +"Last-Translator: Rune G \n" +"Language-Team: DigitalHverdag \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Norwegian Bokmal\n" +"X-Poedit-Country: NORWAY\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d time" +msgstr[1] "%d timer" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minutt" +msgstr[1] "%d minutter" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] For mange pÃ¥loggingsforsøk" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d pÃ¥loggingsforsøk (stoppet %d gang(er)) fra IP: %s" + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "Siste brukernavn som feilet : %s" + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "IP blokkert i %s" + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "Feil: For mange pÃ¥loggingsforsøk." + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "Prøv igjen senere" + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "Prøv igjen om %d time." +msgstr[1] "Prøv igjen om %d timer." + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "Prøv igjen om %d minutt." +msgstr[1] "Prøv igjen om %d minutter." + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "%d forsøk gjenstÃ¥r." +msgstr[1] "%d forsøk gjenstÃ¥r." + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "Feil: Feil brukernavn eller passord." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "Prøvde Ã¥ logge inn som" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d blokkering" +msgstr[1] "%d blokkeringer" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "Nullstill IP loggen" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "Nullstill antall blokkeringer" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "Fjernet gjeldende blokkeringer" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "Innstillinger endret" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "NB: Du mÃ¥ bruker WordPress 2.7 eller nyere" + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Det ser ut som om du kan nÃ¥ bloggen direkte (fra din IP: %s)" + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Det ser ut som om bloggen din er bak en proxy server (proxy IP: %s, din IP: %s)" + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "Dine innstillinger kan være feil. Sjekk at de er korrekte. Mer informasjon her" + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "Limit Login Attempts Innstillinger" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "Statistikk" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "Totalt antall blokkeringer" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "Nullstill teller" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d blokkering siden siste nullstilling" +msgstr[1] "%d blokkeringer siden siste nullstilling" + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "Ingen blokkeringer enda" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "Aktive blokkeringer" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "Fjern blokkeringer" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "%d IP stÃ¥r pÃ¥ blokkeringslisten" + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "Innstillinger" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "Blokkering" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "Antall pÃ¥loggingsforsøk" + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "minutters blokkering" + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "Blokkeringer øker blokkeringstiden til" + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "timer" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "timer til nullstilling" + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "Blogg forbindelse" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "Direkte forbindelse" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "Bak en omvendt proxy" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "Behandle pÃ¥logginger med cookies" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "Ja" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "Nei" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "Gi melding om blokkering" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "Logg IP" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "Send epost til admin etter" + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "blokkeringer" + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "Endre innstillinger" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "Blokkerings logg" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "Nullstill loggen" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Begrense pÃ¥loggingsforsøk" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Begrenser antall pÃ¥loggingsforsøk, inkludert forsøk med cookies, for alle IPer" + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-nl_NL.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-nl_NL.mo new file mode 100644 index 0000000..6cfcc68 Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-nl_NL.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-nl_NL.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-nl_NL.po new file mode 100644 index 0000000..07ad4ee --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-nl_NL.po @@ -0,0 +1,277 @@ +# Limit Login Attempts German Translation +# Copyright (C) 2009 Johan Eenfeldt +# This file is distributed under the same license as the Wordpress package. +# Johan Eenfeldt , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.3\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: 2010-03-19 13:52+0100\n" +"Last-Translator: BjornW \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d uur" +msgstr[1] "%d uren" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minute" +msgstr[1] "%d minuten" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] Teveel gefaalde login pogingen" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d gefaalde login pogingen (%d blokkades) van IP: %s" + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "Laatste inlogpoging werd gedaan met de gebruikersnaam: %s" + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "IP was geblokkeerd voor %s." + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "FOUT: Teveel gefaalde inlogpogingen." + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "Probeer het later nogmaals" + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] ".Probeer het over %d uur nogmaals." +msgstr[1] "Probeer het over %d uren nogmaals." + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "Probeer het over %d minuut nogmaals" +msgstr[1] "Probeer het over %d minuten nogmaals." + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "Nog %d loginpoging mogelijk." +msgstr[1] "Nog %d loginpogingen mogelijk." + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "FOUT: Ongeldige gebruikersnaam of wachtwoord." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP|Internet adres" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "Inlogpoging als" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d Blokkade" +msgstr[1] "%d Blokkades" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "IP log is gewist" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "Reset blokkades teller" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "Actieve blokkades zijn gewist" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "Instellingen zijn gewijzigd" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "NB: Werkt alleen vanaf Wordpress 2.7 of hogere versie nummers" + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Het lijkt erop dat de site direct te bereiken is (van uw IP-adres: %s)" + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Het lijkt erop dat de site te bereiken is via een proxy server, (Proxy Server IP adres: %s, Uw IP-adres: %s)" + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "De huidige instelling lijkt ongeldig te zijn. Pas deze zo aan dat deze wel geldig is, informatie over hoe u dit kunt doen kunt u vinden in de FAQ (in het Engels)." + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "Limit Login Attempts Instellingen" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "Statistieken" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "Totaal aantal blokkades" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "Teller resetten" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d Blokkade sinds de laatste reset" +msgstr[1] "%d Blokkades sinds de laatste reset" + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "Nog geen blokkades actief" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "Actieve blokkades" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "Blokkades opheffen" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "%d IP is op dit moment voor inloggen geblokkeerd" + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "Instellingen" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "Blokkade" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "mogelijke inlogpogingen" + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "Aantal minuten geblokkeerd na een gefaalde inlogpoging" + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "Blokkades verhogen de blokkade tijd naar" + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "uren" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "aantal uren voordat het aantal ondernomen pogingen wordt gereset" + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "Verbinding naar deze website" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "Directe verbinding" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "Via een reverse-proxy" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "Omgaan met cookie loginverzoeken" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "Ja" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "Nee" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "Waarschuwen in het geval van een blokkade" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "Log IP adres" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "Email de beheerder na" + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "Blokkades" + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "Instellingen aanpassen" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "Log van blokkades" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "Log wissen" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Limit Login Attempts" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Beperkt het aantal inlogpogingen, inclusief bij het gebruik van cookies, voor elk IP adres." + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-pt_BR.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-pt_BR.mo new file mode 100644 index 0000000..5d45639 Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-pt_BR.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-pt_BR.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-pt_BR.po new file mode 100644 index 0000000..db7642b --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-pt_BR.po @@ -0,0 +1,278 @@ +# Limit Login Attempts German Translation +# Copyright (C) 2009 Johan Eenfeldt +# This file is distributed under the same license as the Wordpress package. +# Johan Eenfeldt , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.5.1\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: 2010-10-08 15:55-0300\n" +"Last-Translator: Luciano Passuello \n" +"Language-Team: Luciano Passuello \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Portuguese\n" +"X-Poedit-Country: BRAZIL\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d hora" +msgstr[1] "%d Stunden" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuto" +msgstr[1] "%d minutos" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] Muitas tentativas de login mal-sucedidas" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d tentativas de login mal-sucedidas (%d bloqueio(s)) do IP: %s" + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "Último usuário tentou: %s" + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "IP foi bloquado para %s." + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "ERRO: Muitas tentativas de login mal-sucedidas." + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "Por favor tente novamente mais tarde." + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "Por favor tente novamente em %d hora." +msgstr[1] "Por favor tente novamente em %d horas." + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "Por favor tente novamente em %d minuto." +msgstr[1] "Por favor tente novamente em %d minutos." + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "%d tentativa restante." +msgstr[1] "%d tentativas restantes." + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "ERRO: Nome ou senha inválidos." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "Tentou entrar como" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d bloqueio" +msgstr[1] "%d bloqueios" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "Limpou o log de IPs" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "Zerar contagem de bloqueios" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "Limpou bloqueios correntes" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "Opções alteradas" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "NOTA: Funciona apenas no Wordpress 2.7 ou superior" + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Aparentemente o site é acessado diretamente (de seu IP: %s)" + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Aparentemente o site é acessado através de um servidor proxy (IP do servidor proxy: %s, seu IP: %s)" + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "Configurações atuais parecem ser inválidas. Por favor certifique-se que estão corretas. Informações adicionais podem ser encontradas aqui" + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "Configurações do Limit Login Attempts" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "Estatísticas" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "Total de bloqueios" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "Reiniciar contador" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d bloqueio desde que o contador foi reiniciado pela última vez" +msgstr[1] "%d bloqueios desde que o contador foi reiniciado pela última vez" + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "Sem bloqueios ainda" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "Bloqueios ativos" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "Restaurar bloqueios" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "%d IP está atualmente bloqueado de novas tentativas de login" + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "Opções" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "Bloqueio" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "tentativas permitidas" + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "minutos de bloqueio" + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "bloqueios aumentam o tempo de bloqueio para" + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "horas" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "horas até o bloqueio expirar" + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "Conexão ao site" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "Conexão direta" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "Através de um proxy reverso" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "Monitorar o cookie de login" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "Sim" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "Não" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "Notificar em bloqueios" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "Registrar IP" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "Mandar email para o administrador após" + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "bloqueios" + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "Modificar Opções" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "Registros de bloqueios" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "Excluir registros" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Limit Login Attempts" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Limita a frequência de tentativas de logins, incluindo cookies de login, para cada IP." + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-ro_RO.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-ro_RO.mo new file mode 100644 index 0000000..a37030d Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-ro_RO.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-ro_RO.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-ro_RO.po new file mode 100644 index 0000000..057ac07 --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-ro_RO.po @@ -0,0 +1,277 @@ +# Limit Login Attempts German Translation +# Copyright (C) 2009 Johan Eenfeldt +# This file is distributed under the same license as the Wordpress package. +# Johan Eenfeldt , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.3\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: 2009-03-05 00:16+0200\n" +"Last-Translator: Robert Tudor \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d ora" +msgstr[1] "%d ore" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d Minut" +msgstr[1] "%d Minute" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] Prea multe incercari nereusite" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d incercari de logare nereusite (%d inchidere(i)) de la IP: %s" + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "Ultimul incercare: %s" + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "IP-ul a fost blocat pentru %s." + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "EROARE: Prea multe incercari nereusite." + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "Va rugam incercati mai tarziu." + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "Va rugam incercati in %d ora." +msgstr[1] "Va rugam incercati in %d ore" + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "Va rugam incercati in %d Minut." +msgstr[1] "Va rugam incercati in %d Minute." + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "incercare ramasa %d" +msgstr[1] "incercari ramasa %d" + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "EROARE: Nume de utilizator sau parola incorecta." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "A incercat sa se logheze ca" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d inchidere" +msgstr[1] "%d inchideri" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "Am curatat logul cu IP" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "Reseteaza numaratoarea inchiderilor" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "Am curatat numaratoarea inchiderilor" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "Optiuni schimbate" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "NOTA: Functioneaza doar in Wordpress 2.7 sau mai nou." + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Se pare ca site-ul este accesat direct (de la IP-ul dvs: %s)" + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Se pare ca site-ul este accesat printr-un adresa PROXY (IP Proxy: %s, IP dvs.: %s)" + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "Se pare ca setarile curente sunt invalide. Verificati corectitudinea lor. Mai multe informatii pot fi gasite aici" + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "Setari Limitari Incercari Access" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "Statistici" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "Total inchideri" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "Reseteaza numaratoarea" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d inchidere de la ultima resetare" +msgstr[1] "%d inchideri de la ultima resetare" + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "Nici o inchidere pana acum" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "Inchideri active" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "Restaureaza inchideri" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "IP-ul %d are momentan accesul de intrare blocat." + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "Optiuni" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "Inchidere" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "incercari permise" + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "inchidere in minute" + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "inchiderile maresc timpul in" + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "ore" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "ore pana cand incercarile sunt resetate" + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "Conexie site" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "Conexie directa" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "In spatele unui proxy" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "Logare tip cookie" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "Da" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "Nu" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "Notifica-ma de inchidere" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "Logheaza IP" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "Notifica adminul dupa" + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "inchideri" + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "Schimba optiunile" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "Log de inchidere" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "Sterge log" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Limiteaza incercarile de logare" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Limiteaza ratia incercarilor de logare, incluzand cookie, pentru fiecare IP." + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-ru_RU.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-ru_RU.mo new file mode 100644 index 0000000..51b0f88 Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-ru_RU.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-ru_RU.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-ru_RU.po new file mode 100644 index 0000000..7fb3317 --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-ru_RU.po @@ -0,0 +1,277 @@ +# Limit Login Attempts German Translation +# Copyright (C) 2009 Johan Eenfeldt +# This file is distributed under the same license as the Wordpress package. +# Johan Eenfeldt , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.3\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: 2009-08-03 15:55+0200\n" +"Last-Translator: Studio-XL.com \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Catalan\n" +"X-Poedit-Country: SPAIN\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d чаÑ" +msgstr[1] "%d чаÑов" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d минута" +msgstr[1] "%d минут" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] Превышен макÑимальный лимит попыток авторизации" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d неудачных попыток авторизации (%d изолÑциÑ(ий)) Ñ Ð°Ð´Ñ€ÐµÑа IP: %s" + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "ПоÑледнÑÑ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° пользователÑ: %s" + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "IP заблокирован Ð´Ð»Ñ %s" + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "Ð’ÐИМÐÐИЕ: превышен лимит попыток авторизации." + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "ПожалуйÑта попробуйте позже." + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "ПожалуйÑта попробуйте через %d чаÑ." +msgstr[1] " ПожалуйÑта попробуйте через %d чаÑов." + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "ПожалуйÑта попробуйте через %d минуту." +msgstr[1] "ПожалуйÑта попробуйте через %d минут." + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "%d intent restant." +msgstr[1] "ОÑталоÑÑŒ %d попыток." + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "ОШИБКÐ: Ðеверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ пароль." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP|Интернет-адреÑ" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "ПыталÑÑ Ð²Ð¾Ð¹Ñ‚Ð¸ как" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d изолÑциÑ" +msgstr[1] "%d изолÑций" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "ЧиÑтый IP лог" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "Ð¡Ð±Ñ€Ð¾Ñ Ñчетчика изолÑций" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "СущеÑтвующие изолÑции очищены" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "Опции изменены" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "Внимание: Работает только в верÑии Wordpress 2.7 или выше" + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Сайт доÑтупен напрÑмую (Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ IP: %s)" + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Сайт доÑупен через прокÑи-Ñервер (proxy IP: %s, ваш IP: %s)" + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "Данные наÑтройки недейÑтвительны. ПожалуйÑта проверьте их. Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð´Ð¾Ñтупна здеÑÑŒ" + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "Ограничение попыток авторизации" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "СтатиÑтика" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "Ð’Ñего изолÑций" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "Ð¡Ð±Ñ€Ð¾Ñ Ñчетчика" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d изолÑÑ†Ð¸Ñ Ñ Ð¿Ð¾Ñледнего ÑброÑа Ñчетчика." +msgstr[1] "%d изолÑций Ñ Ð¿Ð¾Ñледнего ÑброÑа Ñчетчика." + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "Пока без изолÑций" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "Ðктивные изолÑции" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "ВоÑÑтановить изолÑции" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "IP %d в данный момент заблокирован от попыток авторизации" + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "Опции" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "ИзолÑциÑ" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "разрешено дополнительных попыток" + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "изолÑÑ†Ð¸Ñ Ð² минутах" + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "изолÑций повыÑÑÑ‚ Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð·Ð¾Ð»Ñции до" + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "чаÑов" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "чаÑов до ÑброÑа количеÑтва попыток" + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "Подключение к Ñайту" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "ПрÑмое подключение" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "За прокÑи (reversy proxy)" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "Обрабатывать ÐºÑƒÐºÐ¸Ñ Ð»Ð¾Ð³Ð¸Ð½Ð°" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "Да" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "Ðет" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "Сообщать об изолÑциÑÑ…" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "ЗапиÑывать IP" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "ОтправлÑÑ‚ÑŒ имейл админу поÑле" + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "изолÑций" + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "Изменить наÑтройки" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "Лог изолÑций" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "ОчиÑтить лог" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Ограничение попыток авторизации" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Лимит количеÑтва попыток авторизации, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÑƒ куки, по IP." + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-sv_SE.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-sv_SE.mo new file mode 100644 index 0000000..fa77728 Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-sv_SE.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-sv_SE.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-sv_SE.po new file mode 100644 index 0000000..faaf1d5 --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-sv_SE.po @@ -0,0 +1,270 @@ +# Limit Login Attempts Swedish Translation +# Copyright (C) 2009 Johan Eenfeldt +# This file is distributed under the same license as the Wordpress package. +# Johan Eenfeldt , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.2\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2012-05-20 10:43:32+00:00\n" +"PO-Revision-Date: 2012-05-20 12:51+0100\n" +"Last-Translator: Johan Eenfeldt \n" +"Language-Team: Swedish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: limit-login-attempts.php:522 +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d timme" +msgstr[1] "%d timmar" + +#: limit-login-attempts.php:528 +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minut" +msgstr[1] "%d minuter" + +#: limit-login-attempts.php:534 +msgid "[%s] Failed login attempts from whitelisted IP" +msgstr "[%s] För mÃ¥nga misslyckade inloggningar frÃ¥n IP i vitlista" + +#: limit-login-attempts.php:538 +msgid "[%s] Too many failed login attempts" +msgstr "[%s] För mÃ¥nga misslyckade inloggningar" + +#: limit-login-attempts.php:543 +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d misslyckade inloggningar (blockad %d gÃ¥ng(er)) frÃ¥n IP: %s" + +#: limit-login-attempts.php:547 +msgid "Last user attempted: %s" +msgstr "Misslyckades senast med användare : %s" + +#: limit-login-attempts.php:551 +msgid "IP was NOT blocked because of external whitelist." +msgstr "IP blockerades INTE pÃ¥ grund av extern vitlista." + +#: limit-login-attempts.php:553 +msgid "IP was blocked for %s" +msgstr "IP blockerades i %s" + +#: limit-login-attempts.php:615 +msgid "ERROR: Too many failed login attempts." +msgstr "Fel: För många misslyckade försök." + +#: limit-login-attempts.php:619 +msgid "Please try again later." +msgstr "Försök igen senare." + +#: limit-login-attempts.php:626 +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "Försök igen om %d timme." +msgstr[1] "Försök igen om %d timmar." + +#: limit-login-attempts.php:628 +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "Försök igen om %d minut." +msgstr[1] "Försök igen om %d minuter." + +#: limit-login-attempts.php:657 +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "%d försök återstår." +msgstr[1] "%d försök återstår." + +#: limit-login-attempts.php:728 +msgid "ERROR: Incorrect username or password." +msgstr "Fel: Felaktigt användarnamn eller lösenord." + +#: limit-login-attempts.php:896 +msgctxt "Internet address" +msgid "IP" +msgstr "IP" + +#: limit-login-attempts.php:896 +msgid "Tried to log in as" +msgstr "Försökte logga in som" + +#: limit-login-attempts.php:901 +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d blockering" +msgstr[1] "%d blockeringar" + +#: limit-login-attempts.php:930 +msgid "Cleared IP log" +msgstr "Rensade IP loggen" + +#: limit-login-attempts.php:938 +msgid "Reset lockout count" +msgstr "Nollställde räknaren för blockeringar" + +#: limit-login-attempts.php:946 +msgid "Cleared current lockouts" +msgstr "Tog bort aktuella blockeringar" + +#: limit-login-attempts.php:975 +msgid "Options changed" +msgstr "Inställningar ändrade" + +#: limit-login-attempts.php:993 +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Sajten tycks vara direktansluten (frÃ¥n din IP: %s)" + +#: limit-login-attempts.php:995 +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Sajten tycks ansluta genom en proxy server (proxy IP: %s, din IP: %s)" + +#: limit-login-attempts.php:1003 +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "Nuvarande inställningar kan vara fel. Säkerställ att de är korrekta. Mer information kan hittas här" + +#: limit-login-attempts.php:1011 +msgid "Limit Login Attempts Settings" +msgstr "Limit Login Attempts Inställningar" + +#: limit-login-attempts.php:1012 +msgid "Statistics" +msgstr "Statistik" + +#: limit-login-attempts.php:1017 +msgid "Total lockouts" +msgstr "Antal blockeringar" + +#: limit-login-attempts.php:1020 +msgid "Reset Counter" +msgstr "Nollställ räknare" + +#: limit-login-attempts.php:1021 +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "%d blockering sedan räknaren nollställdes" +msgstr[1] "%d blockeringar sedan räknaren nollställdes" + +#: limit-login-attempts.php:1022 +msgid "No lockouts yet" +msgstr "Inga blockeringar har skett ännu" + +#: limit-login-attempts.php:1027 +msgid "Active lockouts" +msgstr "Aktiva blockeringar" + +#: limit-login-attempts.php:1029 +msgid "Restore Lockouts" +msgstr "Ta bort blockeringar" + +#: limit-login-attempts.php:1030 +msgid "%d IP is currently blocked from trying to log in" +msgstr "%d IP är för närvarande blockerade från att logga in" + +#: limit-login-attempts.php:1036 +msgid "Options" +msgstr "Inställningar" + +#: limit-login-attempts.php:1041 +msgid "Lockout" +msgstr "Blockering" + +#: limit-login-attempts.php:1043 +msgid "allowed retries" +msgstr "tillåtna misslyckanden" + +#: limit-login-attempts.php:1044 +msgid "minutes lockout" +msgstr "minuters blockering" + +#: limit-login-attempts.php:1045 +msgid "lockouts increase lockout time to" +msgstr "blockeringar ökar tiden till" + +#: limit-login-attempts.php:1045 +msgid "hours" +msgstr "timmar" + +#: limit-login-attempts.php:1046 +msgid "hours until retries are reset" +msgstr "timmar tills misslyckanden nollställs" + +#: limit-login-attempts.php:1050 +msgid "Site connection" +msgstr "Sajten ansluter" + +#: limit-login-attempts.php:1056 +msgid "Direct connection" +msgstr "Direktansluten" + +#: limit-login-attempts.php:1061 +msgid "From behind a reversy proxy" +msgstr "Bakom en reverse proxy" + +#: limit-login-attempts.php:1067 +msgid "Handle cookie login" +msgstr "Hantera inloggning med kakor" + +#: limit-login-attempts.php:1069 +msgid "Yes" +msgstr "Ja" + +#: limit-login-attempts.php:1069 +msgid "No" +msgstr "Nej" + +#: limit-login-attempts.php:1073 +msgid "Notify on lockout" +msgstr "Notifiera om blockering" + +#: limit-login-attempts.php:1075 +msgid "Log IP" +msgstr "Logga IP" + +#: limit-login-attempts.php:1076 +msgid "Email to admin after" +msgstr "E-post till administratör efter" + +#: limit-login-attempts.php:1076 +msgid "lockouts" +msgstr "blockeringar" + +#: limit-login-attempts.php:1081 +msgid "Change Options" +msgstr "Ändra Inställningar" + +#: limit-login-attempts.php:1089 +msgid "Lockout log" +msgstr "Log över blockeringar" + +#: limit-login-attempts.php:1094 +msgid "Clear Log" +msgstr "Rensa Log" + +#. Plugin Name of the plugin/theme +msgid "Limit Login Attempts" +msgstr "Limit Login Attempts" + +#. Plugin URI of the plugin/theme +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of the plugin/theme +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Limit rate of login attempts, including by way of cookies, for each IP." + +#. Author of the plugin/theme +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of the plugin/theme +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + +#~ msgid "IP|Internet address" +#~ msgstr "IP" +#~ msgid "NOTE: Only works in Wordpress 2.7 or later" +#~ msgstr "OBS: Fungerar endast i WordPress 2.7 eller senare" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-tr_TR.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-tr_TR.mo new file mode 100644 index 0000000..0e54e8a Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-tr_TR.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-tr_TR.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-tr_TR.po new file mode 100644 index 0000000..c335f5e --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-tr_TR.po @@ -0,0 +1,277 @@ +# Limit Login Attempts German Translation +# Copyright (C) 2009 Johan Eenfeldt +# This file is distributed under the same license as the Wordpress package. +# Johan Eenfeldt , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: limit-login-attempts 1.3\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: 2009-05-01 19:49+0200\n" +"Last-Translator: canarkadas \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d Saat" +msgstr[1] "%d Saat" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d Dakika" +msgstr[1] "%d Dakika" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] Hatalı giriÅŸ denemeleri bilgisi" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "%d baÅŸarısız giriÅŸ denemesi. Aynı IP adresi ile yapılan deneme: %s " + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "Denemede kullanılan isim: %s" + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "%s no'lu IP engellendi" + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "HATA: Çok fazla sayıda baÅŸarısız giriÅŸ denemesi." + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "Lütfen daha sonra tekrar deneyin." + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "Lütfen %d saat sonra tekrar deneyin." +msgstr[1] "Lütfen %d saat sonra tekrar deneyin." + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "Lütfen %d dakika sonra tekrar deneyin." +msgstr[1] "Lütfen %d dakika sonra tekrar deneyin." + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "%d kez daha giriÅŸ yapmayı deneyebilirsiniz." +msgstr[1] "%d kez daha giriÅŸ yapmayı deneyebilirsiniz." + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "HATA: Yanlış kullanıcı adı veya ÅŸifre." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP No" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "Ä°sim ve deneme sayısı" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d giriÅŸ denemesi" +msgstr[1] "%d giriÅŸ denemesi" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "IP denemesi yapanların bilgileri silindi" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "GiriÅŸ denemeleri sayacı sıfırlandı" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "GiriÅŸ denemeleri silindi" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "Seçenekler deÄŸiÅŸtirildi" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "NOT: Eklenti sadece Wordpress 2.7 ve daha sonrası ile çalışır." + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "Sizin IP adresiniz: %s (bu IP ile site gezilebilir)." + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "Proxy sunucusu kullanıyorsunuz (proxy IP: %s) %s IP adresinizle ile site gezilebilir." + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "Seçenekler geçersiz. Girdilerin doÄŸru olduÄŸundan emin olun, daha fazla bilgi için bakınız." + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "Limit Login Attempts Ayarlar" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "Ä°statistik" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "Tüm giriÅŸ denemeleri" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "Sayacı Sıfırla" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "En son sıfırlamadan sonra gerçekleÅŸen giriÅŸ denemesi sayısı %d " +msgstr[1] "En son sıfırlamadan sonra gerçekleÅŸen giriÅŸ denemesi sayısı %d " + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "Henüz giriÅŸ denemesi yok" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "Aktif giriÅŸ denemesi" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "GiriÅŸ denemelerini düzenleyin" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "%d no'lu IP halen engelleniyor" + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "Tercihler" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "GiriÅŸ denemeleri" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "Müsaade edilen giriÅŸ denemesi sayınızı yazınız." + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "Dakika sonra yeniden giriÅŸ denemesi yapılabilsin." + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "Defadan fazla giriÅŸ denemesi yapılamasın." + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "(Saat içinde)" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "Sıfırlamaya kadar yapılabilecek giriÅŸ denemesi sayınızı yazınız." + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "Site baÄŸlantınız" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "Direk baÄŸlantı" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "Bir proxy (vekil, aracı sunucu) arkasından" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "Çerezler kullanılarak giriÅŸ yapılabilsin" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "Evet" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "Hayır" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "GiriÅŸ denemeleri bildirilsin (Yazacağınız sayı giriÅŸ denemesini deÄŸil, her IP no'su adına ayrı bir kullanıcıyı ifade eder)" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "IP kayıtları dahil" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "Site yöneticisi" + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "giriÅŸ denemesi olduÄŸunda e-posta ile bilgilendirilsin." + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "KAYDET" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "GiriÅŸ denemesi kayıtları" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "Kayıtları Sil" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Limit Login Attempts" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "Her IP için giriÅŸ deneme sayısı (çerezler dahil)." + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-zh_TW.mo b/wp-content/plugins/limit-login-attempts/limit-login-attempts-zh_TW.mo new file mode 100644 index 0000000..dde316b Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/limit-login-attempts-zh_TW.mo differ diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts-zh_TW.po b/wp-content/plugins/limit-login-attempts/limit-login-attempts-zh_TW.po new file mode 100644 index 0000000..25bc082 --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts-zh_TW.po @@ -0,0 +1,277 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Johan Eenfeldt +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: Limit Login Attempts v1.5\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2009-01-28 17:17+0000\n" +"PO-Revision-Date: 2010-07-23 03:16+0800\n" +"Last-Translator: Denny Huang \n" +"Language-Team: å°å¼Ÿçš„å¤§ç™¼ç¾ \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +"X-Poedit-Language: Chinese\n" +"X-Poedit-Country: TAIWAN\n" + +#: limit-login-attempts.php:372 +#, php-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d å°æ™‚" +msgstr[1] "%d å°æ™‚" + +#: limit-login-attempts.php:378 +#, php-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d 分é˜" +msgstr[1] "%d 分é˜" + +#: limit-login-attempts.php:381 +#, php-format +msgid "[%s] Too many failed login attempts" +msgstr "[%s] 嘗試éŽå¤šæ¬¡çš„失敗登入" + +#: limit-login-attempts.php:383 +#, php-format +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "登入失敗嘗試次數: %d (%d 鎖定) 來自 IP: %s" + +#: limit-login-attempts.php:387 +#, php-format +msgid "Last user attempted: %s" +msgstr "最後一ä½ä½¿ç”¨è€…嘗試: %s" + +#: limit-login-attempts.php:390 +#, php-format +msgid "IP was blocked for %s" +msgstr "IP已被å°éŽ–。 原因: %s" + +#: limit-login-attempts.php:445 +msgid "ERROR: Too many failed login attempts." +msgstr "錯誤: 嘗試éŽå¤šæ¬¡å¤±æ•—登入" + +#: limit-login-attempts.php:449 +msgid "Please try again later." +msgstr "è«‹ç¨å€™å†è©¦." + +#: limit-login-attempts.php:456 +#, php-format +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "請在%då°æ™‚後å†é‡è©¦ã€‚" +msgstr[1] "請在%då°æ™‚後å†é‡è©¦ã€‚" + +#: limit-login-attempts.php:458 +#, php-format +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "請在%d分é˜å¾Œå†é‡è©¦ã€‚" +msgstr[1] "請在%d分é˜å¾Œå†é‡è©¦ã€‚" + +#: limit-login-attempts.php:487 +#, php-format +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "嘗試次數剩%d次." +msgstr[1] "嘗試次數剩%d次." + +#: limit-login-attempts.php:551 +msgid "ERROR: Incorrect username or password." +msgstr "錯誤: 帳號或密碼錯誤." + +#: limit-login-attempts.php:714 +msgid "IP|Internet address" +msgstr "IP|網路ä½å€" + +#: limit-login-attempts.php:714 +msgid "Tried to log in as" +msgstr "嘗試登入為" + +#: limit-login-attempts.php:719 +#, php-format +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "%d 次鎖定" +msgstr[1] "%d 次鎖定" + +#: limit-login-attempts.php:743 +msgid "Cleared IP log" +msgstr "清除IP紀錄" + +#: limit-login-attempts.php:751 +msgid "Reset lockout count" +msgstr "é‡è¨­éŽ–定計數器" + +#: limit-login-attempts.php:759 +msgid "Cleared current lockouts" +msgstr "ç›®å‰éŽ–定次數已é‡è¨­" + +#: limit-login-attempts.php:788 +msgid "Options changed" +msgstr "設定已儲存" + +#: limit-login-attempts.php:799 +msgid "NOTE: Only works in Wordpress 2.7 or later" +msgstr "注æ„: åªåœ¨ Wordpress 2.7 或以後版本有效" + +#: limit-login-attempts.php:815 +#, php-format +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "網站與您的電腦(IP: %s)似乎是直接連線" + +#: limit-login-attempts.php:817 +#, php-format +msgid "It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)" +msgstr "網站似乎是é€éŽä»£ç†ä¼ºæœå™¨(IP:%s)å†èˆ‡æ‚¨çš„電腦(IP: %s)連線" + +#: limit-login-attempts.php:825 +#, php-format +msgid "Current setting appears to be invalid. Please make sure it is correct. Further information can be found here" +msgstr "ç›®å‰è¨­å®šæœ‰äº›å•é¡Œ. è«‹å†æ¬¡æª¢æŸ¥. 更多資訊å¯ä»¥åœ¨ 這邊找到" + +#: limit-login-attempts.php:833 +msgid "Limit Login Attempts Settings" +msgstr "Limit Login Attempts 設定" + +#: limit-login-attempts.php:834 +msgid "Statistics" +msgstr "數據" + +#: limit-login-attempts.php:838 +msgid "Total lockouts" +msgstr "總共鎖定次數" + +#: limit-login-attempts.php:841 +msgid "Reset Counter" +msgstr "é‡è¨­è¨ˆæ•¸å™¨" + +#: limit-login-attempts.php:842 +#, php-format +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "自從上次é‡è¨­ï¼Œå·²æœ‰%d次鎖定。" +msgstr[1] "自從上次é‡è¨­ï¼Œå·²æœ‰%d次鎖定。" + +#: limit-login-attempts.php:843 +msgid "No lockouts yet" +msgstr "未有任何鎖定紀錄" + +#: limit-login-attempts.php:848 +msgid "Active lockouts" +msgstr "解除鎖定" + +#: limit-login-attempts.php:850 +msgid "Restore Lockouts" +msgstr "還原鎖定" + +#: limit-login-attempts.php:851 +#, php-format +msgid "%d IP is currently blocked from trying to log in" +msgstr "IP: %d嘗試登入,但目å‰å·²è¢«é˜»æ“‹" + +#: limit-login-attempts.php:857 +msgid "Options" +msgstr "é¸é …" + +#: limit-login-attempts.php:861 +msgid "Lockout" +msgstr "鎖定" + +#: limit-login-attempts.php:863 +msgid "allowed retries" +msgstr "å…許嘗試次數" + +#: limit-login-attempts.php:864 +msgid "minutes lockout" +msgstr "分é˜éŽ–定" + +#: limit-login-attempts.php:865 +msgid "lockouts increase lockout time to" +msgstr "次鎖定後,將鎖定時間增加為" + +#: limit-login-attempts.php:865 +msgid "hours" +msgstr "å°æ™‚" + +#: limit-login-attempts.php:866 +msgid "hours until retries are reset" +msgstr "å°æ™‚直到é‡è¨­ç™»å…¥å˜—試" + +#: limit-login-attempts.php:870 +msgid "Site connection" +msgstr "網站連çµ" + +#: limit-login-attempts.php:876 +msgid "Direct connection" +msgstr "直接連線" + +#: limit-login-attempts.php:881 +msgid "From behind a reversy proxy" +msgstr "é€éŽä»£ç†ä¼ºæœå™¨" + +#: limit-login-attempts.php:887 +msgid "Handle cookie login" +msgstr "控管Cookie登入" + +#: limit-login-attempts.php:889 +msgid "Yes" +msgstr "是" + +#: limit-login-attempts.php:889 +msgid "No" +msgstr "å¦" + +#: limit-login-attempts.php:894 +msgid "Notify on lockout" +msgstr "鎖定的æ醒" + +#: limit-login-attempts.php:896 +msgid "Log IP" +msgstr "紀錄 IP" + +#: limit-login-attempts.php:897 +msgid "Email to admin after" +msgstr "Email 給管ç†å“¡ç•¶è¶…éŽ" + +#: limit-login-attempts.php:897 +msgid "lockouts" +msgstr "鎖定次數" + +#: limit-login-attempts.php:902 +msgid "Change Options" +msgstr "儲存設定" + +#: limit-login-attempts.php:910 +msgid "Lockout log" +msgstr "鎖定紀錄" + +#: limit-login-attempts.php:914 +msgid "Clear Log" +msgstr "清除記錄" + +#. Plugin Name of an extension +msgid "Limit Login Attempts" +msgstr "Limit Login Attempts" + +#. Plugin URI of an extension +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "http://devel.kostdoktorn.se/limit-login-attempts" + +#. Description of an extension +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "é™åˆ¶ç™»å…¥å˜—試比率(包å«Cookies å’Œ IP) [外掛中文化: Denny Huang]" + +#. Author of an extension +msgid "Johan Eenfeldt" +msgstr "Johan Eenfeldt" + +#. Author URI of an extension +msgid "http://devel.kostdoktorn.se" +msgstr "http://devel.kostdoktorn.se" + diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts.php b/wp-content/plugins/limit-login-attempts/limit-login-attempts.php new file mode 100644 index 0000000..3bbfa7b --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts.php @@ -0,0 +1,1124 @@ + LIMIT_LOGIN_DIRECT_ADDR + + /* Lock out after this many tries */ + , 'allowed_retries' => 4 + + /* Lock out for this many seconds */ + , 'lockout_duration' => 1200 // 20 minutes + + /* Long lock out after this many lockouts */ + , 'allowed_lockouts' => 4 + + /* Long lock out for this many seconds */ + , 'long_duration' => 86400 // 24 hours + + /* Reset failed attempts after this many seconds */ + , 'valid_duration' => 43200 // 12 hours + + /* Also limit malformed/forged cookies? */ + , 'cookies' => true + + /* Notify on lockout. Values: '', 'log', 'email', 'log,email' */ + , 'lockout_notify' => 'log' + + /* If notify by email, do so after this number of lockouts */ + , 'notify_email_after' => 4 + ); + +$limit_login_my_error_shown = false; /* have we shown our stuff? */ +$limit_login_just_lockedout = false; /* started this pageload??? */ +$limit_login_nonempty_credentials = false; /* user and pwd nonempty */ + + +/* + * Startup + */ + +add_action('plugins_loaded', 'limit_login_setup', 99999); + + +/* + * Functions start here + */ + +/* Get options and setup filters & actions */ +function limit_login_setup() { + load_plugin_textdomain('limit-login-attempts', false + , dirname(plugin_basename(__FILE__))); + + limit_login_setup_options(); + + /* Filters and actions */ + add_action('wp_login_failed', 'limit_login_failed'); + if (limit_login_option('cookies')) { + limit_login_handle_cookies(); + add_action('auth_cookie_bad_username', 'limit_login_failed_cookie'); + + global $wp_version; + + if (version_compare($wp_version, '3.0', '>=')) { + add_action('auth_cookie_bad_hash', 'limit_login_failed_cookie_hash'); + add_action('auth_cookie_valid', 'limit_login_valid_cookie', 10, 2); + } else { + add_action('auth_cookie_bad_hash', 'limit_login_failed_cookie'); + } + } + add_filter('wp_authenticate_user', 'limit_login_wp_authenticate_user', 99999, 2); + add_filter('shake_error_codes', 'limit_login_failure_shake'); + add_action('login_head', 'limit_login_add_error_message'); + add_action('login_errors', 'limit_login_fixup_error_messages'); + add_action('admin_menu', 'limit_login_admin_menu'); + + /* + * This action should really be changed to the 'authenticate' filter as + * it will probably be deprecated. That is however only available in + * later versions of WP. + */ + add_action('wp_authenticate', 'limit_login_track_credentials', 10, 2); +} + + +/* Get current option value */ +function limit_login_option($option_name) { + global $limit_login_options; + + if (isset($limit_login_options[$option_name])) { + return $limit_login_options[$option_name]; + } else { + return null; + } +} + + +/* Get correct remote address */ +function limit_login_get_address($type_name = '') { + $type = $type_name; + if (empty($type)) { + $type = limit_login_option('client_type'); + } + + if (isset($_SERVER[$type])) { + return $_SERVER[$type]; + } + + /* + * Not found. Did we get proxy type from option? + * If so, try to fall back to direct address. + */ + if ( empty($type_name) && $type == LIMIT_LOGIN_PROXY_ADDR + && isset($_SERVER[LIMIT_LOGIN_DIRECT_ADDR])) { + + /* + * NOTE: Even though we fall back to direct address -- meaning you + * can get a mostly working plugin when set to PROXY mode while in + * fact directly connected to Internet it is not safe! + * + * Client can itself send HTTP_X_FORWARDED_FOR header fooling us + * regarding which IP should be banned. + */ + + return $_SERVER[LIMIT_LOGIN_DIRECT_ADDR]; + } + + return ''; +} + + +/* + * Check if IP is whitelisted. + * + * This function allow external ip whitelisting using a filter. Note that it can + * be called multiple times during the login process. + * + * Note that retries and statistics are still counted and notifications + * done as usual for whitelisted ips , but no lockout is done. + * + * Example: + * function my_ip_whitelist($allow, $ip) { + * return ($ip == 'my-ip') ? true : $allow; + * } + * add_filter('limit_login_whitelist_ip', 'my_ip_whitelist', 10, 2); + */ +function is_limit_login_ip_whitelisted($ip = null) { + if (is_null($ip)) { + $ip = limit_login_get_address(); + } + $whitelisted = apply_filters('limit_login_whitelist_ip', false, $ip); + + return ($whitelisted === true); +} + + +/* Check if it is ok to login */ +function is_limit_login_ok() { + $ip = limit_login_get_address(); + + /* Check external whitelist filter */ + if (is_limit_login_ip_whitelisted($ip)) { + return true; + } + + /* lockout active? */ + $lockouts = get_option('limit_login_lockouts'); + return (!is_array($lockouts) || !isset($lockouts[$ip]) || time() >= $lockouts[$ip]); +} + + +/* Filter: allow login attempt? (called from wp_authenticate()) */ +function limit_login_wp_authenticate_user($user, $password) { + if (is_wp_error($user) || is_limit_login_ok() ) { + return $user; + } + + global $limit_login_my_error_shown; + $limit_login_my_error_shown = true; + + $error = new WP_Error(); + // This error should be the same as in "shake it" filter below + $error->add('too_many_retries', limit_login_error_msg()); + return $error; +} + + +/* Filter: add this failure to login page "Shake it!" */ +function limit_login_failure_shake($error_codes) { + $error_codes[] = 'too_many_retries'; + return $error_codes; +} + + +/* + * Must be called in plugin_loaded (really early) to make sure we do not allow + * auth cookies while locked out. + */ +function limit_login_handle_cookies() { + if (is_limit_login_ok()) { + return; + } + + limit_login_clear_auth_cookie(); +} + + +/* + * Action: failed cookie login hash + * + * Make sure same invalid cookie doesn't get counted more than once. + * + * Requires WordPress version 3.0.0, previous versions use limit_login_failed_cookie() + */ +function limit_login_failed_cookie_hash($cookie_elements) { + limit_login_clear_auth_cookie(); + + /* + * Under some conditions an invalid auth cookie will be used multiple + * times, which results in multiple failed attempts from that one + * cookie. + * + * Unfortunately I've not been able to replicate this consistently and + * thus have not been able to make sure what the exact cause is. + * + * Probably it is because a reload of for example the admin dashboard + * might result in multiple requests from the browser before the invalid + * cookie can be cleard. + * + * Handle this by only counting the first attempt when the exact same + * cookie is attempted for a user. + */ + + extract($cookie_elements, EXTR_OVERWRITE); + + // Check if cookie is for a valid user + $user = get_userdatabylogin($username); + if (!$user) { + // "shouldn't happen" for this action + limit_login_failed($username); + return; + } + + $previous_cookie = get_user_meta($user->ID, 'limit_login_previous_cookie', true); + if ($previous_cookie && $previous_cookie == $cookie_elements) { + // Identical cookies, ignore this attempt + return; + } + + // Store cookie + if ($previous_cookie) + update_user_meta($user->ID, 'limit_login_previous_cookie', $cookie_elements); + else + add_user_meta($user->ID, 'limit_login_previous_cookie', $cookie_elements, true); + + limit_login_failed($username); +} + + +/* + * Action: successful cookie login + * + * Clear any stored user_meta. + * + * Requires WordPress version 3.0.0, not used in previous versions + */ +function limit_login_valid_cookie($cookie_elements, $user) { + /* + * As all meta values get cached on user load this should not require + * any extra work for the common case of no stored value. + */ + + if (get_user_meta($user->ID, 'limit_login_previous_cookie')) { + delete_user_meta($user->ID, 'limit_login_previous_cookie'); + } +} + + +/* Action: failed cookie login (calls limit_login_failed()) */ +function limit_login_failed_cookie($cookie_elements) { + limit_login_clear_auth_cookie(); + + /* + * Invalid username gets counted every time. + */ + + limit_login_failed($cookie_elements['username']); +} + + +/* Make sure auth cookie really get cleared (for this session too) */ +function limit_login_clear_auth_cookie() { + wp_clear_auth_cookie(); + + if (!empty($_COOKIE[AUTH_COOKIE])) { + $_COOKIE[AUTH_COOKIE] = ''; + } + if (!empty($_COOKIE[SECURE_AUTH_COOKIE])) { + $_COOKIE[SECURE_AUTH_COOKIE] = ''; + } + if (!empty($_COOKIE[LOGGED_IN_COOKIE])) { + $_COOKIE[LOGGED_IN_COOKIE] = ''; + } +} + +/* + * Action when login attempt failed + * + * Increase nr of retries (if necessary). Reset valid value. Setup + * lockout if nr of retries are above threshold. And more! + * + * A note on external whitelist: retries and statistics are still counted and + * notifications done as usual, but no lockout is done. + */ +function limit_login_failed($username) { + $ip = limit_login_get_address(); + + /* if currently locked-out, do not add to retries */ + $lockouts = get_option('limit_login_lockouts'); + if (!is_array($lockouts)) { + $lockouts = array(); + } + if(isset($lockouts[$ip]) && time() < $lockouts[$ip]) { + return; + } + + /* Get the arrays with retries and retries-valid information */ + $retries = get_option('limit_login_retries'); + $valid = get_option('limit_login_retries_valid'); + if (!is_array($retries)) { + $retries = array(); + add_option('limit_login_retries', $retries, '', 'no'); + } + if (!is_array($valid)) { + $valid = array(); + add_option('limit_login_retries_valid', $valid, '', 'no'); + } + + /* Check validity and add one to retries */ + if (isset($retries[$ip]) && isset($valid[$ip]) && time() < $valid[$ip]) { + $retries[$ip] ++; + } else { + $retries[$ip] = 1; + } + $valid[$ip] = time() + limit_login_option('valid_duration'); + + /* lockout? */ + if($retries[$ip] % limit_login_option('allowed_retries') != 0) { + /* + * Not lockout (yet!) + * Do housecleaning (which also saves retry/valid values). + */ + limit_login_cleanup($retries, null, $valid); + return; + } + + /* lockout! */ + + $whitelisted = is_limit_login_ip_whitelisted($ip); + + $retries_long = limit_login_option('allowed_retries') + * limit_login_option('allowed_lockouts'); + + /* + * Note that retries and statistics are still counted and notifications + * done as usual for whitelisted ips , but no lockout is done. + */ + if ($whitelisted) { + if ($retries[$ip] >= $retries_long) { + unset($retries[$ip]); + unset($valid[$ip]); + } + } else { + global $limit_login_just_lockedout; + $limit_login_just_lockedout = true; + + /* setup lockout, reset retries as needed */ + if ($retries[$ip] >= $retries_long) { + /* long lockout */ + $lockouts[$ip] = time() + limit_login_option('long_duration'); + unset($retries[$ip]); + unset($valid[$ip]); + } else { + /* normal lockout */ + $lockouts[$ip] = time() + limit_login_option('lockout_duration'); + } + } + + /* do housecleaning and save values */ + limit_login_cleanup($retries, $lockouts, $valid); + + /* do any notification */ + limit_login_notify($username); + + /* increase statistics */ + $total = get_option('limit_login_lockouts_total'); + if ($total === false || !is_numeric($total)) { + add_option('limit_login_lockouts_total', 1, '', 'no'); + } else { + update_option('limit_login_lockouts_total', $total + 1); + } +} + + +/* Clean up old lockouts and retries, and save supplied arrays */ +function limit_login_cleanup($retries = null, $lockouts = null, $valid = null) { + $now = time(); + $lockouts = !is_null($lockouts) ? $lockouts : get_option('limit_login_lockouts'); + + /* remove old lockouts */ + if (is_array($lockouts)) { + foreach ($lockouts as $ip => $lockout) { + if ($lockout < $now) { + unset($lockouts[$ip]); + } + } + update_option('limit_login_lockouts', $lockouts); + } + + /* remove retries that are no longer valid */ + $valid = !is_null($valid) ? $valid : get_option('limit_login_retries_valid'); + $retries = !is_null($retries) ? $retries : get_option('limit_login_retries'); + if (!is_array($valid) || !is_array($retries)) { + return; + } + + foreach ($valid as $ip => $lockout) { + if ($lockout < $now) { + unset($valid[$ip]); + unset($retries[$ip]); + } + } + + /* go through retries directly, if for some reason they've gone out of sync */ + foreach ($retries as $ip => $retry) { + if (!isset($valid[$ip])) { + unset($retries[$ip]); + } + } + + update_option('limit_login_retries', $retries); + update_option('limit_login_retries_valid', $valid); +} + + +/* Is this WP Multisite? */ +function is_limit_login_multisite() { + return function_exists('get_site_option') && function_exists('is_multisite') && is_multisite(); +} + + +/* Email notification of lockout to admin (if configured) */ +function limit_login_notify_email($user) { + $ip = limit_login_get_address(); + $whitelisted = is_limit_login_ip_whitelisted($ip); + + $retries = get_option('limit_login_retries'); + if (!is_array($retries)) { + $retries = array(); + } + + /* check if we are at the right nr to do notification */ + if ( isset($retries[$ip]) + && ( ($retries[$ip] / limit_login_option('allowed_retries')) + % limit_login_option('notify_email_after') ) != 0 ) { + return; + } + + /* Format message. First current lockout duration */ + if (!isset($retries[$ip])) { + /* longer lockout */ + $count = limit_login_option('allowed_retries') + * limit_login_option('allowed_lockouts'); + $lockouts = limit_login_option('allowed_lockouts'); + $time = round(limit_login_option('long_duration') / 3600); + $when = sprintf(_n('%d hour', '%d hours', $time, 'limit-login-attempts'), $time); + } else { + /* normal lockout */ + $count = $retries[$ip]; + $lockouts = floor($count / limit_login_option('allowed_retries')); + $time = round(limit_login_option('lockout_duration') / 60); + $when = sprintf(_n('%d minute', '%d minutes', $time, 'limit-login-attempts'), $time); + } + + $blogname = is_limit_login_multisite() ? get_site_option('site_name') : get_option('blogname'); + + if ($whitelisted) { + $subject = sprintf(__("[%s] Failed login attempts from whitelisted IP" + , 'limit-login-attempts') + , $blogname); + } else { + $subject = sprintf(__("[%s] Too many failed login attempts" + , 'limit-login-attempts') + , $blogname); + } + + $message = sprintf(__("%d failed login attempts (%d lockout(s)) from IP: %s" + , 'limit-login-attempts') . "\r\n\r\n" + , $count, $lockouts, $ip); + if ($user != '') { + $message .= sprintf(__("Last user attempted: %s", 'limit-login-attempts') + . "\r\n\r\n" , $user); + } + if ($whitelisted) { + $message .= __("IP was NOT blocked because of external whitelist.", 'limit-login-attempts'); + } else { + $message .= sprintf(__("IP was blocked for %s", 'limit-login-attempts'), $when); + } + + $admin_email = is_limit_login_multisite() ? get_site_option('admin_email') : get_option('admin_email'); + + @wp_mail($admin_email, $subject, $message); +} + + +/* Logging of lockout (if configured) */ +function limit_login_notify_log($user) { + $log = $option = get_option('limit_login_logged'); + if (!is_array($log)) { + $log = array(); + } + $ip = limit_login_get_address(); + + /* can be written much simpler, if you do not mind php warnings */ + if (isset($log[$ip])) { + if (isset($log[$ip][$user])) { + $log[$ip][$user]++; + } else { + $log[$ip][$user] = 1; + } + } else { + $log[$ip] = array($user => 1); + } + + if ($option === false) { + add_option('limit_login_logged', $log, '', 'no'); /* no autoload */ + } else { + update_option('limit_login_logged', $log); + } +} + + +/* Handle notification in event of lockout */ +function limit_login_notify($user) { + $args = explode(',', limit_login_option('lockout_notify')); + + if (empty($args)) { + return; + } + + foreach ($args as $mode) { + switch (trim($mode)) { + case 'email': + limit_login_notify_email($user); + break; + case 'log': + limit_login_notify_log($user); + break; + } + } +} + + +/* Construct informative error message */ +function limit_login_error_msg() { + $ip = limit_login_get_address(); + $lockouts = get_option('limit_login_lockouts'); + + $msg = __('ERROR: Too many failed login attempts.', 'limit-login-attempts') . ' '; + + if (!is_array($lockouts) || !isset($lockouts[$ip]) || time() >= $lockouts[$ip]) { + /* Huh? No timeout active? */ + $msg .= __('Please try again later.', 'limit-login-attempts'); + return $msg; + } + + $when = ceil(($lockouts[$ip] - time()) / 60); + if ($when > 60) { + $when = ceil($when / 60); + $msg .= sprintf(_n('Please try again in %d hour.', 'Please try again in %d hours.', $when, 'limit-login-attempts'), $when); + } else { + $msg .= sprintf(_n('Please try again in %d minute.', 'Please try again in %d minutes.', $when, 'limit-login-attempts'), $when); + } + + return $msg; +} + + +/* Construct retries remaining message */ +function limit_login_retries_remaining_msg() { + $ip = limit_login_get_address(); + $retries = get_option('limit_login_retries'); + $valid = get_option('limit_login_retries_valid'); + + /* Should we show retries remaining? */ + + if (!is_array($retries) || !is_array($valid)) { + /* no retries at all */ + return ''; + } + if (!isset($retries[$ip]) || !isset($valid[$ip]) || time() > $valid[$ip]) { + /* no: no valid retries */ + return ''; + } + if (($retries[$ip] % limit_login_option('allowed_retries')) == 0 ) { + /* no: already been locked out for these retries */ + return ''; + } + + $remaining = max((limit_login_option('allowed_retries') - ($retries[$ip] % limit_login_option('allowed_retries'))), 0); + return sprintf(_n("%d attempt remaining.", "%d attempts remaining.", $remaining, 'limit-login-attempts'), $remaining); +} + + +/* Return current (error) message to show, if any */ +function limit_login_get_message() { + /* Check external whitelist */ + if (is_limit_login_ip_whitelisted()) { + return ''; + } + + /* Is lockout in effect? */ + if (!is_limit_login_ok()) { + return limit_login_error_msg(); + } + + return limit_login_retries_remaining_msg(); +} + + +/* Should we show errors and messages on this page? */ +function should_limit_login_show_msg() { + if (isset($_GET['key'])) { + /* reset password */ + return false; + } + + $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : ''; + + return ( $action != 'lostpassword' && $action != 'retrievepassword' + && $action != 'resetpass' && $action != 'rp' + && $action != 'register' ); +} + + +/* Fix up the error message before showing it */ +function limit_login_fixup_error_messages($content) { + global $limit_login_just_lockedout, $limit_login_nonempty_credentials, $limit_login_my_error_shown; + + if (!should_limit_login_show_msg()) { + return $content; + } + + /* + * During lockout we do not want to show any other error messages (like + * unknown user or empty password). + */ + if (!is_limit_login_ok() && !$limit_login_just_lockedout) { + return limit_login_error_msg(); + } + + /* + * We want to filter the messages 'Invalid username' and + * 'Invalid password' as that is an information leak regarding user + * account names (prior to WP 2.9?). + * + * Also, if more than one error message, put an extra
tag between + * them. + */ + $msgs = explode("
\n", $content); + + if (strlen(end($msgs)) == 0) { + /* remove last entry empty string */ + array_pop($msgs); + } + + $count = count($msgs); + $my_warn_count = $limit_login_my_error_shown ? 1 : 0; + + if ($limit_login_nonempty_credentials && $count > $my_warn_count) { + /* Replace error message, including ours if necessary */ + $content = __('ERROR: Incorrect username or password.', 'limit-login-attempts') . "
\n"; + if ($limit_login_my_error_shown) { + $content .= "
\n" . limit_login_get_message() . "
\n"; + } + return $content; + } elseif ($count <= 1) { + return $content; + } + + $new = ''; + while ($count-- > 0) { + $new .= array_shift($msgs) . "
\n"; + if ($count > 0) { + $new .= "
\n"; + } + } + + return $new; +} + + +/* Add a message to login page when necessary */ +function limit_login_add_error_message() { + global $error, $limit_login_my_error_shown; + + if (!should_limit_login_show_msg() || $limit_login_my_error_shown) { + return; + } + + $msg = limit_login_get_message(); + + if ($msg != '') { + $limit_login_my_error_shown = true; + $error .= $msg; + } + + return; +} + + +/* Keep track of if user or password are empty, to filter errors correctly */ +function limit_login_track_credentials($user, $password) { + global $limit_login_nonempty_credentials; + + $limit_login_nonempty_credentials = (!empty($user) && !empty($password)); +} + + +/* + * Admin stuff + */ + +/* Make a guess if we are behind a proxy or not */ +function limit_login_guess_proxy() { + return isset($_SERVER[LIMIT_LOGIN_PROXY_ADDR]) + ? LIMIT_LOGIN_PROXY_ADDR : LIMIT_LOGIN_DIRECT_ADDR; +} + + +/* Only change var if option exists */ +function limit_login_get_option($option, $var_name) { + $a = get_option($option); + + if ($a !== false) { + global $limit_login_options; + + $limit_login_options[$var_name] = $a; + } +} + + +/* Setup global variables from options */ +function limit_login_setup_options() { + limit_login_get_option('limit_login_client_type', 'client_type'); + limit_login_get_option('limit_login_allowed_retries', 'allowed_retries'); + limit_login_get_option('limit_login_lockout_duration', 'lockout_duration'); + limit_login_get_option('limit_login_valid_duration', 'valid_duration'); + limit_login_get_option('limit_login_cookies', 'cookies'); + limit_login_get_option('limit_login_lockout_notify', 'lockout_notify'); + limit_login_get_option('limit_login_allowed_lockouts', 'allowed_lockouts'); + limit_login_get_option('limit_login_long_duration', 'long_duration'); + limit_login_get_option('limit_login_notify_email_after', 'notify_email_after'); + + limit_login_sanitize_variables(); +} + + +/* Update options in db from global variables */ +function limit_login_update_options() { + update_option('limit_login_client_type', limit_login_option('client_type')); + update_option('limit_login_allowed_retries', limit_login_option('allowed_retries')); + update_option('limit_login_lockout_duration', limit_login_option('lockout_duration')); + update_option('limit_login_allowed_lockouts', limit_login_option('allowed_lockouts')); + update_option('limit_login_long_duration', limit_login_option('long_duration')); + update_option('limit_login_valid_duration', limit_login_option('valid_duration')); + update_option('limit_login_lockout_notify', limit_login_option('lockout_notify')); + update_option('limit_login_notify_email_after', limit_login_option('notify_email_after')); + update_option('limit_login_cookies', limit_login_option('cookies') ? '1' : '0'); +} + + +/* Make sure the variables make sense -- simple integer */ +function limit_login_sanitize_simple_int($var_name) { + global $limit_login_options; + + $limit_login_options[$var_name] = max(1, intval(limit_login_option($var_name))); +} + + +/* Make sure the variables make sense */ +function limit_login_sanitize_variables() { + global $limit_login_options; + + limit_login_sanitize_simple_int('allowed_retries'); + limit_login_sanitize_simple_int('lockout_duration'); + limit_login_sanitize_simple_int('valid_duration'); + limit_login_sanitize_simple_int('allowed_lockouts'); + limit_login_sanitize_simple_int('long_duration'); + + $limit_login_options['cookies'] = !!limit_login_option('cookies'); + + $notify_email_after = max(1, intval(limit_login_option('notify_email_after'))); + $limit_login_options['notify_email_after'] = min(limit_login_option('allowed_lockouts'), $notify_email_after); + + $args = explode(',', limit_login_option('lockout_notify')); + $args_allowed = explode(',', LIMIT_LOGIN_LOCKOUT_NOTIFY_ALLOWED); + $new_args = array(); + foreach ($args as $a) { + if (in_array($a, $args_allowed)) { + $new_args[] = $a; + } + } + $limit_login_options['lockout_notify'] = implode(',', $new_args); + + if ( limit_login_option('client_type') != LIMIT_LOGIN_DIRECT_ADDR + && limit_login_option('client_type') != LIMIT_LOGIN_PROXY_ADDR ) { + $limit_login_options['client_type'] = LIMIT_LOGIN_DIRECT_ADDR; + } +} + + +/* Add admin options page */ +function limit_login_admin_menu() { + global $wp_version; + + // Modern WP? + if (version_compare($wp_version, '3.0', '>=')) { + add_options_page('Limit Login Attempts', 'Limit Login Attempts', 'manage_options', 'limit-login-attempts', 'limit_login_option_page'); + return; + } + + // Older WPMU? + if (function_exists("get_current_site")) { + add_submenu_page('wpmu-admin.php', 'Limit Login Attempts', 'Limit Login Attempts', 9, 'limit-login-attempts', 'limit_login_option_page'); + return; + } + + // Older WP + add_options_page('Limit Login Attempts', 'Limit Login Attempts', 9, 'limit-login-attempts', 'limit_login_option_page'); +} + + +/* Show log on admin page */ +function limit_login_show_log($log) { + if (!is_array($log) || count($log) == 0) { + return; + } + + echo('' . _x("IP", "Internet address", 'limit-login-attempts') . '' . __('Tried to log in as', 'limit-login-attempts') . ''); + foreach ($log as $ip => $arr) { + echo('' . $ip . ''); + $first = true; + foreach($arr as $user => $count) { + $count_desc = sprintf(_n('%d lockout', '%d lockouts', $count, 'limit-login-attempts'), $count); + if (!$first) { + echo(', ' . $user . ' (' . $count_desc . ')'); + } else { + echo($user . ' (' . $count_desc . ')'); + } + $first = false; + } + echo(''); + } +} + +/* Actual admin page */ +function limit_login_option_page() { + limit_login_cleanup(); + + if (!current_user_can('manage_options')) { + wp_die('Sorry, but you do not have permissions to change settings.'); + } + + /* Make sure post was from this page */ + if (count($_POST) > 0) { + check_admin_referer('limit-login-attempts-options'); + } + + /* Should we clear log? */ + if (isset($_POST['clear_log'])) { + delete_option('limit_login_logged'); + echo '

' + . __('Cleared IP log', 'limit-login-attempts') + . '

'; + } + + /* Should we reset counter? */ + if (isset($_POST['reset_total'])) { + update_option('limit_login_lockouts_total', 0); + echo '

' + . __('Reset lockout count', 'limit-login-attempts') + . '

'; + } + + /* Should we restore current lockouts? */ + if (isset($_POST['reset_current'])) { + update_option('limit_login_lockouts', array()); + echo '

' + . __('Cleared current lockouts', 'limit-login-attempts') + . '

'; + } + + /* Should we update options? */ + if (isset($_POST['update_options'])) { + global $limit_login_options; + + $limit_login_options['client_type'] = $_POST['client_type']; + $limit_login_options['allowed_retries'] = $_POST['allowed_retries']; + $limit_login_options['lockout_duration'] = $_POST['lockout_duration'] * 60; + $limit_login_options['valid_duration'] = $_POST['valid_duration'] * 3600; + $limit_login_options['allowed_lockouts'] = $_POST['allowed_lockouts']; + $limit_login_options['long_duration'] = $_POST['long_duration'] * 3600; + $limit_login_options['notify_email_after'] = $_POST['email_after']; + $limit_login_options['cookies'] = (isset($_POST['cookies']) && $_POST['cookies'] == '1'); + + $v = array(); + if (isset($_POST['lockout_notify_log'])) { + $v[] = 'log'; + } + if (isset($_POST['lockout_notify_email'])) { + $v[] = 'email'; + } + $limit_login_options['lockout_notify'] = implode(',', $v); + + limit_login_sanitize_variables(); + limit_login_update_options(); + echo '

' + . __('Options changed', 'limit-login-attempts') + . '

'; + } + + $lockouts_total = get_option('limit_login_lockouts_total', 0); + $lockouts = get_option('limit_login_lockouts'); + $lockouts_now = is_array($lockouts) ? count($lockouts) : 0; + + $cookies_yes = limit_login_option('cookies') ? ' checked ' : ''; + $cookies_no = limit_login_option('cookies') ? '' : ' checked '; + + $client_type = limit_login_option('client_type'); + $client_type_direct = $client_type == LIMIT_LOGIN_DIRECT_ADDR ? ' checked ' : ''; + $client_type_proxy = $client_type == LIMIT_LOGIN_PROXY_ADDR ? ' checked ' : ''; + + $client_type_guess = limit_login_guess_proxy(); + + if ($client_type_guess == LIMIT_LOGIN_DIRECT_ADDR) { + $client_type_message = sprintf(__('It appears the site is reached directly (from your IP: %s)','limit-login-attempts'), limit_login_get_address(LIMIT_LOGIN_DIRECT_ADDR)); + } else { + $client_type_message = sprintf(__('It appears the site is reached through a proxy server (proxy IP: %s, your IP: %s)','limit-login-attempts'), limit_login_get_address(LIMIT_LOGIN_DIRECT_ADDR), limit_login_get_address(LIMIT_LOGIN_PROXY_ADDR)); + } + $client_type_message .= '
'; + + $client_type_warning = ''; + if ($client_type != $client_type_guess) { + $faq = 'http://wordpress.org/extend/plugins/limit-login-attempts/faq/'; + + $client_type_warning = '

' . sprintf(__('Current setting appears to be invalid. Please make sure it is correct. Further information can be found here','limit-login-attempts'), $faq); + } + + $v = explode(',', limit_login_option('lockout_notify')); + $log_checked = in_array('log', $v) ? ' checked ' : ''; + $email_checked = in_array('email', $v) ? ' checked ' : ''; + ?> +
+

+

+
+ + + + + + + 0) { ?> + + + + + +
+ 0) { ?> + + + +
+ + +
+
+

+
+ + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + + + +
+ +
+ value="log" />
+ value="email" /> +
+

+ +

+
+ 0) { + ?> +

+
+ + +

+ +

+
+ + + + +
+ \ No newline at end of file diff --git a/wp-content/plugins/limit-login-attempts/limit-login-attempts.pot b/wp-content/plugins/limit-login-attempts/limit-login-attempts.pot new file mode 100644 index 0000000..49eed1b --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/limit-login-attempts.pot @@ -0,0 +1,265 @@ +# Copyright (C) 2012 Limit Login Attempts +# This file is distributed under the same license as the Limit Login Attempts package. +msgid "" +msgstr "" +"Project-Id-Version: Limit Login Attempts 1.7.0\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/limit-login-attempts\n" +"POT-Creation-Date: 2012-05-20 10:43:32+00:00\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"PO-Revision-Date: 2012-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" + +#: limit-login-attempts.php:522 +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#: limit-login-attempts.php:528 +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#: limit-login-attempts.php:534 +msgid "[%s] Failed login attempts from whitelisted IP" +msgstr "" + +#: limit-login-attempts.php:538 +msgid "[%s] Too many failed login attempts" +msgstr "" + +#: limit-login-attempts.php:543 +msgid "%d failed login attempts (%d lockout(s)) from IP: %s" +msgstr "" + +#: limit-login-attempts.php:547 +msgid "Last user attempted: %s" +msgstr "" + +#: limit-login-attempts.php:551 +msgid "IP was NOT blocked because of external whitelist." +msgstr "" + +#: limit-login-attempts.php:553 +msgid "IP was blocked for %s" +msgstr "" + +#: limit-login-attempts.php:615 +msgid "ERROR: Too many failed login attempts." +msgstr "" + +#: limit-login-attempts.php:619 +msgid "Please try again later." +msgstr "" + +#: limit-login-attempts.php:626 +msgid "Please try again in %d hour." +msgid_plural "Please try again in %d hours." +msgstr[0] "" +msgstr[1] "" + +#: limit-login-attempts.php:628 +msgid "Please try again in %d minute." +msgid_plural "Please try again in %d minutes." +msgstr[0] "" +msgstr[1] "" + +#: limit-login-attempts.php:657 +msgid "%d attempt remaining." +msgid_plural "%d attempts remaining." +msgstr[0] "" +msgstr[1] "" + +#: limit-login-attempts.php:728 +msgid "ERROR: Incorrect username or password." +msgstr "" + +#: limit-login-attempts.php:896 +msgctxt "Internet address" +msgid "IP" +msgstr "" + +#: limit-login-attempts.php:896 +msgid "Tried to log in as" +msgstr "" + +#: limit-login-attempts.php:901 +msgid "%d lockout" +msgid_plural "%d lockouts" +msgstr[0] "" +msgstr[1] "" + +#: limit-login-attempts.php:930 +msgid "Cleared IP log" +msgstr "" + +#: limit-login-attempts.php:938 +msgid "Reset lockout count" +msgstr "" + +#: limit-login-attempts.php:946 +msgid "Cleared current lockouts" +msgstr "" + +#: limit-login-attempts.php:975 +msgid "Options changed" +msgstr "" + +#: limit-login-attempts.php:993 +msgid "It appears the site is reached directly (from your IP: %s)" +msgstr "" + +#: limit-login-attempts.php:995 +msgid "" +"It appears the site is reached through a proxy server (proxy IP: %s, your " +"IP: %s)" +msgstr "" + +#: limit-login-attempts.php:1003 +msgid "" +"Current setting appears to be invalid. Please make sure it " +"is correct. Further information can be found here" +msgstr "" + +#: limit-login-attempts.php:1011 +msgid "Limit Login Attempts Settings" +msgstr "" + +#: limit-login-attempts.php:1012 +msgid "Statistics" +msgstr "" + +#: limit-login-attempts.php:1017 +msgid "Total lockouts" +msgstr "" + +#: limit-login-attempts.php:1020 +msgid "Reset Counter" +msgstr "" + +#: limit-login-attempts.php:1021 +msgid "%d lockout since last reset" +msgid_plural "%d lockouts since last reset" +msgstr[0] "" +msgstr[1] "" + +#: limit-login-attempts.php:1022 +msgid "No lockouts yet" +msgstr "" + +#: limit-login-attempts.php:1027 +msgid "Active lockouts" +msgstr "" + +#: limit-login-attempts.php:1029 +msgid "Restore Lockouts" +msgstr "" + +#: limit-login-attempts.php:1030 +msgid "%d IP is currently blocked from trying to log in" +msgstr "" + +#: limit-login-attempts.php:1036 +msgid "Options" +msgstr "" + +#: limit-login-attempts.php:1041 +msgid "Lockout" +msgstr "" + +#: limit-login-attempts.php:1043 +msgid "allowed retries" +msgstr "" + +#: limit-login-attempts.php:1044 +msgid "minutes lockout" +msgstr "" + +#: limit-login-attempts.php:1045 +msgid "lockouts increase lockout time to" +msgstr "" + +#: limit-login-attempts.php:1045 +msgid "hours" +msgstr "" + +#: limit-login-attempts.php:1046 +msgid "hours until retries are reset" +msgstr "" + +#: limit-login-attempts.php:1050 +msgid "Site connection" +msgstr "" + +#: limit-login-attempts.php:1056 +msgid "Direct connection" +msgstr "" + +#: limit-login-attempts.php:1061 +msgid "From behind a reversy proxy" +msgstr "" + +#: limit-login-attempts.php:1067 +msgid "Handle cookie login" +msgstr "" + +#: limit-login-attempts.php:1069 +msgid "Yes" +msgstr "" + +#: limit-login-attempts.php:1069 +msgid "No" +msgstr "" + +#: limit-login-attempts.php:1073 +msgid "Notify on lockout" +msgstr "" + +#: limit-login-attempts.php:1075 +msgid "Log IP" +msgstr "" + +#: limit-login-attempts.php:1076 +msgid "Email to admin after" +msgstr "" + +#: limit-login-attempts.php:1076 +msgid "lockouts" +msgstr "" + +#: limit-login-attempts.php:1081 +msgid "Change Options" +msgstr "" + +#: limit-login-attempts.php:1089 +msgid "Lockout log" +msgstr "" + +#: limit-login-attempts.php:1094 +msgid "Clear Log" +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "Limit Login Attempts" +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "http://devel.kostdoktorn.se/limit-login-attempts" +msgstr "" + +#. Description of the plugin/theme +msgid "Limit rate of login attempts, including by way of cookies, for each IP." +msgstr "" + +#. Author of the plugin/theme +msgid "Johan Eenfeldt" +msgstr "" + +#. Author URI of the plugin/theme +msgid "http://devel.kostdoktorn.se" +msgstr "" diff --git a/wp-content/plugins/limit-login-attempts/readme.txt b/wp-content/plugins/limit-login-attempts/readme.txt new file mode 100644 index 0000000..bbdca0a --- /dev/null +++ b/wp-content/plugins/limit-login-attempts/readme.txt @@ -0,0 +1,186 @@ +=== Limit Login Attempts === +Contributors: johanee +Tags: login, security, authentication +Requires at least: 2.8 +Tested up to: 3.3.2 +Stable tag: 1.7.1 + +Limit rate of login attempts, including by way of cookies, for each IP. Fully customizable. + +== Description == + +Limit the number of login attempts possible both through normal login as well as using auth cookies. + +By default WordPress allows unlimited login attempts either through the login page or by sending special cookies. This allows passwords (or hashes) to be brute-force cracked with relative ease. + +Limit Login Attempts blocks an Internet address from making further attempts after a specified limit on retries is reached, making a brute-force attack difficult or impossible. + +Features + +* Limit the number of retry attempts when logging in (for each IP). Fully customizable +* Limit the number of attempts to log in using auth cookies in same way +* Informs user about remaining retries or lockout time on login page +* Optional logging, optional email notification +* Handles server behind reverse proxy +* It is possible to whitelist IPs using a filter. But you probably shouldn't. :-) + +Translations: Bulgarian, Brazilian Portuguese, Catalan, Chinese (Traditional), Czech, Dutch, Finnish, French, German, Hungarian, Norwegian, Persian, Romanian, Russian, Spanish, Swedish, Turkish + +Plugin uses standard actions and filters only. + +== Installation == + +1. Download and extract plugin files to a wp-content/plugin directory. +2. Activate the plugin through the WordPress admin interface. +3. Customize the settings on the options page, if desired. If your server is located behind a reverse proxy make sure to change this setting. + +If you have any questions or problems please make a post here: http://wordpress.org/tags/limit-login-attempts + +== Frequently Asked Questions == + += Why not reset failed attempts on a successful login? = + +This is very much by design. Otherwise you could brute force the "admin" password by logging in as your own user every 4th attempt. + += What is this option about site connection and reverse proxy? = + +A reverse proxy is a server in between the site and the Internet (perhaps handling caching or load-balancing). This makes getting the correct client IP to block slightly more complicated. + +The option default to NOT being behind a proxy -- which should be by far the common case. + += How do I know if my site is behind a reverse proxy? = + +You probably are not or you would know. We show a pretty good guess on the option page. Set the option using this unless you are sure you know better. + += Can I whitelist my IP so I don't get locked out? = + +First please consider if you really need this. Generally speaking it is not a good idea to have exceptions to your security policies. + +That said, there is now a filter which allows you to do it: "limit_login_whitelist_ip". + +Example: +function my_ip_whitelist($allow, $ip) { + return ($ip == 'my-ip') ? true : $allow; +} +add_filter('limit_login_whitelist_ip', 'my_ip_whitelist', 10, 2); + +Note that we still do notification and logging as usual. This is meant to allow you to be aware of any suspicious activity from whitelisted IPs. + += I locked myself out testing this thing, what do I do? = + +Either wait, or: + +If you know how to edit / add to PHP files you can use the IP whitelist functionality described above. You should then use the "Restore Lockouts" button on the plugin settings page and remove the whitelist function again. + +If you have ftp / ssh access to the site rename the file "wp-content/plugins/limit-login-attempts/limit-login-attempts.php" to deactivate the plugin. + +If you have access to the database (for example through phpMyAdmin) you can clear the limit_login_lockouts option in the wordpress options table. In a default setup this would work: "UPDATE wp_options SET option_value = '' WHERE option_name = 'limit_login_lockouts'" + +== Screenshots == + +1. Loginscreen after failed login with retries remaining +2. Loginscreen during lockout +3. Administration interface in WordPress 3.0.4 + +== Changelog == + += 1.7.1 = +This version fixes a security bug in version 1.6.2 and 1.7.0. Please upgrade immediately. + +"Auth cookies" are special cookies set at login that authenticating you to the system. It is how WordPress "remembers" that you are logged in between page loads. + +During lockout these are supposed to be cleared, but a change in 1.6.2 broke this. It allowed an attacker to keep trying to break these cookies during a lockout. + +Lockout of normal password login attempts still worked as it should, and it appears that all "auth cookie" attempts would keep getting logged. + +In theory the "auth cookie" is quite resistant to brute force attack. It contains a cryptographic hash of the user password, and the difficulty to break it is not based on the password strength but instead on the cryptographic operations used and the length of the hash value. In theory it should take many many years to break this hash. As theory and practice does not always agree it is still a good idea to have working lockouts of any such attempts. + += 1.7.0 = +* Added filter that allows whitelisting IP. Please use with care!! +* Update to Spanish translation, thanks to Marcelo Pedra +* Updated Swedish translation +* Tested against WordPress 3.3.2 + += 1.6.2 = +* Fix bug where log would not get updated after it had been cleared +* Do plugin setup in 'init' action +* Small update to Spanish translation file, thanks to Marcelo Pedra +* Tested against WordPress 3.2.1 + += 1.6.1 = +* (WordPress 3.0+) An invalid cookie can sometimes get sent multiple times before it gets cleared, resulting in multiple failed attempts or even a lockout from a single invalid cookie. Store the latest failed cookie to make sure we only count it as one failed attempt +* Define "Text Domain" correctly +* Include correct Dutch tranlation file. Thanks to Martin1 for noticing. Thanks again to Bjorn Wijers for the translation +* Updated POT file for this version +* Tested against WordPress 3.1-RC4 + += 1.6.0 = +* Happy New Year +* Tested against WordPress 3.1-RC1 +* Plugin now requires WordPress version 2.8+. Of course you should never ever use anything but the latest version +* Fixed deprecation warnings that had been piling up with the old version requirement. Thanks to Johannes Ruthenberg for the report that prompted this +* Removed auth cookie admin check for version 2.7. +* Make sure relevant values in $_COOKIE get cleared right away on auth cookie validation failure. There are still some problems with cookie auth handling. The lockout can trigger prematurely in rare cases, but fixing it is plugin version 2 stuff unfortunately. +* Changed default time for retries to reset from 24 hours to 12 hours. The security impact is very minor and it means the warning will disappear "overnight" +* Added question to FAQ ("Why not reset failed attempts on a successful login?") +* Updated screenshots + += 1.5.2 = +* Reverted minor cookie-handling cleanup which might somehow be responsible for recently reported cookie related lockouts +* Added version 1.x Brazilian Portuguese translation, thanks to Luciano Passuello +* Added Finnish translation, thanks to Ari Kontiainen + += 1.5.1 = +* Further multisite & WPMU support (again thanks to ) +* Better error handling if option variables are damaged +* Added Traditional Chinese translation, thanks to Denny Huang + += 1.5 = +* Tested against WordPress 3.0 +* Handle 3.0 login page failure "shake" +* Basic multisite support (parts thanks to ) +* Added Dutch translation, thanks to Bjorn Wijers +* Added Hungarian translation, thanks to Bálint Vereskuti +* Added French translation, thanks to oVa + += 1.4.1 = +* Added Turkish translation, thanks to Yazan Canarkadas + += 1.4 = +* Protect admin page update using wp_nonce +* Added Czech translation, thanks to Jakub Jedelsky + += 1.3.2 = +* Added Bulgarian translation, thanks to Hristo Chakarov +* Added Norwegian translation, thanks to Rune Gulbrandsøy +* Added Spanish translation, thanks to Marcelo Pedra +* Added Persian translation, thanks to Mostafa Soufi +* Added Russian translation, thanks to Jack Leonid (http://studio-xl.com) + += 1.3.1 = +* Added Catalan translation, thanks to Robert Buj +* Added Romanian translation, thanks to Robert Tudor + += 1.3 = +* Support for getting the correct IP for clients while server is behind reverse proxy, thanks to Michael Skerwiderski +* Added German translation, thanks to Michael Skerwiderski + += 1.2 = +* No longer replaces pluggable function when cookie handling active. Re-implemented using available actions and filters +* Filter error messages during login to avoid information leak regarding available usernames +* Do not show retries or lockout messages except for login (registration, lost password pages). No change in actual enforcement +* Slightly more aggressive in trimming old retries data + += 1.1 = +* Added translation support +* Added Swedish translation +* During lockout, filter out all other login errors +* Minor cleanups + += 1.0 = +* Initial version + +== Upgrade Notice == + += 1.7.1 = +Users of version 1.6.2 and 1.7.0 should upgrade immediately. There was a problem with "auth cookie" lockout enforcement. Lockout of normal password login attempts still worked as it should. Please see plugin Changelog for more information. diff --git a/wp-content/plugins/limit-login-attempts/screenshot-1.gif b/wp-content/plugins/limit-login-attempts/screenshot-1.gif new file mode 100644 index 0000000..fd6592b Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/screenshot-1.gif differ diff --git a/wp-content/plugins/limit-login-attempts/screenshot-2.gif b/wp-content/plugins/limit-login-attempts/screenshot-2.gif new file mode 100644 index 0000000..91cf9a8 Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/screenshot-2.gif differ diff --git a/wp-content/plugins/limit-login-attempts/screenshot-3.gif b/wp-content/plugins/limit-login-attempts/screenshot-3.gif new file mode 100644 index 0000000..d86e215 Binary files /dev/null and b/wp-content/plugins/limit-login-attempts/screenshot-3.gif differ diff --git a/wp-content/themes/index.php b/wp-content/themes/index.php new file mode 100644 index 0000000..6220032 --- /dev/null +++ b/wp-content/themes/index.php @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/wp-content/themes/milo-child/style.css b/wp-content/themes/milo-child/style.css new file mode 100644 index 0000000..4c38d22 --- /dev/null +++ b/wp-content/themes/milo-child/style.css @@ -0,0 +1,9 @@ +/* +Theme Name: Milo Child +Theme URI: http://marmondesigns.com +Description: Milo Child Theme +Author: Marmon Designs +Author URI: http://marmondesigns.com +Template: milo +Version: 1.0.0 +*/ \ No newline at end of file diff --git a/wp-content/themes/milo/assets/css/alternative-styles/blue.css b/wp-content/themes/milo/assets/css/alternative-styles/blue.css new file mode 100644 index 0000000..8e67be7 --- /dev/null +++ b/wp-content/themes/milo/assets/css/alternative-styles/blue.css @@ -0,0 +1,1276 @@ +/* + * + * BLUE.CSS + * + */ + +body { + background-color: #fff; + color: #3b3e43; +} + +h1 a, +h2 a, +h3 a, +h4 a, +h5 a, +h6 a { + color: #3b3e43; +} + +blockquote { + color: #74b2ff; +} + +a { + color: #74b2ff; +} + +a:hover, +a:focus { + color: #74b2ff; +} + +.hr { + border-top-color: #000; +} + +.text-primary { + color: #74b2ff; +} + +input, +select, +textarea { + border-color: #ccc; + background-color: transparent; +} + +input[type="text"]:focus, +input[type="text"]:focus, +input[type="text"]:focus, +input[type="url"]:focus, +textarea:focus { + border-color: #000; +} + +.headline.style-1 h4 { + color: #74b2ff; +} + +.headline.style-2 i { + color: #74b2ff; +} + +.headline.style-3 h5 { + color: #74b2ff; +} + +.alert { + color: #fff; +} + +.alert:after { + border-left-color: #fff; +} + +.alert.alert-info { + background-color: #3b3e44; +} + +.alert.alert-danger { + background-color: #9e0b0f; +} + +.alert.alert-success { + background-color: #74b2ff; +} + +.alert.alert-warning { + background-color: #fff; + color: #3b3e43; + border-color: #3b3e44; +} + +.alert.alert-warning:after { + border-color: #3b3e44; +} + +.check-list li:before { + border-color: #3b3e43; +} + +.btn:hover { + background-color: transparent; +} + +.btn i { + border-left-color: #fff; +} + +.btn-default { + border: 1px solid #74b2ff; + background-color: #74b2ff; + color: #fff; +} + +.btn-default:after { + background-color: #3b3e43; +} + +.btn-default:hover { + border-color: #3b3e43; + background-color: #74b2ff; + color: #fff; +} + +.btn-default:focus { + background-color: #74b2ff; + color: #fff; +} + +.btn-black { + border: 1px solid #3b3e43; + background-color: #3b3e43; + color: #fff; +} + +.btn-black:after { + background-color: #74b2ff; +} + +.btn-black:hover { + border-color: #74b2ff; + background-color: #3b3e43; + color: #fff; +} + +.btn-black:focus { + color: #fff; +} + +.btn-white { + border: 1px solid #74b2ff; + background-color: transparent; +} + +.btn-white i { + border-left-color: #74b2ff; + color: #74b2ff; +} + +.btn-white:after { + background-color: #74b2ff; +} + +.btn-white:hover { + border-color: #74b2ff; + background-color: transparent; + color: #fff; +} + +.btn-white:hover i { + border-left-color: #fff; +} + +.panel { + background-color: transparent; +} + +.panel-heading { + background-color: transparent; +} + +.panel-title a, +.panel-title a:focus { + border-top-color: #d7d7d7; + color: #3b3e43; +} + +.panel-title a:before { + color: #74b2ff; +} + +.panel-title a[aria-expanded="true"] { + color: #74b2ff; +} + +.nav-tabs > li > a { + color: #3b3e43; + border-color: transparent; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + background-color: transparent; + border-color: transparent; + color: #74b2ff; +} + +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #74b2ff; +} + +.vertical-tabs .nav-tabs > li > a { + border-color: transparent; +} + +.vertical-tabs .nav-tabs > li.active > a { + border-color: #d7d7d7; +} + +.vertical-tabs .tab-content { + border-left-color: #d7d7d7; +} + +.social-media a { + color: #acacac; +} + +.social-media a:hover { + color: #74b2ff; +} + +.social-media a.facebook:hover { color: #3b5998 !important; } +.social-media a.twitter:hover { color: #5ea9dd !important; } +.social-media a.google:hover { color: #c63427 !important; } +.social-media a.linkedin:hover { color: #0077b5 !important; } +.social-media a.android:hover { color: #a4c639 !important; } +.social-media a.apple:hover { color: #d6d7cf !important; } +.social-media a.dribbble:hover { color: #e04c86 !important; } +.social-media a.dropbox:hover { color: #007ee6 !important; } +.social-media a.flickr:hover { color: #0062dd !important; } +.social-media a.instagram:hover { color: #a07459 !important; } +.social-media a.linux:hover { color: #000000 !important; } +.social-media a.pinterest:hover { color: #f71819 !important; } +.social-media a.reddit:hover { color: #ff4500 !important; } +.social-media a.share:hover { color: #010101 !important; } +.social-media a.skype:hover { color: #00abeb !important; } +.social-media a.tumblr:hover { color: #34465d !important; } +.social-media a.vimeo:hover { color: #1ca7cc !important; } +.social-media a.vine:hover { color: #02c594 !important; } +.social-media a.vk:hover { color: #4c75a3 !important; } +.social-media a.whatsapp:hover { color: #11ae09 !important; } +.social-media a.windows:hover { color: #00abf3 !important; } +.social-media a.weibo:hover { color: #d52b2b !important; } +.social-media a.wordpress:hover { color: #464646 !important; } +.social-media a.yahoo:hover { color: #44029a !important; } +.social-media a.youtube:hover { color: #e22d24 !important; } + +.process-steps:before { + border-top-color: #d7d7d7; +} + +.process-steps .step i { + border-color: #3b3e43; + background-color: #fff; + outline-color: #fff; +} + +.process-steps .step:hover i { + border-color: #74b2ff; + color: #74b2ff; +} + +.process-steps .step:hover h5 { + color: #74b2ff; +} + +.pie-chart-details h1 small { + color: #74b2ff; +} + +.legend li:nth-child(1):before { + background-color: #3b3e43; +} + +.legend li:nth-child(2):before { + background-color: #a2a5ab; +} + +.legend li:nth-child(3):before { + background-color: #74b2ff; +} + +.legend li:nth-child(4):before { + background-color: #efdbbd; +} + +.progress { + background-color: #d7d7d7; +} + +.progress-bar { + background-color: #3b3e43; +} + +.counter { + color: #74b2ff; +} + +.price-plan { + border-color: #d7d7d7; +} + +.price-plan:before { + border-right-color: #74b2ff; + border-left-color: #74b2ff; +} + +.price-plan:after { + border-top-color: #74b2ff; + border-bottom-color: #74b2ff; +} + +.price-plan-heading { + color: #74b2ff; +} + +.price-plan-heading h3:after { + border-bottom-color: #74b2ff; +} + +.price-plan-heading h1 small { + color: #d7d7d7; +} + +.price-plan ul li { + border-top-color: #d7d7d7; +} + +.price-plan ul li:last-child { + border-bottom-color: #d7d7d7; +} + +.price-plan:hover { + border-color: transparent; +} + +.testimonial blockquote { + color: #3b3e43; +} + +.testimonial h5 { + color: #74b2ff; +} + +.testimonial.with-background { + background-color: #3b3e43; + color: #fff; +} + +.testimonial.with-background blockquote { + color: #fff; +} + +.filter li { + border-right-color: #74b2ff; +} + +.filter li a { + color: #3b3e43; +} + +.filter li a:hover, +.filter li a.active { + color: #74b2ff;; +} + +.pagination li a { + background-color: #3b3e43; + color: #fff; +} + +.pagination > li > a:hover, +.pagination > li.active > a, +.pagination > li.active > a:hover { + background-color: #74b2ff; + color: #fff; +} + +.breadcrumb { + background-color: transparent; +} + +.breadcrumb li a { + color: #74b2ff; +} + +.breadcrumb li a:hover { + color: #3b3e43; +} + +.breadcrumb li.active { + color: #3b3e43; +} + +.timeline-item:after { + border-left-color: #3b3e43; +} + +.timeline-item h2 a:after, +.timeline-item h2 a:before { + background-color: #74b2ff; +} + + + + +.full-section { + background-color: #333; + color: #fff; +} + +.full-section h1 a, +.full-section h2 a, +.full-section h3 a, +.full-section h4 a, +.full-section h5 a, +.full-section h6 a, +.full-section .nav-tabs > li > a, +.full-section .panel-title a:focus, +.full-section .process-steps .step:hover i { + color: #74b2ff; +} + +.full-section h1 a:hover, +.full-section h2 a:hover, +.full-section h3 a:hover, +.full-section h4 a:hover, +.full-section h5 a:hover, +.full-section h6 a:hover, +.full-section .counter-value, +.full-section .testimonial blockquote, +.full-section .panel-title a[aria-expanded="true"] { + color: #fff; +} + +.full-section .process-steps .step i { + color: #fff; + background-color: #3b3e43; + border-color: #fff; +} + +.full-section .process-steps .step:hover i { + border-color: #74b2ff; +} + + +#section-1 { + background-image: url(../../../images/backgrounds/bg-2.jpg); +} + +.project-slider-tabs { + border-top-color: #74b2ff; + border-bottom-color: #74b2ff; + background-color: #74b2ff; +} + +#section-3 { + background-image: url(../../../images/backgrounds/bg-7.jpg); +} + +#section-4 { + background-image: url(../../../images/backgrounds/bg-3.jpg); +} + +#section-5 { + background-image: url(../../../images/backgrounds/bg-4.jpg); +} + +#section-6 { + background-color: #f4f4f4; +} + +#section-7 { + background-image: url(../../../images/backgrounds/bg-5.jpg); +} + +#section-8 { + background-color: #2b2e31; +} + +#section-9 { + background-image: url(../../../images/backgrounds/bg-7.jpg); +} + +#section-10 { + background-color: #3b3e43; +} + + +#section-11 { + background-image: url(../../../images/backgrounds/bg-5.jpg); +} + +#section-12 { + background-color: #f4f4f4; +} + +#go-top { + color: #74b2ff; +} + +.tp-leftarrow.default, +.tp-rightarrow.default { + background-color: #74b2ff; +} + +.tp-leftarrow.default:hover, +.tp-rightarrow.default:hover { + background-color: #3b3e43; +} + +.tp-leftarrow.default { + background-image: url(../../../images/backgrounds/prev.png); +} + +.tp-rightarrow.default { + background-image: url(../../../images/backgrounds/next.png); +} + +.tp-bullets.simplebullets.round .bullet { + background: #74b2ff; + border: 1px solid #74b2ff; +} + +.tp-bullets.simplebullets.round .bullet:hover, +.tp-bullets.simplebullets.round .bullet.selected { background-color: #fff; } + +.tp-caption.title { + color: #74b2ff; +} + +.tp-caption.title-white { + color: #fff; +} + +.tp-caption.title:after { + border-bottom-color: #74b2ff; +} + +.tp-caption.text-white { + color: #fff; +} + +.tp-caption.social-icon a { + color: #74b2ff; + border-right-color: #74b2ff; +} + +.tp-caption.social-icon a:hover { + color: #3b3e43; +} + +.tp-caption .btn, +.tp-caption .btn:hover { + color: #fff; +} + +.bx-wrapper .bx-viewport { + background: transparent; +} + +.bx-wrapper .bx-controls-direction a { + background-color: #74b2ff; +} + +.bx-wrapper .bx-controls-direction a:hover { + background-color: #3b3e43; +} + +.bx-wrapper .bx-prev { + background-image: url(../../../images/backgrounds/prev.png); +} + +.bx-wrapper .bx-next { + background-image: url(../../../images/backgrounds/next.png); +} + +.bx-wrapper .bx-pager.bx-default-pager a { + border-color: #74b2ff; + background-color: #74b2ff; +} + +.bx-wrapper .bx-pager.bx-default-pager a:hover, +.bx-wrapper .bx-pager.bx-default-pager a.active { + background-color: #fff; +} + +#project-slider-control a { + background-color: #fff; + border-right-color: #74b2ff; +} + +#project-slider-control a:first-child { + border-left-color: #74b2ff; +} + +#project-slider-control a:hover, +#project-slider-control a.active { + background-color: transparent; + color: #fff; +} + +#twitter-slider-prev a, +#twitter-slider-next a { + color: #fff; +} + +.widget-title:after { + border-bottom-color: #74b2ff; +} + +.widget-search input[type="submit"] { + background-image: url(../../../images/backgrounds/search.png); +} + +.widget_categories ul li { + border-bottom-color: #d7d7d7; +} + +.widget_categories ul li a { + color: #3b3e43; +} + +.widget_categories ul li a:hover { + color: #74b2ff; +} + +.widget_archive ul li { + border-bottom-color: #d7d7d7; +} + +.widget_archive ul li a { + color: #3b3e43; +} + +.widget_archive ul li a:hover { + color: #74b2ff; +} + +.widget_pages ul li { + border-bottom-color: #d7d7d7; +} + +.widget_pages ul li a { + color: #3b3e43; +} + +.widget_pages ul li a:hover { + color: #74b2ff; +} + +.widget_pages ul li ul { + border-top-color: #d7d7d7; +} + +.widget_nav_menu ul li { + border-bottom-color: #d7d7d7; +} + +.widget_nav_menu ul li a { + color: #3b3e43; +} + +.widget_nav_menu ul li a:hover { + color: #74b2ff; +} + +.widget_nav_menu ul li ul { + border-top-color: #d7d7d7; +} + +.widget_meta ul li { + border-bottom-color: #d7d7d7; +} + +.widget_meta ul li a { + color: #3b3e43; +} + +.widget_meta ul li a:hover { + color: #74b2ff; +} + +.widget_recent_entries ul li { + border-bottom-color: #d7d7d7; +} + +.widget_recent_entries ul li a { + color: #3b3e43; +} + +.widget_recent_entries ul li a:hover { + color: #74b2ff; +} + +.widget_rss ul li { + border-bottom-color: #d7d7d7; +} + +.widget_rss ul li a { + color: #3b3e43; +} + +.widget_rss ul li a:hover { + color: #74b2ff; +} + +.widget_tag_cloud a { + border-color: #74b2ff; +} + +.widget_tag_cloud a:after { + background-color: #74b2ff; +} + +.widget_tag_cloud a:hover { + background-color: transparent; + color: #fff; +} + +.widget-newsletter input[type="submit"] { + background-image: url(../../../images/backgrounds/arrow.png); +} + +.widget-newsletter input[type="submit"]:hover { + background-color: #74b2ff; +} + +.widget-newsletter p { + color: #acacac; +} + +.ffWidgetLatestNews ul.alt li { + border-bottom-color: #d7d7d7; +} + +.ffWidgetLatestNews ul.alt li .post-title { + color: #3b3e43; +} + +.ffWidgetLatestNews ul.alt li .post-title:hover { + color: #74b2ff; +} + +.ffWidgetLatestNews ul.alt li .post-date { + color: #acacac; +} + +.ffWidgetLatestNews ul li .news-title { + border-bottom-color: #d7d7d7; +} + +.ffWidgetLatestNews ul li .news-title a { + color: #3b3e43; +} + +.ffWidgetLatestNews ul li .news-title:hover a { + color: #74b2ff; +} + +.ffWidgetLatestNews ul li .news-date { + color: #acacac; +} + +.widget_calendar table th, +.widget_calendar table td { + border-top-color: #3b3e43; + border-left-color: #3b3e43; +} + +.widget_calendar table th:last-child, +.widget_calendar table td:last-child { + border-right-color: #3b3e43; +} + +.widget_calendar table tr:last-child td { + border-bottom-color: #3b3e43; +} + +.widget_calendar table td#today { + background-color: #74b2ff; + color: #fff; +} + +.widget-flickr p { + color: #acacac; +} + +.widget_contact ul li { + border-bottom-color: #d7d7d7; +} + +.widget_contact ul li span { + color: #74b2ff; +} + +.widget-twitter:before { + color: #74b2ff; +} + +@media (min-width: 768px) and (max-width: 991px) { + + .widget-tab .nav-tabs > li > a { + border-color: #d7d7d7; + } + + .widget-tab .nav-tabs > li > a:hover { + border-color: #d7d7d7; + } + +} + +@media (max-width: 767px) { + + .nav-tabs > li > a { + border-color: #d7d7d7; + } + + .nav-tabs > li > a:hover { + border-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li > a, + .vertical-tabs .nav-tabs > li.active > a { + border-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li:first-child > a { + border-top-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li:last-child > a { + border-bottom-color: #d7d7d7; + } + + #project-slider-control a { + border-left-color: #74b2ff; + border-bottom-color: #74b2ff; + } + +} + + #page-wrapper { + background-color: #fff; +} + +.boxed #page-wrapper { + -webkit-box-shadow: 0px 0px 5px #323232; + box-shadow: 0px 0px 5px #323232; +} + +#page-wrapper > header .menu li a { + color: #3b3e43; +} + +#page-wrapper > header .menu li a:hover, +#page-wrapper > header .menu li.active > a, +#page-wrapper > header .menu li.sfHover > a { + color: #74b2ff; +} + +#page-wrapper > header .menu li.dropdown ul { + border-color: #d7d7d7; + border-top-color: #74b2ff; + background-color: #fff; +} + +#page-wrapper > header .menu li.dropdown ul li a:before { + color: #74b2ff; + border-color: #74b2ff; +} + +#page-wrapper > header .menu li.megamenu .megamenu-container { + border-color: #d7d7d7; + border-top-color: #74b2ff; + background: #fff url(../../../images/backgrounds/bg-megamenu.jpg) no-repeat center center; +} + +.megamenu-container .section ul li a:before { + color: #74b2ff; + border-color: #74b2ff; +} + +.sf-arrows .sf-with-ul:after { + border-color: transparent; + border-top-color: #3b3e43; +} + +.sf-arrows > li:hover > .sf-with-ul:after { + border-top-color: #74b2ff; +} + +.sf-arrows ul .sf-with-ul:after { + border-color: transparent; + border-left-color: #3b3e43; +} + +.sf-arrows ul li:hover > .sf-with-ul:after { + border-left-color: #74b2ff; +} + +#page-wrapper > header .menu.nav > li > a:hover, +#page-wrapper > header .menu.nav > li > a:focus { + background-color: transparent; +} + +#page-wrapper > header .menu.nav > li > a:focus { + color: #3b3e43; +} + +#page-wrapper > header .menu.nav > li.active > a { + color: #74b2ff; +} + +#page-wrapper > header .menu.dark li.dropdown ul { + background-color: #3b3e43; + color: #fff; +} + +#page-wrapper > header .menu.dark li.megamenu .megamenu-container { + background-color: #3b3e43; + color: #fff; +} + +#page-wrapper > header .menu.dark li.dropdown ul li > a, +#page-wrapper > header .menu.dark li.megamenu .megamenu-container a { + color: #fff; +} + +#page-wrapper > header .menu.dark li.dropdown.sfHover > a, +#page-wrapper > header .menu.dark li.dropdown ul li > a:hover, +#page-wrapper > header .menu.dark li.megamenu .megamenu-container a:hover { + color: #74b2ff; +} + +#mobile-menu-button:hover { + background-color: #74b2ff; + color: #fff; +} + +#mobile-menu, +#mobile-menu ul { + background-color: #74b2ff; + color: #fff; +} + +#mobile-menu li a { + color: #fff; + border-bottom-color: #fff; +} + +#mobile-menu li.dropdown > a:after, +#mobile-menu li.megamenu > a:after { + border-color: transparent; + border-top-color: #fff; +} + +#mobile-menu li.dropdown > a.open:after, +#mobile-menu li.megamenu > a.open:after { + border-top-color: transparent; + border-bottom-color: #fff; +} + +a.search-button { + color: #3b3e43; +} + +a.search-button.open .triangle { + border-left-color: transparent; + border-right-color: transparent; + border-top-color: #3b3e43; + content: ""; + -moz-transform: scale(0.9999); +} + +a.search-button.open, +a.search-button:hover { + background-color: #74b2ff; + color: #fff; +} + +#search-container { + background-color: #3b3e43; + color: #fff; +} + +#search-container input[type="text"] { + background-color: transparent; +} + +@media (min-width: 992px) { + + header.header-sticky { + background-color: #fff; + box-shadow: 0 1px 3px rgba(0,0,0,0.18); + } + +} + +#page-header { + border-top-color: #d7d7d7; + border-bottom-color: #d7d7d7; + position: relative; +} + +#page-header.dark-1 { + background-color: #3b3e43; + color: #fff; +} + +#page-header.dark-2 { + color: #fff; +} + +#page-header.dark-1 .breadcrumb li a, +#page-header.dark-2 .breadcrumb li a { + color: #fff; +} + +#page-header.dark-1 .breadcrumb li a:hover, +#page-header.dark-2 .breadcrumb li a:hover { + color: #74b2ff; +} + +#page-header.dark-1 .breadcrumb li.active, +#page-header.dark-2 .breadcrumb li.active { + color: #74b2ff; +} + +#footer-top { + background-color: #f1f1f1 ; +} + +#footer { + background-color: #3b3e43; + color: #d7d7d7; +} + +#footer a { + color: #d7d7d7; +} + +#footer a:hover { + color: #74b2ff; +} + +#footer .widget-search input[type="submit"] { + background-image: url(../../../images/backgrounds/search-2.png); +} + +#footer .widget-newsletter input[type="submit"] { + background-image: url(../../../images/backgrounds/arrow-2.png); +} + +#footer .widget_calendar table th, +#footer .widget_calendar table td { + border-color: #fff; +} + +#footer-bottom { + background-color: #2b2e31; + color: #585c62; +} + +#footer-bottom a { + color: #585c62; +} + +#footer-bottom a:hover { + color: #74b2ff; +} + +.about-me-thumbnail { + border-color: #d7d7d7; +} + +.about-me-thumbnail .social-media { + background-color: #3b3e43; +} + +.about-me-thumbnail .social-media a { + color: #fff; +} + +.about-me-details h5 { + color: #74b2ff; +} + +.services-boxes.style-1:hover h5, +.services-boxes.style-1:hover h2 a { + color: #74b2ff; +} + +.services-boxes.style-2 h3 small { + color: #74b2ff; +} + +.services-boxes.style-3 > i { + color: #74b2ff; +} + +.services-boxes.style-3 .services-boxes-content h3:after { + border-bottom-color: #74b2ff; +} + +.services-boxes.style-4 h3 small { + color: #74b2ff; +} + +.portfolio-item-hover { + background-color: rgba(59, 62, 67, 0.85); + color: #74b2ff; +} + +.portfolio-item-hover .portfolio-item-description h3 a { + color: #fff; +} + +.portfolio-item-description h3 a:hover { + color: #74b2ff; +} + +.portfolio-item-hover a.zoom-action:hover { + color: #fff; +} + +.portfolio-item.classic .portfolio-item-description h3 a { + color: #3b3e43; +} + +.portfolio-item.classic .portfolio-item-description h3 a:hover { + color: #74b2ff; +} + +.portfolio-item.classic .portfolio-item-description h5 { + color: #74b2ff; +} + +.portfolio-item.parallax .pattern { + background-image: url(../../../images/backgrounds/pattern.png); +} + +.portfolio-item.parallax .portfolio-item-description h1 a { + color: #fff; +} + +.portfolio-item.parallax .portfolio-item-description h1 a:hover { + color: #74b2ff; +} + +.portfolio-item.parallax .portfolio-item-description h2 { + color: #74b2ff; +} + +.portfolio-item.parallax .portfolio-item-description h3 { + color: #74b2ff; +} + +.project-details li { + border-bottom-color: #d7d7d7; +} + +.project-details li small { + color: #74b2ff; +} + +.blog-article-hover { + background-color: rgba(59, 62, 67, 0.85); + color: #74b2ff; +} + +.blog-article-hover .zoom-action { + color: #fff; +} + +.blog-article .blog-article-hover .zoom-action:hover { + color: #74b2ff; +} + +.blog-article-details h4, +.blog-article-details h6 { + color: #74b2ff; +} + +.blog-article-author { + border-color: #d7d7d7; +} + +.blog-article-author > p { + color: #74b2ff; +} + +.blog-article-author-details h4 { + color: #74b2ff; +} + +.commentlist-title:after { + border-bottom-color: #74b2ff; +} + +.comment-author .fn { + color: #3b3e43; +} + +.comment-metadata a { + color: #d7d7d7; +} + +.commentform-title:after { + border-bottom-color: #74b2ff; +} + +#commentform input[type="text"], +#commentform textarea { + border-bottom-color: #d7d7d7; +} + +#commentform input[type="text"]:focus, +#commentform textarea:focus { + border-bottom-color: #3b3e43; +} + +#commentform input[type="submit"]:hover { + background-color: #3b3e43; +} + +#contact-form input[type="text"], +#contact-form textarea { + border-bottom-color: #d7d7d7; +} + +#contact-form input[type="text"]:focus, +#contact-form textarea:focus { + border-bottom-color: #3b3e43; +} + +#contact-form input[type="submit"]:hover { + background-color: #3b3e43; +} + +#contact-form label.error { + color: #f00; +} + +.elements-menu { + background-color: #fff; +} + +.elements-menu .nav > li > a, +.elements-menu .nav > li > a:focus { + color: #3b3e43; +} + +.elements-menu .nav > li > a:hover, +.elements-menu .nav > li.active > a { + color: #74b2ff; + background-color: transparent; +} + +.elements-menu .nav > li > a:focus { + background-color: transparent; +} \ No newline at end of file diff --git a/wp-content/themes/milo/assets/css/alternative-styles/default.css b/wp-content/themes/milo/assets/css/alternative-styles/default.css new file mode 100644 index 0000000..e5b6b8a --- /dev/null +++ b/wp-content/themes/milo/assets/css/alternative-styles/default.css @@ -0,0 +1,1276 @@ +/* + * + * DEFAULT.CSS + * + */ + +body { + background-color: #fff; + color: #3b3e43; +} + +h1 a, +h2 a, +h3 a, +h4 a, +h5 a, +h6 a { + color: #3b3e43; +} + +blockquote { + color: #bca480; +} + +a { + color: #bca480; +} + +a:hover, +a:focus { + color: #bca480; +} + +.hr { + border-top-color: #000; +} + +.text-primary { + color: #bca480; +} + +input, +select, +textarea { + border-color: #ccc; + background-color: transparent; +} + +input[type="text"]:focus, +input[type="text"]:focus, +input[type="text"]:focus, +input[type="url"]:focus, +textarea:focus { + border-color: #000; +} + +.headline.style-1 h4 { + color: #bca480; +} + +.headline.style-2 i { + color: #bca480; +} + +.headline.style-3 h5 { + color: #bca480; +} + +.alert { + color: #fff; +} + +.alert:after { + border-left-color: #fff; +} + +.alert.alert-info { + background-color: #3b3e44; +} + +.alert.alert-danger { + background-color: #9e0b0f; +} + +.alert.alert-success { + background-color: #bca480; +} + +.alert.alert-warning { + background-color: #fff; + color: #3b3e43; + border-color: #3b3e44; +} + +.alert.alert-warning:after { + border-color: #3b3e44; +} + +.check-list li:before { + border-color: #3b3e43; +} + +.btn:hover { + background-color: transparent; +} + +.btn i { + border-left-color: #fff; +} + +.btn-default { + border: 1px solid #bca480; + background-color: #bca480; + color: #fff; +} + +.btn-default:after { + background-color: #3b3e43; +} + +.btn-default:hover { + border-color: #3b3e43; + background-color: #bca480; + color: #fff; +} + +.btn-default:focus { + background-color: #bca480; + color: #fff; +} + +.btn-black { + border: 1px solid #3b3e43; + background-color: #3b3e43; + color: #fff; +} + +.btn-black:after { + background-color: #bca480; +} + +.btn-black:hover { + border-color: #bca480; + background-color: #3b3e43; + color: #fff; +} + +.btn-black:focus { + color: #fff; +} + +.btn-white { + border: 1px solid #bca480; + background-color: transparent; +} + +.btn-white i { + border-left-color: #bca480; + color: #bca480; +} + +.btn-white:after { + background-color: #bca480; +} + +.btn-white:hover { + border-color: #bca480; + background-color: transparent; + color: #fff; +} + +.btn-white:hover i { + border-left-color: #fff; +} + +.panel { + background-color: transparent; +} + +.panel-heading { + background-color: transparent; +} + +.panel-title a, +.panel-title a:focus { + border-top-color: #d7d7d7; + color: #3b3e43; +} + +.panel-title a:before { + color: #bca480; +} + +.panel-title a[aria-expanded="true"] { + color: #bca480; +} + +.nav-tabs > li > a { + color: #3b3e43; + border-color: transparent; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + background-color: transparent; + border-color: transparent; + color: #bca480; +} + +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #bca480; +} + +.vertical-tabs .nav-tabs > li > a { + border-color: transparent; +} + +.vertical-tabs .nav-tabs > li.active > a { + border-color: #d7d7d7; +} + +.vertical-tabs .tab-content { + border-left-color: #d7d7d7; +} + +.social-media a { + color: #acacac; +} + +.social-media a:hover { + color: #bca480; +} + +.social-media a.facebook:hover { color: #3b5998 !important; } +.social-media a.twitter:hover { color: #5ea9dd !important; } +.social-media a.google:hover { color: #c63427 !important; } +.social-media a.linkedin:hover { color: #0077b5 !important; } +.social-media a.android:hover { color: #a4c639 !important; } +.social-media a.apple:hover { color: #d6d7cf !important; } +.social-media a.dribbble:hover { color: #e04c86 !important; } +.social-media a.dropbox:hover { color: #007ee6 !important; } +.social-media a.flickr:hover { color: #0062dd !important; } +.social-media a.instagram:hover { color: #a07459 !important; } +.social-media a.linux:hover { color: #000000 !important; } +.social-media a.pinterest:hover { color: #f71819 !important; } +.social-media a.reddit:hover { color: #ff4500 !important; } +.social-media a.share:hover { color: #010101 !important; } +.social-media a.skype:hover { color: #00abeb !important; } +.social-media a.tumblr:hover { color: #34465d !important; } +.social-media a.vimeo:hover { color: #1ca7cc !important; } +.social-media a.vine:hover { color: #02c594 !important; } +.social-media a.vk:hover { color: #4c75a3 !important; } +.social-media a.whatsapp:hover { color: #11ae09 !important; } +.social-media a.windows:hover { color: #00abf3 !important; } +.social-media a.weibo:hover { color: #d52b2b !important; } +.social-media a.wordpress:hover { color: #464646 !important; } +.social-media a.yahoo:hover { color: #44029a !important; } +.social-media a.youtube:hover { color: #e22d24 !important; } + +.process-steps:before { + border-top-color: #d7d7d7; +} + +.process-steps .step i { + border-color: #3b3e43; + background-color: #fff; + outline-color: #fff; +} + +.process-steps .step:hover i { + border-color: #bca480; + color: #bca480; +} + +.process-steps .step:hover h5 { + color: #bca480; +} + +.pie-chart-details h1 small { + color: #bca480; +} + +.legend li:nth-child(1):before { + background-color: #3b3e43; +} + +.legend li:nth-child(2):before { + background-color: #a2a5ab; +} + +.legend li:nth-child(3):before { + background-color: #bca480; +} + +.legend li:nth-child(4):before { + background-color: #efdbbd; +} + +.progress { + background-color: #d7d7d7; +} + +.progress-bar { + background-color: #3b3e43; +} + +.counter { + color: #bca480; +} + +.price-plan { + border-color: #d7d7d7; +} + +.price-plan:before { + border-right-color: #bca480; + border-left-color: #bca480; +} + +.price-plan:after { + border-top-color: #bca480; + border-bottom-color: #bca480; +} + +.price-plan-heading { + color: #bca480; +} + +.price-plan-heading h3:after { + border-bottom-color: #bca480; +} + +.price-plan-heading h1 small { + color: #d7d7d7; +} + +.price-plan ul li { + border-top-color: #d7d7d7; +} + +.price-plan ul li:last-child { + border-bottom-color: #d7d7d7; +} + +.price-plan:hover { + border-color: transparent; +} + +.testimonial blockquote { + color: #3b3e43; +} + +.testimonial h5 { + color: #bca480; +} + +.testimonial.with-background { + background-color: #3b3e43; + color: #fff; +} + +.testimonial.with-background blockquote { + color: #fff; +} + +.filter li { + border-right-color: #bca480; +} + +.filter li a { + color: #3b3e43; +} + +.filter li a:hover, +.filter li a.active { + color: #bca480;; +} + +.pagination li a { + background-color: #3b3e43; + color: #fff; +} + +.pagination > li > a:hover, +.pagination > li.active > a, +.pagination > li.active > a:hover { + background-color: #bca480; + color: #fff; +} + +.breadcrumb { + background-color: transparent; +} + +.breadcrumb li a { + color: #bca480; +} + +.breadcrumb li a:hover { + color: #3b3e43; +} + +.breadcrumb li.active { + color: #3b3e43; +} + +.timeline-item:after { + border-left-color: #3b3e43; +} + +.timeline-item h2 a:after, +.timeline-item h2 a:before { + background-color: #bca480; +} + + + + +.full-section { + background-color: #333; + color: #fff; +} + +.full-section h1 a, +.full-section h2 a, +.full-section h3 a, +.full-section h4 a, +.full-section h5 a, +.full-section h6 a, +.full-section .nav-tabs > li > a, +.full-section .panel-title a:focus, +.full-section .process-steps .step:hover i { + color: #bca480; +} + +.full-section h1 a:hover, +.full-section h2 a:hover, +.full-section h3 a:hover, +.full-section h4 a:hover, +.full-section h5 a:hover, +.full-section h6 a:hover, +.full-section .counter-value, +.full-section .testimonial blockquote, +.full-section .panel-title a[aria-expanded="true"] { + color: #fff; +} + +.full-section .process-steps .step i { + color: #fff; + background-color: #3b3e43; + border-color: #fff; +} + +.full-section .process-steps .step:hover i { + border-color: #bca480; +} + + +#section-1 { + background-image: url(../../../images/backgrounds/bg-2.jpg); +} + +.project-slider-tabs { + border-top-color: #bca480; + border-bottom-color: #bca480; + background-color: #bca480; +} + +#section-3 { + background-image: url(../../../images/backgrounds/bg-7.jpg); +} + +#section-4 { + background-image: url(../../../images/backgrounds/bg-3.jpg); +} + +#section-5 { + background-image: url(../../../images/backgrounds/bg-4.jpg); +} + +#section-6 { + background-color: #f4f4f4; +} + +#section-7 { + background-image: url(../../../images/backgrounds/bg-5.jpg); +} + +#section-8 { + background-color: #2b2e31; +} + +#section-9 { + background-image: url(../../../images/backgrounds/bg-7.jpg); +} + +#section-10 { + background-color: #3b3e43; +} + + +#section-11 { + background-image: url(../../../images/backgrounds/bg-5.jpg); +} + +#section-12 { + background-color: #f4f4f4; +} + +#go-top { + color: #bca480; +} + +.tp-leftarrow.default, +.tp-rightarrow.default { + background-color: #bca480; +} + +.tp-leftarrow.default:hover, +.tp-rightarrow.default:hover { + background-color: #3b3e43; +} + +.tp-leftarrow.default { + background-image: url(../../../images/backgrounds/prev.png); +} + +.tp-rightarrow.default { + background-image: url(../../../images/backgrounds/next.png); +} + +.tp-bullets.simplebullets.round .bullet { + background: #bca480; + border: 1px solid #bca480; +} + +.tp-bullets.simplebullets.round .bullet:hover, +.tp-bullets.simplebullets.round .bullet.selected { background-color: #fff; } + +.tp-caption.title { + color: #bca480; +} + +.tp-caption.title-white { + color: #fff; +} + +.tp-caption.title:after { + border-bottom-color: #bca480; +} + +.tp-caption.text-white { + color: #fff; +} + +.tp-caption.social-icon a { + color: #bca480; + border-right-color: #bca480; +} + +.tp-caption.social-icon a:hover { + color: #3b3e43; +} + +.tp-caption .btn, +.tp-caption .btn:hover { + color: #fff; +} + +.bx-wrapper .bx-viewport { + background: transparent; +} + +.bx-wrapper .bx-controls-direction a { + background-color: #bca480; +} + +.bx-wrapper .bx-controls-direction a:hover { + background-color: #3b3e43; +} + +.bx-wrapper .bx-prev { + background-image: url(../../../images/backgrounds/prev.png); +} + +.bx-wrapper .bx-next { + background-image: url(../../../images/backgrounds/next.png); +} + +.bx-wrapper .bx-pager.bx-default-pager a { + border-color: #bca480; + background-color: #bca480; +} + +.bx-wrapper .bx-pager.bx-default-pager a:hover, +.bx-wrapper .bx-pager.bx-default-pager a.active { + background-color: #fff; +} + +#project-slider-control a { + background-color: #fff; + border-right-color: #bca480; +} + +#project-slider-control a:first-child { + border-left-color: #bca480; +} + +#project-slider-control a:hover, +#project-slider-control a.active { + background-color: transparent; + color: #fff; +} + +#twitter-slider-prev a, +#twitter-slider-next a { + color: #fff; +} + +.widget-title:after { + border-bottom-color: #bca480; +} + +.widget-search input[type="submit"] { + background-image: url(../../../images/backgrounds/search.png); +} + +.widget_categories ul li { + border-bottom-color: #d7d7d7; +} + +.widget_categories ul li a { + color: #3b3e43; +} + +.widget_categories ul li a:hover { + color: #bca480; +} + +.widget_archive ul li { + border-bottom-color: #d7d7d7; +} + +.widget_archive ul li a { + color: #3b3e43; +} + +.widget_archive ul li a:hover { + color: #bca480; +} + +.widget_pages ul li { + border-bottom-color: #d7d7d7; +} + +.widget_pages ul li a { + color: #3b3e43; +} + +.widget_pages ul li a:hover { + color: #bca480; +} + +.widget_pages ul li ul { + border-top-color: #d7d7d7; +} + +.widget_nav_menu ul li { + border-bottom-color: #d7d7d7; +} + +.widget_nav_menu ul li a { + color: #3b3e43; +} + +.widget_nav_menu ul li a:hover { + color: #bca480; +} + +.widget_nav_menu ul li ul { + border-top-color: #d7d7d7; +} + +.widget_meta ul li { + border-bottom-color: #d7d7d7; +} + +.widget_meta ul li a { + color: #3b3e43; +} + +.widget_meta ul li a:hover { + color: #bca480; +} + +.widget_recent_entries ul li { + border-bottom-color: #d7d7d7; +} + +.widget_recent_entries ul li a { + color: #3b3e43; +} + +.widget_recent_entries ul li a:hover { + color: #bca480; +} + +.widget_rss ul li { + border-bottom-color: #d7d7d7; +} + +.widget_rss ul li a { + color: #3b3e43; +} + +.widget_rss ul li a:hover { + color: #bca480; +} + +.widget_tag_cloud a { + border-color: #bca480; +} + +.widget_tag_cloud a:after { + background-color: #bca480; +} + +.widget_tag_cloud a:hover { + background-color: transparent; + color: #fff; +} + +.widget-newsletter input[type="submit"] { + background-image: url(../../../images/backgrounds/arrow.png); +} + +.widget-newsletter input[type="submit"]:hover { + background-color: #bca480; +} + +.widget-newsletter p { + color: #acacac; +} + +.ffWidgetLatestNews ul.alt li { + border-bottom-color: #d7d7d7; +} + +.ffWidgetLatestNews ul.alt li .post-title { + color: #3b3e43; +} + +.ffWidgetLatestNews ul.alt li .post-title:hover { + color: #bca480; +} + +.ffWidgetLatestNews ul.alt li .post-date { + color: #acacac; +} + +.ffWidgetLatestNews ul li .news-title { + border-bottom-color: #d7d7d7; +} + +.ffWidgetLatestNews ul li .news-title a { + color: #3b3e43; +} + +.ffWidgetLatestNews ul li .news-title:hover a { + color: #bca480; +} + +.ffWidgetLatestNews ul li .news-date { + color: #acacac; +} + +.widget_calendar table th, +.widget_calendar table td { + border-top-color: #3b3e43; + border-left-color: #3b3e43; +} + +.widget_calendar table th:last-child, +.widget_calendar table td:last-child { + border-right-color: #3b3e43; +} + +.widget_calendar table tr:last-child td { + border-bottom-color: #3b3e43; +} + +.widget_calendar table td#today { + background-color: #bca480; + color: #fff; +} + +.widget-flickr p { + color: #acacac; +} + +.widget_contact ul li { + border-bottom-color: #d7d7d7; +} + +.widget_contact ul li span { + color: #bca480; +} + +.widget-twitter:before { + color: #bca480; +} + +@media (min-width: 768px) and (max-width: 991px) { + + .widget-tab .nav-tabs > li > a { + border-color: #d7d7d7; + } + + .widget-tab .nav-tabs > li > a:hover { + border-color: #d7d7d7; + } + +} + +@media (max-width: 767px) { + + .nav-tabs > li > a { + border-color: #d7d7d7; + } + + .nav-tabs > li > a:hover { + border-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li > a, + .vertical-tabs .nav-tabs > li.active > a { + border-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li:first-child > a { + border-top-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li:last-child > a { + border-bottom-color: #d7d7d7; + } + + #project-slider-control a { + border-left-color: #bca480; + border-bottom-color: #bca480; + } + +} + + #page-wrapper { + background-color: #fff; +} + +.boxed #page-wrapper { + -webkit-box-shadow: 0px 0px 5px #323232; + box-shadow: 0px 0px 5px #323232; +} + +#page-wrapper > header .menu li a { + color: #3b3e43; +} + +#page-wrapper > header .menu li a:hover, +#page-wrapper > header .menu li.active > a, +#page-wrapper > header .menu li.sfHover > a { + color: #bca480; +} + +#page-wrapper > header .menu li.dropdown ul { + border-color: #d7d7d7; + border-top-color: #bca480; + background-color: #fff; +} + +#page-wrapper > header .menu li.dropdown ul li a:before { + color: #bca480; + border-color: #bca480; +} + +#page-wrapper > header .menu li.megamenu .megamenu-container { + border-color: #d7d7d7; + border-top-color: #bca480; + background: #fff url(../../../images/backgrounds/bg-megamenu.jpg) no-repeat center center; +} + +.megamenu-container .section ul li a:before { + color: #bca480; + border-color: #bca480; +} + +.sf-arrows .sf-with-ul:after { + border-color: transparent; + border-top-color: #3b3e43; +} + +.sf-arrows > li:hover > .sf-with-ul:after { + border-top-color: #bca480; +} + +.sf-arrows ul .sf-with-ul:after { + border-color: transparent; + border-left-color: #3b3e43; +} + +.sf-arrows ul li:hover > .sf-with-ul:after { + border-left-color: #bca480; +} + +#page-wrapper > header .menu.nav > li > a:hover, +#page-wrapper > header .menu.nav > li > a:focus { + background-color: transparent; +} + +#page-wrapper > header .menu.nav > li > a:focus { + color: #3b3e43; +} + +#page-wrapper > header .menu.nav > li.active > a { + color: #bca480; +} + +#page-wrapper > header .menu.dark li.dropdown ul { + background-color: #3b3e43; + color: #fff; +} + +#page-wrapper > header .menu.dark li.megamenu .megamenu-container { + background-color: #3b3e43; + color: #fff; +} + +#page-wrapper > header .menu.dark li.dropdown ul li > a, +#page-wrapper > header .menu.dark li.megamenu .megamenu-container a { + color: #fff; +} + +#page-wrapper > header .menu.dark li.dropdown.sfHover > a, +#page-wrapper > header .menu.dark li.dropdown ul li > a:hover, +#page-wrapper > header .menu.dark li.megamenu .megamenu-container a:hover { + color: #bca480; +} + +#mobile-menu-button:hover { + background-color: #bca480; + color: #fff; +} + +#mobile-menu, +#mobile-menu ul { + background-color: #bca480; + color: #fff; +} + +#mobile-menu li a { + color: #fff; + border-bottom-color: #fff; +} + +#mobile-menu li.dropdown > a:after, +#mobile-menu li.megamenu > a:after { + border-color: transparent; + border-top-color: #fff; +} + +#mobile-menu li.dropdown > a.open:after, +#mobile-menu li.megamenu > a.open:after { + border-top-color: transparent; + border-bottom-color: #fff; +} + +a.search-button { + color: #3b3e43; +} + +a.search-button.open .triangle { + border-left-color: transparent; + border-right-color: transparent; + border-top-color: #3b3e43; + content: ""; + -moz-transform: scale(0.9999); +} + +a.search-button.open, +a.search-button:hover { + background-color: #bca480; + color: #fff; +} + +#search-container { + background-color: #3b3e43; + color: #fff; +} + +#search-container input[type="text"] { + background-color: transparent; +} + +@media (min-width: 992px) { + + header.header-sticky { + background-color: #fff; + box-shadow: 0 1px 3px rgba(0,0,0,0.18); + } + +} + +#page-header { + border-top-color: #d7d7d7; + border-bottom-color: #d7d7d7; + position: relative; +} + +#page-header.dark-1 { + background-color: #3b3e43; + color: #fff; +} + +#page-header.dark-2 { + color: #fff; +} + +#page-header.dark-1 .breadcrumb li a, +#page-header.dark-2 .breadcrumb li a { + color: #fff; +} + +#page-header.dark-1 .breadcrumb li a:hover, +#page-header.dark-2 .breadcrumb li a:hover { + color: #bca480; +} + +#page-header.dark-1 .breadcrumb li.active, +#page-header.dark-2 .breadcrumb li.active { + color: #bca480; +} + +#footer-top { + background-color: #f1f1f1 ; +} + +#footer { + background-color: #3b3e43; + color: #d7d7d7; +} + +#footer a { + color: #d7d7d7; +} + +#footer a:hover { + color: #bca480; +} + +#footer .widget-search input[type="submit"] { + background-image: url(../../../images/backgrounds/search-2.png); +} + +#footer .widget-newsletter input[type="submit"] { + background-image: url(../../../images/backgrounds/arrow-2.png); +} + +#footer .widget_calendar table th, +#footer .widget_calendar table td { + border-color: #fff; +} + +#footer-bottom { + background-color: #2b2e31; + color: #585c62; +} + +#footer-bottom a { + color: #585c62; +} + +#footer-bottom a:hover { + color: #bca480; +} + +.about-me-thumbnail { + border-color: #d7d7d7; +} + +.about-me-thumbnail .social-media { + background-color: #3b3e43; +} + +.about-me-thumbnail .social-media a { + color: #fff; +} + +.about-me-details h5 { + color: #bca480; +} + +.services-boxes.style-1:hover h5, +.services-boxes.style-1:hover h2 a { + color: #bca480; +} + +.services-boxes.style-2 h3 small { + color: #bca480; +} + +.services-boxes.style-3 > i { + color: #bca480; +} + +.services-boxes.style-3 .services-boxes-content h3:after { + border-bottom-color: #bca480; +} + +.services-boxes.style-4 h3 small { + color: #bca480; +} + +.portfolio-item-hover { + background-color: rgba(59, 62, 67, 0.85); + color: #bca480; +} + +.portfolio-item-hover .portfolio-item-description h3 a { + color: #fff; +} + +.portfolio-item-description h3 a:hover { + color: #bca480; +} + +.portfolio-item-hover a.zoom-action:hover { + color: #fff; +} + +.portfolio-item.classic .portfolio-item-description h3 a { + color: #3b3e43; +} + +.portfolio-item.classic .portfolio-item-description h3 a:hover { + color: #bca480; +} + +.portfolio-item.classic .portfolio-item-description h5 { + color: #bca480; +} + +.portfolio-item.parallax .pattern { + background-image: url(../../../images/backgrounds/pattern.png); +} + +.portfolio-item.parallax .portfolio-item-description h1 a { + color: #fff; +} + +.portfolio-item.parallax .portfolio-item-description h1 a:hover { + color: #bca480; +} + +.portfolio-item.parallax .portfolio-item-description h2 { + color: #bca480; +} + +.portfolio-item.parallax .portfolio-item-description h3 { + color: #bca480; +} + +.project-details li { + border-bottom-color: #d7d7d7; +} + +.project-details li small { + color: #bca480; +} + +.blog-article-hover { + background-color: rgba(59, 62, 67, 0.85); + color: #bca480; +} + +.blog-article-hover .zoom-action { + color: #fff; +} + +.blog-article .blog-article-hover .zoom-action:hover { + color: #bca480; +} + +.blog-article-details h4, +.blog-article-details h6 { + color: #bca480; +} + +.blog-article-author { + border-color: #d7d7d7; +} + +.blog-article-author > p { + color: #bca480; +} + +.blog-article-author-details h4 { + color: #bca480; +} + +.commentlist-title:after { + border-bottom-color: #bca480; +} + +.comment-author .fn { + color: #3b3e43; +} + +.comment-metadata a { + color: #d7d7d7; +} + +.commentform-title:after { + border-bottom-color: #bca480; +} + +#commentform input[type="text"], +#commentform textarea { + border-bottom-color: #d7d7d7; +} + +#commentform input[type="text"]:focus, +#commentform textarea:focus { + border-bottom-color: #3b3e43; +} + +#commentform input[type="submit"]:hover { + background-color: #3b3e43; +} + +#contact-form input[type="text"], +#contact-form textarea { + border-bottom-color: #d7d7d7; +} + +#contact-form input[type="text"]:focus, +#contact-form textarea:focus { + border-bottom-color: #3b3e43; +} + +#contact-form input[type="submit"]:hover { + background-color: #3b3e43; +} + +#contact-form label.error { + color: #f00; +} + +.elements-menu { + background-color: #fff; +} + +.elements-menu .nav > li > a, +.elements-menu .nav > li > a:focus { + color: #3b3e43; +} + +.elements-menu .nav > li > a:hover, +.elements-menu .nav > li.active > a { + color: #bca480; + background-color: transparent; +} + +.elements-menu .nav > li > a:focus { + background-color: transparent; +} \ No newline at end of file diff --git a/wp-content/themes/milo/assets/css/alternative-styles/green.css b/wp-content/themes/milo/assets/css/alternative-styles/green.css new file mode 100644 index 0000000..ba4b93c --- /dev/null +++ b/wp-content/themes/milo/assets/css/alternative-styles/green.css @@ -0,0 +1,1276 @@ +/* + * + * GREEN.CSS + * + */ + +body { + background-color: #fff; + color: #3b3e43; +} + +h1 a, +h2 a, +h3 a, +h4 a, +h5 a, +h6 a { + color: #3b3e43; +} + +blockquote { + color: #a0ce4e; +} + +a { + color: #a0ce4e; +} + +a:hover, +a:focus { + color: #a0ce4e; +} + +.hr { + border-top-color: #000; +} + +.text-primary { + color: #a0ce4e; +} + +input, +select, +textarea { + border-color: #ccc; + background-color: transparent; +} + +input[type="text"]:focus, +input[type="text"]:focus, +input[type="text"]:focus, +input[type="url"]:focus, +textarea:focus { + border-color: #000; +} + +.headline.style-1 h4 { + color: #a0ce4e; +} + +.headline.style-2 i { + color: #a0ce4e; +} + +.headline.style-3 h5 { + color: #a0ce4e; +} + +.alert { + color: #fff; +} + +.alert:after { + border-left-color: #fff; +} + +.alert.alert-info { + background-color: #3b3e44; +} + +.alert.alert-danger { + background-color: #9e0b0f; +} + +.alert.alert-success { + background-color: #a0ce4e; +} + +.alert.alert-warning { + background-color: #fff; + color: #3b3e43; + border-color: #3b3e44; +} + +.alert.alert-warning:after { + border-color: #3b3e44; +} + +.check-list li:before { + border-color: #3b3e43; +} + +.btn:hover { + background-color: transparent; +} + +.btn i { + border-left-color: #fff; +} + +.btn-default { + border: 1px solid #a0ce4e; + background-color: #a0ce4e; + color: #fff; +} + +.btn-default:after { + background-color: #3b3e43; +} + +.btn-default:hover { + border-color: #3b3e43; + background-color: #a0ce4e; + color: #fff; +} + +.btn-default:focus { + background-color: #a0ce4e; + color: #fff; +} + +.btn-black { + border: 1px solid #3b3e43; + background-color: #3b3e43; + color: #fff; +} + +.btn-black:after { + background-color: #a0ce4e; +} + +.btn-black:hover { + border-color: #a0ce4e; + background-color: #3b3e43; + color: #fff; +} + +.btn-black:focus { + color: #fff; +} + +.btn-white { + border: 1px solid #a0ce4e; + background-color: transparent; +} + +.btn-white i { + border-left-color: #a0ce4e; + color: #a0ce4e; +} + +.btn-white:after { + background-color: #a0ce4e; +} + +.btn-white:hover { + border-color: #a0ce4e; + background-color: transparent; + color: #fff; +} + +.btn-white:hover i { + border-left-color: #fff; +} + +.panel { + background-color: transparent; +} + +.panel-heading { + background-color: transparent; +} + +.panel-title a, +.panel-title a:focus { + border-top-color: #d7d7d7; + color: #3b3e43; +} + +.panel-title a:before { + color: #a0ce4e; +} + +.panel-title a[aria-expanded="true"] { + color: #a0ce4e; +} + +.nav-tabs > li > a { + color: #3b3e43; + border-color: transparent; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + background-color: transparent; + border-color: transparent; + color: #a0ce4e; +} + +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #a0ce4e; +} + +.vertical-tabs .nav-tabs > li > a { + border-color: transparent; +} + +.vertical-tabs .nav-tabs > li.active > a { + border-color: #d7d7d7; +} + +.vertical-tabs .tab-content { + border-left-color: #d7d7d7; +} + +.social-media a { + color: #acacac; +} + +.social-media a:hover { + color: #a0ce4e; +} + +.social-media a.facebook:hover { color: #3b5998 !important; } +.social-media a.twitter:hover { color: #5ea9dd !important; } +.social-media a.google:hover { color: #c63427 !important; } +.social-media a.linkedin:hover { color: #0077b5 !important; } +.social-media a.android:hover { color: #a4c639 !important; } +.social-media a.apple:hover { color: #d6d7cf !important; } +.social-media a.dribbble:hover { color: #e04c86 !important; } +.social-media a.dropbox:hover { color: #007ee6 !important; } +.social-media a.flickr:hover { color: #0062dd !important; } +.social-media a.instagram:hover { color: #a07459 !important; } +.social-media a.linux:hover { color: #000000 !important; } +.social-media a.pinterest:hover { color: #f71819 !important; } +.social-media a.reddit:hover { color: #ff4500 !important; } +.social-media a.share:hover { color: #010101 !important; } +.social-media a.skype:hover { color: #00abeb !important; } +.social-media a.tumblr:hover { color: #34465d !important; } +.social-media a.vimeo:hover { color: #1ca7cc !important; } +.social-media a.vine:hover { color: #02c594 !important; } +.social-media a.vk:hover { color: #4c75a3 !important; } +.social-media a.whatsapp:hover { color: #11ae09 !important; } +.social-media a.windows:hover { color: #00abf3 !important; } +.social-media a.weibo:hover { color: #d52b2b !important; } +.social-media a.wordpress:hover { color: #464646 !important; } +.social-media a.yahoo:hover { color: #44029a !important; } +.social-media a.youtube:hover { color: #e22d24 !important; } + +.process-steps:before { + border-top-color: #d7d7d7; +} + +.process-steps .step i { + border-color: #3b3e43; + background-color: #fff; + outline-color: #fff; +} + +.process-steps .step:hover i { + border-color: #a0ce4e; + color: #a0ce4e; +} + +.process-steps .step:hover h5 { + color: #a0ce4e; +} + +.pie-chart-details h1 small { + color: #a0ce4e; +} + +.legend li:nth-child(1):before { + background-color: #3b3e43; +} + +.legend li:nth-child(2):before { + background-color: #a2a5ab; +} + +.legend li:nth-child(3):before { + background-color: #a0ce4e; +} + +.legend li:nth-child(4):before { + background-color: #efdbbd; +} + +.progress { + background-color: #d7d7d7; +} + +.progress-bar { + background-color: #3b3e43; +} + +.counter { + color: #a0ce4e; +} + +.price-plan { + border-color: #d7d7d7; +} + +.price-plan:before { + border-right-color: #a0ce4e; + border-left-color: #a0ce4e; +} + +.price-plan:after { + border-top-color: #a0ce4e; + border-bottom-color: #a0ce4e; +} + +.price-plan-heading { + color: #a0ce4e; +} + +.price-plan-heading h3:after { + border-bottom-color: #a0ce4e; +} + +.price-plan-heading h1 small { + color: #d7d7d7; +} + +.price-plan ul li { + border-top-color: #d7d7d7; +} + +.price-plan ul li:last-child { + border-bottom-color: #d7d7d7; +} + +.price-plan:hover { + border-color: transparent; +} + +.testimonial blockquote { + color: #3b3e43; +} + +.testimonial h5 { + color: #a0ce4e; +} + +.testimonial.with-background { + background-color: #3b3e43; + color: #fff; +} + +.testimonial.with-background blockquote { + color: #fff; +} + +.filter li { + border-right-color: #a0ce4e; +} + +.filter li a { + color: #3b3e43; +} + +.filter li a:hover, +.filter li a.active { + color: #a0ce4e;; +} + +.pagination li a { + background-color: #3b3e43; + color: #fff; +} + +.pagination > li > a:hover, +.pagination > li.active > a, +.pagination > li.active > a:hover { + background-color: #a0ce4e; + color: #fff; +} + +.breadcrumb { + background-color: transparent; +} + +.breadcrumb li a { + color: #a0ce4e; +} + +.breadcrumb li a:hover { + color: #3b3e43; +} + +.breadcrumb li.active { + color: #3b3e43; +} + +.timeline-item:after { + border-left-color: #3b3e43; +} + +.timeline-item h2 a:after, +.timeline-item h2 a:before { + background-color: #a0ce4e; +} + + + + +.full-section { + background-color: #333; + color: #fff; +} + +.full-section h1 a, +.full-section h2 a, +.full-section h3 a, +.full-section h4 a, +.full-section h5 a, +.full-section h6 a, +.full-section .nav-tabs > li > a, +.full-section .panel-title a:focus, +.full-section .process-steps .step:hover i { + color: #a0ce4e; +} + +.full-section h1 a:hover, +.full-section h2 a:hover, +.full-section h3 a:hover, +.full-section h4 a:hover, +.full-section h5 a:hover, +.full-section h6 a:hover, +.full-section .counter-value, +.full-section .testimonial blockquote, +.full-section .panel-title a[aria-expanded="true"] { + color: #fff; +} + +.full-section .process-steps .step i { + color: #fff; + background-color: #3b3e43; + border-color: #fff; +} + +.full-section .process-steps .step:hover i { + border-color: #a0ce4e; +} + + +#section-1 { + background-image: url(../../../images/backgrounds/bg-2.jpg); +} + +.project-slider-tabs { + border-top-color: #a0ce4e; + border-bottom-color: #a0ce4e; + background-color: #a0ce4e; +} + +#section-3 { + background-image: url(../../../images/backgrounds/bg-7.jpg); +} + +#section-4 { + background-image: url(../../../images/backgrounds/bg-3.jpg); +} + +#section-5 { + background-image: url(../../../images/backgrounds/bg-4.jpg); +} + +#section-6 { + background-color: #f4f4f4; +} + +#section-7 { + background-image: url(../../../images/backgrounds/bg-5.jpg); +} + +#section-8 { + background-color: #2b2e31; +} + +#section-9 { + background-image: url(../../../images/backgrounds/bg-7.jpg); +} + +#section-10 { + background-color: #3b3e43; +} + + +#section-11 { + background-image: url(../../../images/backgrounds/bg-5.jpg); +} + +#section-12 { + background-color: #f4f4f4; +} + +#go-top { + color: #a0ce4e; +} + +.tp-leftarrow.default, +.tp-rightarrow.default { + background-color: #a0ce4e; +} + +.tp-leftarrow.default:hover, +.tp-rightarrow.default:hover { + background-color: #3b3e43; +} + +.tp-leftarrow.default { + background-image: url(../../../images/backgrounds/prev.png); +} + +.tp-rightarrow.default { + background-image: url(../../../images/backgrounds/next.png); +} + +.tp-bullets.simplebullets.round .bullet { + background: #a0ce4e; + border: 1px solid #a0ce4e; +} + +.tp-bullets.simplebullets.round .bullet:hover, +.tp-bullets.simplebullets.round .bullet.selected { background-color: #fff; } + +.tp-caption.title { + color: #a0ce4e; +} + +.tp-caption.title-white { + color: #fff; +} + +.tp-caption.title:after { + border-bottom-color: #a0ce4e; +} + +.tp-caption.text-white { + color: #fff; +} + +.tp-caption.social-icon a { + color: #a0ce4e; + border-right-color: #a0ce4e; +} + +.tp-caption.social-icon a:hover { + color: #3b3e43; +} + +.tp-caption .btn, +.tp-caption .btn:hover { + color: #fff; +} + +.bx-wrapper .bx-viewport { + background: transparent; +} + +.bx-wrapper .bx-controls-direction a { + background-color: #a0ce4e; +} + +.bx-wrapper .bx-controls-direction a:hover { + background-color: #3b3e43; +} + +.bx-wrapper .bx-prev { + background-image: url(../../../images/backgrounds/prev.png); +} + +.bx-wrapper .bx-next { + background-image: url(../../../images/backgrounds/next.png); +} + +.bx-wrapper .bx-pager.bx-default-pager a { + border-color: #a0ce4e; + background-color: #a0ce4e; +} + +.bx-wrapper .bx-pager.bx-default-pager a:hover, +.bx-wrapper .bx-pager.bx-default-pager a.active { + background-color: #fff; +} + +#project-slider-control a { + background-color: #fff; + border-right-color: #a0ce4e; +} + +#project-slider-control a:first-child { + border-left-color: #a0ce4e; +} + +#project-slider-control a:hover, +#project-slider-control a.active { + background-color: transparent; + color: #fff; +} + +#twitter-slider-prev a, +#twitter-slider-next a { + color: #fff; +} + +.widget-title:after { + border-bottom-color: #a0ce4e; +} + +.widget-search input[type="submit"] { + background-image: url(../../../images/backgrounds/search.png); +} + +.widget_categories ul li { + border-bottom-color: #d7d7d7; +} + +.widget_categories ul li a { + color: #3b3e43; +} + +.widget_categories ul li a:hover { + color: #a0ce4e; +} + +.widget_archive ul li { + border-bottom-color: #d7d7d7; +} + +.widget_archive ul li a { + color: #3b3e43; +} + +.widget_archive ul li a:hover { + color: #a0ce4e; +} + +.widget_pages ul li { + border-bottom-color: #d7d7d7; +} + +.widget_pages ul li a { + color: #3b3e43; +} + +.widget_pages ul li a:hover { + color: #a0ce4e; +} + +.widget_pages ul li ul { + border-top-color: #d7d7d7; +} + +.widget_nav_menu ul li { + border-bottom-color: #d7d7d7; +} + +.widget_nav_menu ul li a { + color: #3b3e43; +} + +.widget_nav_menu ul li a:hover { + color: #a0ce4e; +} + +.widget_nav_menu ul li ul { + border-top-color: #d7d7d7; +} + +.widget_meta ul li { + border-bottom-color: #d7d7d7; +} + +.widget_meta ul li a { + color: #3b3e43; +} + +.widget_meta ul li a:hover { + color: #a0ce4e; +} + +.widget_recent_entries ul li { + border-bottom-color: #d7d7d7; +} + +.widget_recent_entries ul li a { + color: #3b3e43; +} + +.widget_recent_entries ul li a:hover { + color: #a0ce4e; +} + +.widget_rss ul li { + border-bottom-color: #d7d7d7; +} + +.widget_rss ul li a { + color: #3b3e43; +} + +.widget_rss ul li a:hover { + color: #a0ce4e; +} + +.widget_tag_cloud a { + border-color: #a0ce4e; +} + +.widget_tag_cloud a:after { + background-color: #a0ce4e; +} + +.widget_tag_cloud a:hover { + background-color: transparent; + color: #fff; +} + +.widget-newsletter input[type="submit"] { + background-image: url(../../../images/backgrounds/arrow.png); +} + +.widget-newsletter input[type="submit"]:hover { + background-color: #a0ce4e; +} + +.widget-newsletter p { + color: #acacac; +} + +.ffWidgetLatestNews ul.alt li { + border-bottom-color: #d7d7d7; +} + +.ffWidgetLatestNews ul.alt li .post-title { + color: #3b3e43; +} + +.ffWidgetLatestNews ul.alt li .post-title:hover { + color: #a0ce4e; +} + +.ffWidgetLatestNews ul.alt li .post-date { + color: #acacac; +} + +.ffWidgetLatestNews ul li .news-title { + border-bottom-color: #d7d7d7; +} + +.ffWidgetLatestNews ul li .news-title a { + color: #3b3e43; +} + +.ffWidgetLatestNews ul li .news-title:hover a { + color: #a0ce4e; +} + +.ffWidgetLatestNews ul li .news-date { + color: #acacac; +} + +.widget_calendar table th, +.widget_calendar table td { + border-top-color: #3b3e43; + border-left-color: #3b3e43; +} + +.widget_calendar table th:last-child, +.widget_calendar table td:last-child { + border-right-color: #3b3e43; +} + +.widget_calendar table tr:last-child td { + border-bottom-color: #3b3e43; +} + +.widget_calendar table td#today { + background-color: #a0ce4e; + color: #fff; +} + +.widget-flickr p { + color: #acacac; +} + +.widget_contact ul li { + border-bottom-color: #d7d7d7; +} + +.widget_contact ul li span { + color: #a0ce4e; +} + +.widget-twitter:before { + color: #a0ce4e; +} + +@media (min-width: 768px) and (max-width: 991px) { + + .widget-tab .nav-tabs > li > a { + border-color: #d7d7d7; + } + + .widget-tab .nav-tabs > li > a:hover { + border-color: #d7d7d7; + } + +} + +@media (max-width: 767px) { + + .nav-tabs > li > a { + border-color: #d7d7d7; + } + + .nav-tabs > li > a:hover { + border-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li > a, + .vertical-tabs .nav-tabs > li.active > a { + border-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li:first-child > a { + border-top-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li:last-child > a { + border-bottom-color: #d7d7d7; + } + + #project-slider-control a { + border-left-color: #a0ce4e; + border-bottom-color: #a0ce4e; + } + +} + + #page-wrapper { + background-color: #fff; +} + +.boxed #page-wrapper { + -webkit-box-shadow: 0px 0px 5px #323232; + box-shadow: 0px 0px 5px #323232; +} + +#page-wrapper > header .menu li a { + color: #3b3e43; +} + +#page-wrapper > header .menu li a:hover, +#page-wrapper > header .menu li.active > a, +#page-wrapper > header .menu li.sfHover > a { + color: #a0ce4e; +} + +#page-wrapper > header .menu li.dropdown ul { + border-color: #d7d7d7; + border-top-color: #a0ce4e; + background-color: #fff; +} + +#page-wrapper > header .menu li.dropdown ul li a:before { + color: #a0ce4e; + border-color: #a0ce4e; +} + +#page-wrapper > header .menu li.megamenu .megamenu-container { + border-color: #d7d7d7; + border-top-color: #a0ce4e; + background: #fff url(../../../images/backgrounds/bg-megamenu.jpg) no-repeat center center; +} + +.megamenu-container .section ul li a:before { + color: #a0ce4e; + border-color: #a0ce4e; +} + +.sf-arrows .sf-with-ul:after { + border-color: transparent; + border-top-color: #3b3e43; +} + +.sf-arrows > li:hover > .sf-with-ul:after { + border-top-color: #a0ce4e; +} + +.sf-arrows ul .sf-with-ul:after { + border-color: transparent; + border-left-color: #3b3e43; +} + +.sf-arrows ul li:hover > .sf-with-ul:after { + border-left-color: #a0ce4e; +} + +#page-wrapper > header .menu.nav > li > a:hover, +#page-wrapper > header .menu.nav > li > a:focus { + background-color: transparent; +} + +#page-wrapper > header .menu.nav > li > a:focus { + color: #3b3e43; +} + +#page-wrapper > header .menu.nav > li.active > a { + color: #a0ce4e; +} + +#page-wrapper > header .menu.dark li.dropdown ul { + background-color: #3b3e43; + color: #fff; +} + +#page-wrapper > header .menu.dark li.megamenu .megamenu-container { + background-color: #3b3e43; + color: #fff; +} + +#page-wrapper > header .menu.dark li.dropdown ul li > a, +#page-wrapper > header .menu.dark li.megamenu .megamenu-container a { + color: #fff; +} + +#page-wrapper > header .menu.dark li.dropdown.sfHover > a, +#page-wrapper > header .menu.dark li.dropdown ul li > a:hover, +#page-wrapper > header .menu.dark li.megamenu .megamenu-container a:hover { + color: #a0ce4e; +} + +#mobile-menu-button:hover { + background-color: #a0ce4e; + color: #fff; +} + +#mobile-menu, +#mobile-menu ul { + background-color: #a0ce4e; + color: #fff; +} + +#mobile-menu li a { + color: #fff; + border-bottom-color: #fff; +} + +#mobile-menu li.dropdown > a:after, +#mobile-menu li.megamenu > a:after { + border-color: transparent; + border-top-color: #fff; +} + +#mobile-menu li.dropdown > a.open:after, +#mobile-menu li.megamenu > a.open:after { + border-top-color: transparent; + border-bottom-color: #fff; +} + +a.search-button { + color: #3b3e43; +} + +a.search-button.open .triangle { + border-left-color: transparent; + border-right-color: transparent; + border-top-color: #3b3e43; + content: ""; + -moz-transform: scale(0.9999); +} + +a.search-button.open, +a.search-button:hover { + background-color: #a0ce4e; + color: #fff; +} + +#search-container { + background-color: #3b3e43; + color: #fff; +} + +#search-container input[type="text"] { + background-color: transparent; +} + +@media (min-width: 992px) { + + header.header-sticky { + background-color: #fff; + box-shadow: 0 1px 3px rgba(0,0,0,0.18); + } + +} + +#page-header { + border-top-color: #d7d7d7; + border-bottom-color: #d7d7d7; + position: relative; +} + +#page-header.dark-1 { + background-color: #3b3e43; + color: #fff; +} + +#page-header.dark-2 { + color: #fff; +} + +#page-header.dark-1 .breadcrumb li a, +#page-header.dark-2 .breadcrumb li a { + color: #fff; +} + +#page-header.dark-1 .breadcrumb li a:hover, +#page-header.dark-2 .breadcrumb li a:hover { + color: #a0ce4e; +} + +#page-header.dark-1 .breadcrumb li.active, +#page-header.dark-2 .breadcrumb li.active { + color: #a0ce4e; +} + +#footer-top { + background-color: #f1f1f1 ; +} + +#footer { + background-color: #3b3e43; + color: #d7d7d7; +} + +#footer a { + color: #d7d7d7; +} + +#footer a:hover { + color: #a0ce4e; +} + +#footer .widget-search input[type="submit"] { + background-image: url(../../../images/backgrounds/search-2.png); +} + +#footer .widget-newsletter input[type="submit"] { + background-image: url(../../../images/backgrounds/arrow-2.png); +} + +#footer .widget_calendar table th, +#footer .widget_calendar table td { + border-color: #fff; +} + +#footer-bottom { + background-color: #2b2e31; + color: #585c62; +} + +#footer-bottom a { + color: #585c62; +} + +#footer-bottom a:hover { + color: #a0ce4e; +} + +.about-me-thumbnail { + border-color: #d7d7d7; +} + +.about-me-thumbnail .social-media { + background-color: #3b3e43; +} + +.about-me-thumbnail .social-media a { + color: #fff; +} + +.about-me-details h5 { + color: #a0ce4e; +} + +.services-boxes.style-1:hover h5, +.services-boxes.style-1:hover h2 a { + color: #a0ce4e; +} + +.services-boxes.style-2 h3 small { + color: #a0ce4e; +} + +.services-boxes.style-3 > i { + color: #a0ce4e; +} + +.services-boxes.style-3 .services-boxes-content h3:after { + border-bottom-color: #a0ce4e; +} + +.services-boxes.style-4 h3 small { + color: #a0ce4e; +} + +.portfolio-item-hover { + background-color: rgba(59, 62, 67, 0.85); + color: #a0ce4e; +} + +.portfolio-item-hover .portfolio-item-description h3 a { + color: #fff; +} + +.portfolio-item-description h3 a:hover { + color: #a0ce4e; +} + +.portfolio-item-hover a.zoom-action:hover { + color: #fff; +} + +.portfolio-item.classic .portfolio-item-description h3 a { + color: #3b3e43; +} + +.portfolio-item.classic .portfolio-item-description h3 a:hover { + color: #a0ce4e; +} + +.portfolio-item.classic .portfolio-item-description h5 { + color: #a0ce4e; +} + +.portfolio-item.parallax .pattern { + background-image: url(../../../images/backgrounds/pattern.png); +} + +.portfolio-item.parallax .portfolio-item-description h1 a { + color: #fff; +} + +.portfolio-item.parallax .portfolio-item-description h1 a:hover { + color: #a0ce4e; +} + +.portfolio-item.parallax .portfolio-item-description h2 { + color: #a0ce4e; +} + +.portfolio-item.parallax .portfolio-item-description h3 { + color: #a0ce4e; +} + +.project-details li { + border-bottom-color: #d7d7d7; +} + +.project-details li small { + color: #a0ce4e; +} + +.blog-article-hover { + background-color: rgba(59, 62, 67, 0.85); + color: #a0ce4e; +} + +.blog-article-hover .zoom-action { + color: #fff; +} + +.blog-article .blog-article-hover .zoom-action:hover { + color: #a0ce4e; +} + +.blog-article-details h4, +.blog-article-details h6 { + color: #a0ce4e; +} + +.blog-article-author { + border-color: #d7d7d7; +} + +.blog-article-author > p { + color: #a0ce4e; +} + +.blog-article-author-details h4 { + color: #a0ce4e; +} + +.commentlist-title:after { + border-bottom-color: #a0ce4e; +} + +.comment-author .fn { + color: #3b3e43; +} + +.comment-metadata a { + color: #d7d7d7; +} + +.commentform-title:after { + border-bottom-color: #a0ce4e; +} + +#commentform input[type="text"], +#commentform textarea { + border-bottom-color: #d7d7d7; +} + +#commentform input[type="text"]:focus, +#commentform textarea:focus { + border-bottom-color: #3b3e43; +} + +#commentform input[type="submit"]:hover { + background-color: #3b3e43; +} + +#contact-form input[type="text"], +#contact-form textarea { + border-bottom-color: #d7d7d7; +} + +#contact-form input[type="text"]:focus, +#contact-form textarea:focus { + border-bottom-color: #3b3e43; +} + +#contact-form input[type="submit"]:hover { + background-color: #3b3e43; +} + +#contact-form label.error { + color: #f00; +} + +.elements-menu { + background-color: #fff; +} + +.elements-menu .nav > li > a, +.elements-menu .nav > li > a:focus { + color: #3b3e43; +} + +.elements-menu .nav > li > a:hover, +.elements-menu .nav > li.active > a { + color: #a0ce4e; + background-color: transparent; +} + +.elements-menu .nav > li > a:focus { + background-color: transparent; +} \ No newline at end of file diff --git a/wp-content/themes/milo/assets/css/alternative-styles/yellow.css b/wp-content/themes/milo/assets/css/alternative-styles/yellow.css new file mode 100644 index 0000000..a0be3c9 --- /dev/null +++ b/wp-content/themes/milo/assets/css/alternative-styles/yellow.css @@ -0,0 +1,1272 @@ +/* + * + * YELLOW.CSS + * + */ + +body { + background-color: #fff; + color: #3b3e43; +} + +h1 a, +h2 a, +h3 a, +h4 a, +h5 a, +h6 a { + color: #3b3e43; +} + +blockquote { + color: #e3ac4e; +} + +a { + color: #e3ac4e; +} + +a:hover, +a:focus { + color: #e3ac4e; +} + +.hr { + border-top-color: #000; +} + +.text-primary { + color: #e3ac4e; +} + +input, +select, +textarea { + border-color: #ccc; + background-color: transparent; +} + +input[type="text"]:focus, +input[type="text"]:focus, +input[type="text"]:focus, +input[type="url"]:focus, +textarea:focus { + border-color: #000; +} + +.headline.style-1 h4 { + color: #e3ac4e; +} + +.headline.style-2 i { + color: #e3ac4e; +} + +.headline.style-3 h5 { + color: #e3ac4e; +} + +.alert { + color: #fff; +} + +.alert:after { + border-left-color: #fff; +} + +.alert.alert-info { + background-color: #3b3e44; +} + +.alert.alert-danger { + background-color: #9e0b0f; +} + +.alert.alert-success { + background-color: #e3ac4e; +} + +.alert.alert-warning { + background-color: #fff; + color: #3b3e43; + border-color: #3b3e44; +} + +.alert.alert-warning:after { + border-color: #3b3e44; +} + +.check-list li:before { + border-color: #3b3e43; +} + +.btn:hover { + background-color: transparent; +} + +.btn i { + border-left-color: #fff; +} + +.btn-default { + border: 1px solid #e3ac4e; + background-color: #e3ac4e; + color: #fff; +} + +.btn-default:after { + background-color: #3b3e43; +} + +.btn-default:hover { + border-color: #3b3e43; + background-color: #e3ac4e; + color: #fff; +} + +.btn-default:focus { + background-color: #e3ac4e; + color: #fff; +} + +.btn-black { + border: 1px solid #3b3e43; + background-color: #3b3e43; + color: #fff; +} + +.btn-black:after { + background-color: #e3ac4e; +} + +.btn-black:hover { + border-color: #e3ac4e; + background-color: #3b3e43; + color: #fff; +} + +.btn-black:focus { + color: #fff; +} + +.btn-white { + border: 1px solid #e3ac4e; + background-color: transparent; +} + +.btn-white i { + border-left-color: #e3ac4e; + color: #e3ac4e; +} + +.btn-white:after { + background-color: #e3ac4e; +} + +.btn-white:hover { + border-color: #e3ac4e; + background-color: transparent; + color: #fff; +} + +.btn-white:hover i { + border-left-color: #fff; +} + +.panel { + background-color: transparent; +} + +.panel-heading { + background-color: transparent; +} + +.panel-title a, +.panel-title a:focus { + border-top-color: #d7d7d7; + color: #3b3e43; +} + +.panel-title a:before { + color: #e3ac4e; +} + +.panel-title a[aria-expanded="true"] { + color: #e3ac4e; +} + +.nav-tabs > li > a { + color: #3b3e43; + border-color: transparent; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + background-color: transparent; + border-color: transparent; + color: #e3ac4e; +} + +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #e3ac4e; +} + +.vertical-tabs .nav-tabs > li > a { + border-color: transparent; +} + +.vertical-tabs .nav-tabs > li.active > a { + border-color: #d7d7d7; +} + +.vertical-tabs .tab-content { + border-left-color: #d7d7d7; +} + +.social-media a { + color: #acacac; +} + +.social-media a:hover { + color: #e3ac4e; +} + +.social-media a.facebook:hover { color: #3b5998 !important; } +.social-media a.twitter:hover { color: #5ea9dd !important; } +.social-media a.google:hover { color: #c63427 !important; } +.social-media a.linkedin:hover { color: #0077b5 !important; } +.social-media a.android:hover { color: #a4c639 !important; } +.social-media a.apple:hover { color: #d6d7cf !important; } +.social-media a.dribbble:hover { color: #e04c86 !important; } +.social-media a.dropbox:hover { color: #007ee6 !important; } +.social-media a.flickr:hover { color: #0062dd !important; } +.social-media a.instagram:hover { color: #a07459 !important; } +.social-media a.linux:hover { color: #000000 !important; } +.social-media a.pinterest:hover { color: #f71819 !important; } +.social-media a.reddit:hover { color: #ff4500 !important; } +.social-media a.share:hover { color: #010101 !important; } +.social-media a.skype:hover { color: #00abeb !important; } +.social-media a.tumblr:hover { color: #34465d !important; } +.social-media a.vimeo:hover { color: #1ca7cc !important; } +.social-media a.vine:hover { color: #02c594 !important; } +.social-media a.vk:hover { color: #4c75a3 !important; } +.social-media a.whatsapp:hover { color: #11ae09 !important; } +.social-media a.windows:hover { color: #00abf3 !important; } +.social-media a.weibo:hover { color: #d52b2b !important; } +.social-media a.wordpress:hover { color: #464646 !important; } +.social-media a.yahoo:hover { color: #44029a !important; } +.social-media a.youtube:hover { color: #e22d24 !important; } + +.process-steps:before { + border-top-color: #d7d7d7; +} + +.process-steps .step i { + border-color: #3b3e43; + background-color: #fff; + outline-color: #fff; +} + +.process-steps .step:hover i { + border-color: #e3ac4e; + color: #e3ac4e; +} + +.process-steps .step:hover h5 { + color: #e3ac4e; +} + +.pie-chart-details h1 small { + color: #e3ac4e; +} + +.legend li:nth-child(1):before { + background-color: #3b3e43; +} + +.legend li:nth-child(2):before { + background-color: #a2a5ab; +} + +.legend li:nth-child(3):before { + background-color: #e3ac4e; +} + +.legend li:nth-child(4):before { + background-color: #efdbbd; +} + +.progress { + background-color: #d7d7d7; +} + +.progress-bar { + background-color: #3b3e43; +} + +.counter { + color: #e3ac4e; +} + +.price-plan { + border-color: #d7d7d7; +} + +.price-plan:before { + border-right-color: #e3ac4e; + border-left-color: #e3ac4e; +} + +.price-plan:after { + border-top-color: #e3ac4e; + border-bottom-color: #e3ac4e; +} + +.price-plan-heading { + color: #e3ac4e; +} + +.price-plan-heading h3:after { + border-bottom-color: #e3ac4e; +} + +.price-plan-heading h1 small { + color: #d7d7d7; +} + +.price-plan ul li { + border-top-color: #d7d7d7; +} + +.price-plan ul li:last-child { + border-bottom-color: #d7d7d7; +} + +.price-plan:hover { + border-color: transparent; +} + +.testimonial blockquote { + color: #3b3e43; +} + +.testimonial h5 { + color: #e3ac4e; +} + +.testimonial.with-background { + background-color: #3b3e43; + color: #fff; +} + +.testimonial.with-background blockquote { + color: #fff; +} + +.filter li { + border-right-color: #e3ac4e; +} + +.filter li a { + color: #3b3e43; +} + +.filter li a:hover, +.filter li a.active { + color: #e3ac4e;; +} + +.pagination li a { + background-color: #3b3e43; + color: #fff; +} + +.pagination > li > a:hover, +.pagination > li.active > a, +.pagination > li.active > a:hover { + background-color: #e3ac4e; + color: #fff; +} + +.breadcrumb { + background-color: transparent; +} + +.breadcrumb li a { + color: #e3ac4e; +} + +.breadcrumb li a:hover { + color: #3b3e43; +} + +.breadcrumb li.active { + color: #3b3e43; +} + +.timeline-item:after { + border-left-color: #3b3e43; +} + +.timeline-item h2 a:after, +.timeline-item h2 a:before { + background-color: #e3ac4e; +} + + + + +.full-section { + background-color: #333; + color: #fff; +} + +.full-section h1 a, +.full-section h2 a, +.full-section h3 a, +.full-section h4 a, +.full-section h5 a, +.full-section h6 a, +.full-section .nav-tabs > li > a, +.full-section .panel-title a:focus, +.full-section .process-steps .step:hover i { + color: #e3ac4e; +} + +.full-section h1 a:hover, +.full-section h2 a:hover, +.full-section h3 a:hover, +.full-section h4 a:hover, +.full-section h5 a:hover, +.full-section h6 a:hover, +.full-section .counter-value, +.full-section .testimonial blockquote, +.full-section .panel-title a[aria-expanded="true"] { + color: #fff; +} + +.full-section .process-steps .step i { + color: #fff; + background-color: #3b3e43; + border-color: #fff; +} + +.full-section .process-steps .step:hover i { + border-color: #e3ac4e; +} + + +#section-1 { + background-image: url(../../../images/backgrounds/bg-2.jpg); +} + +.project-slider-tabs { + border-top-color: #e3ac4e; + border-bottom-color: #e3ac4e; + background-color: #e3ac4e; +} + +#section-3 { + background-image: url(../../../images/backgrounds/bg-7.jpg); +} + +#section-4 { + background-image: url(../../../images/backgrounds/bg-3.jpg); +} + +#section-5 { + background-image: url(../../../images/backgrounds/bg-4.jpg); +} + +#section-6 { + background-color: #f4f4f4; +} + +#section-7 { + background-image: url(../../../images/backgrounds/bg-5.jpg); +} + +#section-8 { + background-color: #2b2e31; +} + +#section-9 { + background-image: url(../../../images/backgrounds/bg-7.jpg); +} + +#section-10 { + background-color: #3b3e43; +} + + +#section-11 { + background-image: url(../../../images/backgrounds/bg-5.jpg); +} + +#section-12 { + background-color: #f4f4f4; +} + +#go-top { + color: #e3ac4e; +} + +.tp-leftarrow.default, +.tp-rightarrow.default { + background-color: #e3ac4e; +} + +.tp-leftarrow.default:hover, +.tp-rightarrow.default:hover { + background-color: #3b3e43; +} + +.tp-leftarrow.default { + background-image: url(../../../images/backgrounds/prev.png); +} + +.tp-rightarrow.default { + background-image: url(../../../images/backgrounds/next.png); +} + +.tp-bullets.simplebullets.round .bullet { + background: #e3ac4e; + border: 1px solid #e3ac4e; +} + +.tp-bullets.simplebullets.round .bullet:hover, +.tp-bullets.simplebullets.round .bullet.selected { background-color: #fff; } + +.tp-caption.title { + color: #e3ac4e; +} + +.tp-caption.title-white { + color: #fff; +} + +.tp-caption.title:after { + border-bottom-color: #e3ac4e; +} + +.tp-caption.text-white { + color: #fff; +} + +.tp-caption.social-icon a { + color: #e3ac4e; + border-right-color: #e3ac4e; +} + +.tp-caption.social-icon a:hover { + color: #3b3e43; +} + +.tp-caption .btn, +.tp-caption .btn:hover { + color: #fff; +} + +.bx-wrapper .bx-viewport { + background: transparent; +} + +.bx-wrapper .bx-controls-direction a { + background-color: #e3ac4e; +} + +.bx-wrapper .bx-controls-direction a:hover { + background-color: #3b3e43; +} + +.bx-wrapper .bx-prev { + background-image: url(../../../images/backgrounds/prev.png); +} + +.bx-wrapper .bx-next { + background-image: url(../../../images/backgrounds/next.png); +} + +.bx-wrapper .bx-pager.bx-default-pager a { + border-color: #e3ac4e; + background-color: #e3ac4e; +} + +.bx-wrapper .bx-pager.bx-default-pager a:hover, +.bx-wrapper .bx-pager.bx-default-pager a.active { + background-color: #fff; +} + +#project-slider-control a { + background-color: #fff; + border-right-color: #e3ac4e; +} + +#project-slider-control a:first-child { + border-left-color: #e3ac4e; +} + +#project-slider-control a:hover, +#project-slider-control a.active { + background-color: transparent; + color: #fff; +} + +#twitter-slider-prev a, +#twitter-slider-next a { + color: #fff; +} + +.widget-title:after { + border-bottom-color: #e3ac4e; +} + +.widget-search input[type="submit"] { + background-image: url(../../../images/backgrounds/search.png); +} + +.widget_categories ul li { + border-bottom-color: #d7d7d7; +} + +.widget_categories ul li a { + color: #3b3e43; +} + +.widget_categories ul li a:hover { + color: #e3ac4e; +} + +.widget_archive ul li { + border-bottom-color: #d7d7d7; +} + +.widget_archive ul li a { + color: #3b3e43; +} + +.widget_archive ul li a:hover { + color: #e3ac4e; +} + +.widget_pages ul li { + border-bottom-color: #d7d7d7; +} + +.widget_pages ul li a { + color: #3b3e43; +} + +.widget_pages ul li a:hover { + color: #e3ac4e; +} + +.widget_pages ul li ul { + border-top-color: #d7d7d7; +} + +.widget_nav_menu ul li { + border-bottom-color: #d7d7d7; +} + +.widget_nav_menu ul li a { + color: #3b3e43; +} + +.widget_nav_menu ul li a:hover { + color: #e3ac4e; +} + +.widget_nav_menu ul li ul { + border-top-color: #d7d7d7; +} + +.widget_meta ul li { + border-bottom-color: #d7d7d7; +} + +.widget_meta ul li a { + color: #3b3e43; +} + +.widget_meta ul li a:hover { + color: #e3ac4e; +} + +.widget_recent_entries ul li { + border-bottom-color: #d7d7d7; +} + +.widget_recent_entries ul li a { + color: #3b3e43; +} + +.widget_recent_entries ul li a:hover { + color: #e3ac4e; +} + +.widget_rss ul li { + border-bottom-color: #d7d7d7; +} + +.widget_rss ul li a { + color: #3b3e43; +} + +.widget_rss ul li a:hover { + color: #e3ac4e; +} + +.widget_tag_cloud a { + border-color: #e3ac4e; +} + +.widget_tag_cloud a:after { + background-color: #e3ac4e; +} + +.widget_tag_cloud a:hover { + background-color: transparent; + color: #fff; +} + +.widget-newsletter input[type="submit"] { + background-image: url(../../../images/backgrounds/arrow.png); +} + +.widget-newsletter input[type="submit"]:hover { + background-color: #e3ac4e; +} + +.widget-newsletter p { + color: #acacac; +} + +.ffWidgetLatestNews ul.alt li { + border-bottom-color: #d7d7d7; +} + +.ffWidgetLatestNews ul.alt li .post-title { + color: #3b3e43; +} + +.ffWidgetLatestNews ul.alt li .post-title:hover { + color: #e3ac4e; +} + +.ffWidgetLatestNews ul.alt li .post-date { + color: #acacac; +} + +.ffWidgetLatestNews ul li .news-title { + border-bottom-color: #d7d7d7; +} + +.ffWidgetLatestNews ul li .news-title a { + color: #3b3e43; +} + +.ffWidgetLatestNews ul li .news-title:hover a { + color: #e3ac4e; +} + +.ffWidgetLatestNews ul li .news-date { + color: #acacac; +} + +.widget_calendar table th, +.widget_calendar table td { + border-top-color: #3b3e43; + border-left-color: #3b3e43; +} + +.widget_calendar table th:last-child, +.widget_calendar table td:last-child { + border-right-color: #3b3e43; +} + +.widget_calendar table tr:last-child td { + border-bottom-color: #3b3e43; +} + +.widget_calendar table td#today { + background-color: #e3ac4e; + color: #fff; +} + +.widget-flickr p { + color: #acacac; +} + +.widget_contact ul li { + border-bottom-color: #d7d7d7; +} + +.widget_contact ul li span { + color: #e3ac4e; +} + +.widget-twitter:before { + color: #e3ac4e; +} + +@media (min-width: 768px) and (max-width: 991px) { + + .widget-tab .nav-tabs > li > a { + border-color: #d7d7d7; + } + + .widget-tab .nav-tabs > li > a:hover { + border-color: #d7d7d7; + } + +} + +@media (max-width: 767px) { + + .nav-tabs > li > a { + border-color: #d7d7d7; + } + + .nav-tabs > li > a:hover { + border-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li > a, + .vertical-tabs .nav-tabs > li.active > a { + border-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li:first-child > a { + border-top-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li:last-child > a { + border-bottom-color: #d7d7d7; + } + + #project-slider-control a { + border-left-color: #e3ac4e; + border-bottom-color: #e3ac4e; + } + +} + + #page-wrapper { + background-color: #fff; +} + +.boxed #page-wrapper { + -webkit-box-shadow: 0px 0px 5px #323232; + box-shadow: 0px 0px 5px #323232; +} + +#page-wrapper > header .menu li a { + color: #3b3e43; +} + +#page-wrapper > header .menu li a:hover, +#page-wrapper > header .menu li.active > a, +#page-wrapper > header .menu li.sfHover > a { + color: #e3ac4e; +} + +#page-wrapper > header .menu li.dropdown ul { + border-color: #d7d7d7; + border-top-color: #e3ac4e; + background-color: #fff; +} + +#page-wrapper > header .menu li.dropdown ul li a:before { + color: #e3ac4e; + border-color: #e3ac4e; +} + +#page-wrapper > header .menu li.megamenu .megamenu-container { + border-color: #d7d7d7; + border-top-color: #e3ac4e; + background: #fff url(../../../images/backgrounds/bg-megamenu.jpg) no-repeat center center; +} + +.megamenu-container .section ul li a:before { + color: #e3ac4e; + border-color: #e3ac4e; +} + +.sf-arrows .sf-with-ul:after { + border-color: transparent; + border-top-color: #3b3e43; +} + +.sf-arrows > li:hover > .sf-with-ul:after { + border-top-color: #e3ac4e; +} + +.sf-arrows ul .sf-with-ul:after { + border-color: transparent; + border-left-color: #3b3e43; +} + +.sf-arrows ul li:hover > .sf-with-ul:after { + border-left-color: #e3ac4e; +} + +#page-wrapper > header .menu.nav > li > a:hover, +#page-wrapper > header .menu.nav > li > a:focus { + background-color: transparent; +} + +#page-wrapper > header .menu.nav > li > a:focus { + color: #3b3e43; +} + +#page-wrapper > header .menu.nav > li.active > a { + color: #e3ac4e; +} + +#page-wrapper > header .menu.dark li.dropdown ul { + background-color: #3b3e43; + color: #fff; +} + +#page-wrapper > header .menu.dark li.megamenu .megamenu-container { + background-color: #3b3e43; + color: #fff; +} + +#page-wrapper > header .menu.dark li.dropdown ul li > a, +#page-wrapper > header .menu.dark li.megamenu .megamenu-container a { + color: #fff; +} + +#page-wrapper > header .menu.dark li.dropdown.sfHover > a, +#page-wrapper > header .menu.dark li.dropdown ul li > a:hover, +#page-wrapper > header .menu.dark li.megamenu .megamenu-container a:hover { + color: #e3ac4e; +} + +#mobile-menu-button:hover { + background-color: #e3ac4e; + color: #fff; +} + +#mobile-menu, +#mobile-menu ul { + background-color: #e3ac4e; + color: #fff; +} + +#mobile-menu li a { + color: #fff; + border-bottom-color: #fff; +} + +#mobile-menu li.dropdown > a:after, +#mobile-menu li.megamenu > a:after { + border-color: transparent; + border-top-color: #fff; +} + +#mobile-menu li.dropdown > a.open:after, +#mobile-menu li.megamenu > a.open:after { + border-top-color: transparent; + border-bottom-color: #fff; +} + +a.search-button { + color: #3b3e43; +} + +a.search-button.open .triangle { + border-left-color: transparent; + border-right-color: transparent; + border-top-color: #3b3e43; + content: ""; + -moz-transform: scale(0.9999); +} + +a.search-button.open, +a.search-button:hover { + background-color: #e3ac4e; + color: #fff; +} + +#search-container { + background-color: #3b3e43; + color: #fff; +} + +#search-container input[type="text"] { + background-color: transparent; +} + +@media (min-width: 992px) { + + header.header-sticky { + background-color: #fff; + box-shadow: 0 1px 3px rgba(0,0,0,0.18); + } + +} + +#page-header { + border-top-color: #d7d7d7; + border-bottom-color: #d7d7d7; + position: relative; +} + +#page-header.dark-1 { + background-color: #3b3e43; + color: #fff; +} + +#page-header.dark-2 { + color: #fff; +} + +#page-header.dark-1 .breadcrumb li a, +#page-header.dark-2 .breadcrumb li a { + color: #fff; +} + +#page-header.dark-1 .breadcrumb li a:hover, +#page-header.dark-2 .breadcrumb li a:hover { + color: #e3ac4e; +} + +#page-header.dark-1 .breadcrumb li.active, +#page-header.dark-2 .breadcrumb li.active { + color: #e3ac4e; +} + +#footer { + background-color: #3b3e43; + color: #d7d7d7; +} + +#footer a { + color: #d7d7d7; +} + +#footer a:hover { + color: #e3ac4e; +} + +#footer .widget-search input[type="submit"] { + background-image: url(../../../images/backgrounds/search-2.png); +} + +#footer .widget-newsletter input[type="submit"] { + background-image: url(../../../images/backgrounds/arrow-2.png); +} + +#footer .widget_calendar table th, +#footer .widget_calendar table td { + border-color: #fff; +} + +#footer-bottom { + background-color: #2b2e31; + color: #585c62; +} + +#footer-bottom a { + color: #585c62; +} + +#footer-bottom a:hover { + color: #e3ac4e; +} + +.about-me-thumbnail { + border-color: #d7d7d7; +} + +.about-me-thumbnail .social-media { + background-color: #3b3e43; +} + +.about-me-thumbnail .social-media a { + color: #fff; +} + +.about-me-details h5 { + color: #e3ac4e; +} + +.services-boxes.style-1:hover h5, +.services-boxes.style-1:hover h2 a { + color: #e3ac4e; +} + +.services-boxes.style-2 h3 small { + color: #e3ac4e; +} + +.services-boxes.style-3 > i { + color: #e3ac4e; +} + +.services-boxes.style-3 .services-boxes-content h3:after { + border-bottom-color: #e3ac4e; +} + +.services-boxes.style-4 h3 small { + color: #e3ac4e; +} + +.portfolio-item-hover { + background-color: rgba(59, 62, 67, 0.85); + color: #e3ac4e; +} + +.portfolio-item-hover .portfolio-item-description h3 a { + color: #fff; +} + +.portfolio-item-description h3 a:hover { + color: #e3ac4e; +} + +.portfolio-item-hover a.zoom-action:hover { + color: #fff; +} + +.portfolio-item.classic .portfolio-item-description h3 a { + color: #3b3e43; +} + +.portfolio-item.classic .portfolio-item-description h3 a:hover { + color: #e3ac4e; +} + +.portfolio-item.classic .portfolio-item-description h5 { + color: #e3ac4e; +} + +.portfolio-item.parallax .pattern { + background-image: url(../../../images/backgrounds/pattern.png); +} + +.portfolio-item.parallax .portfolio-item-description h1 a { + color: #fff; +} + +.portfolio-item.parallax .portfolio-item-description h1 a:hover { + color: #e3ac4e; +} + +.portfolio-item.parallax .portfolio-item-description h2 { + color: #e3ac4e; +} + +.portfolio-item.parallax .portfolio-item-description h3 { + color: #e3ac4e; +} + +.project-details li { + border-bottom-color: #d7d7d7; +} + +.project-details li small { + color: #e3ac4e; +} + +.blog-article-hover { + background-color: rgba(59, 62, 67, 0.85); + color: #e3ac4e; +} + +.blog-article-hover .zoom-action { + color: #fff; +} + +.blog-article .blog-article-hover .zoom-action:hover { + color: #e3ac4e; +} + +.blog-article-details h4, +.blog-article-details h6 { + color: #e3ac4e; +} + +.blog-article-author { + border-color: #d7d7d7; +} + +.blog-article-author > p { + color: #e3ac4e; +} + +.blog-article-author-details h4 { + color: #e3ac4e; +} + +.commentlist-title:after { + border-bottom-color: #e3ac4e; +} + +.comment-author .fn { + color: #3b3e43; +} + +.comment-metadata a { + color: #d7d7d7; +} + +.commentform-title:after { + border-bottom-color: #e3ac4e; +} + +#commentform input[type="text"], +#commentform textarea { + border-bottom-color: #d7d7d7; +} + +#commentform input[type="text"]:focus, +#commentform textarea:focus { + border-bottom-color: #3b3e43; +} + +#commentform input[type="submit"]:hover { + background-color: #3b3e43; +} + +#contact-form input[type="text"], +#contact-form textarea { + border-bottom-color: #d7d7d7; +} + +#contact-form input[type="text"]:focus, +#contact-form textarea:focus { + border-bottom-color: #3b3e43; +} + +#contact-form input[type="submit"]:hover { + background-color: #3b3e43; +} + +#contact-form label.error { + color: #f00; +} + +.elements-menu { + background-color: #fff; +} + +.elements-menu .nav > li > a, +.elements-menu .nav > li > a:focus { + color: #3b3e43; +} + +.elements-menu .nav > li > a:hover, +.elements-menu .nav > li.active > a { + color: #e3ac4e; + background-color: transparent; +} + +.elements-menu .nav > li > a:focus { + background-color: transparent; +} \ No newline at end of file diff --git a/wp-content/themes/milo/assets/css/bootstrap.min.css b/wp-content/themes/milo/assets/css/bootstrap.min.css new file mode 100644 index 0000000..cd1c616 --- /dev/null +++ b/wp-content/themes/milo/assets/css/bootstrap.min.css @@ -0,0 +1,5 @@ +/*! + * Bootstrap v3.3.4 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px \9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px)and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px)and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px)and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/wp-content/themes/milo/assets/css/colors-accent.css b/wp-content/themes/milo/assets/css/colors-accent.css new file mode 100644 index 0000000..ebca81a --- /dev/null +++ b/wp-content/themes/milo/assets/css/colors-accent.css @@ -0,0 +1,468 @@ +blockquote { + color: #bca480; +} + +a { + color: #bca480; +} + +a:hover, +a:focus { + color: #bca480; +} + +.text-primary { + color: #bca480; +} + +.headline.style-1 h4 { + color: #bca480; +} + +.headline.style-2 i { + color: #bca480; +} + +.headline.style-3 h5 { + color: #bca480; +} + +.alert.alert-success { + background-color: #bca480; +} + +.btn-default { + border: 1px solid #bca480; + background-color: #bca480; +} + +.btn-default:hover { + background-color: #bca480; +} + +.btn-default:focus { + background-color: #bca480; +} + +.btn-black:after { + background-color: #bca480; +} + +.btn-black:hover { + border-color: #bca480; +} + +.btn-white { + border: 1px solid #bca480; +} + +.btn-white i { + border-left-color: #bca480; + color: #bca480; +} + +.btn-white:after { + background-color: #bca480; +} + +.btn-white:hover { + border-color: #bca480; +} + +.panel-title a:before { + color: #bca480; +} + +.panel-title a[aria-expanded="true"] { + color: #bca480; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + color: #bca480; +} + +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #bca480; +} + +.social-media a:hover { + color: #bca480; +} + +.process-steps .step:hover i { + border-color: #bca480; + color: #bca480; +} + +.process-steps .step:hover h5 { + color: #bca480; +} + +.pie-chart-details h1 small { + color: #bca480; +} + +.legend li:nth-child(3):before { + background-color: #bca480; +} + +.counter { + color: #bca480; +} + +.price-plan:before { + border-right-color: #bca480; + border-left-color: #bca480; +} + +.price-plan:after { + border-top-color: #bca480; + border-bottom-color: #bca480; +} + +.price-plan-heading { + color: #bca480; +} + +.price-plan-heading h3:after { + border-bottom-color: #bca480; +} + +.testimonial h5 { + color: #bca480; +} + +.filter li { + border-right-color: #bca480; +} + +.filter li a:hover, +.filter li a.active { + color: #bca480;; +} + +.pagination > li > a:hover, +.pagination > li.active > a, +.pagination > li.active > a:hover { + background-color: #bca480; +} + +.breadcrumb li a { + color: #bca480; +} + +.timeline-item h2 a:after, +.timeline-item h2 a:before { + background-color: #bca480; +} + +.full-section h1 a, +.full-section h2 a, +.full-section h3 a, +.full-section h4 a, +.full-section h5 a, +.full-section h6 a, +.full-section .nav-tabs > li > a, +.full-section .panel-title a:focus, +.full-section .process-steps .step:hover i { + color: #bca480; +} + +.full-section .process-steps .step:hover i { + border-color: #bca480; +} + +.project-slider-tabs { + border-top-color: #bca480; + border-bottom-color: #bca480; + background-color: #bca480; +} + +#go-top { + color: #bca480; +} + +.tp-leftarrow.default, +.tp-rightarrow.default { + background-color: #bca480; +} + +.tp-bullets.simplebullets.round .bullet { + background: #bca480; + border: 1px solid #bca480; +} + +.tp-caption.title { + color: #bca480; +} + +.tp-caption.title:after { + border-bottom-color: #bca480; +} + +.tp-caption.social-icon a { + color: #bca480; + border-right-color: #bca480; +} + +.bx-wrapper .bx-controls-direction a { + background-color: #bca480; +} + +.bx-wrapper .bx-pager.bx-default-pager a { + border-color: #bca480; + background-color: #bca480; +} + +#project-slider-control a { + border-right-color: #bca480; +} + +#project-slider-control a:first-child { + border-left-color: #bca480; +} + +.widget-title:after { + border-bottom-color: #bca480; +} + +.widget_categories ul li a:hover { + color: #bca480; +} + +.widget_archive ul li a:hover { + color: #bca480; +} + +.widget_pages ul li a:hover { + color: #bca480; +} + +.widget_nav_menu ul li a:hover { + color: #bca480; +} + +.widget_meta ul li a:hover { + color: #bca480; +} + +.widget_recent_entries ul li a:hover { + color: #bca480; +} + +.widget_rss ul li a:hover { + color: #bca480; +} + +.widget_tag_cloud a { + border-color: #bca480; +} + +.widget_tag_cloud a:after { + background-color: #bca480; +} + +.widget-newsletter input[type="submit"]:hover { + background-color: #bca480; +} + +.ffWidgetLatestNews ul.alt li .post-title:hover { + color: #bca480; +} + +.ffWidgetLatestNews ul li .news-title:hover a { + color: #bca480; +} + +.widget_calendar table td#today { + background-color: #bca480; +} + +.widget_contact ul li span { + color: #bca480; +} + +.widget-twitter:before { + color: #bca480; +} + +@media (max-width: 767px) { + + #project-slider-control a { + border-left-color: #bca480; + border-bottom-color: #bca480; + } + +} + +#page-wrapper > header .menu li a:hover, +#page-wrapper > header .menu li.active > a, +#page-wrapper > header .menu li.sfHover > a { + color: #bca480; +} + +#page-wrapper > header .menu li.dropdown ul li a:before { + color: #bca480; + border-color: #bca480; +} + +#page-wrapper > header .menu li.dropdown ul { + border-top-color: #bca480; +} + +#page-wrapper > header .menu li.megamenu .megamenu-container { + border-top-color: #bca480; +} + +.megamenu-container .section ul li a:before { + color: #bca480; + border-color: #bca480; +} + +.sf-arrows > li:hover > .sf-with-ul:after { + border-top-color: #bca480; +} + +.sf-arrows ul li:hover > .sf-with-ul:after { + border-left-color: #bca480; +} + +#page-wrapper > header .menu.nav > li.active > a { + color: #bca480; +} + +#page-wrapper > header .menu.dark li.dropdown.sfHover > a, +#page-wrapper > header .menu.dark li.dropdown ul li > a:hover, +#page-wrapper > header .menu.dark li.megamenu .megamenu-container a:hover { + color: #bca480; +} + +#mobile-menu-button:hover { + background-color: #bca480; +} + +#mobile-menu, +#mobile-menu ul { + background-color: #bca480; +} + +a.search-button.open, +a.search-button:hover { + background-color: #bca480; +} + +#page-header.dark-1 .breadcrumb li a:hover, +#page-header.dark-2 .breadcrumb li a:hover { + color: #bca480; +} + +#page-header.dark-1 .breadcrumb li.active, +#page-header.dark-2 .breadcrumb li.active { + color: #bca480; +} + +#footer a:hover { + color: #bca480; +} + +#footer-bottom a:hover { + color: #bca480; +} + +.about-me-details h5 { + color: #bca480; +} + +.services-boxes.style-1:hover h5, +.services-boxes.style-1:hover h2 a { + color: #bca480; +} + +.services-boxes.style-2 h3 small { + color: #bca480; +} + +.services-boxes.style-3 > i { + color: #bca480; +} + +.services-boxes.style-3 .services-boxes-content h3:after { + border-bottom-color: #bca480; +} + +.services-boxes.style-4 h3 small { + color: #bca480; +} + +.portfolio-item-hover { + color: #bca480; +} + +.portfolio-item-description h3 a:hover { + color: #bca480; +} + +.portfolio-item.classic .portfolio-item-description h3 a { + color: #3b3e43; +} + +.portfolio-item.classic .portfolio-item-description h3 a:hover { + color: #bca480; +} + +.portfolio-item.classic .portfolio-item-description h5 { + color: #bca480; +} + +.portfolio-item.parallax .portfolio-item-description h1 a:hover { + color: #bca480; +} + +.portfolio-item.parallax .portfolio-item-description h2 { + color: #bca480; +} + +.portfolio-item.parallax .portfolio-item-description h3 { + color: #bca480; +} + +.project-details li small { + color: #bca480; +} + +.blog-article-hover { + color: #bca480; +} + +.blog-article .blog-article-hover .zoom-action:hover { + color: #bca480; +} + +.blog-article-details h4, +.blog-article-details h6 { + color: #bca480; +} + +.blog-article-author > p { + color: #bca480; +} + +.blog-article-author-details h4 { + color: #bca480; +} + +.commentlist-title:after { + border-bottom-color: #bca480; +} + +.commentform-title:after { + border-bottom-color: #bca480; +} + +.elements-menu .nav > li > a:hover, +.elements-menu .nav > li.active > a { + color: #bca480; +} \ No newline at end of file diff --git a/wp-content/themes/milo/assets/css/colors-basic.css b/wp-content/themes/milo/assets/css/colors-basic.css new file mode 100644 index 0000000..88ff2eb --- /dev/null +++ b/wp-content/themes/milo/assets/css/colors-basic.css @@ -0,0 +1,865 @@ +body { + background-color: #fff; + color: #3b3e43; +} + +h1 a, +h2 a, +h3 a, +h4 a, +h5 a, +h6 a { + color: #3b3e43; +} + +.hr { + border-top-color: #000; +} + +input, +select, +textarea { + border-color: #ccc; + background-color: transparent; +} + +input[type="text"]:focus, +input[type="text"]:focus, +input[type="text"]:focus, +input[type="url"]:focus, +textarea:focus { + border-color: #000; +} + +.alert { + color: #fff; +} + +.alert:after { + border-left-color: #fff; +} + +.alert.alert-info { + background-color: #3b3e44; +} + +.alert.alert-danger { + background-color: #9e0b0f; +} + +.alert.alert-warning { + background-color: #fff; + color: #3b3e43; + border-color: #3b3e44; +} + +.alert.alert-warning:after { + border-color: #3b3e44; +} + +.check-list li:before { + border-color: #3b3e43; +} + +.btn:hover { + background-color: transparent; +} + +.btn i { + border-left-color: #fff; +} + +.btn-default { + color: #fff; +} + +.btn-default:after { + background-color: #3b3e43; +} + +.btn-default:hover { + border-color: #3b3e43; + color: #fff; +} + +.btn-default:focus { + color: #fff; +} + +.btn-black { + border: 1px solid #3b3e43; + background-color: #3b3e43; + color: #fff; +} + +.btn-black:hover { + background-color: #3b3e43; + color: #fff; +} + +.btn-black:focus { + color: #fff; +} + +.btn-white { + background-color: transparent; +} + +.btn-white:hover { + background-color: transparent; + color: #fff; +} + +.btn-white:hover i { + border-left-color: #fff; +} + +.panel { + background-color: transparent; +} + +.panel-heading { + background-color: transparent; +} + +.panel-title a, +.panel-title a:focus { + border-top-color: #d7d7d7; + color: #3b3e43; +} + +.nav-tabs > li > a { + color: #3b3e43; + border-color: transparent; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + background-color: transparent; + border-color: transparent; +} + +.vertical-tabs .nav-tabs > li > a { + border-color: transparent; +} + +.vertical-tabs .nav-tabs > li.active > a { + border-color: #d7d7d7; +} + +.vertical-tabs .tab-content { + border-left-color: #d7d7d7; +} + +.social-media a { + color: #acacac; +} + +.social-media a.facebook:hover { color: #3b5998 !important; } +.social-media a.twitter:hover { color: #5ea9dd !important; } +.social-media a.google:hover { color: #c63427 !important; } +.social-media a.linkedin:hover { color: #0077b5 !important; } +.social-media a.android:hover { color: #a4c639 !important; } +.social-media a.apple:hover { color: #d6d7cf !important; } +.social-media a.dribbble:hover { color: #e04c86 !important; } +.social-media a.dropbox:hover { color: #007ee6 !important; } +.social-media a.flickr:hover { color: #0062dd !important; } +.social-media a.instagram:hover { color: #a07459 !important; } +.social-media a.linux:hover { color: #000000 !important; } +.social-media a.pinterest:hover { color: #f71819 !important; } +.social-media a.reddit:hover { color: #ff4500 !important; } +.social-media a.share:hover { color: #010101 !important; } +.social-media a.skype:hover { color: #00abeb !important; } +.social-media a.tumblr:hover { color: #34465d !important; } +.social-media a.vimeo:hover { color: #1ca7cc !important; } +.social-media a.vine:hover { color: #02c594 !important; } +.social-media a.vk:hover { color: #4c75a3 !important; } +.social-media a.whatsapp:hover { color: #11ae09 !important; } +.social-media a.windows:hover { color: #00abf3 !important; } +.social-media a.weibo:hover { color: #d52b2b !important; } +.social-media a.wordpress:hover { color: #464646 !important; } +.social-media a.yahoo:hover { color: #44029a !important; } +.social-media a.youtube:hover { color: #e22d24 !important; } + +.process-steps:before { + border-top-color: #d7d7d7; +} + +.process-steps .step i { + border-color: #3b3e43; + background-color: #fff; + outline-color: #fff; +} + +.legend li:nth-child(1):before { + background-color: #3b3e43; +} + +.legend li:nth-child(2):before { + background-color: #a2a5ab; +} + +.legend li:nth-child(4):before { + background-color: #efdbbd; +} + +.progress { + background-color: #d7d7d7; +} + +.progress-bar { + background-color: #3b3e43; +} + +.price-plan { + border-color: #d7d7d7; +} + +.price-plan-heading h1 small { + color: #d7d7d7; +} + +.price-plan ul li { + border-top-color: #d7d7d7; +} + +.price-plan ul li:last-child { + border-bottom-color: #d7d7d7; +} + +.price-plan:hover { + border-color: transparent; +} + +.testimonial blockquote { + color: #3b3e43; +} + +.testimonial.with-background { + background-color: #3b3e43; + color: #fff; +} + +.testimonial.with-background blockquote { + color: #fff; +} + +.filter li a { + color: #3b3e43; +} + +.pagination li a { + background-color: #3b3e43; + color: #fff; +} + +.pagination > li > a:hover, +.pagination > li.active > a, +.pagination > li.active > a:hover { + color: #fff; +} + +.breadcrumb { + background-color: transparent; +} + +.breadcrumb li a:hover { + color: #3b3e43; +} + +.breadcrumb li.active { + color: #3b3e43; +} + +.timeline-item:after { + border-left-color: #3b3e43; +} + + + + +.full-section { + background-color: #333; + color: #fff; +} + +.full-section h1 a:hover, +.full-section h2 a:hover, +.full-section h3 a:hover, +.full-section h4 a:hover, +.full-section h5 a:hover, +.full-section h6 a:hover, +.full-section .counter-value, +.full-section .testimonial blockquote, +.full-section .panel-title a[aria-expanded="true"] { + color: #fff; +} + +.full-section .process-steps .step i { + color: #fff; + background-color: #3b3e43; + border-color: #fff; +} + + +#section-1 { + background-image: url(../../../images/backgrounds/bg-2.jpg); +} + +#section-3 { + background-image: url(../../../images/backgrounds/bg-7.jpg); +} + +#section-4 { + background-image: url(../../../images/backgrounds/bg-3.jpg); +} + +#section-5 { + background-image: url(../../../images/backgrounds/bg-4.jpg); +} + +#section-6 { + background-color: #f4f4f4; +} + +#section-7 { + background-image: url(../../../images/backgrounds/bg-5.jpg); +} + +#section-8 { + background-color: #2b2e31; +} + +#section-9 { + background-image: url(../../../images/backgrounds/bg-7.jpg); +} + +#section-10 { + background-color: #3b3e43; +} + + +#section-11 { + background-image: url(../../../images/backgrounds/bg-5.jpg); +} + +#section-12 { + background-color: #f4f4f4; +} + +.tp-leftarrow.default:hover, +.tp-rightarrow.default:hover { + background-color: #3b3e43; +} + +.tp-leftarrow.default { + background-image: url(../../../images/backgrounds/prev.png); +} + +.tp-rightarrow.default { + background-image: url(../../../images/backgrounds/next.png); +} + +.tp-bullets.simplebullets.round .bullet:hover, +.tp-bullets.simplebullets.round .bullet.selected { background-color: #fff; } + + +.tp-caption.title-white { + color: #fff; +} + +.tp-caption.text-white { + color: #fff; +} + +.tp-caption.social-icon a:hover { + color: #3b3e43; +} + +.tp-caption .btn, +.tp-caption .btn:hover { + color: #fff; +} + +.bx-wrapper .bx-viewport { + background: transparent; +} + +.bx-wrapper .bx-controls-direction a:hover { + background-color: #3b3e43; +} + +.bx-wrapper .bx-prev { + background-image: url(../../../images/backgrounds/prev.png); +} + +.bx-wrapper .bx-next { + background-image: url(../../../images/backgrounds/next.png); +} + +.bx-wrapper .bx-pager.bx-default-pager a:hover, +.bx-wrapper .bx-pager.bx-default-pager a.active { + background-color: #fff; +} + +#project-slider-control a { + background-color: #fff; +} + +#project-slider-control a:hover, +#project-slider-control a.active { + background-color: transparent; + color: #fff; +} + +#twitter-slider-prev a, +#twitter-slider-next a { + color: #fff; +} + +.widget-search input[type="submit"] { + background-image: url(../../../images/backgrounds/search.png); +} + +.widget_categories ul li { + border-bottom-color: #d7d7d7; +} + +.widget_categories ul li a { + color: #3b3e43; +} + +.widget_archive ul li { + border-bottom-color: #d7d7d7; +} + +.widget_archive ul li a { + color: #3b3e43; +} + +.widget_pages ul li { + border-bottom-color: #d7d7d7; +} + +.widget_pages ul li a { + color: #3b3e43; +} + +.widget_pages ul li ul { + border-top-color: #d7d7d7; +} + +.widget_nav_menu ul li { + border-bottom-color: #d7d7d7; +} + +.widget_nav_menu ul li a { + color: #3b3e43; +} + +.widget_nav_menu ul li ul { + border-top-color: #d7d7d7; +} + +.widget_meta ul li { + border-bottom-color: #d7d7d7; +} + +.widget_meta ul li a { + color: #3b3e43; +} + +.widget_recent_entries ul li { + border-bottom-color: #d7d7d7; +} + +.widget_recent_entries ul li a { + color: #3b3e43; +} +.widget_rss ul li { + border-bottom-color: #d7d7d7; +} + +.widget_rss ul li a { + color: #3b3e43; +} + +.widget_tag_cloud a:hover { + background-color: transparent; + color: #fff; +} + +.widget-newsletter input[type="submit"] { + background-image: url(../../../images/backgrounds/arrow.png); +} + +.widget-newsletter p { + color: #acacac; +} + +.ffWidgetLatestNews ul.alt li { + border-bottom-color: #d7d7d7; +} + +.ffWidgetLatestNews ul.alt li .post-title { + color: #3b3e43; +} + +.ffWidgetLatestNews ul.alt li .post-date { + color: #acacac; +} + +.ffWidgetLatestNews ul li .news-title { + border-bottom-color: #d7d7d7; +} + +.ffWidgetLatestNews ul li .news-title a { + color: #3b3e43; +} + +.ffWidgetLatestNews ul li .news-date { + color: #acacac; +} + +.widget_calendar table th, +.widget_calendar table td { + border-top-color: #3b3e43; + border-left-color: #3b3e43; +} + +.widget_calendar table th:last-child, +.widget_calendar table td:last-child { + border-right-color: #3b3e43; +} + +.widget_calendar table tr:last-child td { + border-bottom-color: #3b3e43; +} + +.widget_calendar table td#today { + color: #fff; +} + +.widget-flickr p { + color: #acacac; +} + +.widget_contact ul li { + border-bottom-color: #d7d7d7; +} + +@media (min-width: 768px) and (max-width: 991px) { + + .widget-tab .nav-tabs > li > a { + border-color: #d7d7d7; + } + + .widget-tab .nav-tabs > li > a:hover { + border-color: #d7d7d7; + } + +} + +@media (max-width: 767px) { + + .nav-tabs > li > a { + border-color: #d7d7d7; + } + + .nav-tabs > li > a:hover { + border-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li > a, + .vertical-tabs .nav-tabs > li.active > a { + border-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li:first-child > a { + border-top-color: #d7d7d7; + } + + .vertical-tabs .nav-tabs > li:last-child > a { + border-bottom-color: #d7d7d7; + } + +} + + #page-wrapper { + background-color: #fff; +} + +.boxed #page-wrapper { + -webkit-box-shadow: 0px 0px 5px #323232; + box-shadow: 0px 0px 5px #323232; +} + +#page-wrapper > header .menu li a { + color: #3b3e43; +} + +#page-wrapper > header .menu li.dropdown ul { + border-color: #d7d7d7; + background-color: #fff; +} + +#page-wrapper > header .menu li.megamenu .megamenu-container { + border-color: #d7d7d7; + background: #fff url(../../../images/backgrounds/bg-megamenu.jpg) no-repeat center center; +} + +.sf-arrows .sf-with-ul:after { + border-color: transparent; + border-top-color: #3b3e43; +} + +.sf-arrows ul .sf-with-ul:after { + border-color: transparent; + border-left-color: #3b3e43; +} + +#page-wrapper > header .menu.nav > li > a:hover, +#page-wrapper > header .menu.nav > li > a:focus { + background-color: transparent; +} + +#page-wrapper > header .menu.nav > li > a:focus { + color: #3b3e43; +} + +#page-wrapper > header .menu.dark li.dropdown ul { + background-color: #3b3e43; + color: #fff; +} + +#page-wrapper > header .menu.dark li.megamenu .megamenu-container { + background-color: #3b3e43; + color: #fff; +} + +#page-wrapper > header .menu.dark li.dropdown ul li > a, +#page-wrapper > header .menu.dark li.megamenu .megamenu-container a { + color: #fff; +} + +#mobile-menu-button:hover { + color: #fff; +} + +#mobile-menu, +#mobile-menu ul { + color: #fff; +} + +#mobile-menu li a { + color: #fff; + border-bottom-color: #fff; +} + +#mobile-menu li.dropdown > a:after, +#mobile-menu li.megamenu > a:after { + border-color: transparent; + border-top-color: #fff; +} + +#mobile-menu li.dropdown > a.open:after, +#mobile-menu li.megamenu > a.open:after { + border-top-color: transparent; + border-bottom-color: #fff; +} + +a.search-button { + color: #3b3e43; +} + +a.search-button.open .triangle { + border-left-color: transparent; + border-right-color: transparent; + border-top-color: #3b3e43; + content: ""; + -moz-transform: scale(0.9999); +} + +a.search-button.open, +a.search-button:hover { + color: #fff; +} + +#search-container { + background-color: #3b3e43; + color: #fff; +} + +#search-container input[type="text"] { + background-color: transparent; +} + +@media (min-width: 992px) { + + header.header-sticky { + background-color: #fff; + box-shadow: 0 1px 3px rgba(0,0,0,0.18); + } + +} + +#page-header { + border-top-color: #d7d7d7; + border-bottom-color: #d7d7d7; + position: relative; +} + +#page-header.dark-1 { + background-color: #3b3e43; + color: #fff; +} + +#page-header.dark-2 { + color: #fff; +} + +#page-header.dark-1 .breadcrumb li a, +#page-header.dark-2 .breadcrumb li a { + color: #fff; +} + +#footer-top { + background-color: #f1f1f1 ; +} + +#footer { + background-color: #3b3e43; + color: #d7d7d7; +} + +#footer a { + color: #d7d7d7; +} + +#footer .widget-search input[type="submit"] { + background-image: url(../../../images/backgrounds/search-2.png); +} + +#footer .widget-newsletter input[type="submit"] { + background-image: url(../../../images/backgrounds/arrow-2.png); +} + +#footer .widget_calendar table th, +#footer .widget_calendar table td { + border-color: #fff; +} + +#footer-bottom { + background-color: #2b2e31; + color: #585c62; +} + +#footer-bottom a { + color: #585c62; +} + +.about-me-thumbnail { + border-color: #d7d7d7; +} + +.about-me-thumbnail .social-media { + background-color: #3b3e43; +} + +.about-me-thumbnail .social-media a { + color: #fff; +} + +.portfolio-item-hover { + background-color: rgba(59, 62, 67, 0.85); +} + +.portfolio-item-hover .portfolio-item-description h3 a { + color: #fff; +} + +.portfolio-item-hover a.zoom-action:hover { + color: #fff; +} + +.portfolio-item.parallax .pattern { + background-image: url(../../../images/backgrounds/pattern.png); +} + +.portfolio-item.parallax .portfolio-item-description h1 a { + color: #fff; +} + +.project-details li { + border-bottom-color: #d7d7d7; +} + +.blog-article-hover { + background-color: rgba(59, 62, 67, 0.85); +} + +.blog-article-hover .zoom-action { + color: #fff; +} + +.blog-article-author { + border-color: #d7d7d7; +} + +.comment-author .fn { + color: #3b3e43; +} + +.comment-metadata a { + color: #d7d7d7; +} + +#commentform input[type="text"], +#commentform textarea { + border-bottom-color: #d7d7d7; +} + +#commentform input[type="text"]:focus, +#commentform textarea:focus { + border-bottom-color: #3b3e43; +} + +#commentform input[type="submit"]:hover { + background-color: #3b3e43; +} + +#contact-form input[type="text"], +#contact-form textarea { + border-bottom-color: #d7d7d7; +} + +#contact-form input[type="text"]:focus, +#contact-form textarea:focus { + border-bottom-color: #3b3e43; +} + +#contact-form input[type="submit"]:hover { + background-color: #3b3e43; +} + +#contact-form label.error { + color: #f00; +} + +.elements-menu { + background-color: #fff; +} + +.elements-menu .nav > li > a, +.elements-menu .nav > li > a:focus { + color: #3b3e43; +} + +.elements-menu .nav > li > a:hover, +.elements-menu .nav > li.active > a { + background-color: transparent; +} + +.elements-menu .nav > li > a:focus { + background-color: transparent; +} \ No newline at end of file diff --git a/wp-content/themes/milo/assets/css/custom.css b/wp-content/themes/milo/assets/css/custom.css new file mode 100644 index 0000000..fbd1467 --- /dev/null +++ b/wp-content/themes/milo/assets/css/custom.css @@ -0,0 +1,3056 @@ +/* + * + * CUSTOM.CSS + * + * + TYPOGRAPHY + * + HEADLINE + * + ALERTS + * + LISTS + * + BUTTONS + * + ACCORDION + * + TABS + * + GOOGLE MAPS + * + SOCIAL MEDIA + * + PROCESS STEPS + * + PIE CHARTS + * + PROGRESS BARS + * + COUNTER + * + PRICE PLAN + * + TESTIMONIALS + * + ISOTOPE + * + FILTER + * + PAGINATION + * + BREADCRUMB + * + LOGOS + * + TIMELINE + * + INFO BOX + * + FULL SECTIONS + * + VIDEO PLAYER + * + GO TOP + * + SLIDERS + * + ANIMATIONS + * + WIDGETS + * + RESPONSIVE + * - LARGE DISPLAY (>1200px) + * - SMALL DISPLAY (TABLETS) + * - EXTRA SMALL DISPLAY (PHONES PORTRAIT) + * - EXTRA SMALL DISPLAY (PHONES LANDSCAPE) + */ + +/*********************************************************************************** + * + TYPOGRAPHY + ***********************************************************************************/ + + body { + background-color: #fff; + overflow-x: hidden; + color: #3b3e43; + font: 13px/24px "Open Sans", Arial, sans-serif; + letter-spacing: 1px; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + margin: 0; + font-weight: 400; + text-transform: uppercase; + font-weight: 800; + } + + h1 { + font-size: 36px; + line-height: 48px; + letter-spacing: 4.5px; + margin-bottom: 16px; + } + + h2 { + font-size: 24px; + line-height: 36px; + letter-spacing: 4px; + margin-bottom: 14px; + } + + h3 { + font-size: 18px; + line-height: 27px; + letter-spacing: 3.5px; + margin-bottom: 12px; + } + + h4 { + font-size: 13px; + line-height: 20px; + letter-spacing: 3px; + margin-bottom: 10px; + } + + h5 { + font-size: 12px; + line-height: 18px; + letter-spacing: 2.5px; + margin-bottom: 8px; + } + + h6 { + font-size: 10px; + line-height: 15px; + letter-spacing: 2px; + margin-bottom: 6px; + } + + h1 a, + h2 a, + h3 a, + h4 a, + h5 a, + h6 a { + color: #3b3e43; + text-decoration: none; + -webkit-transition: all 0.3s; + transition: all 0.3s; + } + + h1 a:hover, + h2 a:hover, + h3 a:hover, + h4 a:hover, + h5 a:hover, + h6 a:hover { + text-decoration: none; + } + + p { + margin-bottom: 20px; + } + + blockquote { + border-left: none; + padding: 0; + font-size: 18px; + line-height: 27px; + color: #bca480; + } + + blockquote:before { + font-family: "FontAwesome"; + content: "\f10d"; + font-size: 22px; + line-height: 22px; + display: block; + margin-bottom: 15px; + } + + blockquote p { + font-style: italic; + } + + a { + color: #bca480; + } + + a:hover, + a:focus { + outline: 0; + color: #bca480; + } + + img { + max-width: 100%; + } + + ul { + padding: 0; + } + + ul ul { + margin-left: 20px; + } + + .last { + margin-bottom: 0; + } + + .hr { + margin: 30px 0; + border-top: 1px solid #000; + } + + .text-primary { + color: #bca480; + } + + label { + font-weight: normal; + } + + input, + select, + textarea { + display: block; + max-width: 100%; + padding: 5px 10px; + border: 1px solid #ccc; + background-color: transparent; + -webkit-appearance: none; + } + + input[type="text"]:focus, + input[type="text"]:focus, + input[type="text"]:focus, + input[type="url"]:focus, + textarea:focus { + border-color: #000; + } + +/*********************************************************************************** + * + HEADLINE + ***********************************************************************************/ + .headline > i { + font-size: 25px; + line-height: 25px; + margin-bottom: 15px; + color: #bca480; + } + + /* STYLE 1 */ + .headline.style-1 { + margin-bottom: 50px; + } + + .headline.style-1 h4 { + font-weight: 600; + margin-bottom: 0; + color: #bca480; + } + + .headline.style-1 h2 { + font-weight: 700; + } + + /* STYLE 2 */ + .headline.style-2 { + margin-bottom: 20px; + text-align: center; + } + + .headline.style-2 h2 { + margin-bottom: 0; + font-weight: 400; + } + + + /* STYLE 3 */ + .headline.style-3 { + margin-bottom: 70px; + text-align: center; + } + + .headline.style-3 h5 { + margin-bottom: 0; + color: #bca480; + } + +/*********************************************************************************** + * + ALERTS + ***********************************************************************************/ + + .alert { + position: relative; + text-transform: uppercase; + font-weight: 600; + border: none; + border-radius: 0; + color: #fff; + margin-bottom: 30px; + padding-right: 55px; + } + + .alert:after { + position: absolute; + top: 0; + right: 0; + width: 55px; + height: 100%; + line-height: 55px; + text-align: center; + border-left: 1px solid #fff; + content: "x"; + } + + .alert i { + font-size: 18px; + line-height: 20px; + margin-right: 15px; + } + + .alert.alert-info { + background-color: #3b3e44; + } + + .alert.alert-danger { + background-color: #9e0b0f; + } + + .alert.alert-success { + background-color: #bca480; + } + + .alert.alert-warning { + background-color: #fff; + color: #3b3e43; + border: 1px solid #3b3e44; + } + + .alert.alert-warning:after { + border-color: #3b3e44; + } + +/*********************************************************************************** + * + LISTS + ***********************************************************************************/ + + .check-list, + .circle-list { + list-style: none; + margin-bottom: 20px; + } + + .check-list li:before { + font-family: "FontAwesome"; + content: "\f00c"; + margin-right: 10px; + width: 16px; + height: 16px; + display: inline-block; + text-align: center; + padding-left: 1px; + border: 1px solid #3b3e43; + font-size: 9px; + line-height: 15px; + } + + .circle-list li:before { + font-family: "FontAwesome"; + content: "\f111"; + margin-right: 10px; + display: inline-block; + font-size: 7px; + line-height: 16px; + position: relative; + top: -2px; + } + +/*********************************************************************************** + * + BUTTONS + ***********************************************************************************/ + + .btn { + position: relative; + z-index: 2; + margin-bottom: 20px; + border-radius: 0; + text-transform: uppercase; + font-size: 12px; + line-height: 12px; + padding: 15px 20px; + overflow: hidden; + -webkit-transition: all 0.2s; + transition: all 0.2s; + } + + .btn:after { + position: absolute; + z-index: -1; + top: 0; + left: 50%; + width: 0; + height: 100%; + opacity: 0; + content: ""; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + -webkit-transition: all 0.2s; + transition: all 0.2s; + } + + .btn:hover:after { + width: 101%; + opacity: 1; + } + + .btn:hover { + background-color: transparent; + } + + .btn:focus { + outline: 0; + } + + .btn i { + display: inline-block; + line-height: 43px; + text-align: center; + border-left: 1px solid #fff; + padding-left: 20px; + margin: -15px 0 -15px 20px; + color: #ffffff; + } + + /* DEFAULT BUTTON */ + .btn-default { + border: 1px solid #bca480; + background-color: #bca480; + color: #fff; + } + + .btn-default:after { + background-color: #3b3e43; + } + + .btn-default:hover { + border-color: #3b3e43; + background-color: #bca480; + color: #fff; + } + + .btn-default:focus { + background-color: #bca480; + color: #fff; + } + + /* BLACK BUTTON */ + .btn-black { + border: 1px solid #3b3e43; + background-color: #3b3e43; + color: #fff; + } + + .btn-black:after { + background-color: #bca480; + } + + .btn-black:hover { + border-color: #bca480; + background-color: #3b3e43; + color: #fff; + } + + .btn-black:focus { + color: #fff; + } + + /* WHITE BUTTON */ + .btn-white { + border: 1px solid #bca480; + background-color: transparent; + } + + .btn-white i { + border-left-color: #bca480; + color: #bca480; + } + + .btn-white:after { + background-color: #bca480; + } + + .btn-white:hover { + border-color: #bca480; + background-color: transparent; + color: #fff; + } + + .btn-white:hover i { + border-left-color: #fff; + } + +/*********************************************************************************** + * + ACCORDION + ***********************************************************************************/ + + #accordion { + margin-bottom: 30px; + } + + .panel { + box-shadow: none; + background-color: transparent; + } + + .panel-heading { + border: none; + border-radius: 0; + background-color: transparent; + padding: 0; + } + + .panel-title a, + .panel-title a:focus { + display: block; + text-decoration: none; + border-top: 1px solid #d7d7d7; + padding: 20px 0 17px; + font-size: 13px; + line-height: 13px; + font-weight: 600; + color: #3b3e43; + } + + .panel-title a:before { + font-family: "FontAwesome"; + content: "\f105"; + color: #bca480; + font-size: 20px; + margin: 0 20px; + font-weight: 400; + } + + .panel-title a[aria-expanded="true"] { + color: #bca480; + } + + .panel-title a[aria-expanded="true"]:before { + content: "\f107"; + } + + .panel-group .panel-heading + .panel-collapse > .list-group, + .panel-group .panel-heading + .panel-collapse > .panel-body { + border: none; + padding: 0; + padding-left: 55px; + } + +/*********************************************************************************** + * + TABS + ***********************************************************************************/ + + /* HORIZONTAL TABS */ + .nav-tabs > li > a { + border-radius: 2px; + color: #3b3e43; + border-color: transparent; + text-transform: uppercase; + -webkit-transition: all 0.3s; + transition: all 0.3s; + } + + .nav-tabs > li > a:hover, + .nav-tabs > li > a:focus { + background-color: transparent; + border-color: transparent; + color: #bca480; + } + + .nav-tabs > li.active > a, + .nav-tabs > li.active > a:hover, + .nav-tabs > li.active > a:focus { + color: #bca480; + } + + .tab-content { + margin: 40px 0; + } + + .tab-content img { + float: left; + display: block; + margin-right: 20px; + } + + /* VERTICAL TABS */ + .vertical-tabs { + margin-bottom: 30px; + } + + .vertical-tabs .nav-tabs { + float: left; + width: 200px; + border-bottom: none; + } + + .vertical-tabs .nav-tabs li { + float: none; + } + + .vertical-tabs .nav-tabs > li > a { + margin-right: 0; + border: 1px solid transparent; + border-right: none; + } + + .vertical-tabs .nav-tabs > li:first-child > a { + border-top: none; + } + + .vertical-tabs .nav-tabs > li.active > a { + border-color: #d7d7d7; + border-right: none; + } + + .vertical-tabs .tab-content { + border-left: 1px solid #d7d7d7; + margin-top: 0; + margin-left: 199px; + padding: 10px 10px 10px 40px; + } + + .vertical-tabs .tab-content img { + float: none; + margin-right: 0; + } + +/*********************************************************************************** + * + GOOGLE MAPS + ***********************************************************************************/ + + .map { + height: 650px; + } + + .map img { + max-width: none; + } + + .map { + -webkit-transform: inherit !important; + -moz-transform: inherit !important; + transform: inherit !important; + } + +/*********************************************************************************** + * + SOCIAL MEDIA + ***********************************************************************************/ + + .social-media { + margin-bottom: 20px; + } + + .social-media a { + font-size: 24px; + line-height: 24px; + color: #acacac; + text-decoration: none; + margin-right: 10px; + -webkit-transition: all 0.3s; + transition: all 0.3s; + } + + .social-media a:hover { + color: #bca480; + } + + .social-media a:last-child { + margin-right: 0; + } + + .social-media a.facebook:hover { color: #3b5998 !important; } + .social-media a.twitter:hover { color: #5ea9dd !important; } + .social-media a.google:hover { color: #c63427 !important; } + .social-media a.linkedin:hover { color: #0077b5 !important; } + .social-media a.android:hover { color: #a4c639 !important; } + .social-media a.apple:hover { color: #d6d7cf !important; } + .social-media a.dribbble:hover { color: #e04c86 !important; } + .social-media a.dropbox:hover { color: #007ee6 !important; } + .social-media a.flickr:hover { color: #0062dd !important; } + .social-media a.instagram:hover { color: #a07459 !important; } + .social-media a.linux:hover { color: #000000 !important; } + .social-media a.pinterest:hover { color: #f71819 !important; } + .social-media a.reddit:hover { color: #ff4500 !important; } + .social-media a.share:hover { color: #010101 !important; } + .social-media a.skype:hover { color: #00abeb !important; } + .social-media a.tumblr:hover { color: #34465d !important; } + .social-media a.vimeo:hover { color: #1ca7cc !important; } + .social-media a.vine:hover { color: #02c594 !important; } + .social-media a.vk:hover { color: #4c75a3 !important; } + .social-media a.whatsapp:hover { color: #11ae09 !important; } + .social-media a.windows:hover { color: #00abf3 !important; } + .social-media a.weibo:hover { color: #d52b2b !important; } + .social-media a.wordpress:hover { color: #464646 !important; } + .social-media a.yahoo:hover { color: #44029a !important; } + .social-media a.youtube:hover { color: #e22d24 !important; } + +/*********************************************************************************** + * + PROCESS STEPS + ***********************************************************************************/ + + .process-steps { + position: relative; + margin: 15px 0 30px; + } + + .process-steps:before { + display: block; + border-top: 1px solid #d7d7d7; + content: ""; + position: absolute; + top: 42.5px; + left: 0; + right: 0; + width: 80%; + z-index: 1; + margin: 0 auto; + } + + .process-steps .step { + position: relative; + z-index: 2; + float: left; + width: 20%; + text-align: center; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: all 0.3s; + transition: all 0.3s; + } + + + .process-steps.process-8-steps .step { + width: 12.5%; + } + + .process-steps.process-7-steps .step { + width: 14.28%; + } + .process-steps.process-6-steps .step { + width: 16.66666%; + } + + .process-steps.process-5-steps .step { + width: 20%; + } + + .process-steps.process-4-steps .step { + width: 25%; + } + + .process-steps.process-3-steps .step { + width: 33.33%; + } + + .process-steps.process-2-steps .step { + width: 50%; + } + + .process-steps.process-1-steps .step { + width: 100%; + } + + .process-steps .step i { + border: 1px solid #3b3e43; + border-radius: 50%; + display: block; + width: 85px; + height: 85px; + font-size: 26px; + line-height: 85px; + margin: 0 auto; + background-color: #fff; + outline: 10px solid #fff; + -webkit-transition: all 0.3s; + transition: all 0.3s; + } + + .process-steps .step-details { + margin-top: 20px; + } + + .process-steps .step-details h5 { + font-weight: 400; + -webkit-transition: all 0.3s; + transition: all 0.3s; + } + + .process-steps .step:hover { + -webkit-transform: scale(1.2); + -ms-transform: scale(1.2); + transform: scale(1.2); + } + + .process-steps .step:hover i { + border-color: #bca480; + color: #bca480; + } + + .process-steps .step:hover h5 { + color: #bca480; + } + +/*********************************************************************************** + * + PIE CHARTS + ***********************************************************************************/ + + .pie-chart { + position: relative; + text-align: center; + margin-bottom: 20px; + } + + .pie-chart canvas { + max-width: 100%; + } + + .pie-chart-details { + position: absolute; + top: 50%; + left: 0; + width: 100%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + } + + .pie-chart-details h1 { + font-size: 36px; + line-height: 60px; + font-weight: 300; + text-transform: uppercase; + } + + .pie-chart-details h1 small { + display: block; + font-size: 14px; + font-weight: 700; + color: #bca480; + } + + + /* LEGEND */ + .legend { + list-style: none; + font-size: 11px; + text-transform: uppercase; + } + + .legend li:before { + display: inline-block; + width: 18px; + height: 18px; + margin-right: 15px; + content: ""; + vertical-align: middle; + } + + .legend li:nth-child(1):before { + background-color: #3b3e43; + } + + .legend li:nth-child(2):before { + background-color: #a2a5ab; + } + + .legend li:nth-child(3):before { + background-color: #bca480; + } + + .legend li:nth-child(4):before { + background-color: #efdbbd; + } + + + .chart-container { + margin-bottom: 30px; + } + +/*********************************************************************************** + * + PROGRESS BARS + ***********************************************************************************/ + + .progress { + box-shadow: none; + border-radius: 0; + background-color: #d7d7d7; + height: 3px; + margin-bottom: 10px; + } + + .progress-bar { + background-color: #3b3e43; + } + + .progress-bar-title { + position: relative; + margin-bottom: 30px; + } + + .progress-bar-title h5 { + font-weight: 600; + } + + .progress-bar-title span { + position: absolute; + top: 0; + left: 0; + -webkit-transform: translateX(-100%); + -ms-transform: translateX(-100%); + transform: translateX(-100%); + } + +/*********************************************************************************** + * + COUNTER + ***********************************************************************************/ + + .counter { + margin-bottom: 30px; + color: #bca480; + text-align: center; + } + + .counter i { + font-size: 32px; + line-height: 32px; + } + + .counter-value { + font-size: 72px; + line-height: 96px; + letter-spacing: 10px; + font-weight: 300; + } + + .counter-details { + text-transform: uppercase; + font-weight: 700; + } + +/*********************************************************************************** + * + PRICE PLAN + ***********************************************************************************/ + + .price-plan { + position: relative; + margin-bottom: 50px; + border: 1px solid #d7d7d7; + padding: 40px; + text-align: center; + -webkit-transition: all 0.5s; + transition: all 0.5s; + } + + .price-plan:before, + .price-plan:after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + content: ""; + -webkit-transition: all 0.5s; + transition: all 0.5s; + } + + .price-plan:before { + border-right: 1px solid #bca480; + border-left: 1px solid #bca480; + -webkit-transform: scaleY(0); + -ms-transform: scaleY(0); + transform: scaleY(0); + -webkit-transform-origin: 100% 0; + -ms-transform-origin: 100% 0; + transform-origin: 100% 0; + } + + .price-plan:after { + border-top: 1px solid #bca480; + border-bottom: 1px solid #bca480; + -webkit-transform: scaleX(0); + -ms-transform: scaleX(0); + transform: scaleX(0); + -webkit-transform-origin: 0 100%; + -ms-transform-origin: 0 100%; + transform-origin: 0 100%; + } + + .price-plan-heading { + margin-bottom: 40px; + color: #bca480; + } + + .price-plan-heading i { + font-size: 38px; + line-height: 38px; + margin-bottom: 15px + } + + .price-plan-heading h3 { + font-weight: 600; + } + + .price-plan-heading h3:after { + content: ""; + border-bottom: 1px solid #bca480; + display: block; + width: 40px; + margin: 15px auto; + } + + .price-plan-heading h1 { + font-size: 60px; + line-height: 72px; + font-weight: 300; + margin-bottom: 0; + } + + .price-plan-heading h1 sup { + font-size: 24px; + vertical-align: super; + } + + .price-plan-heading h1 small { + display: block; + color: #d7d7d7; + font-size: 13px; + font-weight: 400; + letter-spacing: 1px; + text-transform: none; + } + + .price-plan ul { + list-style: none; + text-transform: uppercase; + margin-bottom: 40px; + } + + .price-plan ul li { + border-top: 1px solid #d7d7d7; + padding: 10px 0; + } + + .price-plan ul li:last-child { + border-bottom: 1px solid #d7d7d7; + } + + .price-plan .btn { + margin-bottom: 0; + } + + .price-plan:hover { + border-color: transparent; + } + + .price-plan:hover:before { + -webkit-transform: scaleY(1); + -ms-transform: scaleY(1); + transform: scaleY(1); + } + .price-plan:hover:after { + -webkit-transform: scaleX(1); + -ms-transform: scaleX(1); + transform: scaleX(1); + } + +/*********************************************************************************** + * + TESTIMONIALS + ***********************************************************************************/ + + .testimonial { + margin-bottom: 30px; + text-align: center; + } + + .testimonial blockquote { + border: none; + padding: 0; + font-size: 14px; + line-height: 24px; + width: 70%; + margin: 0 auto 40px; + color: #3b3e43; + } + + .testimonial blockquote:before { + content: none; + } + + .testimonial blockquote p { + font-style: normal; + } + + .testimonial h5 { + color: #bca480; + font-weight: 400; + } + + .testimonial h5:before { + content: "-"; + margin-right: 5px; + } + + .testimonial img { + border-radius: 50%; + margin-top: 20px; + } + + + /* TESTIMONIAL WITH BACKGROUND */ + .testimonial.with-background { + padding: 70px 40px; + background: #3b3e43 no-repeat center center; + color: #fff; + } + + .testimonial.with-background blockquote { + width: 100%; + color: #fff; + } + +/*********************************************************************************** + * + ISOTOPE + ***********************************************************************************/ + + .isotope { + margin: -15px -15px 30px; + } + + .isotope.no-space { + margin: 0; + margin-bottom: 30px; + } + + .isotope .isotope-item { + float: left; + width: 100%; + padding: 15px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + + .isotope.no-space .isotope-item { + padding: 0; + } + + .isotope.col-1 .isotope-item { + width: 100%; + } + + .isotope.col-2 .isotope-item { + width: 50%; + } + + .isotope.col-3 .isotope-item { + width: 33.333333%; + } + + .isotope.col-4 .isotope-item { + width: 25%; + } + + .isotope.col-5 .isotope-item { + width: 20%; + } + +/*********************************************************************************** + * + FILTER + ***********************************************************************************/ + + .filter { + list-style: none; + text-align: center; + margin-bottom: 100px; + } + + .filter li { + line-height: 13px; + display: inline-block; + text-transform: uppercase; + margin-right: 20px; + padding-right: 20px; + border-right: 1px solid #bca480; + } + + .filter li:last-child { + margin-right: 0; + padding-right: 0; + border-right: none; + } + + .filter li a { + text-decoration: none; + color: #3b3e43; + font-weight: 600; + -webkit-transition: all 0.3s; + transition: all 0.3s; + } + + .filter li a:hover, + .filter li a.active { + color: #bca480;; + } + +/*********************************************************************************** + * + PAGINATION + ***********************************************************************************/ + + .pagination { + display: block; + margin-bottom: 50px; + text-align: center; + } + + .pagination > li:last-child > a, + .pagination > li:first-child > a { + border-radius: 0; + } + + .pagination li { + display: inline-block; + margin-right: 5px; + } + + .pagination li:last-child { + margin-right: 0; + } + + .pagination li a { + display: block; + width: 32px; + height: 32px; + font-size: 14px; + line-height: 32px; + background-color: #3b3e43; + color: #fff; + padding: 0; + text-align: center; + border: none; + -webkit-transition: all 0.3s; + transition: all 0.3s; + } + + .pagination > li > a:hover, + .pagination > li.active > a, + .pagination > li.active > a:hover { + background-color: #bca480; + color: #fff; + } + +/*********************************************************************************** + * + BREADCRUMB + ***********************************************************************************/ + + .breadcrumb { + background-color: transparent; + text-align: right; + margin: 0; + padding: 0; + letter-spacing: 3px; + } + + .breadcrumb li a { + color: #bca480; + } + + .breadcrumb li a:hover { + text-decoration: none; + color: #3b3e43; + } + + .breadcrumb li.active { + color: #3b3e43; + } + +/*********************************************************************************** + * + LOGOS + ***********************************************************************************/ + + .logos { + list-style: none; + margin: 0 -25px 20px -25px; + } + + .logos li { + float: left; + width: 20%; + padding: 0 25px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + + .logos li:last-child { + margin-right: 0; + } + + .logos li img { + display: block; + max-width: 100%; + margin: 0 auto; + } + +/*********************************************************************************** + * + TIMELINE + ***********************************************************************************/ + + .timeline { + margin-bottom: 50px; + } + + .timeline-item { + position: relative; + padding-bottom: 80px; + margin-bottom: 20px; + text-align: center; + -webkit-transition: all 0.3s; + transition: all 0.3s; + } + + .timeline-item:after { + content: ""; + border-left: 1px solid #3b3e43; + height: 65px; + position: absolute; + bottom: 0; + left: 50%; + } + + .timeline-item:last-child { + margin-bottom: 0; + padding-bottom: 0; + } + + .timeline-item:last-child:after { + display: none; + } + + .timeline-item h4 { + font-weight: 600; + margin-bottom: 5px; + } + + .timeline-item h2 { + font-weight: 700; + margin-bottom: 5px; + } + + .timeline-item h2 a { + display: block; + } + + .timeline-item h2 a:after, + .timeline-item h2 a:before { + position: relative; + top: -5px; + margin: 0 15px; + display: inline-block; + width: 6px; + height: 6px; + border-radius: 50%; + background-color: #bca480; + content: ""; + } + + .timeline-item:hover { + -webkit-transform: scale(1.1); + -ms-transform: scale(1.1); + transform: scale(1.1); + } + +/*********************************************************************************** + * + INFO BOX + ***********************************************************************************/ + + .info-box { + padding: 100px 0 80px; + text-align: center; + margin: 70px 0 100px; + } + +/*********************************************************************************** + * + FULL SECTIONS + ***********************************************************************************/ + + .full-section { + position: relative; + z-index: 0; + margin-bottom: 100px; + padding: 60px 0; + background: #333 no-repeat center center; + color: #fff; + } + + .full-section-content { + position: relative; + z-index: 2; + padding: 165px 0 135px; + } + + #video-section .full-section-content { + position: absolute; + top: 50%; + left: 0; + right: 0; + padding: 0; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + } + + .full-screen .full-section-content { + position: absolute; + top: 50%; + left: 0; + right: 0; + padding: 0; + -webkit-transform: translateY(-15%); + -ms-transform: translateY(-15%); + transform: translateY(-15%); + } + + #video-section.full-screen .full-section-content { + -webkit-transform: translateY(-15%); + -ms-transform: translateY(-15%); + transform: translateY(-15%); + } + + .parallax { + background-attachment: fixed !important; + -webkit-background-size: cover !important; + background-size: cover !important; + } + + + /* ELEMENTS STYLE IN FULL SECTION */ + .full-section h1 a, + .full-section h2 a, + .full-section h3 a, + .full-section h4 a, + .full-section h5 a, + .full-section h6 a, + .full-section .nav-tabs > li > a, + .full-section .panel-title a:focus, + .full-section .process-steps .step:hover i { + color: #bca480; + } + + .full-section h1 a:hover, + .full-section h2 a:hover, + .full-section h3 a:hover, + .full-section h4 a:hover, + .full-section h5 a:hover, + .full-section h6 a:hover, + .full-section .counter-value, + .full-section .testimonial blockquote, + .full-section .panel-title a[aria-expanded="true"] { + color: #fff; + } + + .full-section .process-steps .step i { + outline: 0; + color: #fff; + background-color: #3b3e43; + border-color: #fff; + } + + .full-section .process-steps .step:hover i { + border-color: #bca480; + } + + .full-section .widget-twitter { + margin-bottom: 0; + } + + + /* BACKROUNDS AND STYLE FOR FULL SECTIONS */ + #section-1 { + padding-top: 100px; + margin-top: 50px; + } + + .project-slider-tabs { + padding: 0; + border-top: 1px solid #bca480; + border-bottom: 1px solid #bca480; + background-color: #bca480; + margin-bottom: 0; + margin-top: 50px; + } + + #section-3 { + margin-top: 50px; + padding: 120px 0 90px; + } + + #section-4 { + margin-bottom: 0; + margin-top: 50px; + padding: 85px 0 45px; + } + + #section-5 { + margin-top: 50px; + padding: 85px 0 70px; + } + + #section-6 { + margin-top: 50px; + background-color: #f4f4f4; + padding: 85px 0 65px; + } + + #section-7 { + margin-top: 80px; + padding: 100px 0 70px; + } + + #section-8 { + background-color: #2b2e31; + margin-bottom: 0; + margin-top: 50px; + padding: 80px 0; + } + + #section-9 { + margin-top: 60px; + padding: 120px 0 90px; + } + + #section-10 { + background-color: #3b3e43; + padding: 50px 0 30px; + } + + + #section-11 { + margin-top: 50px; + padding: 100px 0 70px; + } + + #section-12 { + margin-top: 50px; + margin-bottom: 0; + background-color: #f4f4f4; + padding: 85px 0 65px; + } + +/*********************************************************************************** + * + VIDEO PLAYER + ***********************************************************************************/ + + #youtube-video-section { + position: absolute; + overflow: hidden; + z-index: 1; + top: 0; + width: 100%; + height: 100%; + } + + #video-section, + #home-video-section { + padding: 0; + height: 635px; + } + + .youtube-player { + display: none; + } + + .mb_YTVPBar .buttonBar { + top: -200px; + } + + .full-screen .mb_YTVPBar .buttonBar { + top: -100px; + } + +/*********************************************************************************** + * + GO TOP + ***********************************************************************************/ + + #go-top { + z-index: 99999; + display: none; + position: fixed; + bottom: 25px; + right: 25px; + font-size: 48px; + line-height: 48px; + text-decoration: none; + cursor: pointer; + color: #bca480; + text-align: center; + border-radius: 5px; + -webkit-transition: all 0.3s; + transition: all 0.3s; + } + + #go-top:hover { + opacity: 0.7; + } + +/*********************************************************************************** + * + SLIDERS + ***********************************************************************************/ + + /* REVOLUTION SLIDER*/ + .bannercontainer { + width: 100%; + position: relative; + padding: 0; + margin-bottom: 100px; + } + + .banner{ + width: 100%; + position: relative; + } + + .tp-leftarrow.default, + .tp-rightarrow.default { + width: 36px; + height: 36px; + background: #bca480 no-repeat center center; + } + + .tp-leftarrow.default:hover, + .tp-rightarrow.default:hover { + background-color: #3b3e43; + } + + .tp-leftarrow.default { + background-image: url(../../images/backgrounds/prev.png); + } + + .tp-rightarrow.default { + background-image: url(../../images/backgrounds/next.png); + } + + .tp-bullets.simplebullets.round .bullet { + width: 8px; + height: 8px; + background: #bca480; + border: 1px solid #bca480; + border-radius: 50%; + margin: 0 3px; + } + + .tp-bullets.simplebullets.round .bullet:hover, + .tp-bullets.simplebullets.round .bullet.selected { background-color: #fff; } + + + .tp-caption.title { + font-size: 24px; + line-height: 30px; + font-weight: 700; + color: #bca480; + text-transform: uppercase; + } + + .tp-caption.title-white { + font-size: 48px; + line-height: 60px; + font-weight: 700; + color: #fff; + text-transform: uppercase; + } + + .tp-caption.title:after { + content: ""; + border-bottom: 1px solid #bca480; + width: 15px; + display: block; + margin-top: 15px; + } + + .tp-caption.text { + font-size: 13px; + line-height: 24px; + font-weight: 300; + } + + .tp-caption.text-white { + font-size: 13px; + line-height: 24px; + font-weight: 300; + color: #fff; + } + + .tp-caption.social-icon a { + font-size: 20px; + line-height: 10px; + color: #bca480; + padding-right: 10px; + border-right: 1px solid #bca480; + } + + .tp-caption.social-icon:last-child a { + border-right: none; + } + + .tp-caption.social-icon a:hover { + color: #3b3e43; + } + + .tp-caption .btn, + .tp-caption .btn:hover { + color: #fff; + } + + + /* BxSLIDER */ + .bx-wrapper .bx-viewport { + left: 0; + border: none; + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; + } + + .bx-wrapper .bx-pager, + .bx-wrapper .bx-controls-auto { + bottom: 20px; + } + + .bx-wrapper .bx-controls-direction a { + background-color: #bca480; + } + + .bx-wrapper .bx-controls-direction a:hover { + background-color: #3b3e43; + } + + .bx-wrapper .bx-prev { + left: 0; + background: url(../../images/backgrounds/prev.png) no-repeat center center; + } + + .bx-wrapper .bx-next { + right: 0; + background: url(../../images/backgrounds/next.png) no-repeat center center; + } + + .bx-wrapper .bx-prev:hover, + .bx-wrapper .bx-prev:focus, + .bx-wrapper .bx-next:hover, + .bx-wrapper .bx-next:focus { + background-position: center center; + } + + .bx-wrapper .bx-pager.bx-default-pager a { + width: 8px; + height: 8px; + border: 1px solid #bca480; + background-color: #bca480; + } + + .bx-wrapper .bx-pager.bx-default-pager a:hover, + .bx-wrapper .bx-pager.bx-default-pager a.active { + background-color: #fff; + } + + + /* INFO SLIDER */ + .info-slider .bx-wrapper .bx-pager { + text-align: left; + bottom: -20px; + } + + + /* TESTIMONIAL SLIDER */ + .testimonial-slider .thumb-pager { + text-align: center; + } + + .testimonial-slider .thumb-pager a { + -webkit-transition: all 0.3s; + transition: all 0.3s; + } + + .testimonial-slider .thumb-pager a:hover, + .testimonial-slider .thumb-pager a.active { + opacity: 0.5; + } + + .testimonial-slider .thumb-pager a img[src=""]{ + height: 64px; + width: 64px; + background-color: #FFEECC; + } + + .testimonial-slider .bx-wrapper { + margin-bottom: 40px; + } + + .testimonial-slider-2 .bx-wrapper .bx-pager { + bottom: -40px; + } + + .testimonial-slider-2 .testimonial blockquote { + width: 100%; + } + + + /* PROJECT SLIDER */ + #project-slider-control a { + display: block; + float: left; + width: 25%; + background-color: #fff; + text-transform: uppercase; + text-align: center; + border-right: 1px solid #bca480; + text-decoration: none; + padding: 40px 0; + font-size: 14px; + line-height: 14px; + -webkit-transition: all 0.3s; + transition: all 0.3s; + } + + #project-slider-control a:first-child { + border-left: 1px solid #bca480; + } + + #project-slider-control a:hover, + #project-slider-control a.active { + background-color: transparent; + color: #fff; + } + + .project-slider { + max-width: 1920px; + margin: 0 auto; + text-align: center; + } + + .project-slider .bx-wrapper { + margin-bottom: 0; + } + + .project-slider .bx-wrapper img { + margin: 0 auto; + } + + .slide-description { + position: absolute; + top: 50%; + left: 50%; + width: 50%; + -webkit-transform: translate(-50%,-50%); + -ms-transform: translate(-50%,-50%); + transform: translate(-50%,-50%); + } + + .slide-description h1 { font-weight: 400; } + .slide-description h4 { font-weight: 700; } + + .slide-description h4, + .slide-description .btn { + margin-bottom: 0; + } + + + /* IMAGES SLIDER */ + .images-slider .bx-wrapper .bx-pager { + bottom: -50px; + } + + .images-slider-2 { + margin-bottom: 100px; + } + + .images-slider-2 > ul { + height: 400px; + overflow: hidden; + position: relative; + } + + .images-slider-2 > ul:after { + content: ' '; + background-color: #f5f5f5; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + } + + + /* TWITTER SLIDER */ + #twitter-slider-controls { + margin-top: 13px; + } + + #twitter-slider-prev, + #twitter-slider-next { + display: block; + } + + #twitter-slider-prev a, + #twitter-slider-next a { + text-decoration: none; + color: #fff; + font-size: 18px; + } + +/*********************************************************************************** + * + ANIMATIONS + ***********************************************************************************/ + + .wow { + visibility: hidden; + } + + .wow.animated { + visibility: visible; + } + +/*********************************************************************************** + * + WIDGETS + ***********************************************************************************/ + + .widget { + margin-bottom: 75px; + } + + .widget-title { + font-size: 18px; + line-height: 18px; + font-weight: 700; + text-transform: uppercase; + margin-bottom: 50px; + } + + .widget-title:after { + content: ""; + border-bottom: 2px solid #bca480; + display: block; + width: 45px; + margin-top: 15px; + } + + /* WIDGET TEXT */ + .widget-text {} + + + /* WIDGET SERACH */ + .widget_search {} + + .widget_search form { + position: relative; + } + + .widget_search input[type="text"] { + width: 100%; + height: 35px; + } + + .widget_search input[type="submit"] { + height: 35px; + border: none; + position: absolute; + top: 0; + right: 0; + background: url(../../images/backgrounds/search.png) no-repeat center center; + } + + + /* WIDGET CATEGORIES */ + .widget_categories {} + + .widget_categories ul { + list-style: none; + margin-bottom: 0; + } + + .widget_categories ul li { + border-bottom: 1px solid #d7d7d7; + padding-bottom: 15px; + margin-bottom: 15px; + } + + .widget_categories ul li:last-child { + margin-bottom: 0; + } + + .widget_categories ul li a { + font-weight: 600; + text-transform: uppercase; + color: #3b3e43; + } + + .widget_categories ul li a:hover { + color: #bca480; + text-decoration: none; + } + + + /* WIDGET CATEGORIES DROPDOWN */ + .widget_categories-dropdown {} + + + /* WIDGET ARCHIVES */ + .widget_archive {} + + .widget_archive ul { + list-style: none; + margin-bottom: 0; + } + + .widget_archive ul li { + border-bottom: 1px solid #d7d7d7; + padding-bottom: 15px; + margin-bottom: 15px; + } + + .widget_archive ul li:last-child { + margin-bottom: 0; + } + + .widget_archive ul li a { + font-weight: 600; + text-transform: uppercase; + color: #3b3e43; + } + + .widget_archive ul li a:hover { + color: #bca480; + text-decoration: none; + } + + + /* WIDGET ARCHIVES DROPDOWN */ + .widget_archive_dropdown {} + + + /* WIDGET PAGES */ + .widget_pages {} + + .widget_pages ul { + list-style: none; + margin-bottom: 0; + } + + .widget_pages ul li { + border-bottom: 1px solid #d7d7d7; + padding-bottom: 15px; + margin-bottom: 15px; + } + + .widget_pages ul li:last-child { + margin-bottom: 0; + } + + .widget_pages ul li a { + font-weight: 600; + text-transform: uppercase; + color: #3b3e43; + } + + .widget_pages ul li a:hover { + color: #bca480; + text-decoration: none; + } + + .widget_pages ul li ul { + padding-top: 15px; + margin-top: 15px; + margin-bottom: -15px; + border-top: 1px solid #d7d7d7; + } + + .widget_pages ul li ul li:last-child { + border-bottom: none; + } + + + /* WIDGET NAV MENU */ + .widget_nav_menu {} + + .widget_nav_menu ul { + list-style: none; + margin-bottom: 0; + } + + .widget_nav_menu ul li { + border-bottom: 1px solid #d7d7d7; + padding-bottom: 15px; + margin-bottom: 15px; + } + + .widget_nav_menu ul li:last-child { + margin-bottom: 0; + } + + .widget_nav_menu ul li a { + font-weight: 600; + text-transform: uppercase; + color: #3b3e43; + } + + .widget_nav_menu ul li a:hover { + color: #bca480; + text-decoration: none; + } + + .widget_nav_menu ul li ul { + padding-top: 15px; + margin-top: 15px; + margin-bottom: -15px; + border-top: 1px solid #d7d7d7; + } + + .widget_nav_menu ul li ul li:last-child { + border-bottom: none; + } + + + /* WIDGET METADATA */ + .widget_meta {} + + .widget_meta ul { + list-style: none; + margin-bottom: 0; + } + + .widget_meta ul li { + border-bottom: 1px solid #d7d7d7; + padding-bottom: 15px; + margin-bottom: 15px; + } + + .widget_meta ul li:last-child { + margin-bottom: 0; + } + + .widget_meta ul li a { + font-weight: 600; + text-transform: uppercase; + color: #3b3e43; + } + + .widget_meta ul li a:hover { + color: #bca480; + text-decoration: none; + } + + + /* WIDGET RECENT ENTRIES WP */ + .widget_recent_entries {} + + .widget_recent_entries ul { + list-style: none; + margin-bottom: 0; + } + + .widget_recent_entries ul li { + border-bottom: 1px solid #d7d7d7; + padding-bottom: 15px; + margin-bottom: 15px; + } + + .widget_recent_entries ul li:last-child { + margin-bottom: 0; + } + + .widget_recent_entries ul li a { + font-weight: 600; + text-transform: uppercase; + color: #3b3e43; + } + + .widget_recent_entries ul li a:hover { + color: #bca480; + text-decoration: none; + } + + + /* WIDGET RSS */ + .widget_rss {} + + .widget_rss ul { + list-style: none; + margin-bottom: 0; + } + + .widget_rss ul li { + border-bottom: 1px solid #d7d7d7; + padding-bottom: 15px; + margin-bottom: 15px; + } + + .widget_rss ul li:last-child { + margin-bottom: 0; + } + + .widget_rss ul li a { + font-weight: 600; + text-transform: uppercase; + color: #3b3e43; + } + + .widget_rss ul li a:hover { + color: #bca480; + text-decoration: none; + } + + + /* WIDGET TAGS */ + .widget_tag_cloud {} + + .widget_tag_cloud a { + position: relative; + z-index: 2; + border-radius: 0; + text-transform: uppercase; + font-size: 12px !important; + line-height: 12px !important; + padding: 10px 15px; + border: 1px solid #bca480; + overflow: hidden; + display: inline-block; + text-decoration: none; + -webkit-transition: all 0.2s; + transition: all 0.2s; + } + + .widget_tag_cloud a:after { + position: absolute; + z-index: -1; + top: 0; + left: 50%; + width: 0; + height: 100%; + opacity: 0; + content: ""; + background-color: #bca480; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + -webkit-transition: all 0.2s; + transition: all 0.2s; + } + + .widget_tag_cloud a:hover:after { + width: 101%; + opacity: 1; + } + + .widget_tag_cloud a:hover { + background-color: transparent; + color: #fff; + } + + + /* WIDGET NEWSLETTER */ + .widget_newsletter {} + + .widget_newsletter form { + position: relative; + margin-bottom: 5px; + } + + .widget_newsletter input[type="text"] { + width: 100%; + height: 35px; + } + + .widget_newsletter input[type="submit"] { + position: absolute; + top: 0; + right: 0; + height: 35px; + background: url(../../images/backgrounds/arrow.png) no-repeat center center; + border: none; + } + + .widget_newsletter input[type="submit"]:hover { + background-color: #bca480; + } + + .widget_newsletter p { + margin-bottom: 0; + font-style: italic; + font-size: 10px; + line-height: 18px; + font-weight: 300; + color: #acacac; + } + + + /* WIDGET RECENT POSTS */ + .ffWidgetLatestNews {} + + .ffWidgetLatestNews ul.alt { + list-style: none; + margin-bottom: 0; + } + + .ffWidgetLatestNews ul.alt li { + border-bottom: 1px solid #d7d7d7; + margin-bottom: 15px; + } + + .ffWidgetLatestNews ul.alt li:last-child { + margin-bottom: 0; + } + + .ffWidgetLatestNews ul.alt li img { + float: left; + display: block; + margin-right: 20px; + margin-bottom: 15px; + } + + .ffWidgetLatestNews ul.alt li .post-title { + text-transform: uppercase; + color: #3b3e43; + font-weight: 600; + } + + .ffWidgetLatestNews ul.alt li .post-title:hover { + color: #bca480; + text-decoration: none; + } + + .ffWidgetLatestNews ul.alt li .post-date { + margin-bottom: 15px; + font-size: 10px; + line-height: 16px; + color: #acacac; + text-transform: uppercase; + font-weight: 600; + } + + .ffWidgetLatestNews ul.alt li:after { + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; + height: 0; + } + + + /* WIDGET LATEST NEWS */ + .ffWidgetLatestNews {} + + .ffWidgetLatestNews ul { + list-style: none; + margin-bottom: 0; + } + + .ffWidgetLatestNews ul li { + margin-bottom: 40px; + } + + .ffWidgetLatestNews ul li:last-child { + margin-bottom: 0; + } + + .ffWidgetLatestNews ul li img { + float: left; + display: block; + margin-right: 20px; + } + + .ffWidgetLatestNews ul li .news-title { + border-bottom: 1px solid #d7d7d7; + margin-bottom: 0; + line-height: 20px; + margin-left: 100px; + margin-bottom: 5px; + padding-bottom: 8px; + } + + .ffWidgetLatestNews ul li .news-title a { + color: #3b3e43; + font-weight: 600; + } + + .ffWidgetLatestNews ul li .news-title:hover a { + color: #bca480; + text-decoration: none; + } + + .ffWidgetLatestNews ul li .news-date { + margin-bottom: 15px; + font-size: 11px; + color: #acacac; + text-transform: uppercase; + font-weight: 600; + } + + .ffWidgetLatestNews ul li:after { + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; + height: 0; + } + + + /* WIDGET RECENT COMMENTS */ + .widget_recent_comments {} + + .widget_recent_comments ul { + list-style: none; + margin-bottom: 0; + } + + + /* WIDGET CALENDAR */ + .widget_calendar {} + + .widget_calendar table { + width: 100%; + text-align: center; + } + + .widget_calendar table th, + .widget_calendar table td { + padding: 5px; + border-top: 1px solid #3b3e43; + border-left: 1px solid #3b3e43; + text-align: center; + } + + .widget_calendar table th:last-child, + .widget_calendar table td:last-child { + border-right: 1px solid #3b3e43; + } + + .widget_calendar table tr:last-child td { + border-bottom: 1px solid #3b3e43; + } + + .widget_calendar table tfoot td, + .widget_calendar table tfoot td:last-child, + .widget_calendar table tfoot tr:last-child td { + border: none; + } + + .widget_calendar table td#today { + background-color: #bca480; + color: #fff; + } + + + /* WIDGET FLICKR */ + .widget_flickr {} + + .flickr_photos { + margin-bottom: 25px; + } + + .portfolio-badge-image { + float: left; + padding: 1px; + } + + .portfolio-badge-image img { + width: 85px; + height: auto; + } + + .portfolio-photos:after { + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; + height: 0; + } + + .widget_flickr p { + margin-bottom: 0; + font-style: italic; + font-size: 10px; + line-height: 18px; + font-weight: 300; + color: #acacac; + } + + + /* WIDGET CONTACT */ + .widget_contact {} + + .widget_contact ul { + list-style: none; + margin-bottom: 0; + } + + .widget_contact ul li { + margin-bottom: 25px; + border-bottom: 1px solid #d7d7d7; + padding-bottom: 25px; + } + + .widget_contact ul li:last-child { + margin-bottom: 0; + border-bottom: none; + padding-bottom: 0; + } + + .widget_contact ul li span { + color: #bca480; + text-transform: uppercase; + font-size: 14px; + font-weight: 600; + display: block; + } + + + /* WIDGET SOCIAL */ + .widget-social {} + + .widget-social .social-media { + margin-bottom: 0; + } + + + /* WIDGET TABS */ + .widget_tab {} + + .widget_tab .widget { + margin-bottom: 0; + } + + + /* WIDGET TWITTER */ + .widget_twitter { + position: relative; + padding-left: 40px; + margin-top:30px; + margin-bottom:35px; + } + + .widget_twitter:before { + position: absolute; + top: 0; + left: 0; + font-family: "FontAwesome"; + font-size: 22px; + line-height: 22px; + color: #bca480; + content: "\f099"; + } + + .widget_twitter .tweet { + font-style: italic; + } + +/*********************************************************************************** + * + RESPONSIVE + ***********************************************************************************/ +/*********************************************************************************** + * - LARGE DISPLAY (>1200px) + ***********************************************************************************/ + + @media (min-width: 1200px) { + + .info-slider .bx-wrapper .bx-pager { + bottom: 0; + } + + } + +/*********************************************************************************** + * - SMALL DISPLAY (TABLETS) + ***********************************************************************************/ + + @media (min-width: 768px) and (max-width: 991px) { + + .counter-value { + font-size: 58px; + line-height: 72px; + } + + .isotope.col-1 .isotope-item { + width: 100%; + } + + .isotope.col-2 .isotope-item, + .isotope.col-3 .isotope-item, + .isotope.col-4 .isotope-item, + .isotope.col-5 .isotope-item { + width: 50%; + } + + .vertical-tabs .nav-tabs { + width: 150px; + } + + .vertical-tabs .tab-content { + margin-left: 149px; + padding-left: 20px; + } + + ffWidgetLatestNews ul li img { + float: none; + margin-right: 0; + margin-bottom: 10px; + } + + ffWidgetLatestNews ul li .news-title { + margin-left: 0; + } + + .tp-rightarrow, + .tp-leftarrow { + display: none; + } + + .tp-caption.title:after { + margin-top: 10px; + } + + .tp-caption.social-icon a { + font-size: 14px; + line-height: 10px; + } + + .tp-caption .btn { + font-size: 10px; + line-height: 10px; + padding: 7px 10px; + } + + .tp-caption .btn i { + padding-left: 10px; + } + + #project-slider-control a { + padding: 20px 0; + } + + .slide-description { + width: 80%; + } + + .ffWidgetLatestNews ul li img { + float: none; + margin-right: 0; + margin-bottom: 10px; + } + + .widget-tab .nav-tabs > li { + float: none; + margin-bottom: 0; + } + + .widget-tab .nav-tabs > li > a { + border: 1px solid #d7d7d7; + border-bottom: none; + border-radius: 0; + margin-right: 0; + } + + .widget-tab .nav-tabs > li > a:hover { + border-color: #d7d7d7; + } + + } + +/*********************************************************************************** + * - EXTRA SMALL DISPLAY (PHONES PORTRAIT) + ***********************************************************************************/ + + @media (max-width: 767px) { + + .last { + margin-bottom: 20px; + } + + .panel-group .panel-heading + .panel-collapse > .list-group, + .panel-group .panel-heading + .panel-collapse > .panel-body { + padding-left: 0; + } + + .logos li { + float: none; + width: 100%; + } + + .process-steps::before { + border: none; + } + + .process-steps .step { + float: none; + width: 100%; + margin-bottom: 30px; + } + + .process-steps .step:last-child { + margin-bottom: 0; + } + + .process-steps.process-6-steps .step, + .process-steps.process-5-steps .step, + .process-steps.process-4-steps .step { + width: 100%; + } + + .filter li { + display: block; + border-right: none; + margin-right: 0; + padding-right: 0; + } + + .filter li a { + display: block; + padding: 5px 0; + } + + .isotope .isotope-item { + float: none; + width: 100%; + } + + .isotope.col-1 .isotope-item, + .isotope.col-2 .isotope-item, + .isotope.col-3 .isotope-item, + .isotope.col-4 .isotope-item, + .isotope.col-5 .isotope-item { + width: 100%; + } + + .testimonial blockquote { + width: 100%; + } + + .map { + height: 400px; + } + + .nav-tabs > li { + float: none; + margin-bottom: 0; + } + + .nav-tabs > li > a { + border: 1px solid #d7d7d7; + border-bottom: none; + border-radius: 0; + margin-right: 0; + } + + .nav-tabs > li > a:hover { + border-color: #d7d7d7; + } + + .tab-content img { + float: none; + margin-right: 0; + margin-bottom: 15px; + } + + .vertical-tabs .nav-tabs { + float: none; + width: 100%; + } + + .vertical-tabs .nav-tabs > li > a, + .vertical-tabs .nav-tabs > li.active > a { + border: 1px solid #d7d7d7; + border-bottom: none; + } + + .vertical-tabs .nav-tabs > li:first-child > a { + border-top: 1px solid #d7d7d7; + } + + .vertical-tabs .nav-tabs > li:last-child > a { + border-bottom: 1px solid #d7d7d7; + } + + .vertical-tabs .tab-content { + margin-left: 0; + padding: 20px; + border-left: none; + } + + .timeline-item h2 a:after, + .timeline-item h2 a:before { + display: none; + } + + .full-screen { + height: auto !important; + } + + .full-screen .full-section-content { + position: relative; + top: 0; + padding: 60px 0 20px; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } + + .full-screen .banner-fullscreen { + height: 300px !important; + } + + .full-screen#video-section { + height: 750px !important; + } + + .tp-rightarrow, + .tp-leftarrow { + display: none; + } + + .tp-caption.title:after { + margin-top: 5px; + } + + .tp-caption.social-icon a { + font-size: 10px; + line-height: 5px; + border-right: none; + } + + .tp-caption .btn { + font-size: 5px; + line-height: 5px; + padding: 1px 3px; + } + + .tp-caption .btn i { + padding-left: 3px; + } + + .info-slider .bx-wrapper .bx-pager { + bottom: -60px; + } + + #project-slider-control a { + float: none; + width: 100%; + padding: 20px 0; + border-left: 1px solid #bca480; + border-bottom: 1px solid #bca480; + } + + #project-slider-control a:last-child { + border-bottom: none; + } + + .slide-description { + width: 100%; + } + + .slide-description p, + .slide-description h1, + .slide-description h4 { + display: none; + } + + } + +/*********************************************************************************** + * - EXTRA SMALL DISPLAY (PHONES LANDSCAPE) + ***********************************************************************************/ + + @media only screen and (min-width: 480px) and (max-width: 767px) { + + .isotope.col-5 .isotope-item { + float: left; + width: 50%; + } + + } + + +/*********************************************************************************** + * - ADDITIONS - THOMAS + ***********************************************************************************/ + +.section-background-block { + position:absolute; + top:0px; + left:0px; + right:0px; + bottom:0px; +} + +.ff-section-fullwidth { + position:relative; +} + +.ff-section-boxed { + max-width: 1170px; + margin: 0 auto; + position:relative; +} + +@media (min-width: 992px) { + + .post-content blockquote { + float: right; + width: 40%; + margin-left: 30px; + } + +} + + + +/* + +WORDPRESS DEFAULT INSERT IMAGE CLASSESSS + +*/ + +.alignnone { + margin: 5px 20px 0 0 !important; + display: inline-block !important; +} + +.aligncenter{ + display: block; + margin: 5px auto 0 auto !important; +} + +.alignright { + float: right; + margin: 5px 0 30px 20px !important; + max-width: 100%; +} + +.alignleft { + float: left; + margin: 5px 20px 30px 0 !important; + max-width: 100%; +} + +.sticky { + border: 5px solid #666666 !important; + padding: 30px; +} + +.wp-caption.alignnone { + margin: 5px 0 30px 0; +} + +.wp-caption.alignleft { + margin: 5px 20px 30px 0; +} + +.wp-caption.alignright { + margin: 5px 0 30px 20px; +} + +.wp-caption { + /*width: auto !important;*/ + font-style: italic; + max-width: 100%; +} + +.wp-caption img { + max-width: 100%; + height: auto; +} + +.wp-caption-text { + font-size: 14px; + margin: 0 0 20px 0; + padding: 0; +} + +.gallery-caption { + font-size: 11px; + line-height: 17px; + padding: 0 15px; +} + +.bypostauthor { + border: 1px solid transparent; +} + +.post-content img, +.page-content img { + max-width: 100%; + height: auto; +} + +/* + +SECTION BACKGROUNDS + +*/ + +.section-background-block{ + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + width: 100%; + height: 100%; + overflow: hidden; /*
'),o.viewport.prepend(o.loader),r.css({width:"horizontal"==o.settings.mode?100*o.children.length+215+"%":"auto",position:"relative"}),o.usingCSS&&o.settings.easing?r.css("-"+o.cssPrefix+"-transition-timing-function",o.settings.easing):o.settings.easing||(o.settings.easing="swing"),f(),o.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),o.viewport.parent().css({maxWidth:p()}),o.settings.pager||o.viewport.parent().css({margin:"0 auto 0px"}),o.children.css({"float":"horizontal"==o.settings.mode?"left":"none",listStyle:"none",position:"relative"}),o.children.css("width",u()),"horizontal"==o.settings.mode&&o.settings.slideMargin>0&&o.children.css("marginRight",o.settings.slideMargin),"vertical"==o.settings.mode&&o.settings.slideMargin>0&&o.children.css("marginBottom",o.settings.slideMargin),"fade"==o.settings.mode&&(o.children.css({position:"absolute",zIndex:0,display:"none"}),o.children.eq(o.settings.startSlide).css({zIndex:o.settings.slideZIndex,display:"block"})),o.controls.el=t('
'),o.settings.captions&&P(),o.active.last=o.settings.startSlide==x()-1,o.settings.video&&r.fitVids();var e=o.children.eq(o.settings.startSlide);"all"==o.settings.preloadImages&&(e=o.children),o.settings.ticker?o.settings.pager=!1:(o.settings.pager&&T(),o.settings.controls&&C(),o.settings.auto&&o.settings.autoControls&&E(),(o.settings.controls||o.settings.autoControls||o.settings.pager)&&o.viewport.after(o.controls.el)),g(e,h)},g=function(e,i){var s=e.find("img, iframe").length;if(0==s)return i(),void 0;var n=0;e.find("img, iframe").each(function(){t(this).one("load",function(){++n==s&&i()}).each(function(){this.complete&&t(this).load()})})},h=function(){if(o.settings.infiniteLoop&&"fade"!=o.settings.mode&&!o.settings.ticker){var e="vertical"==o.settings.mode?o.settings.minSlides:o.settings.maxSlides,i=o.children.slice(0,e).clone().addClass("bx-clone"),s=o.children.slice(-e).clone().addClass("bx-clone");r.append(i).prepend(s)}o.loader.remove(),S(),"vertical"==o.settings.mode&&(o.settings.adaptiveHeight=!0),o.viewport.height(v()),r.redrawSlider(),o.settings.onSliderLoad(o.active.index),o.initialized=!0,o.settings.responsive&&t(window).bind("resize",Z),o.settings.auto&&o.settings.autoStart&&H(),o.settings.ticker&&L(),o.settings.pager&&q(o.settings.startSlide),o.settings.controls&&W(),o.settings.touchEnabled&&!o.settings.ticker&&O()},v=function(){var e=0,s=t();if("vertical"==o.settings.mode||o.settings.adaptiveHeight)if(o.carousel){var n=1==o.settings.moveSlides?o.active.index:o.active.index*m();for(s=o.children.eq(n),i=1;i<=o.settings.maxSlides-1;i++)s=n+i>=o.children.length?s.add(o.children.eq(i-1)):s.add(o.children.eq(n+i))}else s=o.children.eq(o.active.index);else s=o.children;return"vertical"==o.settings.mode?(s.each(function(){e+=t(this).outerHeight()}),o.settings.slideMargin>0&&(e+=o.settings.slideMargin*(o.settings.minSlides-1))):e=Math.max.apply(Math,s.map(function(){return t(this).outerHeight(!1)}).get()),e},p=function(){var t="100%";return o.settings.slideWidth>0&&(t="horizontal"==o.settings.mode?o.settings.maxSlides*o.settings.slideWidth+(o.settings.maxSlides-1)*o.settings.slideMargin:o.settings.slideWidth),t},u=function(){var t=o.settings.slideWidth,e=o.viewport.width();return 0==o.settings.slideWidth||o.settings.slideWidth>e&&!o.carousel||"vertical"==o.settings.mode?t=e:o.settings.maxSlides>1&&"horizontal"==o.settings.mode&&(e>o.maxThreshold||e0)if(o.viewport.width()o.maxThreshold)t=o.settings.maxSlides;else{var e=o.children.first().width();t=Math.floor(o.viewport.width()/e)}else"vertical"==o.settings.mode&&(t=o.settings.minSlides);return t},x=function(){var t=0;if(o.settings.moveSlides>0)if(o.settings.infiniteLoop)t=o.children.length/m();else for(var e=0,i=0;e0&&o.settings.moveSlides<=f()?o.settings.moveSlides:f()},S=function(){if(o.children.length>o.settings.maxSlides&&o.active.last&&!o.settings.infiniteLoop){if("horizontal"==o.settings.mode){var t=o.children.last(),e=t.position();b(-(e.left-(o.viewport.width()-t.width())),"reset",0)}else if("vertical"==o.settings.mode){var i=o.children.length-o.settings.minSlides,e=o.children.eq(i).position();b(-e.top,"reset",0)}}else{var e=o.children.eq(o.active.index*m()).position();o.active.index==x()-1&&(o.active.last=!0),void 0!=e&&("horizontal"==o.settings.mode?b(-e.left,"reset",0):"vertical"==o.settings.mode&&b(-e.top,"reset",0))}},b=function(t,e,i,s){if(o.usingCSS){var n="vertical"==o.settings.mode?"translate3d(0, "+t+"px, 0)":"translate3d("+t+"px, 0, 0)";r.css("-"+o.cssPrefix+"-transition-duration",i/1e3+"s"),"slide"==e?(r.css(o.animProp,n),r.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){r.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),D()})):"reset"==e?r.css(o.animProp,n):"ticker"==e&&(r.css("-"+o.cssPrefix+"-transition-timing-function","linear"),r.css(o.animProp,n),r.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){r.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),b(s.resetValue,"reset",0),N()}))}else{var a={};a[o.animProp]=t,"slide"==e?r.animate(a,i,o.settings.easing,function(){D()}):"reset"==e?r.css(o.animProp,t):"ticker"==e&&r.animate(a,speed,"linear",function(){b(s.resetValue,"reset",0),N()})}},w=function(){for(var e="",i=x(),s=0;i>s;s++){var n="";o.settings.buildPager&&t.isFunction(o.settings.buildPager)?(n=o.settings.buildPager(s),o.pagerEl.addClass("bx-custom-pager")):(n=s+1,o.pagerEl.addClass("bx-default-pager")),e+='"}o.pagerEl.html(e)},T=function(){o.settings.pagerCustom?o.pagerEl=t(o.settings.pagerCustom):(o.pagerEl=t('
'),o.settings.pagerSelector?t(o.settings.pagerSelector).html(o.pagerEl):o.controls.el.addClass("bx-has-pager").append(o.pagerEl),w()),o.pagerEl.on("click","a",I)},C=function(){o.controls.next=t(''+o.settings.nextText+""),o.controls.prev=t(''+o.settings.prevText+""),o.controls.next.bind("click",y),o.controls.prev.bind("click",z),o.settings.nextSelector&&t(o.settings.nextSelector).append(o.controls.next),o.settings.prevSelector&&t(o.settings.prevSelector).append(o.controls.prev),o.settings.nextSelector||o.settings.prevSelector||(o.controls.directionEl=t('
'),o.controls.directionEl.append(o.controls.prev).append(o.controls.next),o.controls.el.addClass("bx-has-controls-direction").append(o.controls.directionEl))},E=function(){o.controls.start=t('"),o.controls.stop=t('"),o.controls.autoEl=t('
'),o.controls.autoEl.on("click",".bx-start",k),o.controls.autoEl.on("click",".bx-stop",M),o.settings.autoControlsCombine?o.controls.autoEl.append(o.controls.start):o.controls.autoEl.append(o.controls.start).append(o.controls.stop),o.settings.autoControlsSelector?t(o.settings.autoControlsSelector).html(o.controls.autoEl):o.controls.el.addClass("bx-has-controls-auto").append(o.controls.autoEl),A(o.settings.autoStart?"stop":"start")},P=function(){o.children.each(function(){var e=t(this).find("img:first").attr("title");void 0!=e&&(""+e).length&&t(this).append('
'+e+"
")})},y=function(t){o.settings.auto&&r.stopAuto(),r.goToNextSlide(),t.preventDefault()},z=function(t){o.settings.auto&&r.stopAuto(),r.goToPrevSlide(),t.preventDefault()},k=function(t){r.startAuto(),t.preventDefault()},M=function(t){r.stopAuto(),t.preventDefault()},I=function(e){o.settings.auto&&r.stopAuto();var i=t(e.currentTarget),s=parseInt(i.attr("data-slide-index"));s!=o.active.index&&r.goToSlide(s),e.preventDefault()},q=function(e){var i=o.children.length;return"short"==o.settings.pagerType?(o.settings.maxSlides>1&&(i=Math.ceil(o.children.length/o.settings.maxSlides)),o.pagerEl.html(e+1+o.settings.pagerShortSeparator+i),void 0):(o.pagerEl.find("a").removeClass("active"),o.pagerEl.each(function(i,s){t(s).find("a").eq(e).addClass("active")}),void 0)},D=function(){if(o.settings.infiniteLoop){var t="";0==o.active.index?t=o.children.eq(0).position():o.active.index==x()-1&&o.carousel?t=o.children.eq((x()-1)*m()).position():o.active.index==o.children.length-1&&(t=o.children.eq(o.children.length-1).position()),t&&("horizontal"==o.settings.mode?b(-t.left,"reset",0):"vertical"==o.settings.mode&&b(-t.top,"reset",0))}o.working=!1,o.settings.onSlideAfter(o.children.eq(o.active.index),o.oldIndex,o.active.index)},A=function(t){o.settings.autoControlsCombine?o.controls.autoEl.html(o.controls[t]):(o.controls.autoEl.find("a").removeClass("active"),o.controls.autoEl.find("a:not(.bx-"+t+")").addClass("active"))},W=function(){1==x()?(o.controls.prev.addClass("disabled"),o.controls.next.addClass("disabled")):!o.settings.infiniteLoop&&o.settings.hideControlOnEnd&&(0==o.active.index?(o.controls.prev.addClass("disabled"),o.controls.next.removeClass("disabled")):o.active.index==x()-1?(o.controls.next.addClass("disabled"),o.controls.prev.removeClass("disabled")):(o.controls.prev.removeClass("disabled"),o.controls.next.removeClass("disabled")))},H=function(){o.settings.autoDelay>0?setTimeout(r.startAuto,o.settings.autoDelay):r.startAuto(),o.settings.autoHover&&r.hover(function(){o.interval&&(r.stopAuto(!0),o.autoPaused=!0)},function(){o.autoPaused&&(r.startAuto(!0),o.autoPaused=null)})},L=function(){var e=0;if("next"==o.settings.autoDirection)r.append(o.children.clone().addClass("bx-clone"));else{r.prepend(o.children.clone().addClass("bx-clone"));var i=o.children.first().position();e="horizontal"==o.settings.mode?-i.left:-i.top}b(e,"reset",0),o.settings.pager=!1,o.settings.controls=!1,o.settings.autoControls=!1,o.settings.tickerHover&&!o.usingCSS&&o.viewport.hover(function(){r.stop()},function(){var e=0;o.children.each(function(){e+="horizontal"==o.settings.mode?t(this).outerWidth(!0):t(this).outerHeight(!0)});var i=o.settings.speed/e,s="horizontal"==o.settings.mode?"left":"top",n=i*(e-Math.abs(parseInt(r.css(s))));N(n)}),N()},N=function(t){speed=t?t:o.settings.speed;var e={left:0,top:0},i={left:0,top:0};"next"==o.settings.autoDirection?e=r.find(".bx-clone").first().position():i=o.children.first().position();var s="horizontal"==o.settings.mode?-e.left:-e.top,n="horizontal"==o.settings.mode?-i.left:-i.top,a={resetValue:n};b(s,"ticker",speed,a)},O=function(){o.touch={start:{x:0,y:0},end:{x:0,y:0}},o.viewport.bind("touchstart",X)},X=function(t){if(o.working)t.preventDefault();else{o.touch.originalPos=r.position();var e=t.originalEvent;o.touch.start.x=e.changedTouches[0].pageX,o.touch.start.y=e.changedTouches[0].pageY,o.viewport.bind("touchmove",Y),o.viewport.bind("touchend",V)}},Y=function(t){var e=t.originalEvent,i=Math.abs(e.changedTouches[0].pageX-o.touch.start.x),s=Math.abs(e.changedTouches[0].pageY-o.touch.start.y);if(3*i>s&&o.settings.preventDefaultSwipeX?t.preventDefault():3*s>i&&o.settings.preventDefaultSwipeY&&t.preventDefault(),"fade"!=o.settings.mode&&o.settings.oneToOneTouch){var n=0;if("horizontal"==o.settings.mode){var r=e.changedTouches[0].pageX-o.touch.start.x;n=o.touch.originalPos.left+r}else{var r=e.changedTouches[0].pageY-o.touch.start.y;n=o.touch.originalPos.top+r}b(n,"reset",0)}},V=function(t){o.viewport.unbind("touchmove",Y);var e=t.originalEvent,i=0;if(o.touch.end.x=e.changedTouches[0].pageX,o.touch.end.y=e.changedTouches[0].pageY,"fade"==o.settings.mode){var s=Math.abs(o.touch.start.x-o.touch.end.x);s>=o.settings.swipeThreshold&&(o.touch.start.x>o.touch.end.x?r.goToNextSlide():r.goToPrevSlide(),r.stopAuto())}else{var s=0;"horizontal"==o.settings.mode?(s=o.touch.end.x-o.touch.start.x,i=o.touch.originalPos.left):(s=o.touch.end.y-o.touch.start.y,i=o.touch.originalPos.top),!o.settings.infiniteLoop&&(0==o.active.index&&s>0||o.active.last&&0>s)?b(i,"reset",200):Math.abs(s)>=o.settings.swipeThreshold?(0>s?r.goToNextSlide():r.goToPrevSlide(),r.stopAuto()):b(i,"reset",200)}o.viewport.unbind("touchend",V)},Z=function(){var e=t(window).width(),i=t(window).height();(a!=e||l!=i)&&(a=e,l=i,r.redrawSlider(),o.settings.onSliderResize.call(r,o.active.index))};return r.goToSlide=function(e,i){if(!o.working&&o.active.index!=e)if(o.working=!0,o.oldIndex=o.active.index,o.active.index=0>e?x()-1:e>=x()?0:e,o.settings.onSlideBefore(o.children.eq(o.active.index),o.oldIndex,o.active.index),"next"==i?o.settings.onSlideNext(o.children.eq(o.active.index),o.oldIndex,o.active.index):"prev"==i&&o.settings.onSlidePrev(o.children.eq(o.active.index),o.oldIndex,o.active.index),o.active.last=o.active.index>=x()-1,o.settings.pager&&q(o.active.index),o.settings.controls&&W(),"fade"==o.settings.mode)o.settings.adaptiveHeight&&o.viewport.height()!=v()&&o.viewport.animate({height:v()},o.settings.adaptiveHeightSpeed),o.children.filter(":visible").fadeOut(o.settings.speed).css({zIndex:0}),o.children.eq(o.active.index).css("zIndex",o.settings.slideZIndex+1).fadeIn(o.settings.speed,function(){t(this).css("zIndex",o.settings.slideZIndex),D()});else{o.settings.adaptiveHeight&&o.viewport.height()!=v()&&o.viewport.animate({height:v()},o.settings.adaptiveHeightSpeed);var s=0,n={left:0,top:0};if(!o.settings.infiniteLoop&&o.carousel&&o.active.last)if("horizontal"==o.settings.mode){var a=o.children.eq(o.children.length-1);n=a.position(),s=o.viewport.width()-a.outerWidth()}else{var l=o.children.length-o.settings.minSlides;n=o.children.eq(l).position()}else if(o.carousel&&o.active.last&&"prev"==i){var d=1==o.settings.moveSlides?o.settings.maxSlides-m():(x()-1)*m()-(o.children.length-o.settings.maxSlides),a=r.children(".bx-clone").eq(d);n=a.position()}else if("next"==i&&0==o.active.index)n=r.find("> .bx-clone").eq(o.settings.maxSlides).position(),o.active.last=!1;else if(e>=0){var c=e*m();n=o.children.eq(c).position()}if("undefined"!=typeof n){var g="horizontal"==o.settings.mode?-(n.left-s):-n.top;b(g,"slide",o.settings.speed)}}},r.goToNextSlide=function(){if(o.settings.infiniteLoop||!o.active.last){var t=parseInt(o.active.index)+1;r.goToSlide(t,"next")}},r.goToPrevSlide=function(){if(o.settings.infiniteLoop||0!=o.active.index){var t=parseInt(o.active.index)-1;r.goToSlide(t,"prev")}},r.startAuto=function(t){o.interval||(o.interval=setInterval(function(){"next"==o.settings.autoDirection?r.goToNextSlide():r.goToPrevSlide()},o.settings.pause),o.settings.autoControls&&1!=t&&A("stop"))},r.stopAuto=function(t){o.interval&&(clearInterval(o.interval),o.interval=null,o.settings.autoControls&&1!=t&&A("start"))},r.getCurrentSlide=function(){return o.active.index},r.getCurrentSlideElement=function(){return o.children.eq(o.active.index)},r.getSlideCount=function(){return o.children.length},r.redrawSlider=function(){o.children.add(r.find(".bx-clone")).outerWidth(u()),o.viewport.css("height",v()),o.settings.ticker||S(),o.active.last&&(o.active.index=x()-1),o.active.index>=x()&&(o.active.last=!0),o.settings.pager&&!o.settings.pagerCustom&&(w(),q(o.active.index))},r.destroySlider=function(){o.initialized&&(o.initialized=!1,t(".bx-clone",this).remove(),o.children.each(function(){void 0!=t(this).data("origStyle")?t(this).attr("style",t(this).data("origStyle")):t(this).removeAttr("style")}),void 0!=t(this).data("origStyle")?this.attr("style",t(this).data("origStyle")):t(this).removeAttr("style"),t(this).unwrap().unwrap(),o.controls.el&&o.controls.el.remove(),o.controls.next&&o.controls.next.remove(),o.controls.prev&&o.controls.prev.remove(),o.pagerEl&&o.settings.controls&&o.pagerEl.remove(),t(".bx-caption",this).remove(),o.controls.autoEl&&o.controls.autoEl.remove(),clearInterval(o.interval),o.settings.responsive&&t(window).unbind("resize",Z))},r.reloadSlider=function(t){void 0!=t&&(n=t),r.destroySlider(),d()},d(),this}}(jQuery); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/charts/chart.min.js b/wp-content/themes/milo/assets/js/charts/chart.min.js new file mode 100644 index 0000000..3a0a2c8 --- /dev/null +++ b/wp-content/themes/milo/assets/js/charts/chart.min.js @@ -0,0 +1,11 @@ +/*! + * Chart.js + * http://chartjs.org/ + * Version: 1.0.2 + * + * Copyright 2015 Nick Downie + * Released under the MIT license + * https://github.com/nnnick/Chart.js/blob/master/LICENSE.md + */ +(function(){"use strict";var t=this,i=t.Chart,e=function(t){this.canvas=t.canvas,this.ctx=t;var i=function(t,i){return t["offset"+i]?t["offset"+i]:document.defaultView.getComputedStyle(t).getPropertyValue(i)},e=this.width=i(t.canvas,"Width"),n=this.height=i(t.canvas,"Height");t.canvas.width=e,t.canvas.height=n;var e=this.width=t.canvas.width,n=this.height=t.canvas.height;return this.aspectRatio=this.width/this.height,s.retinaScale(this),this};e.defaults={global:{animation:!0,animationSteps:60,animationEasing:"easeOutQuart",showScale:!0,scaleOverride:!1,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:!0,scaleLabel:"<%=value%>",scaleIntegersOnly:!0,scaleBeginAtZero:!1,scaleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",responsive:!1,maintainAspectRatio:!0,showTooltips:!0,customTooltips:!1,tooltipEvents:["mousemove","touchstart","touchmove","mouseout"],tooltipFillColor:"rgba(0,0,0,0.8)",tooltipFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipFontSize:14,tooltipFontStyle:"normal",tooltipFontColor:"#fff",tooltipTitleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipTitleFontSize:14,tooltipTitleFontStyle:"bold",tooltipTitleFontColor:"#fff",tooltipYPadding:6,tooltipXPadding:6,tooltipCaretSize:8,tooltipCornerRadius:6,tooltipXOffset:10,tooltipTemplate:"<%if (label){%><%=label%>: <%}%><%= value %>",multiTooltipTemplate:"<%= value %>",multiTooltipKeyBackground:"#fff",onAnimationProgress:function(){},onAnimationComplete:function(){}}},e.types={};var s=e.helpers={},n=s.each=function(t,i,e){var s=Array.prototype.slice.call(arguments,3);if(t)if(t.length===+t.length){var n;for(n=0;n=0;s--){var n=t[s];if(i(n))return n}},s.inherits=function(t){var i=this,e=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return i.apply(this,arguments)},s=function(){this.constructor=e};return s.prototype=i.prototype,e.prototype=new s,e.extend=r,t&&a(e.prototype,t),e.__super__=i.prototype,e}),c=s.noop=function(){},u=s.uid=function(){var t=0;return function(){return"chart-"+t++}}(),d=s.warn=function(t){window.console&&"function"==typeof window.console.warn&&console.warn(t)},p=s.amd="function"==typeof define&&define.amd,f=s.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},g=s.max=function(t){return Math.max.apply(Math,t)},m=s.min=function(t){return Math.min.apply(Math,t)},v=(s.cap=function(t,i,e){if(f(i)){if(t>i)return i}else if(f(e)&&e>t)return e;return t},s.getDecimalPlaces=function(t){return t%1!==0&&f(t)?t.toString().split(".")[1].length:0}),S=s.radians=function(t){return t*(Math.PI/180)},x=(s.getAngleFromPoint=function(t,i){var e=i.x-t.x,s=i.y-t.y,n=Math.sqrt(e*e+s*s),o=2*Math.PI+Math.atan2(s,e);return 0>e&&0>s&&(o+=2*Math.PI),{angle:o,distance:n}},s.aliasPixel=function(t){return t%2===0?0:.5}),y=(s.splineCurve=function(t,i,e,s){var n=Math.sqrt(Math.pow(i.x-t.x,2)+Math.pow(i.y-t.y,2)),o=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2)),a=s*n/(n+o),h=s*o/(n+o);return{inner:{x:i.x-a*(e.x-t.x),y:i.y-a*(e.y-t.y)},outer:{x:i.x+h*(e.x-t.x),y:i.y+h*(e.y-t.y)}}},s.calculateOrderOfMagnitude=function(t){return Math.floor(Math.log(t)/Math.LN10)}),C=(s.calculateScaleRange=function(t,i,e,s,n){var o=2,a=Math.floor(i/(1.5*e)),h=o>=a,l=g(t),r=m(t);l===r&&(l+=.5,r>=.5&&!s?r-=.5:l+=.5);for(var c=Math.abs(l-r),u=y(c),d=Math.ceil(l/(1*Math.pow(10,u)))*Math.pow(10,u),p=s?0:Math.floor(r/(1*Math.pow(10,u)))*Math.pow(10,u),f=d-p,v=Math.pow(10,u),S=Math.round(f/v);(S>a||a>2*S)&&!h;)if(S>a)v*=2,S=Math.round(f/v),S%1!==0&&(h=!0);else if(n&&u>=0){if(v/2%1!==0)break;v/=2,S=Math.round(f/v)}else v/=2,S=Math.round(f/v);return h&&(S=o,v=f/S),{steps:S,stepValue:v,min:p,max:p+S*v}},s.template=function(t,i){function e(t,i){var e=/\W/.test(t)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+t.replace(/[\r\t\n]/g," ").split("<%").join(" ").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split(" ").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):s[t]=s[t];return i?e(i):e}if(t instanceof Function)return t(i);var s={};return e(t,i)}),w=(s.generateLabels=function(t,i,e,s){var o=new Array(i);return labelTemplateString&&n(o,function(i,n){o[n]=C(t,{value:e+s*(n+1)})}),o},s.easingEffects={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-1*t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-0.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return 1*((t=t/1-1)*t*t+1)},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-1*((t=t/1-1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-0.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return 1*(t/=1)*t*t*t*t},easeOutQuint:function(t){return 1*((t=t/1-1)*t*t*t*t+1)},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return-1*Math.cos(t/1*(Math.PI/2))+1},easeOutSine:function(t){return 1*Math.sin(t/1*(Math.PI/2))},easeInOutSine:function(t){return-0.5*(Math.cos(Math.PI*t/1)-1)},easeInExpo:function(t){return 0===t?1:1*Math.pow(2,10*(t/1-1))},easeOutExpo:function(t){return 1===t?1:1*(-Math.pow(2,-10*t/1)+1)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(-Math.pow(2,-10*--t)+2)},easeInCirc:function(t){return t>=1?t:-1*(Math.sqrt(1-(t/=1)*t)-1)},easeOutCirc:function(t){return 1*Math.sqrt(1-(t=t/1-1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-0.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var i=1.70158,e=0,s=1;return 0===t?0:1==(t/=1)?1:(e||(e=.3),st?-.5*s*Math.pow(2,10*(t-=1))*Math.sin(2*(1*t-i)*Math.PI/e):s*Math.pow(2,-10*(t-=1))*Math.sin(2*(1*t-i)*Math.PI/e)*.5+1)},easeInBack:function(t){var i=1.70158;return 1*(t/=1)*t*((i+1)*t-i)},easeOutBack:function(t){var i=1.70158;return 1*((t=t/1-1)*t*((i+1)*t+i)+1)},easeInOutBack:function(t){var i=1.70158;return(t/=.5)<1?.5*t*t*(((i*=1.525)+1)*t-i):.5*((t-=2)*t*(((i*=1.525)+1)*t+i)+2)},easeInBounce:function(t){return 1-w.easeOutBounce(1-t)},easeOutBounce:function(t){return(t/=1)<1/2.75?7.5625*t*t:2/2.75>t?1*(7.5625*(t-=1.5/2.75)*t+.75):2.5/2.75>t?1*(7.5625*(t-=2.25/2.75)*t+.9375):1*(7.5625*(t-=2.625/2.75)*t+.984375)},easeInOutBounce:function(t){return.5>t?.5*w.easeInBounce(2*t):.5*w.easeOutBounce(2*t-1)+.5}}),b=s.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)}}(),P=s.cancelAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(t){return window.clearTimeout(t,1e3/60)}}(),L=(s.animationLoop=function(t,i,e,s,n,o){var a=0,h=w[e]||w.linear,l=function(){a++;var e=a/i,r=h(e);t.call(o,r,e,a),s.call(o,r,e),i>a?o.animationFrame=b(l):n.apply(o)};b(l)},s.getRelativePosition=function(t){var i,e,s=t.originalEvent||t,n=t.currentTarget||t.srcElement,o=n.getBoundingClientRect();return s.touches?(i=s.touches[0].clientX-o.left,e=s.touches[0].clientY-o.top):(i=s.clientX-o.left,e=s.clientY-o.top),{x:i,y:e}},s.addEvent=function(t,i,e){t.addEventListener?t.addEventListener(i,e):t.attachEvent?t.attachEvent("on"+i,e):t["on"+i]=e}),k=s.removeEvent=function(t,i,e){t.removeEventListener?t.removeEventListener(i,e,!1):t.detachEvent?t.detachEvent("on"+i,e):t["on"+i]=c},F=(s.bindEvents=function(t,i,e){t.events||(t.events={}),n(i,function(i){t.events[i]=function(){e.apply(t,arguments)},L(t.chart.canvas,i,t.events[i])})},s.unbindEvents=function(t,i){n(i,function(i,e){k(t.chart.canvas,e,i)})}),R=s.getMaximumWidth=function(t){var i=t.parentNode;return i.clientWidth},T=s.getMaximumHeight=function(t){var i=t.parentNode;return i.clientHeight},A=(s.getMaximumSize=s.getMaximumWidth,s.retinaScale=function(t){var i=t.ctx,e=t.canvas.width,s=t.canvas.height;window.devicePixelRatio&&(i.canvas.style.width=e+"px",i.canvas.style.height=s+"px",i.canvas.height=s*window.devicePixelRatio,i.canvas.width=e*window.devicePixelRatio,i.scale(window.devicePixelRatio,window.devicePixelRatio))}),M=s.clear=function(t){t.ctx.clearRect(0,0,t.width,t.height)},W=s.fontString=function(t,i,e){return i+" "+t+"px "+e},z=s.longestText=function(t,i,e){t.font=i;var s=0;return n(e,function(i){var e=t.measureText(i).width;s=e>s?e:s}),s},B=s.drawRoundedRectangle=function(t,i,e,s,n,o){t.beginPath(),t.moveTo(i+o,e),t.lineTo(i+s-o,e),t.quadraticCurveTo(i+s,e,i+s,e+o),t.lineTo(i+s,e+n-o),t.quadraticCurveTo(i+s,e+n,i+s-o,e+n),t.lineTo(i+o,e+n),t.quadraticCurveTo(i,e+n,i,e+n-o),t.lineTo(i,e+o),t.quadraticCurveTo(i,e,i+o,e),t.closePath()};e.instances={},e.Type=function(t,i,s){this.options=i,this.chart=s,this.id=u(),e.instances[this.id]=this,i.responsive&&this.resize(),this.initialize.call(this,t)},a(e.Type.prototype,{initialize:function(){return this},clear:function(){return M(this.chart),this},stop:function(){return P(this.animationFrame),this},resize:function(t){this.stop();var i=this.chart.canvas,e=R(this.chart.canvas),s=this.options.maintainAspectRatio?e/this.chart.aspectRatio:T(this.chart.canvas);return i.width=this.chart.width=e,i.height=this.chart.height=s,A(this.chart),"function"==typeof t&&t.apply(this,Array.prototype.slice.call(arguments,1)),this},reflow:c,render:function(t){return t&&this.reflow(),this.options.animation&&!t?s.animationLoop(this.draw,this.options.animationSteps,this.options.animationEasing,this.options.onAnimationProgress,this.options.onAnimationComplete,this):(this.draw(),this.options.onAnimationComplete.call(this)),this},generateLegend:function(){return C(this.options.legendTemplate,this)},destroy:function(){this.clear(),F(this,this.events);var t=this.chart.canvas;t.width=this.chart.width,t.height=this.chart.height,t.style.removeProperty?(t.style.removeProperty("width"),t.style.removeProperty("height")):(t.style.removeAttribute("width"),t.style.removeAttribute("height")),delete e.instances[this.id]},showTooltip:function(t,i){"undefined"==typeof this.activeElements&&(this.activeElements=[]);var o=function(t){var i=!1;return t.length!==this.activeElements.length?i=!0:(n(t,function(t,e){t!==this.activeElements[e]&&(i=!0)},this),i)}.call(this,t);if(o||i){if(this.activeElements=t,this.draw(),this.options.customTooltips&&this.options.customTooltips(!1),t.length>0)if(this.datasets&&this.datasets.length>1){for(var a,h,r=this.datasets.length-1;r>=0&&(a=this.datasets[r].points||this.datasets[r].bars||this.datasets[r].segments,h=l(a,t[0]),-1===h);r--);var c=[],u=[],d=function(){var t,i,e,n,o,a=[],l=[],r=[];return s.each(this.datasets,function(i){t=i.points||i.bars||i.segments,t[h]&&t[h].hasValue()&&a.push(t[h])}),s.each(a,function(t){l.push(t.x),r.push(t.y),c.push(s.template(this.options.multiTooltipTemplate,t)),u.push({fill:t._saved.fillColor||t.fillColor,stroke:t._saved.strokeColor||t.strokeColor})},this),o=m(r),e=g(r),n=m(l),i=g(l),{x:n>this.chart.width/2?n:i,y:(o+e)/2}}.call(this,h);new e.MultiTooltip({x:d.x,y:d.y,xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,xOffset:this.options.tooltipXOffset,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,titleTextColor:this.options.tooltipTitleFontColor,titleFontFamily:this.options.tooltipTitleFontFamily,titleFontStyle:this.options.tooltipTitleFontStyle,titleFontSize:this.options.tooltipTitleFontSize,cornerRadius:this.options.tooltipCornerRadius,labels:c,legendColors:u,legendColorBackground:this.options.multiTooltipKeyBackground,title:t[0].label,chart:this.chart,ctx:this.chart.ctx,custom:this.options.customTooltips}).draw()}else n(t,function(t){var i=t.tooltipPosition();new e.Tooltip({x:Math.round(i.x),y:Math.round(i.y),xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,caretHeight:this.options.tooltipCaretSize,cornerRadius:this.options.tooltipCornerRadius,text:C(this.options.tooltipTemplate,t),chart:this.chart,custom:this.options.customTooltips}).draw()},this);return this}},toBase64Image:function(){return this.chart.canvas.toDataURL.apply(this.chart.canvas,arguments)}}),e.Type.extend=function(t){var i=this,s=function(){return i.apply(this,arguments)};if(s.prototype=o(i.prototype),a(s.prototype,t),s.extend=e.Type.extend,t.name||i.prototype.name){var n=t.name||i.prototype.name,l=e.defaults[i.prototype.name]?o(e.defaults[i.prototype.name]):{};e.defaults[n]=a(l,t.defaults),e.types[n]=s,e.prototype[n]=function(t,i){var o=h(e.defaults.global,e.defaults[n],i||{});return new s(t,o,this)}}else d("Name not provided for this chart, so it hasn't been registered");return i},e.Element=function(t){a(this,t),this.initialize.apply(this,arguments),this.save()},a(e.Element.prototype,{initialize:function(){},restore:function(t){return t?n(t,function(t){this[t]=this._saved[t]},this):a(this,this._saved),this},save:function(){return this._saved=o(this),delete this._saved._saved,this},update:function(t){return n(t,function(t,i){this._saved[i]=this[i],this[i]=t},this),this},transition:function(t,i){return n(t,function(t,e){this[e]=(t-this._saved[e])*i+this._saved[e]},this),this},tooltipPosition:function(){return{x:this.x,y:this.y}},hasValue:function(){return f(this.value)}}),e.Element.extend=r,e.Point=e.Element.extend({display:!0,inRange:function(t,i){var e=this.hitDetectionRadius+this.radius;return Math.pow(t-this.x,2)+Math.pow(i-this.y,2)=this.startAngle&&e.angle<=this.endAngle,o=e.distance>=this.innerRadius&&e.distance<=this.outerRadius;return n&&o},tooltipPosition:function(){var t=this.startAngle+(this.endAngle-this.startAngle)/2,i=(this.outerRadius-this.innerRadius)/2+this.innerRadius;return{x:this.x+Math.cos(t)*i,y:this.y+Math.sin(t)*i}},draw:function(t){var i=this.ctx;i.beginPath(),i.arc(this.x,this.y,this.outerRadius,this.startAngle,this.endAngle),i.arc(this.x,this.y,this.innerRadius,this.endAngle,this.startAngle,!0),i.closePath(),i.strokeStyle=this.strokeColor,i.lineWidth=this.strokeWidth,i.fillStyle=this.fillColor,i.fill(),i.lineJoin="bevel",this.showStroke&&i.stroke()}}),e.Rectangle=e.Element.extend({draw:function(){var t=this.ctx,i=this.width/2,e=this.x-i,s=this.x+i,n=this.base-(this.base-this.y),o=this.strokeWidth/2;this.showStroke&&(e+=o,s-=o,n+=o),t.beginPath(),t.fillStyle=this.fillColor,t.strokeStyle=this.strokeColor,t.lineWidth=this.strokeWidth,t.moveTo(e,this.base),t.lineTo(e,n),t.lineTo(s,n),t.lineTo(s,this.base),t.fill(),this.showStroke&&t.stroke()},height:function(){return this.base-this.y},inRange:function(t,i){return t>=this.x-this.width/2&&t<=this.x+this.width/2&&i>=this.y&&i<=this.base}}),e.Tooltip=e.Element.extend({draw:function(){var t=this.chart.ctx;t.font=W(this.fontSize,this.fontStyle,this.fontFamily),this.xAlign="center",this.yAlign="above";var i=this.caretPadding=2,e=t.measureText(this.text).width+2*this.xPadding,s=this.fontSize+2*this.yPadding,n=s+this.caretHeight+i;this.x+e/2>this.chart.width?this.xAlign="left":this.x-e/2<0&&(this.xAlign="right"),this.y-n<0&&(this.yAlign="below");var o=this.x-e/2,a=this.y-n;if(t.fillStyle=this.fillColor,this.custom)this.custom(this);else{switch(this.yAlign){case"above":t.beginPath(),t.moveTo(this.x,this.y-i),t.lineTo(this.x+this.caretHeight,this.y-(i+this.caretHeight)),t.lineTo(this.x-this.caretHeight,this.y-(i+this.caretHeight)),t.closePath(),t.fill();break;case"below":a=this.y+i+this.caretHeight,t.beginPath(),t.moveTo(this.x,this.y+i),t.lineTo(this.x+this.caretHeight,this.y+i+this.caretHeight),t.lineTo(this.x-this.caretHeight,this.y+i+this.caretHeight),t.closePath(),t.fill()}switch(this.xAlign){case"left":o=this.x-e+(this.cornerRadius+this.caretHeight);break;case"right":o=this.x-(this.cornerRadius+this.caretHeight)}B(t,o,a,e,s,this.cornerRadius),t.fill(),t.fillStyle=this.textColor,t.textAlign="center",t.textBaseline="middle",t.fillText(this.text,o+e/2,a+s/2)}}}),e.MultiTooltip=e.Element.extend({initialize:function(){this.font=W(this.fontSize,this.fontStyle,this.fontFamily),this.titleFont=W(this.titleFontSize,this.titleFontStyle,this.titleFontFamily),this.height=this.labels.length*this.fontSize+(this.labels.length-1)*(this.fontSize/2)+2*this.yPadding+1.5*this.titleFontSize,this.ctx.font=this.titleFont;var t=this.ctx.measureText(this.title).width,i=z(this.ctx,this.font,this.labels)+this.fontSize+3,e=g([i,t]);this.width=e+2*this.xPadding;var s=this.height/2;this.y-s<0?this.y=s:this.y+s>this.chart.height&&(this.y=this.chart.height-s),this.x>this.chart.width/2?this.x-=this.xOffset+this.width:this.x+=this.xOffset},getLineHeight:function(t){var i=this.y-this.height/2+this.yPadding,e=t-1;return 0===t?i+this.titleFontSize/2:i+(1.5*this.fontSize*e+this.fontSize/2)+1.5*this.titleFontSize},draw:function(){if(this.custom)this.custom(this);else{B(this.ctx,this.x,this.y-this.height/2,this.width,this.height,this.cornerRadius);var t=this.ctx;t.fillStyle=this.fillColor,t.fill(),t.closePath(),t.textAlign="left",t.textBaseline="middle",t.fillStyle=this.titleTextColor,t.font=this.titleFont,t.fillText(this.title,this.x+this.xPadding,this.getLineHeight(0)),t.font=this.font,s.each(this.labels,function(i,e){t.fillStyle=this.textColor,t.fillText(i,this.x+this.xPadding+this.fontSize+3,this.getLineHeight(e+1)),t.fillStyle=this.legendColorBackground,t.fillRect(this.x+this.xPadding,this.getLineHeight(e+1)-this.fontSize/2,this.fontSize,this.fontSize),t.fillStyle=this.legendColors[e].fill,t.fillRect(this.x+this.xPadding,this.getLineHeight(e+1)-this.fontSize/2,this.fontSize,this.fontSize)},this)}}}),e.Scale=e.Element.extend({initialize:function(){this.fit()},buildYLabels:function(){this.yLabels=[];for(var t=v(this.stepValue),i=0;i<=this.steps;i++)this.yLabels.push(C(this.templateString,{value:(this.min+i*this.stepValue).toFixed(t)}));this.yLabelWidth=this.display&&this.showLabels?z(this.ctx,this.font,this.yLabels):0},addXLabel:function(t){this.xLabels.push(t),this.valuesCount++,this.fit()},removeXLabel:function(){this.xLabels.shift(),this.valuesCount--,this.fit()},fit:function(){this.startPoint=this.display?this.fontSize:0,this.endPoint=this.display?this.height-1.5*this.fontSize-5:this.height,this.startPoint+=this.padding,this.endPoint-=this.padding;var t,i=this.endPoint-this.startPoint;for(this.calculateYRange(i),this.buildYLabels(),this.calculateXLabelRotation();i>this.endPoint-this.startPoint;)i=this.endPoint-this.startPoint,t=this.yLabelWidth,this.calculateYRange(i),this.buildYLabels(),tthis.yLabelWidth+10?e/2:this.yLabelWidth+10,this.xLabelRotation=0,this.display){var n,o=z(this.ctx,this.font,this.xLabels);this.xLabelWidth=o;for(var a=Math.floor(this.calculateX(1)-this.calculateX(0))-6;this.xLabelWidth>a&&0===this.xLabelRotation||this.xLabelWidth>a&&this.xLabelRotation<=90&&this.xLabelRotation>0;)n=Math.cos(S(this.xLabelRotation)),t=n*e,i=n*s,t+this.fontSize/2>this.yLabelWidth+8&&(this.xScalePaddingLeft=t+this.fontSize/2),this.xScalePaddingRight=this.fontSize/2,this.xLabelRotation++,this.xLabelWidth=n*o;this.xLabelRotation>0&&(this.endPoint-=Math.sin(S(this.xLabelRotation))*o+3)}else this.xLabelWidth=0,this.xScalePaddingRight=this.padding,this.xScalePaddingLeft=this.padding},calculateYRange:c,drawingArea:function(){return this.startPoint-this.endPoint},calculateY:function(t){var i=this.drawingArea()/(this.min-this.max);return this.endPoint-i*(t-this.min)},calculateX:function(t){var i=(this.xLabelRotation>0,this.width-(this.xScalePaddingLeft+this.xScalePaddingRight)),e=i/Math.max(this.valuesCount-(this.offsetGridLines?0:1),1),s=e*t+this.xScalePaddingLeft;return this.offsetGridLines&&(s+=e/2),Math.round(s)},update:function(t){s.extend(this,t),this.fit()},draw:function(){var t=this.ctx,i=(this.endPoint-this.startPoint)/this.steps,e=Math.round(this.xScalePaddingLeft);this.display&&(t.fillStyle=this.textColor,t.font=this.font,n(this.yLabels,function(n,o){var a=this.endPoint-i*o,h=Math.round(a),l=this.showHorizontalLines;t.textAlign="right",t.textBaseline="middle",this.showLabels&&t.fillText(n,e-10,a),0!==o||l||(l=!0),l&&t.beginPath(),o>0?(t.lineWidth=this.gridLineWidth,t.strokeStyle=this.gridLineColor):(t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor),h+=s.aliasPixel(t.lineWidth),l&&(t.moveTo(e,h),t.lineTo(this.width,h),t.stroke(),t.closePath()),t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor,t.beginPath(),t.moveTo(e-5,h),t.lineTo(e,h),t.stroke(),t.closePath()},this),n(this.xLabels,function(i,e){var s=this.calculateX(e)+x(this.lineWidth),n=this.calculateX(e-(this.offsetGridLines?.5:0))+x(this.lineWidth),o=this.xLabelRotation>0,a=this.showVerticalLines;0!==e||a||(a=!0),a&&t.beginPath(),e>0?(t.lineWidth=this.gridLineWidth,t.strokeStyle=this.gridLineColor):(t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor),a&&(t.moveTo(n,this.endPoint),t.lineTo(n,this.startPoint-3),t.stroke(),t.closePath()),t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor,t.beginPath(),t.moveTo(n,this.endPoint),t.lineTo(n,this.endPoint+5),t.stroke(),t.closePath(),t.save(),t.translate(s,o?this.endPoint+12:this.endPoint+8),t.rotate(-1*S(this.xLabelRotation)),t.font=this.font,t.textAlign=o?"right":"center",t.textBaseline=o?"middle":"top",t.fillText(i,0,0),t.restore()},this))}}),e.RadialScale=e.Element.extend({initialize:function(){this.size=m([this.height,this.width]),this.drawingArea=this.display?this.size/2-(this.fontSize/2+this.backdropPaddingY):this.size/2},calculateCenterOffset:function(t){var i=this.drawingArea/(this.max-this.min);return(t-this.min)*i},update:function(){this.lineArc?this.drawingArea=this.display?this.size/2-(this.fontSize/2+this.backdropPaddingY):this.size/2:this.setScaleSize(),this.buildYLabels()},buildYLabels:function(){this.yLabels=[];for(var t=v(this.stepValue),i=0;i<=this.steps;i++)this.yLabels.push(C(this.templateString,{value:(this.min+i*this.stepValue).toFixed(t)}))},getCircumference:function(){return 2*Math.PI/this.valuesCount},setScaleSize:function(){var t,i,e,s,n,o,a,h,l,r,c,u,d=m([this.height/2-this.pointLabelFontSize-5,this.width/2]),p=this.width,g=0;for(this.ctx.font=W(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily),i=0;ip&&(p=t.x+s,n=i),t.x-sp&&(p=t.x+e,n=i):i>this.valuesCount/2&&t.x-e0){var s,n=e*(this.drawingArea/this.steps),o=this.yCenter-n;if(this.lineWidth>0)if(t.strokeStyle=this.lineColor,t.lineWidth=this.lineWidth,this.lineArc)t.beginPath(),t.arc(this.xCenter,this.yCenter,n,0,2*Math.PI),t.closePath(),t.stroke();else{t.beginPath();for(var a=0;a=0;i--){if(this.angleLineWidth>0){var e=this.getPointPosition(i,this.calculateCenterOffset(this.max));t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(e.x,e.y),t.stroke(),t.closePath()}var s=this.getPointPosition(i,this.calculateCenterOffset(this.max)+5);t.font=W(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily),t.fillStyle=this.pointLabelFontColor;var o=this.labels.length,a=this.labels.length/2,h=a/2,l=h>i||i>o-h,r=i===h||i===o-h;t.textAlign=0===i?"center":i===a?"center":a>i?"left":"right",t.textBaseline=r?"middle":l?"bottom":"top",t.fillText(this.labels[i],s.x,s.y)}}}}}),s.addEvent(window,"resize",function(){var t;return function(){clearTimeout(t),t=setTimeout(function(){n(e.instances,function(t){t.options.responsive&&t.resize(t.render,!0)})},50)}}()),p?define(function(){return e}):"object"==typeof module&&module.exports&&(module.exports=e),t.Chart=e,e.noConflict=function(){return t.Chart=i,e}}).call(this),function(){"use strict";var t=this,i=t.Chart,e=i.helpers,s={scaleBeginAtZero:!0,scaleShowGridLines:!0,scaleGridLineColor:"rgba(0,0,0,.05)",scaleGridLineWidth:1,scaleShowHorizontalLines:!0,scaleShowVerticalLines:!0,barShowStroke:!0,barStrokeWidth:2,barValueSpacing:5,barDatasetSpacing:1,legendTemplate:'
    <% for (var i=0; i
  • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>
'};i.Type.extend({name:"Bar",defaults:s,initialize:function(t){var s=this.options;this.ScaleClass=i.Scale.extend({offsetGridLines:!0,calculateBarX:function(t,i,e){var n=this.calculateBaseWidth(),o=this.calculateX(e)-n/2,a=this.calculateBarWidth(t);return o+a*i+i*s.barDatasetSpacing+a/2},calculateBaseWidth:function(){return this.calculateX(1)-this.calculateX(0)-2*s.barValueSpacing},calculateBarWidth:function(t){var i=this.calculateBaseWidth()-(t-1)*s.barDatasetSpacing;return i/t}}),this.datasets=[],this.options.showTooltips&&e.bindEvents(this,this.options.tooltipEvents,function(t){var i="mouseout"!==t.type?this.getBarsAtEvent(t):[];this.eachBars(function(t){t.restore(["fillColor","strokeColor"])}),e.each(i,function(t){t.fillColor=t.highlightFill,t.strokeColor=t.highlightStroke}),this.showTooltip(i)}),this.BarClass=i.Rectangle.extend({strokeWidth:this.options.barStrokeWidth,showStroke:this.options.barShowStroke,ctx:this.chart.ctx}),e.each(t.datasets,function(i){var s={label:i.label||null,fillColor:i.fillColor,strokeColor:i.strokeColor,bars:[]};this.datasets.push(s),e.each(i.data,function(e,n){s.bars.push(new this.BarClass({value:e,label:t.labels[n],datasetLabel:i.label,strokeColor:i.strokeColor,fillColor:i.fillColor,highlightFill:i.highlightFill||i.fillColor,highlightStroke:i.highlightStroke||i.strokeColor}))},this)},this),this.buildScale(t.labels),this.BarClass.prototype.base=this.scale.endPoint,this.eachBars(function(t,i,s){e.extend(t,{width:this.scale.calculateBarWidth(this.datasets.length),x:this.scale.calculateBarX(this.datasets.length,s,i),y:this.scale.endPoint}),t.save()},this),this.render()},update:function(){this.scale.update(),e.each(this.activeElements,function(t){t.restore(["fillColor","strokeColor"])}),this.eachBars(function(t){t.save()}),this.render()},eachBars:function(t){e.each(this.datasets,function(i,s){e.each(i.bars,t,this,s)},this)},getBarsAtEvent:function(t){for(var i,s=[],n=e.getRelativePosition(t),o=function(t){s.push(t.bars[i])},a=0;a<% for (var i=0; i
  • <%if(segments[i].label){%><%=segments[i].label%><%}%>
  • <%}%>'};i.Type.extend({name:"Doughnut",defaults:s,initialize:function(t){this.segments=[],this.outerRadius=(e.min([this.chart.width,this.chart.height])-this.options.segmentStrokeWidth/2)/2,this.SegmentArc=i.Arc.extend({ctx:this.chart.ctx,x:this.chart.width/2,y:this.chart.height/2}),this.options.showTooltips&&e.bindEvents(this,this.options.tooltipEvents,function(t){var i="mouseout"!==t.type?this.getSegmentsAtEvent(t):[];e.each(this.segments,function(t){t.restore(["fillColor"])}),e.each(i,function(t){t.fillColor=t.highlightColor}),this.showTooltip(i)}),this.calculateTotal(t),e.each(t,function(t,i){this.addData(t,i,!0)},this),this.render()},getSegmentsAtEvent:function(t){var i=[],s=e.getRelativePosition(t);return e.each(this.segments,function(t){t.inRange(s.x,s.y)&&i.push(t)},this),i},addData:function(t,i,e){var s=i||this.segments.length;this.segments.splice(s,0,new this.SegmentArc({value:t.value,outerRadius:this.options.animateScale?0:this.outerRadius,innerRadius:this.options.animateScale?0:this.outerRadius/100*this.options.percentageInnerCutout,fillColor:t.color,highlightColor:t.highlight||t.color,showStroke:this.options.segmentShowStroke,strokeWidth:this.options.segmentStrokeWidth,strokeColor:this.options.segmentStrokeColor,startAngle:1.5*Math.PI,circumference:this.options.animateRotate?0:this.calculateCircumference(t.value),label:t.label})),e||(this.reflow(),this.update())},calculateCircumference:function(t){return 2*Math.PI*(Math.abs(t)/this.total)},calculateTotal:function(t){this.total=0,e.each(t,function(t){this.total+=Math.abs(t.value)},this)},update:function(){this.calculateTotal(this.segments),e.each(this.activeElements,function(t){t.restore(["fillColor"])}),e.each(this.segments,function(t){t.save()}),this.render()},removeData:function(t){var i=e.isNumber(t)?t:this.segments.length-1;this.segments.splice(i,1),this.reflow(),this.update()},reflow:function(){e.extend(this.SegmentArc.prototype,{x:this.chart.width/2,y:this.chart.height/2}),this.outerRadius=(e.min([this.chart.width,this.chart.height])-this.options.segmentStrokeWidth/2)/2,e.each(this.segments,function(t){t.update({outerRadius:this.outerRadius,innerRadius:this.outerRadius/100*this.options.percentageInnerCutout})},this)},draw:function(t){var i=t?t:1;this.clear(),e.each(this.segments,function(t,e){t.transition({circumference:this.calculateCircumference(t.value),outerRadius:this.outerRadius,innerRadius:this.outerRadius/100*this.options.percentageInnerCutout},i),t.endAngle=t.startAngle+t.circumference,t.draw(),0===e&&(t.startAngle=1.5*Math.PI),e<% for (var i=0; i
  • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>'};i.Type.extend({name:"Line",defaults:s,initialize:function(t){this.PointClass=i.Point.extend({strokeWidth:this.options.pointDotStrokeWidth,radius:this.options.pointDotRadius,display:this.options.pointDot,hitDetectionRadius:this.options.pointHitDetectionRadius,ctx:this.chart.ctx,inRange:function(t){return Math.pow(t-this.x,2)0&&ithis.scale.endPoint?t.controlPoints.outer.y=this.scale.endPoint:t.controlPoints.outer.ythis.scale.endPoint?t.controlPoints.inner.y=this.scale.endPoint:t.controlPoints.inner.y0&&(s.lineTo(h[h.length-1].x,this.scale.endPoint),s.lineTo(h[0].x,this.scale.endPoint),s.fillStyle=t.fillColor,s.closePath(),s.fill()),e.each(h,function(t){t.draw()})},this)}})}.call(this),function(){"use strict";var t=this,i=t.Chart,e=i.helpers,s={scaleShowLabelBackdrop:!0,scaleBackdropColor:"rgba(255,255,255,0.75)",scaleBeginAtZero:!0,scaleBackdropPaddingY:2,scaleBackdropPaddingX:2,scaleShowLine:!0,segmentShowStroke:!0,segmentStrokeColor:"#fff",segmentStrokeWidth:2,animationSteps:100,animationEasing:"easeOutBounce",animateRotate:!0,animateScale:!1,legendTemplate:'
      <% for (var i=0; i
    • <%if(segments[i].label){%><%=segments[i].label%><%}%>
    • <%}%>
    '};i.Type.extend({name:"PolarArea",defaults:s,initialize:function(t){this.segments=[],this.SegmentArc=i.Arc.extend({showStroke:this.options.segmentShowStroke,strokeWidth:this.options.segmentStrokeWidth,strokeColor:this.options.segmentStrokeColor,ctx:this.chart.ctx,innerRadius:0,x:this.chart.width/2,y:this.chart.height/2}),this.scale=new i.RadialScale({display:this.options.showScale,fontStyle:this.options.scaleFontStyle,fontSize:this.options.scaleFontSize,fontFamily:this.options.scaleFontFamily,fontColor:this.options.scaleFontColor,showLabels:this.options.scaleShowLabels,showLabelBackdrop:this.options.scaleShowLabelBackdrop,backdropColor:this.options.scaleBackdropColor,backdropPaddingY:this.options.scaleBackdropPaddingY,backdropPaddingX:this.options.scaleBackdropPaddingX,lineWidth:this.options.scaleShowLine?this.options.scaleLineWidth:0,lineColor:this.options.scaleLineColor,lineArc:!0,width:this.chart.width,height:this.chart.height,xCenter:this.chart.width/2,yCenter:this.chart.height/2,ctx:this.chart.ctx,templateString:this.options.scaleLabel,valuesCount:t.length}),this.updateScaleRange(t),this.scale.update(),e.each(t,function(t,i){this.addData(t,i,!0)},this),this.options.showTooltips&&e.bindEvents(this,this.options.tooltipEvents,function(t){var i="mouseout"!==t.type?this.getSegmentsAtEvent(t):[];e.each(this.segments,function(t){t.restore(["fillColor"])}),e.each(i,function(t){t.fillColor=t.highlightColor}),this.showTooltip(i)}),this.render()},getSegmentsAtEvent:function(t){var i=[],s=e.getRelativePosition(t);return e.each(this.segments,function(t){t.inRange(s.x,s.y)&&i.push(t)},this),i},addData:function(t,i,e){var s=i||this.segments.length;this.segments.splice(s,0,new this.SegmentArc({fillColor:t.color,highlightColor:t.highlight||t.color,label:t.label,value:t.value,outerRadius:this.options.animateScale?0:this.scale.calculateCenterOffset(t.value),circumference:this.options.animateRotate?0:this.scale.getCircumference(),startAngle:1.5*Math.PI})),e||(this.reflow(),this.update())},removeData:function(t){var i=e.isNumber(t)?t:this.segments.length-1;this.segments.splice(i,1),this.reflow(),this.update()},calculateTotal:function(t){this.total=0,e.each(t,function(t){this.total+=t.value},this),this.scale.valuesCount=this.segments.length},updateScaleRange:function(t){var i=[];e.each(t,function(t){i.push(t.value)});var s=this.options.scaleOverride?{steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}:e.calculateScaleRange(i,e.min([this.chart.width,this.chart.height])/2,this.options.scaleFontSize,this.options.scaleBeginAtZero,this.options.scaleIntegersOnly);e.extend(this.scale,s,{size:e.min([this.chart.width,this.chart.height]),xCenter:this.chart.width/2,yCenter:this.chart.height/2})},update:function(){this.calculateTotal(this.segments),e.each(this.segments,function(t){t.save()}),this.reflow(),this.render()},reflow:function(){e.extend(this.SegmentArc.prototype,{x:this.chart.width/2,y:this.chart.height/2}),this.updateScaleRange(this.segments),this.scale.update(),e.extend(this.scale,{xCenter:this.chart.width/2,yCenter:this.chart.height/2}),e.each(this.segments,function(t){t.update({outerRadius:this.scale.calculateCenterOffset(t.value)})},this)},draw:function(t){var i=t||1;this.clear(),e.each(this.segments,function(t,e){t.transition({circumference:this.scale.getCircumference(),outerRadius:this.scale.calculateCenterOffset(t.value)},i),t.endAngle=t.startAngle+t.circumference,0===e&&(t.startAngle=1.5*Math.PI),e<% for (var i=0; i
  • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>'},initialize:function(t){this.PointClass=i.Point.extend({strokeWidth:this.options.pointDotStrokeWidth,radius:this.options.pointDotRadius,display:this.options.pointDot,hitDetectionRadius:this.options.pointHitDetectionRadius,ctx:this.chart.ctx}),this.datasets=[],this.buildScale(t),this.options.showTooltips&&e.bindEvents(this,this.options.tooltipEvents,function(t){var i="mouseout"!==t.type?this.getPointsAtEvent(t):[];this.eachPoints(function(t){t.restore(["fillColor","strokeColor"])}),e.each(i,function(t){t.fillColor=t.highlightFill,t.strokeColor=t.highlightStroke}),this.showTooltip(i)}),e.each(t.datasets,function(i){var s={label:i.label||null,fillColor:i.fillColor,strokeColor:i.strokeColor,pointColor:i.pointColor,pointStrokeColor:i.pointStrokeColor,points:[]};this.datasets.push(s),e.each(i.data,function(e,n){var o;this.scale.animation||(o=this.scale.getPointPosition(n,this.scale.calculateCenterOffset(e))),s.points.push(new this.PointClass({value:e,label:t.labels[n],datasetLabel:i.label,x:this.options.animation?this.scale.xCenter:o.x,y:this.options.animation?this.scale.yCenter:o.y,strokeColor:i.pointStrokeColor,fillColor:i.pointColor,highlightFill:i.pointHighlightFill||i.pointColor,highlightStroke:i.pointHighlightStroke||i.pointStrokeColor}))},this)},this),this.render()},eachPoints:function(t){e.each(this.datasets,function(i){e.each(i.points,t,this)},this)},getPointsAtEvent:function(t){var i=e.getRelativePosition(t),s=e.getAngleFromPoint({x:this.scale.xCenter,y:this.scale.yCenter},i),n=2*Math.PI/this.scale.valuesCount,o=Math.round((s.angle-1.5*Math.PI)/n),a=[];return(o>=this.scale.valuesCount||0>o)&&(o=0),s.distance<=this.scale.drawingArea&&e.each(this.datasets,function(t){a.push(t.points[o])}),a},buildScale:function(t){this.scale=new i.RadialScale({display:this.options.showScale,fontStyle:this.options.scaleFontStyle,fontSize:this.options.scaleFontSize,fontFamily:this.options.scaleFontFamily,fontColor:this.options.scaleFontColor,showLabels:this.options.scaleShowLabels,showLabelBackdrop:this.options.scaleShowLabelBackdrop,backdropColor:this.options.scaleBackdropColor,backdropPaddingY:this.options.scaleBackdropPaddingY,backdropPaddingX:this.options.scaleBackdropPaddingX,lineWidth:this.options.scaleShowLine?this.options.scaleLineWidth:0,lineColor:this.options.scaleLineColor,angleLineColor:this.options.angleLineColor,angleLineWidth:this.options.angleShowLineOut?this.options.angleLineWidth:0,pointLabelFontColor:this.options.pointLabelFontColor,pointLabelFontSize:this.options.pointLabelFontSize,pointLabelFontFamily:this.options.pointLabelFontFamily,pointLabelFontStyle:this.options.pointLabelFontStyle,height:this.chart.height,width:this.chart.width,xCenter:this.chart.width/2,yCenter:this.chart.height/2,ctx:this.chart.ctx,templateString:this.options.scaleLabel,labels:t.labels,valuesCount:t.datasets[0].data.length}),this.scale.setScaleSize(),this.updateScaleRange(t.datasets),this.scale.buildYLabels()},updateScaleRange:function(t){var i=function(){var i=[];return e.each(t,function(t){t.data?i=i.concat(t.data):e.each(t.points,function(t){i.push(t.value)})}),i}(),s=this.options.scaleOverride?{steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}:e.calculateScaleRange(i,e.min([this.chart.width,this.chart.height])/2,this.options.scaleFontSize,this.options.scaleBeginAtZero,this.options.scaleIntegersOnly);e.extend(this.scale,s)},addData:function(t,i){this.scale.valuesCount++,e.each(t,function(t,e){var s=this.scale.getPointPosition(this.scale.valuesCount,this.scale.calculateCenterOffset(t));this.datasets[e].points.push(new this.PointClass({value:t,label:i,x:s.x,y:s.y,strokeColor:this.datasets[e].pointStrokeColor,fillColor:this.datasets[e].pointColor}))},this),this.scale.labels.push(i),this.reflow(),this.update()},removeData:function(){this.scale.valuesCount--,this.scale.labels.shift(),e.each(this.datasets,function(t){t.points.shift()},this),this.reflow(),this.update()},update:function(){this.eachPoints(function(t){t.save()}),this.reflow(),this.render()},reflow:function(){e.extend(this.scale,{width:this.chart.width,height:this.chart.height,size:e.min([this.chart.width,this.chart.height]),xCenter:this.chart.width/2,yCenter:this.chart.height/2}),this.updateScaleRange(this.datasets),this.scale.setScaleSize(),this.scale.buildYLabels()},draw:function(t){var i=t||1,s=this.chart.ctx;this.clear(),this.scale.draw(),e.each(this.datasets,function(t){e.each(t.points,function(t,e){t.hasValue()&&t.transition(this.scale.getPointPosition(e,this.scale.calculateCenterOffset(t.value)),i)},this),s.lineWidth=this.options.datasetStrokeWidth,s.strokeStyle=t.strokeColor,s.beginPath(),e.each(t.points,function(t,i){0===i?s.moveTo(t.x,t.y):s.lineTo(t.x,t.y)},this),s.closePath(),s.stroke(),s.fillStyle=t.fillColor,s.fill(),e.each(t.points,function(t){t.hasValue()&&t.draw()})},this)}})}.call(this); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/charts/jquery.easypiechart.min.js b/wp-content/themes/milo/assets/js/charts/jquery.easypiechart.min.js new file mode 100644 index 0000000..9cdf986 --- /dev/null +++ b/wp-content/themes/milo/assets/js/charts/jquery.easypiechart.min.js @@ -0,0 +1,9 @@ +/**! + * easyPieChart + * Lightweight plugin to render simple, animated and retina optimized pie charts + * + * @license + * @author Robert Fleischmann (http://robert-fleischmann.de) + * @version 2.1.6 + **/ +!function(a,b){"object"==typeof exports?module.exports=b(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],b):b(a.jQuery)}(this,function(a){var b=function(a,b){var c,d=document.createElement("canvas");a.appendChild(d),"undefined"!=typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(d);var e=d.getContext("2d");d.width=d.height=b.size;var f=1;window.devicePixelRatio>1&&(f=window.devicePixelRatio,d.style.width=d.style.height=[b.size,"px"].join(""),d.width=d.height=b.size*f,e.scale(f,f)),e.translate(b.size/2,b.size/2),e.rotate((-0.5+b.rotate/180)*Math.PI);var g=(b.size-b.lineWidth)/2;b.scaleColor&&b.scaleLength&&(g-=b.scaleLength+2),Date.now=Date.now||function(){return+new Date};var h=function(a,b,c){c=Math.min(Math.max(-1,c||0),1);var d=0>=c?!0:!1;e.beginPath(),e.arc(0,0,g,0,2*Math.PI*c,d),e.strokeStyle=a,e.lineWidth=b,e.stroke()},i=function(){var a,c;e.lineWidth=1,e.fillStyle=b.scaleColor,e.save();for(var d=24;d>0;--d)d%6===0?(c=b.scaleLength,a=0):(c=.6*b.scaleLength,a=b.scaleLength-c),e.fillRect(-b.size/2+a,0,c,1),e.rotate(Math.PI/12);e.restore()},j=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(a){window.setTimeout(a,1e3/60)}}(),k=function(){b.scaleColor&&i(),b.trackColor&&h(b.trackColor,b.trackWidth||b.lineWidth,1)};this.getCanvas=function(){return d},this.getCtx=function(){return e},this.clear=function(){e.clearRect(b.size/-2,b.size/-2,b.size,b.size)},this.draw=function(a){b.scaleColor||b.trackColor?e.getImageData&&e.putImageData?c?e.putImageData(c,0,0):(k(),c=e.getImageData(0,0,b.size*f,b.size*f)):(this.clear(),k()):this.clear(),e.lineCap=b.lineCap;var d;d="function"==typeof b.barColor?b.barColor(a):b.barColor,h(d,b.lineWidth,a/100)}.bind(this),this.animate=function(a,c){var d=Date.now();b.onStart(a,c);var e=function(){var f=Math.min(Date.now()-d,b.animate.duration),g=b.easing(this,f,a,c-a,b.animate.duration);this.draw(g),b.onStep(a,c,g),f>=b.animate.duration?b.onStop(a,c):j(e)}.bind(this);j(e)}.bind(this)},c=function(a,c){var d={barColor:"#ef1e25",trackColor:"#f9f9f9",scaleColor:"#dfe0e0",scaleLength:5,lineCap:"round",lineWidth:3,trackWidth:void 0,size:110,rotate:0,animate:{duration:1e3,enabled:!0},easing:function(a,b,c,d,e){return b/=e/2,1>b?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},onStart:function(){},onStep:function(){},onStop:function(){}};if("undefined"!=typeof b)d.renderer=b;else{if("undefined"==typeof SVGRenderer)throw new Error("Please load either the SVG- or the CanvasRenderer");d.renderer=SVGRenderer}var e={},f=0,g=function(){this.el=a,this.options=e;for(var b in d)d.hasOwnProperty(b)&&(e[b]=c&&"undefined"!=typeof c[b]?c[b]:d[b],"function"==typeof e[b]&&(e[b]=e[b].bind(this)));e.easing="string"==typeof e.easing&&"undefined"!=typeof jQuery&&jQuery.isFunction(jQuery.easing[e.easing])?jQuery.easing[e.easing]:d.easing,"number"==typeof e.animate&&(e.animate={duration:e.animate,enabled:!0}),"boolean"!=typeof e.animate||e.animate||(e.animate={duration:1e3,enabled:e.animate}),this.renderer=new e.renderer(a,e),this.renderer.draw(f),a.dataset&&a.dataset.percent?this.update(parseFloat(a.dataset.percent)):a.getAttribute&&a.getAttribute("data-percent")&&this.update(parseFloat(a.getAttribute("data-percent")))}.bind(this);this.update=function(a){return a=parseFloat(a),e.animate.enabled?this.renderer.animate(f,a):this.renderer.draw(a),f=a,this}.bind(this),this.disableAnimation=function(){return e.animate.enabled=!1,this},this.enableAnimation=function(){return e.animate.enabled=!0,this},g()};a.fn.easyPieChart=function(b){return this.each(function(){var d;a.data(this,"easyPieChart")||(d=a.extend({},b,a(this).data()),a.data(this,"easyPieChart",new c(this,d)))})}}); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/counter/jQuerySimpleCounter.js b/wp-content/themes/milo/assets/js/counter/jQuerySimpleCounter.js new file mode 100644 index 0000000..15a0829 --- /dev/null +++ b/wp-content/themes/milo/assets/js/counter/jQuerySimpleCounter.js @@ -0,0 +1,5 @@ +/* + * SimpleCounter + * http://www.jqueryscript.net/time-clock/Lightweight-jQuery-Animated-Counter-Plugin.html + */ +!function(t){t.fn.jQuerySimpleCounter=function(n){var e=t.extend({start:0,end:100,easing:"swing",duration:400,complete:""},n),i=t(this);t({count:e.start}).animate({count:e.end},{duration:e.duration,easing:e.easing,step:function(){var t=Math.ceil(this.count);i.text(t)},complete:e.complete})}}(jQuery); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/custom.js b/wp-content/themes/milo/assets/js/custom.js new file mode 100644 index 0000000..ddb4f2d --- /dev/null +++ b/wp-content/themes/milo/assets/js/custom.js @@ -0,0 +1,928 @@ +/* + * + * CUSTOM.JS + * + */ + +(function($){ + + "use strict"; + + // DETECT TOUCH DEVICE // + function is_touch_device() { + return !!('ontouchstart' in window) || ( !! ('onmsgesturechange' in window) && !! window.navigator.maxTouchPoints); + } + + + // SHOW/HIDE MOBILE MENU // + function show_hide_mobile_menu() { + + $("#mobile-menu-button").on("click", function(e) { + + e.preventDefault(); + + $("#mobile-menu").slideToggle(300); + + }); + + } + + + // MOBILE MENU // + function mobile_menu() { + + if ($(window).width() < 992) { + + if ($("#page-wrapper > header .menu").length > 0) { + + if ($("#mobile-menu").length < 1) { + + $("#page-wrapper > header .menu").clone().attr({ + id: "mobile-menu", + class: "" + }).insertAfter("header"); + + $("#mobile-menu .megamenu > a").on("click", function(e) { + + + + if( !$(this).hasClass('open') ) { + e.preventDefault(); + $(this).toggleClass("open").next("div").slideToggle(300); + } + + + + + + }); + + $("#mobile-menu .dropdown > a").on("click", function(e) { + if( !$(this).hasClass('open') ) { + e.preventDefault(); + + $(this).toggleClass("open").next("ul").slideToggle(300); + } + + }); + + } + + } + + } else { + + $("#mobile-menu").hide(); + + } + + } + + // EQUALIZE HEADER ELEMENTS HEIGHT // + + function max2(a, b){ + if ( undefined === a ){ a = 0; } + if ( undefined === b ){ b = 0; } + if ( a > b ){ + return a; + } else { + return b; + } + } + + function equalize_header() { + + var $logoHolder = $('header .logo-holder'); + var $navHolder = $('header .nav-holder'); + var $searchButtonHolder = $('header .search-button-holder'); + var $mobileMenuButtonHolder = $('header .mobile-menu-button-holder'); + + var $logo = $('header .logo-holder .logo-wrapper'); + var $nav = $('header .nav-holder nav'); + var $searchButton = $('header .search-button-holder .search-button'); + var $mobileMenuButton = $('header .mobile-menu-button-holder .mobile-menu-button'); + + var logoHeight = $logo.outerHeight(true); + var navHeight = $nav.outerHeight(true); + var searchButtonHeight = $searchButton.outerHeight(true); + var mobileMenuButtonHeight = $mobileMenuButton.outerHeight(true); + + $logoHolder.css('height', ''); + $navHolder.css('height', ''); + $searchButtonHolder.css('height', ''); + $mobileMenuButtonHolder.css('height', ''); + + // console.log(logoHeight); + // console.log(navHeight); + // console.log(searchButtonHeight); + // console.log(mobileMenuButtonHeight); + + var equalizedHeight = max2( max2( max2( logoHeight,navHeight ), searchButtonHeight ), mobileMenuButtonHeight); + + $logoHolder.css('height', equalizedHeight); + $navHolder.css('height', equalizedHeight); + $searchButtonHolder.css('height', equalizedHeight); + $mobileMenuButtonHolder.css('height', equalizedHeight); + + } + + + // SEARCH // + function search_form() { + + $(".search-button").on("click", function(e) { + + e.preventDefault(); + $("#search-container").insertBefore("header"); + + if(!$(".search-button").hasClass("open")) { + + $("#search-container").slideDown(200).addClass("open"); + $(this).addClass("open"); + + } else { + + $("#search-container").slideUp(200).removeClass("open"); + $(this).removeClass("open"); + + } + + }); + + } + + + // STICKY // + function sticky_header() { + + if ($(window).width() > 991) { + + var $logoHolder = $('header .logo-holder'); + var $navHolder = $('header .nav-holder'); + var $searchButtonHolder = $('header .search-button-holder'); + + $('header').on('fixed.shira.scrollfix unfixed.shira.scrollfix', function (e) { + + equalize_header() + + $logoHolder.css('-webkit-transition', 'all 0.3s').css('transition', 'all 0.3s'); + $navHolder.css('-webkit-transition', 'all 0.3s').css('transition', 'all 0.3s'); + $searchButtonHolder.css('-webkit-transition', 'all 0.3s').css('transition', 'all 0.3s'); + + }) + + $('header').on('unfixed.shira.scrollfix', function (e) { + + $logoHolder.css('-webkit-transition', '').css('transition', ''); + $navHolder.css('-webkit-transition', '').css('transition', ''); + $searchButtonHolder.css('-webkit-transition', '').css('transition', ''); + + }) + + // apply scrollfix + + var headerHeight = $('#page-wrapper > header').outerHeight(); + + $("header").scrollFix({ + fixClass: "header-sticky", + fixTop: 0, + fixOffset: headerHeight, + unfixOffset: headerHeight + }); + + } + + } + + + + + // PROGRESS BARS // + function progress_bars() { + + $(".progress .progress-bar:in-viewport").each(function() { + + if (!$(this).hasClass("animated")) { + $(this).addClass("animated"); + $(this).animate({ + width: $(this).attr("data-width") + "%" + }, 2000); + } + + }); + + } + + + // CHARTS // + function pie_chart() { + + $(".pie-chart:in-viewport").each(function() { + + $(this).easyPieChart({ + animate: 1500, + lineCap: "square", + lineWidth: $(this).attr("data-line-width"), + size: $(this).attr("data-size"), + barColor: $(this).attr("data-bar-color"), + trackColor: $(this).attr("data-track-color"), + scaleColor: "transparent", + onStep: function(from, to, percent) { + $(this.el).find('.pie-chart-details .value').text(Math.round(percent)); + } + }); + + }); + + } + + + // COUNTER // + function counter() { + + $(".counter .counter-value:in-viewport").each(function() { + + if (!$(this).hasClass("animated")) { + $(this).addClass("animated"); + $(this).jQuerySimpleCounter({ + start: 0, + end: $(this).attr("data-value"), + duration: 2000 + }); + } + + }); + + } + + + + + // LOAD MORE PROJECTS // + function load_more_projects() { + + var number_clicks = 0; + + $(".load-more").on("click", function(e) { + + e.preventDefault(); + + if (number_clicks == 0) { + $.ajax({ + type: "POST", + url: $(".load-more").attr("href"), + dataType: "html", + cache: false, + msg : '', + success: function(msg) { + $(".isotope").append(msg); + $(".isotope").imagesLoaded(function() { + $(".isotope").isotope("reloadItems").isotope(); + $(".fancybox-portfolio-gallery").attr("rel","group").fancybox({ + prevEffect: 'none', + nextEffect: 'none' + }); + + $(".fancybox-blog-gallery").attr("rel","group").fancybox({ + prevEffect: 'none', + nextEffect: 'none' + }); + }); + number_clicks++; + $(".load-more").html("No more project"); + } + }); + } + + }); + + } + + + // SHOW/HIDE GO TOP // + function show_hide_go_top() { + + if ($(window).scrollTop() > $(window).height()/2) { + $("#go-top").fadeIn(300); + } else { + $("#go-top").fadeOut(300); + } + + } + + + // GO TOP // + function go_top() { + + $("#go-top").on("click", function () { + $("html, body").animate({ + scrollTop: 0 + }, 800); + return false; + }); + + } + + // FULL SCREEN // + function full_screen() { + + var $next_section_after_header; + + if( 0 == $(".full-screen, .bannercontainer > .rev_slider_wrapper.fullscreen-container").size() ){ + return; + } + + $(".full-screen").css("height", $(window).height() + "px"); + + $next_section_after_header = $('#page-wrapper > header').next(); + + if( 0 == $next_section_after_header ){ + return; + } + + if( $next_section_after_header.hasClass('full-screen') ){ + $('body').addClass('fullscreen-body'); + } + + if( $next_section_after_header.hasClass('bannercontainer') ){ + if( $next_section_after_header.find('.rev_slider_wrapper.fullscreen-container') ){ + $('body').addClass('fullscreen-body'); + } + } + } + + + // ANIMATIONS // + function animations() { + + animations = new WOW({ + boxClass: 'wow', + animateClass: 'animated', + offset: 100, + mobile: false, + live: true + }) + + animations.init(); + + } + + + // SMOOTH SCROLLING // + function get_menu_height(){ + var menu_height = 0; + if( 1 == $('#page-wrapper header:first-child').size() ){ + menu_height += $('#page-wrapper header:first-child').height(); + } + if( 1 == $('#wpadminbar').size() ){ + menu_height += $('#wpadminbar').height(); + } + return menu_height; + } + + function smooth_scrolling() { + + $(".scrollspy-menu a").on("click", function (e) { + var target = this.hash; + var $target = $(target); + + if( 0 == $target.size() ){ + return; + } + + $target.attr( 'id', '' ); + window.location.hash = target; + $target.attr( 'id', target.substring(1) ); + + $("html, body").stop().animate( { + 'scrollTop': $target.offset().top - get_menu_height() + }, 900, 'swing', function () { + $("html, body").stop().animate( { + 'scrollTop': $target.offset().top - get_menu_height() + }, 200, 'swing'); + }); + + e.preventDefault(); + return false; + }); + + } + + function smooth_scrolling_onload(){ + + window.setTimeout(function(){ + var _id = ''; + if( -1 < window.location.href.indexOf("#") ) { + _id = '#' + window.location.href.split( '#' )[1]; + + $("html, body").stop().animate( { + 'scrollTop': $(_id).offset().top - get_menu_height() + }, 200, 'swing', function () { + }); + } + },100); + + } + + function twitter_widget() { + /* Twitter Slider */ + + $('#tweet ul').bxSlider({ + mode: 'vertical', + speed: 500, + infiniteLoop: true, + hideControlOnEnd: false, + pager: false, + pagerType: 'full', + controls: true, + auto: true, + pause: 4000, + autoHover: true, + useCSS: false, + nextSelector: '#twitter-slider-next', + prevSelector: '#twitter-slider-prev', + nextText: '', + prevText: '' + }); + } + + + // DOCUMENT READY // + $(document).ready(function(){ + + $('.tab-content .tab-pane').first().addClass('active in'); + + // MENU // + $("#page-wrapper > header .menu").superfish({ + delay: 500, + animation: { + opacity: 'show', + height: 'show' + }, + speed: 'normal', + cssArrows: false + }); + + + //SHOW/HIDE MOBILE MENU // + show_hide_mobile_menu(); + + + // MOBILE MENU // + mobile_menu(); + + + // SEARCH // + search_form(); + + // TWITTER + twitter_widget(); + + + // STICKY // + sticky_header(); + + $(".elements-menu").scrollFix({ + fixClass: "elements-menu-sticky", + fixTop: 0, + fixOffset: 0 + }); + + equalize_header() + + // TABLE BOOTSTRAP // + + $('.page-content table, .post-content table').addClass('table'); + + + // FANCYBOX // + $(".fancybox").fancybox({}); + + $(".fancybox-portfolio-gallery").attr("rel","group").fancybox({ + prevEffect: 'none', + nextEffect: 'none' + }); + + $(".fancybox-blog-gallery").attr("rel","group").fancybox({ + prevEffect: 'none', + nextEffect: 'none' + }); + + // BxSLIDER // + $(".info-slider ul").bxSlider({ + mode: 'fade', + speed: 800, + infiniteLoop: true, + minSlides:3, + hideControlOnEnd: false, + pager: true, + autoHidePager: true, + hidePagerOnSinglePage: true, + pagerType: 'full', + controls: false, + auto: true, + pause: 4000, + autoHover: true, + useCSS: false + }); + + $('.testimonial-slider').each(function(){ + var $ul = $(this).find('ul'); + var $pager = $(this).find('.thumb-pager'); + + $ul.bxSlider({ + mode: 'fade', + speed: 800, + infiniteLoop: true, + hideControlOnEnd: false, + pager: true, + pagerType: 'full', + controls: false, + auto: false, + pause: 4000, + autoHover: true, + useCSS: false, + pagerCustom: $pager + }); + + + }); + //$(".testimonial-slider ul") + + $(".testimonial-slider-2 ul").bxSlider({ + mode: 'fade', + speed: 800, + infiniteLoop: true, + hideControlOnEnd: false, + pager: true, + pagerType: 'full', + controls: false, + auto: false, + pause: 4000, + autoHover: true, + useCSS: false + }); + + $(".project-slider ul").bxSlider({ + mode: 'fade', + speed: 800, + infiniteLoop: true, + hideControlOnEnd: false, + pager: true, + pagerType: 'full', + controls: false, + auto: false, + pause: 4000, + autoHover: true, + useCSS: false, + pagerCustom: '#project-slider-control' + }); + + $(".images-slider ul").bxSlider({ + mode: 'horizontal', + speed: 800, + infiniteLoop: true, + hideControlOnEnd: false, + pager: true, + pagerType: 'full', + controls: false, + auto: true, + pause: 4000, + autoHover: true, + useCSS: false + }); + + $(".images-slider-2 ul").bxSlider({ + mode: 'horizontal', + speed: 800, + infiniteLoop: true, + hideControlOnEnd: false, + pager: false, + pagerType: 'full', + controls: true, + auto: true, + pause: 4000, + autoHover: true, + useCSS: false + }); + +/**********************************************************************************************************************/ +/* FRESHFACE EDIT START - MAP +/**********************************************************************************************************************/ + // ORIGINAL CODE + // GOOGLE MAPS // + //$(".map").gMap({ + // maptype: 'ROADMAP', + // scrollwheel: false, + // zoom: 11, + // markers: [{ + // address: 'San Jose, California, USA', + // html: 'MILO Office' + // }], + // controls: { + // panControl: true, + // zoomControl: true, + // mapTypeControl: true, + // scaleControl: false, + // streetViewControl: false, + // overviewMapControl: false + // } + //}); + + $('.map').each(function(){ + var address = $(this).attr('data-address'); + var description = $(this).attr('data-description'); + var zoom = parseInt($(this).attr('data-zoom')); + + $(this).gMap({ + maptype: 'ROADMAP', + scrollwheel: false, + zoom: zoom, + markers: [{ + address: address, + html: description + }], + controls: { + panControl: true, + zoomControl: true, + mapTypeControl: true, + scaleControl: false, + streetViewControl: false, + overviewMapControl: false + } + }); + }); +/**********************************************************************************************************************/ +/* FRESHFACE EDIT END - MAP +/**********************************************************************************************************************/ + + // ISOTOPE // + $(".isotope").imagesLoaded( function() { + + var container = $(".isotope"); + + container.isotope({ + itemSelector: '.isotope-item', + layoutMode: 'masonry', + transitionDuration: '0.8s' + }); + + $(".filter li a").on("click", function () { + $(".filter li a").removeClass("active"); + $(this).addClass("active"); + + var selector = $(this).attr("data-filter"); + container.isotope({ + filter: selector + }); + + return false; + }); + + $("body").resize(function () { + container.isotope(); + }); + + }); + + + // LOAD MORE PORTFOLIO ITEMS // + load_more_projects(); + + + // PLACEHOLDER // + $("input, textarea").placeholder(); + +/**********************************************************************************************************************/ +/* FRESHFACE EDIT CONTACT FORM START +/**********************************************************************************************************************/ + // CONTACT FORM VALIDATE & SUBMIT // + // VALIDATE // + + $('.ff-cform').each(function(){ + + var $messages = $(this).find('.ff-contact-messages'); + var $contactForm = $(this); + $(this).validate({ + rules: { + name: { + required: true + }, + email: { + required: true, + email: true + }, + subject: { + required: true + }, + message: { + required: true, + minlength: 10 + } + }, + + messages: { + name: { + required: $messages.find('.ff-validation-name').html() + }, + email: { + required: $messages.find('.ff-validation-email').html(), + email: $messages.find('.ff-validation-email-format').html() + }, + subject: { + required: $messages.find('.ff-validation-subject').html() + }, + message: { + required: $messages.find('.ff-validation-message').html(), + minlength: jQuery.validator.format( $messages.find('.ff-validation-message-minlength').html() ) + } + }, + + submitHandler: function( form ) { + + var serializedContent = $contactForm.serialize(); + + + var data = {}; + data.formInput = serializedContent; + data.contactInfo = $contactForm.find('.ff-contact-info').html(); + + frslib.ajax.frameworkRequest('contactform-send-ajax', null, data, function( response ) { + var result = ''; + if( response == 'true' ) { + result = $messages.find('.ff-message-send-ok').html(); + $contactForm.clearForm(); + } else { + result = $messages.find('.ff-message-send-wrong').html(); + } + + $contactForm.find("#alert-area").html(result); + + }); + } + }); + + }); + + //$("#contact-form").validate({ + // rules: { + // name: { + // required: true + // }, + // email: { + // required: true, + // email: true + // }, + // subject: { + // required: true + // }, + // message: { + // required: true, + // minlength: 10 + // } + // }, + // messages: { + // name: { + // required: "Please enter your name!" + // }, + // email: { + // required: "Please enter your email!", + // email: "Please enter a valid email address" + // }, + // subject: { + // required: "Please enter the subject!" + // }, + // message: { + // required: "Please enter your message!", + // minlength: jQuery.validator.format("At least {0} characters required") + // } + // }, + // + // // SUBMIT // + // submitHandler: function(form) { + // var result; + // $(form).ajaxSubmit({ + // type: "POST", + // data: $(form).serialize(), + // url: "assets/php/send.php", + // success: function(msg) { + // + // if (msg == 'OK') { + // result = '
    Your message was successfully sent!
    '; + // $("#contact-form").clearForm(); + // } else { + // result = msg; + // } + // + // $("#alert-area").html(result); + // + // }, + // error: function() { + // + // result = '
    There was an error sending the message!
    '; + // $("#alert-area").html(result); + // + // } + // }); + // } + //}); +/**********************************************************************************************************************/ +/* FRESHFACE EDIT CONTACT FORM END +/**********************************************************************************************************************/ + + + // TO LONG SUBMENU FIX // + + $("#page-wrapper > header ul.menu ul li").hover(function(){ + var body_width = $('body').width(); + var $m = $(this); + var lft = $(this).offset().left; + var wdt = $(this).width(); + if( lft + 2 * wdt + 100 > body_width ){ + $(this).children('ul').addClass('open-on-left'); + }else{ + $(this).children('ul').removeClass('open-on-left'); + } + }); + + + /**********************************************************************************************************************/ + /* FRESHFACE EDIT TOO LONG MENU + /**********************************************************************************************************************/ + + // PARALLX // + if (!is_touch_device()) { + $('.parallax').parallaxScroll({ + friction: 0 + }); + } + + + // SHOW/HIDE GO TOP + show_hide_go_top(); + + + // GO TOP // + go_top(); + + + // YOUTUBE PLAYER // + $(".background-youtube-video .player").each(function(){ + $(this).YTPlayer(); + }) + + + // ANIMATIONS // + animations(); + + + // FULL SCREEN // + full_screen(); + + + // SMOOTH SCROLLING + smooth_scrolling(); + + + // SCROLLSPY // + $("body").scrollspy({ + target: '.scrollspy-menu' + }); + + }); + + $(window).load(function(){ + + smooth_scrolling_onload(); + equalize_header(); + progress_bars(); + pie_chart(); + counter(); + //animate_charts(); + show_hide_go_top(); + + }); + + + // WINDOW SCROLL // + $(window).scroll(function(){ + + progress_bars(); + pie_chart(); + counter(); + //animate_charts(); + show_hide_go_top(); + + }); + + + // WINDOW RESIZE // + $(window).resize(function(e) { + + mobile_menu(); + full_screen(); + equalize_header() + + }); + +})(window.jQuery); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/fancybox/blank.gif b/wp-content/themes/milo/assets/js/fancybox/blank.gif new file mode 100644 index 0000000..35d42e8 Binary files /dev/null and b/wp-content/themes/milo/assets/js/fancybox/blank.gif differ diff --git a/wp-content/themes/milo/assets/js/fancybox/fancybox_loading-2x.gif b/wp-content/themes/milo/assets/js/fancybox/fancybox_loading-2x.gif new file mode 100644 index 0000000..9205aeb Binary files /dev/null and b/wp-content/themes/milo/assets/js/fancybox/fancybox_loading-2x.gif differ diff --git a/wp-content/themes/milo/assets/js/fancybox/fancybox_loading.gif b/wp-content/themes/milo/assets/js/fancybox/fancybox_loading.gif new file mode 100644 index 0000000..a03a40c Binary files /dev/null and b/wp-content/themes/milo/assets/js/fancybox/fancybox_loading.gif differ diff --git a/wp-content/themes/milo/assets/js/fancybox/fancybox_overlay.png b/wp-content/themes/milo/assets/js/fancybox/fancybox_overlay.png new file mode 100644 index 0000000..a439139 Binary files /dev/null and b/wp-content/themes/milo/assets/js/fancybox/fancybox_overlay.png differ diff --git a/wp-content/themes/milo/assets/js/fancybox/fancybox_sprite-2x.png b/wp-content/themes/milo/assets/js/fancybox/fancybox_sprite-2x.png new file mode 100644 index 0000000..d0e4779 Binary files /dev/null and b/wp-content/themes/milo/assets/js/fancybox/fancybox_sprite-2x.png differ diff --git a/wp-content/themes/milo/assets/js/fancybox/fancybox_sprite.png b/wp-content/themes/milo/assets/js/fancybox/fancybox_sprite.png new file mode 100644 index 0000000..fd8d5ca Binary files /dev/null and b/wp-content/themes/milo/assets/js/fancybox/fancybox_sprite.png differ diff --git a/wp-content/themes/milo/assets/js/fancybox/jquery.fancybox.css b/wp-content/themes/milo/assets/js/fancybox/jquery.fancybox.css new file mode 100644 index 0000000..5e7ba03 --- /dev/null +++ b/wp-content/themes/milo/assets/js/fancybox/jquery.fancybox.css @@ -0,0 +1 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */.fancybox-image,.fancybox-inner,.fancybox-nav,.fancybox-nav span,.fancybox-outer,.fancybox-skin,.fancybox-tmp,.fancybox-wrap,.fancybox-wrap iframe,.fancybox-wrap object{padding:0;margin:0;border:0;outline:0;vertical-align:top}.fancybox-wrap{position:absolute;top:0;left:0;z-index:8020}.fancybox-skin{position:relative;background:#f9f9f9;color:#444;text-shadow:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.fancybox-opened{z-index:8030}.fancybox-opened .fancybox-skin{-webkit-box-shadow:0 10px 25px rgba(0,0,0,.5);-moz-box-shadow:0 10px 25px rgba(0,0,0,.5);box-shadow:0 10px 25px rgba(0,0,0,.5)}.fancybox-inner,.fancybox-outer{position:relative}.fancybox-inner{overflow:hidden}.fancybox-type-iframe .fancybox-inner{-webkit-overflow-scrolling:touch}.fancybox-error{color:#444;font:14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;margin:0;padding:15px;white-space:nowrap}.fancybox-iframe,.fancybox-image{display:block;width:100%;height:100%}.fancybox-image{max-width:100%;max-height:100%}#fancybox-loading,.fancybox-close,.fancybox-next span,.fancybox-prev span{background-image:url(fancybox_sprite.png)}#fancybox-loading{position:fixed;top:50%;left:50%;margin-top:-22px;margin-left:-22px;background-position:0 -108px;opacity:.8;cursor:pointer;z-index:8060}#fancybox-loading div{width:44px;height:44px;background:url(fancybox_loading.gif) center center no-repeat}.fancybox-close{position:absolute;top:-18px;right:-18px;width:36px;height:36px;cursor:pointer;z-index:8040}.fancybox-nav{position:absolute;top:0;width:40%;height:100%;cursor:pointer;text-decoration:none;background:url(blank.gif);-webkit-tap-highlight-color:transparent;z-index:8040}.fancybox-prev{left:0}.fancybox-next{right:0}.fancybox-nav span{position:absolute;top:50%;width:36px;height:34px;margin-top:-18px;cursor:pointer;z-index:8040;visibility:hidden}.fancybox-prev span{left:10px;background-position:0 -36px}.fancybox-next span{right:10px;background-position:0 -72px}.fancybox-nav:hover span{visibility:visible}.fancybox-tmp{position:absolute;top:-99999px;left:-99999px;visibility:hidden;max-width:99999px;max-height:99999px;overflow:visible!important}.fancybox-lock{overflow:hidden!important;width:auto}.fancybox-lock body{overflow:hidden!important}.fancybox-lock-test{overflow-y:hidden!important}.fancybox-overlay{position:absolute;top:0;left:0;overflow:hidden;display:none;z-index:8010;background:url(fancybox_overlay.png)}.fancybox-overlay-fixed{position:fixed;bottom:0;right:0}.fancybox-lock .fancybox-overlay{overflow:auto;overflow-y:scroll}.fancybox-title{visibility:hidden;font:400 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;position:relative;text-shadow:none;z-index:8050}.fancybox-opened .fancybox-title{visibility:visible}.fancybox-title-float-wrap{position:absolute;bottom:0;right:50%;margin-bottom:-35px;z-index:8050;text-align:center}.fancybox-title-float-wrap .child{display:inline-block;margin-right:-100%;padding:2px 20px;background:0 0;background:rgba(0,0,0,.8);-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;text-shadow:0 1px 2px #222;color:#FFF;font-weight:700;line-height:24px;white-space:nowrap}.fancybox-title-outside-wrap{position:relative;margin-top:10px;color:#fff}.fancybox-title-inside-wrap{padding-top:10px}.fancybox-title-over-wrap{position:absolute;bottom:0;left:0;color:#fff;padding:10px;background:#000;background:rgba(0,0,0,.8)}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){#fancybox-loading,.fancybox-close,.fancybox-next span,.fancybox-prev span{background-image:url(fancybox_sprite-2x.png);background-size:44px 152px}#fancybox-loading div{background-image:url(fancybox_loading-2x.gif);background-size:24px 24px}} \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/fancybox/jquery.fancybox.pack.js b/wp-content/themes/milo/assets/js/fancybox/jquery.fancybox.pack.js new file mode 100644 index 0000000..73f7578 --- /dev/null +++ b/wp-content/themes/milo/assets/js/fancybox/jquery.fancybox.pack.js @@ -0,0 +1,46 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ +(function(r,G,f,v){var J=f("html"),n=f(r),p=f(G),b=f.fancybox=function(){b.open.apply(this,arguments)},I=navigator.userAgent.match(/msie/i),B=null,s=G.createTouch!==v,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},q=function(a){return a&&"string"===f.type(a)},E=function(a){return q(a)&&0
    ',image:'',iframe:'",error:'

    The requested content cannot be loaded.
    Please try again later.

    ',closeBtn:'',next:'',prev:''},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0, +openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1, +isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k, +c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&& +k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current|| +b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer= +setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d= +a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")), +b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('
    ').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(), +y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement; +if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0, +{},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1, +mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio= +!0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href"); +"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload= +this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href); +f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload, +e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin, +outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("
    ").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('
    ').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}", +g);break;case "swf":e='',h="",f.each(a.swf,function(a,b){e+='';h+=" "+a+'="'+b+'"'}),e+='"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll": +"no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside? +h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth|| +h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),cz||y>r)&&(c>m&&j>u)&&!(19n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&jz||y>r)&&c>m&&j>u;c=h.aspectRatio?cu&&j
    ').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive? +b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth), +p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"=== +f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d= +b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('
    '+e+"
    ");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner(''),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d, +e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+ +":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('
    ').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('
    ').appendTo("body");var e=20=== +d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("").appendTo("head")})})(window,document,jQuery); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/googlemaps/jquery.gmap.min.js b/wp-content/themes/milo/assets/js/googlemaps/jquery.gmap.min.js new file mode 100644 index 0000000..23e830c --- /dev/null +++ b/wp-content/themes/milo/assets/js/googlemaps/jquery.gmap.min.js @@ -0,0 +1,10 @@ +/* +* jquery.gmap +* Version 2.1.5 2013-10-30 +* @requires jQuery >= 1.6.1 or later +* +* Homepage: http://labs.mario.ec/jquery-gmap/ +* Author: Mario Estrada +* License: MIT +*/ +!function(a){a.fn.gMap=function(b,c){switch(b){case"addMarker":return a(this).trigger("gMap.addMarker",[c.latitude,c.longitude,c.content,c.icon,c.popup]);case"centerAt":return a(this).trigger("gMap.centerAt",[c.latitude,c.longitude,c.zoom]);case"clearMarkers":return a(this).trigger("gMap.clearMarkers")}var d=a.extend({},a.fn.gMap.defaults,b);return this.each(function(){var b=new google.maps.Map(this);a(this).data("gMap.reference",b);var c=new google.maps.Geocoder;d.address?c.geocode({address:d.address},function(a){a&&a.length&&b.setCenter(a[0].geometry.location)}):d.latitude&&d.longitude?b.setCenter(new google.maps.LatLng(d.latitude,d.longitude)):a.isArray(d.markers)&&d.markers.length>0?d.markers[0].address?c.geocode({address:d.markers[0].address},function(a){a&&a.length>0&&b.setCenter(a[0].geometry.location)}):b.setCenter(new google.maps.LatLng(d.markers[0].latitude,d.markers[0].longitude)):b.setCenter(new google.maps.LatLng(34.885931,9.84375)),b.setZoom(d.zoom),b.setMapTypeId(google.maps.MapTypeId[d.maptype]);var e={scrollwheel:d.scrollwheel,disableDoubleClickZoom:!d.doubleclickzoom};d.controls===!1?a.extend(e,{disableDefaultUI:!0}):0!==d.controls.length&&a.extend(e,d.controls,{disableDefaultUI:!0}),b.setOptions(e);var f,g,h=new google.maps.Marker;f=new google.maps.MarkerImage(d.icon.image),f.size=new google.maps.Size(d.icon.iconsize[0],d.icon.iconsize[1]),f.anchor=new google.maps.Point(d.icon.iconanchor[0],d.icon.iconanchor[1]),h.setIcon(f),d.icon.shadow&&(g=new google.maps.MarkerImage(d.icon.shadow),g.size=new google.maps.Size(d.icon.shadowsize[0],d.icon.shadowsize[1]),g.anchor=new google.maps.Point(d.icon.shadowanchor[0],d.icon.shadowanchor[1]),h.setShadow(g)),a(this).bind("gMap.centerAt",function(a,c,d,e){e&&b.setZoom(e),b.panTo(new google.maps.LatLng(parseFloat(c),parseFloat(d)))});var i=[];a(this).bind("gMap.clearMarkers",function(){for(;i[0];)i.pop().setMap(null)});var j;a(this).bind("gMap.addMarker",function(a,c,e,f,g,k){var l,m,n=new google.maps.LatLng(parseFloat(c),parseFloat(e)),o=new google.maps.Marker({position:n});if(g?(l=new google.maps.MarkerImage(g.image),l.size=new google.maps.Size(g.iconsize[0],g.iconsize[1]),l.anchor=new google.maps.Point(g.iconanchor[0],g.iconanchor[1]),o.setIcon(l),g.shadow&&(m=new google.maps.MarkerImage(g.shadow),m.size=new google.maps.Size(g.shadowsize[0],g.shadowsize[1]),m.anchor=new google.maps.Point(g.shadowanchor[0],g.shadowanchor[1]),h.setShadow(m))):(o.setIcon(h.getIcon()),o.setShadow(h.getShadow())),f){"_latlng"===f&&(f=c+", "+e);var p=new google.maps.InfoWindow({content:d.html_prepend+f+d.html_append});google.maps.event.addListener(o,"click",function(){j&&j.close(),p.open(b,o),j=p}),k&&google.maps.event.addListenerOnce(b,"tilesloaded",function(){p.open(b,o)})}o.setMap(b),i.push(o)});for(var k,l=this,m=function(b){return function(c){c&&c.length>0&&a(l).trigger("gMap.addMarker",[c[0].geometry.location.lat(),c[0].geometry.location.lng(),b.html,b.icon,b.popup])}},n=0;n',html_append:"
    ",icon:{image:"http://www.google.com/mapfiles/marker.png",shadow:"http://www.google.com/mapfiles/shadow50.png",iconsize:[20,34],shadowsize:[37,34],iconanchor:[9,34],shadowanchor:[6,34]}}}(jQuery); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/isotope/imagesloaded.pkgd.min.js b/wp-content/themes/milo/assets/js/isotope/imagesloaded.pkgd.min.js new file mode 100644 index 0000000..d66f658 --- /dev/null +++ b/wp-content/themes/milo/assets/js/isotope/imagesloaded.pkgd.min.js @@ -0,0 +1,7 @@ +/*! + * imagesLoaded PACKAGED v3.1.8 + * JavaScript is all like "You images are done yet or what?" + * MIT License + */ + +(function(){function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var i=e.prototype,r=this,o=r.EventEmitter;i.getListeners=function(e){var t,n,i=this._getEvents();if("object"==typeof e){t={};for(n in i)i.hasOwnProperty(n)&&e.test(n)&&(t[n]=i[n])}else t=i[e]||(i[e]=[]);return t},i.flattenListeners=function(e){var t,n=[];for(t=0;e.length>t;t+=1)n.push(e[t].listener);return n},i.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},i.addListener=function(e,n){var i,r=this.getListenersAsObject(e),o="object"==typeof n;for(i in r)r.hasOwnProperty(i)&&-1===t(r[i],n)&&r[i].push(o?n:{listener:n,once:!1});return this},i.on=n("addListener"),i.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},i.once=n("addOnceListener"),i.defineEvent=function(e){return this.getListeners(e),this},i.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},i.removeListener=function(e,n){var i,r,o=this.getListenersAsObject(e);for(r in o)o.hasOwnProperty(r)&&(i=t(o[r],n),-1!==i&&o[r].splice(i,1));return this},i.off=n("removeListener"),i.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},i.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},i.manipulateListeners=function(e,t,n){var i,r,o=e?this.removeListener:this.addListener,s=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(i=n.length;i--;)o.call(this,t,n[i]);else for(i in t)t.hasOwnProperty(i)&&(r=t[i])&&("function"==typeof r?o.call(this,i,r):s.call(this,i,r));return this},i.removeEvent=function(e){var t,n=typeof e,i=this._getEvents();if("string"===n)delete i[e];else if("object"===n)for(t in i)i.hasOwnProperty(t)&&e.test(t)&&delete i[t];else delete this._events;return this},i.removeAllListeners=n("removeEvent"),i.emitEvent=function(e,t){var n,i,r,o,s=this.getListenersAsObject(e);for(r in s)if(s.hasOwnProperty(r))for(i=s[r].length;i--;)n=s[r][i],n.once===!0&&this.removeListener(e,n.listener),o=n.listener.apply(this,t||[]),o===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},i.trigger=n("emitEvent"),i.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},i.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},i._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},i._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return r.EventEmitter=o,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}).call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,i=function(){};n.addEventListener?i=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(i=function(e,n,i){e[n+i]=i.handleEvent?function(){var n=t(e);i.handleEvent.call(i,n)}:function(){var n=t(e);i.call(e,n)},e.attachEvent("on"+n,e[n+i])});var r=function(){};n.removeEventListener?r=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(r=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(i){e[t+n]=void 0}});var o={bind:i,unbind:r};"function"==typeof define&&define.amd?define("eventie/eventie",o):e.eventie=o}(this),function(e,t){"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,i){return t(e,n,i)}):"object"==typeof exports?module.exports=t(e,require("wolfy87-eventemitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(window,function(e,t,n){function i(e,t){for(var n in t)e[n]=t[n];return e}function r(e){return"[object Array]"===d.call(e)}function o(e){var t=[];if(r(e))t=e;else if("number"==typeof e.length)for(var n=0,i=e.length;i>n;n++)t.push(e[n]);else t.push(e);return t}function s(e,t,n){if(!(this instanceof s))return new s(e,t);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=o(e),this.options=i({},this.options),"function"==typeof t?n=t:i(this.options,t),n&&this.on("always",n),this.getImages(),a&&(this.jqDeferred=new a.Deferred);var r=this;setTimeout(function(){r.check()})}function f(e){this.img=e}function c(e){this.src=e,v[e]=this}var a=e.jQuery,u=e.console,h=u!==void 0,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);var i=n.nodeType;if(i&&(1===i||9===i||11===i))for(var r=n.querySelectorAll("img"),o=0,s=r.length;s>o;o++){var f=r[o];this.addImage(f)}}},s.prototype.addImage=function(e){var t=new f(e);this.images.push(t)},s.prototype.check=function(){function e(e,r){return t.options.debug&&h&&u.log("confirm",e,r),t.progress(e),n++,n===i&&t.complete(),!0}var t=this,n=0,i=this.images.length;if(this.hasAnyBroken=!1,!i)return this.complete(),void 0;for(var r=0;i>r;r++){var o=this.images[r];o.on("confirm",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},a&&(a.fn.imagesLoaded=function(e,t){var n=new s(this,e,t);return n.jqDeferred.promise(a(this))}),f.prototype=new t,f.prototype.check=function(){var e=v[this.img.src]||new c(this.img.src);if(e.isConfirmed)return this.confirm(e.isLoaded,"cached was confirmed"),void 0;if(this.img.complete&&void 0!==this.img.naturalWidth)return this.confirm(0!==this.img.naturalWidth,"naturalWidth"),void 0;var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},f.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var v={};return c.prototype=new t,c.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},c.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},c.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},c.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},c.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},c.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},s}); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/isotope/isotope.pkgd.min.js b/wp-content/themes/milo/assets/js/isotope/isotope.pkgd.min.js new file mode 100644 index 0000000..b150e2d --- /dev/null +++ b/wp-content/themes/milo/assets/js/isotope/isotope.pkgd.min.js @@ -0,0 +1,8 @@ +/*! + * Isotope PACKAGED v2.1.1 + * Filter & sort magical layouts + * http://isotope.metafizzy.co + */ + +(function(t){function e(){}function i(t){function i(e){e.prototype.option||(e.prototype.option=function(e){t.isPlainObject(e)&&(this.options=t.extend(!0,this.options,e))})}function n(e,i){t.fn[e]=function(n){if("string"==typeof n){for(var s=o.call(arguments,1),a=0,u=this.length;u>a;a++){var p=this[a],h=t.data(p,e);if(h)if(t.isFunction(h[n])&&"_"!==n.charAt(0)){var f=h[n].apply(h,s);if(void 0!==f)return f}else r("no such method '"+n+"' for "+e+" instance");else r("cannot call methods on "+e+" prior to initialization; "+"attempted to call '"+n+"'")}return this}return this.each(function(){var o=t.data(this,e);o?(o.option(n),o._init()):(o=new i(this,n),t.data(this,e,o))})}}if(t){var r="undefined"==typeof console?e:function(t){console.error(t)};return t.bridget=function(t,e){i(e),n(t,e)},t.bridget}}var o=Array.prototype.slice;"function"==typeof define&&define.amd?define("jquery-bridget/jquery.bridget",["jquery"],i):"object"==typeof exports?i(require("jquery")):i(t.jQuery)})(window),function(t){function e(e){var i=t.event;return i.target=i.target||i.srcElement||e,i}var i=document.documentElement,o=function(){};i.addEventListener?o=function(t,e,i){t.addEventListener(e,i,!1)}:i.attachEvent&&(o=function(t,i,o){t[i+o]=o.handleEvent?function(){var i=e(t);o.handleEvent.call(o,i)}:function(){var i=e(t);o.call(t,i)},t.attachEvent("on"+i,t[i+o])});var n=function(){};i.removeEventListener?n=function(t,e,i){t.removeEventListener(e,i,!1)}:i.detachEvent&&(n=function(t,e,i){t.detachEvent("on"+e,t[e+i]);try{delete t[e+i]}catch(o){t[e+i]=void 0}});var r={bind:o,unbind:n};"function"==typeof define&&define.amd?define("eventie/eventie",r):"object"==typeof exports?module.exports=r:t.eventie=r}(this),function(t){function e(t){"function"==typeof t&&(e.isReady?t():s.push(t))}function i(t){var i="readystatechange"===t.type&&"complete"!==r.readyState;e.isReady||i||o()}function o(){e.isReady=!0;for(var t=0,i=s.length;i>t;t++){var o=s[t];o()}}function n(n){return"complete"===r.readyState?o():(n.bind(r,"DOMContentLoaded",i),n.bind(r,"readystatechange",i),n.bind(t,"load",i)),e}var r=t.document,s=[];e.isReady=!1,"function"==typeof define&&define.amd?define("doc-ready/doc-ready",["eventie/eventie"],n):"object"==typeof exports?module.exports=n(require("eventie")):t.docReady=n(t.eventie)}(window),function(){function t(){}function e(t,e){for(var i=t.length;i--;)if(t[i].listener===e)return i;return-1}function i(t){return function(){return this[t].apply(this,arguments)}}var o=t.prototype,n=this,r=n.EventEmitter;o.getListeners=function(t){var e,i,o=this._getEvents();if(t instanceof RegExp){e={};for(i in o)o.hasOwnProperty(i)&&t.test(i)&&(e[i]=o[i])}else e=o[t]||(o[t]=[]);return e},o.flattenListeners=function(t){var e,i=[];for(e=0;t.length>e;e+=1)i.push(t[e].listener);return i},o.getListenersAsObject=function(t){var e,i=this.getListeners(t);return i instanceof Array&&(e={},e[t]=i),e||i},o.addListener=function(t,i){var o,n=this.getListenersAsObject(t),r="object"==typeof i;for(o in n)n.hasOwnProperty(o)&&-1===e(n[o],i)&&n[o].push(r?i:{listener:i,once:!1});return this},o.on=i("addListener"),o.addOnceListener=function(t,e){return this.addListener(t,{listener:e,once:!0})},o.once=i("addOnceListener"),o.defineEvent=function(t){return this.getListeners(t),this},o.defineEvents=function(t){for(var e=0;t.length>e;e+=1)this.defineEvent(t[e]);return this},o.removeListener=function(t,i){var o,n,r=this.getListenersAsObject(t);for(n in r)r.hasOwnProperty(n)&&(o=e(r[n],i),-1!==o&&r[n].splice(o,1));return this},o.off=i("removeListener"),o.addListeners=function(t,e){return this.manipulateListeners(!1,t,e)},o.removeListeners=function(t,e){return this.manipulateListeners(!0,t,e)},o.manipulateListeners=function(t,e,i){var o,n,r=t?this.removeListener:this.addListener,s=t?this.removeListeners:this.addListeners;if("object"!=typeof e||e instanceof RegExp)for(o=i.length;o--;)r.call(this,e,i[o]);else for(o in e)e.hasOwnProperty(o)&&(n=e[o])&&("function"==typeof n?r.call(this,o,n):s.call(this,o,n));return this},o.removeEvent=function(t){var e,i=typeof t,o=this._getEvents();if("string"===i)delete o[t];else if(t instanceof RegExp)for(e in o)o.hasOwnProperty(e)&&t.test(e)&&delete o[e];else delete this._events;return this},o.removeAllListeners=i("removeEvent"),o.emitEvent=function(t,e){var i,o,n,r,s=this.getListenersAsObject(t);for(n in s)if(s.hasOwnProperty(n))for(o=s[n].length;o--;)i=s[n][o],i.once===!0&&this.removeListener(t,i.listener),r=i.listener.apply(this,e||[]),r===this._getOnceReturnValue()&&this.removeListener(t,i.listener);return this},o.trigger=i("emitEvent"),o.emit=function(t){var e=Array.prototype.slice.call(arguments,1);return this.emitEvent(t,e)},o.setOnceReturnValue=function(t){return this._onceReturnValue=t,this},o._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},o._getEvents=function(){return this._events||(this._events={})},t.noConflict=function(){return n.EventEmitter=r,t},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return t}):"object"==typeof module&&module.exports?module.exports=t:n.EventEmitter=t}.call(this),function(t){function e(t){if(t){if("string"==typeof o[t])return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e,n=0,r=i.length;r>n;n++)if(e=i[n]+t,"string"==typeof o[e])return e}}var i="Webkit Moz ms Ms O".split(" "),o=document.documentElement.style;"function"==typeof define&&define.amd?define("get-style-property/get-style-property",[],function(){return e}):"object"==typeof exports?module.exports=e:t.getStyleProperty=e}(window),function(t){function e(t){var e=parseFloat(t),i=-1===t.indexOf("%")&&!isNaN(e);return i&&e}function i(){}function o(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0,i=s.length;i>e;e++){var o=s[e];t[o]=0}return t}function n(i){function n(){if(!d){d=!0;var o=t.getComputedStyle;if(p=function(){var t=o?function(t){return o(t,null)}:function(t){return t.currentStyle};return function(e){var i=t(e);return i||r("Style returned "+i+". Are you running this code in a hidden iframe on Firefox? "+"See http://bit.ly/getsizebug1"),i}}(),h=i("boxSizing")){var n=document.createElement("div");n.style.width="200px",n.style.padding="1px 2px 3px 4px",n.style.borderStyle="solid",n.style.borderWidth="1px 2px 3px 4px",n.style[h]="border-box";var s=document.body||document.documentElement;s.appendChild(n);var a=p(n);f=200===e(a.width),s.removeChild(n)}}}function a(t){if(n(),"string"==typeof t&&(t=document.querySelector(t)),t&&"object"==typeof t&&t.nodeType){var i=p(t);if("none"===i.display)return o();var r={};r.width=t.offsetWidth,r.height=t.offsetHeight;for(var a=r.isBorderBox=!(!h||!i[h]||"border-box"!==i[h]),d=0,l=s.length;l>d;d++){var c=s[d],y=i[c];y=u(t,y);var m=parseFloat(y);r[c]=isNaN(m)?0:m}var g=r.paddingLeft+r.paddingRight,v=r.paddingTop+r.paddingBottom,_=r.marginLeft+r.marginRight,I=r.marginTop+r.marginBottom,L=r.borderLeftWidth+r.borderRightWidth,z=r.borderTopWidth+r.borderBottomWidth,b=a&&f,x=e(i.width);x!==!1&&(r.width=x+(b?0:g+L));var S=e(i.height);return S!==!1&&(r.height=S+(b?0:v+z)),r.innerWidth=r.width-(g+L),r.innerHeight=r.height-(v+z),r.outerWidth=r.width+_,r.outerHeight=r.height+I,r}}function u(e,i){if(t.getComputedStyle||-1===i.indexOf("%"))return i;var o=e.style,n=o.left,r=e.runtimeStyle,s=r&&r.left;return s&&(r.left=e.currentStyle.left),o.left=i,i=o.pixelLeft,o.left=n,s&&(r.left=s),i}var p,h,f,d=!1;return a}var r="undefined"==typeof console?i:function(t){console.error(t)},s=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"];"function"==typeof define&&define.amd?define("get-size/get-size",["get-style-property/get-style-property"],n):"object"==typeof exports?module.exports=n(require("desandro-get-style-property")):t.getSize=n(t.getStyleProperty)}(window),function(t){function e(t,e){return t[s](e)}function i(t){if(!t.parentNode){var e=document.createDocumentFragment();e.appendChild(t)}}function o(t,e){i(t);for(var o=t.parentNode.querySelectorAll(e),n=0,r=o.length;r>n;n++)if(o[n]===t)return!0;return!1}function n(t,o){return i(t),e(t,o)}var r,s=function(){if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0,o=e.length;o>i;i++){var n=e[i],r=n+"MatchesSelector";if(t[r])return r}}();if(s){var a=document.createElement("div"),u=e(a,"div");r=u?e:n}else r=o;"function"==typeof define&&define.amd?define("matches-selector/matches-selector",[],function(){return r}):"object"==typeof exports?module.exports=r:window.matchesSelector=r}(Element.prototype),function(t){function e(t,e){for(var i in e)t[i]=e[i];return t}function i(t){for(var e in t)return!1;return e=null,!0}function o(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}function n(t,n,r){function a(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}var u=r("transition"),p=r("transform"),h=u&&p,f=!!r("perspective"),d={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend",transition:"transitionend"}[u],l=["transform","transition","transitionDuration","transitionProperty"],c=function(){for(var t={},e=0,i=l.length;i>e;e++){var o=l[e],n=r(o);n&&n!==o&&(t[o]=n)}return t}();e(a.prototype,t.prototype),a.prototype._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},a.prototype.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},a.prototype.getSize=function(){this.size=n(this.element)},a.prototype.css=function(t){var e=this.element.style;for(var i in t){var o=c[i]||i;e[o]=t[i]}},a.prototype.getPosition=function(){var t=s(this.element),e=this.layout.options,i=e.isOriginLeft,o=e.isOriginTop,n=parseInt(t[i?"left":"right"],10),r=parseInt(t[o?"top":"bottom"],10);n=isNaN(n)?0:n,r=isNaN(r)?0:r;var a=this.layout.size;n-=i?a.paddingLeft:a.paddingRight,r-=o?a.paddingTop:a.paddingBottom,this.position.x=n,this.position.y=r},a.prototype.layoutPosition=function(){var t=this.layout.size,e=this.layout.options,i={};e.isOriginLeft?(i.left=this.position.x+t.paddingLeft+"px",i.right=""):(i.right=this.position.x+t.paddingRight+"px",i.left=""),e.isOriginTop?(i.top=this.position.y+t.paddingTop+"px",i.bottom=""):(i.bottom=this.position.y+t.paddingBottom+"px",i.top=""),this.css(i),this.emitEvent("layout",[this])};var y=f?function(t,e){return"translate3d("+t+"px, "+e+"px, 0)"}:function(t,e){return"translate("+t+"px, "+e+"px)"};a.prototype._transitionTo=function(t,e){this.getPosition();var i=this.position.x,o=this.position.y,n=parseInt(t,10),r=parseInt(e,10),s=n===this.position.x&&r===this.position.y;if(this.setPosition(t,e),s&&!this.isTransitioning)return this.layoutPosition(),void 0;var a=t-i,u=e-o,p={},h=this.layout.options;a=h.isOriginLeft?a:-a,u=h.isOriginTop?u:-u,p.transform=y(a,u),this.transition({to:p,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},a.prototype.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},a.prototype.moveTo=h?a.prototype._transitionTo:a.prototype.goTo,a.prototype.setPosition=function(t,e){this.position.x=parseInt(t,10),this.position.y=parseInt(e,10)},a.prototype._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},a.prototype._transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return this._nonTransition(t),void 0;var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var o=this.element.offsetHeight;o=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var m=p&&o(p)+",opacity";a.prototype.enableTransition=function(){this.isTransitioning||(this.css({transitionProperty:m,transitionDuration:this.layout.options.transitionDuration}),this.element.addEventListener(d,this,!1))},a.prototype.transition=a.prototype[u?"_transition":"_nonTransition"],a.prototype.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},a.prototype.onotransitionend=function(t){this.ontransitionend(t)};var g={"-webkit-transform":"transform","-moz-transform":"transform","-o-transform":"transform"};a.prototype.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,o=g[t.propertyName]||t.propertyName;if(delete e.ingProperties[o],i(e.ingProperties)&&this.disableTransition(),o in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[o]),o in e.onEnd){var n=e.onEnd[o];n.call(this),delete e.onEnd[o]}this.emitEvent("transitionEnd",[this])}},a.prototype.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(d,this,!1),this.isTransitioning=!1},a.prototype._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var v={transitionProperty:"",transitionDuration:""};return a.prototype.removeTransitionStyles=function(){this.css(v)},a.prototype.removeElem=function(){this.element.parentNode.removeChild(this.element),this.emitEvent("remove",[this])},a.prototype.remove=function(){if(!u||!parseFloat(this.layout.options.transitionDuration))return this.removeElem(),void 0;var t=this;this.on("transitionEnd",function(){return t.removeElem(),!0}),this.hide()},a.prototype.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options;this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0})},a.prototype.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options;this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:{opacity:function(){this.isHidden&&this.css({display:"none"})}}})},a.prototype.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},a}var r=t.getComputedStyle,s=r?function(t){return r(t,null)}:function(t){return t.currentStyle};"function"==typeof define&&define.amd?define("outlayer/item",["eventEmitter/EventEmitter","get-size/get-size","get-style-property/get-style-property"],n):"object"==typeof exports?module.exports=n(require("wolfy87-eventemitter"),require("get-size"),require("desandro-get-style-property")):(t.Outlayer={},t.Outlayer.Item=n(t.EventEmitter,t.getSize,t.getStyleProperty))}(window),function(t){function e(t,e){for(var i in e)t[i]=e[i];return t}function i(t){return"[object Array]"===f.call(t)}function o(t){var e=[];if(i(t))e=t;else if(t&&"number"==typeof t.length)for(var o=0,n=t.length;n>o;o++)e.push(t[o]);else e.push(t);return e}function n(t,e){var i=l(e,t);-1!==i&&e.splice(i,1)}function r(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()}function s(i,s,f,l,c,y){function m(t,i){if("string"==typeof t&&(t=a.querySelector(t)),!t||!d(t))return u&&u.error("Bad "+this.constructor.namespace+" element: "+t),void 0;this.element=t,this.options=e({},this.constructor.defaults),this.option(i);var o=++g;this.element.outlayerGUID=o,v[o]=this,this._create(),this.options.isInitLayout&&this.layout()}var g=0,v={};return m.namespace="outlayer",m.Item=y,m.defaults={containerStyle:{position:"relative"},isInitLayout:!0,isOriginLeft:!0,isOriginTop:!0,isResizeBound:!0,isResizingContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}},e(m.prototype,f.prototype),m.prototype.option=function(t){e(this.options,t)},m.prototype._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),e(this.element.style,this.options.containerStyle),this.options.isResizeBound&&this.bindResize()},m.prototype.reloadItems=function(){this.items=this._itemize(this.element.children)},m.prototype._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,o=[],n=0,r=e.length;r>n;n++){var s=e[n],a=new i(s,this);o.push(a)}return o},m.prototype._filterFindItemElements=function(t){t=o(t);for(var e=this.options.itemSelector,i=[],n=0,r=t.length;r>n;n++){var s=t[n];if(d(s))if(e){c(s,e)&&i.push(s);for(var a=s.querySelectorAll(e),u=0,p=a.length;p>u;u++)i.push(a[u])}else i.push(s)}return i},m.prototype.getItemElements=function(){for(var t=[],e=0,i=this.items.length;i>e;e++)t.push(this.items[e].element);return t},m.prototype.layout=function(){this._resetLayout(),this._manageStamps();var t=void 0!==this.options.isLayoutInstant?this.options.isLayoutInstant:!this._isLayoutInited;this.layoutItems(this.items,t),this._isLayoutInited=!0},m.prototype._init=m.prototype.layout,m.prototype._resetLayout=function(){this.getSize()},m.prototype.getSize=function(){this.size=l(this.element)},m.prototype._getMeasurement=function(t,e){var i,o=this.options[t];o?("string"==typeof o?i=this.element.querySelector(o):d(o)&&(i=o),this[t]=i?l(i)[e]:o):this[t]=0},m.prototype.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},m.prototype._getItemsForLayout=function(t){for(var e=[],i=0,o=t.length;o>i;i++){var n=t[i];n.isIgnored||e.push(n)}return e},m.prototype._layoutItems=function(t,e){function i(){o.emitEvent("layoutComplete",[o,t])}var o=this;if(!t||!t.length)return i(),void 0;this._itemsOn(t,"layout",i);for(var n=[],r=0,s=t.length;s>r;r++){var a=t[r],u=this._getItemLayoutPosition(a);u.item=a,u.isInstant=e||a.isLayoutInstant,n.push(u)}this._processLayoutQueue(n)},m.prototype._getItemLayoutPosition=function(){return{x:0,y:0}},m.prototype._processLayoutQueue=function(t){for(var e=0,i=t.length;i>e;e++){var o=t[e];this._positionItem(o.item,o.x,o.y,o.isInstant)}},m.prototype._positionItem=function(t,e,i,o){o?t.goTo(e,i):t.moveTo(e,i)},m.prototype._postLayout=function(){this.resizeContainer()},m.prototype.resizeContainer=function(){if(this.options.isResizingContainer){var t=this._getContainerSize();t&&(this._setContainerMeasure(t.width,!0),this._setContainerMeasure(t.height,!1))}},m.prototype._getContainerSize=h,m.prototype._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},m.prototype._itemsOn=function(t,e,i){function o(){return n++,n===r&&i.call(s),!0}for(var n=0,r=t.length,s=this,a=0,u=t.length;u>a;a++){var p=t[a];p.on(e,o)}},m.prototype.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},m.prototype.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},m.prototype.stamp=function(t){if(t=this._find(t)){this.stamps=this.stamps.concat(t);for(var e=0,i=t.length;i>e;e++){var o=t[e];this.ignore(o)}}},m.prototype.unstamp=function(t){if(t=this._find(t))for(var e=0,i=t.length;i>e;e++){var o=t[e];n(o,this.stamps),this.unignore(o)}},m.prototype._find=function(t){return t?("string"==typeof t&&(t=this.element.querySelectorAll(t)),t=o(t)):void 0},m.prototype._manageStamps=function(){if(this.stamps&&this.stamps.length){this._getBoundingRect();for(var t=0,e=this.stamps.length;e>t;t++){var i=this.stamps[t];this._manageStamp(i)}}},m.prototype._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},m.prototype._manageStamp=h,m.prototype._getElementOffset=function(t){var e=t.getBoundingClientRect(),i=this._boundingRect,o=l(t),n={left:e.left-i.left-o.marginLeft,top:e.top-i.top-o.marginTop,right:i.right-e.right-o.marginRight,bottom:i.bottom-e.bottom-o.marginBottom};return n},m.prototype.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},m.prototype.bindResize=function(){this.isResizeBound||(i.bind(t,"resize",this),this.isResizeBound=!0)},m.prototype.unbindResize=function(){this.isResizeBound&&i.unbind(t,"resize",this),this.isResizeBound=!1},m.prototype.onresize=function(){function t(){e.resize(),delete e.resizeTimeout}this.resizeTimeout&&clearTimeout(this.resizeTimeout);var e=this;this.resizeTimeout=setTimeout(t,100)},m.prototype.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},m.prototype.needsResizeLayout=function(){var t=l(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},m.prototype.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},m.prototype.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},m.prototype.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},m.prototype.reveal=function(t){var e=t&&t.length;if(e)for(var i=0;e>i;i++){var o=t[i];o.reveal()}},m.prototype.hide=function(t){var e=t&&t.length;if(e)for(var i=0;e>i;i++){var o=t[i];o.hide()}},m.prototype.getItem=function(t){for(var e=0,i=this.items.length;i>e;e++){var o=this.items[e];if(o.element===t)return o}},m.prototype.getItems=function(t){if(t&&t.length){for(var e=[],i=0,o=t.length;o>i;i++){var n=t[i],r=this.getItem(n);r&&e.push(r)}return e}},m.prototype.remove=function(t){t=o(t);var e=this.getItems(t);if(e&&e.length){this._itemsOn(e,"remove",function(){this.emitEvent("removeComplete",[this,e])});for(var i=0,r=e.length;r>i;i++){var s=e[i];s.remove(),n(s,this.items)}}},m.prototype.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="";for(var e=0,i=this.items.length;i>e;e++){var o=this.items[e];o.destroy()}this.unbindResize();var n=this.element.outlayerGUID;delete v[n],delete this.element.outlayerGUID,p&&p.removeData(this.element,this.constructor.namespace)},m.data=function(t){var e=t&&t.outlayerGUID;return e&&v[e]},m.create=function(t,i){function o(){m.apply(this,arguments)}return Object.create?o.prototype=Object.create(m.prototype):e(o.prototype,m.prototype),o.prototype.constructor=o,o.defaults=e({},m.defaults),e(o.defaults,i),o.prototype.settings={},o.namespace=t,o.data=m.data,o.Item=function(){y.apply(this,arguments)},o.Item.prototype=new y,s(function(){for(var e=r(t),i=a.querySelectorAll(".js-"+e),n="data-"+e+"-options",s=0,h=i.length;h>s;s++){var f,d=i[s],l=d.getAttribute(n);try{f=l&&JSON.parse(l)}catch(c){u&&u.error("Error parsing "+n+" on "+d.nodeName.toLowerCase()+(d.id?"#"+d.id:"")+": "+c);continue}var y=new o(d,f);p&&p.data(d,t,y)}}),p&&p.bridget&&p.bridget(t,o),o},m.Item=y,m}var a=t.document,u=t.console,p=t.jQuery,h=function(){},f=Object.prototype.toString,d="function"==typeof HTMLElement||"object"==typeof HTMLElement?function(t){return t instanceof HTMLElement}:function(t){return t&&"object"==typeof t&&1===t.nodeType&&"string"==typeof t.nodeName},l=Array.prototype.indexOf?function(t,e){return t.indexOf(e)}:function(t,e){for(var i=0,o=t.length;o>i;i++)if(t[i]===e)return i;return-1};"function"==typeof define&&define.amd?define("outlayer/outlayer",["eventie/eventie","doc-ready/doc-ready","eventEmitter/EventEmitter","get-size/get-size","matches-selector/matches-selector","./item"],s):"object"==typeof exports?module.exports=s(require("eventie"),require("doc-ready"),require("wolfy87-eventemitter"),require("get-size"),require("desandro-matches-selector"),require("./item")):t.Outlayer=s(t.eventie,t.docReady,t.EventEmitter,t.getSize,t.matchesSelector,t.Outlayer.Item)}(window),function(t){function e(t){function e(){t.Item.apply(this,arguments)}e.prototype=new t.Item,e.prototype._create=function(){this.id=this.layout.itemGUID++,t.Item.prototype._create.call(this),this.sortData={}},e.prototype.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData["original-order"]=this.id,this.sortData.random=Math.random();var t=this.layout.options.getSortData,e=this.layout._sorters;for(var i in t){var o=e[i];this.sortData[i]=o(this.element,this)}}};var i=e.prototype.destroy;return e.prototype.destroy=function(){i.apply(this,arguments),this.css({display:""})},e}"function"==typeof define&&define.amd?define("isotope/js/item",["outlayer/outlayer"],e):"object"==typeof exports?module.exports=e(require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.Item=e(t.Outlayer))}(window),function(t){function e(t,e){function i(t){this.isotope=t,t&&(this.options=t.options[this.namespace],this.element=t.element,this.items=t.filteredItems,this.size=t.size)}return function(){function t(t){return function(){return e.prototype[t].apply(this.isotope,arguments)}}for(var o=["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout"],n=0,r=o.length;r>n;n++){var s=o[n];i.prototype[s]=t(s)}}(),i.prototype.needsVerticalResizeLayout=function(){var e=t(this.isotope.element),i=this.isotope.size&&e;return i&&e.innerHeight!==this.isotope.size.innerHeight},i.prototype._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},i.prototype.getColumnWidth=function(){this.getSegmentSize("column","Width")},i.prototype.getRowHeight=function(){this.getSegmentSize("row","Height")},i.prototype.getSegmentSize=function(t,e){var i=t+e,o="outer"+e;if(this._getMeasurement(i,o),!this[i]){var n=this.getFirstItemSize();this[i]=n&&n[o]||this.isotope.size["inner"+e]}},i.prototype.getFirstItemSize=function(){var e=this.isotope.filteredItems[0];return e&&e.element&&t(e.element)},i.prototype.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},i.prototype.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},i.modes={},i.create=function(t,e){function o(){i.apply(this,arguments)}return o.prototype=new i,e&&(o.options=e),o.prototype.namespace=t,i.modes[t]=o,o},i}"function"==typeof define&&define.amd?define("isotope/js/layout-mode",["get-size/get-size","outlayer/outlayer"],e):"object"==typeof exports?module.exports=e(require("get-size"),require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.LayoutMode=e(t.getSize,t.Outlayer))}(window),function(t){function e(t,e){var o=t.create("masonry");return o.prototype._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns();var t=this.cols;for(this.colYs=[];t--;)this.colYs.push(0);this.maxY=0},o.prototype.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}this.columnWidth+=this.gutter,this.cols=Math.floor((this.containerWidth+this.gutter)/this.columnWidth),this.cols=Math.max(this.cols,1)},o.prototype.getContainerWidth=function(){var t=this.options.isFitWidth?this.element.parentNode:this.element,i=e(t);this.containerWidth=i&&i.innerWidth},o.prototype._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,o=e&&1>e?"round":"ceil",n=Math[o](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var r=this._getColGroup(n),s=Math.min.apply(Math,r),a=i(r,s),u={x:this.columnWidth*a,y:s},p=s+t.size.outerHeight,h=this.cols+1-r.length,f=0;h>f;f++)this.colYs[a+f]=p;return u},o.prototype._getColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,o=0;i>o;o++){var n=this.colYs.slice(o,o+t);e[o]=Math.max.apply(Math,n)}return e},o.prototype._manageStamp=function(t){var i=e(t),o=this._getElementOffset(t),n=this.options.isOriginLeft?o.left:o.right,r=n+i.outerWidth,s=Math.floor(n/this.columnWidth);s=Math.max(0,s);var a=Math.floor(r/this.columnWidth);a-=r%this.columnWidth?0:1,a=Math.min(this.cols-1,a);for(var u=(this.options.isOriginTop?o.top:o.bottom)+i.outerHeight,p=s;a>=p;p++)this.colYs[p]=Math.max(u,this.colYs[p])},o.prototype._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this.options.isFitWidth&&(t.width=this._getContainerFitWidth()),t},o.prototype._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},o.prototype.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!==this.containerWidth},o}var i=Array.prototype.indexOf?function(t,e){return t.indexOf(e)}:function(t,e){for(var i=0,o=t.length;o>i;i++){var n=t[i];if(n===e)return i}return-1};"function"==typeof define&&define.amd?define("masonry/masonry",["outlayer/outlayer","get-size/get-size"],e):"object"==typeof exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window),function(t){function e(t,e){for(var i in e)t[i]=e[i];return t}function i(t,i){var o=t.create("masonry"),n=o.prototype._getElementOffset,r=o.prototype.layout,s=o.prototype._getMeasurement;e(o.prototype,i.prototype),o.prototype._getElementOffset=n,o.prototype.layout=r,o.prototype._getMeasurement=s;var a=o.prototype.measureColumns;o.prototype.measureColumns=function(){this.items=this.isotope.filteredItems,a.call(this)};var u=o.prototype._manageStamp;return o.prototype._manageStamp=function(){this.options.isOriginLeft=this.isotope.options.isOriginLeft,this.options.isOriginTop=this.isotope.options.isOriginTop,u.apply(this,arguments)},o}"function"==typeof define&&define.amd?define("isotope/js/layout-modes/masonry",["../layout-mode","masonry/masonry"],i):"object"==typeof exports?module.exports=i(require("../layout-mode"),require("masonry-layout")):i(t.Isotope.LayoutMode,t.Masonry)}(window),function(t){function e(t){var e=t.create("fitRows");return e.prototype._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},e.prototype._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var o={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,o},e.prototype._getContainerSize=function(){return{height:this.maxY}},e}"function"==typeof define&&define.amd?define("isotope/js/layout-modes/fit-rows",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window),function(t){function e(t){var e=t.create("vertical",{horizontalAlignment:0});return e.prototype._resetLayout=function(){this.y=0},e.prototype._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},e.prototype._getContainerSize=function(){return{height:this.y}},e}"function"==typeof define&&define.amd?define("isotope/js/layout-modes/vertical",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window),function(t){function e(t,e){for(var i in e)t[i]=e[i];return t}function i(t){return"[object Array]"===h.call(t)}function o(t){var e=[];if(i(t))e=t;else if(t&&"number"==typeof t.length)for(var o=0,n=t.length;n>o;o++)e.push(t[o]);else e.push(t);return e}function n(t,e){var i=f(e,t);-1!==i&&e.splice(i,1)}function r(t,i,r,u,h){function f(t,e){return function(i,o){for(var n=0,r=t.length;r>n;n++){var s=t[n],a=i.sortData[s],u=o.sortData[s];if(a>u||u>a){var p=void 0!==e[s]?e[s]:e,h=p?1:-1;return(a>u?1:-1)*h}}return 0}}var d=t.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});d.Item=u,d.LayoutMode=h,d.prototype._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),t.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var e in h.modes)this._initLayoutMode(e)},d.prototype.reloadItems=function(){this.itemGUID=0,t.prototype.reloadItems.call(this)},d.prototype._itemize=function(){for(var e=t.prototype._itemize.apply(this,arguments),i=0,o=e.length;o>i;i++){var n=e[i];n.id=this.itemGUID++}return this._updateItemsSortData(e),e +},d.prototype._initLayoutMode=function(t){var i=h.modes[t],o=this.options[t]||{};this.options[t]=i.options?e(i.options,o):o,this.modes[t]=new i(this)},d.prototype.layout=function(){return!this._isLayoutInited&&this.options.isInitLayout?(this.arrange(),void 0):(this._layout(),void 0)},d.prototype._layout=function(){var t=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,t),this._isLayoutInited=!0},d.prototype.arrange=function(t){function e(){o.reveal(i.needReveal),o.hide(i.needHide)}this.option(t),this._getIsInstant();var i=this._filter(this.items);this.filteredItems=i.matches;var o=this;this._isInstant?this._noTransition(e):e(),this._sort(),this._layout()},d.prototype._init=d.prototype.arrange,d.prototype._getIsInstant=function(){var t=void 0!==this.options.isLayoutInstant?this.options.isLayoutInstant:!this._isLayoutInited;return this._isInstant=t,t},d.prototype._filter=function(t){var e=this.options.filter;e=e||"*";for(var i=[],o=[],n=[],r=this._getFilterTest(e),s=0,a=t.length;a>s;s++){var u=t[s];if(!u.isIgnored){var p=r(u);p&&i.push(u),p&&u.isHidden?o.push(u):p||u.isHidden||n.push(u)}}return{matches:i,needReveal:o,needHide:n}},d.prototype._getFilterTest=function(t){return s&&this.options.isJQueryFiltering?function(e){return s(e.element).is(t)}:"function"==typeof t?function(e){return t(e.element)}:function(e){return r(e.element,t)}},d.prototype.updateSortData=function(t){var e;t?(t=o(t),e=this.getItems(t)):e=this.items,this._getSorters(),this._updateItemsSortData(e)},d.prototype._getSorters=function(){var t=this.options.getSortData;for(var e in t){var i=t[e];this._sorters[e]=l(i)}},d.prototype._updateItemsSortData=function(t){for(var e=t&&t.length,i=0;e&&e>i;i++){var o=t[i];o.updateSortData()}};var l=function(){function t(t){if("string"!=typeof t)return t;var i=a(t).split(" "),o=i[0],n=o.match(/^\[(.+)\]$/),r=n&&n[1],s=e(r,o),u=d.sortDataParsers[i[1]];return t=u?function(t){return t&&u(s(t))}:function(t){return t&&s(t)}}function e(t,e){var i;return i=t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&p(i)}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},d.prototype._sort=function(){var t=this.options.sortBy;if(t){var e=[].concat.apply(t,this.sortHistory),i=f(e,this.options.sortAscending);this.filteredItems.sort(i),t!==this.sortHistory[0]&&this.sortHistory.unshift(t)}},d.prototype._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw Error("No layout mode: "+t);return e.options=this.options[t],e},d.prototype._resetLayout=function(){t.prototype._resetLayout.call(this),this._mode()._resetLayout()},d.prototype._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},d.prototype._manageStamp=function(t){this._mode()._manageStamp(t)},d.prototype._getContainerSize=function(){return this._mode()._getContainerSize()},d.prototype.needsResizeLayout=function(){return this._mode().needsResizeLayout()},d.prototype.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},d.prototype.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},d.prototype._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},d.prototype.insert=function(t){var e=this.addItems(t);if(e.length){var i,o,n=e.length;for(i=0;n>i;i++)o=e[i],this.element.appendChild(o.element);var r=this._filter(e).matches;for(i=0;n>i;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;n>i;i++)delete e[i].isLayoutInstant;this.reveal(r)}};var c=d.prototype.remove;return d.prototype.remove=function(t){t=o(t);var e=this.getItems(t);if(c.call(this,t),e&&e.length)for(var i=0,r=e.length;r>i;i++){var s=e[i];n(s,this.filteredItems)}},d.prototype.shuffle=function(){for(var t=0,e=this.items.length;e>t;t++){var i=this.items[t];i.sortData.random=Math.random()}this.options.sortBy="random",this._sort(),this._layout()},d.prototype._noTransition=function(t){var e=this.options.transitionDuration;this.options.transitionDuration=0;var i=t.call(this);return this.options.transitionDuration=e,i},d.prototype.getFilteredItemElements=function(){for(var t=[],e=0,i=this.filteredItems.length;i>e;e++)t.push(this.filteredItems[e].element);return t},d}var s=t.jQuery,a=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\s+|\s+$/g,"")},u=document.documentElement,p=u.textContent?function(t){return t.textContent}:function(t){return t.innerText},h=Object.prototype.toString,f=Array.prototype.indexOf?function(t,e){return t.indexOf(e)}:function(t,e){for(var i=0,o=t.length;o>i;i++)if(t[i]===e)return i;return-1};"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","matches-selector/matches-selector","isotope/js/item","isotope/js/layout-mode","isotope/js/layout-modes/masonry","isotope/js/layout-modes/fit-rows","isotope/js/layout-modes/vertical"],r):"object"==typeof exports?module.exports=r(require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("./item"),require("./layout-mode"),require("./layout-modes/masonry"),require("./layout-modes/fit-rows"),require("./layout-modes/vertical")):t.Isotope=r(t.Outlayer,t.getSize,t.matchesSelector,t.Isotope.Item,t.Isotope.LayoutMode)}(window); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/menu/hoverIntent.js b/wp-content/themes/milo/assets/js/menu/hoverIntent.js new file mode 100644 index 0000000..9fe54af --- /dev/null +++ b/wp-content/themes/milo/assets/js/menu/hoverIntent.js @@ -0,0 +1,31 @@ +/** + * hoverIntent is similar to jQuery's built-in "hover" method except that + * instead of firing the handlerIn function immediately, hoverIntent checks + * to see if the user's mouse has slowed down (beneath the sensitivity + * threshold) before firing the event. The handlerOut function is only + * called after a matching handlerIn. + * + * hoverIntent r7 // 2013.03.11 // jQuery 1.9.1+ + * http://cherne.net/brian/resources/jquery.hoverIntent.html + * + * You may use hoverIntent under the terms of the MIT license. Basically that + * means you are free to use hoverIntent as long as this header is left intact. + * Copyright 2007, 2013 Brian Cherne + * + * // basic usage ... just like .hover() + * .hoverIntent( handlerIn, handlerOut ) + * .hoverIntent( handlerInOut ) + * + * // basic usage ... with event delegation! + * .hoverIntent( handlerIn, handlerOut, selector ) + * .hoverIntent( handlerInOut, selector ) + * + * // using a basic configuration object + * .hoverIntent( config ) + * + * @param handlerIn function OR configuration object + * @param handlerOut function OR selector for delegation OR undefined + * @param selector selector OR undefined + * @author Brian Cherne + **/ +!function(e){e.fn.hoverIntent=function(t,n,o){var r={interval:100,sensitivity:7,timeout:0};r="object"==typeof t?e.extend(r,t):e.isFunction(n)?e.extend(r,{over:t,out:n,selector:o}):e.extend(r,{over:t,out:t,selector:n});var v,u,i,s,h=function(e){v=e.pageX,u=e.pageY},a=function(t,n){return n.hoverIntent_t=clearTimeout(n.hoverIntent_t),Math.abs(i-v)+Math.abs(s-u)0&&o.is(":hidden")&&(n.one("click.superfish",!1),"MSPointerDown"===s.type||"pointerdown"===s.type?n.trigger("focus"):e.proxy(c,n.parent("li"))())},c=function(){var s=e(this),n=m(s);clearTimeout(n.sfTimer),s.siblings().superfish("hide").end().superfish("show")},f=function(){var s=e(this),n=m(s);o?e.proxy(d,s,n)():(clearTimeout(n.sfTimer),n.sfTimer=setTimeout(e.proxy(d,s,n),n.delay))},d=function(s){s.retainPath=e.inArray(this[0],s.$path)>-1,this.superfish("hide"),this.parents("."+s.hoverClass).length||(s.onIdle.call(v(this)),s.$path.length&&e.proxy(c,s.$path)())},v=function(e){return e.closest("."+n.menuClass)},m=function(e){return v(e).data("sf-options")};return{hide:function(s){if(this.length){var n=this,o=m(n);if(!o)return this;var t=o.retainPath===!0?o.$path:"",i=n.find("li."+o.hoverClass).add(this).not(t).removeClass(o.hoverClass).children(o.popUpSelector),r=o.speedOut;s&&(i.show(),r=0),o.retainPath=!1,o.onBeforeHide.call(i),i.stop(!0,!0).animate(o.animationOut,r,function(){var s=e(this);o.onHide.call(s)})}return this},show:function(){var e=m(this);if(!e)return this;var s=this.addClass(e.hoverClass),n=s.children(e.popUpSelector);return e.onBeforeShow.call(n),n.stop(!0,!0).animate(e.animation,e.speed,function(){e.onShow.call(n)}),this},destroy:function(){return this.each(function(){var s,o=e(this),t=o.data("sf-options");return t?(s=o.find(t.popUpSelector).parent("li"),clearTimeout(t.sfTimer),r(o,t),l(s),h(o),o.off(".superfish").off(".hoverIntent"),s.children(t.popUpSelector).attr("style",function(e,s){return s.replace(/display[^;]+;?/g,"")}),t.$path.removeClass(t.hoverClass+" "+n.bcClass).addClass(t.pathClass),o.find("."+t.hoverClass).removeClass(t.hoverClass),t.onDestroy.call(o),void o.removeData("sf-options")):!1})},init:function(s){return this.each(function(){var o=e(this);if(o.data("sf-options"))return!1;var t=e.extend({},e.fn.superfish.defaults,s),i=o.find(t.popUpSelector).parent("li");t.$path=a(o,t),o.data("sf-options",t),r(o,t),l(i),h(o),u(o,t),i.not("."+n.bcClass).superfish("hide",!0),t.onInit.call(this)})}}}();e.fn.superfish=function(s){return n[s]?n[s].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof s&&s?e.error("Method "+s+" does not exist on jQuery.fn.superfish"):n.init.apply(this,arguments)},e.fn.superfish.defaults={popUpSelector:"ul,.megamenu-container",hoverClass:"sfHover",pathClass:"overrideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},animationOut:{opacity:"hide"},speed:"normal",speedOut:"fast",cssArrows:!0,disableHI:!1,onInit:e.noop,onBeforeShow:e.noop,onShow:e.noop,onBeforeHide:e.noop,onHide:e.noop,onIdle:e.noop,onDestroy:e.noop}}(jQuery,window); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/parallax/jquery.parallax-scroll.min.js b/wp-content/themes/milo/assets/js/parallax/jquery.parallax-scroll.min.js new file mode 100644 index 0000000..d9b9cbf --- /dev/null +++ b/wp-content/themes/milo/assets/js/parallax/jquery.parallax-scroll.min.js @@ -0,0 +1,9 @@ +/* + * Parallax-Scroll - v0.2.0 + * jQuery plugin for background-attachment: scroll with friction, similar to the parallax scrolling effect on Spotify. + * http://parallax-scroll.aenism.com + * + * Made by Aen Tan + * Under MIT License + */ +!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],b):b(a.jQuery)}(this,function(a){"use strict";var b,c={friction:.5},d=a(window),e=0;return window.requestAnimationFrame=function(a){var b=(new Date).getTime(),c=Math.max(0,5-(b-e)),d=window.setTimeout(function(){a(b+c)},c);return e=b+c,d},b=function(b,e){return{init:function(){this.$background=a(b),this.settings=a.extend({},c,e),this._initStyles(),this._bindEvents()},_initStyles:function(){this.$background.css({"background-attachment":"scroll"})},_visibleInViewport:function(){var a=d.height(),b=this.$background.get(0).getBoundingClientRect();return b.top0||b.bottom<=a&&b.top>a},_bindEvents:function(){var a=this;d.on("load scroll resize",function(){a._requestTick()})},_requestTick:function(){var a=this;this.ticking||(this.ticking=!0,requestAnimationFrame(function(){a._updateBgPos()}))},_updateBgPos:function(){if(this._visibleInViewport()){var a=d.width(),b=d.height(),c=this.$background.data("width"),e=this.$background.data("height"),f=c/e,g=this.$background.width(),h=this.$background.height(),i=g/h,j=f>i,k=g/c,l=e*k,m=this.$background.offset().top,n=d.scrollTop(),o=n-m,p=b+l,q=o*(b/p),r=o/b,s=(b-h)/2;s=j?s*r:s;var t=j?2*this.settings.friction*i:this.settings.friction*i,u=j?"auto "+b+"px":a+"px auto",v=q*t-s;this.$background.css({"background-size":u,"background-position":"50% "+v+"px"})}this.ticking=!1}}},b.defaults=c,a.fn.parallaxScroll=function(a){return this.each(function(){new b(this,a).init()})},b}); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/placeholders/jquery.placeholder.min.js b/wp-content/themes/milo/assets/js/placeholders/jquery.placeholder.min.js new file mode 100644 index 0000000..9c5177c --- /dev/null +++ b/wp-content/themes/milo/assets/js/placeholders/jquery.placeholder.min.js @@ -0,0 +1,5 @@ +/* HTML5 Placeholder jQuery Plugin - v2.1.0 + * Copyright (c)2015 Mathias Bynens + * 2015-01-27 + */ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){function b(b){var c={},d=/^jQuery\d+$/;return a.each(b.attributes,function(a,b){b.specified&&!d.test(b.name)&&(c[b.name]=b.value)}),c}function c(b,c){var d=this,f=a(d);if(d.value==f.attr("placeholder")&&f.hasClass(m.customClass))if(f.data("placeholder-password")){if(f=f.hide().nextAll('input[type="password"]:first').show().attr("id",f.removeAttr("id").data("placeholder-id")),b===!0)return f[0].value=c;f.focus()}else d.value="",f.removeClass(m.customClass),d==e()&&d.select()}function d(){var d,e=this,f=a(e),g=this.id;if(""===e.value){if("password"===e.type){if(!f.data("placeholder-textinput")){try{d=f.clone().attr({type:"text"})}catch(h){d=a("").attr(a.extend(b(this),{type:"text"}))}d.removeAttr("name").data({"placeholder-password":f,"placeholder-id":g}).bind("focus.placeholder",c),f.data({"placeholder-textinput":d,"placeholder-id":g}).before(d)}f=f.removeAttr("id").hide().prevAll('input[type="text"]:first').attr("id",g).show()}f.addClass(m.customClass),f[0].value=f.attr("placeholder")}else f.removeClass(m.customClass)}function e(){try{return document.activeElement}catch(a){}}var f,g,h="[object OperaMini]"==Object.prototype.toString.call(window.operamini),i="placeholder"in document.createElement("input")&&!h,j="placeholder"in document.createElement("textarea")&&!h,k=a.valHooks,l=a.propHooks;if(i&&j)g=a.fn.placeholder=function(){return this},g.input=g.textarea=!0;else{var m={};g=a.fn.placeholder=function(b){var e={customClass:"placeholder"};m=a.extend({},e,b);var f=this;return f.filter((i?"textarea":":input")+"[placeholder]").not("."+m.customClass).bind({"focus.placeholder":c,"blur.placeholder":d}).data("placeholder-enabled",!0).trigger("blur.placeholder"),f},g.input=i,g.textarea=j,f={get:function(b){var c=a(b),d=c.data("placeholder-password");return d?d[0].value:c.data("placeholder-enabled")&&c.hasClass(m.customClass)?"":b.value},set:function(b,f){var g=a(b),h=g.data("placeholder-password");return h?h[0].value=f:g.data("placeholder-enabled")?(""===f?(b.value=f,b!=e()&&d.call(b)):g.hasClass(m.customClass)?c.call(b,!0,f)||(b.value=f):b.value=f,g):b.value=f}},i||(k.input=f,l.value=f),j||(k.textarea=f,l.value=f),a(function(){a(document).delegate("form","submit.placeholder",function(){var b=a("."+m.customClass,this).each(c);setTimeout(function(){b.each(d)},10)})}),a(window).bind("beforeunload.placeholder",function(){a("."+m.customClass).each(function(){this.value=""})})}}); diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_large_left.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_large_left.png new file mode 100644 index 0000000..d0e0f42 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_large_left.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_large_right.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_large_right.png new file mode 100644 index 0000000..c1c23e3 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_large_right.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_left.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_left.png new file mode 100644 index 0000000..b71957f Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_left.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_left2.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_left2.png new file mode 100644 index 0000000..b569448 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_left2.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_right.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_right.png new file mode 100644 index 0000000..76f81f5 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_right.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_right2.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_right2.png new file mode 100644 index 0000000..c6a2726 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrow_right2.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/arrowleft.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrowleft.png new file mode 100644 index 0000000..2e7daf8 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrowleft.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/arrowright.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrowright.png new file mode 100644 index 0000000..0702b88 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrowright.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/arrows.psd b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrows.psd new file mode 100644 index 0000000..ade2810 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/arrows.psd differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/black50.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/black50.png new file mode 100644 index 0000000..01e9141 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/black50.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/boxed_bgtile.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/boxed_bgtile.png new file mode 100644 index 0000000..7068133 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/boxed_bgtile.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/bullet.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/bullet.png new file mode 100644 index 0000000..1203f8a Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/bullet.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/bullet_boxed.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/bullet_boxed.png new file mode 100644 index 0000000..7e28118 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/bullet_boxed.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/bullets.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/bullets.png new file mode 100644 index 0000000..eca5977 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/bullets.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/bullets.psd b/wp-content/themes/milo/assets/js/revolutionslider/assets/bullets.psd new file mode 100644 index 0000000..181523b Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/bullets.psd differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/bullets2.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/bullets2.png new file mode 100644 index 0000000..bf3c7f2 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/bullets2.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/coloredbg.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/coloredbg.png new file mode 100644 index 0000000..db75b7a Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/coloredbg.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/grain.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/grain.png new file mode 100644 index 0000000..d892efe Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/grain.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/gridtile.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/gridtile.png new file mode 100644 index 0000000..b07e396 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/gridtile.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/gridtile_3x3.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/gridtile_3x3.png new file mode 100644 index 0000000..6f2c31d Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/gridtile_3x3.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/gridtile_3x3_white.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/gridtile_3x3_white.png new file mode 100644 index 0000000..a8830fc Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/gridtile_3x3_white.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/gridtile_white.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/gridtile_white.png new file mode 100644 index 0000000..7f2599e Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/gridtile_white.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/large_left.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/large_left.png new file mode 100644 index 0000000..896d084 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/large_left.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/large_right.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/large_right.png new file mode 100644 index 0000000..43db6f6 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/large_right.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/loader.gif b/wp-content/themes/milo/assets/js/revolutionslider/assets/loader.gif new file mode 100644 index 0000000..53dd589 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/loader.gif differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/loader2.gif b/wp-content/themes/milo/assets/js/revolutionslider/assets/loader2.gif new file mode 100644 index 0000000..4ec1dda Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/loader2.gif differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/navigdots.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/navigdots.png new file mode 100644 index 0000000..3c0ea2f Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/navigdots.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/navigdots_bgtile.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/navigdots_bgtile.png new file mode 100644 index 0000000..84f1c28 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/navigdots_bgtile.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/shadow1.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/shadow1.png new file mode 100644 index 0000000..55293a1 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/shadow1.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/shadow2.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/shadow2.png new file mode 100644 index 0000000..8d0f298 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/shadow2.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/shadow3.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/shadow3.png new file mode 100644 index 0000000..2ceccf8 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/shadow3.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/small_arrows.psd b/wp-content/themes/milo/assets/js/revolutionslider/assets/small_arrows.psd new file mode 100644 index 0000000..5a60813 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/small_arrows.psd differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/small_left.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/small_left.png new file mode 100644 index 0000000..0fb36a6 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/small_left.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/small_left_boxed.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/small_left_boxed.png new file mode 100644 index 0000000..59cd3bc Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/small_left_boxed.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/small_right.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/small_right.png new file mode 100644 index 0000000..b83563a Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/small_right.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/small_right_boxed.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/small_right_boxed.png new file mode 100644 index 0000000..d89a095 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/small_right_boxed.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/timer.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/timer.png new file mode 100644 index 0000000..8e2ee79 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/timer.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/timerdot.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/timerdot.png new file mode 100644 index 0000000..0174d3d Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/timerdot.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/transparent.jpg b/wp-content/themes/milo/assets/js/revolutionslider/assets/transparent.jpg new file mode 100644 index 0000000..f0e511b Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/transparent.jpg differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/assets/white50.png b/wp-content/themes/milo/assets/js/revolutionslider/assets/white50.png new file mode 100644 index 0000000..3242605 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/assets/white50.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/css/settings.css b/wp-content/themes/milo/assets/js/revolutionslider/css/settings.css new file mode 100644 index 0000000..9252f49 --- /dev/null +++ b/wp-content/themes/milo/assets/js/revolutionslider/css/settings.css @@ -0,0 +1,2436 @@ +/*----------------------------------------------------------------------------- + + - Revolution Slider 4.1 Captions - + + Screen Stylesheet + +version: 1.4.5 +date: 27/11/13 +author: themepunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ + + + +/************************* + - CAPTIONS - +**************************/ + +.tp-static-layers { position:absolute; z-index:505; top:0px;left:0px} + +.tp-hide-revslider,.tp-caption.tp-hidden-caption { visibility:hidden !important; display:none !important} + + +.tp-caption { z-index:1; white-space:nowrap} + +.tp-caption-demo .tp-caption { position:relative !important; display:inline-block; margin-bottom:10px; margin-right:20px !important} + + +.tp-caption.whitedivider3px { + + color: #000000; + text-shadow: none; + background-color: rgb(255, 255, 255); + background-color: rgba(255, 255, 255, 1); + text-decoration: none; + min-width: 408px; + min-height: 3px; + background-position: initial initial; + background-repeat: initial initial; + border-width: 0px; + border-color: #000000; + border-style: none; +} + + +.tp-caption.finewide_large_white { +color:#ffffff; +text-shadow:none; +font-size:60px; +line-height:60px; +font-weight:300; +font-family:"Open Sans", sans-serif; +background-color:transparent; +text-decoration:none; +text-transform:uppercase; +letter-spacing:8px; +border-width:0px; +border-color:rgb(0, 0, 0); +border-style:none; +} + +.tp-caption.whitedivider3px { +color:#000000; +text-shadow:none; +background-color:rgb(255, 255, 255); +background-color:rgba(255, 255, 255, 1); +text-decoration:none; +font-size:0px; +line-height:0; +min-width:468px; +min-height:3px; +border-width:0px; +border-color:rgb(0, 0, 0); +border-style:none; +} + +.tp-caption.finewide_medium_white { +color:#ffffff; +text-shadow:none; +font-size:37px; +line-height:37px; +font-weight:300; +font-family:"Open Sans", sans-serif; +background-color:transparent; +text-decoration:none; +text-transform:uppercase; +letter-spacing:5px; +border-width:0px; +border-color:rgb(0, 0, 0); +border-style:none; +} + +.tp-caption.boldwide_small_white { +font-size:25px; +line-height:25px; +font-weight:800; +font-family:"Open Sans", sans-serif; +color:rgb(255, 255, 255); +text-decoration:none; +background-color:transparent; +text-shadow:none; +text-transform:uppercase; +letter-spacing:5px; +border-width:0px; +border-color:rgb(0, 0, 0); +border-style:none; +} + +.tp-caption.whitedivider3px_vertical { +color:#000000; +text-shadow:none; +background-color:rgb(255, 255, 255); +background-color:rgba(255, 255, 255, 1); +text-decoration:none; +font-size:0px; +line-height:0; +min-width:3px; +min-height:130px; +border-width:0px; +border-color:rgb(0, 0, 0); +border-style:none; +} + +.tp-caption.finewide_small_white { +color:#ffffff; +text-shadow:none; +font-size:25px; +line-height:25px; +font-weight:300; +font-family:"Open Sans", sans-serif; +background-color:transparent; +text-decoration:none; +text-transform:uppercase; +letter-spacing:5px; +border-width:0px; +border-color:rgb(0, 0, 0); +border-style:none; +} + +.tp-caption.finewide_verysmall_white_mw { +font-size:13px; +line-height:25px; +font-weight:400; +font-family:"Open Sans", sans-serif; +color:#ffffff; +text-decoration:none; +background-color:transparent; +text-shadow:none; +text-transform:uppercase; +letter-spacing:5px; +max-width:470px; +white-space:normal !important; +border-width:0px; +border-color:rgb(0, 0, 0); +border-style:none; +} + +.tp-caption.lightgrey_divider { +text-decoration:none; +background-color:rgb(235, 235, 235); +background-color:rgba(235, 235, 235, 1); +width:370px; +height:3px; +background-position:initial initial; +background-repeat:initial initial; +border-width:0px; +border-color:rgb(34, 34, 34); +border-style:none; +} + +.tp-caption.finewide_large_white { +color: #FFF; +text-shadow: none; +font-size: 60px; +line-height: 60px; +font-weight: 300; +font-family: "Open Sans", sans-serif; +background-color: rgba(0, 0, 0, 0); +text-decoration: none; +text-transform: uppercase; +letter-spacing: 8px; +border-width: 0px; +border-color: #000; +border-style: none; +} + +.tp-caption.finewide_medium_white { +color: #FFF; +text-shadow: none; +font-size: 34px; +line-height: 34px; +font-weight: 300; +font-family: "Open Sans", sans-serif; +background-color: rgba(0, 0, 0, 0); +text-decoration: none; +text-transform: uppercase; +letter-spacing: 5px; +border-width: 0px; +border-color: #000; +border-style: none; +} + +.tp-caption.huge_red { +position:absolute; +color:rgb(223,75,107); +font-weight:400; +font-size:150px; +line-height:130px; +font-family: 'Oswald', sans-serif; +margin:0px; +border-width:0px; +border-style:none; +white-space:nowrap; +background-color:rgb(45,49,54); +padding:0px; +} + +.tp-caption.middle_yellow { +position:absolute; +color:rgb(251,213,114); +font-weight:600; +font-size:50px; +line-height:50px; +font-family: 'Open Sans', sans-serif; +margin:0px; +border-width:0px; +border-style:none; +white-space:nowrap; +} + +.tp-caption.huge_thin_yellow { + position:absolute; +color:rgb(251,213,114); +font-weight:300; +font-size:90px; +line-height:90px; +font-family: 'Open Sans', sans-serif; +margin:0px; +letter-spacing: 20px; +border-width:0px; +border-style:none; +white-space:nowrap; +} + +.tp-caption.big_dark { +position:absolute; +color:#333; +font-weight:700; +font-size:70px; +line-height:70px; +font-family:"Open Sans"; +margin:0px; +border-width:0px; +border-style:none; +white-space:nowrap; +} + +.tp-caption.medium_dark { +position:absolute; +color:#333; +font-weight:300; +font-size:40px; +line-height:40px; +font-family:"Open Sans"; +margin:0px; +letter-spacing: 5px; +border-width:0px; +border-style:none; +white-space:nowrap; +} + + +.tp-caption.medium_grey { +position:absolute; +color:#fff; +text-shadow:0px 2px 5px rgba(0, 0, 0, 0.5); +font-weight:700; +font-size:20px; +line-height:20px; +font-family:Arial; +padding:2px 4px; +margin:0px; +border-width:0px; +border-style:none; +background-color:#888; +white-space:nowrap; +} + +.tp-caption.small_text { +position:absolute; +color:#fff; +text-shadow:0px 2px 5px rgba(0, 0, 0, 0.5); +font-weight:700; +font-size:14px; +line-height:20px; +font-family:Arial; +margin:0px; +border-width:0px; +border-style:none; +white-space:nowrap; +} + +.tp-caption.medium_text { +position:absolute; +color:#fff; +text-shadow:0px 2px 5px rgba(0, 0, 0, 0.5); +font-weight:700; +font-size:20px; +line-height:20px; +font-family:Arial; +margin:0px; +border-width:0px; +border-style:none; +white-space:nowrap; +} + + +.tp-caption.large_bold_white_25 { +font-size:55px; +line-height:65px; +font-weight:700; +font-family:"Open Sans"; +color:#fff; +text-decoration:none; +background-color:transparent; +text-align:center; +text-shadow:#000 0px 5px 10px; +border-width:0px; +border-color:rgb(255, 255, 255); +border-style:none; +} + +.tp-caption.medium_text_shadow { +font-size:25px; +line-height:25px; +font-weight:600; +font-family:"Open Sans"; +color:#fff; +text-decoration:none; +background-color:transparent; +text-align:center; +text-shadow:#000 0px 5px 10px; +border-width:0px; +border-color:rgb(255, 255, 255); +border-style:none; +} + +.tp-caption.large_text { +position:absolute; +color:#fff; +text-shadow:0px 2px 5px rgba(0, 0, 0, 0.5); +font-weight:700; +font-size:40px; +line-height:40px; +font-family:Arial; +margin:0px; +border-width:0px; +border-style:none; +white-space:nowrap; +} + +.tp-caption.medium_bold_grey { +font-size:30px; +line-height:30px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(102, 102, 102); +text-decoration:none; +background-color:transparent; +text-shadow:none; +margin:0px; +padding:1px 4px 0px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.very_large_text { +position:absolute; +color:#fff; +text-shadow:0px 2px 5px rgba(0, 0, 0, 0.5); +font-weight:700; +font-size:60px; +line-height:60px; +font-family:Arial; +margin:0px; +border-width:0px; +border-style:none; +white-space:nowrap; +letter-spacing:-2px; +} + +.tp-caption.very_big_white { +position:absolute; +color:#fff; +text-shadow:none; +font-weight:800; +font-size:60px; +line-height:60px; +font-family:Arial; +margin:0px; +border-width:0px; +border-style:none; +white-space:nowrap; +padding:0px 4px; +padding-top:1px; +background-color:#000; +} + +.tp-caption.very_big_black { +position:absolute; +color:#000; +text-shadow:none; +font-weight:700; +font-size:60px; +line-height:60px; +font-family:Arial; +margin:0px; +border-width:0px; +border-style:none; +white-space:nowrap; +padding:0px 4px; +padding-top:1px; +background-color:#fff; +} + +.tp-caption.modern_medium_fat { +position:absolute; +color:#000; +text-shadow:none; +font-weight:800; +font-size:24px; +line-height:20px; +font-family:"Open Sans", sans-serif; +margin:0px; +border-width:0px; +border-style:none; +white-space:nowrap; +} + +.tp-caption.modern_medium_fat_white { +position:absolute; +color:#fff; +text-shadow:none; +font-weight:800; +font-size:24px; +line-height:20px; +font-family:"Open Sans", sans-serif; +margin:0px; +border-width:0px; +border-style:none; +white-space:nowrap; +} + +.tp-caption.modern_medium_light { +position:absolute; +color:#000; +text-shadow:none; +font-weight:300; +font-size:24px; +line-height:20px; +font-family:"Open Sans", sans-serif; +margin:0px; +border-width:0px; +border-style:none; +white-space:nowrap; +} + +.tp-caption.modern_big_bluebg { +position:absolute; +color:#fff; +text-shadow:none; +font-weight:800; +font-size:30px; +line-height:36px; +font-family:"Open Sans", sans-serif; +padding:3px 10px; +margin:0px; +border-width:0px; +border-style:none; +background-color:#4e5b6c; +letter-spacing:0; +} + +.tp-caption.modern_big_redbg { +position:absolute; +color:#fff; +text-shadow:none; +font-weight:300; +font-size:30px; +line-height:36px; +font-family:"Open Sans", sans-serif; +padding:3px 10px; +padding-top:1px; +margin:0px; +border-width:0px; +border-style:none; +background-color:#de543e; +letter-spacing:0; +} + +.tp-caption.modern_small_text_dark { +position:absolute; +color:#555; +text-shadow:none; +font-size:14px; +line-height:22px; +font-family:Arial; +margin:0px; +border-width:0px; +border-style:none; +white-space:nowrap; +} + +.tp-caption.boxshadow { +-moz-box-shadow:0px 0px 20px rgba(0, 0, 0, 0.5); +-webkit-box-shadow:0px 0px 20px rgba(0, 0, 0, 0.5); +box-shadow:0px 0px 20px rgba(0, 0, 0, 0.5); +} + +.tp-caption.black { +color:#000; +text-shadow:none; +} + +.tp-caption.noshadow { +text-shadow:none; +} + +.tp-caption a { +color:#ff7302; +text-shadow:none; +-webkit-transition:all 0.2s ease-out; +-moz-transition:all 0.2s ease-out; +-o-transition:all 0.2s ease-out; +-ms-transition:all 0.2s ease-out; +} + +.tp-caption a:hover { +color:#ffa902; +} + +.tp-caption.thinheadline_dark { +position:absolute; +color:rgba(0,0,0,0.85); +text-shadow:none; +font-weight:300; +font-size:30px; +line-height:30px; +font-family:"Open Sans"; +background-color:transparent; +} + +.tp-caption.thintext_dark { +position:absolute; +color:rgba(0,0,0,0.85); +text-shadow:none; +font-weight:300; +font-size:16px; +line-height:26px; +font-family:"Open Sans"; +background-color:transparent; +} + +.tp-caption.medium_bg_red a { + color: #fff; + text-decoration: none; +} + +.tp-caption.medium_bg_red a:hover { + color: #fff; + text-decoration: underline; +} + +.tp-caption.smoothcircle { +font-size:30px; +line-height:75px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(255, 255, 255); +text-decoration:none; +background-color:rgb(0, 0, 0); +background-color:rgba(0, 0, 0, 0.498039); +padding:50px 25px; +text-align:center; +border-radius:500px 500px 500px 500px; +border-width:0px; +border-color:rgb(0, 0, 0); +border-style:none; +} + +.tp-caption.largeblackbg { +font-size:50px; +line-height:70px; +font-weight:300; +font-family:"Open Sans"; +color:rgb(255, 255, 255); +text-decoration:none; +background-color:rgb(0, 0, 0); +padding:0px 20px 5px; +text-shadow:none; +border-width:0px; +border-color:rgb(255, 255, 255); +border-style:none; +} + +.tp-caption.largepinkbg { +position:absolute; +color:#fff; +text-shadow:none; +font-weight:300; +font-size:50px; +line-height:70px; +font-family:"Open Sans"; +background-color:#db4360; +padding:0px 20px; +-webkit-border-radius:0px; +-moz-border-radius:0px; +border-radius:0px; +} + +.tp-caption.largewhitebg { +position:absolute; +color:#000; +text-shadow:none; +font-weight:300; +font-size:50px; +line-height:70px; +font-family:"Open Sans"; +background-color:#fff; +padding:0px 20px; +-webkit-border-radius:0px; +-moz-border-radius:0px; +border-radius:0px; +} + +.tp-caption.largegreenbg { +position:absolute; +color:#fff; +text-shadow:none; +font-weight:300; +font-size:50px; +line-height:70px; +font-family:"Open Sans"; +background-color:#67ae73; +padding:0px 20px; +-webkit-border-radius:0px; +-moz-border-radius:0px; +border-radius:0px; +} + +.tp-caption.excerpt { +font-size:36px; +line-height:36px; +font-weight:700; +font-family:Arial; +color:#ffffff; +text-decoration:none; +background-color:rgba(0, 0, 0, 1); +text-shadow:none; +margin:0px; +letter-spacing:-1.5px; +padding:1px 4px 0px 4px; +width:150px; +white-space:normal !important; +height:auto; +border-width:0px; +border-color:rgb(255, 255, 255); +border-style:none; +} + +.tp-caption.large_bold_grey { +font-size:60px; +line-height:60px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(102, 102, 102); +text-decoration:none; +background-color:transparent; +text-shadow:none; +margin:0px; +padding:1px 4px 0px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.medium_thin_grey { +font-size:34px; +line-height:30px; +font-weight:300; +font-family:"Open Sans"; +color:rgb(102, 102, 102); +text-decoration:none; +background-color:transparent; +padding:1px 4px 0px; +text-shadow:none; +margin:0px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.small_thin_grey { +font-size:18px; +line-height:26px; +font-weight:300; +font-family:"Open Sans"; +color:rgb(117, 117, 117); +text-decoration:none; +background-color:transparent; +padding:1px 4px 0px; +text-shadow:none; +margin:0px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.lightgrey_divider { +text-decoration:none; +background-color:rgba(235, 235, 235, 1); +width:370px; +height:3px; +background-position:initial initial; +background-repeat:initial initial; +border-width:0px; +border-color:rgb(34, 34, 34); +border-style:none; +} + +.tp-caption.large_bold_darkblue { +font-size:58px; +line-height:60px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(52, 73, 94); +text-decoration:none; +background-color:transparent; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.medium_bg_darkblue { +font-size:20px; +line-height:20px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(255, 255, 255); +text-decoration:none; +background-color:rgb(52, 73, 94); +padding:10px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.medium_bold_red { +font-size:24px; +line-height:30px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(227, 58, 12); +text-decoration:none; +background-color:transparent; +padding:0px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.medium_light_red { +font-size:21px; +line-height:26px; +font-weight:300; +font-family:"Open Sans"; +color:rgb(227, 58, 12); +text-decoration:none; +background-color:transparent; +padding:0px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.medium_bg_red { +font-size:20px; +line-height:20px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(255, 255, 255); +text-decoration:none; +background-color:rgb(227, 58, 12); +padding:10px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.medium_bold_orange { +font-size:24px; +line-height:30px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(243, 156, 18); +text-decoration:none; +background-color:transparent; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.medium_bg_orange { +font-size:20px; +line-height:20px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(255, 255, 255); +text-decoration:none; +background-color:rgb(243, 156, 18); +padding:10px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.grassfloor { +text-decoration:none; +background-color:rgba(160, 179, 151, 1); +width:4000px; +height:150px; +border-width:0px; +border-color:rgb(34, 34, 34); +border-style:none; +} + +.tp-caption.large_bold_white { +font-size:58px; +line-height:60px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(255, 255, 255); +text-decoration:none; +background-color:transparent; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.medium_light_white { +font-size:30px; +line-height:36px; +font-weight:300; +font-family:"Open Sans"; +color:rgb(255, 255, 255); +text-decoration:none; +background-color:transparent; +padding:0px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.mediumlarge_light_white { +font-size:34px; +line-height:40px; +font-weight:300; +font-family:"Open Sans"; +color:rgb(255, 255, 255); +text-decoration:none; +background-color:transparent; +padding:0px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.mediumlarge_light_white_center { +font-size:34px; +line-height:40px; +font-weight:300; +font-family:"Open Sans"; +color:#ffffff; +text-decoration:none; +background-color:transparent; +padding:0px 0px 0px 0px; +text-align:center; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.medium_bg_asbestos { +font-size:20px; +line-height:20px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(255, 255, 255); +text-decoration:none; +background-color:rgb(127, 140, 141); +padding:10px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.medium_light_black { +font-size:30px; +line-height:36px; +font-weight:300; +font-family:"Open Sans"; +color:rgb(0, 0, 0); +text-decoration:none; +background-color:transparent; +padding:0px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.large_bold_black { +font-size:58px; +line-height:60px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(0, 0, 0); +text-decoration:none; +background-color:transparent; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.mediumlarge_light_darkblue { +font-size:34px; +line-height:40px; +font-weight:300; +font-family:"Open Sans"; +color:rgb(52, 73, 94); +text-decoration:none; +background-color:transparent; +padding:0px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.small_light_white { +font-size:17px; +line-height:28px; +font-weight:300; +font-family:"Open Sans"; +color:rgb(255, 255, 255); +text-decoration:none; +background-color:transparent; +padding:0px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.roundedimage { +border-width:0px; +border-color:rgb(34, 34, 34); +border-style:none; +} + +.tp-caption.large_bg_black { +font-size:40px; +line-height:40px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(255, 255, 255); +text-decoration:none; +background-color:rgb(0, 0, 0); +padding:10px 20px 15px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + +.tp-caption.mediumwhitebg { +font-size:30px; +line-height:30px; +font-weight:300; +font-family:"Open Sans"; +color:rgb(0, 0, 0); +text-decoration:none; +background-color:rgb(255, 255, 255); +padding:5px 15px 10px; +text-shadow:none; +border-width:0px; +border-color:rgb(0, 0, 0); +border-style:none; +} + +.tp-caption.medium_bg_orange_new1 { +font-size:20px; +line-height:20px; +font-weight:800; +font-family:"Open Sans"; +color:rgb(255, 255, 255); +text-decoration:none; +background-color:rgb(243, 156, 18); +padding:10px; +border-width:0px; +border-color:rgb(255, 214, 88); +border-style:none; +} + + + +.tp-caption.boxshadow{ + -moz-box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5); + -webkit-box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5); + box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5); + } + +.tp-caption.black{ + color: #000; + text-shadow: none; + font-weight: 300; + font-size: 19px; + line-height: 19px; + font-family: 'Open Sans', sans; + } + +.tp-caption.noshadow { + text-shadow: none; + } + + +.tp_inner_padding { box-sizing:border-box; + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + max-height:none !important; } + + +/*.tp-caption { transform:none !important}*/ + + +/********************************* + - SPECIAL TP CAPTIONS - +**********************************/ +.tp-caption .frontcorner { + width: 0; + height: 0; + border-left: 40px solid transparent; + border-right: 0px solid transparent; + border-top: 40px solid #00A8FF; + position: absolute;left:-40px;top:0px; + } + +.tp-caption .backcorner { + width: 0; + height: 0; + border-left: 0px solid transparent; + border-right: 40px solid transparent; + border-bottom: 40px solid #00A8FF; + position: absolute;right:0px;top:0px; + } + +.tp-caption .frontcornertop { + width: 0; + height: 0; + border-left: 40px solid transparent; + border-right: 0px solid transparent; + border-bottom: 40px solid #00A8FF; + position: absolute;left:-40px;top:0px; + } + +.tp-caption .backcornertop { + width: 0; + height: 0; + border-left: 0px solid transparent; + border-right: 40px solid transparent; + border-top: 40px solid #00A8FF; + position: absolute;right:0px;top:0px; + } + + +/*********************************************** + - SPECIAL ALTERNATIVE IMAGE SETTINGS - +***********************************************/ + +img.tp-slider-alternative-image { width:100%; height:auto;} + +/****************************** + - BUTTONS - +*******************************/ + +.tp-simpleresponsive .button { padding:6px 13px 5px; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; height:30px; + cursor:pointer; + color:#fff !important; text-shadow:0px 1px 1px rgba(0, 0, 0, 0.6) !important; font-size:15px; line-height:45px !important; + background:url(../images/gradient/g30.png) repeat-x top; font-family: arial, sans-serif; font-weight: bold; letter-spacing: -1px; + } + +.tp-simpleresponsive .button.big { color:#fff; text-shadow:0px 1px 1px rgba(0, 0, 0, 0.6); font-weight:bold; padding:9px 20px; font-size:19px; line-height:57px !important; background:url(../images/gradient/g40.png) repeat-x top} + + +.tp-simpleresponsive .purchase:hover, +.tp-simpleresponsive .button:hover, +.tp-simpleresponsive .button.big:hover { background-position:bottom, 15px 11px} + + + + @media only screen and (min-width: 768px) and (max-width: 959px) { + + } + + + + @media only screen and (min-width: 480px) and (max-width: 767px) { + .tp-simpleresponsive .button { padding:4px 8px 3px; line-height:25px !important; font-size:11px !important;font-weight:normal; } + .tp-simpleresponsive a.button { -webkit-transition: none; -moz-transition: none; -o-transition: none; -ms-transition: none; } + + + } + + @media only screen and (min-width: 0px) and (max-width: 479px) { + .tp-simpleresponsive .button { padding:2px 5px 2px; line-height:20px !important; font-size:10px !important} + .tp-simpleresponsive a.button { -webkit-transition: none; -moz-transition: none; -o-transition: none; -ms-transition: none; } + } + + + + + +/* BUTTON COLORS */ + + + +.tp-simpleresponsive .button.green, .tp-simpleresponsive .button:hover.green, +.tp-simpleresponsive .purchase.green, .tp-simpleresponsive .purchase:hover.green { background-color:#21a117; -webkit-box-shadow: 0px 3px 0px 0px #104d0b; -moz-box-shadow: 0px 3px 0px 0px #104d0b; box-shadow: 0px 3px 0px 0px #104d0b; } + + +.tp-simpleresponsive .button.blue, .tp-simpleresponsive .button:hover.blue, +.tp-simpleresponsive .purchase.blue, .tp-simpleresponsive .purchase:hover.blue { background-color:#1d78cb; -webkit-box-shadow: 0px 3px 0px 0px #0f3e68; -moz-box-shadow: 0px 3px 0px 0px #0f3e68; box-shadow: 0px 3px 0px 0px #0f3e68} + + +.tp-simpleresponsive .button.red, .tp-simpleresponsive .button:hover.red, +.tp-simpleresponsive .purchase.red, .tp-simpleresponsive .purchase:hover.red { background-color:#cb1d1d; -webkit-box-shadow: 0px 3px 0px 0px #7c1212; -moz-box-shadow: 0px 3px 0px 0px #7c1212; box-shadow: 0px 3px 0px 0px #7c1212} + +.tp-simpleresponsive .button.orange, .tp-simpleresponsive .button:hover.orange, +.tp-simpleresponsive .purchase.orange, .tp-simpleresponsive .purchase:hover.orange { background-color:#ff7700; -webkit-box-shadow: 0px 3px 0px 0px #a34c00; -moz-box-shadow: 0px 3px 0px 0px #a34c00; box-shadow: 0px 3px 0px 0px #a34c00} + +.tp-simpleresponsive .button.darkgrey, .tp-simpleresponsive .button.grey, +.tp-simpleresponsive .button:hover.darkgrey, .tp-simpleresponsive .button:hover.grey, +.tp-simpleresponsive .purchase.darkgrey, .tp-simpleresponsive .purchase:hover.darkgrey { background-color:#555; -webkit-box-shadow: 0px 3px 0px 0px #222; -moz-box-shadow: 0px 3px 0px 0px #222; box-shadow: 0px 3px 0px 0px #222} + +.tp-simpleresponsive .button.lightgrey, .tp-simpleresponsive .button:hover.lightgrey, +.tp-simpleresponsive .purchase.lightgrey, .tp-simpleresponsive .purchase:hover.lightgrey { background-color:#888; -webkit-box-shadow: 0px 3px 0px 0px #555; -moz-box-shadow: 0px 3px 0px 0px #555; box-shadow: 0px 3px 0px 0px #555} + + + +/**************************************************************** + + - SET THE ANIMATION EVEN MORE SMOOTHER ON ANDROID - + +******************************************************************/ + +/*.tp-simpleresponsive { -webkit-perspective: 1500px; + -moz-perspective: 1500px; + -o-perspective: 1500px; + -ms-perspective: 1500px; + perspective: 1500px; + }*/ + + + + +/********************************************** + - FULLSCREEN AND FULLWIDHT CONTAINERS - +**********************************************/ + +.fullscreen-container { + width:100%; + position:relative; + padding:0; +} + + + +.fullwidthbanner-container{ + width:100%; + position:relative; + padding:0; + overflow:hidden; +} + +.fullwidthbanner-container .fullwidthbanner{ + width:100%; + position:relative; +} + + + +/************************************************ + - SOME CAPTION MODIFICATION AT START - +*************************************************/ +.tp-simpleresponsive .caption, +.tp-simpleresponsive .tp-caption { + /*-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; -moz-opacity: 0; -khtml-opacity: 0; opacity: 0; */ + position:absolute;visibility: hidden; + -webkit-font-smoothing: antialiased !important; +} + + +.tp-simpleresponsive img { max-width:none} + + + +/****************************** + - IE8 HACKS - +*******************************/ +.noFilterClass { + filter:none !important; +} + + +/****************************** + - SHADOWS - +******************************/ +.tp-bannershadow { + position:absolute; + + margin-left:auto; + margin-right:auto; + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + -o-user-select: none; + } + +.tp-bannershadow.tp-shadow1 { background:url(../assets/shadow1.png) no-repeat; background-size:100% 100%; width:890px; height:60px; bottom:-60px} +.tp-bannershadow.tp-shadow2 { background:url(../assets/shadow2.png) no-repeat; background-size:100% 100%; width:890px; height:60px;bottom:-60px} +.tp-bannershadow.tp-shadow3 { background:url(../assets/shadow3.png) no-repeat; background-size:100% 100%; width:890px; height:60px;bottom:-60px} + + +/******************************** + - FULLSCREEN VIDEO - +*********************************/ +.caption.fullscreenvideo { left:0px; top:0px; position:absolute;width:100%;height:100%} +.caption.fullscreenvideo iframe, +.caption.fullscreenvideo video { width:100% !important; height:100% !important; display: none} + +.tp-caption.fullscreenvideo { left:0px; top:0px; position:absolute;width:100%;height:100%} + + +.tp-caption.fullscreenvideo iframe, +.tp-caption.fullscreenvideo iframe video { width:100% !important; height:100% !important; display: none} + + +.fullcoveredvideo video, +.fullscreenvideo video { background: #000} + +.fullcoveredvideo .tp-poster { background-position: center center;background-size: cover;width:100%;height:100%;top:0px;left:0px} + +.html5vid.videoisplaying .tp-poster { display: none} + +.tp-video-play-button { background:#000; + background:rgba(0,0,0,0.3); + padding:5px; + border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px; + position: absolute; + top: 50%; + left: 50%; + font-size: 40px; + color: #FFF; + z-index: 3; + margin-top: -27px; + margin-left: -28px; + text-align: center; + cursor: pointer; + } + +.html5vid .tp-revstop { width:15px;height:20px; border-left:5px solid #fff; border-right:5px solid #fff; position:relative;margin:10px 20px; box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box} +.html5vid .tp-revstop { display:none} +.html5vid.videoisplaying .revicon-right-dir { display:none} +.html5vid.videoisplaying .tp-revstop { display:block} + +.html5vid.videoisplaying .tp-video-play-button { display:none} +.html5vid:hover .tp-video-play-button { display:block} + +.fullcoveredvideo .tp-video-play-button { display:none !important} + +.tp-video-controls { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 5px; + opacity: 0; + -webkit-transition: opacity .3s; + -moz-transition: opacity .3s; + -o-transition: opacity .3s; + -ms-transition: opacity .3s; + transition: opacity .3s; + background-image: linear-gradient(bottom, rgb(0,0,0) 13%, rgb(50,50,50) 100%); + background-image: -o-linear-gradient(bottom, rgb(0,0,0) 13%, rgb(50,50,50) 100%); + background-image: -moz-linear-gradient(bottom, rgb(0,0,0) 13%, rgb(50,50,50) 100%); + background-image: -webkit-linear-gradient(bottom, rgb(0,0,0) 13%, rgb(50,50,50) 100%); + background-image: -ms-linear-gradient(bottom, rgb(0,0,0) 13%, rgb(50,50,50) 100%); + + background-image: -webkit-gradient( + linear, + left bottom, + left top, + color-stop(0.13, rgb(0,0,0)), + color-stop(1, rgb(50,50,50)) + ); + + display:table;max-width:100%; overflow:hidden;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box; +} + +.tp-caption:hover .tp-video-controls { + opacity: .9; +} + +.tp-video-button { + background: rgba(0,0,0,.5); + border: 0; + color: #EEE; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; + cursor:pointer; + line-height:12px; + font-size:12px; + color:#fff; + padding:0px; + margin:0px; + outline: none; + } +.tp-video-button:hover { + cursor: pointer; +} + + +.tp-video-button-wrap, +.tp-video-seek-bar-wrap, +.tp-video-vol-bar-wrap { padding:0px 5px;display:table-cell; } + +.tp-video-seek-bar-wrap { width:80%} +.tp-video-vol-bar-wrap { width:20%} + +.tp-volume-bar, +.tp-seek-bar { width:100%; cursor: pointer; outline:none; line-height:12px;margin:0; padding:0;} + + +/******************************** + - FULLSCREEN VIDEO ENDS - +*********************************/ + + +/******************************** + - DOTTED OVERLAYS - +*********************************/ +.tp-dottedoverlay { background-repeat:repeat;width:100%;height:100%;position:absolute;top:0px;left:0px;z-index:4} +.tp-dottedoverlay.twoxtwo { background:url(../assets/gridtile.png)} +.tp-dottedoverlay.twoxtwowhite { background:url(../assets/gridtile_white.png)} +.tp-dottedoverlay.threexthree { background:url(../assets/gridtile_3x3.png)} +.tp-dottedoverlay.threexthreewhite { background:url(../assets/gridtile_3x3_white.png)} +/******************************** + - DOTTED OVERLAYS ENDS - +*********************************/ + + +/************************ + - NAVIGATION - +*************************/ + +/** BULLETS **/ + +.tpclear { clear:both} + + +.tp-bullets { z-index:1000; position:absolute; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + -moz-opacity: 1; + -khtml-opacity: 1; + opacity: 1; + -webkit-transition: opacity 0.2s ease-out; -moz-transition: opacity 0.2s ease-out; -o-transition: opacity 0.2s ease-out; -ms-transition: opacity 0.2s ease-out;-webkit-transform: translateZ(5px); + } +.tp-bullets.hidebullets { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -moz-opacity: 0; + -khtml-opacity: 0; + opacity: 0; + } + + +.tp-bullets.simplebullets.navbar { border:1px solid #666; border-bottom:1px solid #444; background:url(../assets/boxed_bgtile.png); height:40px; padding:0px 10px; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px } + +.tp-bullets.simplebullets.navbar-old { background:url(../assets/navigdots_bgtile.png); height:35px; padding:0px 10px; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px } + + +.tp-bullets.simplebullets.round .bullet { cursor:pointer; position:relative; background:url(../assets/bullet.png) no-Repeat top left; width:20px; height:20px; margin-right:0px; float:left; margin-top:0px; margin-left:3px} +.tp-bullets.simplebullets.round .bullet.last { margin-right:3px} + +.tp-bullets.simplebullets.round-old .bullet { cursor:pointer; position:relative; background:url(../assets/bullets.png) no-Repeat bottom left; width:23px; height:23px; margin-right:0px; float:left; margin-top:0px} +.tp-bullets.simplebullets.round-old .bullet.last { margin-right:0px} + + +/** SQUARE BULLETS **/ +.tp-bullets.simplebullets.square .bullet { cursor:pointer; position:relative; background:url(../assets/bullets2.png) no-Repeat bottom left; width:19px; height:19px; margin-right:0px; float:left; margin-top:0px} +.tp-bullets.simplebullets.square .bullet.last { margin-right:0px} + + +/** SQUARE BULLETS **/ +.tp-bullets.simplebullets.square-old .bullet { cursor:pointer; position:relative; background:url(../assets/bullets2.png) no-Repeat bottom left; width:19px; height:19px; margin-right:0px; float:left; margin-top:0px} +.tp-bullets.simplebullets.square-old .bullet.last { margin-right:0px} + + +/** navbar NAVIGATION VERSION **/ +.tp-bullets.simplebullets.navbar .bullet { cursor:pointer; position:relative; background:url(../assets/bullet_boxed.png) no-Repeat top left; width:18px; height:19px; margin-right:5px; float:left; margin-top:0px} + +.tp-bullets.simplebullets.navbar .bullet.first { margin-left:0px !important} +.tp-bullets.simplebullets.navbar .bullet.last { margin-right:0px !important} + + + +/** navbar NAVIGATION VERSION **/ +.tp-bullets.simplebullets.navbar-old .bullet { cursor:pointer; position:relative; background:url(../assets/navigdots.png) no-Repeat bottom left; width:15px; height:15px; margin-left:5px !important; margin-right:5px !important;float:left; margin-top:10px} +.tp-bullets.simplebullets.navbar-old .bullet.first { margin-left:0px !important} +.tp-bullets.simplebullets.navbar-old .bullet.last { margin-right:0px !important} + + +.tp-bullets.simplebullets .bullet:hover, +.tp-bullets.simplebullets .bullet.selected { background-position:top left} + +.tp-bullets.simplebullets.round .bullet:hover, +.tp-bullets.simplebullets.round .bullet.selected, +.tp-bullets.simplebullets.navbar .bullet:hover, +.tp-bullets.simplebullets.navbar .bullet.selected { background-position:bottom left} + + + +/************************************* + - TP ARROWS - +**************************************/ +.tparrows { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + -moz-opacity: 1; + -khtml-opacity: 1; + opacity: 1; + -webkit-transition: opacity 0.2s ease-out; -moz-transition: opacity 0.2s ease-out; -o-transition: opacity 0.2s ease-out; -ms-transition: opacity 0.2s ease-out; + -webkit-transform: translateZ(5000px); + -webkit-transform-style: flat; + -webkit-backface-visibility: hidden; + z-index:600; + position: relative; + + } +.tparrows.hidearrows { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -moz-opacity: 0; + -khtml-opacity: 0; + opacity: 0; + } +.tp-leftarrow { z-index:100;cursor:pointer; position:relative; background:url(../assets/large_left.png) no-Repeat top left; width:40px; height:40px; } +.tp-rightarrow { z-index:100;cursor:pointer; position:relative; background:url(../assets/large_right.png) no-Repeat top left; width:40px; height:40px; } + + +.tp-leftarrow.round { z-index:100;cursor:pointer; position:relative; background:url(../assets/small_left.png) no-Repeat top left; width:19px; height:14px; margin-right:0px; float:left; margin-top:0px; } +.tp-rightarrow.round { z-index:100;cursor:pointer; position:relative; background:url(../assets/small_right.png) no-Repeat top left; width:19px; height:14px; margin-right:0px; float:left; margin-top:0px} + + +.tp-leftarrow.round-old { z-index:100;cursor:pointer; position:relative; background:url(../assets/arrow_left.png) no-Repeat top left; width:26px; height:26px; margin-right:0px; float:left; margin-top:0px; } +.tp-rightarrow.round-old { z-index:100;cursor:pointer; position:relative; background:url(../assets/arrow_right.png) no-Repeat top left; width:26px; height:26px; margin-right:0px; float:left; margin-top:0px} + + +.tp-leftarrow.navbar { z-index:100;cursor:pointer; position:relative; background:url(../assets/small_left_boxed.png) no-Repeat top left; width:20px; height:15px; float:left; margin-right:6px; margin-top:12px} +.tp-rightarrow.navbar { z-index:100;cursor:pointer; position:relative; background:url(../assets/small_right_boxed.png) no-Repeat top left; width:20px; height:15px; float:left; margin-left:6px; margin-top:12px} + + +.tp-leftarrow.navbar-old { z-index:100;cursor:pointer; position:relative; background:url(../assets/arrowleft.png) no-Repeat top left; width:9px; height:16px; float:left; margin-right:6px; margin-top:10px} +.tp-rightarrow.navbar-old { z-index:100;cursor:pointer; position:relative; background:url(../assets/arrowright.png) no-Repeat top left; width:9px; height:16px; float:left; margin-left:6px; margin-top:10px} + +.tp-leftarrow.navbar-old.thumbswitharrow { margin-right:10px} +.tp-rightarrow.navbar-old.thumbswitharrow { margin-left:0px} + +.tp-leftarrow.square { z-index:100;cursor:pointer; position:relative; background:url(../assets/arrow_left2.png) no-Repeat top left; width:12px; height:17px; float:left; margin-right:0px; margin-top:0px} +.tp-rightarrow.square { z-index:100;cursor:pointer; position:relative; background:url(../assets/arrow_right2.png) no-Repeat top left; width:12px; height:17px; float:left; margin-left:0px; margin-top:0px} + + +.tp-leftarrow.square-old { z-index:100;cursor:pointer; position:relative; background:url(../assets/arrow_left2.png) no-Repeat top left; width:12px; height:17px; float:left; margin-right:0px; margin-top:0px} +.tp-rightarrow.square-old { z-index:100;cursor:pointer; position:relative; background:url(../assets/arrow_right2.png) no-Repeat top left; width:12px; height:17px; float:left; margin-left:0px; margin-top:0px} + + +.tp-leftarrow.default { z-index:100;cursor:pointer; position:relative; background:url(../assets/large_left.png) no-Repeat 0 0; width:40px; height:40px; + + } +.tp-rightarrow.default { z-index:100;cursor:pointer; position:relative; background:url(../assets/large_right.png) no-Repeat 0 0; width:40px; height:40px; + + } + + + + +.tp-leftarrow:hover, +.tp-rightarrow:hover { background-position:bottom left} + + + + + + +/**************************************************************************************************** + - TP THUMBS - +***************************************************************************************************** + + - tp-thumbs & tp-mask Width is the width of the basic Thumb Container (500px basic settings) + + - .bullet width & height is the dimension of a simple Thumbnail (basic 100px x 50px) + + *****************************************************************************************************/ + + +.tp-bullets.tp-thumbs { z-index:1000; position:absolute; padding:3px;background-color:#fff; + width:500px;height:50px; /* THE DIMENSIONS OF THE THUMB CONTAINER */ + margin-top:-50px; + } + + +.fullwidthbanner-container .tp-thumbs { padding:3px} + +.tp-bullets.tp-thumbs .tp-mask { width:500px; height:50px; /* THE DIMENSIONS OF THE THUMB CONTAINER */ + overflow:hidden; position:relative} + + +.tp-bullets.tp-thumbs .tp-mask .tp-thumbcontainer { width:5000px; position:absolute} + +.tp-bullets.tp-thumbs .bullet { width:100px; height:50px; /* THE DIMENSION OF A SINGLE THUMB */ + cursor:pointer; overflow:hidden;background:none;margin:0;float:left; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; + /*filter: alpha(opacity=50); */ + -moz-opacity: 0.5; + -khtml-opacity: 0.5; + opacity: 0.5; + + -webkit-transition: all 0.2s ease-out; -moz-transition: all 0.2s ease-out; -o-transition: all 0.2s ease-out; -ms-transition: all 0.2s ease-out; + } + + +.tp-bullets.tp-thumbs .bullet:hover, +.tp-bullets.tp-thumbs .bullet.selected { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + + -moz-opacity: 1; + -khtml-opacity: 1; + opacity: 1; + } +.tp-thumbs img { width:100%} + + +/************************************ + - TP BANNER TIMER - +*************************************/ +.tp-bannertimer { width:100%; height:10px; background:url(../assets/timer.png);position:absolute; z-index:200;top:0px} +.tp-bannertimer.tp-bottom { bottom:0px;height:5px; top:auto} + + + + +/*************************************** + - RESPONSIVE SETTINGS - +****************************************/ + + + + + @media only screen and (min-width: 0px) and (max-width: 479px) { + .responsive .tp-bullets { display:none} + .responsive .tparrows { display:none} + } + + + + + +/********************************************* + + - BASIC SETTINGS FOR THE BANNER - + +***********************************************/ + + .tp-simpleresponsive img { + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + -o-user-select: none; +} + + + +.tp-simpleresponsive a{ text-decoration:none} + +.tp-simpleresponsive ul, +.tp-simpleresponsive ul li, +.tp-simpleresponsive ul li:before { + list-style:none; + padding:0 !important; + margin:0 !important; + list-style:none !important; + overflow-x: visible; + overflow-y: visible; + background-image:none +} + + +.tp-simpleresponsive >ul >li{ + list-style:none; + position:absolute; + visibility:hidden +} + +/* CAPTION SLIDELINK **/ +.caption.slidelink a div, +.tp-caption.slidelink a div { width:3000px; height:1500px; background:url(../assets/coloredbg.png) repeat} + +.tp-caption.slidelink a span { background:url(../assets/coloredbg.png) repeat} + + + +/***************************************** + - NAVIGATION FANCY EXAMPLES - +*****************************************/ + +.tparrows .tp-arr-imgholder { display: none} +.tparrows .tp-arr-titleholder { display: none} + + + +/***************************************** + - NAVIGATION FANCY EXAMPLES - +*****************************************/ + +/* NAVIGATION PREVIEW 1 */ +.tparrows.preview1 { width:100px;height:100px;-webkit-transform-style: preserve-3d; -webkit-perspective: 1000; -moz-perspective: 1000; -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden;background: transparent} +.tparrows.preview1:after { position:absolute; left:0px;top:0px; font-family: "revicons"; color:#fff; font-size:30px; width:100px;height:100px;text-align: center; background:#fff;background:rgba(0,0,0,0.15);z-index:2;line-height:100px; -webkit-transition: background 0.3s, color 0.3s; -moz-transition: background 0.3s, color 0.3s; transition: background 0.3s, color 0.3s} +.tp-rightarrow.preview1:after { content: '\e825'; } +.tp-leftarrow.preview1:after { content: '\e824'; } + +.tparrows.preview1:hover:after { background:rgba(255,255,255,1); color:#aaa} + +.tparrows.preview1 .tp-arr-imgholder { background-size:cover; background-position:center center; display:block;width:100%;height:100%;position:absolute;top:0px; + -webkit-transition: -webkit-transform 0.3s; + transition: transform 0.3s; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + } +.tparrows.preview1 .tp-arr-iwrapper { -webkit-transition: all 0.3s;transition: all 0.3s; + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter: alpha(opacity=0);-moz-opacity: 0.0;-khtml-opacity: 0.0;opacity: 0.0} +.tparrows.preview1:hover .tp-arr-iwrapper { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter: alpha(opacity=100);-moz-opacity: 1;-khtml-opacity: 1;opacity: 1} + + +.tp-rightarrow.preview1 .tp-arr-imgholder { right:100%; + -webkit-transform: rotateY(-90deg); + transform: rotateY(-90deg); + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter: alpha(opacity=0);-moz-opacity: 0.0;-khtml-opacity: 0.0;opacity: 0.0; + + + + } +.tp-leftarrow.preview1 .tp-arr-imgholder { left:100%; + -webkit-transform: rotateY(90deg); + transform: rotateY(90deg); + -webkit-transform-origin: 0% 50%; + transform-origin: 0% 50%; + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter: alpha(opacity=0);-moz-opacity: 0.0;-khtml-opacity: 0.0;opacity: 0.0; + + + + } + + +.tparrows.preview1:hover .tp-arr-imgholder { -webkit-transform: rotateY(0deg); + transform: rotateY(0deg); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter: alpha(opacity=100);-moz-opacity: 1;-khtml-opacity: 1;opacity: 1; + + } + + + @media only screen and (min-width: 768px) and (max-width: 979px) { + .tparrows.preview1, + .tparrows.preview1:after { width:80px; height:80px;line-height:80px; font-size:24px} + + } + + @media only screen and (min-width: 480px) and (max-width: 767px) { + .tparrows.preview1, + .tparrows.preview1:after { width:60px; height:60px;line-height:60px;font-size:20px} + + } + + + + @media only screen and (min-width: 0px) and (max-width: 479px) { + .tparrows.preview1, + .tparrows.preview1:after { width:40px; height:40px;line-height:40px; font-size:12px} + } + +/* PREVIEW 1 BULLETS */ + +.tp-bullets.preview1 { height: 21px} +.tp-bullets.preview1 .bullet { cursor: pointer; + position: relative !important; + background: rgba(0, 0, 0, 0.15) !important; + /*-webkit-border-radius: 10px; + border-radius: 10px;*/ + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + width: 5px !important; + height: 5px !important; + border: 8px solid rgba(0, 0, 0, 0) !important; + display: inline-block; + margin-right: 5px !important; + margin-bottom: 0px !important; + -webkit-transition: background-color 0.2s, border-color 0.2s; + -moz-transition: background-color 0.2s, border-color 0.2s; + -o-transition: background-color 0.2s, border-color 0.2s; + -ms-transition: background-color 0.2s, border-color 0.2s; + transition: background-color 0.2s, border-color 0.2s; + float:none !important; + box-sizing:content-box; + -moz-box-sizing:content-box; + -webkit-box-sizing:content-box; +} +.tp-bullets.preview1 .bullet.last { margin-right: 0px} +.tp-bullets.preview1 .bullet:hover, +.tp-bullets.preview1 .bullet.selected { -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + background: #aaa !important; + width: 5px !important; + height: 5px !important; + border: 8px solid rgba(255, 255, 255, 1) !important; +} + + + + +/* NAVIGATION PREVIEW 2 */ +.tparrows.preview2 { min-width:60px; min-height:60px; background:#fff; ; + + border-radius:30px;-moz-border-radius:30px;-webkit-border-radius:30px; + overflow:hidden; + -webkit-transition: -webkit-transform 1.3s; + -webkit-transition: width 0.3s, background-color 0.3s, opacity 0.3s; + transition: width 0.3s, background-color 0.3s, opacity 0.3s; + backface-visibility: hidden; +} +.tparrows.preview2:after { position:absolute; top:50%; font-family: "revicons"; color:#aaa; font-size:25px; margin-top: -12px; -webkit-transition: color 0.3s; -moz-transition: color 0.3s; transition: color 0.3s } +.tp-rightarrow.preview2:after { content: '\e81e'; right:18px} +.tp-leftarrow.preview2:after { content: '\e81f'; left:18px} + + +.tparrows.preview2 .tp-arr-titleholder { background-size:cover; background-position:center center; display:block; visibility:hidden;position:relative;top:0px; + -webkit-transition: -webkit-transform 0.3s; + transition: transform 0.3s; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + white-space: nowrap; + color: #000; + text-transform: uppercase; + font-weight: 400; + font-size: 14px; + line-height: 60px; + padding:0px 10px; + } + +.tp-rightarrow.preview2 .tp-arr-titleholder { right:50px; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } +.tp-leftarrow.preview2 .tp-arr-titleholder { left:50px; + -webkit-transform: translateX(100%); + transform: translateX(100%); + } + +.tparrows.preview2.hovered { width:300px} +.tparrows.preview2:hover { background:#fff} +.tparrows.preview2:hover:after { color:#000} +.tparrows.preview2:hover .tp-arr-titleholder{ -webkit-transform: translateX(0px); + transform: translateX(0px); + visibility: visible; + position: absolute; + } + +/* PREVIEW 2 BULLETS */ + +.tp-bullets.preview2 { height: 17px} +.tp-bullets.preview2 .bullet { cursor: pointer; + position: relative !important; + background: rgba(0, 0, 0, 0.5) !important; + -webkit-border-radius: 10px; + border-radius: 10px; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + width: 6px !important; + height: 6px !important; + border: 5px solid rgba(0, 0, 0, 0) !important; + display: inline-block; + margin-right: 2px !important; + margin-bottom: 0px !important; + -webkit-transition: background-color 0.2s, border-color 0.2s; + -moz-transition: background-color 0.2s, border-color 0.2s; + -o-transition: background-color 0.2s, border-color 0.2s; + -ms-transition: background-color 0.2s, border-color 0.2s; + transition: background-color 0.2s, border-color 0.2s; + float:none !important; + box-sizing:content-box; + -moz-box-sizing:content-box; + -webkit-box-sizing:content-box; +} +.tp-bullets.preview2 .bullet.last { margin-right: 0px} +.tp-bullets.preview2 .bullet:hover, +.tp-bullets.preview2 .bullet.selected { -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + background: rgba(255, 255, 255, 1) !important; + width: 6px !important; + height: 6px !important; + border: 5px solid rgba(0, 0, 0, 1) !important; +} + +.tp-arr-titleholder.alwayshidden { display:none !important} + + + @media only screen and (min-width: 768px) and (max-width: 979px) { + .tparrows.preview2 { min-width:40px; min-height:40px; width:40px;height:40px; + border-radius:20px;-moz-border-radius:20px;-webkit-border-radius:20px; + } + .tparrows.preview2:after { position:absolute; top:50%; font-family: "revicons"; font-size:20px; margin-top: -12px} + .tp-rightarrow.preview2:after { content: '\e81e'; right:11px} + .tp-leftarrow.preview2:after { content: '\e81f'; left:11px} + .tparrows.preview2 .tp-arr-titleholder { font-size:12px; line-height:40px; letter-spacing: 0px} + .tp-rightarrow.preview2 .tp-arr-titleholder { right:35px} + .tp-leftarrow.preview2 .tp-arr-titleholder { left:35px} + + } + + @media only screen and (min-width: 480px) and (max-width: 767px) { + .tparrows.preview2 { min-width:30px; min-height:30px; width:30px;height:30px; + border-radius:15px;-moz-border-radius:15px;-webkit-border-radius:15px; + } + .tparrows.preview2:after { position:absolute; top:50%; font-family: "revicons"; font-size:14px; margin-top: -12px} + .tp-rightarrow.preview2:after { content: '\e81e'; right:8px} + .tp-leftarrow.preview2:after { content: '\e81f'; left:8px} + .tparrows.preview2 .tp-arr-titleholder { font-size:10px; line-height:30px; letter-spacing: 0px} + .tp-rightarrow.preview2 .tp-arr-titleholder { right:25px} + .tp-leftarrow.preview2 .tp-arr-titleholder { left:25px} + .tparrows.preview2 .tp-arr-titleholder { display:none;visibility:none} + + + } + + @media only screen and (min-width: 0px) and (max-width: 479px) { + .tparrows.preview2 { min-width:30px; min-height:30px; width:30px;height:30px; + border-radius:15px;-moz-border-radius:15px;-webkit-border-radius:15px; + } + .tparrows.preview2:after { position:absolute; top:50%; font-family: "revicons"; font-size:14px; margin-top: -12px} + .tp-rightarrow.preview2:after { content: '\e81e'; right:8px} + .tp-leftarrow.preview2:after { content: '\e81f'; left:8px} + .tparrows.preview2 .tp-arr-titleholder { display:none;visibility:none} + .tparrows.preview2:hover { width:30px !important; height:30px !important} + } + + + +/* NAVIGATION PREVIEW 3 */ +.tparrows.preview3 { width:70px; height:70px; background:#fff; background:rgba(255,255,255,1); -webkit-transform-style: flat} +.tparrows.preview3:after { position:absolute; line-height: 70px;text-align: center; font-family: "revicons"; color:#aaa; font-size:30px; top:0px;left:0px;;background:#fff; z-index:100; width:70px;height:70px; -webkit-transition: color 0.3s; -moz-transition: color 0.3s; transition: color 0.3s} +.tparrows.preview3:hover:after { color:#000} +.tp-rightarrow.preview3:after { content: '\e825'; } +.tp-leftarrow.preview3:after { content: '\e824'; } + + +.tparrows.preview3 .tp-arr-iwrapper { + -webkit-transform: scale(0,1); + transform: scale(0,1); + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; + -webkit-transition: -webkit-transform 0.2s; + transition: transform 0.2s; + z-index:0;position: absolute; background: #000; background: rgba(0,0,0,0.75); + display: table;min-height:90px;top:-10px} + +.tp-leftarrow.preview3 .tp-arr-iwrapper { -webkit-transform: scale(0,1); + transform: scale(0,1); + -webkit-transform-origin: 0% 50%; + transform-origin: 0% 50%; + } + +.tparrows.preview3 .tp-arr-imgholder { display:block;background-size:cover; background-position:center center; display:table-cell;min-width:90px;height:90px; + position:relative;top:0px} + +.tp-rightarrow.preview3 .tp-arr-iwrapper { right:0px;padding-right:70px} +.tp-leftarrow.preview3 .tp-arr-iwrapper { left:0px; direction: rtl;padding-left:70px} +.tparrows.preview3 .tp-arr-titleholder { display:table-cell; padding:30px;font-size:16px; color:#fff;white-space: nowrap; position: relative; clear:right;vertical-align: middle} + +.tparrows.preview3:hover .tp-arr-iwrapper { + -webkit-transform: scale(1,1); + transform: scale(1,1); + + } + +/* PREVIEW 3 BULLETS */ +.tp-bullets.preview3 { height: 17px} +.tp-bullets.preview3 .bullet { cursor: pointer; + position: relative !important; + background: rgba(0, 0, 0, 0.5) !important; + -webkit-border-radius: 10px; + border-radius: 10px; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + width: 6px !important; + height: 6px !important; + border: 5px solid rgba(0, 0, 0, 0) !important; + display: inline-block; + margin-right: 2px !important; + margin-bottom: 0px !important; + -webkit-transition: background-color 0.2s, border-color 0.2s; + -moz-transition: background-color 0.2s, border-color 0.2s; + -o-transition: background-color 0.2s, border-color 0.2s; + -ms-transition: background-color 0.2s, border-color 0.2s; + transition: background-color 0.2s, border-color 0.2s; + float:none !important; + box-sizing:content-box; + -moz-box-sizing:content-box; + -webkit-box-sizing:content-box; +} +.tp-bullets.preview3 .bullet.last { margin-right: 0px} +.tp-bullets.preview3 .bullet:hover, +.tp-bullets.preview3 .bullet.selected { -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + background: rgba(255, 255, 255, 1) !important; + width: 6px !important; + height: 6px !important; + border: 5px solid rgba(0, 0, 0, 1) !important; +} + + + @media only screen and (min-width: 768px) and (max-width: 979px) { + .tparrows.preview3:after, + .tparrows.preview3 { width:50px; height:50px; line-height:50px;font-size:20px} + .tparrows.preview3 .tp-arr-iwrapper { min-height:70px} + .tparrows.preview3 .tp-arr-imgholder { min-width:70px;height:70px} + .tp-rightarrow.preview3 .tp-arr-iwrapper { padding-right:50px} + .tp-leftarrow.preview3 .tp-arr-iwrapper { padding-left:50px} + .tparrows.preview3 .tp-arr-titleholder { padding:10px;font-size:16px} + + + + } + + @media only screen and (max-width: 767px) { + + .tparrows.preview3:after, + .tparrows.preview3 { width:50px; height:50px; line-height:50px;font-size:20px} + .tparrows.preview3 .tp-arr-iwrapper { min-height:70px} + } + + + + + +/* NAVIGATION PREVIEW 4 */ +.tparrows.preview4 { width:30px; height:110px; background:transparent;-webkit-transform-style: preserve-3d; -webkit-perspective: 1000; -moz-perspective: 1000} +.tparrows.preview4:after { position:absolute; line-height: 110px;text-align: center; font-family: "revicons"; color:#fff; font-size:20px; top:0px;left:0px;z-index:0; width:30px;height:110px; background: #000; background: rgba(0,0,0,0.25); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter: alpha(opacity=100);-moz-opacity: 1;-khtml-opacity: 1;opacity: 1; + + } + +.tp-rightarrow.preview4:after { content: '\e825'; } +.tp-leftarrow.preview4:after { content: '\e824'; } + + +.tparrows.preview4 .tp-arr-allwrapper { visibility:hidden;width:180px;position: absolute;z-index: 1;min-height:120px;top:0px;left:-150px; overflow: hidden;-webkit-perspective: 1000px;-webkit-transform-style: flat} + +.tp-leftarrow.preview4 .tp-arr-allwrapper { left:0px} +.tparrows.preview4 .tp-arr-iwrapper { position: relative} + +.tparrows.preview4 .tp-arr-imgholder { display:block;background-size:cover; background-position:center center;width:180px;height:110px; + position:relative;top:0px; + + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + + + + } + + +.tparrows.preview4 .tp-arr-imgholder2 { display:block;background-size:cover; background-position:center center; width:180px;height:110px; + position:absolute;top:0px; left:180px; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + + } + +.tp-leftarrow.preview4 .tp-arr-imgholder2 { left:-180px} + + + + +.tparrows.preview4 .tp-arr-titleholder { display:block; font-size:12px; line-height:25px; padding:0px 10px;text-align:left;color:#fff; position: relative; + background: #000; + color: #FFF; + text-transform: uppercase; + white-space: nowrap; + letter-spacing: 1px; + font-weight: 700; + font-size: 11px; + line-height: 2.75; + -webkit-transition: all 0.3s; + transition: all 0.3s; + -webkit-transform: rotateX(-90deg); + transform: rotateX(-90deg); + -webkit-transform-origin: 50% 0; + transform-origin: 50% 0; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter: alpha(opacity=0);-moz-opacity: 0.0;-khtml-opacity: 0.0;opacity: 0.0; + + +} + + + +.tparrows.preview4:after { transform-origin: 100% 100%; -webkit-transform-origin: 100% 100%} +.tp-leftarrow.preview4:after { transform-origin: 0% 0%; -webkit-transform-origin: 0% 0%} + + + + +@media only screen and (min-width: 768px) { + .tparrows.preview4:hover:after { -webkit-transform: rotateY(-90deg); transform:rotateY(-90deg)} + .tp-leftarrow.preview4:hover:after { -webkit-transform: rotateY(90deg); transform:rotateY(90deg)} + + + .tparrows.preview4:hover .tp-arr-titleholder { -webkit-transition-delay: 0.4s; + transition-delay: 0.4s; + -webkit-transform: rotateX(0deg); + transform: rotateX(0deg); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter: alpha(opacity=100);-moz-opacity: 1;-khtml-opacity: 1;opacity: 1; + + } +} + +/* PREVIEW 4 BULLETS */ + +.tp-bullets.preview4 { height: 17px} +.tp-bullets.preview4 .bullet { cursor: pointer; + position: relative !important; + background: rgba(0, 0, 0, 0.5) !important; + -webkit-border-radius: 10px; + border-radius: 10px; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + width: 6px !important; + height: 6px !important; + border: 5px solid rgba(0, 0, 0, 0) !important; + display: inline-block; + margin-right: 2px !important; + margin-bottom: 0px !important; + -webkit-transition: background-color 0.2s, border-color 0.2s; + -moz-transition: background-color 0.2s, border-color 0.2s; + -o-transition: background-color 0.2s, border-color 0.2s; + -ms-transition: background-color 0.2s, border-color 0.2s; + transition: background-color 0.2s, border-color 0.2s; + float:none !important; + box-sizing:content-box; + -moz-box-sizing:content-box; + -webkit-box-sizing:content-box; +} +.tp-bullets.preview4 .bullet.last { margin-right: 0px} +.tp-bullets.preview4 .bullet:hover, +.tp-bullets.preview4 .bullet.selected { -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + background: rgba(255, 255, 255, 1) !important; + width: 6px !important; + height: 6px !important; + border: 5px solid rgba(0, 0, 0, 1) !important; +} + + + @media only screen and (max-width: 767px) { + .tparrows.preview4 { width:20px; height:80px} + .tparrows.preview4:after { width:20px; height:80px; line-height:80px; font-size:14px} + + .tparrows.preview1 .tp-arr-allwrapper, + .tparrows.preview2 .tp-arr-allwrapper, + .tparrows.preview3 .tp-arr-allwrapper, + .tparrows.preview4 .tp-arr-allwrapper { display: none !important} + } + + + +/****************************** + - LOADER FORMS - +********************************/ + +.tp-loader { + top:50%; left:50%; + z-index:10000; + position:absolute; + + + } + +.tp-loader.spinner0 { + width: 40px; + height: 40px; + background:url(../assets/loader.gif) no-repeat center center; + background-color: #fff; + box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + -webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + margin-top:-20px; + margin-left:-20px; + -webkit-animation: tp-rotateplane 1.2s infinite ease-in-out; + animation: tp-rotateplane 1.2s infinite ease-in-out; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; +} + + +.tp-loader.spinner1 { + width: 40px; + height: 40px; + background-color: #fff; + box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + -webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + margin-top:-20px; + margin-left:-20px; + -webkit-animation: tp-rotateplane 1.2s infinite ease-in-out; + animation: tp-rotateplane 1.2s infinite ease-in-out; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; +} + + + +.tp-loader.spinner5 { background:url(../assets/loader.gif) no-repeat 10px 10px; + background-color:#fff; + margin:-22px -22px; + width:44px;height:44px; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + } + + +@-webkit-keyframes tp-rotateplane { + 0% { -webkit-transform: perspective(120px) } + 50% { -webkit-transform: perspective(120px) rotateY(180deg) } + 100% { -webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg) } +} + +@keyframes tp-rotateplane { + 0% { + transform: perspective(120px) rotateX(0deg) rotateY(0deg); + -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg) + } 50% { + transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); + -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg) + } 100% { + transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); + -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); + } +} + + +.tp-loader.spinner2 { + width: 40px; + height: 40px; + margin-top:-20px;margin-left:-20px; + background-color: #ff0000; + box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + -webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + border-radius: 100%; + -webkit-animation: tp-scaleout 1.0s infinite ease-in-out; + animation: tp-scaleout 1.0s infinite ease-in-out; +} + +@-webkit-keyframes tp-scaleout { + 0% { -webkit-transform: scale(0.0) } + 100% { + -webkit-transform: scale(1.0); + opacity: 0; + } +} + +@keyframes tp-scaleout { + 0% { + transform: scale(0.0); + -webkit-transform: scale(0.0); + } 100% { + transform: scale(1.0); + -webkit-transform: scale(1.0); + opacity: 0; + } +} + + + + +.tp-loader.spinner3 { + margin: -9px 0px 0px -35px; + width: 70px; + text-align: center; + +} + +.tp-loader.spinner3 .bounce1, +.tp-loader.spinner3 .bounce2, +.tp-loader.spinner3 .bounce3 { + width: 18px; + height: 18px; + background-color: #fff; + box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + -webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + border-radius: 100%; + display: inline-block; + -webkit-animation: tp-bouncedelay 1.4s infinite ease-in-out; + animation: tp-bouncedelay 1.4s infinite ease-in-out; + /* Prevent first frame from flickering when animation starts */ + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.tp-loader.spinner3 .bounce1 { + -webkit-animation-delay: -0.32s; + animation-delay: -0.32s; +} + +.tp-loader.spinner3 .bounce2 { + -webkit-animation-delay: -0.16s; + animation-delay: -0.16s; +} + +@-webkit-keyframes tp-bouncedelay { + 0%, 80%, 100% { -webkit-transform: scale(0.0) } + 40% { -webkit-transform: scale(1.0) } +} + +@keyframes tp-bouncedelay { + 0%, 80%, 100% { + transform: scale(0.0); + -webkit-transform: scale(0.0); + } 40% { + transform: scale(1.0); + -webkit-transform: scale(1.0); + } +} + + + + +.tp-loader.spinner4 { + margin: -20px 0px 0px -20px; + width: 40px; + height: 40px; + text-align: center; + -webkit-animation: tp-rotate 2.0s infinite linear; + animation: tp-rotate 2.0s infinite linear; +} + +.tp-loader.spinner4 .dot1, +.tp-loader.spinner4 .dot2 { + width: 60%; + height: 60%; + display: inline-block; + position: absolute; + top: 0; + background-color: #fff; + border-radius: 100%; + -webkit-animation: tp-bounce 2.0s infinite ease-in-out; + animation: tp-bounce 2.0s infinite ease-in-out; + box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + -webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); +} + +.tp-loader.spinner4 .dot2 { + top: auto; + bottom: 0px; + -webkit-animation-delay: -1.0s; + animation-delay: -1.0s; +} + +@-webkit-keyframes tp-rotate { 100% { -webkit-transform: rotate(360deg) }} +@keyframes tp-rotate { 100% { transform: rotate(360deg); -webkit-transform: rotate(360deg) }} + +@-webkit-keyframes tp-bounce { + 0%, 100% { -webkit-transform: scale(0.0) } + 50% { -webkit-transform: scale(1.0) } +} + +@keyframes tp-bounce { + 0%, 100% { + transform: scale(0.0); + -webkit-transform: scale(0.0); + } 50% { + transform: scale(1.0); + -webkit-transform: scale(1.0); + } +} + + + +.tp-transparentimg { content:"url(../assets/transparent.jpg)"} +.tp-3d { -webkit-transform-style: preserve-3d; + -webkit-transform-origin: 50% 50%; + } + + + +.tp-caption img { +background: transparent; +-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)"; +filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF); +zoom: 1; +} + + +@font-face { + font-family: 'revicons'; + src: url('../font/revicons.eot?5510888'); + src: url('../font/revicons.eot?5510888#iefix') format('embedded-opentype'), + url('../font/revicons.woff?5510888') format('woff'), + url('../font/revicons.ttf?5510888') format('truetype'), + url('../font/revicons.svg?5510888#revicons') format('svg'); + font-weight: normal; + font-style: normal; +} +/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ +/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ +/* +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: 'revicons'; + src: url('../font/revicons.svg?5510888#revicons') format('svg'); + } +} +*/ + + [class^="revicon-"]:before, [class*=" revicon-"]:before { + font-family: "revicons"; + font-style: normal; + font-weight: normal; + speak: none; + + display: inline-block; + text-decoration: inherit; + width: 1em; + margin-right: .2em; + text-align: center; + /* opacity: .8; */ + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* fix buttons height, for twitter bootstrap */ + line-height: 1em; + + /* Animation center compensation - margins should be symmetric */ + /* remove if not needed */ + margin-left: .2em; + + /* you can be more comfortable with increased icons size */ + /* font-size: 120%; */ + + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ +} + +.revicon-search-1:before { content: '\e802'} /* 'î ‚' */ +.revicon-pencil-1:before { content: '\e831'} /* 'î ±' */ +.revicon-picture-1:before { content: '\e803'} /* 'î ƒ' */ +.revicon-cancel:before { content: '\e80a'} /* 'î Š' */ +.revicon-info-circled:before { content: '\e80f'} /* 'î ' */ +.revicon-trash:before { content: '\e801'} /* 'î ' */ +.revicon-left-dir:before { content: '\e817'} /* 'î —' */ +.revicon-right-dir:before { content: '\e818'} /* 'î ˜' */ +.revicon-down-open:before { content: '\e83b'} /* 'î »' */ +.revicon-left-open:before { content: '\e819'} /* 'î ™' */ +.revicon-right-open:before { content: '\e81a'} /* 'î š' */ +.revicon-angle-left:before { content: '\e820'} /* 'î  ' */ +.revicon-angle-right:before { content: '\e81d'} /* 'î ' */ +.revicon-left-big:before { content: '\e81f'} /* 'î Ÿ' */ +.revicon-right-big:before { content: '\e81e'} /* 'î ž' */ +.revicon-magic:before { content: '\e807'} /* 'î ‡' */ +.revicon-picture:before { content: '\e800'} /* 'î €' */ +.revicon-export:before { content: '\e80b'} /* 'î ‹' */ +.revicon-cog:before { content: '\e832'} /* 'î ²' */ +.revicon-login:before { content: '\e833'} /* 'î ³' */ +.revicon-logout:before { content: '\e834'} /* 'î ´' */ +.revicon-video:before { content: '\e805'} /* 'î …' */ +.revicon-arrow-combo:before { content: '\e827'} /* 'î §' */ +.revicon-left-open-1:before { content: '\e82a'} /* 'î ª' */ +.revicon-right-open-1:before { content: '\e82b'} /* 'î «' */ +.revicon-left-open-mini:before { content: '\e822'} /* 'î ¢' */ +.revicon-right-open-mini:before { content: '\e823'} /* 'î £' */ +.revicon-left-open-big:before { content: '\e824'} /* 'î ¤' */ +.revicon-right-open-big:before { content: '\e825'} /* 'î ¥' */ +.revicon-left:before { content: '\e836'} /* 'î ¶' */ +.revicon-right:before { content: '\e826'} /* 'î ¦' */ +.revicon-ccw:before { content: '\e808'} /* 'î ˆ' */ +.revicon-arrows-ccw:before { content: '\e806'} /* 'î †' */ +.revicon-palette:before { content: '\e829'} /* 'î ©' */ +.revicon-list-add:before { content: '\e80c'} /* 'î Œ' */ +.revicon-doc:before { content: '\e809'} /* 'î ‰' */ +.revicon-left-open-outline:before { content: '\e82e'} /* 'î ®' */ +.revicon-left-open-2:before { content: '\e82c'} /* 'î ¬' */ +.revicon-right-open-outline:before { content: '\e82f'} /* 'î ¯' */ +.revicon-right-open-2:before { content: '\e82d'} /* 'î ­' */ +.revicon-equalizer:before { content: '\e83a'} /* 'î º' */ +.revicon-layers-alt:before { content: '\e804'} /* 'î „' */ +.revicon-popup:before { content: '\e828'} /* 'î ¨' */ \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/revolutionslider/font/revicons.eot b/wp-content/themes/milo/assets/js/revolutionslider/font/revicons.eot new file mode 100644 index 0000000..955dc3f Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/font/revicons.eot differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/font/revicons.svg b/wp-content/themes/milo/assets/js/revolutionslider/font/revicons.svg new file mode 100644 index 0000000..2ec696b --- /dev/null +++ b/wp-content/themes/milo/assets/js/revolutionslider/font/revicons.svg @@ -0,0 +1,54 @@ + + + +Copyright (C) 2013 by original authors @ fontello.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/revolutionslider/font/revicons.ttf b/wp-content/themes/milo/assets/js/revolutionslider/font/revicons.ttf new file mode 100644 index 0000000..4e8df98 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/font/revicons.ttf differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/font/revicons.woff b/wp-content/themes/milo/assets/js/revolutionslider/font/revicons.woff new file mode 100644 index 0000000..6d3ea4d Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/font/revicons.woff differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/images/decor_inside.png b/wp-content/themes/milo/assets/js/revolutionslider/images/decor_inside.png new file mode 100644 index 0000000..02f3321 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/images/decor_inside.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/images/decor_inside_white.png b/wp-content/themes/milo/assets/js/revolutionslider/images/decor_inside_white.png new file mode 100644 index 0000000..a3679f1 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/images/decor_inside_white.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/images/decor_testimonial.png b/wp-content/themes/milo/assets/js/revolutionslider/images/decor_testimonial.png new file mode 100644 index 0000000..949e564 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/images/decor_testimonial.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/images/gradient/g30.png b/wp-content/themes/milo/assets/js/revolutionslider/images/gradient/g30.png new file mode 100644 index 0000000..48595b7 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/images/gradient/g30.png differ diff --git a/wp-content/themes/milo/assets/js/revolutionslider/images/gradient/g40.png b/wp-content/themes/milo/assets/js/revolutionslider/images/gradient/g40.png new file mode 100644 index 0000000..d82af00 Binary files /dev/null and b/wp-content/themes/milo/assets/js/revolutionslider/images/gradient/g40.png differ diff --git a/wp-content/themes/milo/assets/js/sticky/jquery.sticky.js b/wp-content/themes/milo/assets/js/sticky/jquery.sticky.js new file mode 100644 index 0000000..58d00b2 --- /dev/null +++ b/wp-content/themes/milo/assets/js/sticky/jquery.sticky.js @@ -0,0 +1,265 @@ +/* + * ScrollFix + * https://github.com/ShiraNai7/jquery-scrollfix + */ + + "use_strict"; + +var Shira; +(function (Shira, $) { + (function (ScrollFix) { + /** + * @constructor + * + * @param {HTMLElement} element DOM element that is going to be fixed + * @param {Object} options option map + */ + ScrollFix.Watcher = function (element, options) { + this.element = element; + this.options = $.extend({}, ScrollFix.Watcher.defaults, options); + + $(element).data('shira.scrollfix', this); + }; + + ScrollFix.Watcher.defaults = { + fixClass: 'scroll-fix', + fixTop: 0, + fixOffset: 0, + unfixOffset: 0, + onUpdateFixed: null, + syncSize: true, + syncPosition: true, + style: true + }; + + ScrollFix.Watcher.prototype = { + element: null, + substitute: null, + options: null, + fixed: false, + attached: false, + + /** + * Get absolute X position of the given element + * + * @private + * + * @param {HTMLElement} elem + * @returns {Number} + */ + getElementX: function (elem) { + var x = 0; + do x += elem.offsetLeft; + while (elem = elem.offsetParent); + + return x; + }, + + /** + * Get absolute Y position of the given element + * + * @private + * + * @param {HTMLElement} elem + * @returns {Number} + */ + getElementY: function (elem) { + var y = 0; + do y += elem.offsetTop; + while (elem = elem.offsetParent); + + return y; + }, + + /** + * Fix the element + */ + fix: function () { + if (!this.fixed) { + // create the substitute + this.substitute = $(this.element.cloneNode(false)) + .css('visibility', 'hidden') + .height($(this.element).height()) + .insertAfter(this.element)[0] + ; + + // add class and styles + if (this.options.style) { + $(this.element) + .css('position', 'fixed') + .css('top', this.options.fixTop + 'px') + ; + } + $(this.element).addClass(this.options.fixClass); + + // update state + this.fixed = true; + + // dispatch event + this.dispatchEvent('fixed'); + } + }, + + /** + * Update the fixed element + * + * @private + */ + updateFixed: function () { + // size + if (this.options.syncSize) { + $(this.element) + .width($(this.substitute).width()) + ; + } + + // position + if (this.options.syncPosition) { + var currentScrollLeft = $(window).scrollLeft(); + var substituteLeftOffset = this.getElementX(this.substitute); + + $(this.element).css('left', (substituteLeftOffset - currentScrollLeft) + 'px'); + } + + // callback (deprecated) + if (null !== this.options.onUpdateFixed) { + this.options.onUpdateFixed(this); + } + + // dispatch event + this.dispatchEvent('update'); + }, + + /** + * Unfix the element + */ + unfix: function () { + if (this.fixed) { + // remove the substitute + $(this.substitute).remove(); + this.substitute = null; + + // reset applied styles and remove class + var cssReset = {}; + if (this.options.syncPosition) { + cssReset.left = ''; + } + if (this.options.syncSize) { + cssReset.width = ''; + } + if (this.options.style) { + cssReset.position = ''; + cssReset.top = ''; + } + $(this.element) + .css(cssReset) + .removeClass(this.options.fixClass) + ; + + // update state + this.fixed = false; + + // dispatch event + this.dispatchEvent('unfixed'); + } + }, + + /** + * Attach the watcher + */ + attach: function () { + if (!this.attached) { + var that = this; + + this.updateEventHandler = function () { + that.pulse(); + }; + + $(window) + .scroll(this.updateEventHandler) + .resize(this.updateEventHandler) + ; + + this.attached = true; + this.pulse(); + } + }, + + /** + * Detach the watcher + */ + detach: function () { + if (this.attached) { + this.unfix(); + + $(window) + .unbind('scroll', this.updateEventHandler) + .unbind('resize', this.updateEventHandler) + ; + + this.attached = false; + } + }, + + /** + * Pulse the watcher + */ + pulse: function () { + var currentScroll = $(window).scrollTop(); + + if (this.fixed) { + if ( + currentScroll <= this.getElementY(this.substitute) + this.options.unfixOffset + && !this.dispatchEvent('unfix').isDefaultPrevented() + ) { + this.unfix(); + } else { + this.updateFixed(); + } + } else { + if ( + currentScroll >= this.getElementY(this.element) + this.options.fixOffset + && !this.dispatchEvent('fix').isDefaultPrevented() + ) { + this.fix(); + this.updateFixed(); + } + } + }, + + /** + * Dispatch an event + * + * @private + * + * @param {String} type + * @returns {jQuery.Event} + */ + dispatchEvent: function (type) { + var event = new $.Event(type + '.shira.scrollfix', { + watcher: this + }); + + $(this.element).trigger(event); + + return event; + } + }; + + // jQuery methods + + /** + * Attach a watcher to the matched element + * + * @param {Object} options watcher option map + * @returns {jQuery} + */ + $.fn.scrollFix = function (options) { + if (this.length > 0) { + new ScrollFix.Watcher(this[0], options).attach(); + } + + return this; + }; + })(Shira.ScrollFix || (Shira.ScrollFix = {})); +})(Shira || (Shira = {}), jQuery); diff --git a/wp-content/themes/milo/assets/js/submit/jquery.form.min.js b/wp-content/themes/milo/assets/js/submit/jquery.form.min.js new file mode 100644 index 0000000..7321a3b --- /dev/null +++ b/wp-content/themes/milo/assets/js/submit/jquery.form.min.js @@ -0,0 +1,11 @@ +/*! + * jQuery Form Plugin + * version: 3.51.0-2014.06.20 + * Requires jQuery v1.5 or later + * Copyright (c) 2014 M. Alsup + * Examples and documentation at: http://malsup.com/jquery/form/ + * Project repository: https://github.com/malsup/form + * Dual licensed under the MIT and GPL licenses. + * https://github.com/malsup/form#copyright-and-license + */ +!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e("undefined"!=typeof jQuery?jQuery:window.Zepto)}(function(e){"use strict";function t(t){var r=t.data;t.isDefaultPrevented()||(t.preventDefault(),e(t.target).ajaxSubmit(r))}function r(t){var r=t.target,a=e(r);if(!a.is("[type=submit],[type=image]")){var n=a.closest("[type=submit]");if(0===n.length)return;r=n[0]}var i=this;if(i.clk=r,"image"==r.type)if(void 0!==t.offsetX)i.clk_x=t.offsetX,i.clk_y=t.offsetY;else if("function"==typeof e.fn.offset){var o=a.offset();i.clk_x=t.pageX-o.left,i.clk_y=t.pageY-o.top}else i.clk_x=t.pageX-r.offsetLeft,i.clk_y=t.pageY-r.offsetTop;setTimeout(function(){i.clk=i.clk_x=i.clk_y=null},100)}function a(){if(e.fn.ajaxSubmit.debug){var t="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(t):window.opera&&window.opera.postError&&window.opera.postError(t)}}var n={};n.fileapi=void 0!==e("").get(0).files,n.formdata=void 0!==window.FormData;var i=!!e.fn.prop;e.fn.attr2=function(){if(!i)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},e.fn.ajaxSubmit=function(t){function r(r){var a,n,i=e.param(r,t.traditional).split("&"),o=i.length,s=[];for(a=0;o>a;a++)i[a]=i[a].replace(/\+/g," "),n=i[a].split("="),s.push([decodeURIComponent(n[0]),decodeURIComponent(n[1])]);return s}function o(a){for(var n=new FormData,i=0;i').val(m.extraData[d].value).appendTo(w)[0]:e('').val(m.extraData[d]).appendTo(w)[0]);m.iframeTarget||v.appendTo("body"),g.attachEvent?g.attachEvent("onload",s):g.addEventListener("load",s,!1),setTimeout(t,15);try{w.submit()}catch(h){var x=document.createElement("form").submit;x.apply(w)}}finally{w.setAttribute("action",i),w.setAttribute("enctype",c),r?w.setAttribute("target",r):f.removeAttr("target"),e(l).remove()}}function s(t){if(!x.aborted&&!F){if(M=n(g),M||(a("cannot access response document"),t=k),t===D&&x)return x.abort("timeout"),void S.reject(x,"timeout");if(t==k&&x)return x.abort("server abort"),void S.reject(x,"error","server abort");if(M&&M.location.href!=m.iframeSrc||T){g.detachEvent?g.detachEvent("onload",s):g.removeEventListener("load",s,!1);var r,i="success";try{if(T)throw"timeout";var o="xml"==m.dataType||M.XMLDocument||e.isXMLDoc(M);if(a("isXml="+o),!o&&window.opera&&(null===M.body||!M.body.innerHTML)&&--O)return a("requeing onLoad callback, DOM not available"),void setTimeout(s,250);var u=M.body?M.body:M.documentElement;x.responseText=u?u.innerHTML:null,x.responseXML=M.XMLDocument?M.XMLDocument:M,o&&(m.dataType="xml"),x.getResponseHeader=function(e){var t={"content-type":m.dataType};return t[e.toLowerCase()]},u&&(x.status=Number(u.getAttribute("status"))||x.status,x.statusText=u.getAttribute("statusText")||x.statusText);var c=(m.dataType||"").toLowerCase(),l=/(json|script|text)/.test(c);if(l||m.textarea){var f=M.getElementsByTagName("textarea")[0];if(f)x.responseText=f.value,x.status=Number(f.getAttribute("status"))||x.status,x.statusText=f.getAttribute("statusText")||x.statusText;else if(l){var p=M.getElementsByTagName("pre")[0],h=M.getElementsByTagName("body")[0];p?x.responseText=p.textContent?p.textContent:p.innerText:h&&(x.responseText=h.textContent?h.textContent:h.innerText)}}else"xml"==c&&!x.responseXML&&x.responseText&&(x.responseXML=X(x.responseText));try{E=_(x,c,m)}catch(y){i="parsererror",x.error=r=y||i}}catch(y){a("error caught: ",y),i="error",x.error=r=y||i}x.aborted&&(a("upload aborted"),i=null),x.status&&(i=x.status>=200&&x.status<300||304===x.status?"success":"error"),"success"===i?(m.success&&m.success.call(m.context,E,"success",x),S.resolve(x.responseText,"success",x),d&&e.event.trigger("ajaxSuccess",[x,m])):i&&(void 0===r&&(r=x.statusText),m.error&&m.error.call(m.context,x,i,r),S.reject(x,"error",r),d&&e.event.trigger("ajaxError",[x,m,r])),d&&e.event.trigger("ajaxComplete",[x,m]),d&&!--e.active&&e.event.trigger("ajaxStop"),m.complete&&m.complete.call(m.context,x,i),F=!0,m.timeout&&clearTimeout(j),setTimeout(function(){m.iframeTarget?v.attr("src",m.iframeSrc):v.remove(),x.responseXML=null},100)}}}var c,l,m,d,p,v,g,x,y,b,T,j,w=f[0],S=e.Deferred();if(S.abort=function(e){x.abort(e)},r)for(l=0;l'),v.css({position:"absolute",top:"-1000px",left:"-1000px"})),g=v[0],x={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(t){var r="timeout"===t?"timeout":"aborted";a("aborting upload... "+r),this.aborted=1;try{g.contentWindow.document.execCommand&&g.contentWindow.document.execCommand("Stop")}catch(n){}v.attr("src",m.iframeSrc),x.error=r,m.error&&m.error.call(m.context,x,r,t),d&&e.event.trigger("ajaxError",[x,m,r]),m.complete&&m.complete.call(m.context,x,r)}},d=m.global,d&&0===e.active++&&e.event.trigger("ajaxStart"),d&&e.event.trigger("ajaxSend",[x,m]),m.beforeSend&&m.beforeSend.call(m.context,x,m)===!1)return m.global&&e.active--,S.reject(),S;if(x.aborted)return S.reject(),S;y=w.clk,y&&(b=y.name,b&&!y.disabled&&(m.extraData=m.extraData||{},m.extraData[b]=y.value,"image"==y.type&&(m.extraData[b+".x"]=w.clk_x,m.extraData[b+".y"]=w.clk_y)));var D=1,k=2,A=e("meta[name=csrf-token]").attr("content"),L=e("meta[name=csrf-param]").attr("content");L&&A&&(m.extraData=m.extraData||{},m.extraData[L]=A),m.forceSync?o():setTimeout(o,10);var E,M,F,O=50,X=e.parseXML||function(e,t){return window.ActiveXObject?(t=new ActiveXObject("Microsoft.XMLDOM"),t.async="false",t.loadXML(e)):t=(new DOMParser).parseFromString(e,"text/xml"),t&&t.documentElement&&"parsererror"!=t.documentElement.nodeName?t:null},C=e.parseJSON||function(e){return window.eval("("+e+")")},_=function(t,r,a){var n=t.getResponseHeader("content-type")||"",i="xml"===r||!r&&n.indexOf("xml")>=0,o=i?t.responseXML:t.responseText;return i&&"parsererror"===o.documentElement.nodeName&&e.error&&e.error("parsererror"),a&&a.dataFilter&&(o=a.dataFilter(o,r)),"string"==typeof o&&("json"===r||!r&&n.indexOf("json")>=0?o=C(o):("script"===r||!r&&n.indexOf("javascript")>=0)&&e.globalEval(o)),o};return S}if(!this.length)return a("ajaxSubmit: skipping submit process - no element selected"),this;var u,c,l,f=this;"function"==typeof t?t={success:t}:void 0===t&&(t={}),u=t.type||this.attr2("method"),c=t.url||this.attr2("action"),l="string"==typeof c?e.trim(c):"",l=l||window.location.href||"",l&&(l=(l.match(/^([^#]+)/)||[])[1]),t=e.extend(!0,{url:l,success:e.ajaxSettings.success,type:u||e.ajaxSettings.type,iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},t);var m={};if(this.trigger("form-pre-serialize",[this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(t.beforeSerialize&&t.beforeSerialize(this,t)===!1)return a("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var d=t.traditional;void 0===d&&(d=e.ajaxSettings.traditional);var p,h=[],v=this.formToArray(t.semantic,h);if(t.data&&(t.extraData=t.data,p=e.param(t.data,d)),t.beforeSubmit&&t.beforeSubmit(v,this,t)===!1)return a("ajaxSubmit: submit aborted via beforeSubmit callback"),this;if(this.trigger("form-submit-validate",[v,this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var g=e.param(v,d);p&&(g=g?g+"&"+p:p),"GET"==t.type.toUpperCase()?(t.url+=(t.url.indexOf("?")>=0?"&":"?")+g,t.data=null):t.data=g;var x=[];if(t.resetForm&&x.push(function(){f.resetForm()}),t.clearForm&&x.push(function(){f.clearForm(t.includeHidden)}),!t.dataType&&t.target){var y=t.success||function(){};x.push(function(r){var a=t.replaceTarget?"replaceWith":"html";e(t.target)[a](r).each(y,arguments)})}else t.success&&x.push(t.success);if(t.success=function(e,r,a){for(var n=t.context||this,i=0,o=x.length;o>i;i++)x[i].apply(n,[e,r,a||f,f])},t.error){var b=t.error;t.error=function(e,r,a){var n=t.context||this;b.apply(n,[e,r,a,f])}}if(t.complete){var T=t.complete;t.complete=function(e,r){var a=t.context||this;T.apply(a,[e,r,f])}}var j=e("input[type=file]:enabled",this).filter(function(){return""!==e(this).val()}),w=j.length>0,S="multipart/form-data",D=f.attr("enctype")==S||f.attr("encoding")==S,k=n.fileapi&&n.formdata;a("fileAPI :"+k);var A,L=(w||D)&&!k;t.iframe!==!1&&(t.iframe||L)?t.closeKeepAlive?e.get(t.closeKeepAlive,function(){A=s(v)}):A=s(v):A=(w||D)&&k?o(v):e.ajax(t),f.removeData("jqxhr").data("jqxhr",A);for(var E=0;Ec;c++)if(d=u[c],f=d.name,f&&!d.disabled)if(t&&o.clk&&"image"==d.type)o.clk==d&&(a.push({name:f,value:e(d).val(),type:d.type}),a.push({name:f+".x",value:o.clk_x},{name:f+".y",value:o.clk_y}));else if(m=e.fieldValue(d,!0),m&&m.constructor==Array)for(r&&r.push(d),l=0,h=m.length;h>l;l++)a.push({name:f,value:m[l]});else if(n.fileapi&&"file"==d.type){r&&r.push(d);var v=d.files;if(v.length)for(l=0;li;i++)r.push({name:a,value:n[i]});else null!==n&&"undefined"!=typeof n&&r.push({name:this.name,value:n})}}),e.param(r)},e.fn.fieldValue=function(t){for(var r=[],a=0,n=this.length;n>a;a++){var i=this[a],o=e.fieldValue(i,t);null===o||"undefined"==typeof o||o.constructor==Array&&!o.length||(o.constructor==Array?e.merge(r,o):r.push(o))}return r},e.fieldValue=function(t,r){var a=t.name,n=t.type,i=t.tagName.toLowerCase();if(void 0===r&&(r=!0),r&&(!a||t.disabled||"reset"==n||"button"==n||("checkbox"==n||"radio"==n)&&!t.checked||("submit"==n||"image"==n)&&t.form&&t.form.clk!=t||"select"==i&&-1==t.selectedIndex))return null;if("select"==i){var o=t.selectedIndex;if(0>o)return null;for(var s=[],u=t.options,c="select-one"==n,l=c?o+1:u.length,f=c?o:0;l>f;f++){var m=u[f];if(m.selected){var d=m.value;if(d||(d=m.attributes&&m.attributes.value&&!m.attributes.value.specified?m.text:m.value),c)return d;s.push(d)}}return s}return e(t).val()},e.fn.clearForm=function(t){return this.each(function(){e("input,select,textarea",this).clearFields(t)})},e.fn.clearFields=e.fn.clearInputs=function(t){var r=/^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;return this.each(function(){var a=this.type,n=this.tagName.toLowerCase();r.test(a)||"textarea"==n?this.value="":"checkbox"==a||"radio"==a?this.checked=!1:"select"==n?this.selectedIndex=-1:"file"==a?/MSIE/.test(navigator.userAgent)?e(this).replaceWith(e(this).clone(!0)):e(this).val(""):t&&(t===!0&&/hidden/.test(a)||"string"==typeof t&&e(this).is(t))&&(this.value="")})},e.fn.resetForm=function(){return this.each(function(){("function"==typeof this.reset||"object"==typeof this.reset&&!this.reset.nodeType)&&this.reset()})},e.fn.enable=function(e){return void 0===e&&(e=!0),this.each(function(){this.disabled=!e})},e.fn.selected=function(t){return void 0===t&&(t=!0),this.each(function(){var r=this.type;if("checkbox"==r||"radio"==r)this.checked=t;else if("option"==this.tagName.toLowerCase()){var a=e(this).parent("select");t&&a[0]&&"select-one"==a[0].type&&a.find("option").selected(!1),this.selected=t}})},e.fn.ajaxSubmit.debug=!1}); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/twitter/twitterfetcher.js b/wp-content/themes/milo/assets/js/twitter/twitterfetcher.js new file mode 100644 index 0000000..ed351e4 --- /dev/null +++ b/wp-content/themes/milo/assets/js/twitter/twitterfetcher.js @@ -0,0 +1,56 @@ +///********************************************************************* +//* #### Twitter Post Fetcher v10.0 #### +//* Coded by Jason Mayes 2013. A present to all the developers out there. +//* www.jasonmayes.com +//* Please keep this disclaimer with my code if you use it. Thanks. :-) +//* Got feedback or questions, ask here: +//* http://www.jasonmayes.com/projects/twitterApi/ +//* Updates will be posted to this site. +//*********************************************************************/ +//var twitterFetcher=function(){function x(e){return e.replace(/]*>(.*?)<\/b>/gi,function(c,e){return e}).replace(/class=".*?"|data-query-source=".*?"|dir=".*?"|rel=".*?"/gi,"")}function p(e,c){for(var g=[],f=RegExp("(^| )"+c+"( |$)"),a=e.getElementsByTagName("*"),h=0,d=a.length;hl&&(e.splice(l,e.length-l),g.splice(l,g.length-l),f.splice(l,f.length-l),a.splice(l,a.length-l));c=[];d=e.length;for(a=0;a'+x(g[a].innerHTML)+"
    "),b+='

    '+x(e[a].innerHTML)+"

    ",q&&(b+='

    '+f[a].getAttribute("aria-label")+"

    ")):e[a].innerText?(r&&(b+='

    '+g[a].innerText+"

    "),b+='

    '+e[a].innerText+ +//"

    ",q&&(b+='

    '+f[a].innerText+"

    ")):(r&&(b+='

    '+g[a].textContent+"

    "),b+='

    '+e[a].textContent+"

    ",q&&(b+='

    '+f[a].textContent+"

    "));A&&(b+='

    ');c.push(b);a++}if(null==w){e=c.length;g=0;f=document.getElementById(y);for(h="
      ";g"+c[g]+"",g++;f.innerHTML=h+"
    "}else w(c);t=!1;0 0) { +// twitterFetcher.fetch('577947334656548864', '', 3, true, false, false, '', false, handleTweets); +//} +// +//function handleTweets(tweets) { +// +// var x = tweets.length; +// var n = 0; +// var element = document.getElementById('tweet'); +// var html = '
      '; +// +// while(n < x) { +// html += '
    • ' + tweets[n] + '
    • '; +// n++; +// } +// +// html += '
    '; +// element.innerHTML = html; +// +// /* Twitter Slider */ + + jQuery('#tweet ul').bxSlider({ + mode: 'vertical', + speed: 500, + infiniteLoop: true, + hideControlOnEnd: false, + pager: false, + pagerType: 'full', + controls: true, + auto: true, + pause: 4000, + autoHover: true, + useCSS: false, + nextSelector: '#twitter-slider-next', + prevSelector: '#twitter-slider-prev', + nextText: '', + prevText: '' + }); +//} \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/validate/jquery.validate.min.js b/wp-content/themes/milo/assets/js/validate/jquery.validate.min.js new file mode 100644 index 0000000..3a8cdb2 --- /dev/null +++ b/wp-content/themes/milo/assets/js/validate/jquery.validate.min.js @@ -0,0 +1,4 @@ +/*! jQuery Validation Plugin - v1.13.1 - 10/14/2014 + * http://jqueryvalidation.org/ + * Copyright (c) 2014 Jörn Zaefferer; Licensed MIT */ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.validateDelegate(":submit","click",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(b.target).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(b.target).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.submit(function(b){function d(){var d,e;return c.settings.submitHandler?(c.submitButton&&(d=a("").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),e=c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),void 0!==e?e:!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c;return a(this[0]).is("form")?b=this.validate().form():(b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b})),b},removeAttrs:function(b){var c={},d=this;return a.each(b.split(/\s/),function(a,b){c[b]=d.attr(b),d.removeAttr(b)}),c},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){return!!a.trim(""+a(b).val())},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(a,b){(9!==b.which||""!==this.elementValue(a))&&(a.name in this.submitted||a===this.lastElement)&&this.element(a)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this[0].form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!this.is(e.ignore)&&e[d].call(c,this[0],b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).validateDelegate(":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']","focusin focusout keyup",b).validateDelegate("select, option, [type='radio'], [type='checkbox']","click",b),this.settings.invalidHandler&&a(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c=this.clean(b),d=this.validationTargetFor(c),e=!0;return this.lastElement=d,void 0===d?delete this.invalid[c.name]:(this.prepareElement(d),this.currentElements=a(d),e=this.check(d)!==!1,e?delete this.invalid[d.name]:this.invalid[d.name]=!0),a(b).attr("aria-invalid",!e),this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),e},showErrors:function(b){if(b){a.extend(this.errorMap,b),this.errorList=[];for(var c in b)this.errorList.push({message:b[c],element:this.findByName(c)[0]});this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors(),this.elements().removeClass(this.settings.errorClass).removeData("previousValue").removeAttr("aria-invalid")},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled], [readonly]").not(this.settings.ignore).filter(function(){return!this.name&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in c||!b.objectLength(a(this).rules())?!1:(c[this.name]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([]),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d=a(b),e=b.type;return"radio"===e||"checkbox"===e?a("input[name='"+b.name+"']:checked").val():"number"===e&&"undefined"!=typeof b.validity?b.validity.badInput?!1:d.val():(c=d.val(),"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;aWarning: No message defined for "+b.name+"
    ")},formatAndAdd:function(b,c){var d=this.defaultMessage(b,c.method),e=/\$?\{(\d+)\}/g;"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),this.errorList.push({message:d,element:b,method:c.method}),this.errorMap[b.name]=d,this.submitted[b.name]=d},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g=this.errorsFor(b),h=this.idOrName(b),i=a(b).attr("aria-describedby");g.length?(g.removeClass(this.settings.validClass).addClass(this.settings.errorClass),g.html(c)):(g=a("<"+this.settings.errorElement+">").attr("id",h+"-error").addClass(this.settings.errorClass).html(c||""),d=g,this.settings.wrapper&&(d=g.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),g.is("label")?g.attr("for",h):0===g.parents("label[for='"+h+"']").length&&(f=g.attr("id").replace(/(:|\.|\[|\])/g,"\\$1"),i?i.match(new RegExp("\\b"+f+"\\b"))||(i+=" "+f):i=f,a(b).attr("aria-describedby",i),e=this.groups[b.name],e&&a.each(this.groups,function(b,c){c===e&&a("[name='"+b+"']",this.currentForm).attr("aria-describedby",g.attr("id"))}))),!c&&this.settings.success&&(g.text(""),"string"==typeof this.settings.success?g.addClass(this.settings.success):this.settings.success(g,b)),this.toShow=this.toShow.add(g)},errorsFor:function(b){var c=this.idOrName(b),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+d.replace(/\s+/g,", #")),this.errors().filter(e)},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+b+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(a){this.pending[a.name]||(this.pendingRequest++,this.pending[a.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,"remote")})}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),/min|max/.test(c)&&(null===g||/number|range|text/.test(g))&&(d=Number(d)),d||0===d?e[c]=d:g===c&&"range"!==g&&(e[c]=!0);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b);for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),void 0!==d&&(e[c]=d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:delete b[d]}}),a.each(b,function(d,e){b[d]=a.isFunction(e)?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:a.trim(b).length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d){if(this.optional(c))return"dependency-mismatch";var e,f,g=this.previousValue(c);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),g.originalMessage=this.settings.messages[c.name].remote,this.settings.messages[c.name].remote=g.message,d="string"==typeof d&&{url:d}||d,g.old===b?g.valid:(g.old=b,e=this,this.startRequest(c),f={},f[c.name]=b,a.ajax(a.extend(!0,{url:d,mode:"abort",port:"validate"+c.name,dataType:"json",data:f,context:e.currentForm,success:function(d){var f,h,i,j=d===!0||"true"===d;e.settings.messages[c.name].remote=g.originalMessage,j?(i=e.formSubmitted,e.prepareElement(c),e.formSubmitted=i,e.successList.push(c),delete e.invalid[c.name],e.showErrors()):(f={},h=d||e.defaultMessage(c,"remote"),f[c.name]=g.message=a.isFunction(h)?h(b):h,e.invalid[c.name]=!0,e.showErrors(f)),g.valid=j,e.stopRequest(c,j)}},d)),"pending")}}}),a.format=function(){throw"$.format has been deprecated. Please use $.validator.format instead."};var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)}),a.extend(a.fn,{validateDelegate:function(b,c,d){return this.bind(c,function(c){var e=a(c.target);return e.is(b)?d.apply(e,arguments):void 0})}})}); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/viewport/jquery.viewport.js b/wp-content/themes/milo/assets/js/viewport/jquery.viewport.js new file mode 100644 index 0000000..681ed7b --- /dev/null +++ b/wp-content/themes/milo/assets/js/viewport/jquery.viewport.js @@ -0,0 +1,13 @@ +/* + * Viewport - jQuery selectors for finding elements in viewport + * + * Copyright (c) 2008-2009 Mika Tuupola + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/mit-license.php + * + * Project home: + * http://www.appelsiini.net/projects/viewport + * + */ +(function($){$.belowthefold=function(element,settings){var fold=$(window).height()+$(window).scrollTop();return fold<=$(element).offset().top-settings.threshold;};$.abovethetop=function(element,settings){var top=$(window).scrollTop();return top>=$(element).offset().top+$(element).height()-settings.threshold;};$.rightofscreen=function(element,settings){var fold=$(window).width()+$(window).scrollLeft();return fold<=$(element).offset().left-settings.threshold;};$.leftofscreen=function(element,settings){var left=$(window).scrollLeft();return left>=$(element).offset().left+$(element).width()-settings.threshold;};$.inviewport=function(element,settings){return!$.rightofscreen(element,settings)&&!$.leftofscreen(element,settings)&&!$.belowthefold(element,settings)&&!$.abovethetop(element,settings);};$.extend($.expr[':'],{"below-the-fold":function(a,i,m){return $.belowthefold(a,{threshold:0});},"above-the-top":function(a,i,m){return $.abovethetop(a,{threshold:0});},"left-of-screen":function(a,i,m){return $.leftofscreen(a,{threshold:0});},"right-of-screen":function(a,i,m){return $.rightofscreen(a,{threshold:0});},"in-viewport":function(a,i,m){return $.inviewport(a,{threshold:0});}});})(jQuery); \ No newline at end of file diff --git a/wp-content/themes/milo/assets/js/ytplayer/css/YTPlayer.css b/wp-content/themes/milo/assets/js/ytplayer/css/YTPlayer.css new file mode 100644 index 0000000..e891bcb --- /dev/null +++ b/wp-content/themes/milo/assets/js/ytplayer/css/YTPlayer.css @@ -0,0 +1,246 @@ +/*___________________________________________________________________________________________________________________________________________________ + _ jquery.mb.components _ + _ _ + _ file: mb.YTPlayer.css _ + _ last modified: 19/08/14 19.57 _ + _ _ + _ Open Lab s.r.l., Florence - Italy _ + _ _ + _ email: matteo@open-lab.com _ + _ site: http://pupunzi.com _ + _ http://open-lab.com _ + _ blog: http://pupunzi.open-lab.com _ + _ Q&A: http://jquery.pupunzi.com _ + _ _ + _ Licences: MIT, GPL _ + _ http://www.opensource.org/licenses/mit-license.php _ + _ http://www.gnu.org/licenses/gpl.html _ + _ _ + _ Copyright (c) 2001-2014. Matteo Bicocchi (Pupunzi); _ + ___________________________________________________________________________________________________________________________________________________*/ + + +@charset"UTF-8"; + +@font-face { + font-family: 'ytpregular'; + src: url('ytp-regular.eot'); + src: url('ytp-regular.woff'); +} + +@font-face { + font-family: 'ytpregular'; + src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAA5sABEAAAAAFCAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABgAAAABwAAAAcZ9iuNUdERUYAAAGcAAAAHQAAACAAdAAET1MvMgAAAbwAAABJAAAAYHUMUrFjbWFwAAACCAAAAKkAAAGKn5XycWN2dCAAAAK0AAAANgAAADYNLQohZnBnbQAAAuwAAAGxAAACZVO0L6dnYXNwAAAEoAAAAAgAAAAIAAAAEGdseWYAAASoAAAGVQAAB4jz86dSaGVhZAAACwAAAAAzAAAANgbKONpoaGVhAAALNAAAACAAAAAkESQLXGhtdHgAAAtUAAAAVAAAARxOmwVwbG9jYQAAC6gAAAAjAAAAkFoEXRRtYXhwAAALzAAAACAAAAAgAWoB625hbWUAAAvsAAAA+wAAAeok3Eb+cG9zdAAADOgAAADAAAABN99tv1lwcmVwAAANqAAAALkAAAFY3I6ikndlYmYAAA5kAAAABgAAAAbHMlGnAAAAAQAAAADMPaLPAAAAAM3Nk7QAAAAAzc13sXjaY2BkYGDgA2IJBhBgYmAEQjcgZgHzGAAHTAB5AAAAeNpjYGbZwDiBgZWBhdWY5SwDA8MsCM10liGNKQ3IB0rBASMDEgj1DvdjcGDgfcDAlvYPqJJVldEZpoZVkuUZkFJgYAQAUUULewAAAHjaY2BgYGaAYBkGRgYQaAHyGMF8FoYMIC3GIAAUYQOyeBkUGKIYqhgWKHAp6CvEP2D4/x+sAyTuyJAIFGeAizP+//r/8f/D//f+n/HA8oHo/WcKblDzsQBGoOkwSUYmIMGErgDiRLyAhZWNnYOTi5uHl49fQFBIWERUTFxCUkpaRhYiLyevoKikrKKqpq6hqaWto6unb2BoZGxiambOQF1gQZYuAIQnH4IAAAAAAAAAAAABegEnAHEAswC9AOAA5QD+ARcBIwBdAHIBtgBcAGAAZgByAI8AogErAbIAUwBEBREAAHjaXVG7TltBEN0NDwOBxNggOdoUs5mQxnuhBQnE1Y1iZDuF5QhpN3KRi3EBH0CBRA3arxmgoaRImwYhF0h8Qj4hEjNriKI0Ozuzc86ZM0vKkap36WvPU+ckkMLdBs02/U5ItbMA96Tr642MtIMHWmxm9Mp1+/4LBpvRlDtqAOU9bykPGU07gVq0p/7R/AqG+/wf8zsYtDTT9NQ6CekhBOabcUuD7xnNussP+oLV4WIwMKSYpuIuP6ZS/rc052rLsLWR0byDMxH5yTRAU2ttBJr+1CHV83EUS5DLprE2mJiy/iQTwYXJdFVTtcz42sFdsrPoYIMqzYEH2MNWeQweDg8mFNK3JMosDRH2YqvECBGTHAo55dzJ/qRA+UgSxrxJSjvjhrUGxpHXwKA2T7P/PJtNbW8dwvhZHMF3vxlLOvjIhtoYEWI7YimACURCRlX5hhrPvSwG5FL7z0CUgOXxj3+dCLTu2EQ8l7V1DjFWCHp+29zyy4q7VrnOi0J3b6pqqNIpzftezr7HA54eC8NBY8Gbz/v+SoH6PCyuNGgOBEN6N3r/orXqiKu8Fz6yJ9O/sVoAAAAAAQAB//8AD3jaTZVrbBxXFcfvufNe72Nmdx77tmfHO2N76117784OTr154YAbR7RQuUQhttoSuXZKFQVKKYqgiFJAgkpIkVClIn8opSomjXY3VHHTFldEIYpay1hR+ID4Bha27FoIEQGpd8Idu4lY7c6eOfee//2f3+zeizAaQwif4iYRgwRUbgGqjLYFNvVxtcVzfxltM5iGqMUEaS5ItwU+vTPahiBPFFMpmoo5hnv8XnjFn+Um7/xmjF1GCLHoPf+fgsUVEYcSKIcGkYbaWYxKLZ3bgGa50qpACQ0NeyYoYILaDTqpurUK2FZBUYlJY8ukEc0egLpbo+kY8O/BQcx2dvwP2Fh6/Q+Gl19fyroubHmer7rpjHllPZ/NKB+tp2/4/TzxSx0zo/74uUY29vJZOEHIfng4lzz7cjyXzn/jJwqCwCOLdj2iPSP3F/hUAHF3v+Cviee5DIqhJDLRACLoPGpHECq1M7Sd5iDZ/W6zQW8mu9Ecql7SI6xYaiOpnxCydwPNWqWJ/tSSjY1mqtqU5ZYNpWal2pJiGy0XSi1bVuKX1Fyh1GuMoJYeUeJvy/GEVbTpfTOjHJRVzUim0tlcwekbKD1QrgR5M97OV8nIyMjQsKPUEKWGNEVFFBwqEs/yHMEVFMM1PIc4FhiWQVxHcxjD0zzXEkgbmHe5G1eA9T955453xd+B9tbpi6vj10+fvj6+evH0Fju7vPDU5szVY8euzmw+tXABv7kEov/v33WOv+v/C8LG9M2xD19/EquzCyuHVuY6R25Obz35+odw4NDKwuzWHAK86q9x21wKYYQkjFeZ3M5f/TUmw6Qo12P+38Wf0zEZpVABlVANfQu1owHXXMD1AdIyQhvNgeou2b1LAuhAkVwyExRps/ppAE230qrTX1MrEVXil5W4qlm9thMAMpR2MtVHAbXMnBJvZ8oVGjdZ5XK6u6cwNExqdNJ9dnm4D+8eIeYeM7hH0b3H9bcQuczdeH75ef+TxTveO/5tuDK2Mrs5d+HmzQtzm7MrbP6ZqxMrrz2+vf34aysTV5+5iN9YhMi51W93Tiz5/wFp+ujy/MntGXx+dfrjqflrO788Ob989MaMP716+Nr8FOpCjbvnw032BUrm82gKfQc10SJaAwwZGINHEUrksaEndI3XCppBavWaU7Nrda/u7QfPsnmBF1ReK4NjCxbkgVRJdW/MdmiyjHkhCgKvGkrNq+uGngPLUDXVioJTcGxONWguENOIYmkq1lQqaDu2q1AqKi6qRh6CN0uqhlkn1WIwt1Z3FTqH6lt2kWLkqZpQ2F1H4D3X1CzFUkCp1R8EVaeKGr3mgXpyd3OKZTcgioMi3qImqA2FaFSYrkHd7BYESnSMdqAx1HNgg/6pG0Bo95RAGehqoNAuaRHR90wGdXyJtkAJ1DxSDVQCfS8ocui+EohqagNjFroniyLAOYbBgvSQxuXxiUSCGQXReJBnjafhbf6xBs8P9ZclLLJdTJfdL3bLRsgd50Nf52P7JIWjInYqFuZhUGErucF0Qj/zNJtPGArDz7EYFi0chvSpw8C/mJRgRVLfgrEf7RvowhyjJ3JPfPlX/h8N/6fZryX7bh/pJsPj4QLX9Ra89NL3QQkljmOqnognU6HcxKkoI/JsaJ8cDcfCqZAMC2cfFeSoHu+WFEmWzIQqx8PVmCThSFqPKqLIsgxJx0QYZt1iocjgfrPbjIoiltkXxzxTlE5FVTL1zb7YmTOSzXGiEBU0ZgHzXexjd9HklDtTc2P7iR4/Wmqk/jGhfZXjZW1bYFVp3y01G+ocrh/K9VST3+05OUsaEnAYGKZRfWIpDQaXT2Ej2/vCl1S5nNe7jHq5eCAlM7rOpFx8PP1Zf/NzCUdkpXjUhHmdfdi/Xv31D6WccPAIDjNMmPnBzC+ErAipZzPf++LkQyGRhTDEpCNkbmLpz8892zmE3+8swq1YODIqf2Z7lO8RdJHn7RS8kpY6r0qhAg7xXIHnhViu+zBDbhcx16UOfGVgaGkoXe6LhwS+h7NgSa+vR7ESZvPyq6VUqN+SC0ZSTPm3oETGoxGIh/p60w3naIyJ/Gywf9CMnnAemR3524hT5DErxOwBhR55COMw3e+u0T0tOEsR0JMx+NBHftD/AJ+D/f7v/TW+9t+P+Bo9e/7vNYz+By6FsKkAAAB42mNgZGBgYGRwbI8IWhzPb/OVQZ6DAQTOni3fCKP/+/x7yrOBNRTI5WBgAokCAG3mDbAAeNpjYGRgYFX9t5eBgeftf5//WTwbGIAiKMAdAJycBph42mN6w+DCwcDAAMIsZ8D0HhBNLIap52D478fBwHQRyvbBpZ7nLYMtKeZjt5OJhxT1TKsYGFhDETTjcSAG0gyPoRgozigIpL0hNEiOBcgFAEBoNC142mNgYNCBwjoccALDBEY9RhsgPIMMmZcRhHtIhkcA9pQspAAAAQAAAEcBVAALAAAAAAACAAEAAgAWAAABAACTAAAAAHjalZCxTgJBFEXPApJoYYgF9VZUSIAFTdDCnmiIgsTKsASQuGiCu0YaCr4OfomKOzsTCHRmMzPn3blz38sCFyzJ4uXOgbKWZY+8KssZLqk7zkp9cJyjSOT4jD9WjvPSt46vKHoFx2txyfGGqnfPO18kyohSGjBjJPqRFmqPmWolWkZ9o0uHZ/EkfTNgTo0KVX017ujRps+TyDqvT7xW9U/UV1Vz9ZryrQn8o8QOL1JsdVA/5IwZpv7f/YsKTW50O1PqpzKNZyw1UnKov2c9dbkD7c1/zdhXFSrNdIz3HbuaJFH1KM9CZyDN3N3SoiFupfP66mbOYAd8k0EGAHjabc05TwJhHITxZ0BBBc/P4IkI7y4sh0dBsosHKiqHeLUiiTE0FH56Xdl/6TS/ZIoZUszzM+ad/3IOSilNmm122GWPfQ4ocEiRI0qUcXj4VKgSUKNOgybHnHDKGSER7Xjjgkuu6HDNDbd0ueOeB3r0GTDkkRFPPPPCK29a0KIyympJy1pRTnmtak3r2tCmtjLjz+/ph5edfU2cc2Fiy/3px4Xpmb5ZMatmYNbMutkwm2Yr0W8nBnOj+OcXVDk0PnjaRc67DoJAEAVQFuT9fqsJCSZ2+w12QkNjrCCx9w+sbSy19DsGK/9Ob3RZujk3k7nzZp8bsbvSkXXoR8Yew9gavN9QNHSUHTFch4oMfuoV0uqGNL4nv25emq3yHzzADwVcwOsFHMCtBWzAWQlYgJ0ImIA1rRmAeRbQAWM6vQD04A9GgXglRBo4Kh+19gJGYDgzBqOnZALGO8kUTLaSGZhWkjmYrSULMA8kS7CYi5ZgKTlQxr/W1F5aAAAAAAFRp8cxAAA=) format('woff'), + url('ytp-regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; + +} +.mb_YTPlayer :focus { + outline: 0; +} + +.mb_YTPlayer{ + display:block; + transform:translateZ(0); + transform-style: preserve-3d; + perspective: 1000; + backface-visibility: hidden; + transform:translate3d(0,0,0); + animation-timing-function: linear; + box-sizing: border-box; +} + +.mb_YTPlayer.fullscreen{ + display:block!important; + position: fixed!important; + width: 100%!important; + height: 100%!important; + top: 0!important; + left: 0!important; + margin: 0!important; + border: none !important; +} + +.mb_YTPlayer.fullscreen .mbYTP_wrapper{ + opacity:1 !important; +} + +.mbYTP_wrapper iframe { + max-width: 4000px !important; +} + +.inline_YTPlayer{ + margin-bottom: 20px; + vertical-align:top; + position:relative; + left:0; + overflow: hidden; + border-radius: 4px; + box-shadow: 0 0 5px rgba(0,0,0,.7); + background: rgba(0,0,0,.5); +} + +.inline_YTPlayer img{ + border: none!important; + margin:0!important; + padding:0!important; + -moz-transform: none!important; + -webkit-transform: none!important; + -o-transform: none!important; + transform: none!important; +} + +/*CONTROL BAR*/ + +.mb_YTPBar .ytpicon{ + font-size: 20px; + font-family: 'ytpregular'; +} + +.mb_YTPBar .mb_YTPUrl.ytpicon{ + font-size: 30px; +} + +.mb_YTPBar{ + transition: opacity 1s; + -moz-transition: opacity 1s; + -webkit-transition: opacity 1s; + -o-transition: opacity 1s; + display:block; + width:100%; + height:10px; + padding:5px; + background:#333; + position:fixed; + bottom:0; + left:0; + -moz-box-sizing:padding-box; + -webkit-box-sizing:border-box; + text-align:left; + z-index: 1000; + font: 14px/16px sans-serif; + color:white; + opacity:.1; +} + +.mb_YTPBar.visible, .mb_YTPBar:hover{ + opacity:1; +} + +.mb_YTPBar .buttonBar{ + -moz-transition: all 1s; + -webkit-transition: all 1s; + -o-transition: all 1s; + transition: all 1s; + background:transparent; + font:12px/14px Calibri; + position:absolute; + top:-30px; + left:0; + padding: 5px; + width:100%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -o-box-sizing: border-box; + box-sizing: border-box; +} + +.mb_YTPBar:hover .buttonBar{ + background: rgba(0,0,0,0.4); +} + +.mb_YTPBar span{ + display:inline-block; + font:16px/20px Calibri, sans-serif; + position:relative; + width: 30px; + height: 25px; + vertical-align: middle; +} + +.mb_YTPBar span.mb_YTPTime{ + width: 130px; +} + +.mb_YTPBar span.mb_YTPUrl,.mb_YTPBar span.mb_OnlyYT { + position: absolute; + width: auto; + display:block; + top:6px; + right:10px; + cursor: pointer; +} + +.mb_YTPBar span.mb_YTPUrl img{ + width: 60px; +} + +.mb_YTPBar span.mb_OnlyYT { + left:185px; + right: auto; +} +.mb_YTPBar span.mb_OnlyYT img{ + width: 25px; +} + +.mb_YTPBar span.mb_YTPUrl a{ + color:white; +} + +.mb_YTPPlaypause,.mb_YTPlayer .mb_YTPPlaypause img{ + cursor:pointer; +} + +.mb_YTPMuteUnmute{ + cursor:pointer; +} + +/*PROGRESS BAR*/ +.mb_YTPProgress{ + height:10px; + width:100%; + background:#222; + bottom:0; + left:0; +} + +.mb_YTPLoaded{ + height:10px; + width:0; + background:#444; + left:0; +} + +.mb_YTPseekbar{ + height:10px; + width:0; + background:#fff; + bottom:0; + left:0; + box-shadow: rgba(82, 82, 82, 0.47) 1px 1px 3px; +} + +.YTPOverlay{ + backface-visibility: hidden; + -webkit-backface-visibility: hidden; + -webkit-transform-style: "flat"; + box-sizing: border-box; +} + +/*RASTER OVERLAY*/ +.YTPOverlay.raster{ + background: url("../images/raster.png"); +} + +.YTPOverlay.raster.retina{ + background: url("../images/raster@2x.png"); +} + +.YTPOverlay.raster-dot{ + background: url("../images/raster_dot.png"); +} + +.YTPOverlay.raster-dot.retina{ + background: url("../images/raster_dot@2x.png"); +} diff --git a/wp-content/themes/milo/assets/js/ytplayer/css/ytp-regular.eot b/wp-content/themes/milo/assets/js/ytplayer/css/ytp-regular.eot new file mode 100644 index 0000000..ddd5c6c Binary files /dev/null and b/wp-content/themes/milo/assets/js/ytplayer/css/ytp-regular.eot differ diff --git a/wp-content/themes/milo/assets/js/ytplayer/css/ytp-regular.ttf b/wp-content/themes/milo/assets/js/ytplayer/css/ytp-regular.ttf new file mode 100644 index 0000000..ac54763 Binary files /dev/null and b/wp-content/themes/milo/assets/js/ytplayer/css/ytp-regular.ttf differ diff --git a/wp-content/themes/milo/assets/js/ytplayer/css/ytp-regular.woff b/wp-content/themes/milo/assets/js/ytplayer/css/ytp-regular.woff new file mode 100644 index 0000000..baf0d6f Binary files /dev/null and b/wp-content/themes/milo/assets/js/ytplayer/css/ytp-regular.woff differ diff --git a/wp-content/themes/milo/assets/js/ytplayer/images/raster.png b/wp-content/themes/milo/assets/js/ytplayer/images/raster.png new file mode 100644 index 0000000..a2ef4e9 Binary files /dev/null and b/wp-content/themes/milo/assets/js/ytplayer/images/raster.png differ diff --git a/wp-content/themes/milo/assets/js/ytplayer/images/raster_2x.png b/wp-content/themes/milo/assets/js/ytplayer/images/raster_2x.png new file mode 100644 index 0000000..2125560 Binary files /dev/null and b/wp-content/themes/milo/assets/js/ytplayer/images/raster_2x.png differ diff --git a/wp-content/themes/milo/assets/js/ytplayer/images/raster_dot.png b/wp-content/themes/milo/assets/js/ytplayer/images/raster_dot.png new file mode 100644 index 0000000..ef340c5 Binary files /dev/null and b/wp-content/themes/milo/assets/js/ytplayer/images/raster_dot.png differ diff --git a/wp-content/themes/milo/assets/js/ytplayer/images/raster_dot_2x.png b/wp-content/themes/milo/assets/js/ytplayer/images/raster_dot_2x.png new file mode 100644 index 0000000..7847b29 Binary files /dev/null and b/wp-content/themes/milo/assets/js/ytplayer/images/raster_dot_2x.png differ diff --git a/wp-content/themes/milo/assets/js/ytplayer/jquery.mb.YTPlayer.js b/wp-content/themes/milo/assets/js/ytplayer/jquery.mb.YTPlayer.js new file mode 100644 index 0000000..75edd5a --- /dev/null +++ b/wp-content/themes/milo/assets/js/ytplayer/jquery.mb.YTPlayer.js @@ -0,0 +1,1057 @@ +/*___________________________________________________________________________________________________________________________________________________ + _ jquery.mb.components _ + _ _ + _ file: jquery.mb.YTPlayer.js _ + _ last modified: 19/08/14 20.13 _ + _ _ + _ Open Lab s.r.l., Florence - Italy _ + _ _ + _ email: matteo@open-lab.com _ + _ site: http://pupunzi.com _ + _ http://open-lab.com _ + _ blog: http://pupunzi.open-lab.com _ + _ Q&A: http://jquery.pupunzi.com _ + _ _ + _ Licences: MIT, GPL _ + _ http://www.opensource.org/licenses/mit-license.php _ + _ http://www.gnu.org/licenses/gpl.html _ + _ _ + _ Copyright (c) 2001-2014. Matteo Bicocchi (Pupunzi); _ + ___________________________________________________________________________________________________________________________________________________*/ + +var ytp = ytp || {}; + +function onYouTubePlayerAPIReady() { + if(ytp.YTAPIReady) + return; + + ytp.YTAPIReady=true; + jQuery(document).trigger("YTAPIReady"); +} + +(function (jQuery, ytp) { + + /*Browser detection patch*/ + var nAgt = navigator.userAgent; + if (!jQuery.browser) { + jQuery.browser = {}; + jQuery.browser.mozilla = !1; + jQuery.browser.webkit = !1; + jQuery.browser.opera = !1; + jQuery.browser.safari = !1; + jQuery.browser.chrome = !1; + jQuery.browser.msie = !1; + jQuery.browser.ua = nAgt; + jQuery.browser.name = navigator.appName; + jQuery.browser.fullVersion = "" + parseFloat(navigator.appVersion); + jQuery.browser.majorVersion = parseInt(navigator.appVersion, 10); + var nameOffset, verOffset, ix; + if (-1 != (verOffset = nAgt.indexOf("Opera")))jQuery.browser.opera = !0, jQuery.browser.name = "Opera", jQuery.browser.fullVersion = nAgt.substring(verOffset + 6), -1 != (verOffset = nAgt.indexOf("Version")) && (jQuery.browser.fullVersion = nAgt.substring(verOffset + 8)); else if (-1 != (verOffset = nAgt.indexOf("MSIE")))jQuery.browser.msie = !0, jQuery.browser.name = "Microsoft Internet Explorer", jQuery.browser.fullVersion = nAgt.substring(verOffset + 5); else if (-1 != nAgt.indexOf("Trident")) { + jQuery.browser.msie = !0; + jQuery.browser.name = "Microsoft Internet Explorer"; + var start = nAgt.indexOf("rv:") + 3, end = start + 4; + jQuery.browser.fullVersion = nAgt.substring(start, end) + } else-1 != (verOffset = nAgt.indexOf("Chrome")) ? (jQuery.browser.webkit = !0, jQuery.browser.chrome = !0, jQuery.browser.name = "Chrome", jQuery.browser.fullVersion = nAgt.substring(verOffset + 7)) : -1 != (verOffset = nAgt.indexOf("Safari")) ? (jQuery.browser.webkit = !0, jQuery.browser.safari = !0, jQuery.browser.name = "Safari", jQuery.browser.fullVersion = nAgt.substring(verOffset + 7), -1 != (verOffset = nAgt.indexOf("Version")) && (jQuery.browser.fullVersion = nAgt.substring(verOffset + 8))) : -1 != (verOffset = nAgt.indexOf("AppleWebkit")) ? (jQuery.browser.webkit = !0, jQuery.browser.name = "Safari", jQuery.browser.fullVersion = nAgt.substring(verOffset + 7), -1 != (verOffset = nAgt.indexOf("Version")) && (jQuery.browser.fullVersion = nAgt.substring(verOffset + 8))) : -1 != (verOffset = nAgt.indexOf("Firefox")) ? (jQuery.browser.mozilla = !0, jQuery.browser.name = "Firefox", jQuery.browser.fullVersion = nAgt.substring(verOffset + 8)) : (nameOffset = nAgt.lastIndexOf(" ") + 1) < (verOffset = nAgt.lastIndexOf("/")) && (jQuery.browser.name = nAgt.substring(nameOffset, verOffset), jQuery.browser.fullVersion = nAgt.substring(verOffset + 1), jQuery.browser.name.toLowerCase() == jQuery.browser.name.toUpperCase() && (jQuery.browser.name = navigator.appName)); + -1 != (ix = jQuery.browser.fullVersion.indexOf(";")) && (jQuery.browser.fullVersion = jQuery.browser.fullVersion.substring(0, ix)); + -1 != (ix = jQuery.browser.fullVersion.indexOf(" ")) && (jQuery.browser.fullVersion = jQuery.browser.fullVersion.substring(0, ix)); + jQuery.browser.majorVersion = parseInt("" + jQuery.browser.fullVersion, 10); + isNaN(jQuery.browser.majorVersion) && (jQuery.browser.fullVersion = "" + parseFloat(navigator.appVersion), jQuery.browser.majorVersion = parseInt(navigator.appVersion, 10)); + jQuery.browser.version = jQuery.browser.majorVersion + } + jQuery.browser.android = /Android/i.test(nAgt); + jQuery.browser.blackberry = /BlackBerry|BB|PlayBook/i.test(nAgt); + jQuery.browser.ios = /iPhone|iPad|iPod|webOS/i.test(nAgt); + jQuery.browser.operaMobile = /Opera Mini/i.test(nAgt); + jQuery.browser.kindle = /Kindle|Silk/i.test(nAgt); + jQuery.browser.windowsMobile = /IEMobile|Windows Phone/i.test(nAgt); + jQuery.browser.mobile = jQuery.browser.android || jQuery.browser.blackberry || jQuery.browser.ios || jQuery.browser.windowsMobile || jQuery.browser.operaMobile || jQuery.browser.kindle; + + /******************************************************************************* + * jQuery.mb.components: jquery.mb.CSSAnimate + ******************************************************************************/ + + jQuery.fn.CSSAnimate=function(a,g,p,m,h){function r(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function f(a,f){return"string"!==typeof a||a.match(/^[\-0-9\.]+$/)?""+a+f:a}jQuery.support.CSStransition=function(){var a=(document.body||document.documentElement).style;return void 0!==a.transition||void 0!==a.WebkitTransition||void 0!==a.MozTransition||void 0!==a.MsTransition||void 0!==a.OTransition}();return this.each(function(){var e=this,k=jQuery(this);e.id=e.id||"CSSA_"+ (new Date).getTime();var l=l||{type:"noEvent"};if(e.CSSAIsRunning&&e.eventType==l.type)e.CSSqueue=function(){k.CSSAnimate(a,g,p,m,h)};else if(e.CSSqueue=null,e.eventType=l.type,0!==k.length&&a){e.CSSAIsRunning=!0;"function"==typeof g&&(h=g,g=jQuery.fx.speeds._default);"function"==typeof p&&(h=p,p=0);"function"==typeof m&&(h=m,m="cubic-bezier(0.65,0.03,0.36,0.72)");if("string"==typeof g)for(var b in jQuery.fx.speeds)if(g==b){g=jQuery.fx.speeds[b];break}else g=jQuery.fx.speeds._default;g||(g=jQuery.fx.speeds._default); if(jQuery.support.CSStransition){l={"default":"ease","in":"ease-in",out:"ease-out","in-out":"ease-in-out",snap:"cubic-bezier(0,1,.5,1)",easeOutCubic:"cubic-bezier(.215,.61,.355,1)",easeInOutCubic:"cubic-bezier(.645,.045,.355,1)",easeInCirc:"cubic-bezier(.6,.04,.98,.335)",easeOutCirc:"cubic-bezier(.075,.82,.165,1)",easeInOutCirc:"cubic-bezier(.785,.135,.15,.86)",easeInExpo:"cubic-bezier(.95,.05,.795,.035)",easeOutExpo:"cubic-bezier(.19,1,.22,1)",easeInOutExpo:"cubic-bezier(1,0,0,1)",easeInQuad:"cubic-bezier(.55,.085,.68,.53)", easeOutQuad:"cubic-bezier(.25,.46,.45,.94)",easeInOutQuad:"cubic-bezier(.455,.03,.515,.955)",easeInQuart:"cubic-bezier(.895,.03,.685,.22)",easeOutQuart:"cubic-bezier(.165,.84,.44,1)",easeInOutQuart:"cubic-bezier(.77,0,.175,1)",easeInQuint:"cubic-bezier(.755,.05,.855,.06)",easeOutQuint:"cubic-bezier(.23,1,.32,1)",easeInOutQuint:"cubic-bezier(.86,0,.07,1)",easeInSine:"cubic-bezier(.47,0,.745,.715)",easeOutSine:"cubic-bezier(.39,.575,.565,1)",easeInOutSine:"cubic-bezier(.445,.05,.55,.95)",easeInBack:"cubic-bezier(.6,-.28,.735,.045)", easeOutBack:"cubic-bezier(.175, .885,.32,1.275)",easeInOutBack:"cubic-bezier(.68,-.55,.265,1.55)"};l[m]&&(m=l[m]);var d="",q="transitionEnd";jQuery.browser.webkit?(d="-webkit-",q="webkitTransitionEnd"):jQuery.browser.mozilla?(d="-moz-",q="transitionend"):jQuery.browser.opera?(d="-o-",q="otransitionend"):jQuery.browser.msie&&(d="-ms-",q="msTransitionEnd");l=[];for(c in a){b=c;"transform"===b&&(b=d+"transform",a[b]=a[c],delete a[c]);"filter"===b&&(b=d+"filter",a[b]=a[c],delete a[c]);if("transform-origin"=== b||"origin"===b)b=d+"transform-origin",a[b]=a[c],delete a[c];"x"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" translateX("+f(a[c],"px")+")",delete a[c]);"y"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" translateY("+f(a[c],"px")+")",delete a[c]);"z"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" translateZ("+f(a[c],"px")+")",delete a[c]);"rotate"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" rotate("+f(a[c],"deg")+")",delete a[c]);"rotateX"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" rotateX("+f(a[c],"deg")+ ")",delete a[c]);"rotateY"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" rotateY("+f(a[c],"deg")+")",delete a[c]);"rotateZ"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" rotateZ("+f(a[c],"deg")+")",delete a[c]);"scale"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" scale("+f(a[c],"")+")",delete a[c]);"scaleX"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" scaleX("+f(a[c],"")+")",delete a[c]);"scaleY"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" scaleY("+f(a[c],"")+")",delete a[c]);"scaleZ"===b&&(b=d+"transform", a[b]=a[b]||"",a[b]+=" scaleZ("+f(a[c],"")+")",delete a[c]);"skew"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" skew("+f(a[c],"deg")+")",delete a[c]);"skewX"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" skewX("+f(a[c],"deg")+")",delete a[c]);"skewY"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" skewY("+f(a[c],"deg")+")",delete a[c]);"perspective"===b&&(b=d+"transform",a[b]=a[b]||"",a[b]+=" perspective("+f(a[c],"px")+")",delete a[c]);0>l.indexOf(b)&&l.push(r(b))}var c=l.join(","),s=function(){k.off(q+"."+ e.id);clearTimeout(e.timeout);k.css(d+"transition","");"function"==typeof h&&h(k);e.called=!0;e.CSSAIsRunning=!1;"function"==typeof e.CSSqueue&&(e.CSSqueue(),e.CSSqueue=null)},n={};jQuery.extend(n,a);n[d+"transition-property"]=c;n[d+"transition-duration"]=g+"ms";n[d+"transition-delay"]=p+"ms";n[d+"transition-style"]="preserve-3d";n[d+"transition-timing-function"]=m;setTimeout(function(){k.one(q+"."+e.id,s);k.css(n)},1);e.timeout=setTimeout(function(){k.called||!h?(k.called=!1,e.CSSAIsRunning=!1):(k.css(d+ "transition",""),h(k),e.CSSAIsRunning=!1,"function"==typeof e.CSSqueue&&(e.CSSqueue(),e.CSSqueue=null))},g+p+100)}else{for(var c in a)"transform"===c&&delete a[c],"filter"===c&&delete a[c],"transform-origin"===c&&delete a[c],"auto"===a[c]&&delete a[c];h&&"string"!==typeof h||(h="linear");k.animate(a,g,h)}}})}; + + /******************************************************************************/ + + var getYTPVideoID = function (url) { + + var videoID, playlistID; + + if (url.indexOf("youtu.be") > 0) { + videoID = url.substr(url.lastIndexOf("/")+1, url.length); + playlistID = videoID.indexOf("?list=") > 0 ? videoID.substr(videoID.lastIndexOf("="), videoID.length) : null; + videoID = playlistID ? videoID.substr(0, videoID.lastIndexOf("?")) : videoID; + } else if (url.indexOf("http") > -1) { + videoID = url.match(/[\\?&]v=([^&#]*)/)[1]; + playlistID = url.indexOf("list=")>0 ? url.match(/[\\?&]list=([^&#]*)/)[1] : null; + } else { + videoID = url.length > 15 ? null : url; + playlistID = videoID ? null : url; + } + + return {videoID: videoID, playlistID: playlistID}; + }; + + /* todo: + setPlaybackRate() + playlist + */ + + jQuery.mbYTPlayer = { + name : "jquery.mb.YTPlayer", + version: "2.8.1", + author : "Matteo Bicocchi", + + defaults: { + containment : "body", + ratio : "auto", // "auto", "16/9", "4/3" + videoURL : null, + playlistURL : null, + startAt : 0, + stopAt : 0, + autoPlay : true, + vol : 100, // 1 to 100 + addRaster : false, + opacity : 1, + quality : "default", //or “smallâ€, “mediumâ€, “largeâ€, “hd720â€, “hd1080â€, “highres†+ mute : false, + loop : true, + showControls : true, + showAnnotations : false, + showYTLogo : true, + stopMovieOnClick : false, + stopMovieOnBlur : true, + realfullscreen : true, + gaTrack : true, + optimizeDisplay : true, + onReady : function (player) {} + + }, + + /* @fontface icons */ + controls: { + play : "P", + pause : "p", + mute : "M", + unmute : "A", + onlyYT : "O", + showSite: "R", + ytLogo : "Y" + }, + + locationProtocol: "https:", + + buildPlayer: function (options) { + + /* + if (jQuery.browser.mobile) + return this; + */ + + return this.each(function () { + + var YTPlayer = this; + var $YTPlayer = jQuery(YTPlayer); + + YTPlayer.loop = 0; + YTPlayer.opt = {}; + + $YTPlayer.addClass("mb_YTPlayer"); + var property = $YTPlayer.data("property") && typeof $YTPlayer.data("property") == "string" ? eval('(' + $YTPlayer.data("property") + ')') : $YTPlayer.data("property"); + if (typeof property != "undefined" && typeof property.vol != "undefined") + property.vol = property.vol == 0 ? property.vol = 1 : property.vol; + jQuery.extend(YTPlayer.opt, jQuery.mbYTPlayer.defaults, options, property); + YTPlayer.isRetina = (window.retina || window.devicePixelRatio > 1); + + var isIframe = function() { + var isIfr = false; + try{ + if (self.location.href != top.location.href) + isIfr = true; + } catch(e) { + isIfr = true; + } + return isIfr; + }; + + YTPlayer.canGoFullScreen = !(jQuery.browser.msie || jQuery.browser.opera || isIframe()); + + if (!YTPlayer.canGoFullScreen) + YTPlayer.opt.realfullscreen = false; + + if (!$YTPlayer.attr("id")) + $YTPlayer.attr("id", "video_" + new Date().getTime()); + + var playerID = "mbYTP_" + YTPlayer.id; + YTPlayer.isAlone = false; + YTPlayer.hasFocus = true; + var videoID = this.opt.videoURL ? getYTPVideoID(this.opt.videoURL).videoID : $YTPlayer.attr("href") ? getYTPVideoID($YTPlayer.attr("href")).videoID : false; + var playlistID = this.opt.videoURL ? getYTPVideoID(this.opt.videoURL).playlistID : $YTPlayer.attr("href") ? getYTPVideoID($YTPlayer.attr("href")).playlistID : false; + YTPlayer.videoID = videoID; + YTPlayer.playlistID = playlistID; + YTPlayer.opt.showAnnotations = (YTPlayer.opt.showAnnotations) ? '0' : '3'; + var playerVars = { 'autoplay': 0, 'modestbranding': 1, 'controls': 0, 'showinfo': 0, 'rel': 0, 'enablejsapi': 1, 'version': 3, 'playerapiid': playerID, 'origin': '*', 'allowfullscreen': true, 'wmode': 'transparent', 'iv_load_policy': YTPlayer.opt.showAnnotations}; + + if (document.createElement('video').canPlayType) //&& window.MediaSource && !YTPlayer.isRetina + jQuery.extend(playerVars, {'html5': 1}); + + if (jQuery.browser.msie && jQuery.browser.version < 9) + this.opt.opacity = 1; + + var playerBox = jQuery("
    ").attr("id", playerID).addClass("playerBox"); + var overlay = jQuery("
    ").css({position: "absolute", top: 0, left: 0, width: "100%", height: "100%"}).addClass("YTPOverlay"); + YTPlayer.isSelf = YTPlayer.opt.containment == "self"; + YTPlayer.opt.containment = YTPlayer.opt.containment == "self" ? jQuery(this) : jQuery(YTPlayer.opt.containment); + YTPlayer.isBackground = YTPlayer.opt.containment.get(0).tagName.toLowerCase() == "body"; + if (YTPlayer.isBackground && ytp.backgroundIsInited) + return; + var isPlayer = YTPlayer.opt.containment.is(jQuery(this)); + + YTPlayer.canPlayOnMobile = isPlayer && jQuery(this).children().length == 0; + + if (!isPlayer) { + $YTPlayer.hide(); + } else { + YTPlayer.isPlayer = true; + } + if (jQuery.browser.mobile && !YTPlayer.canPlayOnMobile) { + $YTPlayer.remove(); + return; + } + if (YTPlayer.opt.addRaster) { + var classN = YTPlayer.opt.addRaster == "dot" ? "raster-dot" : "raster"; + overlay.addClass(YTPlayer.isRetina ? classN + " retina" : classN); + } else { + overlay.removeClass(function (index, classNames) { + // change the list into an array + var current_classes = classNames.split(" "), + // array of classes which are to be removed + classes_to_remove = []; + jQuery.each(current_classes, function (index, class_name) { + // if the classname begins with bg add it to the classes_to_remove array + if (/raster-.*/.test(class_name)) { + classes_to_remove.push(class_name); + } + }); + classes_to_remove.push("retina"); + // turn the array back into a string + return classes_to_remove.join(" "); + }) + } + var wrapper = jQuery("
    ").addClass("mbYTP_wrapper").attr("id", "wrapper_" + playerID); + wrapper.css({position: "absolute", zIndex: 0, minWidth: "100%", minHeight: "100%", left: 0, top: 0, overflow: "hidden", opacity: 0}); + playerBox.css({position: "absolute", zIndex: 0, width: "100%", height: "100%", top: 0, left: 0, overflow: "hidden"}); + wrapper.append(playerBox); + YTPlayer.opt.containment.children().not("script, style").each(function () { + if (jQuery(this).css("position") == "static") + jQuery(this).css("position", "relative"); + }); + if (YTPlayer.isBackground) { +// jQuery("body").css({position: "relative", minWidth: "100%", minHeight: "100%", zIndex: 1, boxSizing: "border-box"}); + jQuery("body").css({boxSizing: "border-box"}); + wrapper.css({position: "fixed", top: 0, left: 0, zIndex: 0, webkitTransform: "translateZ(0)"}); + $YTPlayer.hide(); + } else if (YTPlayer.opt.containment.css("position") == "static") + YTPlayer.opt.containment.css({position: "relative"}); + YTPlayer.opt.containment.prepend(wrapper); + YTPlayer.wrapper = wrapper; + playerBox.css({opacity: 1}); + if (!jQuery.browser.mobile) { + playerBox.after(overlay); + YTPlayer.overlay = overlay; + } + if (!YTPlayer.isBackground) { + overlay.on("mouseenter", function () { + $YTPlayer.find(".mb_YTPBar").addClass("visible"); + }).on("mouseleave", function () { + $YTPlayer.find(".mb_YTPBar").removeClass("visible"); + }) + } + + if (!ytp.YTAPIReady) { + jQuery("#YTAPI").remove(); + var tag = jQuery("").attr({"src": jQuery.mbYTPlayer.locationProtocol + "//www.youtube.com/player_api?v=" + jQuery.mbYTPlayer.version, "id": "YTAPI"}); + jQuery("head title").after(tag); + } else { + setTimeout(function () { + jQuery(document).trigger("YTAPIReady"); + }, 100) + } + + jQuery(document).on("YTAPIReady", function () { + if ((YTPlayer.isBackground && ytp.backgroundIsInited) || YTPlayer.isInit) + return; + if (YTPlayer.isBackground && YTPlayer.opt.stopMovieOnClick) + jQuery(document).off("mousedown.ytplayer").on("mousedown.ytplayer", function (e) { + var target = jQuery(e.target); + if (target.is("a") || target.parents().is("a")) { + $YTPlayer.pauseYTP(); + } + }); + if (YTPlayer.isBackground) { + ytp.backgroundIsInited = true; + } + YTPlayer.opt.autoPlay = typeof YTPlayer.opt.autoPlay == "undefined" ? (YTPlayer.isBackground ? true : false) : YTPlayer.opt.autoPlay; + YTPlayer.opt.vol = YTPlayer.opt.vol ? YTPlayer.opt.vol : 100; + jQuery.mbYTPlayer.getDataFromFeed(YTPlayer); + jQuery(YTPlayer).on("YTPChanged", function () { + if (YTPlayer.isInit) + return; + YTPlayer.isInit = true; + + //if is mobile && isPlayer fallback to the default YT player + if (jQuery.browser.mobile && YTPlayer.canPlayOnMobile) { + + new YT.Player(playerID, { + videoId: YTPlayer.videoID.toString(), + height : '100%', + width : '100%', + videoId: YTPlayer.videoID, + events : { + 'onReady' : function (event) { + YTPlayer.player = event.target; + playerBox.css({opacity: 1}); + YTPlayer.wrapper.css({opacity: YTPlayer.opt.opacity}); + $YTPlayer.optimizeDisplay(); + }, + 'onStateChange': function () {} + } + }); + return; + + } + + new YT.Player(playerID, { + videoId : YTPlayer.videoID.toString(), + playerVars: playerVars, + events : { + 'onReady': function (event) { + YTPlayer.player = event.target; + if (YTPlayer.isReady) + return; + YTPlayer.isReady = true; + YTPlayer.playerEl = YTPlayer.player.getIframe(); + $YTPlayer.optimizeDisplay(); + YTPlayer.videoID = videoID; + jQuery(window).on("resize.YTP", function () { + $YTPlayer.optimizeDisplay(); + }); + if (YTPlayer.opt.showControls) + jQuery(YTPlayer).buildYTPControls(); + + /* + if(YTPlayer.isRetina) + setTimeout(function() { + controls.show(1000); + },3000) + */ + + var startAt = YTPlayer.opt.startAt ? YTPlayer.opt.startAt : 1; + YTPlayer.player.setVolume(0); + jQuery(YTPlayer).muteYTPVolume(); + jQuery.mbYTPlayer.checkForState(YTPlayer); + YTPlayer.checkForStartAt = setInterval(function () { +// //var canPlayVideo = !window.MediaSource ? true : (YTPlayer.player.getVideoLoadedFraction() > startAt / YTPlayer.player.getDuration()); + var canPlayVideo = (YTPlayer.player.getVideoLoadedFraction() > startAt / YTPlayer.player.getDuration()); + if (YTPlayer.player.getDuration() > 0 && YTPlayer.player.getCurrentTime() >= startAt && canPlayVideo) { + clearInterval(YTPlayer.checkForStartAt); + YTPlayer.player.setVolume(0); + jQuery(YTPlayer).muteYTPVolume(); + if (typeof YTPlayer.opt.onReady == "function") + YTPlayer.opt.onReady(YTPlayer); + if (!YTPlayer.opt.mute) + jQuery(YTPlayer).unmuteYTP(); + //jQuery.mbYTPlayer.checkForState(YTPlayer); + YTPlayer.player.pauseVideo(); + setTimeout(function () { + YTPlayer.canTrigger = true; + if (YTPlayer.opt.autoPlay) { + $YTPlayer.playYTP(); + $YTPlayer.css("background-image", "none"); + YTPlayer.wrapper.CSSAnimate({opacity: YTPlayer.isAlone ? 1 : YTPlayer.opt.opacity}, 2000); + } else { + YTPlayer.player.pauseVideo(); + } + }, 100) + } else { + YTPlayer.player.playVideo(); + YTPlayer.player.seekTo(startAt, true); + } + var YTPready = jQuery.Event("YTPReady"); + jQuery(YTPlayer).trigger(YTPready); + }, 1000); + }, + + 'onStateChange': function (event) { + + /* + -1 (unstarted) + 0 (ended) + 1 (playing) + 2 (paused) + 3 (buffering) + 5 (video cued). + */ + + if (typeof event.target.getPlayerState != "function") + return; + var state = event.target.getPlayerState(); + if (YTPlayer.state == state) + return; + YTPlayer.state = state; + var controls = jQuery("#controlBar_" + YTPlayer.id); + var eventType; + switch (state) { + case -1: //------------------------------------------------ unstarted + + eventType = "YTPUnstarted"; + break; + + case 0: //------------------------------------------------ ended + + eventType = "YTPEnd"; + break; + + case 1: //------------------------------------------------ play + + eventType = "YTPStart"; + controls.find(".mb_YTPPlaypause").html(jQuery.mbYTPlayer.controls.pause); + if (typeof _gaq != "undefined" && eval(YTPlayer.opt.gaTrack)) + _gaq.push(['_trackEvent', 'YTPlayer', 'Play', (YTPlayer.videoTitle || YTPlayer.videoID.toString())]); + if (typeof ga != "undefined" && eval(YTPlayer.opt.gaTrack)) + ga('send', 'event', 'YTPlayer', 'play', (YTPlayer.videoTitle || YTPlayer.videoID.toString())); + break; + + case 2: //------------------------------------------------ pause + + eventType = "YTPPause"; + controls.find(".mb_YTPPlaypause").html(jQuery.mbYTPlayer.controls.play); + break; + + case 3: //------------------------------------------------ buffer + + if (!jQuery.browser.chrome) + YTPlayer.player.setPlaybackQuality(YTPlayer.opt.quality); + eventType = "YTPBuffering"; + if (!jQuery.browser.chrome) + YTPlayer.player.setPlaybackQuality(YTPlayer.opt.quality); + controls.find(".mb_YTPPlaypause").html(jQuery.mbYTPlayer.controls.play); + setTimeout(function(){ + controls.show(1000); + },2000); + break; + + case 5: //------------------------------------------------ cued + + eventType = "YTPCued"; + break; + + default: + break; + + } + // Trigger state events + var YTPevent = jQuery.Event(eventType); + YTPevent.time = YTPlayer.player.time; + if (YTPlayer.canTrigger) + jQuery(YTPlayer).trigger(YTPevent); + }, + + 'onPlaybackQualityChange': function (e) { + var quality = e.target.getPlaybackQuality(); + var YTPQualityChange = jQuery.Event("YTPQualityChange"); + YTPQualityChange.quality = quality; + jQuery(YTPlayer).trigger(YTPQualityChange); + }, + + 'onError': function (err) { + if (err.data == 150) { + console.log("Embedding this video is restricted by Youtube."); + if (YTPlayer.isPlayList) + jQuery(YTPlayer).playNext(); + } + if (err.data == 2 && YTPlayer.isPlayList) + jQuery(YTPlayer).playNext(); + if (typeof YTPlayer.opt.onError == "function") + YTPlayer.opt.onError($YTPlayer, err); + } + } + }); + }); + }) + + }); + + }, + +// todo: This API is deprecated. Find another way to retreive the Data informations. + getDataFromFeed: function (YTPlayer) { + //Get video info from FEEDS API + + if (!(jQuery.browser.msie && jQuery.browser.version <= 9)) { + jQuery.getJSON(jQuery.mbYTPlayer.locationProtocol + '//gdata.youtube.com/feeds/api/videos/' + YTPlayer.videoID + '?v=2&alt=jsonc', function (data, status, xhr) { + YTPlayer.dataReceived = true; + YTPlayer.videoData = data.data; + jQuery(YTPlayer).trigger("YTPChanged"); + var YTPData = jQuery.Event("YTPData"); + YTPData.prop = {}; + for (var x in YTPlayer.videoData) + YTPData.prop[x] = YTPlayer.videoData[x]; + jQuery(YTPlayer).trigger(YTPData); + YTPlayer.videoTitle = YTPlayer.videoData.title; + if (YTPlayer.opt.ratio == "auto") + if (YTPlayer.videoData.aspectRatio && YTPlayer.videoData.aspectRatio === "widescreen") + YTPlayer.opt.ratio = "16/9"; + else + YTPlayer.opt.ratio = "4/3"; + if (!YTPlayer.hasData) { + YTPlayer.hasData = true; + if (YTPlayer.isPlayer) { + var bgndURL = YTPlayer.videoData.thumbnail.hqDefault; + YTPlayer.opt.containment.css({background: "rgba(0,0,0,0.5) url(" + bgndURL + ") center center", backgroundSize: "cover"}); + } + } + }); + setTimeout(function () { + if (!YTPlayer.dataReceived && !YTPlayer.hasData) { + YTPlayer.hasData = true; + jQuery(YTPlayer).trigger("YTPChanged"); + } + }, 1500) + + } else { + YTPlayer.opt.ratio == "auto" ? YTPlayer.opt.ratio = "16/9" : YTPlayer.opt.ratio; + if (!YTPlayer.hasData) { + YTPlayer.hasData = true; + setTimeout(function () { + jQuery(YTPlayer).trigger("YTPChanged"); + }, 100) + } + } + }, + + getVideoData: function () { + var YTPlayer = this.get(0); + return YTPlayer.videoData; + }, + + getVideoID: function () { + var YTPlayer = this.get(0); + return YTPlayer.videoID || false; + }, + + setVideoQuality: function (quality) { + var YTPlayer = this.get(0); + if (!jQuery.browser.chrome) + YTPlayer.player.setPlaybackQuality(quality); + }, + + YTPlaylist: function (videos, shuffle, callback) { + var YTPlayer = this.get(0); + YTPlayer.isPlayList = true; + if (shuffle) + videos = jQuery.shuffle(videos); + if (!YTPlayer.videoID) { + YTPlayer.videos = videos; + YTPlayer.videoCounter = 0; + YTPlayer.videoLength = videos.length; + jQuery(YTPlayer).data("property", videos[0]); + jQuery(YTPlayer).mb_YTPlayer(); + } + if (typeof callback == "function") + jQuery(YTPlayer).on("YTPChanged", function () { + callback(YTPlayer); + }); + jQuery(YTPlayer).on("YTPEnd", function () { + jQuery(YTPlayer).playNext(); + }); + }, + + playNext: function () { + var YTPlayer = this.get(0); + YTPlayer.videoCounter++; + if (YTPlayer.videoCounter >= YTPlayer.videoLength) + YTPlayer.videoCounter = 0; + jQuery(YTPlayer.playerEl).css({opacity: 0}); + jQuery(YTPlayer).changeMovie(YTPlayer.videos[YTPlayer.videoCounter]); + }, + + playPrev: function () { + var YTPlayer = this.get(0); + YTPlayer.videoCounter--; + if (YTPlayer.videoCounter < 0) + YTPlayer.videoCounter = YTPlayer.videoLength - 1; + jQuery(YTPlayer.playerEl).css({opacity: 0}); + jQuery(YTPlayer).changeMovie(YTPlayer.videos[YTPlayer.videoCounter]); + }, + + changeMovie: function (opt) { + var YTPlayer = this.get(0); + YTPlayer.opt.startAt = 0; + YTPlayer.opt.stopAt = 0; + YTPlayer.opt.mute = true; + if (opt) { + jQuery.extend(YTPlayer.opt, opt); + } + YTPlayer.videoID = getYTPVideoID(YTPlayer.opt.videoURL).videoID; + jQuery(YTPlayer).pauseYTP(); + var timer = jQuery.browser.msie ? 1000 : 0; + jQuery(YTPlayer.playerEl).CSSAnimate({opacity: 0}, timer); + setTimeout(function () { + var quality = !jQuery.browser.chrome ? YTPlayer.opt.quality : "default"; + jQuery(YTPlayer).getPlayer().cueVideoByUrl(encodeURI(jQuery.mbYTPlayer.locationProtocol + "//www.youtube.com/v/" + YTPlayer.videoID), 1, quality); + jQuery(YTPlayer).playYTP(); + jQuery(YTPlayer).one("YTPStart", function () { + YTPlayer.wrapper.CSSAnimate({opacity: YTPlayer.isAlone ? 1 : YTPlayer.opt.opacity}, 1000); + jQuery(YTPlayer.playerEl).CSSAnimate({opacity: 1}, timer); + if (YTPlayer.opt.startAt) { + YTPlayer.player.seekTo(YTPlayer.opt.startAt); + } + jQuery.mbYTPlayer.checkForState(YTPlayer); + if (!YTPlayer.opt.autoPlay) + jQuery(YTPlayer).pauseYTP(); + }); + if (YTPlayer.opt.mute) { + jQuery(YTPlayer).muteYTPVolume(); + } else { + jQuery(YTPlayer).unmuteYTP(); + } + }, timer); + if (YTPlayer.opt.addRaster) { + YTPlayer.overlay.addClass(YTPlayer.isRetina ? "raster retina" : "raster"); + } else { + YTPlayer.overlay.removeClass("raster").removeClass("retina"); + } + jQuery("#controlBar_" + YTPlayer.id).remove(); + if (YTPlayer.opt.showControls) + jQuery(YTPlayer).buildYTPControls(); + jQuery.mbYTPlayer.getDataFromFeed(YTPlayer); + jQuery(YTPlayer).optimizeDisplay(); + }, + + getPlayer: function () { + return jQuery(this).get(0).player; + }, + + playerDestroy: function () { + var YTPlayer = this.get(0); + ytp.YTAPIReady = false; + ytp.backgroundIsInited = false; + YTPlayer.isInit = false; + YTPlayer.videoID = null; + var playerBox = YTPlayer.wrapper; + playerBox.remove(); + jQuery("#controlBar_" + YTPlayer.id).remove(); + clearInterval(YTPlayer.checkForStartAt); + }, + + fullscreen: function (real) { + var YTPlayer = this.get(0); + if (typeof real == "undefined") + real = YTPlayer.opt.realfullscreen; + real = eval(real); + var controls = jQuery("#controlBar_" + YTPlayer.id); + var fullScreenBtn = controls.find(".mb_OnlyYT"); + var videoWrapper = YTPlayer.isSelf ? YTPlayer.opt.containment : YTPlayer.wrapper; + //var videoWrapper = YTPlayer.wrapper; + if (real) { + var fullscreenchange = jQuery.browser.mozilla ? "mozfullscreenchange" : jQuery.browser.webkit ? "webkitfullscreenchange" : "fullscreenchange"; + jQuery(document).off(fullscreenchange).on(fullscreenchange, function () { + var isFullScreen = RunPrefixMethod(document, "IsFullScreen") || RunPrefixMethod(document, "FullScreen"); + if (!isFullScreen) { + YTPlayer.isAlone = false; + fullScreenBtn.html(jQuery.mbYTPlayer.controls.onlyYT); + jQuery(YTPlayer).setVideoQuality(YTPlayer.opt.quality); + videoWrapper.removeClass("fullscreen"); + videoWrapper.CSSAnimate({opacity: YTPlayer.opt.opacity}, 500); + videoWrapper.css({zIndex: 0}); + if (YTPlayer.isBackground) { + jQuery("body").after(controls); + } else { + YTPlayer.wrapper.before(controls); + } + jQuery(window).resize(); + jQuery(YTPlayer).trigger("YTPFullScreenEnd"); + } else { + jQuery(YTPlayer).setVideoQuality("default"); + jQuery(YTPlayer).trigger("YTPFullScreenStart"); + } + }); + } + if (!YTPlayer.isAlone) { + if (real) { + videoWrapper.css({opacity: 0}); + videoWrapper.addClass("fullscreen"); + launchFullscreen(videoWrapper.get(0)); + setTimeout(function () { + videoWrapper.CSSAnimate({opacity: 1}, 1000); + YTPlayer.wrapper.append(controls); + jQuery(YTPlayer).optimizeDisplay(); + YTPlayer.player.seekTo(YTPlayer.player.getCurrentTime() + .1, true); + }, 500) + } else + videoWrapper.css({zIndex: 10000}).CSSAnimate({opacity: 1}, 1000); + fullScreenBtn.html(jQuery.mbYTPlayer.controls.showSite); + YTPlayer.isAlone = true; + } else { + if (real) { + cancelFullscreen(); + } else { + videoWrapper.CSSAnimate({opacity: YTPlayer.opt.opacity}, 500); + videoWrapper.css({zIndex: 0}); + } + fullScreenBtn.html(jQuery.mbYTPlayer.controls.onlyYT) + YTPlayer.isAlone = false; + } + + function RunPrefixMethod(obj, method) { + var pfx = ["webkit", "moz", "ms", "o", ""]; + var p = 0, m, t; + while (p < pfx.length && !obj[m]) { + m = method; + if (pfx[p] == "") { + m = m.substr(0, 1).toLowerCase() + m.substr(1); + } + m = pfx[p] + m; + t = typeof obj[m]; + if (t != "undefined") { + pfx = [pfx[p]]; + return (t == "function" ? obj[m]() : obj[m]); + } + p++; + } + } + + function launchFullscreen(element) { + RunPrefixMethod(element, "RequestFullScreen"); + } + + function cancelFullscreen() { + if (RunPrefixMethod(document, "FullScreen") || RunPrefixMethod(document, "IsFullScreen")) { + RunPrefixMethod(document, "CancelFullScreen"); + } + } + }, + + playYTP: function () { + var YTPlayer = this.get(0); + if (typeof YTPlayer.player === "undefined") + return; + var controls = jQuery("#controlBar_" + YTPlayer.id); + var playBtn = controls.find(".mb_YTPPlaypause"); + playBtn.html(jQuery.mbYTPlayer.controls.pause); + YTPlayer.player.playVideo(); + YTPlayer.wrapper.CSSAnimate({opacity: YTPlayer.isAlone ? 1 : YTPlayer.opt.opacity}, 2000); + jQuery(YTPlayer).on("YTPStart", function () { + jQuery(YTPlayer).css("background-image", "none"); + }) + }, + + toggleLoops: function () { + var YTPlayer = this.get(0); + var data = YTPlayer.opt; + if (data.loop == 1) { + data.loop = 0; + } else { + if (data.startAt) { + YTPlayer.player.seekTo(data.startAt); + } else { + YTPlayer.player.playVideo(); + } + data.loop = 1; + } + }, + + stopYTP: function () { + var YTPlayer = this.get(0); + var controls = jQuery("#controlBar_" + YTPlayer.id); + var playBtn = controls.find(".mb_YTPPlaypause"); + playBtn.html(jQuery.mbYTPlayer.controls.play); + YTPlayer.player.stopVideo(); + }, + + pauseYTP: function () { + var YTPlayer = this.get(0); + var data = YTPlayer.opt; + var controls = jQuery("#controlBar_" + YTPlayer.id); + var playBtn = controls.find(".mb_YTPPlaypause"); + playBtn.html(jQuery.mbYTPlayer.controls.play); + YTPlayer.player.pauseVideo(); + }, + + seekToYTP: function (val) { + var YTPlayer = this.get(0); + YTPlayer.player.seekTo(val, true); + }, + + setYTPVolume: function (val) { + var YTPlayer = this.get(0); + if (!val && !YTPlayer.opt.vol && YTPlayer.player.getVolume() == 0) + jQuery(YTPlayer).unmuteYTP(); + else if ((!val && YTPlayer.player.getVolume() > 0) || (val && YTPlayer.player.getVolume() == val)) + jQuery(YTPlayer).muteYTPVolume(); + else + YTPlayer.opt.vol = val; + YTPlayer.player.setVolume(YTPlayer.opt.vol); + }, + + muteYTP: function () { + var YTPlayer = this.get(0); + YTPlayer.player.mute(); + YTPlayer.player.setVolume(0); + var controls = jQuery("#controlBar_" + YTPlayer.id); + var muteBtn = controls.find(".mb_YTPMuteUnmute"); + muteBtn.html(jQuery.mbYTPlayer.controls.unmute); + jQuery(YTPlayer).addClass("isMuted"); + jQuery(YTPlayer).trigger("YTPMuted"); + }, + + unmuteYTP: function () { + var YTPlayer = this.get(0); + YTPlayer.player.unMute(); + YTPlayer.player.setVolume(YTPlayer.opt.vol); + var controls = jQuery("#controlBar_" + YTPlayer.id); + var muteBtn = controls.find(".mb_YTPMuteUnmute"); + muteBtn.html(jQuery.mbYTPlayer.controls.mute); + jQuery(YTPlayer).removeClass("isMuted"); + jQuery(YTPlayer).trigger("YTPUnmuted"); + }, + + manageYTPProgress: function () { + var YTPlayer = this.get(0); + var controls = jQuery("#controlBar_" + YTPlayer.id); + var progressBar = controls.find(".mb_YTPProgress"); + var loadedBar = controls.find(".mb_YTPLoaded"); + var timeBar = controls.find(".mb_YTPseekbar"); + var totW = progressBar.outerWidth(); + var currentTime = Math.floor(YTPlayer.player.getCurrentTime()); + var totalTime = Math.floor(YTPlayer.player.getDuration()); + var timeW = (currentTime * totW) / totalTime; + var startLeft = 0; + var loadedW = YTPlayer.player.getVideoLoadedFraction() * 100; + loadedBar.css({left: startLeft, width: loadedW + "%"}); + timeBar.css({left: 0, width: timeW}); + return {totalTime: totalTime, currentTime: currentTime}; + }, + + buildYTPControls: function () { + var YTPlayer = this.get(0); + var data = YTPlayer.opt; + /** @data.printUrl is deprecated; use data.showYTLogo */ + data.showYTLogo = data.showYTLogo || data.printUrl; + if (jQuery("#controlBar_" + YTPlayer.id).length) + return; + var controlBar = jQuery("").attr("id", "controlBar_" + YTPlayer.id).addClass("mb_YTPBar").css({whiteSpace: "noWrap", position: YTPlayer.isBackground ? "fixed" : "absolute", zIndex: YTPlayer.isBackground ? 10000 : 1000}).hide(); + YTPlayer.controlBar = controlBar; + var buttonBar = jQuery("
    ").addClass("buttonBar"); + var playpause = jQuery("" + jQuery.mbYTPlayer.controls.play + "").addClass("mb_YTPPlaypause ytpicon").click(function () { + if (YTPlayer.player.getPlayerState() == 1) + jQuery(YTPlayer).pauseYTP(); + else + jQuery(YTPlayer).playYTP(); + }); + var MuteUnmute = jQuery("" + jQuery.mbYTPlayer.controls.mute + "").addClass("mb_YTPMuteUnmute ytpicon").click(function () { + if (YTPlayer.player.getVolume() == 0) { + jQuery(YTPlayer).unmuteYTP(); + } else { + jQuery(YTPlayer).muteYTP(); + } + }); + var idx = jQuery("").addClass("mb_YTPTime"); + var vURL = data.videoURL ? data.videoURL : ""; + if (vURL.indexOf("http") < 0) + vURL = jQuery.mbYTPlayer.locationProtocol + "//www.youtube.com/watch?v=" + data.videoURL; + var movieUrl = jQuery("").html(jQuery.mbYTPlayer.controls.ytLogo).addClass("mb_YTPUrl ytpicon").attr("title", "view on YouTube").on("click", function () {window.open(vURL, "viewOnYT")}); + var onlyVideo = jQuery("").html(jQuery.mbYTPlayer.controls.onlyYT).addClass("mb_OnlyYT ytpicon").on("click", function () {jQuery(YTPlayer).fullscreen(data.realfullscreen);}); + var progressBar = jQuery("
    ").addClass("mb_YTPProgress").css("position", "absolute").click(function (e) { + timeBar.css({width: (e.clientX - timeBar.offset().left)}); + YTPlayer.timeW = e.clientX - timeBar.offset().left; + controlBar.find(".mb_YTPLoaded").css({width: 0}); + var totalTime = Math.floor(YTPlayer.player.getDuration()); + YTPlayer.goto = (timeBar.outerWidth() * totalTime) / progressBar.outerWidth(); + YTPlayer.player.seekTo(parseFloat(YTPlayer.goto), true); + controlBar.find(".mb_YTPLoaded").css({width: 0}); + }); + var loadedBar = jQuery("
    ").addClass("mb_YTPLoaded").css("position", "absolute"); + var timeBar = jQuery("
    ").addClass("mb_YTPseekbar").css("position", "absolute"); + progressBar.append(loadedBar).append(timeBar); + buttonBar.append(playpause).append(MuteUnmute).append(idx); + if (data.showYTLogo) { + buttonBar.append(movieUrl); + } + if (YTPlayer.isBackground || (eval(YTPlayer.opt.realfullscreen) && !YTPlayer.isBackground)) + buttonBar.append(onlyVideo); + controlBar.append(buttonBar).append(progressBar); + if (!YTPlayer.isBackground) { + controlBar.addClass("inlinePlayer"); + YTPlayer.wrapper.before(controlBar); + } else { + jQuery("body").after(controlBar); + } + }, + + checkForState: function (YTPlayer) { + var interval = YTPlayer.opt.showControls ? 10 : 1000; + clearInterval(YTPlayer.getState); + YTPlayer.getState = setInterval(function () { + var prog = jQuery(YTPlayer).manageYTPProgress(); + var $YTPlayer = jQuery(YTPlayer); + var controlBar = jQuery("#controlBar_" + YTPlayer.id); + var data = YTPlayer.opt; + var startAt = YTPlayer.opt.startAt ? YTPlayer.opt.startAt : 1; + var stopAt = YTPlayer.opt.stopAt > YTPlayer.opt.startAt ? YTPlayer.opt.stopAt : 0; + stopAt = stopAt < YTPlayer.player.getDuration() ? stopAt : 0; + if (YTPlayer.player.time != prog.currentTime) { + var YTPevent = jQuery.Event("YTPTime"); + YTPevent.time = YTPlayer.player.time; + jQuery(YTPlayer).trigger(YTPevent); + } + YTPlayer.player.time = prog.currentTime; + if (YTPlayer.player.getVolume() == 0) + $YTPlayer.addClass("isMuted"); + else + $YTPlayer.removeClass("isMuted"); + if (YTPlayer.opt.showControls) + if (prog.totalTime) { + controlBar.find(".mb_YTPTime").html(jQuery.mbYTPlayer.formatTime(prog.currentTime) + " / " + jQuery.mbYTPlayer.formatTime(prog.totalTime)); + } else { + controlBar.find(".mb_YTPTime").html("-- : -- / -- : --"); + } + if(eval(YTPlayer.opt.stopMovieOnBlur)) + if (!document.hasFocus()) { + if (YTPlayer.state == 1) { + YTPlayer.hasFocus = false; + $YTPlayer.pauseYTP(); + } + } else if (document.hasFocus() && !YTPlayer.hasFocus && !(YTPlayer.state == -1 || YTPlayer.state == 0)) { + YTPlayer.hasFocus = true; + $YTPlayer.playYTP(); + } + if (YTPlayer.player.getPlayerState() == 1 && (parseFloat(YTPlayer.player.getDuration() - 3) < YTPlayer.player.getCurrentTime() || (stopAt > 0 && parseFloat(YTPlayer.player.getCurrentTime()) > stopAt))) { + if (YTPlayer.isEnded) + return; + YTPlayer.isEnded = true; + setTimeout(function () {YTPlayer.isEnded = false}, 2000); + if (YTPlayer.isPlayList) { + clearInterval(YTPlayer.getState); + var YTPEnd = jQuery.Event("YTPEnd"); + YTPEnd.time = YTPlayer.player.time; + jQuery(YTPlayer).trigger(YTPEnd); + return; + } else if (!data.loop) { + YTPlayer.player.pauseVideo(); + YTPlayer.wrapper.CSSAnimate({opacity: 0}, 1000, function () { + var YTPEnd = jQuery.Event("YTPEnd"); + YTPEnd.time = YTPlayer.player.time; + jQuery(YTPlayer).trigger(YTPEnd); + YTPlayer.player.seekTo(startAt, true); + if (!YTPlayer.isBackground) { + var bgndURL = YTPlayer.videoData.thumbnail.hqDefault; + jQuery(YTPlayer).css({background: "rgba(0,0,0,0.5) url(" + bgndURL + ") center center", backgroundSize: "cover"}); + } + }); + } else + YTPlayer.player.seekTo(startAt, true); + } + }, interval); + }, + + formatTime: function (s) { + var min = Math.floor(s / 60); + var sec = Math.floor(s - (60 * min)); + return (min <= 9 ? "0" + min : min) + " : " + (sec <= 9 ? "0" + sec : sec); + } + }; + + jQuery.fn.toggleVolume = function () { + var YTPlayer = this.get(0); + if (!YTPlayer) + return; + if (YTPlayer.player.isMuted()) { + jQuery(YTPlayer).unmuteYTP(); + return true; + } else { + jQuery(YTPlayer).muteYTP(); + return false; + } + }; + + jQuery.fn.optimizeDisplay = function () { + var YTPlayer = this.get(0); + var data = YTPlayer.opt; + var playerBox = jQuery(YTPlayer.playerEl); + var win = {}; + var el = YTPlayer.wrapper; + win.width = el.outerWidth(); + win.height = el.outerHeight(); + var margin = 24; + var overprint = 100; + var vid = {}; + if(data.optimizeDisplay) { + vid.width = win.width + ((win.width * margin) / 100); + vid.height = data.ratio == "16/9" ? Math.ceil((9 * win.width) / 16) : Math.ceil((3 * win.width) / 4); + vid.marginTop = -((vid.height - win.height) / 2); + vid.marginLeft = -((win.width * (margin / 2)) / 100); + if (vid.height < win.height) { + vid.height = win.height + ((win.height * margin) / 100); + vid.width = data.ratio == "16/9" ? Math.floor((16 * win.height) / 9) : Math.floor((4 * win.height) / 3); + vid.marginTop = -((win.height * (margin / 2)) / 100); + vid.marginLeft = -((vid.width - win.width) / 2); + } + vid.width += overprint; + vid.height += overprint; + vid.marginTop -= overprint / 2; + vid.marginLeft -= overprint / 2; + }else{ + vid.width = "100%"; + vid.height = "100%"; + vid.marginTop = 0; + vid.marginLeft -= 0; + } + playerBox.css({width: vid.width, height: vid.height, marginTop: vid.marginTop, marginLeft: vid.marginLeft}); + }; + + jQuery.shuffle = function (arr) { + var newArray = arr.slice(); + var len = newArray.length; + var i = len; + while (i--) { + var p = parseInt(Math.random() * len); + var t = newArray[i]; + newArray[i] = newArray[p]; + newArray[p] = t; + } + return newArray; + }; + + /*Exposed method for external use*/ + jQuery.fn.YTPlayer = jQuery.mbYTPlayer.buildPlayer; + jQuery.fn.YTPlaylist = jQuery.mbYTPlayer.YTPlaylist; + jQuery.fn.playNext = jQuery.mbYTPlayer.playNext; + jQuery.fn.playPrev = jQuery.mbYTPlayer.playPrev; + jQuery.fn.changeMovie = jQuery.mbYTPlayer.changeMovie; + jQuery.fn.getVideoID = jQuery.mbYTPlayer.getVideoID; + jQuery.fn.getPlayer = jQuery.mbYTPlayer.getPlayer; + jQuery.fn.playerDestroy = jQuery.mbYTPlayer.playerDestroy; + jQuery.fn.fullscreen = jQuery.mbYTPlayer.fullscreen; + jQuery.fn.buildYTPControls = jQuery.mbYTPlayer.buildYTPControls; + jQuery.fn.playYTP = jQuery.mbYTPlayer.playYTP; + jQuery.fn.toggleLoops = jQuery.mbYTPlayer.toggleLoops; + jQuery.fn.stopYTP = jQuery.mbYTPlayer.stopYTP; + jQuery.fn.pauseYTP = jQuery.mbYTPlayer.pauseYTP; + jQuery.fn.seekToYTP = jQuery.mbYTPlayer.seekToYTP; + jQuery.fn.muteYTP = jQuery.mbYTPlayer.muteYTP; + jQuery.fn.unmuteYTP = jQuery.mbYTPlayer.unmuteYTP; + jQuery.fn.setYTPVolume = jQuery.mbYTPlayer.setYTPVolume; + jQuery.fn.setVideoQuality = jQuery.mbYTPlayer.setVideoQuality; + jQuery.fn.manageYTPProgress = jQuery.mbYTPlayer.manageYTPProgress; + jQuery.fn.getDataFromFeed = jQuery.mbYTPlayer.getVideoData; + + /** @deprecated **/ + jQuery.fn.mb_YTPlayer = jQuery.fn.YTPlayer; + jQuery.fn.muteYTPVolume = jQuery.mbYTPlayer.muteYTP; + jQuery.fn.unmuteYTPVolume = jQuery.mbYTPlayer.unmuteYTP; + + +})(jQuery, ytp); diff --git a/wp-content/themes/milo/assets/miuiconfont/fonts/miu-icon-font.eot b/wp-content/themes/milo/assets/miuiconfont/fonts/miu-icon-font.eot new file mode 100644 index 0000000..3a6f079 Binary files /dev/null and b/wp-content/themes/milo/assets/miuiconfont/fonts/miu-icon-font.eot differ diff --git a/wp-content/themes/milo/assets/miuiconfont/fonts/miu-icon-font.svg b/wp-content/themes/milo/assets/miuiconfont/fonts/miu-icon-font.svg new file mode 100644 index 0000000..db0f9a6 --- /dev/null +++ b/wp-content/themes/milo/assets/miuiconfont/fonts/miu-icon-font.svg @@ -0,0 +1,320 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wp-content/themes/milo/assets/miuiconfont/fonts/miu-icon-font.ttf b/wp-content/themes/milo/assets/miuiconfont/fonts/miu-icon-font.ttf new file mode 100644 index 0000000..e092730 Binary files /dev/null and b/wp-content/themes/milo/assets/miuiconfont/fonts/miu-icon-font.ttf differ diff --git a/wp-content/themes/milo/assets/miuiconfont/fonts/miu-icon-font.woff b/wp-content/themes/milo/assets/miuiconfont/fonts/miu-icon-font.woff new file mode 100644 index 0000000..cbca2f3 Binary files /dev/null and b/wp-content/themes/milo/assets/miuiconfont/fonts/miu-icon-font.woff differ diff --git a/wp-content/themes/milo/assets/miuiconfont/miuiconfont.css b/wp-content/themes/milo/assets/miuiconfont/miuiconfont.css new file mode 100644 index 0000000..fd95c1e --- /dev/null +++ b/wp-content/themes/milo/assets/miuiconfont/miuiconfont.css @@ -0,0 +1,5 @@ +/*! + * Miu icon font + * http://linhpham.me/miu/ + */ +@font-face{font-family:miu-icon-font;src:url(fonts/miu-icon-font.eot?-rzs6m6);src:url(fonts/miu-icon-font.eot?#iefix-rzs6m6) format('embedded-opentype'),url(fonts/miu-icon-font.woff?-rzs6m6) format('woff'),url(fonts/miu-icon-font.ttf?-rzs6m6) format('truetype'),url(fonts/miu-icon-font.svg?-rzs6m6#miu-icon-font) format('svg');font-weight:400;font-style:normal}[class*=" miu-icon-"],[class^=miu-icon-]{display:inline-block;font-family:miu-icon-font;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.miu-icon-business_coin_money_salary_glyph:before{content:"\e600"}.miu-icon-business_coin_money_salary_outline_stroke:before{content:"\e601"}.miu-icon-business_coins_money_stack_salary_glyph:before{content:"\e602"}.miu-icon-business_coins_money_stack_salary_outline_stroke:before{content:"\e603"}.miu-icon-business_money_cash_salary_glyph:before{content:"\e604"}.miu-icon-business_money_cash_salary_outline_stroke:before{content:"\e605"}.miu-icon-business_namecard_contact_info_glyph:before{content:"\e606"}.miu-icon-business_namecard_contact_info_outline_stroke:before{content:"\e607"}.miu-icon-business_stack_money_cash_salary_glyph:before{content:"\e608"}.miu-icon-business_stack_money_cash_salary_outline_stroke:before{content:"\e609"}.miu-icon-business_suitcase_glyph:before{content:"\e60a"}.miu-icon-business_suitcase_outline_stroke:before{content:"\e60b"}.miu-icon-business_telephone_office_glyph:before{content:"\e60c"}.miu-icon-business_telephone_office_outline_stroke:before{content:"\e60d"}.miu-icon-business_tie_glyph:before{content:"\e60e"}.miu-icon-business_tie_outline_stroke:before{content:"\e60f"}.miu-icon-circle_add_plus_glyph:before{content:"\e610"}.miu-icon-circle_add_plus_outline_stroke:before{content:"\e611"}.miu-icon-circle_arrow-back_previous_glyph:before{content:"\e612"}.miu-icon-circle_arrow-back_previous_outline_stroke:before{content:"\e613"}.miu-icon-circle_arrow-down_download_glyph:before{content:"\e614"}.miu-icon-circle_arrow-down_download_outline_stroke:before{content:"\e615"}.miu-icon-circle_arrow-forward_next_glyph:before{content:"\e616"}.miu-icon-circle_arrow-forward_next_outline_stroke:before{content:"\e617"}.miu-icon-circle_arrow-up_glyph:before{content:"\e618"}.miu-icon-circle_arrow-up_outline_stroke:before{content:"\e619"}.miu-icon-circle_back_arrow_glyph:before{content:"\e61a"}.miu-icon-circle_back_arrow_outline_stroke:before{content:"\e61b"}.miu-icon-circle_backup_time_history_recent_time-machine_glyph:before{content:"\e61c"}.miu-icon-circle_backup_time_history_recent_time-machine_outline_stroke:before{content:"\e61d"}.miu-icon-circle_clock_time_history_recent_2_glyph:before{content:"\e61e"}.miu-icon-circle_clock_time_history_recent_2_outline_stroke:before{content:"\e61f"}.miu-icon-circle_clock_time_history_recent_glyph:before{content:"\e620"}.miu-icon-circle_clock_time_history_recent_outline_stroke:before{content:"\e621"}.miu-icon-circle_close_delete_glyph:before{content:"\e622"}.miu-icon-circle_close_delete_outline_stroke:before{content:"\e623"}.miu-icon-circle_compass_safari_web_archive_glyph:before{content:"\e624"}.miu-icon-circle_compass_safari_web_archive_outline_stroke:before{content:"\e625"}.miu-icon-circle_dashboard_meter_fuel_gauge_glyph:before{content:"\e626"}.miu-icon-circle_dashboard_meter_fuel_gauge_outline_stroke:before{content:"\e627"}.miu-icon-circle_edit_pen_pencil_glyph:before{content:"\e628"}.miu-icon-circle_edit_pen_pencil_outline_stroke:before{content:"\e629"}.miu-icon-circle_email_glyph:before{content:"\e62a"}.miu-icon-circle_email_outline_stroke:before{content:"\e62b"}.miu-icon-circle_gear_setting_configure_glyph:before{content:"\e62c"}.miu-icon-circle_gear_setting_configure_outline_stroke:before{content:"\e62d"}.miu-icon-circle_gift_present_glyph:before{content:"\e62e"}.miu-icon-circle_gift_present_outline_stroke:before{content:"\e62f"}.miu-icon-circle_help_question-mark_glyph:before{content:"\e630"}.miu-icon-circle_help_question-mark_outline_stroke:before{content:"\e631"}.miu-icon-circle_info_more-information_detail_glyph:before{content:"\e632"}.miu-icon-circle_info_more-information_detail_outline_stroke:before{content:"\e633"}.miu-icon-circle_more_detail_glyph:before{content:"\e634"}.miu-icon-circle_more_detail_outline_stroke:before{content:"\e635"}.miu-icon-circle_music_2_glyph:before{content:"\e636"}.miu-icon-circle_music_2_outline_stroke:before{content:"\e637"}.miu-icon-circle_music_glyph:before{content:"\e638"}.miu-icon-circle_music_outline_stroke:before{content:"\e639"}.miu-icon-circle_next_arrow_disclosure_glyph:before{content:"\e63a"}.miu-icon-circle_next_arrow_disclosure_outline_stroke:before{content:"\e63b"}.miu-icon-circle_no_forbidden_glyph:before{content:"\e63c"}.miu-icon-circle_no_forbidden_outline_stroke:before{content:"\e63d"}.miu-icon-circle_sync_backup_1_glyph:before{content:"\e63e"}.miu-icon-circle_sync_backup_1_outline_stroke:before{content:"\e63f"}.miu-icon-circle_sync_backup_2_glyph:before{content:"\e640"}.miu-icon-circle_sync_backup_2_outline_stroke:before{content:"\e641"}.miu-icon-circle_world_global_internet_earth_glyph:before{content:"\e642"}.miu-icon-circle_world_global_internet_earth_outline_stroke:before{content:"\e643"}.miu-icon-circle-social_facebook_glyph:before{content:"\e644"}.miu-icon-circle-social_facebook_outline_stroke:before{content:"\e645"}.miu-icon-circle-social_google-plus_glyph:before{content:"\e646"}.miu-icon-circle-social_google-plus_outline_stroke:before{content:"\e647"}.miu-icon-circle-social_pinterest_glyph:before{content:"\e648"}.miu-icon-circle-social_pinterest_outline_stroke:before{content:"\e649"}.miu-icon-circle-social_twitter_glyph:before{content:"\e64a"}.miu-icon-circle-social_twitter_outline_stroke:before{content:"\e64b"}.miu-icon-cloud_cloud-download_2_glyph:before{content:"\e64c"}.miu-icon-cloud_cloud-download_2_outline_stroke:before{content:"\e64d"}.miu-icon-cloud_cloud-download_glyph:before{content:"\e64e"}.miu-icon-cloud_cloud-download_outline_stroke:before{content:"\e64f"}.miu-icon-cloud_cloud-upload_2_glyph:before{content:"\e650"}.miu-icon-cloud_cloud-upload_2_outline_stroke:before{content:"\e651"}.miu-icon-cloud_cloud-upload_glyph:before{content:"\e652"}.miu-icon-cloud_cloud-upload_outline_stroke:before{content:"\e653"}.miu-icon-cloud_glyph:before{content:"\e654"}.miu-icon-cloud_outline_stroke:before{content:"\e655"}.miu-icon-common_bookmark_book_open_glyph:before{content:"\e656"}.miu-icon-common_bookmark_book_open_outline_stroke:before{content:"\e657"}.miu-icon-common_bookmark_glyph:before{content:"\e658"}.miu-icon-common_bookmark_outline_stroke:before{content:"\e659"}.miu-icon-common_calendar_day_glyph:before{content:"\e65a"}.miu-icon-common_calendar_day_outline_stroke:before{content:"\e65b"}.miu-icon-common_calendar_month_glyph:before{content:"\e65c"}.miu-icon-common_calendar_month_outline_stroke:before{content:"\e65d"}.miu-icon-common_email_envelope_mail_glyph:before{content:"\e65e"}.miu-icon-common_email_envelope_mail_outline_stroke:before{content:"\e65f"}.miu-icon-common_envelope_mail_glyph:before{content:"\e660"}.miu-icon-common_envelope_mail_outline_stroke:before{content:"\e661"}.miu-icon-common_heart_like_favourite_favorite_glyph:before{content:"\e662"}.miu-icon-common_heart_like_favourite_favorite_outline_stroke:before{content:"\e663"}.miu-icon-common_login_enter_signin_glyph:before{content:"\e664"}.miu-icon-common_login_enter_signin_outline_stroke:before{content:"\e665"}.miu-icon-common_logout_signout_exit_glyph:before{content:"\e666"}.miu-icon-common_logout_signout_exit_outline_stroke:before{content:"\e667"}.miu-icon-common_new_edit_compose_glyph:before{content:"\e668"}.miu-icon-common_new_edit_compose_outline_stroke:before{content:"\e669"}.miu-icon-common_printer_print_glyph:before{content:"\e66a"}.miu-icon-common_printer_print_outline_stroke:before{content:"\e66b"}.miu-icon-common_search_lookup_glyph:before{content:"\e66c"}.miu-icon-common_search_lookup_outline_stroke:before{content:"\e66d"}.miu-icon-common_share_action_glyph:before{content:"\e66e"}.miu-icon-common_share_action_outline_stroke:before{content:"\e66f"}.miu-icon-common_star_favorite_bookmark_glyph:before{content:"\e670"}.miu-icon-common_star_favorite_bookmark_outline_stroke:before{content:"\e671"}.miu-icon-common_tag_2_general_price_glyph:before{content:"\e672"}.miu-icon-common_tag_2_general_price_outline_stroke:before{content:"\e673"}.miu-icon-common_tag_general_price_glyph:before{content:"\e674"}.miu-icon-common_tag_general_price_outline_stroke:before{content:"\e675"}.miu-icon-device_battery_charge_glyph:before{content:"\e676"}.miu-icon-device_battery_charge_outline_stroke:before{content:"\e677"}.miu-icon-device_battery_empty_glyph:before{content:"\e678"}.miu-icon-device_battery_empty_outline_stroke:before{content:"\e679"}.miu-icon-device_battery_full_glyph:before{content:"\e67a"}.miu-icon-device_battery_full_outline_stroke:before{content:"\e67b"}.miu-icon-device_battery_haft_glyph:before{content:"\e67c"}.miu-icon-device_battery_half_outline_stroke:before{content:"\e67d"}.miu-icon-device_board_presentation_content_chart_glyph:before{content:"\e67e"}.miu-icon-device_board_presentation_content_chart_outline_stroke:before{content:"\e67f"}.miu-icon-device_board_presentation_content_text_glyph:before{content:"\e680"}.miu-icon-device_board_presentation_content_text_outline_stroke:before{content:"\e681"}.miu-icon-device_board_presentation_empty_glyph:before{content:"\e682"}.miu-icon-device_board_presentation_empty_outline_stroke:before{content:"\e683"}.miu-icon-device_camera_capture_photo_glyph:before{content:"\e684"}.miu-icon-device_camera_capture_photo_outline_stroke:before{content:"\e685"}.miu-icon-device_camera_recorder_video_glyph:before{content:"\e686"}.miu-icon-device_camera_recorder_video_outline_stroke:before{content:"\e687"}.miu-icon-device_headphone_music_mp3_glyph:before{content:"\e688"}.miu-icon-device_headphone_music_mp3_outline_stroke:before{content:"\e689"}.miu-icon-device_iPhone_smart-phone_horizontal_glyph:before{content:"\e68a"}.miu-icon-device_iPhone_smart-phone_horizontal_outline_stroke:before{content:"\e68b"}.miu-icon-device_iPhone_smart-phone_vertical_glyph:before{content:"\e68c"}.miu-icon-device_iPhone_smart-phone_vertical_outline_stroke:before{content:"\e68d"}.miu-icon-device_laptop_computer_glyph:before{content:"\e68e"}.miu-icon-device_laptop_computer_outline_stroke:before{content:"\e68f"}.miu-icon-device_microphone_sound_recoder_glyph:before{content:"\e690"}.miu-icon-device_microphone_sound_recoder_outline_stroke:before{content:"\e691"}.miu-icon-device_monitor_screen_glyph:before{content:"\e692"}.miu-icon-device_monitor_screen_outline_stroke:before{content:"\e693"}.miu-icon-device_power_glyph:before{content:"\e694"}.miu-icon-device_power_outline_stroke:before{content:"\e695"}.miu-icon-device_projector_screen_content_chart_presentation_glyph:before{content:"\e696"}.miu-icon-device_projector_screen_content_chart_presentation_outline_stroke:before{content:"\e697"}.miu-icon-device_projector_screen_content_text_presentation_glyph:before{content:"\e698"}.miu-icon-device_projector_screen_content_text_presentation_outline_stroke:before{content:"\e699"}.miu-icon-device_projector_screen_empty_presentation_glyph:before{content:"\e69a"}.miu-icon-device_projector_screen_empty_presentation_outline_stroke:before{content:"\e69b"}.miu-icon-device_smart-phone_horizontal_glyph:before{content:"\e69c"}.miu-icon-device_smart-phone_horizontal_outline_stroke:before{content:"\e69d"}.miu-icon-device_smart-phone_vertical_glyph:before{content:"\e69e"}.miu-icon-device_smart-phone_vertical_outline_stroke:before{content:"\e69f"}.miu-icon-device_smart-phones_iphones_horizontal_glyph:before{content:"\e6a0"}.miu-icon-device_smart-phones_iphones_horizontal_outline_stroke:before{content:"\e6a1"}.miu-icon-device_smart-phones_iphones_vertical_glyph:before{content:"\e6a2"}.miu-icon-device_smart-phones_iphones_vertical_outline_stroke:before{content:"\e6a3"}.miu-icon-device_tablet_ipad_horizontal_glyph:before{content:"\e6a4"}.miu-icon-device_tablet_ipad_horizontal_outline_stroke:before{content:"\e6a5"}.miu-icon-device_tablet_ipad_vertical_glyph:before{content:"\e6a6"}.miu-icon-device_tablet_ipad_vertical_outline_stroke:before{content:"\e6a7"}.miu-icon-device_tablets_ipads_horizontal_glyph:before{content:"\e6a8"}.miu-icon-device_tablets_ipads_horizontal_outline_stroke:before{content:"\e6a9"}.miu-icon-device_tablets_ipads_vertical_glyph:before{content:"\e6aa"}.miu-icon-device_tablets_ipads_vertical_outline_stroke:before{content:"\e6ab"}.miu-icon-device_volume_loudspeaker_speaker_down_glyph:before{content:"\e6ac"}.miu-icon-device_volume_loudspeaker_speaker_down_outline_stroke:before{content:"\e6ad"}.miu-icon-device_volume_loudspeaker_speaker_glyph:before{content:"\e6ae"}.miu-icon-device_volume_loudspeaker_speaker_mute_glyph:before{content:"\e6af"}.miu-icon-device_volume_loudspeaker_speaker_mute_outline_stroke:before{content:"\e6b0"}.miu-icon-device_volume_loudspeaker_speaker_outline_stroke:before{content:"\e6b1"}.miu-icon-device_volume_loudspeaker_speaker_up_glyph:before{content:"\e6b2"}.miu-icon-device_volume_loudspeaker_speaker_up_outline_stroke:before{content:"\e6b3"}.miu-icon-editor_alarm_clock_glyph:before{content:"\e6b4"}.miu-icon-editor_alarm_clock_outline_stroke:before{content:"\e6b5"}.miu-icon-editor_album_collection_glyph:before{content:"\e6b6"}.miu-icon-editor_album_collection_outline_stroke:before{content:"\e6b7"}.miu-icon-editor_attachment_paper_clip:before{content:"\e6b8"}.miu-icon-editor_attachment_paper_clip_2:before{content:"\e6b9"}.miu-icon-editor_books_library_collection_glyph:before{content:"\e6ba"}.miu-icon-editor_books_library_collection_outline_stroke:before{content:"\e6bb"}.miu-icon-editor_clipboard_glyph:before{content:"\e6bc"}.miu-icon-editor_clipboard_outline_stroke:before{content:"\e6bd"}.miu-icon-editor_copy_2_duplicate_glyph:before{content:"\e6be"}.miu-icon-editor_copy_2_duplicate_outline_stroke:before{content:"\e6bf"}.miu-icon-editor_copy_duplicate_glyph:before{content:"\e6c0"}.miu-icon-editor_copy_duplicate_outline_stroke:before{content:"\e6c1"}.miu-icon-editor_crop_glyph:before{content:"\e6c2"}.miu-icon-editor_crop_outline_stroke:before{content:"\e6c3"}.miu-icon-editor_document_file_2_glyph:before{content:"\e6c4"}.miu-icon-editor_document_file_2_outline_stroke:before{content:"\e6c5"}.miu-icon-editor_document_file_add_2_glyph:before{content:"\e6c6"}.miu-icon-editor_document_file_add_2_outline_stroke:before{content:"\e6c7"}.miu-icon-editor_document_file_add_glyph:before{content:"\e6c8"}.miu-icon-editor_document_file_add_outline_stroke:before{content:"\e6c9"}.miu-icon-editor_document_file_glyph:before{content:"\e6ca"}.miu-icon-editor_document_file_outline_stroke:before{content:"\e6cb"}.miu-icon-editor_documents_files_glyph:before{content:"\e6cc"}.miu-icon-editor_documents_files_outline_stroke:before{content:"\e6cd"}.miu-icon-editor_drawer_collection_archive_glyph:before{content:"\e6ce"}.miu-icon-editor_drawer_collection_archive_outline_stroke:before{content:"\e6cf"}.miu-icon-editor_flag_notification_glyph:before{content:"\e6d0"}.miu-icon-editor_flag_notification_outline_stroke:before{content:"\e6d1"}.miu-icon-editor_flag_triangle_notification_glyph:before{content:"\e6d2"}.miu-icon-editor_flag_triangle_notification_outline_stroke:before{content:"\e6d3"}.miu-icon-editor_floopy-dish_save_glyph:before{content:"\e6d4"}.miu-icon-editor_floopy-dish_save_outline_stroke:before{content:"\e6d5"}.miu-icon-editor_folder_2_glyph:before{content:"\e6d6"}.miu-icon-editor_folder_2_outline_stroke:before{content:"\e6d7"}.miu-icon-editor_folder_add_2_glyph:before{content:"\e6d8"}.miu-icon-editor_folder_add_2_outline_stroke:before{content:"\e6d9"}.miu-icon-editor_folder_add_glyph:before{content:"\e6da"}.miu-icon-editor_folder_add_outline_stroke:before{content:"\e6db"}.miu-icon-editor_folder_glyph:before{content:"\e6dc"}.miu-icon-editor_folder_outline_stroke:before{content:"\e6dd"}.miu-icon-editor_grid_view_block_glyph:before{content:"\e6de"}.miu-icon-editor_grid_view_block_outline_stroke:before{content:"\e6df"}.miu-icon-editor_image_picture_photo_glyph:before{content:"\e6e0"}.miu-icon-editor_image_picture_photo_outline_stroke:before{content:"\e6e1"}.miu-icon-editor_images_pictures_photos_collection_glyph:before{content:"\e6e2"}.miu-icon-editor_images_pictures_photos_collection_outline_stroke:before{content:"\e6e3"}.miu-icon-editor_keypad_glyph:before{content:"\e6e4"}.miu-icon-editor_keypad_outline_stroke:before{content:"\e6e5"}.miu-icon-editor_list_view_hambuger_menu_glyph:before{content:"\e6e6"}.miu-icon-editor_list_view_hambuger_menu_outline_stroke:before{content:"\e6e7"}.miu-icon-editor_lock_glyph:before{content:"\e6e8"}.miu-icon-editor_lock_outline_stroke:before{content:"\e6e9"}.miu-icon-editor_memo_note_pad_glyph:before{content:"\e6ea"}.miu-icon-editor_memo_note_pad_outline_stroke:before{content:"\e6eb"}.miu-icon-editor_more_detail_glyph:before{content:"\e6ec"}.miu-icon-editor_more_detail_outline_stroke:before{content:"\e6ed"}.miu-icon-editor_notebook_add_new_glyph:before{content:"\e6ee"}.miu-icon-editor_notebook_add_new_outline_stroke:before{content:"\e6ef"}.miu-icon-editor_notebook_glyph:before{content:"\e6f0"}.miu-icon-editor_notebook_outline_stroke:before{content:"\e6f1"}.miu-icon-editor_open_folder_glyph:before{content:"\e6f2"}.miu-icon-editor_open_folder_outline_stroke:before{content:"\e6f3"}.miu-icon-editor_pencil_pen_edit_write_glyph:before{content:"\e6f4"}.miu-icon-editor_pencil_pen_edit_write_outline_stroke:before{content:"\e6f5"}.miu-icon-editor_playlist_album_collection_glyph:before{content:"\e6f6"}.miu-icon-editor_playlist_album_collection_outline_stroke:before{content:"\e6f7"}.miu-icon-editor_redo_2_arrow_glyph:before{content:"\e6f8"}.miu-icon-editor_redo_2_arrow_outline_stroke:before{content:"\e6f9"}.miu-icon-editor_redo_arrow_reload_glyph:before{content:"\e6fa"}.miu-icon-editor_redo_arrow_reload_outline_stroke:before{content:"\e6fb"}.miu-icon-editor_resize_glyph:before{content:"\e6fc"}.miu-icon-editor_resize_outline_stroke:before{content:"\e6fd"}.miu-icon-editor_setting_gear_glyph:before{content:"\e6fe"}.miu-icon-editor_setting_gear_outline_stroke:before{content:"\e6ff"}.miu-icon-editor_shape_design_triangle_circle_glyph:before{content:"\e700"}.miu-icon-editor_shape_design_triangle_circle_outline_stroke:before{content:"\e701"}.miu-icon-editor_trash_delete_recycle_bin_glyph:before{content:"\e702"}.miu-icon-editor_trash_delete_recycle_bin_outline_stroke:before{content:"\e703"}.miu-icon-editor_undo_2_arrow_glyph:before{content:"\e704"}.miu-icon-editor_undo_2_arrow_outline_stroke:before{content:"\e705"}.miu-icon-editor_undo_arrow_glyph:before{content:"\e706"}.miu-icon-editor_undo_arrow_outline_stroke:before{content:"\e707"}.miu-icon-editor_unlock_lock_glyph:before{content:"\e708"}.miu-icon-editor_unlock_lock_outline_stroke:before{content:"\e709"}.miu-icon-editor_zoom-in_glyph:before{content:"\e70a"}.miu-icon-editor_zoom-in_outline_stroke:before{content:"\e70b"}.miu-icon-editor_zoom-out_glyph:before{content:"\e70c"}.miu-icon-editor_zoom-out_outline_stroke:before{content:"\e70d"}.miu-icon-food_birthday-cake_party_candle_glyph:before{content:"\e70e"}.miu-icon-food_birthday-cake_party_candle_outline_stroke:before{content:"\e70f"}.miu-icon-food_cupcake_muffin_dessert_birthday_glyph:before{content:"\e710"}.miu-icon-food_cupcake_muffin_dessert_birthday_outline_stroke:before{content:"\e711"}.miu-icon-food_fork_knife_restaurant_eating_glyph:before{content:"\e712"}.miu-icon-food_fork_knife_restaurant_eating_outline_stroke:before{content:"\e713"}.miu-icon-food_fork_spoon_restaurant_eating_glyph:before{content:"\e714"}.miu-icon-food_fork_spoon_restaurant_eating_outline_stroke:before{content:"\e715"}.miu-icon-food_pizza_fastfood_glyph:before{content:"\e716"}.miu-icon-food_pizza_fastfood_outline_stroke:before{content:"\e717"}.miu-icon-food-drink_cocktail_wine_glass_outing_drink_glyph:before{content:"\e718"}.miu-icon-food-drink_cocktail_wine_glass_outing_drink_outline_stroke:before{content:"\e719"}.miu-icon-food-drink_cup_coffee_tea_drink_glyph:before{content:"\e71a"}.miu-icon-food-drink_cup_coffee_tea_drink_outline_stroke:before{content:"\e71b"}.miu-icon-food-drink_glass_cocktail_drink_outing_glyph:before{content:"\e71c"}.miu-icon-food-drink_glass_cocktail_drink_outing_outline_stroke:before{content:"\e71d"}.miu-icon-food-drink_wine-glass_glyph:before{content:"\e71e"}.miu-icon-food-drink_wine-glass_outline_stroke:before{content:"\e71f"}.miu-icon-food-drink_wine-glasses_glyph:before{content:"\e720"}.miu-icon-food-drink_wine-glasses_outline_stroke:before{content:"\e721"}.miu-icon-house_home_export_glyph:before{content:"\e722"}.miu-icon-house_home_export_outline_stroke:before{content:"\e723"}.miu-icon-house_home_glyph:before{content:"\e724"}.miu-icon-house_home_outline_stroke:before{content:"\e725"}.miu-icon-map_brochure_glyph:before{content:"\e726"}.miu-icon-map_brochure_outline_stroke:before{content:"\e727"}.miu-icon-map_location_pin_map-marker_glyph:before{content:"\e728"}.miu-icon-map_location_pin_map-marker_outline_stroke:before{content:"\e729"}.miu-icon-map_location_service_glyph:before{content:"\e72a"}.miu-icon-map_location_service_outline_stroke:before{content:"\e72b"}.miu-icon-other_arrow-left_other_glyph:before{content:"\e72c"}.miu-icon-other_arrow-left_other_outline_stroke:before{content:"\e72d"}.miu-icon-other_arrow-right_other_glyph:before{content:"\e72e"}.miu-icon-other_arrow-right_other_outline_stroke:before{content:"\e72f"}.miu-icon-other_conversation_review_comment_bubble_talk_glyph:before{content:"\e730"}.miu-icon-other_conversation_review_comment_bubble_talk_outline_stroke:before{content:"\e731"}.miu-icon-other_review_comment_glyph:before{content:"\e732"}.miu-icon-other_review_comment_outline_stroke:before{content:"\e733"}.miu-icon-other_review_new_comment_glyph:before{content:"\e734"}.miu-icon-other_review_new_comment_outline_stroke:before{content:"\e735"} \ No newline at end of file diff --git a/wp-content/themes/milo/changelog.xml b/wp-content/themes/milo/changelog.xml new file mode 100644 index 0000000..367747e --- /dev/null +++ b/wp-content/themes/milo/changelog.xml @@ -0,0 +1,53 @@ + + + + Fixed a glitch with header when changing orientation on tablets from landscape to portrait + + + Page Left and right sidebar added + Added PSD files + + + The latest framework with social email + + + The latest Visual Composer 4.7.4 plugin added + + + Bugfix - Twitter widget fixed + Bugfix - in project slider, you can now set height + Added - possibility to change menu backgrounds + + + Added - revision system to layouts and one-pages + + + Added - when button title in page section is empty, it does not print + Added - when button title in blog layout is empty, it does not print + Fixed - Twitter widget + Added - revision system to layouts and one-pages + Fixed - scrolling position + + + Fallback logo images are now in retina + Ghost layout deletion bug fixed + + + Header and logo flexibility improved + Ghost layouts are now automatically deleted + + + Emergency - layout problems + + + Child Theme - fixed name in style.css + Conditional Logic - added option to catch posts page + + + TGM plugin - added Fresh Custom Code is recommended now + Shortcodes are applied in HTML section + + + Initial release + + \ No newline at end of file diff --git a/wp-content/themes/milo/comments.php b/wp-content/themes/milo/comments.php new file mode 100644 index 0000000..5e02c59 --- /dev/null +++ b/wp-content/themes/milo/comments.php @@ -0,0 +1,8 @@ + 0 ) ) { + get_template_part('templates/onePage/blocks/comments-list/comments-list'); + get_template_part('templates/onePage/blocks/comments-pagination/comments-pagination'); + get_template_part('templates/onePage/blocks/comments-form/comments-form'); + } +} diff --git a/wp-content/themes/milo/default_section_data/content-404.php b/wp-content/themes/milo/default_section_data/content-404.php new file mode 100644 index 0000000..1a6fc86 --- /dev/null +++ b/wp-content/themes/milo/default_section_data/content-404.php @@ -0,0 +1,19 @@ + + array ( + '0-|-page-not-found' => + array ( + 'page-not-found' => + array ( + 'error-number' => '404', + 'error-message' => 'Page not found', + 'error-description' => 'The page you are looking for could not be found.', + 'additional-info' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.', + 'button-title' => 'Go to home page', + 'button-link' => 'http://demo.freshface.net/milo/', + ), + ), + + ), +); \ No newline at end of file diff --git a/wp-content/themes/milo/default_section_data/content-blog-classic.php b/wp-content/themes/milo/default_section_data/content-blog-classic.php new file mode 100644 index 0000000..d1beb8c --- /dev/null +++ b/wp-content/themes/milo/default_section_data/content-blog-classic.php @@ -0,0 +1,191 @@ + + array ( + '0-|-blog-archive-classic' => + array ( + 'blog-archive-classic' => + array ( + 'section-settings' => + array ( + 'general' => + array ( + 'id' => '', + 'color-type' => 'light', + ), + 'fullwidth' => + array ( + 'apply' => '0', + 'margin-top' => 'default', + 'margin-bottom' => 'default', + 'padding-top' => 'default', + 'padding-bottom' => 'default', + 'background' => + array ( + 'show' => '0', + 'backgrounds' => + array ( + '0-|-background-color' => + array ( + 'background-color' => + array ( + 'color' => '#FFFFFF', + 'opacity' => '', + ), + ), + '1-|-background-image' => + array ( + 'background-image' => + array ( + 'image' => '', + 'fixed' => '', + 'opacity' => '', + ), + ), + '2-|-background-pattern' => + array ( + 'background-pattern' => + array ( + 'image' => '', + 'fixed' => '', + 'opacity' => '', + ), + ), + '3-|-background-youtube-video' => + array ( + 'background-youtube-video' => + array ( + 'url' => '', + 'opacity' => '', + 'show-controls' => '0', + ), + ), + '4-|-background-url-video' => + array ( + 'background-url-video' => + array ( + 'mp4' => '', + 'webm' => '', + 'ogg' => '', + 'opacity' => '', + ), + ), + ), + ), + ), + 'boxed' => + array ( + 'apply' => '0', + 'width-type' => 'from-input', + 'maxwidth' => '1170', + 'padding-top' => 'default', + 'padding-bottom' => 'default', + 'background' => + array ( + 'show' => '0', + 'backgrounds' => + array ( + '0-|-background-color' => + array ( + 'background-color' => + array ( + 'color' => '#FFFFFF', + 'opacity' => '', + ), + ), + '1-|-background-image' => + array ( + 'background-image' => + array ( + 'image' => '', + 'fixed' => '', + 'opacity' => '', + ), + ), + '2-|-background-pattern' => + array ( + 'background-pattern' => + array ( + 'image' => '', + 'fixed' => '', + 'opacity' => '', + ), + ), + '3-|-background-youtube-video' => + array ( + 'background-youtube-video' => + array ( + 'url' => '', + 'opacity' => '', + 'show-controls' => '0', + ), + ), + '4-|-background-url-video' => + array ( + 'background-url-video' => + array ( + 'mp4' => '', + 'webm' => '', + 'ogg' => '', + 'opacity' => '', + ), + ), + ), + ), + ), + 'container' => + array ( + 'apply' => '0', + 'type' => 'not', + 'is-fulscreen' => '0', + ), + ), + 'blog-meta' => + array ( + 'featured-image' => + array ( + 'show' => '1', + 'resize' => '1', + 'width' => '848', + 'height' => '334', + 'lightbox' => '1', + ), + 'size' => '', + 'date' => + array ( + 'show' => '1', + 'format' => 'j F Y', + ), + 'author' => + array ( + 'show' => '1', + ), + 'categories' => + array ( + 'show' => '1', + ), + 'tags' => + array ( + 'show' => '1', + ), + 'comments' => + array ( + 'show' => '1', + ), + ), + 'sidebar' => 'right', + 'number-of-posts' => '0', + 'readmore-show' => '1', + 'readmore-trans' => 'Continue Reading', + 'loop-influence-post-block-disable' => + array ( + 'categories' => 'all', + ), + 'pagination' => + array ( + 'show' => '1', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/wp-content/themes/milo/default_section_data/content-blog-single.php b/wp-content/themes/milo/default_section_data/content-blog-single.php new file mode 100644 index 0000000..84d003a --- /dev/null +++ b/wp-content/themes/milo/default_section_data/content-blog-single.php @@ -0,0 +1,77 @@ + + array ( + '0-|-blog-single' => + array ( + 'blog-single' => + array ( + 'blog-meta' => + array ( + 'featured-image' => + array ( + 'show' => '1', + 'resize' => '1', + 'width' => '848', + 'height' => '334', + 'lightbox' => '1', + ), + 'date' => + array ( + 'show' => '1', + 'format' => 'j F Y', + ), + 'author' => + array ( + 'show' => '1', + ), + 'categories' => + array ( + 'show' => '1', + ), + 'tags' => + array ( + 'show' => '1', + ), + 'comments' => + array ( + 'show' => '1', + ), + ), + 'author-box' => + array ( + 'show' => '1', + 'title' => 'About the Author', + ), + 'sidebar' => 'right', + 'comments-list' => + array ( + 'heading' => + array ( + 'show' => '1', + 'trans-zero' => 'Comments (0)', + 'trans-one' => 'Comments (1)', + 'trans-more' => 'Comments (%s)', + ), + 'one-comment' => + array ( + 'show-date' => '1', + 'date-format' => 'M d, Y, at g:i A', + 'trans-reply' => 'reply', + 'trans-moderation' => 'Your comment is awaiting moderation.', + ), + ), + 'comments-form' => + array ( + 'heading' => 'Leave a Reply', + 'name' => 'Name', + 'email' => 'Email', + 'website' => 'Url', + 'comment-form' => 'Message', + 'submit-button' => 'Send', + 'logged-in' => 'Logged in as %2$s. Log out?', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/wp-content/themes/milo/default_section_data/content-portfolio-classic.php b/wp-content/themes/milo/default_section_data/content-portfolio-classic.php new file mode 100644 index 0000000..143a77f --- /dev/null +++ b/wp-content/themes/milo/default_section_data/content-portfolio-classic.php @@ -0,0 +1,26 @@ + + array ( + '0-|-portfolio-archive-classic' => + array ( + 'portfolio-archive-classic' => + array ( + 'featured-image' => + array ( + 'link' => 'lightbox', + 'resize' => '1', + 'width' => '533', + 'height' => '300', + ), + 'date-format' => 'd F Y', + 'readmore-show' => '1', + 'readmore-trans' => 'Continue Reading', + 'pagination' => + array ( + 'show' => '1', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/wp-content/themes/milo/default_section_data/footer.php b/wp-content/themes/milo/default_section_data/footer.php new file mode 100644 index 0000000..17cb74d --- /dev/null +++ b/wp-content/themes/milo/default_section_data/footer.php @@ -0,0 +1,23 @@ + + array ( + '0-|-footer-widgets' => + array ( + 'footer-widgets' => + array ( + 'footer-sidebar-1' => '3', + 'footer-sidebar-2' => '3', + 'footer-sidebar-3' => '3', + 'footer-sidebar-4' => '3', + ), + ), + '1-|-footer-bottom' => + array ( + 'footer-bottom' => + array ( + 'content' => '

    © All Rights Reserved Milo template.

    ', + ), + ), + ), +); \ No newline at end of file diff --git a/wp-content/themes/milo/default_section_data/header.php b/wp-content/themes/milo/default_section_data/header.php new file mode 100644 index 0000000..e70b4f7 --- /dev/null +++ b/wp-content/themes/milo/default_section_data/header.php @@ -0,0 +1,35 @@ +get('default header-logo-use') ) { + $defaultLogo = $query->get('default header-logo'); +} + + +$data = array ( + 'sections' => + array ( + '0-|-navigation' => + array ( + 'navigation' => + array ( + 'logo' => + array ( + 'image' => $defaultLogo, + 'image_is_retina' => '0', + ), + 'navigation-menu-id' => '', + 'color-type' => '', + 'search' => + array ( + 'show' => '1', + 'placeholder' => 'Enter your keyword here and then press enter...', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/wp-content/themes/milo/footer.php b/wp-content/themes/milo/footer.php new file mode 100644 index 0000000..1f821cf --- /dev/null +++ b/wp-content/themes/milo/footer.php @@ -0,0 +1,33 @@ + Layouts. + * + * Typically here will be printed (but it depends at you of course) + * - Footer with social icons + * - footer with widgets + * - bottom footer with message + */ +?> +getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getLayoutPrinter() + ->printLayoutAfterContent() + ->printLayoutFooter(); +?> +
    + + + + + + + + + \ No newline at end of file diff --git a/wp-content/themes/milo/framework/adminScreens/ThemeOptions/class.ffAdminScreenThemeOptions.php b/wp-content/themes/milo/framework/adminScreens/ThemeOptions/class.ffAdminScreenThemeOptions.php new file mode 100644 index 0000000..34cafed --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/ThemeOptions/class.ffAdminScreenThemeOptions.php @@ -0,0 +1,13 @@ +_getMenuObject(); + $menu->pageTitle = 'Theme Options'; + $menu->menuTitle = 'Theme Options'; + $menu->type = ffMenu::TYPE_SUB_LEVEL; + $menu->capability = 'manage_options'; + $menu->parentSlug='themes.php'; + return $menu; + } +} diff --git a/wp-content/themes/milo/framework/adminScreens/ThemeOptions/class.ffAdminScreenThemeOptionsViewDefault.php b/wp-content/themes/milo/framework/adminScreens/ThemeOptions/class.ffAdminScreenThemeOptionsViewDefault.php new file mode 100644 index 0000000..830b0e8 --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/ThemeOptions/class.ffAdminScreenThemeOptionsViewDefault.php @@ -0,0 +1,164 @@ +postEmpty() ){ + flush_rewrite_rules( false ); + } + + } + + protected function _render() { + + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowSectionPicker(); + + if( ! ffContainer::getInstance()->getRequest()->postEmpty() ){ + echo ''; + } + + echo '
    '; + echo '
    '; + + echo '

    Theme Options

    '; + + echo ''; + + $this->_renderOptions( + ffThemeContainer::OPTIONS_HOLDER + , ffThemeContainer::OPTIONS_PREFIX + , ffThemeContainer::OPTIONS_NAMESPACE + , ffThemeContainer::OPTIONS_NAME + ); + + echo '
    '; + echo '
    '; + + ?> + + + _getStyleEnqueuer(); + $scriptEnqueuer = $this->_getScriptEnqueuer(); + + if( ffContainer::getInstance()->getRequest()->get('flush-more') ){ + flush_rewrite_rules( false ); + exit; + } + + $styleEnqueuer->addStyleTheme( 'wp-color-picker' ); + $scriptEnqueuer->addScript( 'wp-color-picker'); + + $iconfont_types = array( + 'bootstrap glyphicons' + => '/framework/extern/iconfonts/glyphicon/glyphicon.css', + 'brandico' => '/framework/extern/iconfonts/ff-font-brandico/ff-font-brandico.css', + 'elusive' => '/framework/extern/iconfonts/ff-font-elusive/ff-font-elusive.css', + 'entypo' => '/framework/extern/iconfonts/ff-font-entypo/ff-font-entypo.css', + 'fontelico' => '/framework/extern/iconfonts/ff-font-fontelico/ff-font-fontelico.css', + 'iconic' => '/framework/extern/iconfonts/ff-font-iconic/ff-font-iconic.css', + 'linecons' => '/framework/extern/iconfonts/ff-font-linecons/ff-font-linecons.css', + 'maki' => '/framework/extern/iconfonts/ff-font-maki/ff-font-maki.css', + 'meteocons' => '/framework/extern/iconfonts/ff-font-meteocons/ff-font-meteocons.css', + 'mfglabs' => '/framework/extern/iconfonts/ff-font-mfglabs/ff-font-mfglabs.css', + 'miu' => '/framework/extern/iconfonts/ff-font-miu/ff-font-miu.css', + 'modernpics' => '/framework/extern/iconfonts/ff-font-modernpics/ff-font-modernpics.css', + 'typicons' => '/framework/extern/iconfonts/ff-font-typicons/ff-font-typicons.css', + 'simple line icons' + => '/framework/extern/iconfonts/ff-font-simple-line-icons/ff-font-simple-line-icons.css', + 'weathercons' => '/framework/extern/iconfonts/ff-font-weathercons/ff-font-weathercons.css', + 'websymbols' => '/framework/extern/iconfonts/ff-font-websymbols/ff-font-websymbols.css', + 'zocial' => '/framework/extern/iconfonts/ff-font-zocial/ff-font-zocial.css', + ); + + foreach ($iconfont_types as $name => $path) { + $styleEnqueuer->addStyleFramework( 'icon-option-font-' . str_replace(' ', '_', $name), $path); + } + + + } + + protected function _setDependencies() { + + } + + public function ajaxRequest( ffAdminScreenAjax $ajax ) { + + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxOnePage/class.ffMetaBoxOnePage.php b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxOnePage/class.ffMetaBoxOnePage.php new file mode 100644 index 0000000..1261995 --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxOnePage/class.ffMetaBoxOnePage.php @@ -0,0 +1,12 @@ +_addPostType( 'page' ); + $this->_setTitle('One Page'); + $this->_setContext( ffMetaBox::CONTEXT_NORMAL); + + $this->_setParam( ffMetaBox::PARAM_NORMALIZE_OPTIONS, true); + $this->_addVisibility( ffMetaBox::VISIBILITY_PAGE_TEMPLATE, 'page-onepage.php'); + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxOnePage/class.ffMetaBoxOnePageView.php b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxOnePage/class.ffMetaBoxOnePageView.php new file mode 100644 index 0000000..ecbdcf5 --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxOnePage/class.ffMetaBoxOnePageView.php @@ -0,0 +1,183 @@ +getScriptEnqueuer()->getFrameworkScriptLoader()->requireFfAdmin()->requireFrsLibOptions(); + + ffContainer::getInstance()->getScriptEnqueuer()->addScriptTheme('ff-onepage', '/framework/adminScreens/metaBoxes/metaBoxOnePage/onePage.js'); + + /* $pluginUrl = ffPluginFreshCustomCodeContainer::getInstance()->getPluginUrl(); + ffContainer::getInstance()->getScriptEnqueuer()->addScript('ff-custom-code-metabox-helper', $pluginUrl.'/assets/js/customCodeMetaboxHelper.js'); + ffContainer::getInstance()->getStyleEnqueuer()->addStyle('ff-custom-code-less', $pluginUrl.'/assets/css/customCode.less');*/ + } + + public function requireModalWindows() { + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryColor(); + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryIcon(); + + } + + + public function ajaxRequest( ffAjaxRequest $ajaxRequest ) { + + if( isset($ajaxRequest->data['action']) && $ajaxRequest->data['action'] == 'getOptions' ) { + $this->_renderOptionsAjax( $ajaxRequest->data['postId'] ); + } else if( isset($ajaxRequest->data['action']) && $ajaxRequest->data['action'] == 'setRevision' ) { + + + $postId = $ajaxRequest->data['postId']; + + $revisionNumber = $ajaxRequest->data['revisionNumber']; + + + $revisionManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getOnePageRevisionManager(); + $revisionManager->setPostId( $postId ); + $revisionManager->setRevisionAsContent( $revisionNumber); + + $this->_renderOptionsAjax( $ajaxRequest->data['postId'] ); + + } else { + + $params = array(); + $postId = $ajaxRequest->data['postId']; + parse_str( $ajaxRequest->data['serialised'], $params); + if( !isset($params['has-been-normalized']) ) { + return false; + } + + $fwc = ffContainer::getInstance(); + $saver = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $postId ); + + $postReader = $fwc->getOptionsFactory()->createOptionsPostReader(); + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffComponent_Theme_OnePageOptions')->getOptions(); + + $postReader->setOptionsStructure($s); + $value = $postReader->getDataFromArray( $params ); + + $value = $value['onepage']; + $value = stripslashes_deep( $value ); + + $valueNew = base64_encode(( serialize( $value ) ) ); + + $saver->setOption( 'onepage' , $valueNew ); + + $revisionManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getOnePageRevisionManager(); + $revisionManager->setPostId( $postId ); + $revisionManager->addNewRevision( $valueNew ); + + $this->_printRevisionList( $postId ); + + } + } + + protected function _render( $post ) { + ffContainer::getInstance()->getWPLayer()->add_action('admin_footer', array($this,'requireModalWindows'), 1); + + $fwc = ffContainer::getInstance(); + + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffComponent_Theme_DefaultOptions')->getOptions();//createStructure('portfolio'); + +// $value = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $post->ID )->getOption('onepage'); +// $value = unserialize( base64_decode( $value )); + $printer = $fwc->getOptionsFactory()->createOptionsPrinterJavascriptConvertor( null, $s ); + $printer->setNameprefix('onepage'); + + $printer->walk(); + + echo ''; + +// $revisionManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getOnePageRevisionManager(); +// $revisionManager->setPostId( $post->ID ); +// $revisionManager->setRevisionAsContent(1); + } + + protected function _renderOptionsAjax( $postId ) { + ffContainer::getInstance()->getWPLayer()->add_action('admin_footer', array($this,'requireModalWindows'), 1); + + $fwc = ffContainer::getInstance(); + + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffComponent_Theme_OnePageOptions')->getOptions();//createStructure('portfolio'); + + $value = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $postId )->getOption('onepage'); + $value = unserialize( base64_decode( $value )); + $printer = $fwc->getOptionsFactory()->createOptionsPrinterJavascriptConvertor( $value, $s ); + $printer->setNameprefix('onepage'); + echo '
    '; + echo $printer->walk(); + echo '
    '; + echo ''; + echo ''; + + echo "\n\n".''; + + echo ''; + + echo '
    '; + $this->_printRevisionList( $postId ); + echo '
    '; + + } + + protected function _printRevisionList( $postId ) { + + $revisionManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getOnePageRevisionManager(); + $revisionManager->setPostId( $postId ); + + $currentRevisionNumber = $revisionManager->getCurrentRevisionNumber(); + echo '
    '; + echo '

    Revisions

    '; + echo '
      '; + + foreach( $revisionManager->getListOfRevisionsForCurrentPost() as $revisionNumber => $oneRevision ) { + + $revisionNumberText = $revisionNumber; + if( $revisionNumber == $currentRevisionNumber ) { + $revisionNumberText = 'current'; + } + + + echo '
    • '; + echo 'Revision ' . $oneRevision['number'] . ' (' . $oneRevision['human_time'].') '; + + + if( $revisionNumber == $currentRevisionNumber ) { + echo 'Current'; + } else { + echo ''; + echo 'Rollback'; + echo ''; + } + echo '
    • '; + } + + echo '
    '; + + echo '
    '; + } + + + protected function _save( $postId ) { + + if( !isset($_POST['has-been-normalized']) ) { + return false; + } + + $fwc = ffContainer::getInstance(); + $saver = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $postId ); + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffComponent_Theme_OnePageOptions')->getOptions();//createStructure('portfolio'); + + $postReader = $fwc->getOptionsFactory()->createOptionsPostReader(); + $postReader->setOptionsStructure($s); + $value = $fwc->getOptionsFactory()->createOptionsPostReader()->getData( 'onepage'); + + $valueNew = base64_encode(( serialize( $value ) ) ); + + $saver->setOption( 'onepage' , $valueNew ); + + $revisionManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getOnePageRevisionManager(); + $revisionManager->setPostId( $postId ); + $revisionManager->addNewRevision( $valueNew ); + + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxOnePage/onePage.js b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxOnePage/onePage.js new file mode 100644 index 0000000..91ce2e9 --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxOnePage/onePage.js @@ -0,0 +1,152 @@ +(function($){ + + jQuery(document).ready(function(){ + +/**********************************************************************************************************************/ +/* INITIAL LOADING +/**********************************************************************************************************************/ + var specification = {}; + specification.metaboxClass = 'ffMetaBoxOnePage'; + var data = {}; + data.action = 'getOptions'; + data.postId = $('.ff-post-id-holder').html(); + frslib.ajax.frameworkRequest( 'ffMetaBoxManager', specification, data, function( response ){ + + $('#OnePage .ff-metabox-normalize-options').html( response) ; + + var $toInit = $('#OnePage .ff-metabox-normalize-options .ff-options-js-wrapper '); + frslib.options.functions.initOptionsJS(); + + var url = window.location.href; + if( url.indexOf('post-new.php') == -1 ) { + + $('.ff-onepage-save-ajax').css('display', 'block'); + + } + + }); + +/**********************************************************************************************************************/ +/* PAGE TEMPLATE - switching to one page +/**********************************************************************************************************************/ + var pageTemplateValue = $('#page_template').val(); + + if( pageTemplateValue == 'page-onepage.php' ) { + $('#postdivrich').hide(500); + } + + var url = window.location.href; + + if( url.indexOf('post-new.php') == -1 ) { + + $('.ff-onepage-save-ajax').css('display', 'block'); + + } + + $('#page_template').change(function(){ + + var value = $(this).val(); + + if( value == 'page-onepage.php' ) { + $('#postdivrich').hide(500); + } else { + $('#postdivrich').show(500); + } + + }); + + +/**********************************************************************************************************************/ +/* SAVING ONE PAGE +/**********************************************************************************************************************/ + + $(document).on('click','.ff-onepage-save-ajax', function(){ + + $('#publish').prop('disabled', true); + + var data = {}; + data.postId = $('.ff-post-id').html(); + + var $form = $('.ff-metabox-normalize-options .ff-options-js'); + + + + var $normalizedForm = frslib.options.template.functions.normalize( $form, false ); + + //console.log( $normalizedForm.html() ); + + //return false; + var serialised = $('
    '+$normalizedForm.html()+'
    ').serialize(); + + data.serialised = serialised; + + var specification = {}; + specification.metaboxClass = 'ffMetaBoxOnePage'; + $('#OnePage').animate({opacity:0.5},500); + frslib.ajax.frameworkRequest( 'ffMetaBoxManager', specification, data, function( response ){ + //console.log( response ); + $('#OnePage').animate({opacity:1},500); + + $('#publish').prop('disabled', false); + + $('.ff-revision-list-content').html( response ); + }); + + //frslib.ajax.frameworkRequest = function( owner, specification, data, callback ) { + return false; + + }); + + +/**********************************************************************************************************************/ +/* REVISION SWITCH +/**********************************************************************************************************************/ + $(document).on('click', '.ff-revision-switch', function(){ + + var revisionNumber = $(this).attr('data-revision-number'); + + if( revisionNumber == 'current' ) { + return false; + } + + if( !confirm('You are rolling back to different revision. All your unsaved changes will be lost!' ) ) { + return false; + } + + + var specification = {}; + specification.metaboxClass = 'ffMetaBoxOnePage'; + var data = {}; + data.action = 'setRevision'; + data.postId = $('.ff-post-id-holder').html(); + data.revisionNumber = revisionNumber; + $('#publish').prop('disabled', true); + $('#OnePage').animate({opacity:0.5},500); + frslib.ajax.frameworkRequest( 'ffMetaBoxManager', specification, data, function( response ){ + $('#OnePage .ff-metabox-normalize-options').html( response) ; + + $('#OnePage').animate({opacity:1},500); + + $('#publish').prop('disabled', false); + + var $toInit = $('#OnePage .ff-metabox-normalize-options .ff-options-js-wrapper '); + //frslib.options.functions.initOneOptionSet( $toInit ); + //frslib.options.functions.initOneOptionSet( $(this) ); + frslib.options.functions.initOptionsJS(); + + var url = window.location.href; + + if( url.indexOf('post-new.php') == -1 ) { + + $('.ff-onepage-save-ajax').css('display', 'block'); + + } + }); + + return false; + + }); + + }); + +})(jQuery); \ No newline at end of file diff --git a/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPageTitle/class.ffMetaBoxPageTitle.php b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPageTitle/class.ffMetaBoxPageTitle.php new file mode 100644 index 0000000..9a82ef7 --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPageTitle/class.ffMetaBoxPageTitle.php @@ -0,0 +1,12 @@ +_addPostType( 'page' ); + $this->_setTitle('Page Title'); + $this->_setContext( ffMetaBox::CONTEXT_NORMAL); + + $this->_setParam( ffMetaBox::PARAM_NORMALIZE_OPTIONS, true); + $this->_addVisibility( ffMetaBox::VISIBILITY_PAGE_TEMPLATE, 'default'); + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPageTitle/class.ffMetaBoxPageTitleView.php b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPageTitle/class.ffMetaBoxPageTitleView.php new file mode 100644 index 0000000..1e3e153 --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPageTitle/class.ffMetaBoxPageTitleView.php @@ -0,0 +1,50 @@ +getScriptEnqueuer()->getFrameworkScriptLoader()->requireFfAdmin(); + } + + + public function requireModalWindows() { + } + + + protected function _render( $post ) { + + ffContainer::getInstance()->getWPLayer()->add_action('admin_footer', array($this,'requireModalWindows'), 1); + + $fwc = ffContainer::getInstance(); + + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffComponent_Theme_MetaboxPage_TitleView')->getOptions(); + + + $value = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $post->ID )->getOption('page_title'); + $value = unserialize( base64_decode( $value )); + + $printer = $fwc->getOptionsFactory()->createOptionsPrinterBoxed( $value, $s ); + $printer->setNameprefix('page_title'); + $printer->walk(); + + + } + + + protected function _save( $postId ) { + + + $fwc = ffContainer::getInstance(); + $saver = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $postId ); + + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffComponent_Theme_MetaboxPage_TitleView')->getOptions(); + $postReader = $fwc->getOptionsFactory()->createOptionsPostReader($s); + $value = $postReader->getData('page_title'); + + $valueNew = base64_encode(( serialize( $value ) ) ); + + $saver->setOption( 'page_title' , $valueNew ); + } +} + diff --git a/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolio/class.ffMetaBoxPortfolio.php b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolio/class.ffMetaBoxPortfolio.php new file mode 100644 index 0000000..0ad6d5a --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolio/class.ffMetaBoxPortfolio.php @@ -0,0 +1,11 @@ +_addPostType( 'portfolio' ); + $this->_setTitle('Portfolio Category (Archive) View'); + $this->_setContext( ffMetaBox::CONTEXT_NORMAL); + + $this->_setParam( ffMetaBox::PARAM_NORMALIZE_OPTIONS, true); + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolio/class.ffMetaBoxPortfolioView.php b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolio/class.ffMetaBoxPortfolioView.php new file mode 100644 index 0000000..cce181e --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolio/class.ffMetaBoxPortfolioView.php @@ -0,0 +1,41 @@ +getScriptEnqueuer()->getFrameworkScriptLoader()->requireFfAdmin(); + } + + public function requireModalWindows() { + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryIcon(); + } + + protected function _render( $post ) { + $fwc = ffContainer::getInstance(); + + ffContainer::getInstance()->getWPLayer()->add_action('admin_footer', array($this,'requireModalWindows'), 1); + + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffComponent_Theme_MetaboxPortfolio_CategoryView')->getOptions();//createStructure('portfolio'); + + $value = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $post->ID )->getOption('portfolio_category_options'); + + $printer = $fwc->getOptionsFactory()->createOptionsPrinterBoxed( $value, $s ); + $printer->setNameprefix('portfolio_category_options'); + $printer->walk(); + + } + + + protected function _save( $postId ) { + if( !isset($_POST['has-been-normalized']) ) { + return false; + } + + $fwc = ffContainer::getInstance(); + $saver = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $postId ); + + $value = $fwc->getOptionsFactory()->createOptionsPostReader()->getData( 'portfolio_category_options'); + + $saver->setOption( 'portfolio_category_options' , $value ); + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolioSingle/class.ffMetaBoxPortfolioSingle.php b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolioSingle/class.ffMetaBoxPortfolioSingle.php new file mode 100644 index 0000000..a7e8cfe --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolioSingle/class.ffMetaBoxPortfolioSingle.php @@ -0,0 +1,11 @@ +_addPostType( 'portfolio' ); + $this->_setTitle('Portfolio Single View Settings'); + $this->_setContext( ffMetaBox::CONTEXT_NORMAL); + + $this->_setParam( ffMetaBox::PARAM_NORMALIZE_OPTIONS, true); + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolioSingle/class.ffMetaBoxPortfolioSingleView.php b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolioSingle/class.ffMetaBoxPortfolioSingleView.php new file mode 100644 index 0000000..c08bff0 --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolioSingle/class.ffMetaBoxPortfolioSingleView.php @@ -0,0 +1,44 @@ +getScriptEnqueuer()->getFrameworkScriptLoader()->requireFfAdmin(); + } + + public function requireModalWindows() { + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryColor(); + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryIcon(); + return; + } + + protected function _render( $post ) { + ffContainer::getInstance()->getWPLayer()->add_action('admin_footer', array($this,'requireModalWindows'), 1); + + $fwc = ffContainer::getInstance(); + + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffComponent_Theme_LayoutOptions')->getOptions();//createStructure('portfolio'); + + + $value = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $post->ID )->getOption('onepage'); + $value = unserialize( base64_decode( $value )); + + $printer = $fwc->getOptionsFactory()->createOptionsPrinterJavascriptConvertor( $value, $s ); + $printer->setNameprefix('onepage'); + echo $printer->walk(); + } + + + protected function _save( $postId ) { + + $fwc = ffContainer::getInstance(); + $saver = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $postId ); + + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffComponent_Theme_LayoutOptions')->getOptions(); + $postReader = $fwc->getOptionsFactory()->createOptionsPostReader($s); + $value = $postReader->getData('onepage');//$fwc->getOptionsFactory()->createOptionsPostReader()->getData( 'onepage'); + + $valueNew = base64_encode(( serialize( $value ) ) ); + + $saver->setOption( 'onepage' , $valueNew ); + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolioTitle/class.ffMetaBoxPortfolioTitle.php b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolioTitle/class.ffMetaBoxPortfolioTitle.php new file mode 100644 index 0000000..45c4414 --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolioTitle/class.ffMetaBoxPortfolioTitle.php @@ -0,0 +1,11 @@ +_addPostType( 'portfolio' ); + $this->_setTitle('Portfolio Title View Settings'); + $this->_setContext( ffMetaBox::CONTEXT_NORMAL); + + $this->_setParam( ffMetaBox::PARAM_NORMALIZE_OPTIONS, true); + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolioTitle/class.ffMetaBoxPortfolioTitleView.php b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolioTitle/class.ffMetaBoxPortfolioTitleView.php new file mode 100644 index 0000000..574797d --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPortfolioTitle/class.ffMetaBoxPortfolioTitleView.php @@ -0,0 +1,42 @@ +getScriptEnqueuer()->getFrameworkScriptLoader()->requireFfAdmin(); + } + + public function requireModalWindows() { + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryColor(); + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryIcon(); + } + + protected function _render( $post ) { + $fwc = ffContainer::getInstance(); + + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffComponent_Theme_MetaboxPortfolio_TitleView')->getOptions(); + + $value = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $post->ID )->getOption('portfolio_title_options'); + + $printer = $fwc->getOptionsFactory()->createOptionsPrinterBoxed( $value, $s ); + $printer->setNameprefix('portfolio_title_options'); + $printer->walk(); + + + } + + + protected function _save( $postId ) { + if( !isset($_POST['has-been-normalized']) ) { + return false; + } + + $fwc = ffContainer::getInstance(); + $saver = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $postId ); + + $value = $fwc->getOptionsFactory()->createOptionsPostReader()->getData( 'portfolio_title_options'); + + $saver->setOption( 'portfolio_title_options' , $value ); + + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPostSingle/class.ffMetaBoxPostSingle.php b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPostSingle/class.ffMetaBoxPostSingle.php new file mode 100644 index 0000000..11f865c --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPostSingle/class.ffMetaBoxPostSingle.php @@ -0,0 +1,11 @@ +_addPostType( 'post' ); + $this->_setTitle('Post Single View Settings'); + $this->_setContext( ffMetaBox::CONTEXT_NORMAL); + + $this->_setParam( ffMetaBox::PARAM_NORMALIZE_OPTIONS, true); + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPostSingle/class.ffMetaBoxPostSingleView.php b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPostSingle/class.ffMetaBoxPostSingleView.php new file mode 100644 index 0000000..e622a24 --- /dev/null +++ b/wp-content/themes/milo/framework/adminScreens/metaBoxes/metaBoxPostSingle/class.ffMetaBoxPostSingleView.php @@ -0,0 +1,53 @@ +getScriptEnqueuer()->getFrameworkScriptLoader()->requireFfAdmin(); + } + + public function requireModalWindows() { + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryIcon(); + return; + } + + protected function _render( $post ) { + + ffContainer::getInstance()->getWPLayer()->add_action('admin_footer', array($this,'requireModalWindows'), 1); + + $fwc = ffContainer::getInstance(); + + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffComponent_Theme_SinglePost')->getOptions();//createStructure('portfolio'); + + + $value = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $post->ID )->getOption('single-post'); + $value = unserialize( base64_decode( $value )); + + $printer = $fwc->getOptionsFactory()->createOptionsPrinterBoxed( $value, $s ); + $printer->setNameprefix('single-post'); + $printer->walk(); + + + } + + + protected function _save( $postId ) { + + + $fwc = ffContainer::getInstance(); + $saver = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $postId ); + + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffComponent_Theme_SinglePost')->getOptions(); + $postReader = $fwc->getOptionsFactory()->createOptionsPostReader($s); + $value = $postReader->getData('single-post');//$fwc->getOptionsFactory()->createOptionsPostReader()->getData( 'onepage'); + + + $valueNew = base64_encode(( serialize( $value ) ) ); + + + + $saver->setOption( 'single-post' , $valueNew ); + + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/bootstrap/container.php b/wp-content/themes/milo/framework/bootstrap/container.php new file mode 100644 index 0000000..eb880f3 --- /dev/null +++ b/wp-content/themes/milo/framework/bootstrap/container.php @@ -0,0 +1,140 @@ +_registerThemeFile('ffAdminScreenThemeOptions', '/framework/adminScreens/ThemeOptions/class.ffAdminScreenThemeOptions.php'); + $this->_registerThemeFile('ffAdminScreenThemeOptionsViewDefault', '/framework/adminScreens/ThemeOptions/class.ffAdminScreenThemeOptionsViewDefault.php'); + + $this->_registerThemeFile('ffThemeOptionsHolder', '/framework/core/class.ffThemeOptionsHolder.php'); + $this->_registerThemeFile('ffThemeOptions', '/framework/core/class.ffThemeOptions.php'); + + + $this->_registerThemeFile('ffComponent_Theme_OnePageOptions', '/framework/components/class.ffComponent_Theme_OnePageOptions.php'); + + + + + + $this->_registerThemeFile('ffMetaBoxPortfolio', '/framework/adminScreens/metaBoxes/metaBoxPortfolio/class.ffMetaBoxPortfolio.php'); + $this->_registerThemeFile('ffMetaBoxPortfolioView', '/framework/adminScreens/metaBoxes/metaBoxPortfolio/class.ffMetaBoxPortfolioView.php'); + $this->_registerThemeFile('ffComponent_Theme_MetaboxPortfolio_CategoryView', '/framework/components/class.ffComponent_Theme_MetaboxPortfolio_CategoryView.php'); + + $this->_registerThemeFile('ffMetaBoxPortfolioTitle', '/framework/adminScreens/metaBoxes/metaBoxPortfolioTitle/class.ffMetaBoxPortfolioTitle.php'); + $this->_registerThemeFile('ffMetaBoxPortfolioTitleView', '/framework/adminScreens/metaBoxes/metaBoxPortfolioTitle/class.ffMetaBoxPortfolioTitleView.php'); + $this->_registerThemeFile('ffComponent_Theme_MetaboxPortfolio_TitleView', '/framework/components/class.ffComponent_Theme_MetaboxPortfolio_TitleView.php'); + + $this->_registerThemeFile('ffMetaBoxPortfolioSingle', '/framework/adminScreens/metaBoxes/metaBoxPortfolioSingle/class.ffMetaBoxPortfolioSingle.php'); + $this->_registerThemeFile('ffMetaBoxPortfolioSingleView', '/framework/adminScreens/metaBoxes/metaBoxPortfolioSingle/class.ffMetaBoxPortfolioSingleView.php'); + $this->_registerThemeFile('ffComponent_Theme_MetaboxPortfolio_SingleView', '/framework/components/class.ffComponent_Theme_MetaboxPortfolio_SingleView.php'); + + $this->_registerThemeFile('ffMetaBoxPostSingle', '/framework/adminScreens/metaBoxes/metaBoxPostSingle/class.ffMetaBoxPostSingle.php'); + $this->_registerThemeFile('ffMetaBoxPostSingleView', '/framework/adminScreens/metaBoxes/metaBoxPostSingle/class.ffMetaBoxPostSingleView.php'); + $this->_registerThemeFile('ffComponent_Theme_SinglePost', '/framework/components/class.ffComponent_Theme_SinglePost.php'); + + $this->_registerThemeFile('ffMetaBoxOnePage', '/framework/adminScreens/metaBoxes/metaBoxOnePage/class.ffMetaBoxOnePage.php'); + $this->_registerThemeFile('ffMetaBoxOnePageView', '/framework/adminScreens/metaBoxes/metaBoxOnePage/class.ffMetaBoxOnePageView.php'); + + + $this->_registerThemeFile('ffComponent_Theme_MetaboxPage_TitleView', '/framework/components/class.ffComponent_Theme_MetaboxPage_TitleView.php'); + $this->_registerThemeFile('ffMetaBoxPageTitle', '/framework/adminScreens/metaBoxes/metaBoxPageTitle/class.ffMetaBoxPageTitle.php'); + $this->_registerThemeFile('ffMetaBoxPageTitleView', '/framework/adminScreens/metaBoxes/metaBoxPageTitle/class.ffMetaBoxPageTitleView.php'); + + + + $this->_registerThemeFile('ffComponent_Theme_LayoutOptions', '/framework/components/class.ffComponent_Theme_LayoutOptions.php'); + $this->_registerThemeFile('ffComponent_Theme_DefaultOptions', '/framework/components/class.ffComponent_Theme_DefaultOptions.php'); + + + + + $this->_registerThemeFile('ffThemeOptionsHolder', '/framework/core/class.ffThemeOptionsHolder.php'); + + + $this->_registerThemeFile('ffThemeOptions', '/framework/core/class.ffThemeOptions.php'); + + $this->_registerThemeFile('ffThemeLayoutPreparator', '/framework/core/class.ffThemeLayoutPreparator.php'); + $this->getFrameworkContainer()->getClassLoader()->loadClass( 'ffThemeOptions' ); + + + $this->_registerThemeFile( 'ffWidgetLatestPosts', '/framework/components/widgets/latestPosts/class.ffWidgetLatestPosts.php'); + $this->_registerThemeFile( 'ffComponent_LatestPosts_OptionsHolder', '/framework/components/widgets/latestPosts/class.ffComponent_LatestPosts_OptionsHolder.php'); + $this->_registerThemeFile( 'ffComponent_LatestPosts_Printer', '/framework/components/widgets/latestPosts/class.ffComponent_LatestPosts_Printer.php'); + + + $this->_registerThemeFile( 'ffWidgetLatestPortfolio', '/framework/components/widgets/latestPortfolio/class.ffWidgetLatestPortfolio.php'); + $this->_registerThemeFile( 'ffComponent_LatestPortfolioWidget_OptionsHolder', '/framework/components/widgets/latestPortfolio/class.ffComponent_LatestPortfolioWidget_OptionsHolder.php'); + $this->_registerThemeFile( 'ffComponent_LatestPortfolioWidget_Printer', '/framework/components/widgets/latestPortfolio/class.ffComponent_LatestPortfolioWidget_Printer.php'); + + + + $this->_registerThemeFile('freshizer', '/framework/core/freshizer.php'); + $this->getFrameworkContainer()->getClassLoader()->loadClass( 'freshizer' ); + + + $this->_registerThemeFile('ffWidgetLatestPosts', '/framework/widgets/class.ffWidgetLatestPosts.php'); + + $this->_registerThemeFile('ffComponent_LatestPosts_OptionsHolder', '/framework/components/class.ffComponent_LatestPosts_OptionsHolder.php'); + $this->_registerThemeFile('ffComponent_OxygenLatestPosts_Printer', '/framework/components/class.ffComponent_OxygenLatestPosts_Printer.php'); + + $this->_registerThemeFile('ffThemeAssetsIncluder', '/framework/theme/class.ffThemeAssetsIncluder.php'); + + + $this->_registerThemeFile('ffComponent_TwitterWidget_OptionsHolder', '/framework/components/widgets/twitter/class.ffComponent_TwitterWidget_OptionsHolder.php'); + $this->_registerThemeFile('ffComponent_TwitterWidget_Printer', '/framework/components/widgets/twitter/class.ffComponent_TwitterWidget_Printer.php'); + $this->_registerThemeFile('ffWidgetTwitter', '/framework/components/widgets/twitter/class.ffWidgetTwitter.php'); + +/**********************************************************************************************************************/ +/* WIDGET - contact us +/**********************************************************************************************************************/ + $this->_registerThemeFile('ffComponent_ContactUsWidget_OptionsHolder', '/framework/components/widgets/contactUs/class.ffComponent_ContactUsWidget_OptionsHolder.php'); + $this->_registerThemeFile('ffComponent_ContactUsWidget_Printer', '/framework/components/widgets/contactUs/class.ffComponent_ContactUsWidget_Printer.php'); + $this->_registerThemeFile('ffWidgetContactUs', '/framework/components/widgets/contactUs/class.ffWidgetContactUs.php'); + +/**********************************************************************************************************************/ +/* WIDGET - latest news +/**********************************************************************************************************************/ + $this->_registerThemeFile('ffComponent_LatestNewsWidget_OptionsHolder', '/framework/components/widgets/latestNews/class.ffComponent_LatestNewsWidget_OptionsHolder.php'); + $this->_registerThemeFile('ffComponent_LatestNewsWidget_Printer', '/framework/components/widgets/latestNews/class.ffComponent_LatestNewsWidget_Printer.php'); + $this->_registerThemeFile('ffWidgetLatestNews', '/framework/components/widgets/latestNews/class.ffWidgetLatestNews.php'); + + + } + + private $_themeLayoutPreparator = null; + + public function getThemeLayoutPreparator() { + if( $this->_themeLayoutPreparator == null ) { + $this->getFrameworkContainer()->getClassLoader()->loadClass('ffThemeLayoutPreparator'); + $this->_themeLayoutPreparator = new ffThemeLayoutPreparator( $this->getFrameworkContainer()->getWPLayer() ); + } + + return $this->_themeLayoutPreparator; + } + +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/bootstrap/infoFile.php b/wp-content/themes/milo/framework/bootstrap/infoFile.php new file mode 100644 index 0000000..5879fcc --- /dev/null +++ b/wp-content/themes/milo/framework/bootstrap/infoFile.php @@ -0,0 +1,6 @@ +_getContainer()->getFrameworkContainer(); + $fwc->getAdminScreenManager()->addAdminScreenClassName('ffAdminScreenThemeOptions'); + $fwc->getMetaBoxes()->getMetaBoxManager()->addMetaBoxClassName('ffMetaBoxPortfolio'); + $fwc->getMetaBoxes()->getMetaBoxManager()->addMetaBoxClassName('ffMetaBoxPortfolioSingle'); + $fwc->getMetaBoxes()->getMetaBoxManager()->addMetaBoxClassName('ffMetaBoxOnePage'); + $fwc->getMetaBoxes()->getMetaBoxManager()->addMetaBoxClassName('ffMetaBoxPageTitle'); + + $fwc->getWidgetManager()->addWidgetClassName('ffWidgetTwitter'); + $fwc->getWidgetManager()->addWidgetClassName('ffWidgetContactUs'); + $fwc->getWidgetManager()->addWidgetClassName('ffWidgetLatestNews'); + $fwc->getWidgetManager()->addWidgetClassName('ffWidgetLatestPortfolio'); + } + + protected function _run() { + } + + protected function _ajax() { + + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/components/class.ffComponent_Theme_DefaultOptions.php b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_DefaultOptions.php new file mode 100644 index 0000000..1034c5b --- /dev/null +++ b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_DefaultOptions.php @@ -0,0 +1,19 @@ +_getOnestructurefactory()->createOneStructure('layout'); + + $s->startSection('sections', ffOneSection::TYPE_REPEATABLE_VARIABLE) + ->addParam('section-picker', 'advanced') + ; + + $s->addOption(ffOneOption::TYPE_REVOLUTION_SLIDER, 'revo-slider', 'revo slider'); + $s->addOption( ffOneOption::TYPE_NAVIGATION_MENU_SELECTOR, 'menu-selector', 'menu-selector'); + + $s->endSection(); + + return $s; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/components/class.ffComponent_Theme_LayoutOptions.php b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_LayoutOptions.php new file mode 100644 index 0000000..bfc6dc7 --- /dev/null +++ b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_LayoutOptions.php @@ -0,0 +1,19 @@ +_getOnestructurefactory()->createOneStructure('layout'); + + $s->startSection('sections', ffOneSection::TYPE_REPEATABLE_VARIABLE) + ->addParam('section-picker', 'advanced') + ; + + ff_load_nonstandard_section_options( '/framework/components/sectionIncluding.php', $s); + + $s->endSection(); + + //ffContainer()->getFileSystem()->copy($source, $destination); + return $s; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/components/class.ffComponent_Theme_MetaboxPage_TitleView.php b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_MetaboxPage_TitleView.php new file mode 100644 index 0000000..bd312b2 --- /dev/null +++ b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_MetaboxPage_TitleView.php @@ -0,0 +1,17 @@ +_getOnestructurefactory()->createOneStructure( 'page_title'); + + $s->startSection('general'); + $s->addElement( ffOneElement::TYPE_TABLE_START ); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Show Page Title'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show', 'Show Page Title', 1 ); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END ); + $s->addElement( ffOneElement::TYPE_TABLE_END ); + $s->endSection(); + return $s; + } +} + diff --git a/wp-content/themes/milo/framework/components/class.ffComponent_Theme_MetaboxPortfolio_CategoryView.php b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_MetaboxPortfolio_CategoryView.php new file mode 100644 index 0000000..02ba4c6 --- /dev/null +++ b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_MetaboxPortfolio_CategoryView.php @@ -0,0 +1,75 @@ +_getOnestructurefactory()->createOneStructure( 'category'); + + $s->startSection('general'); + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Date'); + $s->startSection('date'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'different', 'Use this date instead of date when portfolio has been created', 0); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'date', 'Date', '05 March 2015'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END ); + + + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Title'); + $s->startSection('title'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'different', 'Use this Title instead of portfolio title', 0); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'title', 'Title', 'Conceptual industrial design'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Sub Title'); + $s->startSection('subtitle'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'different', 'Use this Sub Title instead of first portfolio tag', 0); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'subtitle', 'Sub Title', 'Packaging design'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Description'); + $s->startSection('description'); + $default = 'Lorem ipsum dolor sit amet, consectetur enim ad minim elit, sed do eiusmod tempor omis unde ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.'; + $s->addOption( ffOneOption::TYPE_TEXTAREA, 'description', 'Description', $default); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Button (if presented)'); + $s->startSection('button'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'different-caption', 'Use this caption instead of settings from Portfolio Classic Arhcive', 0); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'caption', 'Caption', 'Caption'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'different-url', 'Use this URL for button instead of linking to Single Portfolio', 0); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'url', 'Packaging design', 'http://www.yoururl.com/'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END ); + + + // $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Heading'); + // $s->startSection('text'); + // $s->addOption( ffOneOption::TYPE_TEXT, 'title', 'Title', 'Project Title'); + // $s->addElement(ffOneElement::TYPE_NEW_LINE ); + // $s->addOption( ffOneOption::TYPE_TEXT, 'subtitle', 'Subtitle', 'Website Design'); + // $s->endSection(); + // $s->addElement(ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + $s->endSection(); + return $s; + } +} + diff --git a/wp-content/themes/milo/framework/components/class.ffComponent_Theme_MetaboxPortfolio_SingleView.php b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_MetaboxPortfolio_SingleView.php new file mode 100644 index 0000000..dbfd453 --- /dev/null +++ b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_MetaboxPortfolio_SingleView.php @@ -0,0 +1,77 @@ +_getOnestructurefactory()->createOneStructure( 'aaa'); + + $s->startSection('general'); + $s->addElement( ffOneElement::TYPE_TABLE_START ); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Front Image'); + $s->startSection('image'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'fullwidth', 'Front image is fulwidth (overlays sidebar)', 0); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Sidebar'); + $s->startSection('sidebar'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show', 'Show sidebar', 1); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + + $s->startSection( 'items', ffOneSection::TYPE_REPEATABLE_VARIABLE ); + $s->startSection('about', ffOneSection::TYPE_REPEATABLE_VARIATION)->addParam('section-name', 'About'); + $s->addOption( ffOneOption::TYPE_TEXT, 'title', 'Title', 'About Project'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $text = '

    Culpa eu et pariatur tempor est aliquip qui anim enim culpa magna laboris sint aliqua ad excepteur mollit.

    '; + $s->addOption( ffOneOption::TYPE_TEXTAREA, 'text', 'Text', $text); + $s->endSection(); + + $s->startSection('tools', ffOneSection::TYPE_REPEATABLE_VARIATION)->addParam('section-name', 'Tools'); + $s->addOption( ffOneOption::TYPE_TEXT, 'title', 'Title', 'Tools Used'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->startSection( 'skills', ffOneSection::TYPE_REPEATABLE_VARIABLE ); + $s->startSection('one-skill', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'One Skill'); + $s->addOption( ffOneOption::TYPE_TEXT, 'title', 'Title', 'Photoshop'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption( ffOneOption::TYPE_TEXT, 'percentage', 'Percentage', '75'); + $s->endSection(); + $s->endSection(); + $s->endSection(); + + $s->startSection('details', ffOneSection::TYPE_REPEATABLE_VARIATION)->addParam('section-name', 'Project Details'); + $s->addOption( ffOneOption::TYPE_TEXT, 'title', 'Title', 'Project Details'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->startSection( 'details', ffOneSection::TYPE_REPEATABLE_VARIABLE ); + $s->startSection('one-detail', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'One Detail'); + $s->addOption( ffOneOption::TYPE_ICON, 'icon', 'Icon', ''); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption( ffOneOption::TYPE_TEXT, 'type', 'Type', 'Client'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption( ffOneOption::TYPE_TEXT, 'value', 'Value', 'Google, Inc'); + $s->endSection(); + $s->endSection(); + + ff_load_section_options( 'buttons-block', $s); + + $s->endSection(); + + $s->endSection(); + $s->endSection(); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Related Projects'); + $s->startSection('related-projects'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show', 'Show Related Projects', 1); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + $s->endSection(); + return $s; + } +} + diff --git a/wp-content/themes/milo/framework/components/class.ffComponent_Theme_MetaboxPortfolio_TitleView.php b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_MetaboxPortfolio_TitleView.php new file mode 100644 index 0000000..928151c --- /dev/null +++ b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_MetaboxPortfolio_TitleView.php @@ -0,0 +1,54 @@ +_getOnestructurefactory()->createOneStructure( 'aaa'); + + + + $s->startSection('general'); + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + ff_load_section_options( 'section-settings-block', $s); + + ff_load_section_options( 'section-background-block', $s); + + + $s->startSection('page-title'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Heading Title'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show-title', 'Show Title ', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'is-custom-title', 'Use custom   ', 0); + $s->addOption( ffOneOption::TYPE_TEXT, 'title', '', 'Custom Page Title'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Subheading'); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show-description', 'Show Description', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_SELECT, 'description-style', 'Description style', 'lead') + ->addSelectValue('Smaller', '') + ->addSelectValue('Bigger', 'lead'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXTAREA, 'description', '', 'This is a sub-title placeholder, you can put your page description here.'); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->endSection(); + + $s->startSection('breadcrumbs'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Breadcrumbs'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show', 'Show', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'before', 'Text before', 'You are here: '); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + $s->endSection(); + return $s; + } +} + diff --git a/wp-content/themes/milo/framework/components/class.ffComponent_Theme_OnePageOptions.php b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_OnePageOptions.php new file mode 100644 index 0000000..17b0d5a --- /dev/null +++ b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_OnePageOptions.php @@ -0,0 +1,18 @@ +_getOnestructurefactory()->createOneStructure( 'data' ); + + + $s->startSection('sections', ffOneSection::TYPE_REPEATABLE_VARIABLE) + ->addParam('section-picker', 'advanced') + ; + + ff_load_nonstandard_section_options( '/framework/components/sectionIncluding.php', $s); + + $s->endSection(); + + return $s; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/components/class.ffComponent_Theme_SinglePost.php b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_SinglePost.php new file mode 100644 index 0000000..fe88a75 --- /dev/null +++ b/wp-content/themes/milo/framework/components/class.ffComponent_Theme_SinglePost.php @@ -0,0 +1,33 @@ +_getOnestructurefactory()->createOneStructure('layout'); + + $s->startSection('general'); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->startSection('blogpost-header'); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Blogpost Header' ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show', 'Show', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Here is the big headline for your blog post'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $descriptionDefault = 'Morbi lacus massa, euismod ut turpis molestie, tristique sodales est. Integer sit amet mi id sapien tempor molestie in nec massa. Fusce non ante sed lorem rutrum feugiat.'; + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'description', 'Description', $descriptionDefault ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + + $s->endSection(); + + return $s; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/components/sectionIncluding.php b/wp-content/themes/milo/framework/components/sectionIncluding.php new file mode 100644 index 0000000..8d13bf3 --- /dev/null +++ b/wp-content/themes/milo/framework/components/sectionIncluding.php @@ -0,0 +1,93 @@ +_getOnestructurefactory()->createOneStructure( 'contact-us-structure' ); + $s->startSection('contact-us', 'Contact Us'); + + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Contact Us'); + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->startSection('description-boxes', ffOneSection::TYPE_REPEATABLE_VARIABLE ); + $s->startSection('one-box', ffOneSection::TYPE_REPEATABLE_VARIATION)->addParam('section-name', 'One Box'); + + $s->startSection('lines', ffOneSection::TYPE_REPEATABLE_VARIABLE ); + $s->startSection('one-heading', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'One Heading'); + $s->addOption( ffOneOption::TYPE_TEXT, 'text', 'Text', 'Address'); + $s->endSection(); + + $s->startSection('one-line', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'One Text Line'); + $s->addOption( ffOneOption::TYPE_TEXT, 'text', 'Text', '1713 Hide A Way Road'); + $s->endSection(); + + $s->startSection('one-email', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'One Email'); + $s->addOption( ffOneOption::TYPE_TEXT, 'text', 'Text', 'your@email.com'); + $s->endSection(); + $s->endSection(); + + $s->endSection(); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->endSection(); + return $s; + } +} + diff --git a/wp-content/themes/milo/framework/components/widgets/contactUs/class.ffComponent_ContactUsWidget_Printer.php b/wp-content/themes/milo/framework/components/widgets/contactUs/class.ffComponent_ContactUsWidget_Printer.php new file mode 100644 index 0000000..9d86948 --- /dev/null +++ b/wp-content/themes/milo/framework/components/widgets/contactUs/class.ffComponent_ContactUsWidget_Printer.php @@ -0,0 +1,40 @@ +get('contact-us title') ); + echo $args['after_title']; + + + echo '
      '; + + foreach( $query->get('contact-us description-boxes') as $oneBox ) { + echo '
    • '; + + foreach( $oneBox->get('lines') as $oneLine ) { + $type = $oneLine->getVariationType(); + + if( $type == 'one-line' ) { + echo ff_wp_kses( $oneLine->get('text') ) . '
      '; + } else if ( $type == 'one-heading' ) { + echo '' . ff_wp_kses( $oneLine->get('text') ) . ''; + } else if ( $type == 'one-email' ) { + echo ''.ff_wp_kses($oneLine->get('text')).'
      '; + } + } + + echo '
    • '; + } + + echo '
    '; + + echo $args['after_widget']; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/components/widgets/contactUs/class.ffWidgetContactUs.php b/wp-content/themes/milo/framework/components/widgets/contactUs/class.ffWidgetContactUs.php new file mode 100644 index 0000000..3a63c66 --- /dev/null +++ b/wp-content/themes/milo/framework/components/widgets/contactUs/class.ffWidgetContactUs.php @@ -0,0 +1,10 @@ +_getOnestructurefactory()->createOneStructure( 'latest-news-structure' ); + $s->startSection('latest-news', 'Latest News'); + + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Latest News'); + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + + + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + $s->addElement( ffOneElement::TYPE_HTML,'','Categories'); + $s->addOption( ffOneOption::TYPE_TAXONOMY, 'categories', 'Categories', 'all') + ->addParam('tax_type', 'category') + ->addParam('type', 'multiple') + ; + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + + + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + $s->addOption(ffOneOption::TYPE_TEXT, 'number-of-posts', 'Number of Posts', '3'); + + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + $s->addOption(ffOneOption::TYPE_SELECT, 'style', 'Style', '') + ->addSelectValue('Normal', '') + ->addSelectValue('Alternative', 'alt') + ; + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + + $s->endSection(); + return $s; + } +} + diff --git a/wp-content/themes/milo/framework/components/widgets/latestNews/class.ffComponent_LatestNewsWidget_Printer.php b/wp-content/themes/milo/framework/components/widgets/latestNews/class.ffComponent_LatestNewsWidget_Printer.php new file mode 100644 index 0000000..f3bc495 --- /dev/null +++ b/wp-content/themes/milo/framework/components/widgets/latestNews/class.ffComponent_LatestNewsWidget_Printer.php @@ -0,0 +1,62 @@ +getMultipleSelect('latest-news categories'); + $numberOfPosts = $query->get('latest-news number-of-posts'); + + $postGetter = ffContainer()->getPostLayer()->getPostGetter(); + + $posts = $postGetter->setFilterRelation_OR()->setNumberOfPosts($numberOfPosts)->filterByCategory( $categories )->getAllPosts(); + + echo $args['before_widget']; + + echo $args['before_title']; + echo ff_wp_kses( $query->get('latest-news title') ); + echo $args['after_title']; + + echo 'get('latest-news style') ){ + echo ' class="alt"'; + } + echo '>'; + + if( 'alt' == $query->get('latest-news style') ){ + foreach( $posts as $onePost ) { + $featuredImageUrl = $onePost->getFeaturedImage(); + + if( empty( $featuredImageUrl ) ) { + continue; + } + + $featuredImageUrlResized = fImg::resize( $featuredImageUrl, 65, 65, true ); + echo '
  • '; + echo ''; + echo ''.ff_wp_kses( $onePost->getTitle() ).''; + echo ''; + echo '
  • '; + } + }else{ + foreach( $posts as $onePost ) { + $featuredImageUrl = $onePost->getFeaturedImage(); + + if( empty( $featuredImageUrl ) ) { + continue; + } + + $featuredImageUrlResized = fImg::resize( $featuredImageUrl, 80, 80, true ); + echo '
  • '; + echo ''; + echo '

    '; + echo ''.ff_wp_kses( $onePost->getTitle() ).''; + echo '

    '; + echo '

    '.ff_wp_kses( $onePost->getDateFormated( 'F d, Y' ) ).'

    '; + echo '
  • '; + } + } + + echo ''; + + echo $args['after_widget']; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/components/widgets/latestNews/class.ffWidgetLatestNews.php b/wp-content/themes/milo/framework/components/widgets/latestNews/class.ffWidgetLatestNews.php new file mode 100644 index 0000000..7937895 --- /dev/null +++ b/wp-content/themes/milo/framework/components/widgets/latestNews/class.ffWidgetLatestNews.php @@ -0,0 +1,10 @@ +_getOnestructurefactory()->createOneStructure( 'latest-news-structursse' ); + $s->startSection('latest-portfolio', 'Latest Portfolio'); + + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Latest Portfolio'); + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + + + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + $s->addElement( ffOneElement::TYPE_HTML,'','Portfolio Categories'); + $s->addOption( ffOneOption::TYPE_TAXONOMY, 'categories', 'Portfolio Categories', 'all') + ->addParam('tax_type', 'ff-portfolio-category') + ->addParam('type', 'multiple') + ; + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + + + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'number-of-posts', 'Number of Posts', '3'); + + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show-description', 'Show description', 0); + + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + + $description = 'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt'; + $s->addOption( ffOneOption::TYPE_TEXTAREA, 'description', 'Description', $description); + + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + + $s->endSection(); + return $s; + } +} + diff --git a/wp-content/themes/milo/framework/components/widgets/latestPortfolio/class.ffComponent_LatestPortfolioWidget_Printer.php b/wp-content/themes/milo/framework/components/widgets/latestPortfolio/class.ffComponent_LatestPortfolioWidget_Printer.php new file mode 100644 index 0000000..01d3755 --- /dev/null +++ b/wp-content/themes/milo/framework/components/widgets/latestPortfolio/class.ffComponent_LatestPortfolioWidget_Printer.php @@ -0,0 +1,62 @@ +getMultipleSelect('latest-portfolio categories'); + + $categoriesCheck = ( $query->get('latest-portfolio categories')); + + if( empty( $categoriesCheck ) || $categoriesCheck == 'all' ) { + $categories = null; + } + + $numberOfPosts = $query->get('latest-portfolio number-of-posts'); + + $postGetter = ffContainer()->getPostLayer()->getPostGetter(); + + $posts = $postGetter + ->setFilterRelation_OR() + ->setNumberOfPosts($numberOfPosts) + ->filterByTaxonomy($categories, 'ff-portfolio-category') + ->getAll(); + +// var_dump( $posts, $categories, $numberOfPosts ); + +// var_Dump( $posts ); + + + echo $args['before_widget']; + + echo $args['before_title']; + echo ff_wp_kses( $query->get('latest-portfolio title') ); + echo $args['after_title']; + + if( !empty( $posts ) ) { + + echo '
    '; + + foreach( $posts as $onePost ) { + $featuredImage = $onePost->getFeaturedImage(); + + if( empty( $featuredImage ) ) { + continue; + } + echo '
    '; + echo ''; + echo ''; + echo ''; + echo '
    '; + } + + if( $query->get('latest-portfolio show-description') ) { + echo '

    '.ff_wp_kses( $query->get('latest-portfolio description') ).'

    '; + } + + echo '
    '; + + } + + echo $args['after_widget']; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/components/widgets/latestPortfolio/class.ffWidgetLatestPortfolio.php b/wp-content/themes/milo/framework/components/widgets/latestPortfolio/class.ffWidgetLatestPortfolio.php new file mode 100644 index 0000000..71b0c83 --- /dev/null +++ b/wp-content/themes/milo/framework/components/widgets/latestPortfolio/class.ffWidgetLatestPortfolio.php @@ -0,0 +1,10 @@ +_getOnestructurefactory()->createOneStructure( 'twitter-structure' ); + $s->startSection('twitter', 'Twitter'); + + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Twitter Feeds'); + $s->addElement( ffOneElement::TYPE_HTML, '', '

    ' ); + + $s->startSection('fw_twitter'); + $s->addOption(ffOneOption::TYPE_TEXT, 'username', 'Username', '_freshface'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_TEXT, 'number-of-tweets', 'Number of Tweets', '5'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_TEXT, 'caching-time-in-minutes', 'Caching time in minutes', '60'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + // $this->_auth['consumerKey'], $this->_auth['consumerSecret'], $this->_auth['accessToken'], $this->_auth['accessTokenSecret'] + + $s->addOption(ffOneOption::TYPE_TEXT, 'consumer-key', 'Consumer Key'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_TEXT, 'consumer-secret', 'Consumer Secret'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_TEXT, 'access-token', 'Access Token'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_TEXT, 'access-token-secret', 'Access Token Secret'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + $s->endSection(); + return $s; + } +} + diff --git a/wp-content/themes/milo/framework/components/widgets/twitter/class.ffComponent_TwitterWidget_Printer.php b/wp-content/themes/milo/framework/components/widgets/twitter/class.ffComponent_TwitterWidget_Printer.php new file mode 100644 index 0000000..9b2a33d --- /dev/null +++ b/wp-content/themes/milo/framework/components/widgets/twitter/class.ffComponent_TwitterWidget_Printer.php @@ -0,0 +1,67 @@ +get('fw_twitter'); +//$username = $fw_twitter->get('username'); + +$twitterFeeder = ffContainer::getInstance()->getLibManager()->createTwitterFeeder(); +ffContainer::getInstance()->getClassLoader()->loadClass('ffOptionsHolder_Twitter'); + +$tweetsCollection = ($twitterFeeder->getTwitterFeed( $query->get('twitter fw_twitter') )); + + //var_dump( $tweetsCollection); + $tweetsText = ''; + if( ! $tweetsCollection->valid() ){ + $tweetsText .= '
  • '; + $tweetsText .= ''; + $tweetsText .= ''; + $tweetsText .= '

    Bad Twitter account data!

    '; + $tweetsText .= '
    '; + $tweetsText .= '
  • '; + }else{ + foreach( $tweetsCollection as $oneTweet ) { + $tweetsText .= '
  • '; + $tweetsText .= ''; + $tweetsText .= $oneTweet->textWithLinks; + $tweetsText .= ''; + + $tweetsText .= ''; + + $timeFormat = 'g:i A - j M Y'; + $time = ( strtotime($oneTweet->date) ); + $date = date( $timeFormat, $time); + + $tweetsText .= ' '; + $tweetsText .= $date; + $tweetsText .= ''; + + $tweetsText .= ''; + + $tweetsText .= '
  • '; + + } + } + + echo $before_widget; + + $title = trim( $query->get('twitter title') ); + if( !empty($title) ){ + + // Default WP text + echo $before_title . ff_wp_kses( $title ) . $after_title; + + } + + echo '
      '; + echo $tweetsText; + echo '
    '; + + echo $after_widget; + + + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/components/widgets/twitter/class.ffWidgetTwitter.php b/wp-content/themes/milo/framework/components/widgets/twitter/class.ffWidgetTwitter.php new file mode 100644 index 0000000..2dcee84 --- /dev/null +++ b/wp-content/themes/milo/framework/components/widgets/twitter/class.ffWidgetTwitter.php @@ -0,0 +1,18 @@ +printComponent($args, $query, $widgetPrinter ); +// } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/core/class.ffThemeLayoutPreparator.php b/wp-content/themes/milo/framework/core/class.ffThemeLayoutPreparator.php new file mode 100644 index 0000000..e4f75f6 --- /dev/null +++ b/wp-content/themes/milo/framework/core/class.ffThemeLayoutPreparator.php @@ -0,0 +1,166 @@ +_WPLayer = $WPLayer; + + $this->_getWPLayer()->add_action('get_header', array($this, 'prepareLayouts') ); + } + + public function getLayoutInfo( $layoutId ) { + } + + private function _loadLayoutData() { + } + + + public function prepareLayouts() { + + $fwc = ffContainer(); + + $data = $fwc->getDataStorageFactory()->createDataStorageOptionsPostType()->getOptionCoded( ffThemeContainer::THEME_NAME_LOW.'-layouts', 'placements'); + $evaluator = $fwc->getLibManager()->createConditionalLogicEvaluator(); + $postMeta = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas(); + + if( empty( $data ) ) { + return false; + } + + foreach( $data as $layoutId => $layoutPlacementData ) { + $condition = $layoutPlacementData['condition']; + $conditionQuery = $fwc->getOptionsFactory()->createQuery( $condition,'ffComponent_Theme_LayoutConditions'); + + $placement = $layoutPlacementData['placement']; + $placementQuery = $fwc->getOptionsFactory()->createQuery( $placement, 'ffComponent_Theme_LayoutPlacement'); + + $default = $placementQuery->get('radio default'); + + + if( $default ) { + $layout = new stdClass(); + + $layout->placementType = $placementQuery->get('radio placement'); + $layout->placementPriority = $placementQuery->get('radio priority'); + $layout->conditionQuery = $conditionQuery; + $layout->data = $postMeta->getOptionCoded( $layoutId, 'onepage'); + + $this->_addDefaultLayout($layout); + } else { + + if ( $evaluator->evaluate( $conditionQuery->get('conditions show-where') ) ) { + $placementType = $placementQuery->get('radio placement'); + $placementPriority = $placementQuery->get('radio priority'); + $onePageData = $postMeta->getOptionCoded( $layoutId, 'onepage'); + $this->_addLayout( $placementType, $placementPriority, $onePageData); + } + } + } + + + + } + + private function _getFallbackData( $type ) { + if( isset( $this->_defaultLayouts[ $type ] ) ) { + return $this->_defaultLayouts[ $type ]; + } else { + return null; + } + } + + public function printLayout( $type ) { + + if( in_array($type, array('header', 'content', 'footer') ) && !isset($this->_layouts[$type]) ) { + + $defaultData = $this->_getDefaultData($type); + + if( $defaultData !== null ) { + $this->_layouts[ $type ] = $defaultData; + } else { + + } + + } else if( isset($this->_layouts[$type]) ) { + + } + + + if( isset( $this->_layouts [ $type ] ) ) { + + ksort( $this->_layouts [ $type ] ); + foreach( $this->_layouts[ $type ] as $priority => $content ) { + foreach( $content as $oneSection ) { + $postQuery = ffContainer::getInstance()->getOptionsFactory()->createQuery( $oneSection,'ffComponent_Theme_LayoutOptions'); + ffSectionTemplateManager::requireSectionsFromQuery( $postQuery->get('sections') ); + } + } + + if( ffThemeOptions::getQuery('layout enable-developer-mode') ) { + echo '
    '.ff_wp_kses( $type ).'
    '; + } + + } + + } + + private function _getDefaultData( $type ) { + if( !isset( $this->_defaultLayouts[ $type ] ) ) { + return null; + } + + $evaluator = ffContainer()->getLibManager()->createConditionalLogicEvaluator(); + + ksort( $this->_defaultLayouts[ $type ] ); + $availableLayouts = array(); + foreach( $this->_defaultLayouts[ $type ] as $priority=> $layouts) { + + foreach( $layouts as $oneLayout ) { + + if ( $evaluator->evaluate( $oneLayout->conditionQuery->get('conditions show-where') )) { + $availableLayouts[] = $oneLayout->data; + } + } + + } + + $arrayToReturn = array(); + $arrayToReturn[5] = $availableLayouts; + + return $arrayToReturn; + } + + private function _addDefaultLayout( $layout) { + $this->_defaultLayouts[ $layout->placementType ][ $layout->placementPriority ][] = $layout; + } + + private function _addLayout( $type, $priority, $data ) { + $this->_layouts[ $type ][ $priority ][] = $data; + } + + private function _getWPLayer() { + return $this->_WPLayer; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/framework/core/class.ffThemeOptions.php b/wp-content/themes/milo/framework/core/class.ffThemeOptions.php new file mode 100644 index 0000000..776d0ad --- /dev/null +++ b/wp-content/themes/milo/framework/core/class.ffThemeOptions.php @@ -0,0 +1,132 @@ +_getQuery(); + + if( $path != null ) { + $path = 'theme_options '. $path; + return $query->get( $path ); + } else { + return $query; + } + } + + public static function get( $name, $default = null ){ + return self::getInstance()->_get( $name, $default ); + } + + public static function addFeaturedAreaToRemoveFromContent( $html ){ + return self::getInstance()->_addFeaturedAreaToRemoveFromContent( $html ); + } + + public static function removeFeaturedAreaToRemoveFromContent( $html ){ + return self::getInstance()->_removeFeaturedAreaToRemoveFromContent( $html ); + } + + public static function getCurrentOption( $name ) { + return self::getInstance()->_getCurrentOption($name); + } + + public static function setCurrentOption( $name, $value ) { + return self::getInstance()->_setCurrentOption($name, $value); + } + + protected function _setCurrentOption( $name, $value ) { + $this->_currentOptions[ $name ] = $value; + } + + protected function _getCurrentOption( $name ) { + if( isset( $this->_currentOptions[ $name ] ) ) { + return $this->_currentOptions[ $name ]; + } else { + return null; + } + } + + protected function _getQuery() { + $this->_initOptions(); + return $this->_query; + } + + protected function _initOptions() { + if( $this->_optionsHasBeenInitialised == true ) { + return; + + } + + if( null === $this->_options ){ + $data = ffContainer::getInstance() + ->getDataStorageFactory() + ->createDataStorageWPOptionsNamespace( ffThemeOptions::OPTIONS_NAMESPACE ) + ->getOption( ffThemeOptions::OPTIONS_NAME ); + + if( null === $data ){ + $this->_options = array(); + }else if( empty( $data[ ffThemeOptions::OPTIONS_NAME ] ) ){ + $this->_options = array(); + }else{ + $this->_options = $data[ ffThemeOptions::OPTIONS_NAME ]; + } + + $query = ffContainer::getInstance()->getOptionsFactory()->createQuery($data, 'ffThemeOptionsHolder' ); + + $this->_query = $query; + } + } + + protected function _get($name, $default){ + if( ! class_exists('ffContainer') ){ + return $default; + } + + $this->_initOptions(); + + + return isSet( $this->_options[ $name ] ) + ? $this->_options[ $name ] + : $default + ; + } + + protected function _addFeaturedAreaToRemoveFromContent( $html ){ + $this->_html_to_remove[] = $html; + } + + protected function _removeFeaturedAreaToRemoveFromContent( $html ){ + foreach ($this->_html_to_remove as $remove) { + $html = str_replace( $remove , '' , $html ); + } + $html = str_replace('

    '; + } + + protected function _getIframeHtmlFromVimeo( $videoLink ) { + + $videoLinkWithoutProtocol = str_replace( array('http://', 'https://' ), '', $videoLink ); + $videoLinkWithoutWWW = str_replace( array('www.'), '', $videoLinkWithoutProtocol); + $videoLinkWithoutVimeo = str_replace( array('vimeo.com/'),'', $videoLinkWithoutWWW ); + + $iframe = ''; + $iframe .= ''; + + return $iframe; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/assets/layout-columns.js b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/assets/layout-columns.js new file mode 100644 index 0000000..33028bd --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/assets/layout-columns.js @@ -0,0 +1,33 @@ +(function($){ + $(document).ready(function(){ + + + $('.ff-layout-active').click(function(){ + var postId = $(this).find('.ff-layout-active-info').find('.post-id').html(); + var status = true; + + if( $(this).find('.ff-layout-active-button').find('.switch').hasClass('switch--off') ) { + status = false; + } + + var changeTo = !status; + var data = {}; + data[ 'post-id' ] = postId; + data[ 'active-change-to' ] = changeTo; + + var __this = $(this); + + frslib.ajax.frameworkRequest('ff-layout-ajax', {}, data, function( response ) { + if( changeTo == true ) { + __this.find('.ff-layout-active-button').find('.switch').removeClass('switch--off').addClass('switch--on'); + // __this.find('.ff-layout-active-button').find('.switch').html( 'ON' ); + } else { + __this.find('.ff-layout-active-button').find('.switch').removeClass('switch--on').addClass('switch--off'); + // __this.find('.ff-layout-active-button').find('.switch').html( 'OFF' ); + } + + + }); + }); + }); +})(jQuery); \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/assets/previewButtonDisabler.js b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/assets/previewButtonDisabler.js new file mode 100644 index 0000000..91562a3 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/assets/previewButtonDisabler.js @@ -0,0 +1,20 @@ +(function($){ + $(document).ready(function() { + + var fnTogglePreviewButton = function() { + + var currentPageTemplate = $('#page_template').val(); + + if( currentPageTemplate == 'page-onepage.php' ) { + $('#post-preview').hide(); + } else { + $('#post-preview').show(); + } + + } + + $('#page_template').change( fnTogglePreviewButton ); + fnTogglePreviewButton(); + + }); +})(jQuery); \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutCollectionItem.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutCollectionItem.php new file mode 100644 index 0000000..cb9b1f4 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutCollectionItem.php @@ -0,0 +1,121 @@ +_dataStoragePostMeta = ffContainer()->getDataStorageFactory()->createDataStorageWPPostMetas(); + } + + public function setDataStoragePostMeta( $dataStorage ) { + $this->_dataStoragePostMeta = $dataStorage; + } + + public function unsetDataStoragePostMeta() { + $this->_dataStoragePostMeta = null; +// unset( $this->_dataStoragePostMeta ); + } + + public function getId() { + return $this->_id; + } + + public function getActive() { + $placement = $this->getPlacement(); + if( isset( $placement['placement'] ) && isset( $placement['placement']['active'] ) ) { + return $placement['placement']['active']; + } + + return false; + } + + public function setActive( $active ) { + $placement = $this->getPlacement(); + + if( isset( $placement['placement'] ) && isset( $placement['placement']['active'] ) ) { + $placement['placement']['active'] = $active; + } + + $this->setPlacement( $placement ); + } + + public function getTrashed() { + return $this->_trashed; + } + + public function setTrashed( $trashed ) { + $this->_trashed = $trashed; + } + + public function getData() { + if( $this->_dataHasBeenGathered == false ) { + $this->_data = $this->_dataStoragePostMeta->getOptionCoded( $this->getId(), 'onepage' ); + $this->_dataHasBeenGathered = true; + } + + return $this->_data; + } + + public function setId( $id ) { + $this->_id = $id; + } + + public function getPlacement() { + return $this->_placement; + } + + public function getConditional() { + return $this->_conditional; + } + + public function setData( $data ) { + $this->_changedData = true; + $this->_dataHasBeenGathered = true; + $this->_data = $data; + } + + public function setPlacement( $placement ) { + $this->_changedPlacement = true; + $this->_placement = $placement; + + } + + public function setConditional( $conditional ) { + $this->_changedConditional = true; + $this->_conditional = $conditional; + } + + + public function changedData() { + return $this->_changedData; + } + + public function changedPlacement() { + return $this->_changedPlacement; + } + + public function changedConditional() { + return $this->_changedConditional; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutPostType.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutPostType.php new file mode 100644 index 0000000..9b977ad --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutPostType.php @@ -0,0 +1,454 @@ +_setMetaBoxManager( $metaBoxManager ); + $this->_setPostTypeRegistratorManager( $postTypeRegistratorManager ); + $this->_setLayoutsDataManager( $layoutsDataManager ); + $this->_setPostAdminColumnManager($postAdminColumnManager ); + $this->_setWPLayer( $WPLayer ); + $this->_setScriptEnqueuer( $scriptEnqueuer ); + $this->_setRequest( $request ); + + } +/**********************************************************************************************************************/ +/* PUBLIC FUNCTIONS +/**********************************************************************************************************************/ + public function ajaxLayoutListing( ffAjaxRequest $ajaxRequest ) { + $data = $ajaxRequest->data; + + $postId = $data['post-id']; + $newActiveStatus = filter_var($data['active-change-to'], FILTER_VALIDATE_BOOLEAN);; + + + $item = $this->_getLayoutsDataManager()->getLayoutCollection()->getLayoutById( $postId ); + + $item->setActive($newActiveStatus ); + + + $this->_getLayoutsDataManager()->saveLayoutCollection(); + } + + public function registerPostType() { + $this->_registerLayoutPostType(); + $this->_registerMetaBoxes(); + $this->_registerAdminColumns(); + $this->_hookImportantPostActions(); + + } + +/**********************************************************************************************************************/ +/* ADMIN COLUMNS +/**********************************************************************************************************************/ + public function cbAdminColumnPriority( $postId ) { + $item = $this->_getLayoutsDataManager()->getLayoutCollection()->getLayoutById( $postId ); + $placement = $item->getPlacement(); + + if( isset( $placement['placement'] ) && isset( $placement['placement']['priority'] ) ) { + echo $placement['placement']['priority']; + } + } + + public function cbAdminColumnPlacement( $postId ) { + $item = $this->_getLayoutsDataManager()->getLayoutCollection()->getLayoutById( $postId ); + $placement = $item->getPlacement(); + + if( isset( $placement['placement'] ) && isset( $placement['placement']['placement'] ) ) { + echo ucfirst( str_replace('-', ' ', $placement['placement']['placement'] ) ); + } + } + + public function cbAdminColumnDefault( $postId ) { + $item = $this->_getLayoutsDataManager()->getLayoutCollection()->getLayoutById( $postId ); + $placement = $item->getPlacement(); + + if( isset( $placement['placement'] ) && isset( $placement['placement']['default'] ) ) { + $value = $placement['placement']['default']; + + if( $value ) { + echo 'Yes'; + } else { + echo 'No'; + } + } + } + + public function cbAdminColumnActive( $postId ) { + $item = $this->_getLayoutsDataManager()->getLayoutCollection()->getLayoutById( $postId ); + $active = $item->getActive(); +// var_dump( $active ); + echo '

    '; + echo ''; + + echo '
    '; + if( $active ) { + echo '
    '; + } else { + echo '
    '; + } + echo '
    '; + echo '
    '; + } + +/**********************************************************************************************************************/ +/* HOOKING POST ACTIONS +/**********************************************************************************************************************/ + private function _hookImportantPostActions() { + $WPLayer = $this->_getWPLayer(); + + + if( !$WPLayer->is_ajax() && $WPLayer->is_admin() && ($this->_getRequest()->get( 'post_type' ) != $this->_getPostTypeName()) && ($this->_getRequest()->post( 'post_type' ) != $this->_getPostTypeName()) ) { + $this->_deleteGhostLayouts(); + + } + + $WPLayer->add_action( 'wp_trash_post', array( $this, 'actTrashPost' ),1,1 ); + $WPLayer->add_action( 'before_delete_post', array( $this, 'actDeletePost' ),1,1 ); + $WPLayer->add_action( 'untrash_post', array( $this, 'actUntrashPost' ),1,1 ); + + $WPLayer->getHookManager()->addAjaxRequestOwner('ff-layout-ajax', array( $this, 'ajaxLayoutListing' ) ); + + if( $this->_getRequest()->get('post_type') == $this->_getPostTypeName() ) { + $this->_getScriptEnqueuer()->addScriptFramework('ff-layout-columns', '/framework/themes/layouts/assets/layout-columns.js'); + $this->_getScriptEnqueuer()->getFrameworkScriptLoader()->requireFrsLib(); + $this->_getScriptEnqueuer()->getFrameworkScriptLoader()->requireFfAdmin(); + } + } + + private $_existingLayoutsId = false; + + private function _deleteGhostLayouts() { + + if( !$this->_getLayoutsDataManager()->doesLayoutCollectionExists() ) { + return false; + } + + $layouts = $this->_getWPLayer()->get_posts(array('post_status'=>'publish,trash', 'post_type' =>$this->_getPostTypeName(), 'posts_per_page'=>-1)); + + $layoutsId = array(); + + foreach( $layouts as $oneLayout ) { + $layoutsId[] = $oneLayout->ID; + } + + $this->_existingLayoutsId = $layoutsId; + + $this->_getLayoutsDataManager()->getLayoutCollection()->remove(array($this,'deleteGhostLayoutsCallback')); + $this->_getLayoutsDataManager()->saveLayoutCollection(); + } + + public function deleteGhostLayoutsCallback( ffLayoutCollectionItem $layoutCollectionItem ) { + if( $this->_existingLayoutsId == false ) { + return false; + } + + $currentLayoutId = $layoutCollectionItem->getId(); + + $layoutExist = in_array( $currentLayoutId, $this->_existingLayoutsId ); + + if( !$layoutExist ) { + return true; + } + } + + public function actTrashPost( $postId ) { + $post = $this->_getWPLayer()->get_post($postId, ARRAY_A); + + if( isset( $post['post_type']) && $post['post_type'] == $this->_getPostTypeName() ) { + $layout = $this->_layoutsDataManager->getLayoutCollection()->getLayoutById( $postId ); + $layout->setTrashed( true ); + + $this->_layoutsDataManager->saveLayoutCollection(); + } + } + + public function actUntrashPost( $postId ) { + $post = $this->_getWPLayer()->get_post($postId, ARRAY_A); + + if( isset( $post['post_type']) && $post['post_type'] == $this->_getPostTypeName() ) { + $layout = $this->_layoutsDataManager->getLayoutCollection()->getLayoutById( $postId ); + $layout->setTrashed( false ); + + $this->_layoutsDataManager->saveLayoutCollection(); + } + } + + public function actDeletePost( $postId ) { + $post = $this->_getWPLayer()->get_post($postId, ARRAY_A); + + if( isset( $post['post_type']) && $post['post_type'] == $this->_getPostTypeName() ) { + $this->_layoutsDataManager->getLayoutCollection()->deleteLayoutById( $postId ); + $this->_layoutsDataManager->saveLayoutCollection(); + } + + } +/**********************************************************************************************************************/ +/* PUBLIC PROPERTIES +/**********************************************************************************************************************/ + public function setThemeName( $themeName ) { + + $this->_themeName = $themeName; + } + + public function getPostTypeName() { + return $this->_getPostTypeName(); + } +/**********************************************************************************************************************/ +/* PRIVATE FUNCTIONS +/**********************************************************************************************************************/ + private function _getPostTypeName() { + $postTypeName = ffLayoutPostType::POST_NAME_SUFFIX . $this->_getThemeName(); + + return $postTypeName; + } + private function _registerLayoutPostType() { + $postTypeLayout = $this->_getPostTypeRegistratorManager()->addHiddenPostTypeRegistrator( $this->_getPostTypeName(), 'Layout' ); + + $postTypeLayout->getSupports() + ->set('editor', false) + ->set('excerpt', false) +// ->set('thumbnail', false) + ->set('author', false) + ->set('revisions', false ) + ; + + $postTypeLayout->getArgs() + ->set('show_in_menu' , true ) + ->set('show_in_admin_bar' , true ) + ; + } + + private function _registerAdminColumns() { + $postTypeName = $this->_getPostTypeName(); + + $postAdminColumnManager = $this->_getPostAdminColumnManager(); + + $postAdminColumnManager->addColumnCallback($postTypeName, 'title', 'Active', 'ff-layout-active', array($this, 'cbAdminColumnActive')) ; + $postAdminColumnManager->addColumnCallback($postTypeName, 'title', 'Placement', 'ff-layout-placement', array($this, 'cbAdminColumnPlacement')) ; + $postAdminColumnManager->addColumnCallback($postTypeName, 'title', 'Priority', 'ff-layout-priority', array($this, 'cbAdminColumnPriority')) ; + $postAdminColumnManager->addColumnCallback($postTypeName, 'title', 'Default', 'ff-layout-default', array($this, 'cbAdminColumnDefault')) ; + } + + private function _registerMetaBoxes() { + $metaBoxManager= $this->_getMetaBoxManager(); + + $metaBoxManager->addMetaBoxClassName('ffMetaBoxLayoutContent'); + $metaBoxManager->addMetaBoxClassName('ffMetaBoxLayoutPlacement'); + $metaBoxManager->addMetaBoxClassName('ffMetaBoxLayoutConditions'); + } + + +/**********************************************************************************************************************/ +/* PRIVATE GETTERS & SETTERS +/**********************************************************************************************************************/ + /** + * @return null + * @throws ffException + */ + private function _getThemeName() + { + if( $this->_themeName == null ) { + throw new ffException('ffLayoutPostType - variable THEME NAME is empty and has been used'); + } + return $this->_themeName; + } + + /** + * @return ffPostTypeRegistratorManager + */ + private function _getPostTypeRegistratorManager() + { + return $this->_postTypeRegistratorManager; + } + + /** + * @param ffPostTypeRegistratorManager $postTypeRegistratorManager + */ + private function _setPostTypeRegistratorManager($postTypeRegistratorManager) + { + $this->_postTypeRegistratorManager = $postTypeRegistratorManager; + } + + /** + * @return ffMetaBoxManager + */ + private function _getMetaBoxManager() + { + return $this->_metaBoxManager; + } + + /** + * @param ffMetaBoxManager $metaBoxManager + */ + private function _setMetaBoxManager($metaBoxManager) + { + $this->_metaBoxManager = $metaBoxManager; + } + + /** + * @return ffLayoutsDataManager + */ + private function _getLayoutsDataManager() + { + return $this->_layoutsDataManager; + } + + /** + * @param ffLayoutsDataManager $layoutsDataManager + */ + private function _setLayoutsDataManager($layoutsDataManager) + { + $this->_layoutsDataManager = $layoutsDataManager; + } + + /** + * @return ffPostAdminColumnManager + */ + private function _getPostAdminColumnManager() + { + return $this->_postAdminColumnManager; + } + + /** + * @param ffPostAdminColumnManager $postAdminColumnManager + */ + private function _setPostAdminColumnManager($postAdminColumnManager) + { + $this->_postAdminColumnManager = $postAdminColumnManager; + } + + /** + * @return ffWPLayer + */ + private function _getWPLayer() + { + return $this->_WPLayer; + } + + /** + * @param ffWPLayer $WPLayer + */ + private function _setWPLayer($WPLayer) + { + $this->_WPLayer = $WPLayer; + } + + /** + * @return ffScriptEnqueuer + */ + private function _getScriptEnqueuer() + { + return $this->_scriptEnqueuer; + } + + /** + * @param ffScriptEnqueuer $scriptEnqueuer + */ + private function _setScriptEnqueuer($scriptEnqueuer) + { + $this->_scriptEnqueuer = $scriptEnqueuer; + } + + /** + * @return ffRequest + */ + private function _getRequest() + { + return $this->_Request; + } + + /** + * @param ffRequest $Request + */ + private function _setRequest($Request) + { + $this->_Request = $Request; + } + + /** + * @return ffLayoutsEmojiManager + */ + private function _getLayoutsEmojiManager() + { + return $this->_layoutsEmojiManager; + } + + /** + * @param ffLayoutsEmojiManager $layoutsEmojiManager + */ + private function _setLayoutsEmojiManager($layoutsEmojiManager) + { + $this->_layoutsEmojiManager = $layoutsEmojiManager; + } + + + +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutPrinter.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutPrinter.php new file mode 100644 index 0000000..aac8798 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutPrinter.php @@ -0,0 +1,334 @@ +_setLayoutsDataManager( $layoutsDataManager ); + $this->_setConditionalLogicEvaluator( $conditionalLogicEvaluator); + $this->_setOptionsFactory( $optionsFactory); + } +/**********************************************************************************************************************/ +/* PUBLIC FUNCTIONS +/**********************************************************************************************************************/ + public function printLayoutHeader() { + $this->_printLayout( self::POSITION_HEADER ); + return $this; + } + + public function printLayoutBeforeContent() { + $this->_printLayout( self::POSITION_BEFORE_CONTENT ); + return $this; + } + + public function printLayoutContent() { + $this->_printLayout( self::POSITION_CONTENT ); + return $this; + } + + public function printLayoutAfterContent() { + $this->_printLayout( self::POSITION_AFTER_CONTENT ); + return $this; + } + + public function printLayoutFooter() { + $this->_printLayout( self::POSITION_FOOTER ); + return $this; + } + + public function setPrintSectionCallback( $callback ) { + $this->_printSectionCallback = $callback; + } + + public function setCallbackForEmptyPosition( $callback ) { + $this->_setEmptyPositionCallback( $callback ); + } +/**********************************************************************************************************************/ +/* PUBLIC PROPERTIES +/**********************************************************************************************************************/ + +/**********************************************************************************************************************/ +/* PRIVATE FUNCTIONS +/**********************************************************************************************************************/ + public function filterLayoutsCallback( $item ) { + /** @var ffLayoutCollectionItem $item */ + + $conditions = $item->getConditional(); + $conditionQuery = $this->_getOptionsFactory()->createQuery( $conditions,'ffOptionsHolder_Layout_Conditions'); + $evaluator = $this->_getConditionalLogicEvaluator(); + + $conditionQuerySelected = $conditionQuery->get('conditions show-where'); + + if( !is_object( $conditionQuerySelected ) || get_class($conditionQuerySelected) != 'ffOptionsQuery' ) { + return false; + } + + if( !$item->getActive() || $item->getTrashed() ) { + return false; + } + + if( $evaluator->evaluate( $conditionQuery->get('conditions show-where') ) ) { + return true; + } + + return false; + } + + private function _initialize() { + if( $this->_hasBeenInitialized ) { + return true; + } + $this->_hasBeenInitialized = true; + + $layoutCollection = $this->_getLayoutsDataManager()->getLayoutCollection(); + $layoutCollection->filter(array( $this, 'filterLayoutsCallback')); + + /** @var ffLayoutCollectionItem $oneItem */ + foreach( $layoutCollection as $oneItem ) { + $placementQuery = $this->_getOptionsFactory()->createQuery( $oneItem->getPlacement(),'ffOptionsHolder_Layout_Placement'); + + $placement = $placementQuery->get('placement placement'); + $priority = $placementQuery->get('placement priority' ); + $default = $placementQuery->get('placement default'); + + if( $default ) { + $this->_addDefaultLayout($placement, $priority, $oneItem); + } else { + $this->_addNormalLayout($placement, $priority, $oneItem); + } + } + } + + private function _addDefaultLayout( $placement, $priority, $item ) { + $this->_layoutDefaultData[ $placement ][ $priority ][] = $item; + } + + private function _addNormalLayout( $placement, $priority, $item ) { + $this->_layoutData[ $placement ][ $priority ][] = $item; + } + + private function _printLayout( $type ) { + $this->_initialize(); + + + $data = $this->_getDataForLayout( $type ); + + if( empty( $data ) ) { + return false; + } + + if( $this->_getCurrentDataSource() != self::DATA_SOURCE_EXTERNAL_CALLBACK ) { + foreach( $data as $priority => $onePriorityContent ) { + foreach( $onePriorityContent as $oneItem ) { + /** @var ffLayoutCollectionItem $oneItem */ + + $oneSection = ( $oneItem->getData() ); + + $postQuery = $this->_getOptionsFactory()->createQuery( $oneSection,'ffComponent_Theme_LayoutOptions'); + + foreach( $postQuery->get('sections') as $oneSection ) { + $variationType = $oneSection->getVariationType(); + + $callback = $this->_getPrintSectionCallback(); + + $callback( $oneSection, $variationType ); + } + + } + } + } else { + $postQuery = $this->_getOptionsFactory()->createQuery( $data,'ffComponent_Theme_LayoutOptions'); + + foreach( $postQuery->get('sections') as $oneSection ) { + $variationType = $oneSection->getVariationType(); + + if( $this->_printSectionCallback != null ) { + $callback = $this->_printSectionCallback; + $callback( $oneSection, $variationType ); + } + } + } + } + + private function _getDataForLayout( $placement ) { + + if( isset( $this->_layoutData[ $placement ] ) ) { + ksort( $this->_layoutData[ $placement ] ); + $this->_setCurrentDataSource( self::DATA_SOURCE_NORMAL ); + return $this->_layoutData[ $placement ]; + } else if( isset( $this->_layoutDefaultData[ $placement ] ) ) { + ksort( $this->_layoutDefaultData[ $placement ] ); + $this->_setCurrentDataSource( self::DATA_SOURCE_DEFAULT ); + return $this->_layoutDefaultData[ $placement ]; + } else if ( $this->_getEmptyPositionCallback() != null ) { + $callback = $this->_getEmptyPositionCallback(); + $returnValue = $callback( $placement ); + + $this->_setCurrentDataSource( self::DATA_SOURCE_EXTERNAL_CALLBACK ); + + return $returnValue; + } + return null; + } + + + +/**********************************************************************************************************************/ +/* PRIVATE GETTERS & SETTERS +/**********************************************************************************************************************/ + /** + * @return callable + */ + private function _getPrintSectionCallback() + { + if( $this->_printSectionCallback == null ) { + throw new ffException('Layout Printer -> No callback has been set (this is theme domain)'); + } + return $this->_printSectionCallback; + } + + /** + * @param callable $printSectionCallback + */ + private function _setPrintSectionCallback($printSectionCallback) + { + $this->_printSectionCallback = $printSectionCallback; + } + + /** + * @return ffLayoutsDataManager + */ + private function _getLayoutsDataManager() + { + return $this->_layoutsDataManager; + } + + /** + * @param ffLayoutsDataManager $layoutsDataManager + */ + private function _setLayoutsDataManager($layoutsDataManager) + { + $this->_layoutsDataManager = $layoutsDataManager; + } + + /** + * @return ffConditionalLogicEvaluator + */ + private function _getConditionalLogicEvaluator() + { + return $this->_conditionalLogicEvaluator; + } + + /** + * @param ffConditionalLogicEvaluator $conditionalLogicEvaluator + */ + private function _setConditionalLogicEvaluator($conditionalLogicEvaluator) + { + $this->_conditionalLogicEvaluator = $conditionalLogicEvaluator; + } + + /** + * @return ffOptionsFactor + */ + private function _getOptionsFactory() + { + return $this->_optionsFactory; + } + + /** + * @param ffOptionsFactor $optionsFactory + */ + private function _setOptionsFactory($optionsFactory) + { + $this->_optionsFactory = $optionsFactory; + } + + /** + * @return null + */ + private function _getCurrentDataSource() + { + return $this->_currentDataSource; + }/** + * @param null $currentDataSource + */ + private function _setCurrentDataSource($currentDataSource) + { + $this->_currentDataSource = $currentDataSource; + } + + /** + * @return callable + */ + private function _getEmptyPositionCallback() + { + return $this->_emptyPositionCallback; + } + + /** + * @param array $emptyPositionCallback + */ + private function _setEmptyPositionCallback($emptyPositionCallback) + { + $this->_emptyPositionCallback = $emptyPositionCallback; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutsCollection.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutsCollection.php new file mode 100644 index 0000000..5c8aeb5 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutsCollection.php @@ -0,0 +1,134 @@ +_setLayoutCollectionItemFactory( $layoutCollectionItem_Factory ); + } + + public function getLayoutById( $id ) { + $layout = null; + foreach( $this as $key => $item ) { + if( $item->getId() == $id ) { + $layout = $item; + } + } + + + if( $layout == null ) { + $layout = $this->_getLayoutCollectionItemFactory()->createLayoutCollectionItem(); + $layout->setId( $id ); + $this->addItem( $layout ); + } + + + $layout->setDataStoragePostMeta( $this->_getDataStoragePostMeta() ); + + return $layout; + } + + public function deleteLayoutById__hook( $item ){ + if( $item->getId() == $this->_temporaryIdHolder ) { + return true; + } else { + return false; + } + } + + private $_temporaryIdHolder = null; + + public function deleteLayoutById( $id ) { + $layout = null; + foreach( $this as $key => $item ) { + if( $item->getId() == $id ) { + $layout = $item; + } + } + + $this->_getDataStoragePostMeta()->deleteOption( $id, 'onepage'); + + $this->_temporaryIdHolder = $id; + $this->remove( array($this, 'deleteLayoutById__hook') ); + $this->_temporaryIdHolder = null; + + } + + public function setLayoutCollectionItemFactory( $layoutCollectionItem_Factory ) { + $this->_setLayoutCollectionItemFactory( $layoutCollectionItem_Factory ); + } + + public function unsetLayoutCollectionItemFactory() { + $this->_layoutCollectionItemFactory = null; +// unset( $this->_layoutCollectionItemFactory ); + } + + +/**********************************************************************************************************************/ +/* PUBLIC FUNCTIONS +/**********************************************************************************************************************/ + +/**********************************************************************************************************************/ +/* PUBLIC PROPERTIES +/**********************************************************************************************************************/ + public function setDataStoragePostMeta( $dataStoragePostMeta ) { + + $this->_dataStoragePostMeta = $dataStoragePostMeta; + } + + public function unsetDataStoragePostMeta() { + $this->_dataStoragePostMeta = null; +// unset( $this->_dataStoragePostMeta ); + } + + +/**********************************************************************************************************************/ +/* PRIVATE FUNCTIONS +/**********************************************************************************************************************/ + +/**********************************************************************************************************************/ +/* PRIVATE GETTERS & SETTERS +/**********************************************************************************************************************/ + /** + * @return ffDataStorage_WPPostMetas + */ + private function _getDataStoragePostMeta() + { + return $this->_dataStoragePostMeta; + } + /** + * @return ffLayoutCollectionItem_Factory + */ + private function _getLayoutCollectionItemFactory() + { + return $this->_layoutCollectionItemFactory; + } + + /** + * @param null $layoutCollectionItemFactory + */ + private function _setLayoutCollectionItemFactory($layoutCollectionItemFactory) + { + $this->_layoutCollectionItemFactory = $layoutCollectionItemFactory; + } + + public function getLayoutCollectionItemFactory() { + return $this->_layoutCollectionItemFactory; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutsDataManager.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutsDataManager.php new file mode 100644 index 0000000..89a2748 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutsDataManager.php @@ -0,0 +1,199 @@ +setNamespace( $themeName . '-layouts'); + + $this->_setLayoutsCollectionFactory( $layoutsCollectionFactory ); + $this->_setThemeName( $themeName ); + $this->_setDataStorageOptionsPostType( $dataStorage ); + $this->_setDataStorageFactory( $dataStorageFactory ); + } +/**********************************************************************************************************************/ +/* PUBLIC FUNCTIONS +/**********************************************************************************************************************/ + public function doesLayoutCollectionExists() { + $collection = $this->_getDataStorageOptionsPostType()->getOption('layouts-collection'); + if( $collection == null ) { + return false; + } else { + return true; + } + } + + /** + * @return ffLayoutsCollection + */ + public function getLayoutCollection() { + /** @var ffLayoutsCollection $layoutsCollection */ + if( $this->_getLayoutsCollection() == null || $this->_getLayoutsCollection()->getLayoutCollectionItemFactory() == null ) { + + $layoutsCollection = $this->_getDataStorageOptionsPostType()->getOptionCoded('layouts-collection'); + + + if( $layoutsCollection == null ) { + $layoutsCollection = $this->_getLayoutsCollectionFactory()->createLayoutsCollection(); + + } else { + foreach( $layoutsCollection as $oneItem ) { + $oneItem->setDataStoragePostMeta( $this->_getDataStorageFactory()->createDataStorageWPPostMetas() ); + } + + $layoutsCollectionItemFactory = $this->_getLayoutsCollectionFactory()->createLayoutsCollectionItemFactory(); + $layoutsCollection->setLayoutCollectionItemFactory( $layoutsCollectionItemFactory ); + + } + + $this->_setLayoutsCollection( $layoutsCollection ); + } + + $this->_getLayoutsCollection()->setDataStoragePostMeta( $this->_dataStorageFactory->createDataStorageWPPostMetas() ); + + return $this->_getLayoutsCollection(); + } + + public function saveLayoutCollection() { + $dataStoragePostMeta = $this->_getDataStorageFactory()->createDataStorageWPPostMetas(); + /** @var ffLayoutCollectionItem $oneItem */ + foreach( $this->_getLayoutsCollection() as $oneItem ) { + $oneItem->unsetDataStoragePostMeta(); + + if( $oneItem->changedData() ) { + $dataStoragePostMeta->setOptionCoded( $oneItem->getId(), 'onepage', $oneItem->getData() ); + } + } + + + + $this->_getLayoutsCollection()->unsetLayoutCollectionItemFactory(); + $this->_getLayoutsCollection()->unsetDataStoragePostMeta(); + + $lc = $this->_getLayoutsCollection(); + + $this->_getDataStorageOptionsPostType()->setOptionCoded('layouts-collection', $lc ); + + } + + +/**********************************************************************************************************************/ +/* PUBLIC PROPERTIES +/**********************************************************************************************************************/ + +/**********************************************************************************************************************/ +/* PRIVATE FUNCTIONS +/**********************************************************************************************************************/ + +/**********************************************************************************************************************/ +/* PRIVATE GETTERS & SETTERS +/**********************************************************************************************************************/ + /** + * @return ffLayoutsCollectionFactory + */ + private function _getLayoutsCollectionFactory() + { + return $this->_layoutsCollectionFactory; + } + + /** + * @param ffLayoutsCollectionFactory $layoutsCollectionFactory + */ + private function _setLayoutsCollectionFactory($layoutsCollectionFactory) + { + $this->_layoutsCollectionFactory = $layoutsCollectionFactory; + } + + /** + * @return null + */ + private function _getThemeName() + { + return $this->_themeName; + } + + /** + * @param null $themeName + */ + private function _setThemeName($themeName) + { + $this->_themeName = $themeName; + } + + /** + * @return ffDataStorage_OptionsPostType_NamespaceFacade + */ + private function _getDataStorageOptionsPostType() + { + return $this->_dataStorageOptionsPostType; + } + + /** + * @param ffDataStorage_OptionsPostType_NamespaceFacade $dataStorageOptionsPostType + */ + private function _setDataStorageOptionsPostType($dataStorageOptionsPostType) + { + $this->_dataStorageOptionsPostType = $dataStorageOptionsPostType; + } + + /** + * @return ffLayoutsCollection + */ + private function _getLayoutsCollection() + { + return $this->_layoutsCollection; + } + + /** + * @param ffLayoutsCollection $layoutsCollection + */ + private function _setLayoutsCollection($layoutsCollection) + { + $this->_layoutsCollection = $layoutsCollection; + } + + /** + * @return ffDataStorage_Factory + */ + private function _getDataStorageFactory() + { + return $this->_dataStorageFactory; + } + + /** + * @param ffDataStorage_Factory $dataStorageFactory + */ + private function _setDataStorageFactory($dataStorageFactory) + { + $this->_dataStorageFactory = $dataStorageFactory; + } + + +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutsEmojiManager.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutsEmojiManager.php new file mode 100644 index 0000000..69899dd --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffLayoutsEmojiManager.php @@ -0,0 +1,109 @@ +_setWPLayer( $WPLayer ); + $this->_setScriptEnqueuer( $scriptEnqueuer ); + } +/**********************************************************************************************************************/ +/* PUBLIC FUNCTIONS +/**********************************************************************************************************************/ + public function unregisterEmojiAtLayoutAdminScreen() { + if( $this->_getWPLayer()->is_admin() && !$this->_getWPLayer()->is_ajax() ) { + $this->_getWPLayer()->add_action('admin_print_scripts', array( $this, 'actAdminPrintScripts' ), 1); + $this->_getWPLayer()->add_action('current_screen', array( $this, 'actCurrentScreen' ) ); + } + } + public function actAdminPrintScripts() { + $currentScreen = $this->_getWPLayer()->get_current_screen(); + $currentScreenId = $currentScreen->id; + + if( strpos( $currentScreenId, 'ff-layout') !== false || strpos( get_page_template(), 'page-onepage') !== false || $currentScreenId == 'page' ) { + $this->_unregisterEmoji(); + } + + } + + public function actCurrentScreen() { + $currentScreen = $this->_getWPLayer()->get_current_screen(); + $currentScreenId = $currentScreen->id; + + $this->_disablePreviewButtonInPages = true; + if( $this->_disablePreviewButtonInPages && $currentScreenId == 'page' ) { + $this->_getScriptEnqueuer()->getFrameworkScriptLoader()->requireFrsLib(); + $this->_getScriptEnqueuer()->addScriptFramework('ff-previewButtonDisabler', 'framework/themes/layouts/assets/previewButtonDisabler.js'); + } + } + + public function disablePreviewButtonInPages() { + $this->_disablePreviewButtonInPages = true; + } + +// public function disab +/**********************************************************************************************************************/ +/* PUBLIC PROPERTIES +/**********************************************************************************************************************/ + +/**********************************************************************************************************************/ +/* PRIVATE FUNCTIONS +/**********************************************************************************************************************/ + private function _unregisterEmoji() { + remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); + } +/**********************************************************************************************************************/ +/* PRIVATE GETTERS & SETTERS +/**********************************************************************************************************************/ + /** + * @return ffWPLayer + */ + private function _getWPLayer() + { + return $this->_WPLayer; + } + + /** + * @param ffWPLayer $WPLayer + */ + private function _setWPLayer($WPLayer) + { + $this->_WPLayer = $WPLayer; + } + + /** + * @return ffScriptEnqueuer + */ + private function _getScriptEnqueuer() + { + return $this->_scriptEnqueuer; + } + + /** + * @param ffScriptEnqueuer $scriptEnqueuer + */ + private function _setScriptEnqueuer($scriptEnqueuer) + { + $this->_scriptEnqueuer = $scriptEnqueuer; + } + + +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffOnePageRevisionManager.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffOnePageRevisionManager.php new file mode 100644 index 0000000..ae4fa8f --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffOnePageRevisionManager.php @@ -0,0 +1,232 @@ +_setPostMeta( ffContainer()->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade() ); + } +/**********************************************************************************************************************/ +/* PUBLIC FUNCTIONS +/**********************************************************************************************************************/ + public function addNewRevision( $revision ) { + $newRevisionNumber = $this->_getNewRevisionNumber(); + $this->_insertNewRevision( $revision, $newRevisionNumber ); + $this->_deleteOldRevisions(); + } + + public function setRevisionAsContent( $revisionNumber ) { + $revisionContent = $this->getRevisionContent( $revisionNumber ); + $this->_setMainContent( $revisionContent ); + + $revisionList = $this->getRevisionList(); + $revisionList['current_revision'] = $revisionNumber; + $this->_setRevisionList( $revisionList ); + } + + public function getRevisionContent( $revisionNumber ) { + $postMetaName = $this->_getNewRevisionName( $revisionNumber ); + return $this->_getPostMeta()->getOption( $postMetaName ); + } + + + public function getRevisionList() { + $revisionListMetaName = ffOnePageRevisionManager::REVISION_LIST_META_NAME; + + $revisionList = $this->_getPostMeta()->getOption( $revisionListMetaName ); + + if( empty( $revisionList ) ) { + $revisionList = $this->_createRevisionList(); + } + + return $revisionList; + } + + public function getCurrentRevisionNumber() { + $revisionList = $this->getRevisionList(); + + return $revisionList['current_revision']; + } + + public function getListOfRevisionsForCurrentPost() { + $revisionList = $this->getRevisionList(); + + $revisionInfo = $revisionList['revision_info']; + + krsort( $revisionInfo ); + + foreach( $revisionInfo as $revisionNumber => $data ) { + $humanTime = date('M j,Y \a\t i:G:s', $data['timestamp']); + $revisionInfo[ $revisionNumber ]['human_time'] = $humanTime; + } + + return $revisionInfo; + } + + +/**********************************************************************************************************************/ +/* PUBLIC PROPERTIES +/**********************************************************************************************************************/ + public function setPostId( $postId ) { + return $this->_setPostId( $postId ); + } + + +/**********************************************************************************************************************/ +/* PRIVATE FUNCTIONS +/**********************************************************************************************************************/ + private function _setMainContent( $content ) { + $mainContentName = ffOnePageRevisionManager::ONEPAGE_META_NAME; + $this->_getPostMeta()->setOption( $mainContentName, $content ); + } + + + private function _deleteOldRevisions() { + $revisionList = $this->getRevisionList(); + + $lastRevisionNumber = $revisionList['last_revision_number']; + $smallestRevisionNumber = $lastRevisionNumber - $this->_getAllowedNumberOfRevisions(); + + foreach( $revisionList['revision_info'] as $revisionNumber => $info ) { + if( $revisionNumber <= $smallestRevisionNumber ) { + $this->_deleteRevisionByNumber( $revisionNumber ); + unset( $revisionList['revision_info'][ $revisionNumber ] ); + } + } + + $this->_setRevisionList( $revisionList ); + } + + private function _deleteRevisionByNumber( $revisionNumber ) { + $metaName = $this->_getNewRevisionName( $revisionNumber ); + $this->_getPostMeta()->deleteOption( $metaName ); + } + + + private function _insertNewRevision( $revision, $revisionNumber ) { + $postMetaName = $this->_getNewRevisionName( $revisionNumber ); + $this->_getPostMeta()->setOption( $postMetaName, $revision ); + + $revisionList = $this->getRevisionList(); + + $revisionList['last_revision_number'] = $revisionNumber; + $revisionList['current_revision'] = $revisionNumber; + + $revisionInfo = array(); + $revisionInfo['number'] = $revisionNumber; + $revisionInfo['timestamp'] = time(); + + $revisionList['revision_info'][ $revisionNumber ] = $revisionInfo; + + + $this->_setRevisionList( $revisionList ); + } + + private function _setRevisionList( $revisionList ) { + $this->_getPostMeta()->setOption( ffOnePageRevisionManager::REVISION_LIST_META_NAME, $revisionList ); + } + + private function _getNewRevisionNumber() { + $revisionList = $this->getRevisionList(); + $lastRevisionNumber = $revisionList['last_revision_number']; + $newRevisionNumber = $lastRevisionNumber + 1; + return $newRevisionNumber; + } + + private function _createRevisionList() { + $revisionList = array(); + $revisionList['last_revision_number'] = 0; + $revisionList['current_revision'] = 0; + $revisionList['revision_info'] = array(); + + return $revisionList; + } +/**********************************************************************************************************************/ +/* PRIVATE GETTERS & SETTERS +/**********************************************************************************************************************/ + private function _getNewRevisionName( $revisionNumber ) { + return str_replace('%', $revisionNumber, ffOnePageRevisionManager::ONEPAGE_REVISION_META_NAME); + } + + /** + * @return int + */ + private function _getPostId() + { + return $this->_postId; + } + + /** + * @param int $postId + */ + private function _setPostId($postId) + { + $this->_postId = $postId; + $this->_getPostMeta()->setNamespace( $postId ); + } + + + /** + * @return ffDataStorage_WPPostMetas_NamespaceFacade + */ + private function _getPostMeta() + { + return $this->_postMeta; + } + + /** + * @param ffDataStorage_WPPostMetas_NamespaceFacade $postMeta + */ + private function _setPostMeta($postMeta) + { + $this->_postMeta = $postMeta; + } + + /** + * @return int + */ + private function _getAllowedNumberOfRevisions() + { + return $this->_allowedNumberOfRevisions; + } + + /** + * @param int $allowedNumberOfRevisions + */ + private function _setAllowedNumberOfRevisions($allowedNumberOfRevisions) + { + $this->_allowedNumberOfRevisions = $allowedNumberOfRevisions; + } + + +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffThemeLayoutManager.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffThemeLayoutManager.php new file mode 100644 index 0000000..f0a726a --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/class.ffThemeLayoutManager.php @@ -0,0 +1,100 @@ +_setLayoutPostType( $layoutPostType ); + } +/**********************************************************************************************************************/ +/* PUBLIC FUNCTIONS +/**********************************************************************************************************************/ + public function addLayoutSupport() { + $this->_getLayoutPostType()->setThemeName( $this->_getThemeName() ); + $this->_getLayoutPostType()->registerPostType(); + + // vytvorit custom post type +// s die(); + } + + public function printLayout() { + // mit nejaky printer, ten + } + + + public function getLayoutPostTypeName() { + return $this->_getLayoutPostType()->getPostTypeName(); + } + + + +/**********************************************************************************************************************/ +/* PUBLIC PROPERTIES +/**********************************************************************************************************************/ + public function setThemeName( $themeName ) { + $this->_themeName = $themeName; + } + + public function setLayoutsOptionsHolderClassName( $className ) { + $this->_optionsHolderName = $className; + } + + public function getLayoutsOptionsHolderClassName() { + return $this->_optionsHolderName; + } + + public function getThemeName() { + return $this->_getThemeName(); + } +/**********************************************************************************************************************/ +/* PRIVATE FUNCTIONS +/**********************************************************************************************************************/ + +/**********************************************************************************************************************/ +/* PRIVATE GETTERS & SETTERS +/**********************************************************************************************************************/ + /** + * @return null + */ + private function _getThemeName() + { + return $this->_themeName; + } + + /** + * @return ffLayoutPostType + */ + private function _getLayoutPostType() + { + return $this->_layoutPostType; + } + + /** + * @param ffLayoutPostType $layoutPostType + */ + private function _setLayoutPostType($layoutPostType) + { + $this->_layoutPostType = $layoutPostType; + } + +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/factories/class.ffLayoutCollectionItem_Factory.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/factories/class.ffLayoutCollectionItem_Factory.php new file mode 100644 index 0000000..ddbbc0a --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/factories/class.ffLayoutCollectionItem_Factory.php @@ -0,0 +1,11 @@ +_getClassloader()->loadClass('ffLayoutCollectionItem'); + + $layoutCollectionItem = new ffLayoutCollectionItem(); + + return $layoutCollectionItem; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/factories/class.ffLayoutsCollectionFactory.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/factories/class.ffLayoutsCollectionFactory.php new file mode 100644 index 0000000..18d0672 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/factories/class.ffLayoutsCollectionFactory.php @@ -0,0 +1,20 @@ +_getClassloader()->loadClass('ffLayoutCollectionItem_Factory'); + + $layoutsCollectionItemFactory = new ffLayoutCollectionItem_Factory( $this->_getClassloader() ); + + return $layoutsCollectionItemFactory; + } + + public function createLayoutsCollection() { + $this->_getClassloader()->loadClass('ffCollection'); + $this->_getClassloader()->loadClass('ffLayoutsCollection'); + + $layoutsCollection = new ffLayoutsCollection( $this->createLayoutsCollectionItemFactory() ); + + return $layoutsCollection; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/factories/class.ffLayoutsNamespaceFactory.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/factories/class.ffLayoutsNamespaceFactory.php new file mode 100644 index 0000000..3c77f17 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/factories/class.ffLayoutsNamespaceFactory.php @@ -0,0 +1,118 @@ +_getClassloader()->loadClass('ffOnePageRevisionManager'); + + $revisionManager = new ffOnePageRevisionManager(); + + return $revisionManager; + } + + public function getLayoutsEmojiManager() { + $this->_getClassloader()->loadClass('ffLayoutsEmojiManager'); + $emojiManager = new ffLayoutsEmojiManager( ffContainer()->getWPLayer(), ffContainer()->getScriptEnqueuer() ); + + return $emojiManager; + } + + public function getThemeLayoutManager() { + if( $this->_layoutManager == null ) { + $this->_getClassloader()->loadClass('ffThemeLayoutManager'); + $this->_getClassloader()->loadClass('ffLayoutPostType'); + + + + + + $fwc = ffContainer(); + + + + $lpt = new ffLayoutPostType( + $fwc->getMetaBoxes()->getMetaBoxManager(), + $fwc->getPostTypeRegistratorManager(), + $this->getLayoutsDataManager(), + $fwc->getpostAdminColumnManager(), + $fwc->getWPLayer(), + $fwc->getScriptEnqueuer(), + $fwc->getRequest() + ); + + + + $layoutManager = new ffThemeLayoutManager( + $lpt + ); + + $this->_layoutManager = $layoutManager; + } + return $this->_layoutManager; + } + + private $_layoutPrinter = null; + + public function getLayoutPrinter() { + if( $this->_layoutPrinter == null ) { + $this->_getClassloader()->loadClass('ffLayoutPrinter'); + + $this->_layoutPrinter = new ffLayoutPrinter( + $this->getLayoutsDataManager(), + ffContainer()->getLibManager()->createConditionalLogicEvaluator(), + ffContainer()->getOptionsFactory() + ); + } + return $this->_layoutPrinter; + } + + public function getLayoutsCollection() { + $this->_getClassloader()->loadClass('ffCollection'); + $this->_getClassloader()->loadClass('ffLayoutCollectionItem_Factory'); + + $this->_getClassloader()->loadClass('ffLayoutsCollection'); + + + + $lci = new ffLayoutCollectionItem_Factory( $this->_getClassloader() ); + + $layoutsCollection = new ffLayoutsCollection( $lci ); + + return $layoutsCollection; + } + + public function getLayoutsCollectionFactory() { + $this->_getClassloader()->loadClass('ffCollection'); + $this->_getClassloader()->loadClass('ffLayoutCollectionItem'); + ffContainer()->getDataStorageFactory()->createDataStorageOptionsPostType_NamespaceFacade(); + ffContainer()->getDataStorageFactory()->createDataStorageWPPostMetas(); + $this->_getClassloader()->loadClass('ffDataStorage_WPPostMetas'); + + $this->_getClassloader()->loadClass('ffLayoutCollectionItem_Factory'); + $this->_getClassloader()->loadClass('ffLayoutsCollection'); + $this->_getClassloader()->loadClass('ffLayoutsCollectionFactory'); + + $lcf = new ffLayoutsCollectionFactory( $this->_getClassloader() ); + + return $lcf; + } + + private $_ldm = null; + + public function getLayoutsDataManager() { + if( $this->_ldm == null ) { + $this->_getClassloader()->loadClass('ffLayoutsDataManager'); + if( defined('ffThemeContainer::THEME_NAME_LOW') ) { + $themeName = ffThemeContainer::THEME_NAME_LOW; + } else { + $themeName = 'universal-layout'; + } + $dataStorage = ffContainer()->getDataStorageFactory()->createDataStorageOptionsPostType_NamespaceFacade(); + + $this->_ldm = new ffLayoutsDataManager( $this->getLayoutsCollectionFactory(), $themeName, $dataStorage, ffContainer()->getDataStorageFactory() ); + } + return $this->_ldm; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/assets/ff-layout-saving-manager.js b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/assets/ff-layout-saving-manager.js new file mode 100644 index 0000000..0e205ac --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/assets/ff-layout-saving-manager.js @@ -0,0 +1,141 @@ +(function($){ + jQuery(document).ready(function($){ + + var specification = {}; + specification.metaboxClass = 'ffMetaBoxLayoutContent'; + var data = {}; + data.action = 'getOptions'; + data.postId = $('.ff-post-id-holder').html(); + frslib.ajax.frameworkRequest( 'ffMetaBoxManager', specification, data, function( response ){ + $('.ff-repeatable-spinner').hide(500); + + setTimeout(function() { + $('#Layout .ff-metabox-normalize-options').html(response); + //setTimeout() + frslib.options.functions.initOptionsJS(); + }, 500); + }); + + + +/**********************************************************************************************************************/ +/* CHECK BEFORE SAVING +/**********************************************************************************************************************/ + + if( $('#original_publish').val() == 'Publish' ) { + return false; + } + + + // create save ajax button + var saveAjaxHtml = ''; + $('#publish').after('

    '+ saveAjaxHtml ); + +/**********************************************************************************************************************/ +/* SAVING CLICK FUNCTION +/**********************************************************************************************************************/ + $(document).on('click', '#ff-layout-save-ajax', function() { + $('#publishing-action .spinner').css('display', 'block'); + $('#Layout, #LayoutConditions, #LayoutPlacement').animate({opacity:0.2}, 500); + + var $contentForm = $('#Layout .ff-metabox-normalize-options .ff-options-js'); + var $conditionsForm = $('#LayoutConditions .ff-metabox-normalize-options'); + var $placementForm = $('#LayoutPlacement .ff-metabox-normalize-options'); + + var $normalizedContentForm = frslib.options.template.functions.normalize( $contentForm, false ); + var $normalizedConditionsForm = frslib.options.template.functions.normalize( $conditionsForm, false ); + var $normalizedPlacementForm = frslib.options.template.functions.normalize( $placementForm, false ); + + //function( owner, specification, data, callback ) { + var specification = {}; + specification.metaboxClass = 'ffMetaBoxLayoutContent'; + + var data = {}; + + data.serialisedContent = $('
    ' + $normalizedContentForm.html() + '
    ').serialize(); + data.serialisedConditions = $('
    ' + $normalizedConditionsForm.html() + '
    ').serialize(); + data.serialisedPlacement = $('
    ' + $normalizedPlacementForm.html() + '
    ').serialize(); + data.postId = $('#post_ID').val(); + + data.action = 'save'; + + + frslib.ajax.frameworkRequest('ffMetaBoxManager', specification, data, function( response ){ + + $('#publishing-action .spinner').css('display', 'none'); + $('#Layout, #LayoutConditions, #LayoutPlacement').animate({opacity:1}, 500); + + $('.ff-revision-list-content').html( response ); + }); + + return false; + + }); +/**********************************************************************************************************************/ +/* REVISION SETTING FUNCTION +/**********************************************************************************************************************/ + $(document).on('click', '.ff-revision-switch', function(){ + + var revisionNumber = $(this).attr('data-revision-number'); + + if( revisionNumber == 'current' ) { + return false; + } + + if( !confirm('You are rolling back to different revision. All your unsaved changes will be lost!' ) ) { + return false; + } + + + var specification = {}; + specification.metaboxClass = 'ffMetaBoxLayoutContent'; + var data = {}; + data.action = 'rollbackToRevision'; + data.postId = $('.ff-post-id-holder').html(); + data.revisionNumber = revisionNumber; + $('#publish, #ff-layout-save-ajax').prop('disabled', true); + $('#Layout').animate({opacity:0.5},500); + frslib.ajax.frameworkRequest( 'ffMetaBoxManager', specification, data, function( response ){ + + $('.ff-repeatable-spinner').hide(500); + + setTimeout(function() { + $('#Layout .ff-metabox-normalize-options').html(response); + //setTimeout() + frslib.options.functions.initOptionsJS(); + + $('#publish, #ff-layout-save-ajax').prop('disabled', false); + $('#Layout').animate({opacity:1},500); + }, 500); + + + + + return; + $('#OnePage .ff-metabox-normalize-options').html( response) ; + + $('#OnePage').animate({opacity:1},500); + + $('#publish').prop('disabled', false); + + var $toInit = $('#OnePage .ff-metabox-normalize-options .ff-options-js-wrapper '); + //frslib.options.functions.initOneOptionSet( $toInit ); + //frslib.options.functions.initOneOptionSet( $(this) ); + frslib.options.functions.initOptionsJS(); + + var url = window.location.href; + + if( url.indexOf('post-new.php') == -1 ) { + + $('.ff-onepage-save-ajax').css('display', 'block'); + + } + }); + + return false; + + }); + + + }); +})(jQuery); \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutConditions/class.ffMetaBoxLayoutConditions.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutConditions/class.ffMetaBoxLayoutConditions.php new file mode 100644 index 0000000..825b40a --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutConditions/class.ffMetaBoxLayoutConditions.php @@ -0,0 +1,14 @@ +getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getThemeLayoutManager(); + + $this->_addPostType( $themeLayoutManager->getLayoutPostTypeName() ); + $this->_setTitle('Layout Conditions'); + $this->_setContext( ffMetaBox::CONTEXT_NORMAL); + + $this->_setParam( ffMetaBox::PARAM_NORMALIZE_OPTIONS, true); + //$this->_addVisibility( ffMetaBox::VISIBILITY_PAGE_TEMPLATE, 'page-onepage.php'); + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutConditions/class.ffMetaBoxLayoutConditionsView.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutConditions/class.ffMetaBoxLayoutConditionsView.php new file mode 100644 index 0000000..a160323 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutConditions/class.ffMetaBoxLayoutConditionsView.php @@ -0,0 +1,59 @@ +getScriptEnqueuer()->getFrameworkScriptLoader()->requireFfAdmin(); + + /* $pluginUrl = ffPluginFreshCustomCodeContainer::getInstance()->getPluginUrl(); + ffContainer::getInstance()->getScriptEnqueuer()->addScript('ff-custom-code-metabox-helper', $pluginUrl.'/assets/js/customCodeMetaboxHelper.js'); + ffContainer::getInstance()->getStyleEnqueuer()->addStyle('ff-custom-code-less', $pluginUrl.'/assets/css/customCode.less');*/ + } + + public function requireModalWindows() { + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryColor(); + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryIcon(); + return; + } + + protected function _render( $post ) { + $fwc = ffContainer::getInstance(); + + $fwc->getWPLayer()->add_action('admin_footer', array($this,'requireModalWindows'), 1); + + $options = $fwc->getOptionsFactory()->createOptionsHolder('ffOptionsHolder_Layout_Conditions')->getOptions(); + + $layoutsDataManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getLayoutsDataManager(); + $collection = $layoutsDataManager->getLayoutCollection(); + $item = $collection->getLayoutById( $post->ID ); + $value = $item->getConditional(); + + $printer = $fwc->getOptionsFactory()->createOptionsPrinterBoxed( $value, $options ); + $printer->setNameprefix('conditions'); + $printer->walk(); + } + + + protected function _save( $postId ) { + return; + + $fwc = ffContainer::getInstance(); + + $layoutsDataManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getLayoutsDataManager(); + $collection = $layoutsDataManager->getLayoutCollection(); + $item = $collection->getLayoutById( $postId ); + + $options = $fwc->getOptionsFactory()->createOptionsHolder('ffOptionsHolder_Layout_Conditions')->getOptions(); + $postReader = $fwc->getOptionsFactory()->createOptionsPostReader($options); + + $value = $postReader->getData('conditions'); + + + $item->setConditional( $value ); + +// $layoutsDataManager->saveLayoutCollection(); + } + + + +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutContent/class.ffMetaBoxLayoutContent.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutContent/class.ffMetaBoxLayoutContent.php new file mode 100644 index 0000000..8ba41ae --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutContent/class.ffMetaBoxLayoutContent.php @@ -0,0 +1,14 @@ +getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getThemeLayoutManager(); + + $this->_addPostType( $themeLayoutManager->getLayoutPostTypeName() ); + $this->_setTitle('Layout'); + $this->_setContext( ffMetaBox::CONTEXT_NORMAL); + + $this->_setParam( ffMetaBox::PARAM_NORMALIZE_OPTIONS, true); + //$this->_addVisibility( ffMetaBox::VISIBILITY_PAGE_TEMPLATE, 'page-onepage.php'); + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutContent/class.ffMetaBoxLayoutContentView.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutContent/class.ffMetaBoxLayoutContentView.php new file mode 100644 index 0000000..5be9f02 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutContent/class.ffMetaBoxLayoutContentView.php @@ -0,0 +1,240 @@ +getScriptEnqueuer()->getFrameworkScriptLoader()->requireFfAdmin()->requireFrsLibOptions()->requireSelect2(); + $fwc->getScriptEnqueuer()->addScriptFramework('ff-layout-saving', '/framework/themes/layouts/metaBoxes/assets/ff-layout-saving-manager.js', null, '2'); + } + + public function requireModalWindows() { + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryColor(); + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryIcon(); + return; + } + + protected function _render( $post ) { + $fwc = ffContainer(); + + $fwc->getWPLayer()->add_action('admin_footer', array($this,'requireModalWindows'), 1); + $fwc->getOptionsFactory()->createOptionsPrinterDataboxGenerator()->printAll(); + + echo '
    '; + echo ''; + } + + protected function _ajaxRender( $postId ) { + $fwc = ffContainer(); + + $layoutsDataManager = $fwc->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getLayoutsDataManager(); + $collection = $layoutsDataManager->getLayoutCollection(); + $item = $collection->getLayoutById( $postId); + + $layoutsOptionsHolderClassName = $fwc->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getThemeLayoutManager()->getLayoutsOptionsHolderClassName(); + + $options = $fwc->getOptionsFactory()->createOptionsHolder( $layoutsOptionsHolderClassName )->getOptions(); + $value = $item->getData(); + + $printer = $fwc->getOptionsFactory()->createOptionsPrinterJavascriptConvertor( $value, $options ); + $printer->setNameprefix('onepage'); + echo $printer->walk(); + + echo '
    '; + $this->_printRevisionList( $postId ); + echo '
    '; + echo ''; + } + + protected function _printRevisionList( $postId ) { + + $revisionManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getOnePageRevisionManager(); + $revisionManager->setPostId( $postId ); + + $currentRevisionNumber = $revisionManager->getCurrentRevisionNumber(); + echo '
    '; + echo '

    Revisions

    '; + echo '
      '; + + foreach( $revisionManager->getListOfRevisionsForCurrentPost() as $revisionNumber => $oneRevision ) { + + $revisionNumberText = $revisionNumber; + if( $revisionNumber == $currentRevisionNumber ) { + $revisionNumberText = 'current'; + } + +// +// Revision 93 (2015-10-10 at 15:05:05) Current +// Revision 92 (2015-10-10 at 15:05:05) Rollback +// Revision 91 (2015-10-10 at 15:05:05) Rollback +// Revision 90 (2015-10-10 at 15:05:05) Rollback +// Revision 89 (2015-10-10 at 15:05:05) Rollback + + echo '
    • '; + echo 'Revision ' . $oneRevision['number'] . ' (' . $oneRevision['human_time'].') '; + + + if( $revisionNumber == $currentRevisionNumber ) { + echo 'Current'; + } else { + echo ''; + echo 'Rollback'; + echo ''; + } + echo '
    • '; + } + + echo '
    '; + + echo '
    '; + } + + public function ajaxRequest( ffAjaxRequest $ajaxRequest ) { + if( $ajaxRequest->data['action'] == 'save' ) { + $this->_ajaxSave( $ajaxRequest ); + } else if ( $ajaxRequest->data['action'] == 'getOptions' ) { + $this->_ajaxRender( $ajaxRequest->data['postId'] ); + } else if( $ajaxRequest->data['action'] == 'rollbackToRevision' ) { + + $postId = $ajaxRequest->data['postId']; + $revisionNumber = $ajaxRequest->data['revisionNumber']; + + $revisionManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getOnePageRevisionManager(); + $revisionManager->setPostId( $postId ); + $revisionManager->setRevisionAsContent( $revisionNumber); + + $revision = $revisionManager->getRevisionContent( $revisionNumber ); + $revision = base64_decode( $revision ); + $revision = unserialize( $revision ); + + $layoutsDataManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getLayoutsDataManager(); + $collection = $layoutsDataManager->getLayoutCollection(); + $item = $collection->getLayoutById( $postId ); + $item->setData( $revision); + $layoutsDataManager->saveLayoutCollection(); + + + $this->_ajaxRender( $ajaxRequest->data['postId'] ); + + } + } + + protected function _ajaxSave( ffAjaxRequest $ajaxRequest ) { + $contentFormParsed = null; + $conditionsFormParsed = null; + $placementFormParsed = null; + + $contentForm = $ajaxRequest->data['serialisedContent']; + $conditionsForm = $ajaxRequest->data['serialisedConditions']; + $placementForm = $ajaxRequest->data['serialisedPlacement']; + $postId = $ajaxRequest->data['postId']; + + parse_str( $contentForm, $contentFormParsed); + parse_str( $conditionsForm, $conditionsFormParsed); + parse_str( $placementForm, $placementFormParsed); + + + + $fwc = ffContainer::getInstance(); + + $layoutsOptionsHolderClassName = $fwc->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getThemeLayoutManager()->getLayoutsOptionsHolderClassName(); + + + $s = $fwc->getOptionsFactory()->createOptionsHolder($layoutsOptionsHolderClassName)->getOptions(); + $postReader = $fwc->getOptionsFactory()->createOptionsPostReader($s); + $onepage = $postReader->getDataFromArray($contentFormParsed['onepage']); //$fwc->getOptionsFactory()->createOptionsPostReader()->getData( 'onepage'); + + + $revisionValue = $onepage; + $revisionValue = stripslashes_deep( $revisionValue ); + + $revisionValue = base64_encode(( serialize( $revisionValue ) ) ); + + $revisionManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getOnePageRevisionManager(); + $revisionManager->setPostId( $postId ); + $revisionManager->addNewRevision( $revisionValue ); + + $this->_printRevisionList( $postId ); + + + + + $layoutsDataManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getLayoutsDataManager(); + $collection = $layoutsDataManager->getLayoutCollection(); + $item = $collection->getLayoutById( $postId ); + + + + $item->setData( $onepage ); + + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffOptionsHolder_Layout_Placement')->getOptions(); + $postReader = $fwc->getOptionsFactory()->createOptionsPostReader($s); + $placement = $postReader->getDataFromArray($placementFormParsed['placement']);//$fwc->getOptionsFactory()->createOptionsPostReader()->getData( 'onepage'); + + $item->setPlacement( $placement ); + + + + $options = $fwc->getOptionsFactory()->createOptionsHolder('ffOptionsHolder_Layout_Conditions')->getOptions(); + $postReader = $fwc->getOptionsFactory()->createOptionsPostReader($options); + + $conditions = $postReader->getDataFromArray($conditionsFormParsed['conditions']); + + $item->setConditional( $conditions ); + + + $layoutsDataManager->saveLayoutCollection(); + } + + protected function _save( $postId ) { + // test if the options has been processed via javascript + if( !isset($_POST['has-been-normalized']) ) { + return false; + } + + $fwc = ffContainer::getInstance(); + + $layoutsOptionsHolderClassName = $fwc->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getThemeLayoutManager()->getLayoutsOptionsHolderClassName(); + + + $s = $fwc->getOptionsFactory()->createOptionsHolder($layoutsOptionsHolderClassName)->getOptions(); + $postReader = $fwc->getOptionsFactory()->createOptionsPostReader($s); + $value = $postReader->getData('onepage');//$fwc->getOptionsFactory()->createOptionsPostReader()->getData( 'onepage'); + + $revisionValue = $value; + $revisionValue = stripslashes_deep( $revisionValue ); + + $revisionValue = base64_encode(( serialize( $revisionValue ) ) ); + + $revisionManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getOnePageRevisionManager(); + $revisionManager->setPostId( $postId ); + $revisionManager->addNewRevision( $revisionValue ); + + + $layoutsDataManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getLayoutsDataManager(); + $collection = $layoutsDataManager->getLayoutCollection(); + $item = $collection->getLayoutById( $postId ); + + $item->setData( $value ); + + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffOptionsHolder_Layout_Placement')->getOptions(); + $postReader = $fwc->getOptionsFactory()->createOptionsPostReader($s); + $value = $postReader->getData('placement');//$fwc->getOptionsFactory()->createOptionsPostReader()->getData( 'onepage'); + + $item->setPlacement( $value ); + + + $options = $fwc->getOptionsFactory()->createOptionsHolder('ffOptionsHolder_Layout_Conditions')->getOptions(); + $postReader = $fwc->getOptionsFactory()->createOptionsPostReader($options); + + $value = $postReader->getData('conditions'); + + $item->setConditional( $value ); + + $layoutsDataManager->saveLayoutCollection(); + + + + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutPlacement/class.ffMetaBoxLayoutPlacement.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutPlacement/class.ffMetaBoxLayoutPlacement.php new file mode 100644 index 0000000..d373caf --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutPlacement/class.ffMetaBoxLayoutPlacement.php @@ -0,0 +1,13 @@ +getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getThemeLayoutManager(); + + $this->_addPostType( $themeLayoutManager->getLayoutPostTypeName() ); + $this->_setTitle('Layout Placement'); + $this->_setContext( ffMetaBox::CONTEXT_SIDE ); + + $this->_setParam( ffMetaBox::PARAM_NORMALIZE_OPTIONS, true); + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutPlacement/class.ffMetaBoxLayoutPlacementView.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutPlacement/class.ffMetaBoxLayoutPlacementView.php new file mode 100644 index 0000000..3435775 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/metaBoxes/metaBoxLayoutPlacement/class.ffMetaBoxLayoutPlacementView.php @@ -0,0 +1,49 @@ +getScriptEnqueuer()->getFrameworkScriptLoader()->requireFfAdmin(); + + } + + public function requireModalWindows() { + + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryColor(); + ffContainer::getInstance()->getModalWindowFactory()->printModalWindowManagerLibraryIcon(); + return; + } + + protected function _render( $post ) { + $layoutsDataManager = ffContainer()->getThemeFrameworkFactory()->getLayoutsNamespaceFactory()->getLayoutsDataManager(); + + $collection = $layoutsDataManager->getLayoutCollection(); + + $item = $collection->getLayoutById( $post->ID ); + + $fwc = ffContainer::getInstance(); + + $fwc->getWPLayer()->add_action('admin_footer', array($this,'requireModalWindows'), 1); + $s = $fwc->getOptionsFactory()->createOptionsHolder('ffOptionsHolder_Layout_Placement')->getOptions();//createStructure('portfolio'); + + $value = $item->getPlacement(); //$fwc->getDataStorageFactory()->createDataStorageOptionsPostType_NamespaceFacade(ffThemeContainer::THEME_NAME_LOW.'-layouts', true)->getOptionCoded('placements'); + + + $printer = $fwc->getOptionsFactory()->createOptionsPrinterBoxed( $value, $s ); + $printer->setNameprefix('placement'); + $printer->walk(); + + + + } + + + protected function _save( $postId ) { + + + + + + return; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/optionsHolders/class.ffOptionsHolder_Layout_Conditions.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/optionsHolders/class.ffOptionsHolder_Layout_Conditions.php new file mode 100644 index 0000000..5e717be --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/optionsHolders/class.ffOptionsHolder_Layout_Conditions.php @@ -0,0 +1,14 @@ +_getOnestructurefactory()->createOneStructure('layout-conditions'); + + $s->startSection('conditions'); + $s->addOption(ffOneOption::TYPE_CONDITIONAL_LOGIC, 'show-where'); + $s->endSection(); + + return $s; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/optionsHolders/class.ffOptionsHolder_Layout_Placement.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/optionsHolders/class.ffOptionsHolder_Layout_Placement.php new file mode 100644 index 0000000..8482e68 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/layouts/optionsHolders/class.ffOptionsHolder_Layout_Placement.php @@ -0,0 +1,45 @@ +_getOnestructurefactory()->createOneStructure('layout'); + + $s->startSection('placement'); + $s->addElement( ffOneElement::TYPE_HTML,'', '
    '); + + $s->addOption(ffOneOption::TYPE_CHECKBOX, 'active', 'Layout is Active', 1); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_RADIO, 'placement', '', 'content') + ->addParam('break-line-at-end', true) + ->addSelectValue('Header', 'header') + ->addSelectValue('Before Content', 'before-content') + ->addSelectValue('Content', 'content') + ->addSelectValue('After Content', 'after-content') + ->addSelectValue('Footer', 'footer'); + + $s->addOption(ffOneOption::TYPE_SELECT, 'priority', 'Priority ', '5') + ->addSelectValue('1 (highest)', '1') + ->addSelectValue('2', '2') + ->addSelectValue('3', '3') + ->addSelectValue('4', '4') + ->addSelectValue('5 (default)', '5') + ->addSelectValue('6', '6') + ->addSelectValue('7', '7') + ->addSelectValue('8', '8') + ->addSelectValue('9', '9') + ->addSelectValue('10 (lowest)', '10'); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'default', 'Default (show when nothing else found AND the conditional logic passes)', 0); + + + $s->addElement( ffOneElement::TYPE_HTML,'', '
    '); + $s->endSection(); + + return $s; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/assets/menuJavascriptSave.js b/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/assets/menuJavascriptSave.js new file mode 100644 index 0000000..48274ed --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/assets/menuJavascriptSave.js @@ -0,0 +1,27 @@ +(function($){ + + $(document).ready(function(){ + + if( !wpNavMenu ) { + return false; + } + + var backupeventOnClickMenuSave = wpNavMenu.eventOnClickMenuSave; + + wpNavMenu.eventOnClickMenuSave = function() { + backupeventOnClickMenuSave(); + + var ourInputName = 'ff-navigation-menu-serialized'; + var $form = $('#update-nav-menu'); + var serializedForm = ( $form.serialize() ); + + $form.find('input, checkbox, radio, textarea').attr('name', ''); + $form.append(''); + $('.'+ourInputName).val( serializedForm ); + + $form.submit(); + + } + }); + +})(jQuery); \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/assets/menuOptions.js b/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/assets/menuOptions.js new file mode 100644 index 0000000..c49ab91 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/assets/menuOptions.js @@ -0,0 +1,130 @@ +/** + * Adding our uptions into WP admin menu by javascript + * + */ +(function($){ + + + $(document).ready(function(){ + +/**********************************************************************************************************************/ +/* HIJACK WP ACTIONS +/**********************************************************************************************************************/ + if( !wpNavMenu ) { + return false; + } + + + + var backupAddMenuItemToBottom = wpNavMenu.addMenuItemToBottom; + var backupAddMenuItemToTop = wpNavMenu.addMenuItemToTop; + + // from wordpress callbacks we can have the HTML markup of newly added item + // where unique is DataBase ID of the menu post + var findItemBasedOnItsHTMLMarkup = function( htmlMarkup ) { + var dbId = $(htmlMarkup).find('.menu-item-data-db-id').val(); + var $newItem = $('.menu-item-data-db-id[value="'+dbId+'"]').parents('li.menu-item:first'); + + return $newItem; + } + + wpNavMenu.addMenuItemToTop = function( menuMarkup ) { + backupAddMenuItemToTop( menuMarkup ); + + var $newItem = findItemBasedOnItsHTMLMarkup( menuMarkup ); + addOurOptionsToMenuItem( $newItem ); + + frslib.options.functions.initParticularOptions(); + } + + wpNavMenu.addMenuItemToBottom = function( menuMarkup ) { + backupAddMenuItemToBottom( menuMarkup ); + + var $newItem = findItemBasedOnItsHTMLMarkup( menuMarkup ); + addOurOptionsToMenuItem( $newItem ); + + frslib.options.functions.initParticularOptions(); + } + + + + +/**********************************************************************************************************************/ +/* ADDING OPTIONS TO THE MENU ITEM +/**********************************************************************************************************************/ + var printerBoxed = frslib.options.walkers.printerBoxed(); + var structure = $('.ff-menu-options-holder .ff-options-structure-js').html(); + var currentMenuId = parseInt($('#menu').val()); + + var data = null; + + if( $('.ff-menu-options-wrapper').find('.ff-menu-data-holder').html() != '' ) { + data = JSON.parse($('.ff-menu-options-wrapper').find('.ff-menu-data-holder').html()); + } + + printerBoxed.setStructureString( structure ); + + var addOurOptionsToMenuItem = function( $menuItem ) { + + var currentItemDBID = $menuItem.find('.menu-item-data-db-id').val(); + var dataJSON = null; + + if( data != undefined && data[ currentMenuId ] && data[ currentMenuId ][ currentItemDBID ] ) { + dataJSON = ( data[ currentMenuId ][ currentItemDBID ] ); + dataJSON = dataJSON; + printerBoxed.setDataJSON( dataJSON ); + } + + var $html = '
    ' + printerBoxed.walk() + '
    '; + + $menuItem.find('.field-description').after( $html ); + } + + // add our options to all existing items + $('ul.menu').find('.menu-item').each(function(){ + addOurOptionsToMenuItem( $(this) ); + }); + frslib.options.functions.initParticularOptions(); + +/**********************************************************************************************************************/ +/* SAVING OPTIONS +/**********************************************************************************************************************/ + + $('#save_menu_header, #save_menu_footer').click( function() { + + $('ul.menu').find('.menu-item').each(function(){ + var $form = $(this).find('.ff-menu-options-holder'); + + $form = frslib.options.template.functions.normalize( $form ); + $form = $('
    ' + $form.html() + '
    '); + + var formSerialized = $form.serializeObject(); + var formJson = JSON.stringify( formSerialized ); + var menuItemDBId = $(this).find('.menu-item-data-db-id').val(); + + var textArea = ''; + + // add invisible textarea with jsoned options + $(this).find('.ff-menu-options-holder').after( textArea ); + + // delete the original unused options, so they wont take a place for other menu items + $(this).find('.ff-menu-options-holder').find('*').removeAttr('name'); + }); + + }); + + + + + }); + + + + + + + + + + +})(jQuery); \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/class.ffMenuJavascriptSaver.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/class.ffMenuJavascriptSaver.php new file mode 100644 index 0000000..1d4c7b5 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/class.ffMenuJavascriptSaver.php @@ -0,0 +1,116 @@ +_setScriptEnqueuer( $scriptEnqueuer ); + $this->_setRequest( $request ); + } +/**********************************************************************************************************************/ +/* PUBLIC FUNCTIONS +/**********************************************************************************************************************/ + + public function enableMenuJavascriptSave() { + if( $this->_menuHasBeenEnabled == true ) { + return; + } + + $this->_menuHasBeenEnabled = true; + $this->_getScriptEnqueuer()->addScriptFramework('ff-menu-javascript-save', '/framework/themes/menuOptions/assets/menuJavascriptSave.js'); + + $this->_unserializeOurPostVariable(); + } + + +/**********************************************************************************************************************/ +/* PUBLIC PROPERTIES +/**********************************************************************************************************************/ + +/**********************************************************************************************************************/ +/* PRIVATE FUNCTIONS +/**********************************************************************************************************************/ + private function _unserializeOurPostVariable() { + if( $this->_getRequest()->post('ff-navigation-menu-serialized') ) { + $ourPostSerialized = $this->_getRequest()->post('ff-navigation-menu-serialized'); + $postUnserialized = array(); + + $this->_customParseString($ourPostSerialized, $postUnserialized); + + $this->_getRequest()->setPost( $postUnserialized ); + } + + } + + private function _customParseString($string, &$result) { + if($string==='') return false; + $result = array(); + // find the pairs "name=value" + $pairs = explode('&', urldecode($string)); + foreach ($pairs as $pair) { + // use the original parse_str() on each element + parse_str($pair, $params); + $k=key($params); + if(!isset($result[$k])) $result+=$params; + else $result[$k]+=$params[$k]; + } + return true; + } + +/**********************************************************************************************************************/ +/* PRIVATE GETTERS & SETTERS +/**********************************************************************************************************************/ + /** + * @return ffScriptEnqueuer + */ + private function _getScriptEnqueuer() + { + return $this->_scriptEnqueuer; + } + + /** + * @param ffScriptEnqueuer $scriptEnqueuer + */ + private function _setScriptEnqueuer($scriptEnqueuer) + { + $this->_scriptEnqueuer = $scriptEnqueuer; + } + + /** + * @return ffRequest + */ + private function _getRequest() + { + return $this->_request; + } + + /** + * @param ffRequest $request + */ + private function _setRequest($request) + { + $this->_request = $request; + } + + +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/class.ffMenuOptionsCollection.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/class.ffMenuOptionsCollection.php new file mode 100644 index 0000000..f28b217 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/class.ffMenuOptionsCollection.php @@ -0,0 +1,5 @@ +_setWPLayer( $WPLayer ); + + $this->_setOptionsFactory( $optionsFactory ); + $this->_setModalWindowFactory( $modalWindowFactory ); + + $WPLayer->add_action('current_screen', array($this, 'actCurrentScreen')); + $WPLayer->add_action('wp_update_nav_menu', array( $this, 'actUpdateMenu') ); + $WPLayer->add_action('admin_footer', array( $this, 'actAdminFooter') ); + + + $this->_setScriptEnqueuer( $scriptEnqueuer ); + $this->_setDataStoragePostType( $dataStoragePostType ); + $dataStoragePostType->setNamespace( $this->_getOptionsNamespace() ); + $this->_setRequest( $request ); + } +/**********************************************************************************************************************/ +/* PUBLIC FUNCTIONS +/**********************************************************************************************************************/ + public function setOptionsHolderClassName( $className ) { + $this->_setOptionsHolderClassName( $className ); + } + + public function getQueryForMenuItem( $menuId, $itemId ) { + $data = $this->_getWholeOption(); + + + $query = null; + if( isset( $data[ $menuId ] ) && isset( $data[ $menuId ][ $itemId ] ) ) { + $optionsHolder = $this->_getOptionsHolder(); + $query = $this->_getOptionsFactory()->createQuery( $data[ $menuId ][ $itemId], $optionsHolder ); + } + + return $query; + } + + public function actUpdateMenu() { + + + } + + public function actCurrentScreen() { + + + if( !$this->_getWPLayer()->is_admin() ) { + return false; + } + + $currentScreen = $this->_getWPLayer()->get_current_screen(); + + if( $currentScreen->base != 'nav-menus' ) { + return false; + } + + + if( !$this->_getRequest()->postEmpty() ) { + + $data = $this->_getWholeOption(); + $menuSettings = ( $this->_getRequest()->post('ff-menu-item-settings') ); + $menuId = $this->_getRequest()->post('menu'); + + $menuSettingsNew = array(); + + if( !empty( $menuSettings ) ) { + foreach( $menuSettings as $key => $value ) { + $decoded = $this->_objectToArray( json_decode($value) ); + $menuSettingsNew[ $key ] = $decoded[ 'default' ]; + } + $data[ $menuId ] = $menuSettingsNew; + $this->_setWholeOption( $data ); + } + } + + + + if( $this->_getRequest()->get('menu') !== 0 ) { + $this->_getScriptEnqueuer()->addScriptFramework('ff-menu-options', '/framework/themes/menuOptions/assets/menuOptions.js', null, null, true); + $this->_getScriptEnqueuer()->getFrameworkScriptLoader()->requireFrsLib()->requireFrsLibOptions()->requireFfAdmin()->requireSelect2()->requireFrsLibModal(); + + } + + } + + + + public function actAdminFooter() { + + $currentScreen = $this->_getWPLayer()->get_current_screen(); + + if( !(isset( $currentScreen->base ) && $currentScreen->base == 'nav-menus') ) { + return false; + } + + $this->_getModalWindowFactory()->printModalWindowManagerLibraryIcon(); + $optionsHolder = $this->_getOptionsHolder(); + + $jswalker = $this->_getOptionsFactory()->createOptionsPrinterJavascriptConvertor( null, $optionsHolder->getOptions() ); + + $jswalker->setAutomaticallyInitialiseAtFrontend( false); + + $data = $this->_getWholeOption(); + $dataString = ''; + + if( $data != null ) { +// var_dump( $data ); + $dataString = json_encode($data); + } + + echo '
    '; + echo '
    '; + echo $jswalker->walk(); + echo '
    '; + + echo ''; + echo '
    '; + } +/**********************************************************************************************************************/ +/* PUBLIC PROPERTIES +/**********************************************************************************************************************/ + public function setThemeName( $themeName ) { + $this->_themeName = $themeName; + } +/**********************************************************************************************************************/ +/* PRIVATE FUNCTIONS +/**********************************************************************************************************************/ + private function _getOptionsHolder() { + return $this->_getOptionsFactory()->createOptionsHolder( $this->_getOptionsHolderClassName() ); + } + + private function _getOptionsNamespace() { + return 'ff-menu-options-' . $this->_getThemeName(); + } + + private function _objectToArray($d) { + if (is_object($d)) { + // Gets the properties of the given object + // with get_object_vars function + $d = get_object_vars($d); + } + + if (is_array($d)) { + /* + * Return array converted to object + * Using __FUNCTION__ (Magic constant) + * for recursive call + */ + return array_map(array( $this, '_objectToArray'), $d); + } + else { + // Return array + return $d; + } + } + + private function _getWholeOption() { + $data = $this->_getDataStoragePostType()->getOptionCoded('menu-data'); + + return $data; + } + + private function _setWholeOption( $data ) { + $this->_getDataStoragePostType()->setOptionCoded('menu-data', ($data) ); + } + + +/**********************************************************************************************************************/ +/* PRIVATE GETTERS & SETTERS +/**********************************************************************************************************************/ + /** + * @return ffWPLayer + */ + private function _getWPLayer() + { + return $this->_WPLayer; + } + + /** + * @param ffWPLayer $WPLayer + */ + private function _setWPLayer($WPLayer) + { + $this->_WPLayer = $WPLayer; + } + + /** + * @return null + */ + private function _getOptionsHolderClassName() + { + return $this->_optionsHolderClassName; + } + + /** + * @param null $optionsHolderClassName + */ + private function _setOptionsHolderClassName($optionsHolderClassName) + { + $this->_optionsHolderClassName = $optionsHolderClassName; + } + + /** + * @return ffOptions_Factory + */ + private function _getOptionsFactory() + { + return $this->_optionsFactory; + } + + /** + * @param ffOptions_Factory $optionsFactory + */ + private function _setOptionsFactory($optionsFactory) + { + $this->_optionsFactory = $optionsFactory; + } + + /** + * @return ffScriptEnqueuer + */ + private function _getScriptEnqueuer() + { + return $this->_scriptEnqueuer; + } + + /** + * @param ffScriptEnqueuer $scriptEnqueuer + */ + private function _setScriptEnqueuer($scriptEnqueuer) + { + $this->_scriptEnqueuer = $scriptEnqueuer; + } + + /** + * @return ffDataStorage_OptionsPostType_NamespaceFacade + */ + private function _getDataStoragePostType() + { + return $this->_dataStoragePostType; + } + + /** + * @param ffDataStorage_OptionsPostType_NamespaceFacade $dataStoragePostType + */ + private function _setDataStoragePostType($dataStoragePostType) + { + $this->_dataStoragePostType = $dataStoragePostType; + } + + /** + * @return null + */ + private function _getThemeName() + { + return $this->_themeName; + } + + /** + * @return ffRequest + */ + private function _getRequest() + { + return $this->_request; + } + + /** + * @param ffRequest $request + */ + private function _setRequest($request) + { + $this->_request = $request; + } + + /** + * @return ffModalWindowFactory + */ + private function _getModalWindowFactory() + { + return $this->_modalWindowFactory; + } + + /** + * @param ffModalWindowFactory $modalWindowFactory + */ + private function _setModalWindowFactory($modalWindowFactory) + { + $this->_modalWindowFactory = $modalWindowFactory; + } + + + +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/factories/class.ffMenuOptionsNamespaceFactory.php b/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/factories/class.ffMenuOptionsNamespaceFactory.php new file mode 100644 index 0000000..f2efab8 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/framework/themes/menuOptions/factories/class.ffMenuOptionsNamespaceFactory.php @@ -0,0 +1,7 @@ +_setWPLayer( $WPLayer ); + $this->_setPluginIdentificator( $pluginIdentificator ); + $this->_setHttp( $http ); + $this->_setFreshfaceServerUrl($serverUrl); + $this->_setFreshfaceServerUrlTheme($serverUrlTheme); + $this->_setDataStorage( $dataStorage ); + + $this->_getDataStorage()->setNamespace('ffWPUpgrader'); + $this->_setHasBeenLoaded(false); + $this->_setHasBeenLoadedThemes(false); + $this->_hookActions(); + } + + public function actionPreUpdateOptionShowThemes( $transient ) { + + if( $this->_getHasBeenLoadedThemes() == false ) { + $action = 'update_info_themes'; + + $info_themes = serialize($this->_getPluginIdentificator()->getAllThemesInfo()); + $info_plugins = serialize($this->_getPluginIdentificator()->getAllPluginInfo()); + $website_url = $this->_getWPLayer()->get_home_url(); + + $infoBack = $this->_getHttp() + ->post( + $this->_getFreshfaceServerUrlTheme(), + array( 'action' => $action, + 'info_themes' => $info_themes, + 'info_plugins' => $info_plugins, + 'info_home' => $website_url + ) + ); + if( !($infoBack instanceof WP_Error) && $infoBack['response']['code'] == 200 ) { + $ourUpdateInfo = unserialize($infoBack['body']); + if( is_array( $ourUpdateInfo ) ) { + if( empty( $transient->response ) ){ $transient->response = array(); } + if( is_object($transient) && property_exists( $transient, 'response') && is_array( $transient->response ) ) { + $transient->response = array_merge( $transient->response, $ourUpdateInfo ); + } + $this->_setHasBeenLoadedThemes(true); + $this->_setResponseFromOurServerTheme( $ourUpdateInfo ); + if( empty( $transient->response ) ){ $transient->response = null; } + } + } + } else { + if( $this->_getResponseFromOurServerTheme() != null ) { + if( empty( $transient->response ) ){ $transient->response = array(); } + $transient->response = array_merge( $transient->response, $this->_responseFromOurServerTheme ); + if( empty( $transient->response ) ){ $transient->response = null; } + } + } + return $transient; + } + /** + * This function is injecting our plugin updates. Wordpress is calling this + * function twice, so I made a primitive memory caching to avoid double + * http requests. + * + * @param unknown $transient + * @return unknown + */ + public function actionPreUpdateOptionShowPlugins( $transient ) { + if( $this->_getHasBeenLoaded() == false ) { + $action = 'update_info'; + + $info_themes = serialize($this->_getPluginIdentificator()->getAllThemesInfo()); + $info_plugins = serialize($this->_getPluginIdentificator()->getAllPluginInfo()); + $website_url = $this->_getWPLayer()->get_home_url(); + + $infoBack = $this->_getHttp() + ->post( + $this->_getFreshfaceServerUrl(), + array( 'action' => $action, + 'info_themes' => $info_themes, + 'info_plugins' => $info_plugins, + 'info_home' => $website_url + ) + ); + + // echo '
    ';
    +			// print_r(	
    +			// 	array( 
    +			// 		'action' => $action, 
    +			// 		'info_themes' => unserialize( $info_themes),
    +			// 		'info_plugins' => unserialize( $info_plugins ),
    +			// 		'info_home' => unserialize( $website_url )
    +			// 	)
    +			// ); 
    +			// echo '
    '; + if( !($infoBack instanceof WP_Error) && $infoBack['response']['code'] == 200 ) { + // echo '
    ';var_dump( unserialize($infoBack['body']));exit;
    +				$ourUpdateInfo = unserialize($infoBack['body']);
    +
    +
    +				if( is_array( $ourUpdateInfo ) ) {
    +
    +					if( is_object($transient) && property_exists( $transient, 'response') && is_array( $transient->response ) ) {
    +						$transient->response = array_merge( $transient->response, $ourUpdateInfo );
    +					}
    +
    +					//$transient->response = array_merge( $transient->response, $ourUpdateInfo );
    +					$this->_setHasBeenLoaded(true);
    +					$this->_setResponseFromOurServer( $ourUpdateInfo );
    +				}
    +			}
    +		} else {
    +			if( $this->_getResponseFromOurServer() != null ) {
    +                if( property_exists( $transient, 'response') && is_array( $transient->response ) ) {
    +				    $transient->response = array_merge( $transient->response, $this->_responseFromOurServer['upgrades'] );
    +                } else {
    +                    $transient->response = $this->_responseFromOurServer['upgrades'];
    +                }
    +			}
    +		}
    +
    +		return $transient;
    +	}
    +
    +	/**
    +	 * Gather info about the plugin upgrade. If we have it return the info,
    +	 * if we dont have it, return false and wordpress will try another ways.
    +	 *
    +	 * @param unknown $false
    +	 * @param unknown $action
    +	 * @param unknown $arg
    +	 * @return unknown|boolean
    +	 */
    +	public function actionThemesApi($false, $action, $arg)
    +	{
    +		// echo '
    ';
    +		// var_dump( $false, $action, $arg);
    +		// echo '
    '; + // die(); + + return; + + + + // zkopirovano! + $response = $this->_getResponseFromOurServer(); + + $plug = null; + if( isset( $arg->slug) && isset( $response['informations'][ $arg->slug] ) ) { + $plug = $response['informations'][ $arg->slug]; + return $plug; + } + + return false; + } + + + /** + * Gather info about the plugin upgrade. If we have it return the info, + * if we dont have it, return false and wordpress will try another ways. + * + * @param unknown $false + * @param unknown $action + * @param unknown $arg + * @return unknown|boolean + */ + public function actionPluginsApi($false, $action, $arg) + { + $response = $this->_getResponseFromOurServer(); + + $plug = null; + if( isset( $arg->slug) && isset( $response['informations'][ $arg->slug] ) ) { + $plug = $response['informations'][ $arg->slug]; + return $plug; + } + + return false; + } + + +/******************************************************************************/ +/* PRIVATE FUNCTIONS +/******************************************************************************/ + private function _hookActions() { + $this->_getWPLayer()->add_filter('pre_set_site_transient_update_plugins', array( $this, 'actionPreUpdateOptionShowPlugins')); + $this->_getWPLayer()->add_filter('pre_set_site_transient_update_themes', array( $this, 'actionPreUpdateOptionShowThemes')); + $this->_getWPLayer()->add_filter('plugins_api', array( $this, 'actionPluginsApi' ), 10, 3); + $this->_getWPLayer()->add_filter('themes_api', array( $this, 'actionThemesApi' ), 10, 3); + } +/******************************************************************************/ +/* SETTERS AND GETTERS +/******************************************************************************/ + + /** + * @return ffWPLayer + */ + protected function _getWPLayer() { + return $this->_WPLayer; + } + + /** + * @param ffWPLayer $WPLayer + */ + protected function _setWPLayer(ffWPLayer $WPLayer) { + $this->_WPLayer = $WPLayer; + return $this; + } + + protected function _getFreshfaceServerUrlTheme() { + return $this->_freshfaceServerUrlTheme; + } + + protected function _setFreshfaceServerUrlTheme( $freshfaceServerUrlTheme) { + $this->_freshfaceServerUrlTheme = $freshfaceServerUrlTheme; + return $this; + } + + protected function _getFreshfaceServerUrl() { + return $this->_freshfaceServerUrl; + } + + protected function _setFreshfaceServerUrl( $freshfaceServerUrl) { + $this->_freshfaceServerUrl = $freshfaceServerUrl; + return $this; + } + + /** + * @return ffPluginIdentificator + */ + protected function _getPluginIdentificator() { + return $this->_pluginIdentificator; + } + + /** + * @param ffPluginIdentificator $pluginIdentificator + */ + protected function _setPluginIdentificator(ffPluginIdentificator $pluginIdentificator) { + $this->_pluginIdentificator = $pluginIdentificator; + return $this; + } + + /** + * @return ffHttp + */ + protected function _getHttp() { + return $this->_http; + } + + /** + * @param ffHttp $http + */ + protected function _setHttp(ffHttp $http) { + $this->_http = $http; + return $this; + } + + protected function _getHasBeenLoadedThemes() { + return $this->_hasBeenLoadedThemes; + } + + protected function _setHasBeenLoadedThemes($hasBeenLoadedThemes) { + $this->_hasBeenLoadedThemes = $hasBeenLoadedThemes; + return $this; + } + + protected function _getHasBeenLoaded() { + return $this->_hasBeenLoaded; + } + + protected function _setHasBeenLoaded($hasBeenLoaded) { + $this->_hasBeenLoaded = $hasBeenLoaded; + return $this; + } + + protected function _getResponseFromOurServer() { + if( $this->_responseFromOurServer == null ) { + $this->_responseFromOurServer = $this->_getDataStorage()->getOption('response_from_our_server'); + } + return $this->_responseFromOurServer; + } + + protected function _setResponseFromOurServerTheme($responseFromOurServerTheme) { + $this->_responseFromOurServerTheme = $responseFromOurServerTheme; + $this->_getDataStorage()->setOption('response_from_our_serverTheme', $responseFromOurServerTheme ); + return $this; + } + + protected function _getResponseFromOurServerTheme() { + if( $this->_responseFromOurServerTheme == null ) { + $this->_responseFromOurServerTheme = $this->_getDataStorage()->getOption('response_from_our_serverTheme'); + } + return $this->_responseFromOurServerTheme; + } + + protected function _setResponseFromOurServer($responseFromOurServer) { + $this->_responseFromOurServer = $responseFromOurServer; + $this->_getDataStorage()->setOption('response_from_our_server', $responseFromOurServer ); + return $this; + } + + /** + * @return ffDataStorage_WPOptions_NamespaceFacede + */ + protected function _getDataStorage() { + return $this->_dataStorage; + } + + /** + * @param ffDataStorage_WPOptions_NamespaceFacede $dataStorage + */ + protected function _setDataStorage(ffDataStorage_WPOptions_NamespaceFacede $dataStorage) { + $this->_dataStorage = $dataStorage; + return $this; + } +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/fresh-framework/freshplugin.php b/wp-content/themes/milo/install/fresh-framework/freshplugin.php new file mode 100644 index 0000000..c243fba --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/freshplugin.php @@ -0,0 +1,14 @@ +addVersion('1.8.25', dirname(__FILE__).'/framework/bootstrap.php', dirname(__FILE__), plugin_dir_url(dirname(__FILE__).'/freshplugin.php') ); diff --git a/wp-content/themes/milo/install/fresh-framework/info.php b/wp-content/themes/milo/install/fresh-framework/info.php new file mode 100644 index 0000000..0155401 --- /dev/null +++ b/wp-content/themes/milo/install/fresh-framework/info.php @@ -0,0 +1,4 @@ +calc = new ffAdminScreen(); +// } +// +// public function testMultiply() +// { +// $this->assertEquals(10, $this->calc->multiply(2, 5), "Chyba nasobeni: 2 x 5 != 10"); +// } +// +// public function testDivide() +// { +// $this->assertEquals(2, $this->calc->divide(10, 5), "Chyba deleni: 10 / 5 != 2"); +// } +// +//} \ No newline at end of file diff --git a/wp-content/themes/milo/install/freshplugins.php b/wp-content/themes/milo/install/freshplugins.php new file mode 100644 index 0000000..c62175a --- /dev/null +++ b/wp-content/themes/milo/install/freshplugins.php @@ -0,0 +1,12 @@ +initFrameworkFromTemplate(); + + $container = ffContainer::getInstance(); + + + $currentDir = dirname( __FILE__ ); + $infoFile = $currentDir .'/fresh-framework/info.php'; + require( $infoFile ); + + $latestInstalledVersion = $versionManager->getLatestInstalledVersion(); + + if(version_compare( $info['plugin-version'], $latestInstalledVersion, '>')) { + if( $container->getPluginInstaller()->installPluginFromFolder( $currentDir .'/fresh-framework' ) ) { + $container->getPluginInstaller()->activateInstalledPlugins(); + header("Refresh:0"); + die(); + } + } else { + return; + } +} +ff_themeInstallFramework(); \ No newline at end of file diff --git a/wp-content/themes/milo/install/install-plugins-by-tgm.php b/wp-content/themes/milo/install/install-plugins-by-tgm.php new file mode 100644 index 0000000..879988c --- /dev/null +++ b/wp-content/themes/milo/install/install-plugins-by-tgm.php @@ -0,0 +1,160 @@ + + * @author Gary Jones + * @copyright Copyright (c) 2014, Thomas Griffin + * @license http://opensource.org/licenses/gpl-2.0.php GPL v2 or later + * @link https://github.com/thomasgriffin/TGM-Plugin-Activation + */ + +/** + * Include the TGM_Plugin_Activation class. + */ +require_once dirname( __FILE__ ) . '/class-tgm-plugin-activation.php'; + +add_action( 'tgmpa_register', 'milo_theme_register_required_plugins' ); +/** + * Register the required plugins for this theme. + * + * In this example, we register two plugins - one included with the TGMPA library + * and one from the .org repo. + * + * The variable passed to tgmpa_register_plugins() should be an array of plugin + * arrays. + * + * This function is hooked into tgmpa_init, which is fired within the + * TGM_Plugin_Activation class constructor. + */ +function milo_theme_register_required_plugins() { + + /** + * Array of plugin arrays. Required keys are name and slug. + * If the source is NOT from the .org repo, then source is also required. + */ + $plugins = array( + + array( + 'name' => 'Milo Theme Core Plugin', + 'slug' => 'milo-core', + 'source' => dirname(__FILE__).'/zips/milo-core.zip', + 'required' => true, + ), + array( + 'name' => 'Revolution Slider', + 'slug' => 'revslider', + 'source' => dirname(__FILE__).'/zips/revslider.zip', + 'required' => false, + ), + array( + 'name' => 'Visual Composer', + 'slug' => 'js_composer', + 'source' => dirname(__FILE__).'/zips/js_composer.zip', + 'required' => false, + ), + array( + 'name' => 'Fresh Custom Code', + 'slug' => 'fresh-custom-code', + 'source' => dirname(__FILE__).'/zips/fresh-custom-code.zip', + 'required' => false, + ), +// array( +// 'name' => 'Fresh Custom Loops', +// 'slug' => 'fresh-custom-loops', +// 'source' => dirname(__FILE__).'/zips/fresh-custom-loops.zip', +// 'required' => false, +// ), +// array( +// 'name' => 'Fresh Favicon', +// 'slug' => 'fresh-favicon', +// 'source' => dirname(__FILE__).'/zips/fresh-favicon.zip', +// 'required' => false, +// ), +// array( +// 'name' => 'Fresh File Editor', +// 'slug' => 'fresh-file-editor', +// 'source' => dirname(__FILE__).'/zips/fresh-file-editor.zip', +// 'required' => false, +// ), +// array( +// 'name' => 'Fresh Performance Cache', +// 'slug' => 'fresh-performance-cache', +// 'source' => dirname(__FILE__).'/zips/fresh-performance-cache.zip', +// 'required' => false, +// ), +// array( +// 'name' => 'Fresh Scrollbar', +// 'slug' => 'fresh-scrollbar', +// 'source' => dirname(__FILE__).'/zips/fresh-scrollbar.zip', +// 'required' => false, +// ), +// array( +// 'name' => 'Fresh Sidebar Manager', +// 'slug' => 'fresh-sidebar-manager', +// 'source' => dirname(__FILE__).'/zips/fresh-sidebar-manager.zip', +// 'required' => false, +// ), + + + // This is an example of how to include a plugin pre-packaged with a theme. + // array( + // 'name' => 'TGM Example Plugin', // The plugin name. + // 'slug' => 'tgm-example-plugin', // The plugin slug (typically the folder name). + // 'source' => get_stylesheet_directory() . '/lib/plugins/tgm-example-plugin.zip', // The plugin source. + // 'required' => false, // If false, the plugin is only 'recommended' instead of required. + // 'version' => '', // E.g. 1.0.0. If set, the active plugin must be this version or higher. + // 'force_activation' => false, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch. + // 'force_deactivation' => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins. + // 'external_url' => '', // If set, overrides default API URL and points to an external URL. + // ), + + ); + + /** + * Array of configuration settings. Amend each line as needed. + * If you want the default strings to be available under your own theme domain, + * leave the strings uncommented. + * Some of the strings are added into a sprintf, so see the comments at the + * end of each line for what each argument will be. + */ + $config = array( + 'default_path' => '', // Default absolute path to pre-packaged plugins. + 'menu' => 'tgmpa-install-plugins', // Menu slug. + 'has_notices' => true, // Show admin notices or not. + 'dismissable' => true, // If false, a user cannot dismiss the nag message. + 'dismiss_msg' => '', // If 'dismissable' is false, this message will be output at top of nag. + 'is_automatic' => false, // Automatically activate plugins after installation or not. + 'message' => '', // Message to output right before the plugins table. + 'strings' => array( + 'page_title' => __( 'Install Required Plugins', 'tgmpa' ), + 'menu_title' => __( 'Install Plugins', 'tgmpa' ), + 'installing' => __( 'Installing Plugin: %s', 'tgmpa' ), // %s = plugin name. + 'oops' => __( 'Something went wrong with the plugin API.', 'tgmpa' ), + 'notice_can_install_required' => _n_noop( 'This theme requires the following plugin: %1$s.', 'This theme requires the following plugins: %1$s.' ), // %1$s = plugin name(s). + 'notice_can_install_recommended' => _n_noop( 'This theme recommends the following plugin: %1$s.', 'This theme recommends the following plugins: %1$s.' ), // %1$s = plugin name(s). + 'notice_cannot_install' => _n_noop( 'Sorry, but you do not have the correct permissions to install the %s plugin. Contact the administrator of this site for help on getting the plugin installed.', 'Sorry, but you do not have the correct permissions to install the %s plugins. Contact the administrator of this site for help on getting the plugins installed.' ), // %1$s = plugin name(s). + 'notice_can_activate_required' => _n_noop( 'The following required plugin is currently inactive: %1$s.', 'The following required plugins are currently inactive: %1$s.' ), // %1$s = plugin name(s). + 'notice_can_activate_recommended' => _n_noop( 'The following recommended plugin is currently inactive: %1$s.', 'The following recommended plugins are currently inactive: %1$s.' ), // %1$s = plugin name(s). + 'notice_cannot_activate' => _n_noop( 'Sorry, but you do not have the correct permissions to activate the %s plugin. Contact the administrator of this site for help on getting the plugin activated.', 'Sorry, but you do not have the correct permissions to activate the %s plugins. Contact the administrator of this site for help on getting the plugins activated.' ), // %1$s = plugin name(s). + 'notice_ask_to_update' => _n_noop( 'The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.', 'The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s.' ), // %1$s = plugin name(s). + 'notice_cannot_update' => _n_noop( 'Sorry, but you do not have the correct permissions to update the %s plugin. Contact the administrator of this site for help on getting the plugin updated.', 'Sorry, but you do not have the correct permissions to update the %s plugins. Contact the administrator of this site for help on getting the plugins updated.' ), // %1$s = plugin name(s). + 'install_link' => _n_noop( 'Begin installing plugin', 'Begin installing plugins' ), + 'activate_link' => _n_noop( 'Begin activating plugin', 'Begin activating plugins' ), + 'return' => __( 'Return to Required Plugins Installer', 'tgmpa' ), + 'plugin_activated' => __( 'Plugin activated successfully.', 'tgmpa' ), + 'complete' => __( 'All plugins installed and activated successfully. %s', 'tgmpa' ), // %s = dashboard link. + 'nag_type' => 'updated' // Determines admin notice type - can only be 'updated', 'update-nag' or 'error'. + ) + ); + + tgmpa( $plugins, $config ); + +} \ No newline at end of file diff --git a/wp-content/themes/milo/install/zips/fresh-custom-code.zip b/wp-content/themes/milo/install/zips/fresh-custom-code.zip new file mode 100644 index 0000000..b604ab2 Binary files /dev/null and b/wp-content/themes/milo/install/zips/fresh-custom-code.zip differ diff --git a/wp-content/themes/milo/install/zips/fresh-custom-loops.zip b/wp-content/themes/milo/install/zips/fresh-custom-loops.zip new file mode 100644 index 0000000..35c4496 Binary files /dev/null and b/wp-content/themes/milo/install/zips/fresh-custom-loops.zip differ diff --git a/wp-content/themes/milo/install/zips/fresh-favicon.zip b/wp-content/themes/milo/install/zips/fresh-favicon.zip new file mode 100644 index 0000000..0b61069 Binary files /dev/null and b/wp-content/themes/milo/install/zips/fresh-favicon.zip differ diff --git a/wp-content/themes/milo/install/zips/fresh-file-editor.zip b/wp-content/themes/milo/install/zips/fresh-file-editor.zip new file mode 100644 index 0000000..d9802ee Binary files /dev/null and b/wp-content/themes/milo/install/zips/fresh-file-editor.zip differ diff --git a/wp-content/themes/milo/install/zips/fresh-performance-cache.zip b/wp-content/themes/milo/install/zips/fresh-performance-cache.zip new file mode 100644 index 0000000..b11b87b Binary files /dev/null and b/wp-content/themes/milo/install/zips/fresh-performance-cache.zip differ diff --git a/wp-content/themes/milo/install/zips/fresh-scrollbar.zip b/wp-content/themes/milo/install/zips/fresh-scrollbar.zip new file mode 100644 index 0000000..9dbc975 Binary files /dev/null and b/wp-content/themes/milo/install/zips/fresh-scrollbar.zip differ diff --git a/wp-content/themes/milo/install/zips/fresh-sidebar-manager.zip b/wp-content/themes/milo/install/zips/fresh-sidebar-manager.zip new file mode 100644 index 0000000..59bba00 Binary files /dev/null and b/wp-content/themes/milo/install/zips/fresh-sidebar-manager.zip differ diff --git a/wp-content/themes/milo/install/zips/js_composer.zip b/wp-content/themes/milo/install/zips/js_composer.zip new file mode 100644 index 0000000..9e20bd3 Binary files /dev/null and b/wp-content/themes/milo/install/zips/js_composer.zip differ diff --git a/wp-content/themes/milo/install/zips/milo-core.zip b/wp-content/themes/milo/install/zips/milo-core.zip new file mode 100644 index 0000000..148e271 Binary files /dev/null and b/wp-content/themes/milo/install/zips/milo-core.zip differ diff --git a/wp-content/themes/milo/install/zips/revslider.zip b/wp-content/themes/milo/install/zips/revslider.zip new file mode 100644 index 0000000..8dc60c6 Binary files /dev/null and b/wp-content/themes/milo/install/zips/revslider.zip differ diff --git a/wp-content/themes/milo/page-left-sidebar.php b/wp-content/themes/milo/page-left-sidebar.php new file mode 100644 index 0000000..ea6ba39 --- /dev/null +++ b/wp-content/themes/milo/page-left-sidebar.php @@ -0,0 +1,41 @@ + + +
    +
    +
    +
    > + +
    + get('comments-form')); + ffTemporaryQueryHolder::setQuery('comments-list', ffThemeOptions::getQuery('translation') ); //$query->get('comments-list')); + comments_template(); + ffTemporaryQueryHolder::deleteQuery('comments-form'); + ffTemporaryQueryHolder::deleteQuery('comments-list'); + ?> +
    +
    + +
    +
    +
    + +getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $post->ID ); + $onePage = $postMeta->getOption( 'onepage' ); + + $onePage = unserialize( base64_decode( $onePage )); + $sectionQuery = ffContainer::getInstance()->getOptionsFactory()->createQuery( $onePage, 'ffComponent_Theme_OnePageOptions'); + + + foreach( $sectionQuery->get('sections') as $oneSection ) { + /** @var ffOptionsQuery $oneSection */ + $variation = $oneSection->getVariationType(); + ff_print_section_callback( $oneSection, $variation ); + } + +get_footer(); \ No newline at end of file diff --git a/wp-content/themes/milo/page-right-sidebar.php b/wp-content/themes/milo/page-right-sidebar.php new file mode 100644 index 0000000..21a9bef --- /dev/null +++ b/wp-content/themes/milo/page-right-sidebar.php @@ -0,0 +1,41 @@ + + +
    +
    +
    +
    > + +
    + get('comments-form')); + ffTemporaryQueryHolder::setQuery('comments-list', ffThemeOptions::getQuery('translation') ); //$query->get('comments-list')); + comments_template(); + ffTemporaryQueryHolder::deleteQuery('comments-form'); + ffTemporaryQueryHolder::deleteQuery('comments-list'); + ?> +
    +
    + +
    +
    +
    + +getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $post->ID ); +$pageTitle = $postMeta->getOption( 'page_title' ); +$pageTitle = unserialize( base64_decode( $pageTitle )); +$sectionQuery = ffContainer::getInstance()->getOptionsFactory()->createQuery( $pageTitle, 'ffComponent_Theme_MetaboxPage_TitleView'); + +if( $sectionQuery->get('general show') ){ +?> + +
    +
    +
    +
    +

    +
    +
    +
    +
    + + + +
    +
    +
    +
    > + +
    + + get('comments-form')); + ffTemporaryQueryHolder::setQuery('comments-list', ffThemeOptions::getQuery('translation') ); //$query->get('comments-list')); + comments_template(); + ffTemporaryQueryHolder::deleteQuery('comments-form'); + ffTemporaryQueryHolder::deleteQuery('comments-list'); + ?> +
    +
    +
    + + \ No newline at end of file diff --git a/wp-content/themes/milo/readme.txt b/wp-content/themes/milo/readme.txt new file mode 100644 index 0000000..091ca6b --- /dev/null +++ b/wp-content/themes/milo/readme.txt @@ -0,0 +1,3 @@ +Theme Name: Milo +Theme URI: http://themeforest.net/user/freshface/portfolio +Description: Premium WordPress Theme \ No newline at end of file diff --git a/wp-content/themes/milo/rozdeleni.txt~ b/wp-content/themes/milo/rozdeleni.txt~ new file mode 100644 index 0000000..0ff305a --- /dev/null +++ b/wp-content/themes/milo/rozdeleni.txt~ @@ -0,0 +1,151 @@ +1.) Numbered Services (small numbers) + +Could be found: +- http://milothemes.com/milo/milo-preview/index-slider.html +- http://milothemes.com/milo/milo-preview/elements.html (identity) +- http://milothemes.com/milo/milo-preview/index-slider-fullscreen.html + +2.) Services with big numbers +could be found: +- http://milothemes.com/milo/milo-preview/portfolio-single.html +- http://milothemes.com/milo/milo-preview/index-video.html +- http://milothemes.com/milo/milo-preview/index-video-fullscreen.html + +3.) Services without numbers +http://milothemes.com/milo/milo-preview/index-slider.html +http://milothemes.com/milo/milo-preview/services.html +http://milothemes.com/milo/milo-preview/single-service.html +http://milothemes.com/milo/milo-preview/elements.html +http://milothemes.com/milo/milo-preview/index-slider-fullscreen.html +http://milothemes.com/milo/milo-preview/index-parallax-fullscreen.html + +4.) Twitter +http://milothemes.com/milo/milo-preview/blog-classic.html +http://milothemes.com/milo/milo-preview/blog-columns.html +http://milothemes.com/milo/milo-preview/blog-masonry.html +http://milothemes.com/milo/milo-preview/blog-post.html + + +5.)Project +http://milothemes.com/milo/milo-preview/index-slider.html + + +6.) Footer Social +http://milothemes.com/milo/milo-preview/index-slider.html +http://milothemes.com/milo/milo-preview/elements.html +http://milothemes.com/milo/milo-preview/menu-dark.html +http://milothemes.com/milo/milo-preview/page-header-dark.html +http://milothemes.com/milo/milo-preview/page-header-dark-2.html +http://milothemes.com/milo/milo-preview/testimonials.html +http://milothemes.com/milo/milo-preview/price-plan.html +http://milothemes.com/milo/milo-preview/error-page.html +http://milothemes.com/milo/milo-preview/portfolio-filterable-2.html +http://milothemes.com/milo/milo-preview/portfolio-masonry.html +http://milothemes.com/milo/milo-preview/portfolio-parallax.html + + + + + + + + + + + + +Steps A +http://milothemes.com/milo/milo-preview/index-slider.html + +Info Box +- http://milothemes.com/milo/milo-preview/index-slider.html +- http://milothemes.com/milo/milo-preview/index-slider-fullscreen.html + +Info Slide +- http://milothemes.com/milo/milo-preview/index-slider.html +- http://milothemes.com/milo/milo-preview/index-image.html + +Testimonial / quote +- http://milothemes.com/milo/milo-preview/index-slider.htmls +- http://milothemes.com/milo/milo-preview/index-parallax.html + +Timeline +- http://milothemes.com/milo/milo-preview/about-us.html + +Call to action +-http://milothemes.com/milo/milo-preview/about-us.html +- http://milothemes.com/milo/milo-preview/portfolio-single.html + +Facts counter +- http://milothemes.com/milo/milo-preview/about-us.html +- http://milothemes.com/milo/milo-preview/index-parallax.html +- http://milothemes.com/milo/milo-preview/index-video.html +- http://milothemes.com/milo/milo-preview/index-parallax-fullscreen.html + +Team +- http://milothemes.com/milo/milo-preview/about-us.html +- http://milothemes.com/milo/milo-preview/index-slider-onepage.html + +Steps +- http://milothemes.com/milo/milo-preview/services.html + +Steps 2 +- http://milothemes.com/milo/milo-preview/index-slider.html + + +Portfolio feed +- http://milothemes.com/milo/milo-preview/index-slider.html +- http://milothemes.com/milo/milo-preview/index-image.html +- http://milothemes.com/milo/milo-preview/index-video.html +- http://milothemes.com/milo/milo-preview/portfolio-wide.html +- http://milothemes.com/milo/milo-preview/index-slider-onepage.html +- http://milothemes.com/milo/milo-preview/portfolio-wide.html + +Portfolio single +- http://milothemes.com/milo/milo-preview/portfolio-single.html +- http://milothemes.com/milo/milo-preview/portfolio-single-2.html + +Service boxes +- http://milothemes.com/milo/milo-preview/index-slider.html +- http://milothemes.com/milo/milo-preview/index-parallax.html +- http://milothemes.com/milo/milo-preview/index-video.html + +Some kind of weird project slider +- http://milothemes.com/milo/milo-preview/index-slider.html +- http://milothemes.com/milo/milo-preview/index-slider-fullscreen.html + +Logos +- http://milothemes.com/milo/milo-preview/index-parallax.html +- http://milothemes.com/milo/milo-preview/index-video.html + +Blog Feed +- http://milothemes.com/milo/milo-preview/index-parallax.html +- http://milothemes.com/milo/milo-preview/index-video.html + + +Step Boxes +- http://milothemes.com/milo/milo-preview/index-video.html + +Social Footer +- http://milothemes.com/milo/milo-preview/index-slider-fullscreen.html + +Pricing tables +- http://milothemes.com/milo/milo-preview/price-plan.html + +404 +- http://milothemes.com/milo/milo-preview/error-page.html + +Twitter +- http://milothemes.com/milo/milo-preview/blog-masonry.html + +Blog Single +- http://milothemes.com/milo/milo-preview/blog-post.html + +Contact form +- http://milothemes.com/milo/milo-preview/contact.html + +Map +- http://milothemes.com/milo/milo-preview/contact.html + + + diff --git a/wp-content/themes/milo/screenshot.png b/wp-content/themes/milo/screenshot.png new file mode 100644 index 0000000..6c4f89a Binary files /dev/null and b/wp-content/themes/milo/screenshot.png differ diff --git a/wp-content/themes/milo/searchform.php b/wp-content/themes/milo/searchform.php new file mode 100644 index 0000000..e397267 --- /dev/null +++ b/wp-content/themes/milo/searchform.php @@ -0,0 +1,20 @@ + diff --git a/wp-content/themes/milo/sidebar.php b/wp-content/themes/milo/sidebar.php new file mode 100644 index 0000000..d0f5585 --- /dev/null +++ b/wp-content/themes/milo/sidebar.php @@ -0,0 +1,5 @@ +getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $post->ID ); +$onePage = $postMeta->getOption( 'onepage' ); + +$onePage = unserialize( base64_decode( $onePage )); +$sectionQuery = ffContainer::getInstance()->getOptionsFactory()->createQuery( $onePage, 'ffComponent_Theme_OnePageOptions'); + + +foreach( $sectionQuery->get('sections') as $oneSection ) { + $variation = $oneSection->getVariationType(); + ff_print_section_callback( $oneSection, $variation ); +} + +get_footer(); \ No newline at end of file diff --git a/wp-content/themes/milo/style.css b/wp-content/themes/milo/style.css new file mode 100644 index 0000000..922010b --- /dev/null +++ b/wp-content/themes/milo/style.css @@ -0,0 +1,86 @@ +/* +Theme Name: Milo +Theme URI: http://themeforest.net/user/freshface/portfolio +Description: Premium WordPress Theme +Author: FRESHFACE +Author URI: http://themeforest.net/user/freshface/portfolio +License: Go to the "license" folder +License URI: Go to the "license" folder +Text Domain: milo +Tags: light, white, two-columns, right-sidebar +Version: 1.1.5 +*/ + +/* WORDPRESS DEFAULT INSERT IMAGE CLASSESSS */ + +.alignnone { + margin: 5px 20px 0 0 !important; + display: inline-block !important; +} + +.aligncenter{ + display: block; + margin: 5px auto 0 auto !important; +} + +.alignright { + float: right; + margin: 5px 0 30px 20px !important; + max-width: 100%; +} + +.alignleft { + float: left; + margin: 5px 20px 30px 0 !important; + max-width: 100%; +} + +.sticky { + border: 5px solid #777777; +} + +.wp-caption.alignnone { + margin: 5px 0 30px 0; +} + +.wp-caption.alignleft { + margin: 5px 20px 30px 0; +} + +.wp-caption.alignright { + margin: 5px 0 30px 20px; +} + +.wp-caption { + width: auto !important; + font-style: italic; +} + +.wp-caption-text { + font-size: 1.4rem; + margin: 0; + padding: 0; +} + +.gallery-caption { + font-size: 11px; + line-height: 17px; + padding: 0 15px; +} + +.bypostauthor { + border: 1px solid transparent; +} + + + + + + + + + + + + + diff --git a/wp-content/themes/milo/templates/helpers/Walker_Nav_Menu_milo.php b/wp-content/themes/milo/templates/helpers/Walker_Nav_Menu_milo.php new file mode 100644 index 0000000..66f34c6 --- /dev/null +++ b/wp-content/themes/milo/templates/helpers/Walker_Nav_Menu_milo.php @@ -0,0 +1,183 @@ + +
    +

    No menu selected. Create menu in the WP Admin menu » Appereance » Menu and create it.

    +
    + _fresh_menu_state ) ){ + if( 0 == $depth ){ + $output .= '
    _last_img ).')"'; + $output .= '>'; + }else{ + $output .= '
      '; + } + }else{ + $output .= '
        '; + } + $output .= "\n"; + } + + + /** + * Ends the list of after the elements are added. + * + * @see Walker::end_lvl() + * + * @since 3.0.0 + * + * @param string $output Passed by reference. Used to append additional content. + * @param int $depth Depth of menu item. Used for padding. + * @param array $args An array of arguments. @see wp_nav_menu() + */ + public function end_lvl( &$output, $depth = 0, $args = array() ) { + $output .= str_repeat("\t", $depth); + if( ( 0 == $depth ) and ( in_array( 'megamenu', $this->_fresh_menu_state ) ) ){ + $output .= "
    "; + }else{ + $output .= ""; + } + $output .= "\n"; + } + + public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { + + $LI_classes = empty( $item->classes ) ? array() : (array) $item->classes; + $LI_classes[] = 'menu-item-' . $item->ID; + + if( ( 1 == $depth ) and ( in_array( 'megamenu', $this->_fresh_menu_state ) ) ){ + $LI_classes[] .= 'section'; + }else if ( !empty($args->has_children) ){ + if( ( 0 == $depth ) and ( ! in_array( 'megamenu', $LI_classes ) ) ){ + $LI_classes[] .= 'dropdown'; + } + } + + if ( in_array( 'current-menu-item', $LI_classes ) ){ + $LI_classes[] = 'active'; + } + + $LI_classes = apply_filters( 'nav_menu_css_class', array_filter( $LI_classes ), $item, $args ); + if( 0 == $depth ){ + $this->_fresh_menu_state = $LI_classes; + } + $LI_classes = implode(' ', $LI_classes); + + $LI_id = 'menu-item-'. $item->ID; + $LI_id = apply_filters( 'nav_menu_item_id', $LI_id, $item, $args ); + + $output .= ( $depth ) ? str_repeat( "\t", $depth ) : ''; + + if( empty( $item->description ) and ('{"id":' != substr($item->description,0,5) ) ){ + $this->_last_img = ''; + }else{ + $this->_last_img = $item->description; + $this->_last_img = str_replace( '“', '"', $this->_last_img ); + $this->_last_img = str_replace( '”', '"', $this->_last_img ); + $this->_last_img = json_decode( $this->_last_img ); + + if( !empty( $this->_last_img->url ) ) { + $this->_last_img = $this->_last_img->url; + }else{ + $this->_last_img = ''; + } + } + + $item_output = ''; + + if( ( 1 == $depth ) and ( in_array( 'megamenu', $this->_fresh_menu_state ) ) ){ + $output .= '
    '; + if( ! empty( $this->_last_img ) and ( FALSE !== strpos( ' '. $LI_classes.' ', ' show-image ' ) ) ){ + $output .= ''; + }else { + $output .= '
    '; + } + }else{ + $output .= '
  • '; + $atts = array( + 'title' => ! empty( $item->title ) ? $item->title : '' , + 'target' => ! empty( $item->target ) ? $item->target : '' , + 'rel' => ! empty( $item->xfn ) ? $item->xfn : '' , + 'href' => ! empty( $item->url ) ? $item->url : '' , + 'class' => '' , + 'aria-haspopup' => 'true' , + ); + + $atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args ); + + $attributes = ''; + foreach ( $atts as $attr => $value ) { + if ( ! empty( $value ) ) { + $value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value ); + $attributes .= ' ' . $attr . '="' . $value . '"'; + } + } + + $item_output .= empty( $args->before ) ? '':$args->before; + $item_output .= ''; + } + + if ( FALSE === strpos( ' '. $LI_classes.' ', ' show-image ' ) ){ + $item_output .= empty( $args->link_before ) ? '' : $args->link_before; + $item_output .= apply_filters( 'the_title', $item->title, $item->ID ); + $item_output .= empty( $args->link_after ) ? '' : $args->link_after; + } + + if( ( 1 == $depth ) and ( in_array( 'megamenu', $this->_fresh_menu_state ) ) ){ + if ( FALSE === strpos( ' '. $LI_classes.' ', ' show-image ' ) ){ + $item_output .= '
  • '; + } + }else if ( FALSE === strpos( ' '. $LI_classes.' ', ' show-image ' ) ){ + $item_output .= ''; + } + + $item_output .= empty( $args->after ) ? '' : $args->after; + + $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); + + } + + public function end_el( &$output, $item, $depth = 0, $args = array() ) { + if( ( 1 == $depth ) and ( in_array( 'megamenu', $this->_fresh_menu_state ) ) ){ + $output .= "
    \n"; + }else{ + $output .= "\n"; + } + } + + public function display_element( $element, &$children_elements, $max_depth, $depth, $args, &$output ) { + if ( ! $element ) + return; + + $id_field = $this->db_fields['id']; + + // Display this element. + if ( is_object( $args[0] ) ) + $args[0]->has_children = ! empty( $children_elements[ $element->$id_field ] ); + + parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output ); + } +} + diff --git a/wp-content/themes/milo/templates/helpers/class.ff_Featured_Area.php b/wp-content/themes/milo/templates/helpers/class.ff_Featured_Area.php new file mode 100644 index 0000000..f9f7fa5 --- /dev/null +++ b/wp-content/themes/milo/templates/helpers/class.ff_Featured_Area.php @@ -0,0 +1,111 @@ + $value) { + $value = trim($value); + if( empty( $value ) ) continue; + $featured_video = wp_oembed_get( $value ); + if( ! empty($featured_video) ) break; + } + return ff_Featured_Area::wrapEmbeded( $featured_video );; + } + + public static function setIgnoreFirstFeatured( $state ){ + ff_Featured_Area::$_ignore_first_featured = $state; + } + + public static function setFeaturedPrinter( $printer ){ + ff_Featured_Area::$_featured_shortcode_printer = $printer; + } + + public static function wrapEmbeded( $html ){ + // Video fix + + global $ff_featured_width; + global $ff_featured_height; + + if( ( 0 != $ff_featured_width ) and ( 0 != $ff_featured_height ) ){ + $ratio = 0.01 * absint( 10000 * $ff_featured_height / $ff_featured_width ); + $div = '
    '; + + $html = str_replace('', '
    ', $html); + $html = str_replace('', '
    ', $html); + + return $html; + } + + public static function actionHijackFeaturedShortcode( $html, $attr ) { + if( ff_Featured_Area::$_ignore_first_featured ){ + ff_Featured_Area::$_ignore_first_featured = false; + return ' '; + } + + return ( ff_Featured_Area::$_featured_shortcode_printer ) + ? call_user_func( ff_Featured_Area::$_featured_shortcode_printer, $html, $attr ) + : ff_Featured_Area::wrapEmbeded( $html ) + ; + } + +} + + diff --git a/wp-content/themes/milo/templates/helpers/func.ff_Gallery.php b/wp-content/themes/milo/templates/helpers/func.ff_Gallery.php new file mode 100644 index 0000000..08af29f --- /dev/null +++ b/wp-content/themes/milo/templates/helpers/func.ff_Gallery.php @@ -0,0 +1,74 @@ + 'ASC', + 'orderby' => 'menu_order ID', + 'id' => $post->ID, + 'columns' => 3, + 'size' => 'thumbnail', + 'include' => '', + 'exclude' => '' + ), $attr)); + + $gallery_ID = $id = intval($id); + + if ( 'RAND' == $order ) + $orderby = 'none'; + + if ( !empty($include) ) { + $include = preg_replace( '/[^0-9,]+/', '', $include ); + $_attachments = get_posts( array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); + + $attachments = array(); + foreach ( $_attachments as $key => $val ) { + $attachments[$val->ID] = $_attachments[$key]; + } + } elseif ( !empty($exclude) ) { + $exclude = preg_replace( '/[^0-9,]+/', '', $exclude ); + $attachments = get_children( array('post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); + } else { + $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); + } + + if ( empty($attachments) ) + return ''; + + $output = ""; + + global $ff_featured_width; + global $ff_featured_height; + + $output .= '
    '; + $output .= '
      '; + + $i = 0; + foreach ( $attachments as $id => $attachment ) { + $url = wp_get_attachment_url( $id ); + if( empty( $url ) ) continue; + + $url = fImg::resize($url, $ff_featured_width, $ff_featured_height, true ); + $output .= '
    • '; + $output .= ''; + $output .= '
    • '."\n"; + } + + $output .= '
    '; + $output .= '
    '; + + return $output; +} diff --git a/wp-content/themes/milo/templates/onePage/blocks/animation/animation-block.php b/wp-content/themes/milo/templates/onePage/blocks/animation/animation-block.php new file mode 100644 index 0000000..4422f7b --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/animation/animation-block.php @@ -0,0 +1,99 @@ +startSection('animation'); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $_opt_ = $s->addOption( ffOneOption::TYPE_SELECT, 'type', 'Animation Type', '') + ->addSelectValue( 'None', '') + ; + + $possible_opt_values = array( + 'bounce' , + 'flash' , + 'pulse' , + 'rubberBand' , + 'shake' , + 'swing' , + 'tada' , + 'wobble' , + 'bounceIn' , + 'bounceInDown' , + 'bounceInLeft' , + 'bounceInRight' , + 'bounceInUp' , + 'bounceOut' , + 'bounceOutDown' , + 'bounceOutLeft' , + 'bounceOutRight' , + 'bounceOutUp' , + 'fadeIn' , + 'fadeInDown' , + 'fadeInDownBig' , + 'fadeInLeft' , + 'fadeInLeftBig' , + 'fadeInRight' , + 'fadeInRightBig' , + 'fadeInUp' , + 'fadeInUpBig' , + 'fadeOut' , + 'fadeOutDown' , + 'fadeOutDownBig' , + 'fadeOutLeft' , + 'fadeOutLeftBig' , + 'fadeOutRight' , + 'fadeOutRightBig' , + 'fadeOutUp' , + 'fadeOutUpBig' , + 'animated.flip' , + 'flipInX' , + 'flipInY' , + 'flipOutX' , + 'flipOutY' , + 'lightSpeedIn' , + 'lightSpeedOut' , + 'rotateIn' , + 'rotateInDownLeft' , + 'rotateInDownRight' , + 'rotateInUpLeft' , + 'rotateInUpRight' , + 'rotateOut' , + 'rotateOutDownLeft' , + 'rotateOutDownRight' , + 'rotateOutUpLeft' , + 'rotateOutUpRight' , + 'hinge' , + 'rollIn' , + 'rollOut' , + 'zoomIn' , + 'zoomInDown' , + 'zoomInLeft' , + 'zoomInRight' , + 'zoomInUp' , + 'zoomOut' , + 'zoomOutDown' , + 'zoomOutLeft' , + 'zoomOutRight' , + 'zoomOutUp' , + 'slideInDown' , + 'slideInLeft' , + 'slideInRight' , + 'slideInUp' , + 'slideOutDown' , + 'slideOutLeft' , + 'slideOutRight' , + 'slideOutUp' , + ); + + foreach ($possible_opt_values as $possible_value) { + $possible_value_title = str_replace('-', ' ', $possible_value); + $possible_value_title = ucfirst( $possible_value_title ); + $_opt_->addSelectValue( $possible_value_title, $possible_value ); + } + +$s->endSection(); + diff --git a/wp-content/themes/milo/templates/onePage/blocks/animation/animation.php b/wp-content/themes/milo/templates/onePage/blocks/animation/animation.php new file mode 100644 index 0000000..500ff1c --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/animation/animation.php @@ -0,0 +1,4 @@ +get('animation type'); \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/blog-featured-area/blog-featured-area.php b/wp-content/themes/milo/templates/onePage/blocks/blog-featured-area/blog-featured-area.php new file mode 100644 index 0000000..13c3abd --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/blog-featured-area/blog-featured-area.php @@ -0,0 +1,80 @@ +get('width'); +$ff_featured_height = $query->get('height'); + + +ff_Featured_Area::setIgnoreFirstFeatured( false ); +$featured_img = ff_Featured_Area::getFeaturedImage(); +list( $featured_img_w, $featured_img_h ) = ff_Featured_Area::getFeaturedImageSizes(); + +switch ( get_post_format() ) { + case 'audio': + $featured_primary = ff_Featured_Area::getFeaturedAudio(); + break; + + case 'video': + $featured_primary = ff_Featured_Area::getFeaturedVideo(); + break; + + case 'gallery': + ff_Featured_Area::setFeaturedPrinter( 'ff_Gallery' ); + $featured_primary = get_post_gallery( get_the_ID() ); + ff_Featured_Area::setFeaturedPrinter( false ); + break; + + default: + $featured_primary = ''; + break; +} + +global $featured_height; + +if( ! empty( $featured_primary ) ){ + // Modified default WP featured areas + echo $featured_primary; + + ff_Featured_Area::setIgnoreFirstFeatured( true ); +}else if( ! empty( $featured_img ) ) { + global $post; + + $imageUrlNonresized = wp_get_attachment_url( get_post_thumbnail_id( $post->ID ) ); + $imageUrlResized = null; + if( $imageUrlNonresized != null && $query->get('show') ) { + if( absint($ff_featured_width) == 0 ) { + $ff_featured_width = null; + } + + if( absint($ff_featured_height) == 0 ) { + $ff_featured_height = null; + } + + $crop = false; + + if( $ff_featured_width != null || $ff_featured_height != null ) { + $imageUrlResized = fImg::resize( $imageUrlNonresized, $ff_featured_width, $ff_featured_height, true ); + } else { + $imageUrlResized = $imageUrlNonresized; + } + } + + + if( $imageUrlResized != null ) { + ?> + +
    + + + get('lightbox') ) { ?> +
    + +
    + +
    + addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Featured Area'); + $s->startSection('blog-meta'); + $s->startSection('featured-image'); + $s->addOption( ffOneOption::TYPE_CHECKBOX,'show', 'Show Featured Image',1); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + + $s->addOption( ffOneOption::TYPE_CHECKBOX,'resize', 'Resize Featured image',1); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + + $s->addElement(ffOneElement::TYPE_DESCRIPTION, '','Please note, that original dimensions are: 848x334 - blog classic, and 360x325 for blog columns'); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + + $s->addOption( ffOneOption::TYPE_TEXT,'width', 'Featured Image width',0); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + + $s->addOption( ffOneOption::TYPE_TEXT,'height', 'Featured Image height',0); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + + $s->addOption( ffOneOption::TYPE_CHECKBOX,'lightbox', 'Enable Ligthbox',1); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Title and Meta'); + + $s->addOption( ffOneOption::TYPE_SELECT, 'size', 'Size ', '') + ->addSelectValue('Normal', '') + ->addSelectValue('Small', 'small'); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + + $s->startSection('date'); + $s->addOption( ffOneOption::TYPE_CHECKBOX,'show', 'Show date  ',1); + $s->addOption( ffOneOption::TYPE_TEXT,'format', 'in format','j F Y'); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + + $s->startSection('author'); + $s->addOption( ffOneOption::TYPE_CHECKBOX,'show', 'Show author',1); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + + $s->startSection('categories'); + $s->addOption( ffOneOption::TYPE_CHECKBOX,'show', 'Show Categories',1); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + + $s->startSection('tags'); + $s->addOption( ffOneOption::TYPE_CHECKBOX,'show', 'Show Tags',1); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + + $s->startSection('comments'); + $s->addOption( ffOneOption::TYPE_CHECKBOX,'show', 'Show Comments',1); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + $s->endSection(); +$s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); diff --git a/wp-content/themes/milo/templates/onePage/blocks/blog-meta/blog-meta.php b/wp-content/themes/milo/templates/onePage/blocks/blog-meta/blog-meta.php new file mode 100644 index 0000000..7861d48 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/blog-meta/blog-meta.php @@ -0,0 +1,135 @@ +get('blog-meta'); + + +$imageUrlNonresized = wp_get_attachment_url( get_post_thumbnail_id( $post->ID ) ); +$imageUrlResized = null; +$featuredImageQuery = $metaQuery->get('featured-image'); +$style = ''; + + +if( $imageUrlNonresized != null && $featuredImageQuery->get('show') ) { + $width = $featuredImageQuery->get('width'); + $height = $featuredImageQuery->get('height'); + + + if( absint($width) == 0 ) { + $width = null; + } + + if( absint($height) == 0 ) { + $height = null; + } + $crop = false; + + if( $width != null || $height != null ) { + $style = 'style="'; + + if( $width != null ) { + $style .= 'width:'.absint($width).'px;'; + } + + if( $height != null ) { + $style .= 'height:'.absint($height).'px;'; + } + + $style .= '"'; + $style = ''; + $imageUrlResized = fImg::resize( $imageUrlNonresized, $width, $height, true ); + } else { + $imageUrlResized = $imageUrlNonresized; + } +} + +$postMetaGetter = ffContainer()->getThemeFrameworkFactory()->getPostMetaGetter(); + +if( 'small' == $metaQuery->get('size') ) { + $line_1_tag = 'h6'; + $line_2_tag = 'h4'; +}else{ + $line_1_tag = 'h4'; + $line_2_tag = 'h2'; +} + + +?> +
    +get('date show') ) { + echo '<' . $line_1_tag . '>'; + echo get_the_date( $metaQuery->get('date format') ); + echo ''; + } + + echo '<' . $line_2_tag . '>'; + echo ''; + the_title(); + echo ''; + echo ''; + + $basicMeta = array(); + + if( $metaQuery->get('author show') ) { + $authorMeta = ''; + $authorMeta .= ''; + + $basicMeta[] = $authorMeta; + } + + if( $metaQuery->get('categories show') ) { + $categoryMeta = ''; + + if( has_category() ){ + $categoryMeta .= ''; + } + + $basicMeta[] = $categoryMeta; + + } + + if( $metaQuery->get('tags show') ) { + $tagMeta = ''; + + + if( has_tag() ) { + $tagMeta .= ''; + } + + $basicMeta[] = $tagMeta; + + } + + if( $metaQuery->get('comments show') ) { + $commentsMeta = ''; + + $commentsMeta .= ''; + + $basicMeta[] = $commentsMeta; + } + + if( !empty ( $basicMeta ) ) { + echo '

    '; + echo( implode('
    ', $basicMeta ) ); + echo '

    '; + } + +?> +
    diff --git a/wp-content/themes/milo/templates/onePage/blocks/bootstrap-columns/bootstrap-columns-block.php b/wp-content/themes/milo/templates/onePage/blocks/bootstrap-columns/bootstrap-columns-block.php new file mode 100644 index 0000000..6595d42 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/bootstrap-columns/bootstrap-columns-block.php @@ -0,0 +1,67 @@ +startSection('bootstrap-columns'); +//$s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Bootstrap Columns'); + $s->addElement(ffOneElement::TYPE_TOGGLE_BOX_START, '', 'Bootstrap Columns'); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); +/**********************************************************************************************************************/ +/* GENERAL +/**********************************************************************************************************************/ +// $s->startSection('columns'); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Columns'); +// xs, sm. md. lg + + $xs = $sm = $md = $lg = 'no'; + + if( isset( $params['xs'] ) ) { + $xs = $params['xs']; + } + + if( isset( $params['sm'] ) ) { + $sm = $params['sm']; + } + + if( isset( $params['md'] ) ) { + $md = $params['md']; + } + + if( isset( $params['lg'] ) ) { + $lg = $params['lg']; + } + + $s->addOption( ffOneOption::TYPE_SELECT, 'xs', 'XS', $xs ) + ->addSelectValue('Dont use', 'no') + ->addSelectNumberRange(1,12) + ; + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'sm', 'SM', $sm ) + ->addSelectValue('Dont use', 'no') + ->addSelectNumberRange(1,12) + ; + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'md', 'MD', $md ) + ->addSelectValue('Dont use', 'no') + ->addSelectNumberRange(1,12) + ; + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'lg', 'LG', $lg ) + ->addSelectValue('Dont use', 'no') + ->addSelectNumberRange(1,12) + ; + + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END); +// $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + + $s->addElement(ffOneElement::TYPE_TOGGLE_BOX_END); +//$s->addElement( ffOneElement::TYPE_TABLE_DATA_END); +$s->endSection(); \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/bootstrap-columns/bootstrap-columns.php b/wp-content/themes/milo/templates/onePage/blocks/bootstrap-columns/bootstrap-columns.php new file mode 100644 index 0000000..08543dc --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/bootstrap-columns/bootstrap-columns.php @@ -0,0 +1,23 @@ +get('xs') != 'no' ) { + $classes[] = 'col-xs-'.absint( $query->get('xs') ); +} + +if( $query->get('sm') != 'no' ) { + $classes[] = 'col-sm-'.absint( $query->get('sm') ); +} + +if( $query->get('md') != 'no' ) { + $classes[] = 'col-md-'.absint( $query->get('md') ); +} + +if( $query->get('lg') != 'no' ) { + $classes[] = 'col-lg-'.absint( $query->get('lg') ); +} + + +$dataToReturn = implode( ' ', $classes ); \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/button/button-block.php b/wp-content/themes/milo/templates/onePage/blocks/button/button-block.php new file mode 100644 index 0000000..c4a9ef4 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/button/button-block.php @@ -0,0 +1,33 @@ +startSection('button'); +// $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Button Link'); + + $s->addOption( ffOneOption::TYPE_TEXT, 'title', 'Title', 'Follow the project'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'url', 'URL', '#'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_SELECT, 'target', 'Open in', '_blank') + ->addSelectValue('Same Window', '') + ->addSelectValue('New Window', '_blank') + ; + +// $s->addElement( ffOneElement::TYPE_TABLE_DATA_END); +// +// $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Button Style'); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'use-icon', 'Use icon   ', 0); + $s->addOption( ffOneOption::TYPE_ICON, 'icon', '', ''); + +// $s->addElement( ffOneElement::TYPE_TABLE_DATA_END); +$s->endSection(); + + + + + + + diff --git a/wp-content/themes/milo/templates/onePage/blocks/button/button.php b/wp-content/themes/milo/templates/onePage/blocks/button/button.php new file mode 100644 index 0000000..79b96cd --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/button/button.php @@ -0,0 +1,31 @@ +get('button'); + + +$title = trim( $query->get('title') ); +if( empty($title) and ! $query->get('use-icon') ){ + return; +} + +echo "\n"; +echo 'get('target') ){ + echo ' target="_blank"'; +} + +echo ' class="btn btn-default"'; + +echo '>'; + +$query->printText('title'); + +if( $query->get('use-icon') ){ + echo ' '; +} + +echo ''; +echo "\n"; \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/buttons/buttons-block.php b/wp-content/themes/milo/templates/onePage/blocks/buttons/buttons-block.php new file mode 100644 index 0000000..bcc4fb0 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/buttons/buttons-block.php @@ -0,0 +1,22 @@ +startSection('buttons-more'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show', 'Show', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'text-align', 'Buttons block align', 'center') + ->addSelectValue('Default (left)', '') + ->addSelectValue('Center', 'text-center') + ->addSelectValue('Right', 'text-right') + ->addSelectValue('Justify', 'text-justify'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->startSection('buttons', ffOneSection::TYPE_REPEATABLE_VARIABLE ); + $s->startSection( 'button', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'Button'); + $s->addElement( ffOneElement::TYPE_TABLE_START ); + ff_load_section_options( 'button-block', $s); + $s->addElement( ffOneElement::TYPE_TABLE_END ); + $s->endSection(); + $s->endSection(); + +$s->endSection(); diff --git a/wp-content/themes/milo/templates/onePage/blocks/buttons/buttons.php b/wp-content/themes/milo/templates/onePage/blocks/buttons/buttons.php new file mode 100644 index 0000000..c28e76a --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/buttons/buttons.php @@ -0,0 +1,20 @@ +get('text-align'); + +if( $align ){ + echo '
    '; +} + +$buttons = $query->get('buttons'); + +foreach( $buttons as $oneButton ) { + ff_load_section_printer( + 'button' + , $oneButton->get('button') + ); +} + +if( $align ){ + echo '
    '; +} diff --git a/wp-content/themes/milo/templates/onePage/blocks/comments-form/comments-form-block.php b/wp-content/themes/milo/templates/onePage/blocks/comments-form/comments-form-block.php new file mode 100644 index 0000000..182c478 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/comments-form/comments-form-block.php @@ -0,0 +1,31 @@ +startSection('comments-form'); + + + $s->addElement(ffOneElement::TYPE_HEADING,'','General Comment Form Options'); + + $s->addOption( ffOneOption::TYPE_TEXT, 'heading', 'Form Heading', 'Leave a Reply'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'name', 'Name', 'Name'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'email', 'Email', 'Email'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'website', 'Website', 'Url'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'comment-form', 'Comment Form', 'Message'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'submit-button', 'Submit Button', 'Send'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'logged-in', 'Logged in text', 'Logged in as %2$s. Log out?'); + + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + +$s->endSection(); \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/comments-form/comments-form.php b/wp-content/themes/milo/templates/onePage/blocks/comments-form/comments-form.php new file mode 100644 index 0000000..7837f39 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/comments-form/comments-form.php @@ -0,0 +1,56 @@ +queryExists('comments-form') ) { + $query = $query->get('comments-form'); + } + + + + $commentFormPrinter = ffContainer()->getThemeFrameworkFactory()->getCommentsFormPrinter(); + +if( $commentFormPrinter->commentsOpen() ) { + + $commentFormPrinter->addFieldAuthorLine('

    '); + $commentFormPrinter->addFieldAuthorLine(''); + $commentFormPrinter->addFieldAuthorLine(''); + $commentFormPrinter->addFieldAuthorLine('

    '); + + $commentFormPrinter->addFieldEmailLine('

    '); + $commentFormPrinter->addFieldEmailLine(''); + $commentFormPrinter->addFieldEmailLine(''); + $commentFormPrinter->addFieldEmailLine('

    '); + + $commentFormPrinter->addFieldWebsiteLine('

    '); + $commentFormPrinter->addFieldWebsiteLine(''); + $commentFormPrinter->addFieldWebsiteLine(''); + $commentFormPrinter->addFieldWebsiteLine('

    '); + + $commentFormPrinter->addFieldCommentLine('

    '); + $commentFormPrinter->addFieldCommentLine(''); + $commentFormPrinter->addFieldCommentLine(''); + $commentFormPrinter->addFieldCommentLine('

    '); + + $commentFormPrinter->setClassSubmitButton('btn btn-default'); + + $commentFormPrinter->addFieldLoggedInLine('

    '); + $commentFormPrinter->addFieldLoggedInLine($query->get('logged-in')); + $commentFormPrinter->addFieldLoggedInLine('

    '); + + + $commentFormPrinter->setTextHeading($query->get('heading')); + $commentFormPrinter->setTextSubmit($query->get('submit-button')); + + + + $commentFormPrinter->addReplaceRule('comment-reply-title', 'comment-reply-title commentform-title'); + + + $commentFormPrinter->printForm(); + +} \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/comments-list/comments-list-block.php b/wp-content/themes/milo/templates/onePage/blocks/comments-list/comments-list-block.php new file mode 100644 index 0000000..f189500 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/comments-list/comments-list-block.php @@ -0,0 +1,38 @@ +startSection('comments-list'); + + $s->startSection('heading'); + $s->addElement(ffOneElement::TYPE_HEADING,'','General Comments Options'); + $s->addOption(ffOneOption::TYPE_CHECKBOX, 'show', 'Show Heading', 1); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'trans-zero', 'No Comments', 'Comments (0)'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'trans-one', 'One Comment', 'Comments (1)'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'trans-more', '%s Comments', 'Comments (%s)'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + + $s->startSection('one-comment'); + $s->addElement(ffOneElement::TYPE_HEADING,'','One Comment Options'); + + $s->addOption(ffOneOption::TYPE_CHECKBOX, 'show-date', 'Show Date', 1); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'date-format', 'Date Format', 'M d, Y, \a\t g:i A'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption( ffOneOption::TYPE_TEXT, 'trans-reply', 'Reply comment', 'reply'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'trans-moderation', 'Awaiting for moderation', 'Your comment is awaiting moderation.'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + +$s->endSection(); \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/comments-list/comments-list.php b/wp-content/themes/milo/templates/onePage/blocks/comments-list/comments-list.php new file mode 100644 index 0000000..7f2cfe2 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/comments-list/comments-list.php @@ -0,0 +1,109 @@ +queryExists('comments-list') ) { + $query = $query->get('comments-list'); + + } +?> + +get('heading show') ) { + $postMetaGetter = ffContainer()->getThemeFrameworkFactory()->getPostMetaGetter(); + $headingQuery = $query->get('heading'); + $heading = $postMetaGetter->getPostCommentsText( $headingQuery->get('trans-zero'), $headingQuery->get('trans-one'), $headingQuery->get('trans-more') ); +?> +

    + +
      +queryExists('comments-list') ) { + $query = $query->get('comments-list'); + + } + + $postMetaGetter = ffContainer()->getThemeFrameworkFactory()->getPostMetaGetter(); + $commentDateFormat = $query->get('one-comment date-format'); + + //
    • tag is ended in the another callback +?> +
    • +
      + +
      + +
      + + getCommentAuthorImage(80); ?> + getCommentAuthorName() ); ?> +
      + + get('one-comment show-date') ) { ?> + + + +
      + +
      + + comment_approved ) { + echo ''; + echo ff_wp_kses( $query->get('one-comment trans-moderation') ); + echo ''; + echo '
      '; + echo '
      '; + } + + echo ff_wp_kses(get_comment_text()); + ?> + +
      + +
      + getCommentReplyLink( $query->get('one-comment trans-reply'), $args, $depth ); ?> +
      + +
      + 'ul', + 'callback' => 'ff_comments_list_callback', + 'end-callback' => 'ff_comments_list_callback_end', + ) + ); +?> + + +
    +'; + + $ff_global_comment_depth--; +} \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/comments-pagination/comments-pagination.php b/wp-content/themes/milo/templates/onePage/blocks/comments-pagination/comments-pagination.php new file mode 100644 index 0000000..4cc1a3a --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/comments-pagination/comments-pagination.php @@ -0,0 +1,31 @@ + '‹', + 'next_text' => '›') + ); + $pagin = ob_get_clean(); + + $pagin = str_replace( '','', $pagin ); + + $pagin = str_replace( '','', $pagin ); + + $pagin = preg_replace('/>\s+<', $pagin); + + echo '
    '; + echo '
    '; + echo '
      '; + + echo $pagin; + + echo '
    '; + echo '
    '; + echo '
    '; +} diff --git a/wp-content/themes/milo/templates/onePage/blocks/heading-content/heading-content-block.php b/wp-content/themes/milo/templates/onePage/blocks/heading-content/heading-content-block.php new file mode 100644 index 0000000..46e8116 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/heading-content/heading-content-block.php @@ -0,0 +1,63 @@ +startSection('heading-content-block'); + +$s->startSection('content', ffOneSection::TYPE_REPEATABLE_VARIABLE); +/**********************************************************************************************************************/ +/* One Line (heading or paragraph) +/**********************************************************************************************************************/ + $s->startSection('one-line', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One Line'); + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'text', 'Text', 'The project for you'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_SELECT, 'type', 'Type', 'h1') + ->addSelectValue('H1', 'h1') + ->addSelectValue('H2', 'h2') + ->addSelectValue('H3', 'h3') + ->addSelectValue('H4', 'h4') + ->addSelectValue('H5', 'h5') + ->addSelectValue('H6', 'h6') + ->addSelectValue('BR (new line)', 'br') + ->addSelectValue('Paragraph', 'p') + ; + ff_load_section_options( 'animation-block', $s ); + $s->endSection(); + +/**********************************************************************************************************************/ +/* BUTTON +/**********************************************************************************************************************/ + $s->startSection('one-button', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One Button'); + + ff_load_section_options( 'button-block', $s ); + ff_load_section_options( 'animation-block', $s ); + + $s->endSection(); + +/**********************************************************************************************************************/ +/* HTML +/**********************************************************************************************************************/ + $s->startSection('one-html', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'HTML'); + + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'html', 'HTML'); + + $s->endSection(); + + +/**********************************************************************************************************************/ +/* ICON +/**********************************************************************************************************************/ + $s->startSection('one-icon', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Icon'); + + $s->addOption(ffOneOption::TYPE_ICON, 'icon', 'Icon'); + + $s->endSection(); + + + +$s->endSection(); + +$s->endSection('/heading-content'); diff --git a/wp-content/themes/milo/templates/onePage/blocks/heading-content/heading-content.php b/wp-content/themes/milo/templates/onePage/blocks/heading-content/heading-content.php new file mode 100644 index 0000000..4f45a86 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/heading-content/heading-content.php @@ -0,0 +1,42 @@ +get('heading-content-block'); + foreach( $query->get('content') as $oneContent ) { + $type = $oneContent->getVariationType(); + + if( $type == 'one-line' ) { + $tagType = $oneContent->get('type'); + $text = $oneContent->get('text'); + + if( $tagType == 'br' ) { + echo '
    '; + } else { + echo '<'.esc_attr( $tagType ); + $animation = $oneContent->get('animation type'); + if( ! empty( $animation ) ){ + echo ' class="wow ' . esc_attr( $animation ) . ' animated"'; + } + echo '>'.ff_wp_kses( $text ).''; + } + } else if( $type == 'one-button' ) { + echo 'get('animation type'); + if( ! empty( $animation ) ){ + echo ' class="wow ' . esc_attr( $animation ) . ' animated"'; + } + echo '>'; + ff_load_section_printer( + 'button' + , $oneContent + ); + echo '

    '; + } else if( $type == 'one-html') { + echo do_shortcode( $oneContent->get('html') ); + } else if( $type == 'one-icon') { + $icon = $oneContent->get('icon'); + if( empty( $icon ) ){ + continue; + } + echo ''; + } + } +?> \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/heading-wrapped/heading-wrapped-block.php b/wp-content/themes/milo/templates/onePage/blocks/heading-wrapped/heading-wrapped-block.php new file mode 100644 index 0000000..21d7143 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/heading-wrapped/heading-wrapped-block.php @@ -0,0 +1,16 @@ +startSection('heading-wrapped-block'); + + $s->addOption(ffOneOption::TYPE_SELECT, 'wrapper-type', 'Style', '3') + ->addSelectValue('Type 1', 1 ) + ->addSelectValue('Type 2', 2 ) + ->addSelectValue('Type 3', 3 ) + ->addSelectValue('Type 4', 4 ) + ; + + + ff_load_section_options( 'heading-content-block', $s); + +$s->endSection('/heading-wrapped-block'); diff --git a/wp-content/themes/milo/templates/onePage/blocks/heading-wrapped/heading-wrapped.php b/wp-content/themes/milo/templates/onePage/blocks/heading-wrapped/heading-wrapped.php new file mode 100644 index 0000000..e370ec3 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/heading-wrapped/heading-wrapped.php @@ -0,0 +1,14 @@ +get('heading-wrapped-block'); + $styleClass = 'headline style-' . esc_attr( $query->get('wrapper-type') ); + if( 4 == $query->get('wrapper-type') ){ + $styleClass = 'text-center'; + } +?> +
    +
    +
    + +
    +
    +
    \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/loop-influence-portfolio/loop-influence-portfolio-block.php b/wp-content/themes/milo/templates/onePage/blocks/loop-influence-portfolio/loop-influence-portfolio-block.php new file mode 100644 index 0000000..1aaf53c --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/loop-influence-portfolio/loop-influence-portfolio-block.php @@ -0,0 +1,10 @@ +startSection('loop-influence-portfolio-block'); + $s->addElement( ffOneElement::TYPE_HTML, '', 'Please note, this option will be applied only if you are outside Portfolio Category archive Also please note that posts per page are inherited from WP Admin -> Settings -> Reading'); + + $s->addOption( ffOneOption::TYPE_TAXONOMY, 'categories', 'Categories', 'all') + ->addParam('tax_type', 'ff-portfolio-category') + ->addParam('type', 'multiple') + ; +$s->endSection(); \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/loop-influence-post/loop-influence-post-block.php b/wp-content/themes/milo/templates/onePage/blocks/loop-influence-post/loop-influence-post-block.php new file mode 100644 index 0000000..b567d28 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/loop-influence-post/loop-influence-post-block.php @@ -0,0 +1,10 @@ +startSection('loop-influence-post-block'); + $s->addElement( ffOneElement::TYPE_HTML, '', 'Please note, this option will be applied only if you are outside Blog Category archive Also please note that posts per page are inherited from WP Admin -> Settings -> Reading'); + + $s->addOption( ffOneOption::TYPE_TAXONOMY, 'categories', 'Categories', 'all') + ->addParam('tax_type', 'category') + ->addParam('type', 'multiple') + ; +$s->endSection(); \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/page-title/page-title.php b/wp-content/themes/milo/templates/onePage/blocks/page-title/page-title.php new file mode 100644 index 0000000..ffb63f0 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/page-title/page-title.php @@ -0,0 +1,37 @@ +printText('title-404'); +}else if( is_page() ){ + the_title(); +}else if( is_single() ){ + printf( $query->get('title-post'), get_the_title() ); +}else if( is_category() ){ + printf( $query->get('title-category'), single_cat_title('', false) ); +}else if( is_tag() ){ + printf( $query->get('title-tag'), single_cat_title('', false) ); +}else if( is_tax() ){ + echo single_term_title('', false); +}else if( is_author() ){ + if( ! in_the_loop() ){ + the_post(); + rewind_posts(); + } + printf( $query->get('title-author'), get_the_author() ); +}else if( is_search() ){ + printf( $query->get('title-search'), get_search_query() ); +}else if( is_home() ){ + echo ff_wp_kses( $query->get('title-posts-page') ); +}else if(is_date()){ + if( ! in_the_loop() ){ + the_post(); + rewind_posts(); + } + if( is_day() ){ + printf( $query->get('title-day'), get_the_time( $query->get('title-day-format') ) ); + }else if( is_month() ){ + printf( $query->get('title-month'), get_the_time( $query->get('title-month-format') ) ); + }else if( is_year() ){ + printf( $query->get('title-year'), get_the_time( $query->get('title-year-format') ) ); + } +} diff --git a/wp-content/themes/milo/templates/onePage/blocks/pagination/pagination-block.php b/wp-content/themes/milo/templates/onePage/blocks/pagination/pagination-block.php new file mode 100644 index 0000000..2355c56 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/pagination/pagination-block.php @@ -0,0 +1,5 @@ +startSection('pagination'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show', 'Show Pagination', 1); +$s->endSection(); \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/pagination/pagination.php b/wp-content/themes/milo/templates/onePage/blocks/pagination/pagination.php new file mode 100644 index 0000000..6dc6f80 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/pagination/pagination.php @@ -0,0 +1,66 @@ + +getThemeFrameworkFactory()->getPaginationWPLoop(); + + $pagination = $paginationComputer->computePagination(); + if( !empty( $pagination ) && $query->get('pagination show') ) { + $beforePagination = ''; + $afterPagination = ''; + $paginationContent = ''; + echo '
    '; + echo '
    '; + echo '
      '; + + foreach( $pagination as $oneItem ) { + switch( $oneItem->type ) { + case ffPaginationComputer::TYPE_PREV: + $beforePagination .= '
    • '; + break; + + + case ffPaginationComputer::TYPE_DOTS_START: + $paginationContent .= '
    • ...
    • '; + break; + + case ffPaginationComputer::TYPE_LAST_NUMBER_BUTTON: + $afterPagination .= '
    • '.ff_wp_kses( $oneItem->page ).'
    • '; + break; + case ffPaginationComputer::TYPE_FIRST_NUMBER_BUTTON: + $beforePagination .= '
    • '.ff_wp_kses( $oneItem->page ).'
    • '; + break; + case ffPaginationComputer::TYPE_STD_BUTTON; + $class = ''; + $href = 'href="'.get_pagenum_link( $oneItem->page).'"'; + //
    • 1
    • + $class = ''; + if( $oneItem->selected == true ) { + $class = 'active'; + } + $paginationContent .= '
    • '; + $paginationContent .= ''; + $paginationContent .= $oneItem->page; + $paginationContent .= ''; + $paginationContent .= '
    • '; + + + break; + + case ffPaginationComputer::TYPE_DOTS_END: + $paginationContent .= '
    • ...
    • '; + break; + + case ffPaginationComputer::TYPE_NEXT: + $afterPagination .= '
    • '; + break; + } + } + echo $beforePagination; + echo $paginationContent; + echo $afterPagination; + + echo '
    '; + echo '
    '; + echo '
    '; + } diff --git a/wp-content/themes/milo/templates/onePage/blocks/post-classic-meta/post-classic-meta-block.php b/wp-content/themes/milo/templates/onePage/blocks/post-classic-meta/post-classic-meta-block.php new file mode 100644 index 0000000..6404910 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/post-classic-meta/post-classic-meta-block.php @@ -0,0 +1,49 @@ +startSection('post-classic-meta'); + $s->startSection('featured-image'); + $s->addOption( ffOneOption::TYPE_CHECKBOX,'show', 'Show Featured Image',1); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + + $s->addOption( ffOneOption::TYPE_TEXT,'width', 'Featured Image width',780); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + + $s->addOption( ffOneOption::TYPE_TEXT,'height', 'Featured Image height',0); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + + $s->startSection('date'); + $s->addOption( ffOneOption::TYPE_CHECKBOX,'show', 'Show date',1); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + + $s->addOption( ffOneOption::TYPE_TEXT,'format', 'Date format','F j, Y'); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + + $s->startSection('author'); + $s->addOption( ffOneOption::TYPE_CHECKBOX,'show', 'Show author',1); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + + $s->addOption( ffOneOption::TYPE_TEXT,'text-before', 'Text before','Posted by'); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + + $s->startSection('categories'); + $s->addOption( ffOneOption::TYPE_CHECKBOX,'show', 'Show Categories',1); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + + $s->addOption( ffOneOption::TYPE_TEXT,'text-before', 'Text before','in'); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + + $s->startSection('comments'); + $s->addOption( ffOneOption::TYPE_CHECKBOX,'show', 'Show Comments',1); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + + $s->addOption( ffOneOption::TYPE_TEXT,'zero', '0 Comments','0 Comments'); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + $s->addOption( ffOneOption::TYPE_TEXT,'one', '1 Comment','1 Comment'); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + $s->addOption( ffOneOption::TYPE_TEXT,'more', 'X Comments','%s Comments'); + $s->addElement( ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + $s->endSection(); \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/post-classic-meta/post-classic-meta.php b/wp-content/themes/milo/templates/onePage/blocks/post-classic-meta/post-classic-meta.php new file mode 100644 index 0000000..5af08d9 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/post-classic-meta/post-classic-meta.php @@ -0,0 +1,93 @@ +get('post-classic-meta'); + global $post; + $featuredImageQuery = $query->get('featured-image'); + $dateQuery = $query->get('date'); + $authorQuery = $query->get('author'); + $categoriesQuery = $query->get('categories'); + $commentsQuery = $query->get('comments'); + + $imageUrlNonresized = wp_get_attachment_url( get_post_thumbnail_id( $post->ID ) ); + $imageUrlResized = null; + if( $imageUrlNonresized != null && $featuredImageQuery->get('show') ) { + $width = $featuredImageQuery->get('width'); + $height = $featuredImageQuery->get('height'); + + if( absint($width) == 0 ) { + $width = null; + } + + if( absint($height) == 0 ) { + $height = null; + } + + $crop = false; + + if( $width != null || $height != null ) { + $imageUrlResized = fImg::resize( $imageUrlNonresized, $width, $height, true ); + } else { + $imageUrlResized = $imageUrlNonresized; + } + } + + $postMetaGetter = ffContainer()->getThemeFrameworkFactory()->getPostMetaGetter(); + + +?> + +
    + get('show') ) { ?> + + +

    + + get('show') ) { + $entryMeta .= '' . ff_wp_kses( $authorQuery->get('text-before') ).''; + $entryMeta .= ''; + } + + if( $categoriesQuery->get('show') ) { + $entryMeta .= ' '; + $entryMeta .= '' . esc_attr( $categoriesQuery->get('text-before') ) . ''; + $entryMeta .= ' '; + $entryMeta .= ''; + + $entryMeta .= $postMetaGetter->getPostCategoriesHtml(); + $entryMeta .= ''; + + } + + if( $commentsQuery->get('show') ) { + $entryMeta .= ' '; + $entryMeta .= ''; + $entryMeta .= $postMetaGetter->getPostCommentsLinkText( + $commentsQuery->get('zero'), + $commentsQuery->get('one'), + $commentsQuery->get('more') + ); + $entryMeta .= ''; + } + + if( !empty( $entryMeta ) ) { + echo ''; + } + ?> +
    + + +
    +
    + +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/section-background/section-background-block.php b/wp-content/themes/milo/templates/onePage/blocks/section-background/section-background-block.php new file mode 100644 index 0000000..f04c230 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/section-background/section-background-block.php @@ -0,0 +1,105 @@ +startSection('background'); +// $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Background'); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show', 'Show', 0); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->startSection('backgrounds', ffOneSection::TYPE_REPEATABLE_VARIABLE ); + + $s->startSection( 'background-color', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'Background Color'); + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'color', '', '#FFFFFF') + ->addParam('class', 'ff-default-wp-color-picker'); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $opt= $s->addOption( ffOneOption::TYPE_SELECT, 'opacity', 'Opacity', ''); + $opt->addSelectValue('Transparent (invisible)', '0'); + $opt->addSelectNumberRange( 0.1, 0.9, 0.1 ); + $opt->addSelectValue('No transparency', ''); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + $s->endSection(); + + $s->startSection( 'background-image', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'Background Image')->addParam('hide-default', true); + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addOption( ffOneOption::TYPE_IMAGE, 'image', 'Image'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'fixed', 'Background attachment', '') + ->addSelectValue('Normal', '') + ->addSelectValue('Fixed background', '1'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $opt= $s->addOption( ffOneOption::TYPE_SELECT, 'opacity', 'Opacity', ''); + $opt->addSelectValue('Transparent (invisible)', '0'); + $opt->addSelectNumberRange( 0.1, 0.9, 0.1 ); + $opt->addSelectValue('No transparency', ''); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + $s->endSection(); + + $s->startSection( 'background-pattern', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'Background Pattern Image')->addParam('hide-default', true); + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addOption( ffOneOption::TYPE_IMAGE, 'image', 'Pattern Image'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'fixed', 'Background attachment', '') + ->addSelectValue('Normal', '') + ->addSelectValue('Fixed background', '1'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $opt= $s->addOption( ffOneOption::TYPE_SELECT, 'opacity', 'Opacity', ''); + $opt->addSelectValue('Transparent (invisible)', '0'); + $opt->addSelectNumberRange( 0.1, 0.9, 0.1 ); + $opt->addSelectValue('No transparency', ''); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + $s->endSection(); + + $s->startSection( 'background-youtube-video', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'Background YouTube Video')->addParam('hide-default', true); + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'url', 'URL', ''); + $s->addElement( ffOneElement::TYPE_DESCRIPTION, '', 'In format: https://www.youtube.com/watch?v=L83cTan6ESk'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $opt= $s->addOption( ffOneOption::TYPE_SELECT, 'opacity', 'Opacity', ''); + $opt->addSelectValue('Transparent (invisible)', '0'); + $opt->addSelectNumberRange( 0.1, 0.9, 0.1 ); + $opt->addSelectValue('No transparency', ''); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show-controls', 'Show Controls', 0); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + $s->endSection(); + + $s->startSection( 'background-url-video', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'Background Video from URL')->addParam('hide-default', true); + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'mp4', 'MP4 Url', '' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'webm','WEBM Url','' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'ogg', 'OGV Url', '' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $opt= $s->addOption( ffOneOption::TYPE_SELECT, 'opacity', 'Opacity', ''); + $opt->addSelectValue('Transparent (invisible)', '0'); + $opt->addSelectNumberRange( 0.1, 0.9, 0.1 ); + $opt->addSelectValue('No transparency', ''); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + $s->endSection(); + + $s->endSection(); + +// $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); +//$s->endSection(); diff --git a/wp-content/themes/milo/templates/onePage/blocks/section-background/section-background.php b/wp-content/themes/milo/templates/onePage/blocks/section-background/section-background.php new file mode 100644 index 0000000..ff3d5cb --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/section-background/section-background.php @@ -0,0 +1,123 @@ +get('show') ){ + + $backgrounds = $query->get('backgrounds'); + + foreach( $backgrounds as $oneBGLayer ) { + + $variation = $oneBGLayer->getVariationType(); + $opacity = $oneBGLayer->get('opacity'); + if( !empty($opacity) and ('0' !== $opacity ) ){ + $opacity = 'opacity:' . number_format( $opacity, 2 ) . ';'; + }else{ + $opacity = ''; + } + + switch ( $variation ) { + case 'background-color': + $color = $oneBGLayer->get('color'); + echo '
    '; + break; + + case 'background-image': + $img = $oneBGLayer->getImage('image')->url; + echo '
    '; + break; + + case 'background-pattern': + $img = $oneBGLayer->getImage('image')->url; + echo '
    '; + break; + + case 'background-youtube-video': + $url = $oneBGLayer->get('url'); + + // something like static varible - sorry: + global $__ff_background_youtube_video; + if( empty( $__ff_background_youtube_video ) ){ + $__ff_background_youtube_video = 0; + } + $__ff_background_youtube_video ++; + + echo '
    '; + echo '
    '; + echo '
    '; + echo '
    '; + echo '
    '; + echo '
    '; + break; + + case 'background-url-video': + + echo '
    '; + + echo ''; + + echo '
    '; + break; + + default: + echo "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"; + break; + } + } +} + diff --git a/wp-content/themes/milo/templates/onePage/blocks/section-settings-general/section-settings-general-block.php b/wp-content/themes/milo/templates/onePage/blocks/section-settings-general/section-settings-general-block.php new file mode 100644 index 0000000..d744b5f --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/section-settings-general/section-settings-general-block.php @@ -0,0 +1,46 @@ +startSection('general'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + + $s->addOption( ffOneOption::TYPE_TEXT, 'id', 'Section ID ', '' ); + $s->addElement( ffOneElement::TYPE_HTML, '', ' Option is used for linking. Leave blank for no ID.'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'fullwidth', 'Fullwidth', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_SELECT, 'color-type', 'Color type', 'light') + ->addSelectValue('Light BG / Dark text', 'light') + ->addSelectValue('Dark BG / Light text', 'dark') + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'padding-top', 'Padding top (px)', 'default') + ->addSelectValue('Default', 'default') + ->addSelectNumberRange(0, 250, 5) + ; + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'padding-bottom', 'Padding bottom (px)', 'default') + ->addSelectValue('Default', 'default') + ->addSelectNumberRange(0, 250, 5) + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'margin-top', 'Margin top (px)', 'default') + ->addSelectValue('Default', 'default') + ->addSelectNumberRange(0, 250, 5) + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'margin-bottom', 'Margin bottom (px)', 'default') + ->addSelectValue('Default', 'default') + ->addSelectNumberRange(0, 250, 5) + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END); +//$s->endSection(); \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/section-settings/section-settings-block.php b/wp-content/themes/milo/templates/onePage/blocks/section-settings/section-settings-block.php new file mode 100644 index 0000000..3e81e04 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/section-settings/section-settings-block.php @@ -0,0 +1,144 @@ +startSection('section-settings'); +$s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', $title); + $s->addElement(ffOneElement::TYPE_TOGGLE_BOX_START, '', $title); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); +/**********************************************************************************************************************/ +/* GENERAL +/**********************************************************************************************************************/ + $s->startSection('general'); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + $s->addOption( ffOneOption::TYPE_TEXT, 'id', 'Section ID ', '' ); + $s->addElement( ffOneElement::TYPE_HTML, '', ' Option is used for linking. Leave blank for no ID.'); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_SELECT, 'color-type', 'Color type', 'light') + ->addSelectValue('Light BG / Dark text', 'light') + ->addSelectValue('Dark BG / Light text', 'dark') + ; + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END); + $s->endSection(); +/**********************************************************************************************************************/ +/* FULLWIDTH +/**********************************************************************************************************************/ + $s->startSection('fullwidth'); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Fullwidth Wrapper'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'apply', 'Apply settings below', 'default'); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'margin-top', 'Margin top (px)', 'default') + ->addSelectValue('Default', 'default') + ->addSelectValue('0', '0') + ->addSelectNumberRange(5, 250, 5) + ; + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'margin-bottom', 'Margin bottom (px)', 'default') + ->addSelectValue('Default', 'default') + ->addSelectValue('0', '0') + ->addSelectNumberRange(5, 250, 5) + ; + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'padding-top', 'Padding top (px)', 'default') + ->addSelectValue('Default', 'default') + ->addSelectValue('0', '0') + ->addSelectNumberRange(5, 250, 5) + ; + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'padding-bottom', 'Padding bottom (px)', 'default') + ->addSelectValue('Default', 'default') + ->addSelectValue('0', '0') + ->addSelectNumberRange(5, 250, 5) + ; + + $s->addElement(ffOneElement::TYPE_HEADING, '', 'Background'); + + $s->startSection('background'); + ff_load_section_options( 'section-background-block', $s); + $s->endSection(); + + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END); + $s->endSection(); +/**********************************************************************************************************************/ +/* BOXED +/**********************************************************************************************************************/ + $s->startSection('boxed'); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Boxed Wrapper'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'apply', 'Apply settings below', 0); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'width-type', 'Width Value', 'from-input') + ->addSelectValue('Fullwidth', 'fullwidth') + ->addSelectValue('Set Below', 'from-input') + ; + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'maxwidth', 'Max-width in px', '1170' ); + $s->addElement( ffOneElement::TYPE_HTML, '', ' Max width of the boxed div, default is 1170'); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'padding-top', 'Padding top (px)', 'default') + ->addSelectValue('Default', 'default') + ->addSelectValue('0', '0') + ->addSelectNumberRange(5, 250, 5) + ; + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'padding-bottom', 'Padding bottom (px)', 'default') + ->addSelectValue('Default', 'default') + ->addSelectValue('0', '0') + ->addSelectNumberRange(5, 250, 5) + ; + + $s->addElement(ffOneElement::TYPE_HEADING, '', 'Background'); + + $s->startSection('background'); + ff_load_section_options( 'section-background-block', $s); + $s->endSection(); + + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END); + $s->endSection(); + + $s->startSection('container'); + $s->addElement(ffOneElement::TYPE_TABLE_DATA_START, '', 'Container Wrapper'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'apply', 'Apply settings below', 0); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'type', 'Type', 'not') + ->addSelectValue('Container', 'not') + ->addSelectValue('Container Fluid', 'fluid') + ->addSelectValue('Container Fullwidth', 'fullwidth') + ; + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'is-fulscreen', 'Is Fullscreen section', 0); + + $s->addElement(ffOneElement::TYPE_TABLE_DATA_END); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + + $s->addElement(ffOneElement::TYPE_TOGGLE_BOX_END); +$s->addElement( ffOneElement::TYPE_TABLE_DATA_END); +$s->endSection(); \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/section-settings/section-settings.php b/wp-content/themes/milo/templates/onePage/blocks/section-settings/section-settings.php new file mode 100644 index 0000000..efafbf4 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/section-settings/section-settings.php @@ -0,0 +1,41 @@ +get('id'); +$id = trim($id); +if( !empty($id) ){ + echo ' id="'.esc_attr( $id ).'"'; +} + + +//////////////////////////////////////////////////////////////////////////////////// +// CLASS + +echo ' class="section '; +if( ! empty($params['class']) ){ + echo ' '.esc_attr( $params['class'] ).' '; +} + +if( ! empty($params['section']) ){ + echo ' section-'.esc_attr( $params['section'] ).' '; +} + +echo esc_attr( $query->get('color-type') ).'"'; + + +//////////////////////////////////////////////////////////////////////////////////// +// DATA-SECTION + +if( ! empty($params['section']) ){ + echo ' data-section="'.esc_attr( $params['section'] ).'"'; +} + +//////////////////////////////////////////////////////////////////////////////////// +// CUSTOM STYLE + +if( ! empty($params['style']) ){ + echo ' style="'.esc_attr($params['style']).'"'; +} \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/small-heading/small-heading-block.php b/wp-content/themes/milo/templates/onePage/blocks/small-heading/small-heading-block.php new file mode 100644 index 0000000..970d67f --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/small-heading/small-heading-block.php @@ -0,0 +1,32 @@ +startSection('small-heading'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Small Heading'); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show-whole', 'Show Headings', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show-title', 'Show Title   ', 1); + $s->addOption( ffOneOption::TYPE_TEXT, 'title', '', 'Our Services'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show-description', 'Show Description', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_SELECT, 'description-style', 'Description style', 'lead') + ->addSelectValue('Smaller', '') + ->addSelectValue('Bigger', 'lead'); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXTAREA, 'description', '', 'Lorem ipsum veniam adipisicing cupidatat dolor do adipisicing commodo'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show-points', 'Show points', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'text-align', 'Heading align', 'text-center') + ->addSelectValue('Left', '') + ->addSelectValue('Center', 'text-center') + ->addSelectValue('Right', 'text-right') + ->addSelectValue('Justify', 'text-justify'); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END); +$s->endSection(); \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/small-heading/small-heading.php b/wp-content/themes/milo/templates/onePage/blocks/small-heading/small-heading.php new file mode 100644 index 0000000..13e8244 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/small-heading/small-heading.php @@ -0,0 +1,20 @@ +get('show-whole' ) ) { ?> + +
    + + get('show-title') ) { ?> +

    printText('title'); ?>

    + + + get('show-description') ) { ?> +

    printText('description'); ?>

    + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/blocks/text-with-icon/text-with-icon-block.php b/wp-content/themes/milo/templates/onePage/blocks/text-with-icon/text-with-icon-block.php new file mode 100644 index 0000000..1e68f2e --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/text-with-icon/text-with-icon-block.php @@ -0,0 +1,61 @@ +addElement( ffOneElement::TYPE_TABLE_START ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Icon'); + + $s->addOption( ffOneOption::TYPE_ICON, 'icon', '', ''); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + ff_load_section_options( + 'color-attr', + $s, array( + 'name' => 'icon-background' + , 'title' => 'Background' + , 'default' => 'blue' + )); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'icon-size', 'Size', '') + ->addSelectValue( 'Small' , 'small' ) + ->addSelectValue( 'Default' , '' ) + ->addSelectValue( 'Medium' , 'medium' ) + ->addSelectValue( 'Large' , 'large' ) + ; + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'shape', 'Shape', 'circle') + ->addSelectValue( 'No Shape, just icon' , '' ) + ->addSelectValue( 'Circle' , 'circle' ) + ->addSelectValue( 'Square' , 'square' ) + ; + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Text'); + + $s->addOption( ffOneOption::TYPE_TEXT, 'title', 'Title', 'Global Company') + ->addParam('class', 'edit-repeatable-item-title'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'title-size', 'Title Size', '4') + ->addSelectValue( 'Small h5' , '5' ) + ->addSelectValue( 'Default h4' , '4' ) + ->addSelectValue( 'Medium h3' , '3' ) + ->addSelectValue( 'Large h2' , '2' ) + ; + + $s->addOption( ffOneOption::TYPE_TEXTAREA, 'description', 'Description', 'Lorem ipsum Eu tempor anim Excepteur consectetur cillum tempor id exercitation nostrud do consequat sunt in consectetur commodo in exercitation.' ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Button'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show-button', 'Show button', 1); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + ff_load_section_options( 'button-block', $s); + +$s->addElement( ffOneElement::TYPE_TABLE_END ); + diff --git a/wp-content/themes/milo/templates/onePage/blocks/text-with-icon/text-with-icon.php b/wp-content/themes/milo/templates/onePage/blocks/text-with-icon/text-with-icon.php new file mode 100644 index 0000000..d3f9995 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/blocks/text-with-icon/text-with-icon.php @@ -0,0 +1,22 @@ +
    + +
    +
    + get('title-size'); ?> + class="title">printText('title');?>> +

    printText('description');?>

    + get('show-button') ){ + ff_load_section_printer( + 'button' + , $query->get('button') + ); + } + ?> +
    \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/accordion/accordion-section.php b/wp-content/themes/milo/templates/onePage/sections/accordion/accordion-section.php new file mode 100644 index 0000000..c46bc0d --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/accordion/accordion-section.php @@ -0,0 +1,42 @@ +startSection('accordion', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Accordion (Accordeon)') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('accordion')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Settings') + ->addParam('section-name', 'Settings'); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'We answer your questions'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'accordion'); + $s->startSection('accordion', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-accordion', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One accordion'); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'How do you work?'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'description', 'Description', 'Phasellus rhoncus non mi sed faucibus. Donec sollicitudin posuere ante, in tristique velit pellentesque id. Nulla nibh arcu, cursus eu consectetur ut, tincidunt ac magna. Donec vitae orci nunc.'); + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# ACCORDION END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/accordion/accordion.jpg b/wp-content/themes/milo/templates/onePage/sections/accordion/accordion.jpg new file mode 100644 index 0000000..031ddb8 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/accordion/accordion.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/accordion/accordion.php b/wp-content/themes/milo/templates/onePage/sections/accordion/accordion.php new file mode 100644 index 0000000..cedd8d5 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/accordion/accordion.php @@ -0,0 +1,37 @@ + +

    printText('title'); ?>

    + +
    + get('accordion') as $oneAccordion){ + $index++; + ?> +
    + +
    +
    +

    printText('description'); ?>

    +
    +
    +
    + +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/blog-archive-classic/blog-archive-classic-section.php b/wp-content/themes/milo/templates/onePage/sections/blog-archive-classic/blog-archive-classic-section.php new file mode 100644 index 0000000..74fecd8 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/blog-archive-classic/blog-archive-classic-section.php @@ -0,0 +1,68 @@ +startSection('blog-archive-classic', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Blog Archive Classic') + ->addParam('hide-default', true) + + ->addParam('advanced-picker-menu-title', 'Blog') + ->addParam('advanced-picker-menu-id', 'blog') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('blog-archive-classic')); + + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s ); +// +// ff_load_section_options( '/templates/onePage/blocks/section-settings-block.php', $s); +// +// ff_load_section_options( '/templates/onePage/blocks/section-background-block.php', $s); + + ff_load_section_options( 'blog-meta-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + + $s->addOption(ffOneOption::TYPE_SELECT, 'sidebar', 'Sidebar', 'right') + ->addSelectValue('None', 'none') + ->addSelectValue('Left', 'left') + ->addSelectValue('Right', 'right') + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'number-of-posts', 'Number of posts', '0'); + $s->addElement( ffOneElement::TYPE_DESCRIPTION, '', 'Set how many posts should be rendered. This does not influence WP loop (use our Fresh Custom Loops plugin for that)'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_CHECKBOX, 'readmore-show', 'Show Read More', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'readmore-trans', 'Read More', 'Continue Reading'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Categories'); + ff_load_section_options('loop-influence-post-block', $s ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Search'); + $s->addOption( ffOneOption::TYPE_TEXTAREA, 'search-not-found', 'Nothing found in search', 'Sorry, but nothing matched your search terms. Please try again with some different keywords.' ); + $s->addElement( ffOneElement::TYPE_DESCRIPTION, '', 'This is applied only if this section is used for search.' ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Pagination'); + ff_load_section_options('pagination-block', $s ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + + + + +$s->endSection(); diff --git a/wp-content/themes/milo/templates/onePage/sections/blog-archive-classic/blog-archive-classic.jpg b/wp-content/themes/milo/templates/onePage/sections/blog-archive-classic/blog-archive-classic.jpg new file mode 100644 index 0000000..5ef4814 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/blog-archive-classic/blog-archive-classic.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/blog-archive-classic/blog-archive-classic.php b/wp-content/themes/milo/templates/onePage/sections/blog-archive-classic/blog-archive-classic.php new file mode 100644 index 0000000..749847e --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/blog-archive-classic/blog-archive-classic.php @@ -0,0 +1,96 @@ +get('sidebar') ) { + case 'none': $contentClass = ''; break; + case 'right': $contentClass = 'col-sm-9'; break; + case 'left': $contentClass = 'col-sm-9 pull-right'; break; +} + +$numberOfPosts = $query->get('number-of-posts'); +?> + +
    +
    + 0 && $postCounter > $numberOfPosts ) { + break; + } + ?> +
    > + get('blog-meta featured-image') + , array('section'=>'blog-classic') + ); + ?> + + 'blog-classic') + ); + ?> + +
    + +
    + + get('readmore-show') ) { + if( $query->get('readmore-trans') ){ + echo ''.ff_wp_kses( $query->get('readmore-trans') ).''; + } + } + ?> + +
    + '; + echo ff_wp_kses( $query->get('search-not-found') ); + echo '

    '; + echo ''; + } + ?> +
    + get('sidebar') != 'none' ) { + echo '
    '; + if( is_active_sidebar('sidebar-content') ) { + dynamic_sidebar('sidebar-content'); + } + echo '
    '; + } + ?> + +
    + + + + + diff --git a/wp-content/themes/milo/templates/onePage/sections/blog-archive-columns/blog-archive-columns-section.php b/wp-content/themes/milo/templates/onePage/sections/blog-archive-columns/blog-archive-columns-section.php new file mode 100644 index 0000000..b83de04 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/blog-archive-columns/blog-archive-columns-section.php @@ -0,0 +1,57 @@ +startSection('blog-archive-columns', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Blog Archive Columns') + ->addParam('hide-default', true) + + ->addParam('advanced-picker-menu-title', 'Blog') + ->addParam('advanced-picker-menu-id', 'blog') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('blog-archive-columns')); + + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s ); +// +// ff_load_section_options( '/templates/onePage/blocks/section-settings-block.php', $s); +// +// ff_load_section_options( '/templates/onePage/blocks/section-background-block.php', $s); + + ff_load_section_options( 'blog-meta-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + + $s->addOption( ffOneOption::TYPE_TEXT, 'number-of-posts', 'Number of posts', '0'); + $s->addElement( ffOneElement::TYPE_DESCRIPTION, '', 'Set how many posts should be rendered. This does not influence WP loop (use our Fresh Custom Loops plugin for that)'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_SELECT, 'number-of-columns', 'Number of columns', 3) + ->addSelectNumberRange(1,8) + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_CHECKBOX, 'readmore-show', 'Show Read More', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'readmore-trans', 'Read More', 'Continue Reading'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Categories'); + ff_load_section_options('loop-influence-post-block', $s ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Pagination'); + ff_load_section_options('pagination-block', $s ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); diff --git a/wp-content/themes/milo/templates/onePage/sections/blog-archive-columns/blog-archive-columns.jpg b/wp-content/themes/milo/templates/onePage/sections/blog-archive-columns/blog-archive-columns.jpg new file mode 100644 index 0000000..e26da8d Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/blog-archive-columns/blog-archive-columns.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/blog-archive-columns/blog-archive-columns.php b/wp-content/themes/milo/templates/onePage/sections/blog-archive-columns/blog-archive-columns.php new file mode 100644 index 0000000..8d872cc --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/blog-archive-columns/blog-archive-columns.php @@ -0,0 +1,75 @@ +get('number-of-columns'); + +$oneColumnNumber = ff_boostrap_grid_translator( $numberOfPostsInColumn ); +$oneColumnCss = 'col-sm-'.absint( $oneColumnNumber ); + +global $wp_query; +global $post; +$postsFound = $wp_query->found_posts; + +$postLimited = $query->get('number-of-posts'); + +?> + +
    +
    + +
    > +
    + get('blog-meta featured-image') + , array('section'=>'blog-classic') + ); + ?> + 'blog-classic') + ); + ?> + +
    + +
    + + get('readmore-show') ) { + if( $query->get('readmore-trans') ){ + echo ''.ff_wp_kses( $query->get('readmore-trans') ).''; + } + } + ?> + +
    +
    + current_post < ($wp_query->found_posts-1) || $postCounter < $postLimited ) ) { + echo '
    '; + echo '
    '; + } + } + } + ?> + +
    + +
    + + + diff --git a/wp-content/themes/milo/templates/onePage/sections/blog-archive-masonry/blog-archive-masonry-section.php b/wp-content/themes/milo/templates/onePage/sections/blog-archive-masonry/blog-archive-masonry-section.php new file mode 100644 index 0000000..55b512b --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/blog-archive-masonry/blog-archive-masonry-section.php @@ -0,0 +1,59 @@ +startSection('blog-archive-masonry', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Blog Archive Masonry') + ->addParam('hide-default', true) + + ->addParam('advanced-picker-menu-title', 'Blog') + ->addParam('advanced-picker-menu-id', 'blog') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('blog-archive-masonry')); + + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s ); +// +// ff_load_section_options( '/templates/onePage/blocks/section-settings-block.php', $s); +// +// ff_load_section_options( '/templates/onePage/blocks/section-background-block.php', $s); + + ff_load_section_options( 'blog-meta-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + + $s->addOption(ffOneOption::TYPE_SELECT, 'number-of-columns', 'Number of columns', 3) + ->addSelectNumberRange(1,5) + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'number-of-posts', 'Number of posts', '0'); + $s->addElement( ffOneElement::TYPE_DESCRIPTION, '', 'Set how many posts should be rendered. This does not influence WP loop (use our Fresh Custom Loops plugin for that)'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_CHECKBOX, 'readmore-show', 'Show Read More', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'readmore-trans', 'Read More', 'Read More'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Categories'); + ff_load_section_options('loop-influence-post-block', $s ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Pagination'); + ff_load_section_options('pagination-block', $s ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); diff --git a/wp-content/themes/milo/templates/onePage/sections/blog-archive-masonry/blog-archive-masonry.jpg b/wp-content/themes/milo/templates/onePage/sections/blog-archive-masonry/blog-archive-masonry.jpg new file mode 100644 index 0000000..b164835 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/blog-archive-masonry/blog-archive-masonry.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/blog-archive-masonry/blog-archive-masonry.php b/wp-content/themes/milo/templates/onePage/sections/blog-archive-masonry/blog-archive-masonry.php new file mode 100644 index 0000000..d8fd128 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/blog-archive-masonry/blog-archive-masonry.php @@ -0,0 +1,66 @@ +get('number-of-columns'); + $numberOfPosts = $query->get('number-of-posts'); +?> +
    +
    +
    + +
    + 0 && $postCounter > $numberOfPosts ) { + break; + } + the_post(); + ?> +
    > + +
    + get('blog-meta featured-image') + , array('section'=>'blog-classic') + ); + ?> + 'blog-masonry') + ); + ?> +
    + +
    + + get('readmore-show') ) { + if( $query->get('readmore-trans') ){ + echo ''.ff_wp_kses( $query->get('readmore-trans') ).''; + } + } + ?> + +
    + +
    + +
    + +
    +
    + +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/blog-single/blog-single-section.php b/wp-content/themes/milo/templates/onePage/sections/blog-single/blog-single-section.php new file mode 100644 index 0000000..0d7f7f4 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/blog-single/blog-single-section.php @@ -0,0 +1,56 @@ +startSection('blog-single', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Blog Single') + ->addParam('hide-default', true) + + ->addParam('advanced-picker-menu-title', 'Blog') + ->addParam('advanced-picker-menu-id', 'blog') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('blog-single')); + + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); +// +// ff_load_section_options( '/templates/onePage/blocks/section-settings-block.php', $s); +// +// ff_load_section_options( '/templates/onePage/blocks/section-background-block.php', $s); + + ff_load_section_options( 'blog-meta-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Author Box'); + $s->startSection('author-box'); + $s->addOption(ffOneOption::TYPE_CHECKBOX, 'show', 'Show author box', 1); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'About the Author'); + $s->addElement(ffOneElement::TYPE_NEW_LINE ); + + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Sidebar'); + $s->addOption(ffOneOption::TYPE_SELECT, 'sidebar', 'Sidebar', 'right') + ->addSelectValue('None', 'none') + ->addSelectValue('Left', 'left') + ->addSelectValue('Right', 'right') + ; + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Comments List'); + ff_load_section_options( 'comments-list-block', $s); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Comments Form'); + ff_load_section_options( 'comments-form-block', $s); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); diff --git a/wp-content/themes/milo/templates/onePage/sections/blog-single/blog-single.jpg b/wp-content/themes/milo/templates/onePage/sections/blog-single/blog-single.jpg new file mode 100644 index 0000000..d29d0b1 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/blog-single/blog-single.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/blog-single/blog-single.php b/wp-content/themes/milo/templates/onePage/sections/blog-single/blog-single.php new file mode 100644 index 0000000..73f0c03 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/blog-single/blog-single.php @@ -0,0 +1,89 @@ +get('sidebar') ) { + case 'none': $contentClass = ''; break; + case 'right': $contentClass = 'col-sm-9'; break; + case 'left': $contentClass = 'col-sm-9 pull-right'; break; +} + +the_post(); + +?> +
    +
    +
    > + +
    + get('blog-meta featured-image') + , array('section'=>'blog-classic') + ); + ?> + 'blog-classic') + ); + ?> + +
    + +
    + +
    + + get('author-box show') ) { + $postMetaGetter = ffContainer()->getThemeFrameworkFactory()->getPostMetaGetter(); + ?> + + + get('comments-form')); + ffTemporaryQueryHolder::setQuery('comments-list', $query->get('comments-list')); + comments_template(); + ffTemporaryQueryHolder::deleteQuery('comments-form'); + ffTemporaryQueryHolder::deleteQuery('comments-list'); + ?> + +
    + get('sidebar') != 'none' ) { + echo '
    '; + if( is_active_sidebar('sidebar-content') ) { + dynamic_sidebar('sidebar-content'); + } + echo '
    '; + } + ?> +
    +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/boxes-with-icons/boxes-with-icons-section.php b/wp-content/themes/milo/templates/onePage/sections/boxes-with-icons/boxes-with-icons-section.php new file mode 100644 index 0000000..f40115f --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/boxes-with-icons/boxes-with-icons-section.php @@ -0,0 +1,75 @@ +startSection('boxes-with-icons', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Boxes with icons') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('boxes-with-icons')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options('section-settings-block', $s); + + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Box with icons on the left side'); + + $s->startSection('box-left'); + + ff_load_section_options('animation-block', $s ); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->addOption(ffOneOption::TYPE_ICON, 'icon', 'Icon', ''); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Developement'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'url', 'Url', '#'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'description', 'Description', 'Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Box with icons on the right side'); + + $s->startSection('box-right'); + ff_load_section_options('animation-block', $s ); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->addOption(ffOneOption::TYPE_ICON, 'icon', 'Icon', ''); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Developement'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'url', 'Url', '#'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'description', 'Description', 'Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# BOXES WITH ICONS END +################################################################################ + diff --git a/wp-content/themes/milo/templates/onePage/sections/boxes-with-icons/boxes-with-icons.jpg b/wp-content/themes/milo/templates/onePage/sections/boxes-with-icons/boxes-with-icons.jpg new file mode 100644 index 0000000..89ff6cf Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/boxes-with-icons/boxes-with-icons.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/boxes-with-icons/boxes-with-icons.php b/wp-content/themes/milo/templates/onePage/sections/boxes-with-icons/boxes-with-icons.php new file mode 100644 index 0000000..4e377d3 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/boxes-with-icons/boxes-with-icons.php @@ -0,0 +1,47 @@ +get('box-left'); + $rightBox = $query->get('box-right'); + + $leftAnimation = ff_load_section_printer('animation', $leftBox ); + $rightAnimation = ff_load_section_printer('animation', $rightBox ); + + $leftIcon = $leftBox->getIcon('icon'); + $rightIcon = $rightBox->getIcon('icon'); +?> + +
    +
    + +
    + + + +
    + +

    printText('title');?>

    + +

    printText('description');?>

    + +
    + +
    + +
    +
    + +
    + + + +
    + +

    printText('title');?>

    + +

    printText('description');?>

    + +
    + +
    + +
    +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/contact-form-1/contact-form-1-section.php b/wp-content/themes/milo/templates/onePage/sections/contact-form-1/contact-form-1-section.php new file mode 100644 index 0000000..cfae6f3 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/contact-form-1/contact-form-1-section.php @@ -0,0 +1,121 @@ +startSection('contact-form-1', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Contact Form 1') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('contact-form-1')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Contact Form'); + $s->startSection('contact-form'); + $s->addOption(ffOneOption::TYPE_TEXT, 'name', 'Name', 'name'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'email', 'Email', 'email'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'subject', 'Subject', 'subject'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'message', 'Message', 'message'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'button', 'Button', 'Submit'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Contact Form User Data'); + $s->startSection('contact-form-user-input'); + + $s->addOption(ffOneOption::TYPE_TEXT, 'email', 'Your email address (where to receive emails)', 'your@email.com'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'subject', 'Subject of the emails received', 'Milo contact form'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Contact Form Messages'); + $s->startSection('contact-form-messages'); + + $s->addOption(ffOneOption::TYPE_TEXT, 'validation-name', 'Validation Name', 'Please enter your name!'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'validation-email', 'Validation Email (empty)', 'Please enter your email!'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'validation-email-format', 'Validation Email (format)', 'Please enter a valid email address'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption(ffOneOption::TYPE_TEXT, 'validation-subject', 'Validation subject', 'Please enter the subject!'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption(ffOneOption::TYPE_TEXT, 'validation-message', 'Validation Message (empty)', 'Please enter your message!'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'validation-message-minlength', 'Validation Message (minlength)', 'At least {0} characters required'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption(ffOneOption::TYPE_TEXT, 'message-send-ok', 'Message has been sent', 'Your message was successfully sent!'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'message-send-wrong', 'Message has NOT been sent', 'There was an error sending the message!'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Description'); + $s->startSection('description'); + $s->addOption(ffOneOption::TYPE_CHECKBOX, 'show', 'Show', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Contact Information'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->startSection('description-boxes', ffOneSection::TYPE_REPEATABLE_VARIABLE ); + $s->startSection('one-box', ffOneSection::TYPE_REPEATABLE_VARIATION)->addParam('section-name', 'One Box'); + $s->startSection('lines', ffOneSection::TYPE_REPEATABLE_VARIABLE ); + $s->startSection('one-line', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'One Text Line'); + $s->addOption( ffOneOption::TYPE_TEXT, 'text', 'Text', '1713 Hide A Way Road'); + $s->endSection(); + + $s->startSection('one-heading', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'One Heading'); + $s->addOption( ffOneOption::TYPE_TEXT, 'text', 'Text', 'Address'); + $s->endSection(); + + $s->startSection('one-email', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'One Email'); + $s->addOption( ffOneOption::TYPE_TEXT, 'text', 'Text', 'your@email.com'); + $s->endSection(); + $s->endSection(); + $s->endSection(); + $s->endSection(); + + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# CONTACT FORM 1 END +################################################################################ diff --git a/wp-content/themes/milo/templates/onePage/sections/contact-form-1/contact-form-1.jpg b/wp-content/themes/milo/templates/onePage/sections/contact-form-1/contact-form-1.jpg new file mode 100644 index 0000000..5aba78f Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/contact-form-1/contact-form-1.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/contact-form-1/contact-form-1.php b/wp-content/themes/milo/templates/onePage/sections/contact-form-1/contact-form-1.php new file mode 100644 index 0000000..6afe991 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/contact-form-1/contact-form-1.php @@ -0,0 +1,100 @@ +get('contact-form'); + + + $descriptionQuery = $query->get('description'); + + + if( $descriptionQuery->get('show') ) { + $cformClass = 'col-sm-offset-1 col-sm-6'; + } else { + $cformClass = 'col-sm-12'; + } +?> + + +
    +
    + + +
    +
    +
    + + + + + + + + + + + +
    + + get('contact-form-user-input email'); + $data['subject'] = $query->get('contact-form-user-input subject'); + + $data = json_encode( $data ); + + $cfMessages = $query->get('contact-form-messages'); + + echo '
    '.ffContainer::getInstance()->getCiphers()->freshfaceCipher_encode( $data ).'
    '; + + echo '
    '; + + echo '
    ' . ff_wp_kses( $cfMessages->get('validation-name') ) . '
    '; + echo '
    '. ff_wp_kses( $cfMessages->get('validation-email') ) . '
    '; + echo '
    '. ff_wp_kses( $cfMessages->get('validation-email-format') ) . '
    '; + echo '
    '. ff_wp_kses( $cfMessages->get('validation-message') ) . '
    '; + echo '
    '. ff_wp_kses( $cfMessages->get('validation-message-minlength') ) . '
    '; + echo '
    '. ff_wp_kses( $cfMessages->get('message-send-ok') ) . '
    '; + echo '
    ' . ff_wp_kses( $cfMessages->get('message-send-wrong') ) . '
    '; + + echo '
    '; + + ?> +
    + +
    + + get('show') ) { ?> +
    + +
    + +

    get('title') ); ?>

    + +
      + get('description-boxes') as $oneBox ) { + echo '
    • '; + + foreach( $oneBox->get('lines') as $oneLine ) { + $type = $oneLine->getVariationType(); + + if( $type == 'one-line' ) { + echo ff_wp_kses( $oneLine->get('text') ) . '
      '; + } else if ( $type == 'one-heading' ) { + echo '' . ff_wp_kses( $oneLine->get('text') ) . ''; + } else if ( $type == 'one-email' ) { + echo ''.ff_wp_kses( $oneLine->get('text') ).'
      '; + } + } + + echo '
    • '; + } + ?> + +
    + +
    + +
    + +
    \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/contact-form-2/contact-form-2-section.php b/wp-content/themes/milo/templates/onePage/sections/contact-form-2/contact-form-2-section.php new file mode 100644 index 0000000..c2399b7 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/contact-form-2/contact-form-2-section.php @@ -0,0 +1,123 @@ +startSection('contact-form-2', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Contact Form 2') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('contact-form-2')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Contact Form'); + $s->startSection('contact-form'); + $s->addOption(ffOneOption::TYPE_TEXT, 'name', 'Name', 'name'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'email', 'Email', 'email'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'subject', 'Subject', 'subject'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'message', 'Message', 'message'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'button', 'Button', 'Submit'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Contact Form User Data'); + $s->startSection('contact-form-user-input'); + + $s->addOption(ffOneOption::TYPE_TEXT, 'email', 'Your email address (where to receive emails)', 'your@email.com'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'subject', 'Subject of the emails received', 'Milo contact form'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Contact Form Messages'); + $s->startSection('contact-form-messages'); + + $s->addOption(ffOneOption::TYPE_TEXT, 'validation-name', 'Validation Name', 'Please enter your name!'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'validation-email', 'Validation Email (empty)', 'Please enter your email!'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'validation-email-format', 'Validation Email (format)', 'Please enter a valid email address'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption(ffOneOption::TYPE_TEXT, 'validation-subject', 'Validation subject', 'Please enter the subject!'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption(ffOneOption::TYPE_TEXT, 'validation-message', 'Validation Message (empty)', 'Please enter your message!'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'validation-message-minlength', 'Validation Message (minlength)', 'At least {0} characters required'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption(ffOneOption::TYPE_TEXT, 'message-send-ok', 'Message has been sent', 'Your message was successfully sent!'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'message-send-wrong', 'Message has NOT been sent', 'There was an error sending the message!'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Description'); + $s->startSection('description'); + $s->addOption(ffOneOption::TYPE_CHECKBOX, 'show', 'Show', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->startSection('description-boxes', ffOneSection::TYPE_REPEATABLE_VARIABLE ); + $s->startSection('one-box', ffOneSection::TYPE_REPEATABLE_VARIATION)->addParam('section-name', 'One Box'); + + ff_load_section_options('bootstrap-columns-block', $s, array('sm'=>4) ); + + $s->startSection('lines', ffOneSection::TYPE_REPEATABLE_VARIABLE ); + + $s->startSection('one-heading', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'One Heading'); + $s->addOption( ffOneOption::TYPE_TEXT, 'text', 'Text', 'Address'); + $s->endSection(); + + $s->startSection('one-line', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'One Text Line'); + $s->addOption( ffOneOption::TYPE_TEXT, 'text', 'Text', '1713 Hide A Way Road'); + $s->endSection(); + + $s->startSection('one-email', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'One Email'); + $s->addOption( ffOneOption::TYPE_TEXT, 'text', 'Text', 'your@email.com'); + $s->endSection(); + + $s->endSection(); + $s->endSection(); + $s->endSection(); + + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# CONTACT FORM 1 END +################################################################################ diff --git a/wp-content/themes/milo/templates/onePage/sections/contact-form-2/contact-form-2.jpg b/wp-content/themes/milo/templates/onePage/sections/contact-form-2/contact-form-2.jpg new file mode 100644 index 0000000..64d1f45 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/contact-form-2/contact-form-2.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/contact-form-2/contact-form-2.php b/wp-content/themes/milo/templates/onePage/sections/contact-form-2/contact-form-2.php new file mode 100644 index 0000000..dd5fa49 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/contact-form-2/contact-form-2.php @@ -0,0 +1,104 @@ +get('contact-form'); + + + $descriptionQuery = $query->get('description'); + + + if( $descriptionQuery->get('show') ) { + $cformClass = 'col-sm-offset-1 col-sm-6'; + } else { + $cformClass = 'col-sm-12'; + } +?> + +get('show') ) { ?> +
    +
    + +
    + + + get('description-boxes') as $oneBox ) { + + $bootstrapClass = ff_load_section_printer( 'bootstrap-columns', $oneBox->get('bootstrap-columns') ); + + echo '
    '; + echo '
    '; + echo '
      '; + echo '
    • '; + + foreach( $oneBox->get('lines') as $oneLine ) { + $type = $oneLine->getVariationType(); + + if( $type == 'one-line' ) { + echo ff_wp_kses( $oneLine->get('text') ) . '
      '; + } else if ( $type == 'one-heading' ) { + echo '' . ff_wp_kses( $oneLine->get('text') ) . ''; + } else if ( $type == 'one-email' ) { + echo ''.ff_wp_kses( $oneLine->get('text') ).'
      '; + } + } + + echo '
    • '; + echo '
    '; + echo '
    '; + echo '
    '; + } + ?> +
    + +
    +
    + +
    +
    + +
    +
    + +
    + + + + + + + + + + + +
    + + get('contact-form-user-input email'); + $data['subject'] = $query->get('contact-form-user-input subject'); + + $data = json_encode( $data ); + + $cfMessages = $query->get('contact-form-messages'); + + echo '
    '.ffContainer::getInstance()->getCiphers()->freshfaceCipher_encode( $data ).'
    '; + + echo '
    '; + + echo '
    '. ff_wp_kses( $cfMessages->get('validation-name') ) . '
    '; + echo '
    '. ff_wp_kses( $cfMessages->get('validation-email') ) . '
    '; + echo '
    ' . ff_wp_kses( $cfMessages->get('validation-email-format') ) . '
    '; + echo '
    ' . ff_wp_kses( $cfMessages->get('validation-message') ) . '
    '; + echo '
    ' . ff_wp_kses( $cfMessages->get('validation-message-minlength') ) . '
    '; + echo '
    '. ff_wp_kses( $cfMessages->get('message-send-ok') ) . '
    '; + echo '
    '. ff_wp_kses( $cfMessages->get('message-send-wrong') ) . '
    '; + + echo '
    '; + + ?> +
    + +
    +
    \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/footer-bottom/footer-bottom-section.php b/wp-content/themes/milo/templates/onePage/sections/footer-bottom/footer-bottom-section.php new file mode 100644 index 0000000..38f9cdd --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/footer-bottom/footer-bottom-section.php @@ -0,0 +1,33 @@ +startSection('footer-bottom', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Footer Bottom') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Footer') + ->addParam('advanced-picker-menu-id', 'footer') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('footer-bottom')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + + $textContent = '

    © All Rights Reserved Milo template.

    '; + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'content', 'Social links', $textContent); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# FOOTER SOCIAL END +################################################################################ + + diff --git a/wp-content/themes/milo/templates/onePage/sections/footer-bottom/footer-bottom.jpg b/wp-content/themes/milo/templates/onePage/sections/footer-bottom/footer-bottom.jpg new file mode 100644 index 0000000..63d27fa Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/footer-bottom/footer-bottom.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/footer-bottom/footer-bottom.php b/wp-content/themes/milo/templates/onePage/sections/footer-bottom/footer-bottom.php new file mode 100644 index 0000000..ec187d5 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/footer-bottom/footer-bottom.php @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/footer-social/footer-social-section.php b/wp-content/themes/milo/templates/onePage/sections/footer-social/footer-social-section.php new file mode 100644 index 0000000..12a3eab --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/footer-social/footer-social-section.php @@ -0,0 +1,33 @@ +startSection('footer-social', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Footer social medias') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Footer') + ->addParam('advanced-picker-menu-id', 'footer') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('footer-social')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Social medias') + ->addParam('section-name', 'Social medias'); + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'social-links', 'Social links', ''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# FOOTER SOCIAL END +################################################################################ + + diff --git a/wp-content/themes/milo/templates/onePage/sections/footer-social/footer-social.jpg b/wp-content/themes/milo/templates/onePage/sections/footer-social/footer-social.jpg new file mode 100644 index 0000000..bbca5ab Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/footer-social/footer-social.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/footer-social/footer-social.php b/wp-content/themes/milo/templates/onePage/sections/footer-social/footer-social.php new file mode 100644 index 0000000..009a739 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/footer-social/footer-social.php @@ -0,0 +1,30 @@ + diff --git a/wp-content/themes/milo/templates/onePage/sections/footer-widgets/footer-widgets-section.php b/wp-content/themes/milo/templates/onePage/sections/footer-widgets/footer-widgets-section.php new file mode 100644 index 0000000..341144d --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/footer-widgets/footer-widgets-section.php @@ -0,0 +1,38 @@ +startSection('footer-widgets', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Footer Widgets') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Footer') + ->addParam('advanced-picker-menu-id', 'footer') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('footer-widgets')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + + for( $i = 1; $i <= 4; $i ++ ) { + $s->addOption(ffOneOption::TYPE_SELECT, 'footer-sidebar-'. $i, 'Footer Widgets #'. $i.' sidebar size * 1/12', '3') + ->addSelectValue('Dont Show', 'dont-show') + ->addSelectNumberRange(1,12) + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + } + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# FOOTER SOCIAL END +################################################################################ + + diff --git a/wp-content/themes/milo/templates/onePage/sections/footer-widgets/footer-widgets.jpg b/wp-content/themes/milo/templates/onePage/sections/footer-widgets/footer-widgets.jpg new file mode 100644 index 0000000..fada9c5 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/footer-widgets/footer-widgets.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/footer-widgets/footer-widgets.php b/wp-content/themes/milo/templates/onePage/sections/footer-widgets/footer-widgets.php new file mode 100644 index 0000000..c0b88dc --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/footer-widgets/footer-widgets.php @@ -0,0 +1,25 @@ + \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/fun-facts-with-counters/fun-facts-with-counters-section.php b/wp-content/themes/milo/templates/onePage/sections/fun-facts-with-counters/fun-facts-with-counters-section.php new file mode 100644 index 0000000..eb9f439 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/fun-facts-with-counters/fun-facts-with-counters-section.php @@ -0,0 +1,47 @@ +startSection('fun-facts-with-counters', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Fun facts with counters') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('fun-facts-with-counters')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options('section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Fun facts'); + $s->startSection('facts', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-fact', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One fact'); + + ff_load_section_options('bootstrap-columns-block', $s, array('sm'=>3 ) ); + + $s->addOption( ffOneOption::TYPE_ICON, 'icon', '', 'ff-font-miu icon-chat56'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Satisfied clients'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'quantity', 'Quantity', '139'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# FUN FACTS WITH COUNTERS END +################################################################################ + diff --git a/wp-content/themes/milo/templates/onePage/sections/fun-facts-with-counters/fun-facts-with-counters.jpg b/wp-content/themes/milo/templates/onePage/sections/fun-facts-with-counters/fun-facts-with-counters.jpg new file mode 100644 index 0000000..4c3c84f Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/fun-facts-with-counters/fun-facts-with-counters.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/fun-facts-with-counters/fun-facts-with-counters.php b/wp-content/themes/milo/templates/onePage/sections/fun-facts-with-counters/fun-facts-with-counters.php new file mode 100644 index 0000000..be4b390 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/fun-facts-with-counters/fun-facts-with-counters.php @@ -0,0 +1,28 @@ + +
    + get('facts') as $fact) { + $bootstrapClass = ff_load_section_printer('bootstrap-columns', $fact->get('bootstrap-columns')); + $iconClass = $fact->getIcon('icon'); + ?> +
    + +
    + + + +
    + +
    +

    printText('title'); ?>

    +
    + + +
    + + +
    + +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/fun-facts/fun-facts-section.php b/wp-content/themes/milo/templates/onePage/sections/fun-facts/fun-facts-section.php new file mode 100644 index 0000000..cb0afd9 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/fun-facts/fun-facts-section.php @@ -0,0 +1,65 @@ +startSection('fun-facts', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Fun facts') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('fun-facts')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s); + +// ff_load_section_options( '/templates/onePage/blocks/section-background-block.php', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Fun facts'); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show-heading', 'Show Heading', 0); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + ff_load_section_options('heading-wrapped-block', $s); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'not-selected-part-color', 'Not Selected Part color', '#000000') + ->addParam('class', 'ff-default-wp-color-picker'); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'use-this-color-instead-accent', 'Use color below (instead of accent color)', 0); + + $s->addOption( ffOneOption::TYPE_TEXT, 'selected-part-color', 'Selected Part color', '#bca480') + ->addParam('class', 'ff-default-wp-color-picker'); + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Fun facts'); + $s->startSection('facts', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-fact', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One fact'); + ff_load_section_options('bootstrap-columns-block', $s, array('md'=>3)); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Pure love'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'percentage', 'Percentage', '75'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# FUN FACTS END +################################################################################ + diff --git a/wp-content/themes/milo/templates/onePage/sections/fun-facts/fun-facts.jpg b/wp-content/themes/milo/templates/onePage/sections/fun-facts/fun-facts.jpg new file mode 100644 index 0000000..eb4b891 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/fun-facts/fun-facts.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/fun-facts/fun-facts.php b/wp-content/themes/milo/templates/onePage/sections/fun-facts/fun-facts.php new file mode 100644 index 0000000..97a7d99 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/fun-facts/fun-facts.php @@ -0,0 +1,45 @@ +get('not-selected-part-color'); + + $selectedPartColor = ''; + + if( $query->get('use-this-color-instead-accent') ) { + $selectedPartColor = $query->get('selected-part-color'); + } else { + $selectedPartColor = ff_theme_accent_color_hex(); + } +?> + + + get('show-heading') ){ + ff_load_section_printer('heading-wrapped', $query); + } + ?> + +
    + get('facts') as $fact) { + $bootstrapClass = ff_load_section_printer('bootstrap-columns', $fact->get('bootstrap-columns')); + ?> +
    + +
    + +
    +

    + % + printText('title'); ?> +

    + +
    + +
    + +
    + +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/general-service/general-service-section.php b/wp-content/themes/milo/templates/onePage/sections/general-service/general-service-section.php new file mode 100644 index 0000000..868bc68 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/general-service/general-service-section.php @@ -0,0 +1,66 @@ +startSection('general-service', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'General service') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('general-service')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options('section-settings-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Title'); + + ff_load_section_options('heading-content-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Content'); + + + $s->startSection('content', ffOneSection::TYPE_REPEATABLE_VARIABLE ); + $s->startSection('one-paragraph', ffOneSection::TYPE_REPEATABLE_VARIATION )->addParam('section-name', 'One Paragraph'); + + $description = 'Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est.'; + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'text', '', $description); + + $s->endSection(); + + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Button'); + + ff_load_section_options('button-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Image'); + $s->startSection('image'); + $s->addOption( ffOneOption::TYPE_SELECT, 'position', 'Image Position', 'right') + ->addSelectValue('Right', 'right') + ->addSelectValue('Left', 'left'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_IMAGE, 'image', 'Photo', ''); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + ff_load_section_options('animation-block', $s); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# GENERAL SERVICE END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/general-service/general-service.jpg b/wp-content/themes/milo/templates/onePage/sections/general-service/general-service.jpg new file mode 100644 index 0000000..58221ef Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/general-service/general-service.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/general-service/general-service.php b/wp-content/themes/milo/templates/onePage/sections/general-service/general-service.php new file mode 100644 index 0000000..2e422fd --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/general-service/general-service.php @@ -0,0 +1,48 @@ +get('image'); + $imageAnimationClass = ff_load_section_printer('animation', $imageQuery ); + $imagePosition = $imageQuery->get('position'); + + $imageHtml = ''; + $imageHtml .= '
    '; + $imageHtml .= '

    '; + + $imageHtml .= ''; + + $imageHtml .= '

    '; + $imageHtml .= '
    '; + +?> + + +
    + + + +
    + +
    + + + +
    + get('content') as $oneParagraph ) { + echo '

    '; + $oneParagraph->printText( 'text' ); + echo '

    '; + } + + ?> + + + + +
    + + + +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/heading/heading-section.php b/wp-content/themes/milo/templates/onePage/sections/heading/heading-section.php new file mode 100644 index 0000000..bc39f50 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/heading/heading-section.php @@ -0,0 +1,32 @@ +startSection('heading', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Heading') + ->addParam('hide-default', false) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('heading')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + + $s->startSection('heading'); + ff_load_section_options('heading-wrapped-block', $s); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# PRICING MODELS END +################################################################################ diff --git a/wp-content/themes/milo/templates/onePage/sections/heading/heading.jpg b/wp-content/themes/milo/templates/onePage/sections/heading/heading.jpg new file mode 100644 index 0000000..30e93f7 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/heading/heading.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/heading/heading.php b/wp-content/themes/milo/templates/onePage/sections/heading/heading.php new file mode 100644 index 0000000..79623ae --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/heading/heading.php @@ -0,0 +1,4 @@ + +get('heading')); +?> \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/html/html-section.php b/wp-content/themes/milo/templates/onePage/sections/html/html-section.php new file mode 100644 index 0000000..73b91a3 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/html/html-section.php @@ -0,0 +1,40 @@ +startSection('html', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'HTML') + ->addParam('hide-default', true) + + ->addParam('advanced-picker-menu-title', 'Special') + ->addParam('advanced-picker-menu-id', 'special') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('html')); + + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->startSection('html-section-settings'); + ff_load_section_options( 'section-settings-block', $s); + $s->endSection(); + // ff_load_section_options( '/templates/onePage/blocks/section-background-block.php', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'HTML'); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'wrap-with-section', 'Wrap with section (settings above)', 1); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXTAREA, 'html', 'HTML', ''); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# HTML END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/html/html.jpg b/wp-content/themes/milo/templates/onePage/sections/html/html.jpg new file mode 100644 index 0000000..e58f58e Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/html/html.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/html/html.php b/wp-content/themes/milo/templates/onePage/sections/html/html.php new file mode 100644 index 0000000..324c67f --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/html/html.php @@ -0,0 +1,14 @@ +get('wrap-with-section'); + +if( $wrapWithSection ) { + ff_print_before_section( $query->get('html-section-settings section-settings' ) ); +} + +// Special section, that enable user to insert any HTML +echo do_shortcode( $query->get('html') ); + +if( $wrapWithSection ) { + ff_print_after_section( $query->get('html-section-settings section-settings' ) ); +} diff --git a/wp-content/themes/milo/templates/onePage/sections/image-slider/image-slider-section.php b/wp-content/themes/milo/templates/onePage/sections/image-slider/image-slider-section.php new file mode 100644 index 0000000..90afb4b --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/image-slider/image-slider-section.php @@ -0,0 +1,48 @@ +startSection('image-slider', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Image slider') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('image-slider')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options('section-settings-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Image size'); + $s->startSection('image-dimensions'); + $s->addOption(ffOneOption::TYPE_TEXT, 'width', 'Width (in px)', 1140); + $s->addElement(ffOneElement::TYPE_DESCRIPTION, '', 'Default width is 1140'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->addOption(ffOneOption::TYPE_TEXT, 'height', 'Height (in px)', 400); + $s->addElement(ffOneElement::TYPE_DESCRIPTION, '', 'Default height is 400'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Images'); + $s->startSection('images', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-image', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One image'); + $s->addOption(ffOneOption::TYPE_IMAGE, 'image', 'Image', ''); + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# IMAGE SLIDER END +################################################################################ diff --git a/wp-content/themes/milo/templates/onePage/sections/image-slider/image-slider.jpg b/wp-content/themes/milo/templates/onePage/sections/image-slider/image-slider.jpg new file mode 100644 index 0000000..a6b5428 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/image-slider/image-slider.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/image-slider/image-slider.php b/wp-content/themes/milo/templates/onePage/sections/image-slider/image-slider.php new file mode 100644 index 0000000..9f77db3 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/image-slider/image-slider.php @@ -0,0 +1,25 @@ + +
    +
    + +
    +
      + get('images'); + + $width = $query->get('image-dimensions width'); + $height = $query->get('image-dimensions height'); + foreach ($query->get('images') as $image) + { + $image = $image->getImage('image'); + $imageUrlResized = fImg::resize($image->url, $width, $height, true); + ?> +
    • + +
    +
    + +
    +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/info-slider/info-slider-section.php b/wp-content/themes/milo/templates/onePage/sections/info-slider/info-slider-section.php new file mode 100644 index 0000000..ddf2e7e --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/info-slider/info-slider-section.php @@ -0,0 +1,38 @@ +startSection('info-slider', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Info slider') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('info-slider')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + ff_load_section_options( 'section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Info slider'); + $s->startSection('items', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-item', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One item'); + $s->addOption(ffOneOption::TYPE_TEXT, 'over-title', 'Over title', 'It\'s responsive'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Take a look'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'description', 'Description', 'Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totamrem aperiam, eaque ipsa quae ab illo invent ore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit.'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_IMAGE, 'picture', 'Photo', ''); + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# INFO SLIDER START +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/info-slider/info-slider.jpg b/wp-content/themes/milo/templates/onePage/sections/info-slider/info-slider.jpg new file mode 100644 index 0000000..85a7776 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/info-slider/info-slider.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/info-slider/info-slider.php b/wp-content/themes/milo/templates/onePage/sections/info-slider/info-slider.php new file mode 100644 index 0000000..5048037 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/info-slider/info-slider.php @@ -0,0 +1,38 @@ + +
    +
    + +
    +
      + get('items') as $item){ + $image = $item->getImage('picture'); + $imageUrlResized = fImg::resize($image->url, 560, 325, true); + ?> +
    • +
      +
      + +
      +

      printText('over-title'); ?>

      +

      printText('title'); ?>

      +
      + +

      printText('description'); ?>

      + +
      +
      + + + +
      +
      +
    • + +
    +
    + +
    +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/logo-slider/logo-slider-section.php b/wp-content/themes/milo/templates/onePage/sections/logo-slider/logo-slider-section.php new file mode 100644 index 0000000..181b288 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/logo-slider/logo-slider-section.php @@ -0,0 +1,36 @@ +startSection('logo-slider', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Logo showcase') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('logo-slider')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options('section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Logo showcase'); + $s->startSection('logos', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-logo', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One logo'); + $s->addOption(ffOneOption::TYPE_IMAGE, 'picture', 'Picture', ''); + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# LOGO SLIDER END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/logo-slider/logo-slider.jpg b/wp-content/themes/milo/templates/onePage/sections/logo-slider/logo-slider.jpg new file mode 100644 index 0000000..f24ae84 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/logo-slider/logo-slider.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/logo-slider/logo-slider.php b/wp-content/themes/milo/templates/onePage/sections/logo-slider/logo-slider.php new file mode 100644 index 0000000..0a2a06c --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/logo-slider/logo-slider.php @@ -0,0 +1,11 @@ +
    +
    +
      + get('logos') as $logo) { ?> + getImage('picture') ) { ?> +
    • + + +
    +
    +
    \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/map/map-section.php b/wp-content/themes/milo/templates/onePage/sections/map/map-section.php new file mode 100644 index 0000000..c6c2f10 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/map/map-section.php @@ -0,0 +1,39 @@ +startSection('map', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Map') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('map')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + $s->addOption(ffOneOption::TYPE_TEXT, 'address', 'Address', 'San Jose, California, USA'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_TEXT, 'description', 'Description', 'MILO Office'); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_SELECT, 'zoom', 'Zoom', 11) + ->addSelectNumberRange(0,20) + ; + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# PRICING MODELS END +################################################################################ diff --git a/wp-content/themes/milo/templates/onePage/sections/map/map.jpg b/wp-content/themes/milo/templates/onePage/sections/map/map.jpg new file mode 100644 index 0000000..47ebab1 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/map/map.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/map/map.php b/wp-content/themes/milo/templates/onePage/sections/map/map.php new file mode 100644 index 0000000..72cc7b9 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/map/map.php @@ -0,0 +1,18 @@ +getScriptEnqueuer(); + $scriptEnqueuer->addScript('ff-google-maps-extern','http://maps.google.com/maps/api/js?sensor=false', null, null, true); + $scriptEnqueuer->addScriptTheme('ff-google-maps','/assets/js/googlemaps/jquery.gmap.min.js', null, null, true); + + $address = $query->get('address'); + $description = $query->get('description'); + + $addressEscaped = htmlspecialchars( $address ); + $descriptionEscaped = htmlspecialchars( $description ); + + $zoom = $query->get('zoom'); +?> + +
    \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/navigation/navigation-section.php b/wp-content/themes/milo/templates/onePage/sections/navigation/navigation-section.php new file mode 100644 index 0000000..ea43294 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/navigation/navigation-section.php @@ -0,0 +1,77 @@ +startSection('navigation', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Header - Logo and Menu') + ->addParam('hide-default', true) + + ->addParam('advanced-picker-menu-title', 'Header') + ->addParam('advanced-picker-menu-id', 'header') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('navigation')); + + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->startSection('header-backgrounds'); + ff_load_section_options( 'section-settings-block', $s ); + $s->endSection(); + + $s->startSection('logo'); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Desktop Logo'); + $s->addOption( ffOneOption::TYPE_IMAGE, 'image', 'Desktop Logo' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'is_retina', 'This logo image is in retina resolution', 1); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->startSection('tablet'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Tablet Logo'); + $s->addOption( ffOneOption::TYPE_IMAGE, 'image', 'Tablet Logo' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'is_retina', 'This logo image is in retina resolution', 1); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->endSection(); + $s->startSection('phone'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Phone Logo'); + $s->addOption( ffOneOption::TYPE_IMAGE, 'image', 'Phone Logo' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'is_retina', 'This logo image is in retina resolution', 1); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->endSection(); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + + $s->addOption( ffOneOption::TYPE_NAVIGATION_MENU_SELECTOR, 'navigation-menu-id', 'Navigation Menu'); + + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'color-type', 'Submenu Background Color ', '') + ->addSelectValue('Light', '') + ->addSelectValue('Dark', 'dark' ) + ; + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Search'); + $s->startSection('search'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show', 'Show', 0); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'placeholder', 'Placeholder', 'Enter your keyword here and then press enter...'); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# NAVIGATION END +################################################################################ diff --git a/wp-content/themes/milo/templates/onePage/sections/navigation/navigation.jpg b/wp-content/themes/milo/templates/onePage/sections/navigation/navigation.jpg new file mode 100644 index 0000000..9def1d6 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/navigation/navigation.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/navigation/navigation.php b/wp-content/themes/milo/templates/onePage/sections/navigation/navigation.php new file mode 100644 index 0000000..4be4de8 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/navigation/navigation.php @@ -0,0 +1,151 @@ + + +
    +getWithoutComparation('header-backgrounds') != null ) { + ff_print_before_section($query->get('header-backgrounds section-settings')); + } else { + echo '
    '; + } +?> + + getWithoutComparation('header-backgrounds') != null ) { + ff_print_after_section($query->get('header-backgrounds section-settings')); + } else { + echo '
    '; + } + ?> +
    + diff --git a/wp-content/themes/milo/templates/onePage/sections/numbered-services/numbered-services-section.php b/wp-content/themes/milo/templates/onePage/sections/numbered-services/numbered-services-section.php new file mode 100644 index 0000000..fe6d33d --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/numbered-services/numbered-services-section.php @@ -0,0 +1,48 @@ +startSection('numbered-services', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Numbered services') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('numbered-services')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Numbered services'); + $s->startSection('numbered-services', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-service', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One service'); + +// $s->addElement( ffOneElement::TYPE_TABLE_START ); + ff_load_section_options( 'bootstrap-columns-block', $s, array('sm'=>3)); + + +// $s->addElement( ffOneElement::TYPE_TABLE_END ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Identity'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'description', 'Description', 'Lorem ipsum dolor sit amet, unde lactus ur elit, sed do eiusmod omis.'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'link', 'Link', '#'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'link-text', 'Link Text', 'Read More'); + + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# NUMBERED SERVICES START +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/numbered-services/numbered-services.jpg b/wp-content/themes/milo/templates/onePage/sections/numbered-services/numbered-services.jpg new file mode 100644 index 0000000..11a866d Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/numbered-services/numbered-services.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/numbered-services/numbered-services.php b/wp-content/themes/milo/templates/onePage/sections/numbered-services/numbered-services.php new file mode 100644 index 0000000..170eaa0 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/numbered-services/numbered-services.php @@ -0,0 +1,32 @@ +
    +get('numbered-services') as $service){ + $cnt++; + + $bootstrapClasses = ff_load_section_printer( + 'bootstrap-columns', + $service->get('bootstrap-columns') + ); + + ?> +
    +
    + +
    + +
    +

    printText('title'); ?>

    + +

    printText('description'); ?>

    + + printText('link-text'); ?> + +
    + +
    +
    + +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/page-not-found/page-not-found-section.php b/wp-content/themes/milo/templates/onePage/sections/page-not-found/page-not-found-section.php new file mode 100644 index 0000000..3504041 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/page-not-found/page-not-found-section.php @@ -0,0 +1,47 @@ +startSection('page-not-found', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Page not found') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Special') + ->addParam('advanced-picker-menu-id', 'special') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('page-not-found')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Error number'); + $s->addOption(ffOneOption::TYPE_TEXT, 'error-number', '', '404'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Error message'); + $s->addOption(ffOneOption::TYPE_TEXT, 'error-message', '', 'Page not found'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Error description'); + $s->addOption(ffOneOption::TYPE_TEXT, 'error-description', '', 'The page you are looking for could not be found.'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Additional info'); + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'additional-info', '', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Button'); + $s->addOption(ffOneOption::TYPE_TEXT, 'button-title', 'Title', 'Go to home page'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'button-link', 'Link', ''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# PAGE NOT FOUND END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/page-not-found/page-not-found.jpg b/wp-content/themes/milo/templates/onePage/sections/page-not-found/page-not-found.jpg new file mode 100644 index 0000000..a2c30a4 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/page-not-found/page-not-found.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/page-not-found/page-not-found.php b/wp-content/themes/milo/templates/onePage/sections/page-not-found/page-not-found.php new file mode 100644 index 0000000..ad321e4 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/page-not-found/page-not-found.php @@ -0,0 +1,38 @@ + +
    +
    +
    + +
    + +
    printText('error-number')?>
    +

    printText('error-message')?>

    +

    printText('error-description')?>

    + +
    + +
    +
    +
    + +
    +
    +
    + +

    printText('additional-info')?>

    + +
    +
    +
    + +

    + + \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/page/page-section.php b/wp-content/themes/milo/templates/onePage/sections/page/page-section.php new file mode 100644 index 0000000..e8fb8cb --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/page/page-section.php @@ -0,0 +1,36 @@ +startSection('page', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Page') + ->addParam('hide-default', true) + + ->addParam('advanced-picker-menu-title', 'Special') + ->addParam('advanced-picker-menu-id', 'special') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('page')); + + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + // ff_load_section_options( '/templates/onePage/blocks/section-setwkground-block.php', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Page'); + + $s->addOption( ffOneOption::TYPE_POST_SELECTOR, 'page', 'Page', '') + ->addParam('type', 'multiple'); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + +$s->endSection(); + +################################################################################ +# PAGE END +################################################################################ diff --git a/wp-content/themes/milo/templates/onePage/sections/page/page.jpg b/wp-content/themes/milo/templates/onePage/sections/page/page.jpg new file mode 100644 index 0000000..2a96a7a Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/page/page.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/page/page.php b/wp-content/themes/milo/templates/onePage/sections/page/page.php new file mode 100644 index 0000000..16dbd9f --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/page/page.php @@ -0,0 +1,60 @@ +getMultipleSelect('page'); + +if( empty($pageIDs) ){ + echo '
    '; + echo '
    '; + echo '
    '; + echo '

    No Page ID specified

    '; + echo '
    '; + echo '
    '; + echo '
    '; + return; +} + +$fwc = ffContainer::getInstance(); + +foreach ($pageIDs as $pageID) { + + $page_template = $fwc->getWPLayer()->get_post_meta($pageID, '_wp_page_template', true); + + if( 'page-onepage.php' == $page_template ){ + $postMeta = $fwc->getDataStorageFactory()->createDataStorageWPPostMetas_NamespaceFacade( $pageID ); + $onePage = $postMeta->getOption( 'onepage'); + + $onePage = unserialize( base64_decode( $onePage )); + $sectionQuery = ffContainer::getInstance()->getOptionsFactory()->createQuery( $onePage, 'ffComponent_Theme_OnePageOptions'); + + foreach( $sectionQuery->get('sections') as $oneSection ) { + /** @var ffOptionsQuery $oneSection */ + $variation = $oneSection->getVariationType(); + ff_print_section_callback( $oneSection, $variation ); + } + + }else{ + echo '
    '; + echo '
    '; + echo '
    '; + + $page = ffContainer::getInstance()->getPostLayer()->getPostGetter()->getPostByID( $pageID ); + $pageContent = $page->getContent(); + $pageContent = apply_filters( 'the_content', $pageContent ); + $pageContent = str_replace( ']]>', ']]>', $pageContent ); + + echo $pageContent; + + $great_vc = substr_count( $pageContent, ' 0 ){ + echo str_repeat('
    ', $great_vc); + } + + echo '
    '; + echo '
    '; + echo '
    '; + + } +} + + + diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-classic/portfolio-archive-classic-section.php b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-classic/portfolio-archive-classic-section.php new file mode 100644 index 0000000..44dfd56 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-classic/portfolio-archive-classic-section.php @@ -0,0 +1,72 @@ +startSection('portfolio-archive-classic', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Portfolio Archive Classic') + ->addParam('hide-default', true) + + ->addParam('advanced-picker-menu-title', 'Portfolio') + ->addParam('advanced-picker-menu-id', 'portfolio') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('portfolio-archive-classic')); + + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); +// +// ff_load_section_options( '/templates/onePage/blocks/section-settings-block.php', $s); +// +// ff_load_section_options( '/templates/onePage/blocks/section-background-block.php', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Featured Image'); + $s->startSection('featured-image'); + + $s->addOption(ffOneOption::TYPE_SELECT, 'link', 'Image points to', 'lightbox') + ->addSelectValue('Lightbox', 'lightbox') + ->addSelectValue('Same value as button', 'button') + ->addSelectValue('Nowhere', 'nowhere') + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'resize', 'Resize featurd image?', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addElement(ffOneElement::TYPE_DESCRIPTION, 'd', 'Original size is 533x300 px'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'width', 'Width (px)', 533); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'height', 'Height (px)', 300); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + + $s->addOption( ffOneOption::TYPE_TEXT, 'date-format', 'Date Format', 'd F Y'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption(ffOneOption::TYPE_CHECKBOX, 'readmore-show', 'Show Read More', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'readmore-trans', 'Read More', 'Continue Reading'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Pagination'); + ff_load_section_options('pagination-block', $s ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-classic/portfolio-archive-classic.jpg b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-classic/portfolio-archive-classic.jpg new file mode 100644 index 0000000..a92dfa5 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-classic/portfolio-archive-classic.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-classic/portfolio-archive-classic.php b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-classic/portfolio-archive-classic.php new file mode 100644 index 0000000..92b51f1 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-classic/portfolio-archive-classic.php @@ -0,0 +1,186 @@ +getDataStorageFactory()->createDataStorageWPPostMetas(); + rewind_posts(); + $postCounter = 0; + global $post; + if ( have_posts() ) { + + while ( have_posts() ) { + the_post(); +/**********************************************************************************************************************/ +/* VARIABLE INIT +/**********************************************************************************************************************/ + $postCounter++; + $currentPostId = $post->ID; + + $data = $postMeta->getOption( $currentPostId, 'portfolio_category_options'); + $postQuery = $fwc->getOptionsFactory()->createQuery( $data,'ffComponent_Theme_MetaboxPortfolio_CategoryView'); + +// $postQuery->debug_dump(); + +/**********************************************************************************************************************/ +/* POST TITLE +/**********************************************************************************************************************/ + $postTitle = ''; + if( $postQuery->get('general title different') ) { + $postTitle = $postQuery->get('general title title'); + } else { + $postTitle = get_the_title(); + } + +/**********************************************************************************************************************/ +/* POST DATE +/**********************************************************************************************************************/ + // 05 March 2015 -- d F Y + $postDate = ''; + if( $postQuery->get('general date different') ) { + $postDate = $postQuery->get('general date date'); + } else { + $postDate = get_the_date( $query->get('date-format')); + } + + +/**********************************************************************************************************************/ +/* FEATURED IMAGE +/**********************************************************************************************************************/ + $imageUrlNonresized = wp_get_attachment_url( get_post_thumbnail_id( $post->ID ) ); + + if( $imageUrlNonresized == null ) { + return; + } + + $imageUrlResized = $imageUrlNonresized; + + $featuredImageQuery = $query->get('featured-image'); + + $width = $featuredImageQuery->get('width'); + $height = $featuredImageQuery->get('height'); + + + if( absint($width) == 0 ) { + $width = null; + } + + if( absint($height) == 0 ) { + $height = null; + } + + if( $featuredImageQuery->get('resize') ) { + $imageUrlResized = fImg::resize( $imageUrlNonresized, $width, $height, true ); + } + +/**********************************************************************************************************************/ +/* BUTTON CAPTION & URL +/**********************************************************************************************************************/ + $buttonCaption = ''; + $buttonUrl = ''; + if( $query->get('readmore-show') ) { + + if ($postQuery->get('general button different-caption')) { + $buttonCaption = $postQuery->get('general button caption'); + } else { + $buttonCaption = $query->get('readmore-trans'); + } + + if ($postQuery->get('general button different-url')) { + $buttonUrl = $postQuery->get('general button url'); + } else { + $buttonUrl = get_permalink($post->ID); + } + } + +/**********************************************************************************************************************/ +/* PORTFOLIO SUB TITLE +/**********************************************************************************************************************/ + + $subTitle = ''; + if( $postQuery->get('general subtitle different') ) { + $subTitle = $postQuery->get('general subtitle subtitle'); + } else { + $tags = wp_get_post_terms( $post->ID, 'ff-portfolio-tag' ); + + if( !empty( $tags ) ) { + $firstTag = reset( $tags ); + + $subTitle = $firstTag->name; + } + + } + +?> +
    +
    +
    + +
    + +
    +
    + +
    + + get('link') == 'button') { + echo ''; + } + ?> + + + + get('link') == 'button') { + echo ''; + } + ?> + + + get('link') == 'lightbox') { + ?> + +
    + + + +
    + +
    + +
    +
    + +
    + +
    +

    +
    + +

    + get('general description description') ); ?> +

    + + get('readmore-show') ) { + ?> + + + +
    + +
    +
    +
    +
    +
    +
    + + + diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-1/portfolio-archive-filterable-1-section.php b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-1/portfolio-archive-filterable-1-section.php new file mode 100644 index 0000000..6fa0b30 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-1/portfolio-archive-filterable-1-section.php @@ -0,0 +1,94 @@ +startSection('portfolio-archive-filterable-1', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Portfolio Archive Filterable 1') + ->addParam('hide-default', true) + + ->addParam('advanced-picker-menu-title', 'Portfolio') + ->addParam('advanced-picker-menu-id', 'portfolio') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('portfolio-archive-filterable-1')); + + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->startSection('section-settings-sortable'); + ff_load_section_options( 'section-settings-block', $s, array('title'=>'Section Options Sortable panel')); + $s->endSection(); + + $s->startSection('section-settings-portfolio'); + ff_load_section_options( 'section-settings-block', $s, array('title'=>'Section Options Portfolio')); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Featured Image'); + $s->startSection('featured-image'); + + $s->addOption(ffOneOption::TYPE_SELECT, 'link', 'Image points to', 'lightbox') + ->addSelectValue('Lightbox', 'lightbox') + ->addSelectValue('Same value as button', 'button') + ->addSelectValue('Nowhere', 'nowhere') + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'resize', 'Resize featurd image?', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addElement(ffOneElement::TYPE_DESCRIPTION, 'd', 'Original size is 360x240 px'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'width', 'Width (px)', 360); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'height', 'Height (px)', 240); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + + $s->addOption( ffOneOption::TYPE_TEXT, 'number-of-posts', 'Number of posts', 0); + $s->addElement( ffOneElement::TYPE_DESCRIPTION,'', 'Leave 0 for show all posts. Adjust better via Fresh Custom Loops plugin (delivered with this theme for free) '); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show-filterable', 'Show Filterable panel', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption( ffOneOption::TYPE_TEXT, 'trans-button-all', 'All the work (tag filter button)', 'All the work'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption(ffOneOption::TYPE_CHECKBOX, 'readmore-show', 'Show Read More', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'readmore-trans', 'Read More', 'Continue Reading'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption( ffOneOption::TYPE_SELECT, 'number-of-columns', 'Number of columns', '3') + ->addSelectNumberRange(1,8) + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Categories'); + ff_load_section_options('loop-influence-portfolio-block', $s ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Pagination'); + ff_load_section_options('pagination-block', $s ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-1/portfolio-archive-filterable-1.jpg b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-1/portfolio-archive-filterable-1.jpg new file mode 100644 index 0000000..414789c Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-1/portfolio-archive-filterable-1.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-1/portfolio-archive-filterable-1.php b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-1/portfolio-archive-filterable-1.php new file mode 100644 index 0000000..fc8028d --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-1/portfolio-archive-filterable-1.php @@ -0,0 +1,220 @@ +getDataStorageFactory()->createDataStorageWPPostMetas(); + rewind_posts(); + $postCounter = 0; + global $post; + + $tags = ff_get_all_portfolio_tags(); + + +?> + +get('show-filterable') ) { +?> + +get('section-settings-sortable section-settings')); ?> + +
    +
    + + + +
    + +
    + + +get('section-settings-sortable section-settings')); ?> + +get('number-of-columns'); + + $columnsClass = 'col-'.absint( $numberOfColums ); +?> + +get('section-settings-portfolio section-settings')); ?> + +
    +
    +
    +ID; + + $data = $postMeta->getOption( $currentPostId, 'portfolio_category_options'); + $postQuery = $fwc->getOptionsFactory()->createQuery( $data,'ffComponent_Theme_MetaboxPortfolio_CategoryView'); +/**********************************************************************************************************************/ +/* TAGS AND SUB HEADING +/**********************************************************************************************************************/ + $tags = ff_get_all_tags_for_one_portfolio_item(); + $subtitle = ''; + $sortableClasses = ''; + if( !empty( $tags ) ) { + foreach( $tags as $oneTag ) { + if( empty( $subtitle ) ) { + $subtitle = $oneTag->name; + } + + $sortableClasses .= ' ff-tag-'.absint( $oneTag->term_id ); + } + } + + +/**********************************************************************************************************************/ +/* PORTFOLIO SUB TITLE +/**********************************************************************************************************************/ + + if( $postQuery->get('general subtitle different') ) { + $subtitle = $postQuery->get('general subtitle subtitle'); + } + +/**********************************************************************************************************************/ +/* BUTTON CAPTION & URL +/**********************************************************************************************************************/ + $buttonCaption = ''; + $buttonUrl = ''; + if( $query->get('readmore-show') ) { + + if ($postQuery->get('general button different-caption')) { + $buttonCaption = $postQuery->get('general button caption'); + } else { + $buttonCaption = $query->get('readmore-trans'); + } + } + + if ($postQuery->get('general button different-url')) { + $buttonUrl = $postQuery->get('general button url'); + } else { + $buttonUrl = get_permalink($post->ID); + } +/**********************************************************************************************************************/ +/* FEATURED IMAGE +/**********************************************************************************************************************/ + $imageUrlNonresized = wp_get_attachment_url( get_post_thumbnail_id( $post->ID ) ); + + if( $imageUrlNonresized == null ) { + continue; + } + + $imageUrlResized = $imageUrlNonresized; + + $featuredImageQuery = $query->get('featured-image'); + + $width = $featuredImageQuery->get('width'); + $height = $featuredImageQuery->get('height'); + + + if( absint($width) == 0 ) { + $width = null; + } + + if( absint($height) == 0 ) { + $height = null; + } + + if( $featuredImageQuery->get('resize') ) { + $imageUrlResized = fImg::resize( $imageUrlNonresized, $width, $height, true ); + } + + +?> + + + +
    + +
    + +
    + + get('link') == 'button') { + echo ''; + } + ?> + + + + get('link') == 'button') { + echo ''; + } + ?> + + + get('link') == 'lightbox') { + ?> + +
    + + + +
    + +
    + +
    + +

    +
    + +

    + get('general description description') ); ?> +

    + + + +
    + + +
    + + +
    + + +
    +
    +
    + + +get('section-settings-portfolio section-settings')); ?> + + diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-2/portfolio-archive-filterable-2-section.php b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-2/portfolio-archive-filterable-2-section.php new file mode 100644 index 0000000..aacd225 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-2/portfolio-archive-filterable-2-section.php @@ -0,0 +1,90 @@ +startSection('portfolio-archive-filterable-2', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Portfolio Archive Filterable 2') + ->addParam('hide-default', true) + + ->addParam('advanced-picker-menu-title', 'Portfolio') + ->addParam('advanced-picker-menu-id', 'portfolio') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('portfolio-archive-filterable-2')); + + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->startSection('section-settings-sortable'); + ff_load_section_options( 'section-settings-block', $s, array('title'=>'Section Options Sortable panel')); + $s->endSection(); + + $s->startSection('section-settings-portfolio'); + ff_load_section_options( 'section-settings-block', $s, array('title'=>'Section Options Portfolio')); + $s->endSection(); + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Featured Image'); + $s->startSection('featured-image'); + + $s->addOption(ffOneOption::TYPE_SELECT, 'link', 'Link points to', 'lightbox') + ->addSelectValue('Specified in portfolio single (item or external link)', 'button') + ->addSelectValue('Nowhere', 'nowhere') + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'resize', 'Resize featured image?', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addElement(ffOneElement::TYPE_DESCRIPTION, 'd', 'Original size is 360x240 px'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'width', 'Width (px)', 360); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'height', 'Height (px)', 240); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + + $s->addOption( ffOneOption::TYPE_TEXT, 'number-of-posts', 'Number of posts', 0); + $s->addElement( ffOneElement::TYPE_DESCRIPTION,'', 'Leave 0 for show all posts. Adjust better via Fresh Custom Loops plugin (delivered with this theme for free) '); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show-filterable', 'Show Filterable panel', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'nospace', 'Items have padding', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'trans-button-all', 'All the work (tag filter button)', 'All the work'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_SELECT, 'number-of-columns', 'Number of columns', '3') + ->addSelectNumberRange(1,8) + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Categories'); + ff_load_section_options('loop-influence-portfolio-block', $s ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Pagination'); + ff_load_section_options('pagination-block', $s ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-2/portfolio-archive-filterable-2.jpg b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-2/portfolio-archive-filterable-2.jpg new file mode 100644 index 0000000..c0de1fa Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-2/portfolio-archive-filterable-2.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-2/portfolio-archive-filterable-2.php b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-2/portfolio-archive-filterable-2.php new file mode 100644 index 0000000..bcd104b --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-filterable-2/portfolio-archive-filterable-2.php @@ -0,0 +1,201 @@ +getDataStorageFactory()->createDataStorageWPPostMetas(); + rewind_posts(); + $postCounter = 0; + global $post; + + $numberOfPosts = $query->get('number-of-posts'); + + + + $tags = ff_get_all_portfolio_tags( $numberOfPosts ); + + +?> + +get('show-filterable') ) { +?> + +get('section-settings-sortable section-settings')); ?> +
    +
    + + + +
    + +
    + +get('section-settings-sortable section-settings')); ?> + +get('number-of-columns'); + + $columnsClass = 'col-'.absint( $numberOfColums ); + + $noSpaceClass = 'no-space'; + + if( $query->get('nospace') ) { + $noSpaceClass = ''; + } +?> + +get('section-settings-portfolio section-settings')); ?> +
    +
    +
    + 0 && $postCounter > $numberOfPosts ) { + break; + } +/**********************************************************************************************************************/ +/* VARIABLE INIT +/**********************************************************************************************************************/ + $currentPostId = $post->ID; + + $data = $postMeta->getOption( $currentPostId, 'portfolio_category_options'); + $postQuery = $fwc->getOptionsFactory()->createQuery( $data,'ffComponent_Theme_MetaboxPortfolio_CategoryView'); +/**********************************************************************************************************************/ +/* TAGS AND SUB HEADING +/**********************************************************************************************************************/ + $tags = ff_get_all_tags_for_one_portfolio_item(); + $subtitle = ''; + $sortableClasses = ''; + if( !empty( $tags ) ) { + foreach( $tags as $oneTag ) { + if( empty( $subheading ) ) { + $subtitle = $oneTag->name; + } + + $sortableClasses .= ' ff-tag-'.absint( $oneTag->term_id ); + } + } + + +/**********************************************************************************************************************/ +/* PORTFOLIO SUB TITLE +/**********************************************************************************************************************/ + + if( $postQuery->get('general subtitle different') ) { + $subtitle = $postQuery->get('general subtitle subtitle'); + } + +/**********************************************************************************************************************/ +/* BUTTON CAPTION & URL +/**********************************************************************************************************************/ + $buttonCaption = ''; + $buttonUrl = ''; + + + if( $query->get('featured-image link') == 'button') { + if ($postQuery->get('general button different-url')) { + $buttonUrl = $postQuery->get('general button url'); + } else { + $buttonUrl = get_permalink($post->ID); + } + } + +/**********************************************************************************************************************/ +/* FEATURED IMAGE +/**********************************************************************************************************************/ + $imageUrlNonresized = wp_get_attachment_url( get_post_thumbnail_id( $post->ID ) ); + + if( $imageUrlNonresized == null ) { + continue; + } + + $imageUrlResized = $imageUrlNonresized; + + $featuredImageQuery = $query->get('featured-image'); + + $width = $featuredImageQuery->get('width'); + $height = $featuredImageQuery->get('height'); + + + if( absint($width) == 0 ) { + $width = null; + } + + if( absint($height) == 0 ) { + $height = null; + } + + if( $featuredImageQuery->get('resize') ) { + $imageUrlResized = fImg::resize( $imageUrlNonresized, $width, $height, true ); + } + +?> +
    + +
    + +
    + + + +
    + +
    + +

    + +
    + + +
    + + + +
    + +
    + +
    + +
    + +
    +
    +
    + +get('section-settings-portfolio section-settings')); ?> diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-parallax/portfolio-archive-parallax-section.php b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-parallax/portfolio-archive-parallax-section.php new file mode 100644 index 0000000..a603161 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-parallax/portfolio-archive-parallax-section.php @@ -0,0 +1,66 @@ +startSection('portfolio-archive-parallax', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Portfolio Archive Parallax') + ->addParam('hide-default', true) + + ->addParam('advanced-picker-menu-title', 'Portfolio') + ->addParam('advanced-picker-menu-id', 'portfolio') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('portfolio-archive-parallax')); + + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Featured Image'); + $s->startSection('featured-image'); + + $s->addOption(ffOneOption::TYPE_SELECT, 'link', 'Link points to', 'lightbox') + ->addSelectValue('Specified in portfolio single (item or external link)', 'button') + ->addSelectValue('Nowhere', 'nowhere') + ; + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'resize', 'Resize featured image?', 0); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addElement(ffOneElement::TYPE_DESCRIPTION, 'd', 'Original size is 1920x1500 px'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'width', 'Width (px)', 1920 ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'height', 'Height (px)', 1500); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + + $s->addOption( ffOneOption::TYPE_TEXT, 'date-format', 'Date Format', 'd F Y'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_CHECKBOX, 'readmore-show', 'Show Read More', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'readmore-trans', 'Read More', 'Continue Reading'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Pagination'); + ff_load_section_options('pagination-block', $s ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-parallax/portfolio-archive-parallax.jpg b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-parallax/portfolio-archive-parallax.jpg new file mode 100644 index 0000000..d1529ff Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-parallax/portfolio-archive-parallax.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-parallax/portfolio-archive-parallax.php b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-parallax/portfolio-archive-parallax.php new file mode 100644 index 0000000..8679d0b --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/portfolio-archive-parallax/portfolio-archive-parallax.php @@ -0,0 +1,125 @@ +getDataStorageFactory()->createDataStorageWPPostMetas(); + rewind_posts(); + $postCounter = 0; + global $post; + +?> + +ID; + + $data = $postMeta->getOption( $currentPostId, 'portfolio_category_options'); + $postQuery = $fwc->getOptionsFactory()->createQuery( $data,'ffComponent_Theme_MetaboxPortfolio_CategoryView'); + $subtitle = ''; + + +/**********************************************************************************************************************/ +/* PORTFOLIO SUB TITLE +/**********************************************************************************************************************/ + + if( $postQuery->get('general subtitle different') ) { + $subtitle = $postQuery->get('general subtitle subtitle'); + } + +/**********************************************************************************************************************/ +/* BUTTON CAPTION & URL +/**********************************************************************************************************************/ + $buttonCaption = ''; + $buttonUrl = ''; + + if( $query->get('readmore-show') ) { + + if ($postQuery->get('general button different-caption')) { + $buttonCaption = $postQuery->get('general button caption'); + } else { + $buttonCaption = $query->get('readmore-trans'); + } + } + + + if( $query->get('featured-image link') == 'button') { + if ($postQuery->get('general button different-url')) { + $buttonUrl = $postQuery->get('general button url'); + } else { + $buttonUrl = get_permalink($post->ID); + } + } +/**********************************************************************************************************************/ +/* POST DATE +/**********************************************************************************************************************/ + // 05 March 2015 -- d F Y + $postDate = ''; + if( $postQuery->get('general date different') ) { + $postDate = $postQuery->get('general date date'); + } else { + $postDate = get_the_date( $query->get('date-format')); + } + + +/**********************************************************************************************************************/ +/* FEATURED IMAGE +/**********************************************************************************************************************/ + $imageUrlNonresized = wp_get_attachment_url( get_post_thumbnail_id( $post->ID ) ); + + if( $imageUrlNonresized == null ) { + continue; + } + + $imageUrlResized = $imageUrlNonresized; + + $featuredImageQuery = $query->get('featured-image'); + + $width = $featuredImageQuery->get('width'); + $height = $featuredImageQuery->get('height'); + + + if( absint($width) == 0 ) { + $width = null; + } + + if( absint($height) == 0 ) { + $height = null; + } + + + $imageUrlToPrint = $imageUrlNonresized; + if( $featuredImageQuery->get('resize') ) { + $imageUrlToPrint = fImg::resize( $imageUrlNonresized, $width, $height, true ); + } + +?> +
    + +
    + +
    + +

    +

    +

    + + + +
    + +
    + + + + \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-single-description/portfolio-single-description-section.php b/wp-content/themes/milo/templates/onePage/sections/portfolio-single-description/portfolio-single-description-section.php new file mode 100644 index 0000000..494a45a --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/portfolio-single-description/portfolio-single-description-section.php @@ -0,0 +1,90 @@ +startSection('portfolio-single-description', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Portfolio Single Description') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('portfolio-single-description')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options('section-settings-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + + $s->startSection('boxes', ffOneSection::TYPE_REPEATABLE_VARIABLE ); + + $s->startSection('detail-box', ffOneSection::TYPE_REPEATABLE_VARIATION)->addParam('section-name', 'Detail box'); + + ff_load_section_options('bootstrap-columns-block', $s, array('sm' => 4)); + + $s->startSection('details', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-detail', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One detail'); + + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Detail title', 'Client:'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'content', 'Detail content', 'Soft easy company'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->endSection(); + $s->endSection(); + + $s->endSection(); + + $s->startSection('text-box', ffOneSection::TYPE_REPEATABLE_VARIATION)->addParam('section-name', 'Text box'); + + ff_load_section_options('bootstrap-columns-block', $s, array('sm' => 4)); + + $s->addOption(ffOneOption::TYPE_CHECKBOX, 'show-title', 'Show title', 1); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Detail title', 'Sed ut omis elit unde om nis iste natus volupta.'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $description = 'Eaque ipsa quae ab illo inventore veritatis et quasi archit ecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit as.'; + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'description-text', 'Text', $description); + + $s->endSection(); + + $s->endSection(); + +// $s->addOption(ffOneOption::TYPE_CHECKBOX, 'details-checkbox', 'Show company details', 1); +// $s->startSection('details', ffOneSection::TYPE_REPEATABLE_VARIABLE); +// $s->startSection('one-detail', ffOneSection::TYPE_REPEATABLE_VARIATION) +// ->addParam('section-name', 'One detail'); +// $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Detail title', 'Client'); +// $s->addElement(ffOneElement::TYPE_NEW_LINE); +// $s->addOption(ffOneOption::TYPE_TEXT, 'content', 'Detail content', 'Soft easy company'); +// $s->addElement(ffOneElement::TYPE_NEW_LINE); +// $s->addOption(ffOneOption::TYPE_TEXT, 'link', 'Detail link', ''); +// $s->addElement(ffOneElement::TYPE_NEW_LINE); +// $s->endSection(); +// $s->endSection(); +// $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); +// +// $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Texts') +// ->addParam('section-name', 'Texts'); +// $s->addOption(ffOneOption::TYPE_CHECKBOX, 'description-checkbox', 'Show company description', 1); +// $s->addElement(ffOneElement::TYPE_NEW_LINE); +// $s->addOption(ffOneOption::TYPE_TEXT, 'description-title', 'Title', 'Sed ut omis elit unde om nis iste natus volupta.'); +// $s->addElement(ffOneElement::TYPE_NEW_LINE); +// $s->addOption(ffOneOption::TYPE_TEXTAREA, 'description-text', 'Text', 'Eaque ipsa quae ab illo inventore veritatis et quasi archit ecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit as.'); +// $s->addElement(ffOneElement::TYPE_NEW_LINE); +// $s->addOption(ffOneOption::TYPE_TEXTAREA, 'additional-text', 'Additional text', 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt dolor sit amet.'); +// $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# PORTFOLIO END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-single-description/portfolio-single-description.jpg b/wp-content/themes/milo/templates/onePage/sections/portfolio-single-description/portfolio-single-description.jpg new file mode 100644 index 0000000..1cfe755 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/portfolio-single-description/portfolio-single-description.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/portfolio-single-description/portfolio-single-description.php b/wp-content/themes/milo/templates/onePage/sections/portfolio-single-description/portfolio-single-description.php new file mode 100644 index 0000000..0e6fa2d --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/portfolio-single-description/portfolio-single-description.php @@ -0,0 +1,45 @@ + +
    + get('boxes') as $oneBox ) { + $bootstrapClass = ff_load_section_printer('bootstrap-columns', $oneBox->get('bootstrap-columns')); + $type = $oneBox->getVariationType(); + + + echo '
    '; + + if( $type == 'detail-box' ) { + + echo '
      '; + + foreach( $oneBox->get('details') as $oneDetail ) { + echo '
    • '; + + echo '' . ff_wp_kses( $oneDetail->get('title') ) .' '; + echo '' . ff_wp_kses( $oneDetail->get('content') ) . ''; + + echo '
    • '; + } + + echo '
    '; + + + } else if ( $type == 'text-box' ) { + + if( $oneBox->get('show-title') ) { + echo '

    ' . ff_wp_kses( $oneBox->get('title') ) . '

    '; + echo '
    '; + } + + echo '

    '; + echo ff_wp_kses( $oneBox->get('description-text') ); + echo '

    '; + + } + + echo '
    '; + } + ?> +
    + diff --git a/wp-content/themes/milo/templates/onePage/sections/pricing-tables/portfolio-single-description.jpg b/wp-content/themes/milo/templates/onePage/sections/pricing-tables/portfolio-single-description.jpg new file mode 100644 index 0000000..1cfe755 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/pricing-tables/portfolio-single-description.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/pricing-tables/pricing-tables-section.php b/wp-content/themes/milo/templates/onePage/sections/pricing-tables/pricing-tables-section.php new file mode 100644 index 0000000..f39e3a3 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/pricing-tables/pricing-tables-section.php @@ -0,0 +1,76 @@ +startSection('pricing-tables', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Pricing Tables') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('pricing-tables')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options('section-settings-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Pricing table'); + $s->startSection('tables', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-table', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One table'); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START,'', 'Bootstrap Columns Options and animations' ); + + ff_load_section_options( 'bootstrap-columns-block', $s, array('sm'=>4)); + + ff_load_section_options('animation-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START,'', 'Header' ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Starter'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'price', 'Price', '25'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'currency', 'Currency', '$'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'time-period', 'Time period', 'per month'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START,'', 'Content' ); + $s->startSection('rows', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-row', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One row'); + $s->addOption(ffOneOption::TYPE_TEXT, 'item', 'Item', '2 Domain Names'); + $s->endSection(); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START,'', 'Button' ); + + $s->addElement(ffOneElement::TYPE_NEW_LINE); + ff_load_section_options( 'button-block', $s ); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# PRICING tables END +################################################################################ diff --git a/wp-content/themes/milo/templates/onePage/sections/pricing-tables/pricing-tables.jpg b/wp-content/themes/milo/templates/onePage/sections/pricing-tables/pricing-tables.jpg new file mode 100644 index 0000000..d5e9ccd Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/pricing-tables/pricing-tables.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/pricing-tables/pricing-tables.php b/wp-content/themes/milo/templates/onePage/sections/pricing-tables/pricing-tables.php new file mode 100644 index 0000000..647954e --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/pricing-tables/pricing-tables.php @@ -0,0 +1,47 @@ + + +
    + get('tables') as $table) + { + $bootstrapClass = ff_load_section_printer('bootstrap-columns', $table->get('bootstrap-columns') ); + $animationClass = ff_load_section_printer('animation', $table ); + ?> +
    + +
    + +
    + + +

    printText('title'); ?>

    +

    printText('currency'); + ?>printText('price'); + ?>printText('time-period'); + ?>

    + +
    + +
      + get('rows') as $row) + { + ?> +
    • printText('item');?>
    • + +
    + + + +
    + +
    + +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/project-box/project-box-section.php b/wp-content/themes/milo/templates/onePage/sections/project-box/project-box-section.php new file mode 100644 index 0000000..87894e4 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/project-box/project-box-section.php @@ -0,0 +1,35 @@ +startSection('project-box', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Project box') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('project-box')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'General'); + $s->addOption( ffOneOption::TYPE_IMAGE, 'image', 'Main section image'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Content'); + $s->startSection('content'); + ff_load_section_options('heading-content-block', $s); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# PRICING MODELS END +################################################################################ diff --git a/wp-content/themes/milo/templates/onePage/sections/project-box/project-box.jpg b/wp-content/themes/milo/templates/onePage/sections/project-box/project-box.jpg new file mode 100644 index 0000000..6bdabe5 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/project-box/project-box.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/project-box/project-box.php b/wp-content/themes/milo/templates/onePage/sections/project-box/project-box.php new file mode 100644 index 0000000..71db198 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/project-box/project-box.php @@ -0,0 +1,20 @@ +getImage('image')->url; + if( !empty($backgroundImage) ){ + $backgroundImageString = ' style="background-image: url(' . esc_url( $backgroundImage ) . ');"'; + $extra_class = ' parallax'; + }else{ + $backgroundImageString = ''; + $extra_class = ''; + } +?> + +
    +
    + +
    > + get('content')); ?> +
    + +
    +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/project-slider/project-slider-section.php b/wp-content/themes/milo/templates/onePage/sections/project-slider/project-slider-section.php new file mode 100644 index 0000000..952e711 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/project-slider/project-slider-section.php @@ -0,0 +1,57 @@ +startSection('project-slider', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Project slider') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('project-slider')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + $s->startSection('section-settings-navigation'); + ff_load_section_options( 'section-settings-block', $s, array('title'=>'Section Options Navigation')); + $s->endSection(); + + $s->startSection('section-settings-slider'); + ff_load_section_options( 'section-settings-block', $s, array('title'=>'Section Options Slider')); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Dimensions'); + $s->addOption(ffOneOption::TYPE_TEXT, 'slider-height', 'Slider Height (in px)', 765); + $s->addElement( ffOneElement::TYPE_DESCRIPTION, '', 'Default value is 765 pixels'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Projects'); + $s->startSection('projects', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-project', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One project'); + + $s->addOption(ffOneOption::TYPE_TEXT, 'project-name', 'Project Menu (navigation) name', 'Projects'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->addOption(ffOneOption::TYPE_IMAGE, 'project-image', 'Project Image (as background)', ''); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + ff_load_section_options( 'heading-content-block', $s ); + + + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# PROJECT SLIDER END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/project-slider/project-slider.jpg b/wp-content/themes/milo/templates/onePage/sections/project-slider/project-slider.jpg new file mode 100644 index 0000000..9d62172 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/project-slider/project-slider.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/project-slider/project-slider.php b/wp-content/themes/milo/templates/onePage/sections/project-slider/project-slider.php new file mode 100644 index 0000000..714d382 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/project-slider/project-slider.php @@ -0,0 +1,35 @@ +
    + get('section-settings-navigation section-settings')); ?> +
    +
    +
    + get('projects') as $key => $oneProject ) { + $projectName = $oneProject->get('project-name'); + echo ''.ff_wp_kses( $projectName ).''; + } + ?> +
    +
    +
    + get('section-settings-navigation section-settings')); ?> +
    + +get('slider-height'); ?> + +
    +
      + get('projects') as $oneProject ) { + $imageNonResized = $oneProject->getImage('project-image')->url; + $imageUrlResized = fImg::resize( $imageNonResized, 1868, $sliderHeight, true); + echo '
    • '; + echo ''; + echo '
      '; + ff_load_section_printer('heading-content', $oneProject ); + echo '
      '; + echo '
    • '; + } + ?> +
    +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/related-services/related-services-section.php b/wp-content/themes/milo/templates/onePage/sections/related-services/related-services-section.php new file mode 100644 index 0000000..4d2ad07 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/related-services/related-services-section.php @@ -0,0 +1,45 @@ +startSection('related-services', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Related services') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('related-services')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'services'); + $s->startSection('services', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-service', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One service'); + + ff_load_section_options('bootstrap-columns-block', $s, array('sm'=>4) ); + + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Retina Ready'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'link', 'Link', ''); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'subtitle', 'Subtitle', 'Nice & Clean'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'description', 'Description', 'Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa.'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# RELATED SERVICES END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/related-services/related-services.jpg b/wp-content/themes/milo/templates/onePage/sections/related-services/related-services.jpg new file mode 100644 index 0000000..c5c5fee Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/related-services/related-services.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/related-services/related-services.php b/wp-content/themes/milo/templates/onePage/sections/related-services/related-services.php new file mode 100644 index 0000000..27da2dd --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/related-services/related-services.php @@ -0,0 +1,33 @@ + +
    + get('services') as $service){ + + $serviceClass = ff_load_section_printer( 'bootstrap-columns', $service->get('bootstrap-columns') ); + ?> +
    + +
    + +
    + +

    + printText('title'); ?> + get('subtitle') == ''){ ?> + printText('subtitle'); ?> + +

    + + get('description') == ''){ ?> +

    printText('description'); ?>

    + + +
    + +
    + +
    + +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/revslider/revslider-section.php b/wp-content/themes/milo/templates/onePage/sections/revslider/revslider-section.php new file mode 100644 index 0000000..4ab1858 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/revslider/revslider-section.php @@ -0,0 +1,37 @@ +startSection('revslider', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Revolution Slider') + ->addParam('hide-default', true) + + ->addParam('advanced-picker-menu-title', 'Header') + ->addParam('advanced-picker-menu-id', 'header') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('revslider')); + + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + // ff_load_section_options( '/templates/onePage/blocks/section-background-block.php', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Slider Revolution'); + + $s->startSection('revslider'); + + $s->addOption(ffOneOption::TYPE_REVOLUTION_SLIDER, 'id', '', ''); + + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->addElement( ffOneElement::TYPE_TABLE_END ); + +$s->endSection(); +################################################################################ +# REVOLUTION SLIDER END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/revslider/revslider.jpg b/wp-content/themes/milo/templates/onePage/sections/revslider/revslider.jpg new file mode 100644 index 0000000..73c494e Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/revslider/revslider.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/revslider/revslider.php b/wp-content/themes/milo/templates/onePage/sections/revslider/revslider.php new file mode 100644 index 0000000..3e27fab --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/revslider/revslider.php @@ -0,0 +1,16 @@ +
    +get('revslider'); + putRevSlider( $revslider->get('id') ); +}else{ + ?> +
    +

    We have a problem here

    +

    You used Revolution Slider section, but you have not installed this plugin: Function putRevSlider() does not work!

    +
    +
    \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/services-with-big-numbers/services-with-big-numbers-section.php b/wp-content/themes/milo/templates/onePage/sections/services-with-big-numbers/services-with-big-numbers-section.php new file mode 100644 index 0000000..7fb6ba1 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/services-with-big-numbers/services-with-big-numbers-section.php @@ -0,0 +1,55 @@ +startSection('services-with-big-numbers', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Services with big numbers') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('services-with-big-numbers')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options('section-settings-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Numbered services'); + $s->startSection('numbered-services', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-service', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One service'); + + ff_load_section_options('bootstrap-columns-block', $s, array('sm'=>4)); + + ff_load_section_options('animation-block', $s ); + + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Discuss Ideas'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption( ffOneOption::TYPE_TEXT, 'url', 'URL', '#'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption(ffOneOption::TYPE_SELECT, 'target', 'Open in', '_blank') + ->addSelectValue('Same Window', '') + ->addSelectValue('New Window', '_blank'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'subtitle', 'Subtitle', 'Designing in Photoshop'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'description', 'Description', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# SERVICE WITH BIG NUMBERS END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/services-with-big-numbers/services-with-big-numbers.jpg b/wp-content/themes/milo/templates/onePage/sections/services-with-big-numbers/services-with-big-numbers.jpg new file mode 100644 index 0000000..80dfe72 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/services-with-big-numbers/services-with-big-numbers.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/services-with-big-numbers/services-with-big-numbers.php b/wp-content/themes/milo/templates/onePage/sections/services-with-big-numbers/services-with-big-numbers.php new file mode 100644 index 0000000..4521332 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/services-with-big-numbers/services-with-big-numbers.php @@ -0,0 +1,53 @@ + +
    + + get('numbered-services') as $service){ + $cnt++; + + $bootstrapClass = ff_load_section_printer('bootstrap-columns', $service->get('bootstrap-columns')); + $animationClass = ff_load_section_printer('animation', $service ); + ?> +
    + +
    + +

    .

    + +

    + get('url') ){ + echo 'get('target') ){ + echo ' target="_blank"'; + } + + echo '>'; + } + $service->printText('title'); + if( $service->get('url') ){ + echo ''; + } + ?> + printText('subtitle'); ?> +

    + +
    + +
    + +

    printText('description'); ?>

    + +
    + +
    + +
    + +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/services-without-numbers/services-without-numbers-section.php b/wp-content/themes/milo/templates/onePage/sections/services-without-numbers/services-without-numbers-section.php new file mode 100644 index 0000000..a35ab62 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/services-without-numbers/services-without-numbers-section.php @@ -0,0 +1,49 @@ +startSection('services-without-numbers', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Services without numbers') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('services-without-numbers')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Numbered services'); + $s->startSection('numbered-services', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-service', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One service'); + + ff_load_section_options( 'bootstrap-columns-block', $s, array('sm'=>4)); + + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Retina Ready'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->addOption(ffOneOption::TYPE_TEXT, 'link', 'Link', '#'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->addOption(ffOneOption::TYPE_TEXT, 'subtitle', 'Subtitle', 'Nice & Clean'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'description', 'Description', 'Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam remaperiam, eaque ipsa.'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# SERVICE WITHOUT NUMBERS END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/services-without-numbers/services-without-numbers.jpg b/wp-content/themes/milo/templates/onePage/sections/services-without-numbers/services-without-numbers.jpg new file mode 100644 index 0000000..da6aedb Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/services-without-numbers/services-without-numbers.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/services-without-numbers/services-without-numbers.php b/wp-content/themes/milo/templates/onePage/sections/services-without-numbers/services-without-numbers.php new file mode 100644 index 0000000..7452998 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/services-without-numbers/services-without-numbers.php @@ -0,0 +1,32 @@ +
    + get('numbered-services') as $service){ + + + $bootstrapClasses = ff_load_section_printer( + 'bootstrap-columns', + $service->get('bootstrap-columns') + ); + ?> +
    + +
    + +
    + +

    + printText('title'); ?> + printText('subtitle'); ?> +

    + +

    printText('description'); ?>

    + +
    + +
    + +
    + +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/steps/steps-section.php b/wp-content/themes/milo/templates/onePage/sections/steps/steps-section.php new file mode 100644 index 0000000..02fedbc --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/steps/steps-section.php @@ -0,0 +1,41 @@ +startSection('steps', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Steps') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('steps')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options('section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Steps'); + $s->startSection('steps', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-step', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One step'); + $s->addOption(ffOneOption::TYPE_ICON, 'icon', 'Icon', ''); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'description', 'Description', 'Land project'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# STEPS END +################################################################################ + + diff --git a/wp-content/themes/milo/templates/onePage/sections/steps/steps.jpg b/wp-content/themes/milo/templates/onePage/sections/steps/steps.jpg new file mode 100644 index 0000000..07790d3 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/steps/steps.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/steps/steps.php b/wp-content/themes/milo/templates/onePage/sections/steps/steps.php new file mode 100644 index 0000000..c98d67d --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/steps/steps.php @@ -0,0 +1,31 @@ +get('steps'); + + $numberOfSteps = $steps->getNumberOfElements(); + +?> + +
    +
    + +
    + + get('steps') as $step) { + ?> +
    + + + +
    +
    printText('description')?>
    +
    + +
    + +
    + +
    +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/team/team-section.php b/wp-content/themes/milo/templates/onePage/sections/team/team-section.php new file mode 100644 index 0000000..24d15ce --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/team/team-section.php @@ -0,0 +1,47 @@ +startSection('team', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Team') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('team')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options('section-settings-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Person'); + + $s->startSection('persons', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-person', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One person'); + ff_load_section_options('bootstrap-columns-block', $s, array('sm'=>4 ) ); + + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'name', 'Name', 'Alex Andrews'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'position', 'Position', 'founder'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_IMAGE, 'image', 'Photo', ''); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'social', 'Social links', ''); + $s->endSection(); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# TEAM END +################################################################################ diff --git a/wp-content/themes/milo/templates/onePage/sections/team/team.jpg b/wp-content/themes/milo/templates/onePage/sections/team/team.jpg new file mode 100644 index 0000000..8308d36 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/team/team.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/team/team.php b/wp-content/themes/milo/templates/onePage/sections/team/team.php new file mode 100644 index 0000000..8232993 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/team/team.php @@ -0,0 +1,54 @@ + +
    + get('persons'); + foreach ($query->get('persons') as $person) + { + $image = $person->getImage('image'); + $imageUrlResized = fImg::resize($image->url, 360, 425, true); + $position = $person->get('position'); + + $boostrapClass = ff_load_section_printer('bootstrap-columns', $person->get('bootstrap-columns') ); + ?> +
    + +
    + +
    + + + + + +
    + +
    + +

    printText('name'); ?>

    +
    printText('position'); ?>
    + +
    + +
    + +
    + +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/testimonials/testimonials-section.php b/wp-content/themes/milo/templates/onePage/sections/testimonials/testimonials-section.php new file mode 100644 index 0000000..a8362af --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/testimonials/testimonials-section.php @@ -0,0 +1,49 @@ +startSection('testimonials', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Testimonials') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('testimonials')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + ff_load_section_options( 'section-settings-block', $s ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Settings') + ->addParam('section-name', 'Settings'); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'What people say'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_SELECT, 'type', 'Show on bottom ', '') + ->addSelectValue('Images', '') + ->addSelectValue('Images in Circle', 'img-circle') + ->addSelectValue('Dots', 'dots'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Testimonials'); + $s->startSection('testimonials', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-testimonial', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One testimonial'); + $s->addOption(ffOneOption::TYPE_TEXTAREA, 'text', 'Text', 'Quisque neque orci, dictum eu egestas eget, porta vel dolor. Etiam vel nunc pulvinar, suscipit urna sit amet, efficitur nibh. Nulla convallis ut lectus a tempor. Nullam tincidunt pulvinar sodales. Nunc sed erat et risus luctus sollicitudin.'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'author', 'Author', 'John Smith, Crazytown inc.'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_IMAGE, 'photo', 'Photo', ''); + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# TESTIMONIAL END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/testimonials/testimonials.jpg b/wp-content/themes/milo/templates/onePage/sections/testimonials/testimonials.jpg new file mode 100644 index 0000000..cb964ce Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/testimonials/testimonials.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/testimonials/testimonials.php b/wp-content/themes/milo/templates/onePage/sections/testimonials/testimonials.php new file mode 100644 index 0000000..a2598b9 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/testimonials/testimonials.php @@ -0,0 +1,78 @@ + +
    +
    + +
    + + +

    printText('title'); ?>

    + +
    + +
    "> +
      + get('testimonials') as $testimonial){ + $photo = $testimonial->getImage('photo'); + $imageUrlResized = fImg::resize($photo->url, 64, 64, true); + ?> +
    • +
      + +
      +

      printText('text'); ?>

      +
      + +
      printText('author'); ?>
      + +
      +
    • + +
    + +
    + get('testimonials')->getNumberOfElements(); + + foreach ($query->get('testimonials') as $key => $testimonial){ + $photo = $testimonial->getImage('photo'); + $imageUrlResized = fImg::resize($photo->url, 64, 64, true); + + + echo ''; + + if( $query->get('type') != 'dots' && $numberOfSlides > 1) { + $slideCssClass = ''; + if( $query->get('type') == 'img-circle' ) { + $slideCssClass = 'class="img-circle"'; + } + + + + echo ''; + + + } + + + echo ''; + + + ?> + + + +
    + get('type') ) || ( 'img-circle' == $query->get('type') ) ) { ?> + + + +
    + +
    +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/timeline/timeline-section.php b/wp-content/themes/milo/templates/onePage/sections/timeline/timeline-section.php new file mode 100644 index 0000000..91cda9d --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/timeline/timeline-section.php @@ -0,0 +1,48 @@ +startSection('timeline', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Timeline') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('timeline')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + + ff_load_section_options( 'section-settings-block', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Timeline'); + $s->startSection('timeline-items', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-timeline-item', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One timeline item'); + $s->addOption(ffOneOption::TYPE_TEXT, 'date', 'Date', 'September 2014'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Best website award'); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->addOption(ffOneOption::TYPE_TEXT, 'link', 'Link', ''); + $s->addElement(ffOneElement::TYPE_NEW_LINE); + $s->startSection('date-items', ffOneSection::TYPE_REPEATABLE_VARIABLE); + $s->startSection('one-date-item', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'One date item'); + $s->addOption(ffOneOption::TYPE_TEXT, 'title', 'Title', 'Best original website 2014'); + $s->endSection(); + $s->endSection(); + $s->endSection(); + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# GENERAL SERVICE END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/timeline/timeline.jpg b/wp-content/themes/milo/templates/onePage/sections/timeline/timeline.jpg new file mode 100644 index 0000000..ae9adc5 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/timeline/timeline.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/timeline/timeline.php b/wp-content/themes/milo/templates/onePage/sections/timeline/timeline.php new file mode 100644 index 0000000..556ef5d --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/timeline/timeline.php @@ -0,0 +1,35 @@ + + +
    +
    + +
    + get('timeline-items') as $timelineItem) + { + ?> +
    + +

    printText('date'); ?>

    +

    printText('title'); ?>

    + +

    + get('date-items') as $dateItem) + { + $dateItem->printText('title'); + ?> +
    + + +

    + +
    + +
    +
    +
    diff --git a/wp-content/themes/milo/templates/onePage/sections/title-and-breadcrumbs/title-and-breadcrumbs-section.php b/wp-content/themes/milo/templates/onePage/sections/title-and-breadcrumbs/title-and-breadcrumbs-section.php new file mode 100644 index 0000000..121da7f --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/title-and-breadcrumbs/title-and-breadcrumbs-section.php @@ -0,0 +1,96 @@ +startSection('title-and-breadcrumbs', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Title and Breadcrumbs') + ->addParam('hide-default', true) + ->addParam('advanced-picker-menu-title', 'Header') + ->addParam('advanced-picker-menu-id', 'header') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('title-and-breadcrumbs')); + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + // ff_load_section_options( 'section-settings-block', $s ); + $s->startSection('background'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Color type'); + $s->addOption( ffOneOption::TYPE_SELECT, 'color-type', '', '') + ->addSelectValue('Light BG / Dark text', '') + ->addSelectValue('Dark BG / Light text, version #1', 'dark-1' ) + ->addSelectValue('Dark BG / Light text, version #2', 'dark-2' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_SELECT, 'margin-bottom', 'Margin bottom (px)', 'default') + ->addSelectValue('Default', 'default') + ->addSelectValue('0', '0') + ->addSelectNumberRange(5, 250, 5) + ; + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Background'); + ff_load_section_options( 'section-background-block', $s); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Title'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show-title', 'Show title', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->startSection('translation'); + + $s->addOption( ffOneOption::TYPE_TEXT, 'title-front-page', 'Front Page', get_bloginfo('name') ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'title-posts-page', 'Posts Page', 'Blog' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'title-404', '404', '404 Not Found' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'title-post', 'Post', '%s' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'title-category', 'Category', 'Category %s' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'title-tag', 'Tag', 'Tagged as %s' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'title-author', 'Author', 'Author %s' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'title-search', 'Search', 'Search results for: %s' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'title-day', 'Day', 'Day %s' ); + $s->addOption( ffOneOption::TYPE_TEXT, 'title-day-format', 'Day Format', 'F j, Y' ); + $s->addElement( ffOneElement::TYPE_DESCRIPTION, '', 'For right date format please see Date PHP function manual.' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'title-month', 'Month', 'Month %s' ); + $s->addOption( ffOneOption::TYPE_TEXT, 'title-month-format', 'Month Format', 'F Y' ); + $s->addElement( ffOneElement::TYPE_DESCRIPTION, '', 'For right date format please see Date PHP function manual.' ); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + $s->addOption( ffOneOption::TYPE_TEXT, 'title-year', 'Year', 'Year %s' ); + $s->addOption( ffOneOption::TYPE_TEXT, 'title-year-format', 'Year Format', 'Y' ); + $s->addElement( ffOneElement::TYPE_DESCRIPTION, '', 'For right date format please see Date PHP function manual.' ); + + $s->endSection(); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->startSection('breadcrumbs'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Breadcrumbs'); + $s->addOption( ffOneOption::TYPE_CHECKBOX, 'show', 'Show', 1); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption( ffOneOption::TYPE_TEXT, 'homepage', 'Text Homepage', 'Home'); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); + +################################################################################ +# GENERAL SERVICE END +################################################################################ \ No newline at end of file diff --git a/wp-content/themes/milo/templates/onePage/sections/title-and-breadcrumbs/title-and-breadcrumbs.jpg b/wp-content/themes/milo/templates/onePage/sections/title-and-breadcrumbs/title-and-breadcrumbs.jpg new file mode 100644 index 0000000..c3cce27 Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/title-and-breadcrumbs/title-and-breadcrumbs.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/title-and-breadcrumbs/title-and-breadcrumbs.php b/wp-content/themes/milo/templates/onePage/sections/title-and-breadcrumbs/title-and-breadcrumbs.php new file mode 100644 index 0000000..b855789 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/title-and-breadcrumbs/title-and-breadcrumbs.php @@ -0,0 +1,67 @@ + diff --git a/wp-content/themes/milo/templates/onePage/sections/twitter/twitter-section.php b/wp-content/themes/milo/templates/onePage/sections/twitter/twitter-section.php new file mode 100644 index 0000000..79331e8 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/twitter/twitter-section.php @@ -0,0 +1,50 @@ +startSection('twitter', ffOneSection::TYPE_REPEATABLE_VARIATION) + ->addParam('section-name', 'Twitter') + ->addParam('hide-default', true) + + ->addParam('advanced-picker-menu-title', 'Common') + ->addParam('advanced-picker-menu-id', 'common') + ->addParam('advanced-picker-section-image', ff_get_section_preview_image_url('twitter')); + + + $s->addElement( ffOneElement::TYPE_TABLE_START ); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Preview'); + $s->addElement(ffOneElement::TYPE_HTML,'',''); + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); +// + ff_load_section_options( 'section-settings-block', $s); +// +// ff_load_section_options( '/templates/onePage/blocks/section-background-block.php', $s); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_START, '', 'Twitter'); + + $s->startSection('fw_twitter'); + $s->addOption(ffOneOption::TYPE_TEXT, 'username', 'Username', '_freshface'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_TEXT, 'number-of-tweets', 'Number of Tweets', '5'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_TEXT, 'caching-time-in-minutes', 'Caching time in minutes', '60'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + + // $this->_auth['consumerKey'], $this->_auth['consumerSecret'], $this->_auth['accessToken'], $this->_auth['accessTokenSecret'] + + $s->addOption(ffOneOption::TYPE_TEXT, 'consumer-key', 'Consumer Key'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_TEXT, 'consumer-secret', 'Consumer Secret'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_TEXT, 'access-token', 'Access Token'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->addOption(ffOneOption::TYPE_TEXT, 'access-token-secret', 'Access Token Secret'); + $s->addElement( ffOneElement::TYPE_NEW_LINE ); + $s->endSection(); + + $s->addElement( ffOneElement::TYPE_TABLE_DATA_END ); + + $s->addElement( ffOneElement::TYPE_TABLE_END ); +$s->endSection(); diff --git a/wp-content/themes/milo/templates/onePage/sections/twitter/twitter.jpg b/wp-content/themes/milo/templates/onePage/sections/twitter/twitter.jpg new file mode 100644 index 0000000..27f275a Binary files /dev/null and b/wp-content/themes/milo/templates/onePage/sections/twitter/twitter.jpg differ diff --git a/wp-content/themes/milo/templates/onePage/sections/twitter/twitter.php b/wp-content/themes/milo/templates/onePage/sections/twitter/twitter.php new file mode 100644 index 0000000..4627111 --- /dev/null +++ b/wp-content/themes/milo/templates/onePage/sections/twitter/twitter.php @@ -0,0 +1,40 @@ +getLibManager()->createTwitterFeeder(); + ffContainer::getInstance()->getClassLoader()->loadClass('ffOptionsHolder_Twitter'); + + $tweetsCollection = ($twitterFeeder->getTwitterFeed( $query->get('fw_twitter') )); + +?> + + +
    +
    + +
    +
    +
      +

      '; + + echo $oneTweet->textWithLinks; + + echo '

      '; + } + ?> +
    +
    + +
    + +
    +
    + +
    + + +
    + +
    +
    diff --git a/wp-content/themes/milo/vc_templates/vc_tab.php b/wp-content/themes/milo/vc_templates/vc_tab.php new file mode 100644 index 0000000..8fa010c --- /dev/null +++ b/wp-content/themes/milo/vc_templates/vc_tab.php @@ -0,0 +1,14 @@ +predefined_atts, $atts ) ); + +wp_enqueue_script( 'jquery_ui_tabs_rotate' ); + +// $css_class = apply_filters( VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, 'wpb_tab ui-tabs-panel wpb_ui-tabs-hide vc_clearfix', $this->settings['base'], $atts ); +$css_class = apply_filters( VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, 'tab-pane fade', $this->settings['base'], $atts ); +$output .= "\n\t\t\t" . '
    '; +$output .= ( $content == '' || $content == ' ' ) ? __( "Empty tab. Edit page to add content here.", "js_composer" ) : "\n\t\t\t\t" . wpb_js_remove_wpautop( $content ); +$output .= "\n\t\t\t" . '
    ' . $this->endBlockComment( '.wpb_tab' ); + +echo $output; \ No newline at end of file diff --git a/wp-content/themes/milo/vc_templates/vc_tabs.php b/wp-content/themes/milo/vc_templates/vc_tabs.php new file mode 100644 index 0000000..25e99ba --- /dev/null +++ b/wp-content/themes/milo/vc_templates/vc_tabs.php @@ -0,0 +1,58 @@ + '', + 'interval' => 0, + 'el_class' => '' +), $atts ) ); + +wp_enqueue_script( 'jquery-ui-tabs' ); + +$el_class = $this->getExtraClass( $el_class ); + +$element = 'nav-tabs'; +if ( 'vc_tour' == $this->shortcode ) { + $element = 'vertical-tabs'; +} + +preg_match_all( '/vc_tab([^\]]+)/i', $content, $matches, PREG_OFFSET_CAPTURE ); +$tab_titles = array(); + +if ( isset( $matches[1] ) ) { + $tab_titles = $matches[1]; +} +$tabs_nav = ''; + +$tabs_nav .= '' . "\n"; + +if( 'vertical-tabs' == $element ) { + $output .= '
    '; +}else{ + $output .= '
    '; +} +$output .= wpb_widget_title( array( 'title' => $title, 'extraclass' => $element . '_heading' ) ); +$output .= $tabs_nav; +$output .= '
    '; +$output .= wpb_js_remove_wpautop( $content ); +$output .= '
    ' . $this->endBlockComment( '.wpb_wrapper' ); +$output .= '
    ' . $this->endBlockComment( $element ); + +echo $output; + + +