# HG changeset patch # User ymh # Date 1575456006 -3600 # Node ID 505fe5249d9ca95305ad60ee96fe27fd6da15682 add foundations for pharmakon (bedrock + deploy) diff -r 000000000000 -r 505fe5249d9c .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,66 @@ +# Application +src/web/app/languages/* +src/web/app/plugins/* +src/web/app/mu-plugins/*/ +src/web/app/upgrade +src/web/app/uploads/* + +# WordPress +src/web/wp +src/web/.htaccess + +# WP-CLI +db-sync +sql-dump-*.sql + +# Dotenv +.env + +# personal config +.ruby-version +Gemfile* +.vscode + +# Vendor (e.g. Composer) +src/vendor/* + +# Node Package Manager +node_modules + +# Certs +certs/ + +# Logs +logs/ + +# Custom +.DS_Store + +# Exclude standard wordpress files downloaded from Docker. +src/index.php +src/license.txt +src/readme.html +src/wp-activate.php +src/wp-admin +src/wp-blog-header.php +src/wp-comments-post.php +src/wp-config-sample.php +src/wp-config.php +src/wp-content +src/wp-cron.php +src/wp-includes +src/wp-links-opml.php +src/wp-load.php +src/wp-login.php +src/wp-mail.php +src/wp-settings.php +src/wp-signup.php +src/wp-trackback.php +src/xmlrpc.php + +# remove sensible info from deploy + +deploy/.vagrant +deploy/host_vars/* +deploy/group_vars/* +deploy/hosts/* diff -r 000000000000 -r 505fe5249d9c LICENSE.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LICENSE.md Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,517 @@ + +CeCILL-C FREE SOFTWARE LICENSE AGREEMENT + + + Notice + +This Agreement is a Free Software license agreement that is the result +of discussions between its authors in order to ensure compliance with +the two main principles guiding its drafting: + + * firstly, compliance with the principles governing the distribution + of Free Software: access to source code, broad rights granted to + users, + * secondly, the election of a governing law, French law, with which + it is conformant, both as regards the law of torts and + intellectual property law, and the protection that it offers to + both authors and holders of the economic rights over software. + +The authors of the CeCILL-C (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre]) +license are: + +Commissariat à l'Energie Atomique - CEA, a public scientific, technical +and industrial research establishment, having its principal place of +business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France. + +Centre National de la Recherche Scientifique - CNRS, a public scientific +and technological establishment, having its principal place of business +at 3 rue Michel-Ange, 75794 Paris cedex 16, France. + +Institut National de Recherche en Informatique et en Automatique - +INRIA, a public scientific and technological establishment, having its +principal place of business at Domaine de Voluceau, Rocquencourt, BP +105, 78153 Le Chesnay cedex, France. + + + Preamble + +The purpose of this Free Software license agreement is to grant users +the right to modify and re-use the software governed by this license. + +The exercising of this right is conditional upon the obligation to make +available to the community the modifications made to the source code of +the software so as to contribute to its evolution. + +In consideration of access to the source code and the rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors only have limited liability. + +In this respect, the risks associated with loading, using, modifying +and/or developing or reproducing the software by the user are brought to +the user's attention, given its Free Software status, which may make it +complicated to use, with the result that its use is reserved for +developers and experienced professionals having in-depth computer +knowledge. Users are therefore encouraged to load and test the +suitability of the software as regards their requirements in conditions +enabling the security of their systems and/or data to be ensured and, +more generally, to use and operate it in the same conditions of +security. This Agreement may be freely reproduced and published, +provided it is not altered, and that no provisions are either added or +removed herefrom. + +This Agreement may apply to any or all software for which the holder of +the economic rights decides to submit the use thereof to its provisions. + + + Article 1 - DEFINITIONS + +For the purpose of this Agreement, when the following expressions +commence with a capital letter, they shall have the following meaning: + +Agreement: means this license agreement, and its possible subsequent +versions and annexes. + +Software: means the software in its Object Code and/or Source Code form +and, where applicable, its documentation, "as is" when the Licensee +accepts the Agreement. + +Initial Software: means the Software in its Source Code and possibly its +Object Code form and, where applicable, its documentation, "as is" when +it is first distributed under the terms and conditions of the Agreement. + +Modified Software: means the Software modified by at least one +Integrated Contribution. + +Source Code: means all the Software's instructions and program lines to +which access is required so as to modify the Software. + +Object Code: means the binary files originating from the compilation of +the Source Code. + +Holder: means the holder(s) of the economic rights over the Initial +Software. + +Licensee: means the Software user(s) having accepted the Agreement. + +Contributor: means a Licensee having made at least one Integrated +Contribution. + +Licensor: means the Holder, or any other individual or legal entity, who +distributes the Software under the Agreement. + +Integrated Contribution: means any or all modifications, corrections, +translations, adaptations and/or new functions integrated into the +Source Code by any or all Contributors. + +Related Module: means a set of sources files including their +documentation that, without modification to the Source Code, enables +supplementary functions or services in addition to those offered by the +Software. + +Derivative Software: means any combination of the Software, modified or +not, and of a Related Module. + +Parties: mean both the Licensee and the Licensor. + +These expressions may be used both in singular and plural form. + + + Article 2 - PURPOSE + +The purpose of the Agreement is the grant by the Licensor to the +Licensee of a non-exclusive, transferable and worldwide license for the +Software as set forth in Article 5 hereinafter for the whole term of the +protection granted by the rights over said Software. + + + Article 3 - ACCEPTANCE + +3.1 The Licensee shall be deemed as having accepted the terms and +conditions of this Agreement upon the occurrence of the first of the +following events: + + * (i) loading the Software by any or all means, notably, by + downloading from a remote server, or by loading from a physical + medium; + * (ii) the first time the Licensee exercises any of the rights + granted hereunder. + +3.2 One copy of the Agreement, containing a notice relating to the +characteristics of the Software, to the limited warranty, and to the +fact that its use is restricted to experienced users has been provided +to the Licensee prior to its acceptance as set forth in Article 3.1 +hereinabove, and the Licensee hereby acknowledges that it has read and +understood it. + + + Article 4 - EFFECTIVE DATE AND TERM + + + 4.1 EFFECTIVE DATE + +The Agreement shall become effective on the date when it is accepted by +the Licensee as set forth in Article 3.1. + + + 4.2 TERM + +The Agreement shall remain in force for the entire legal term of +protection of the economic rights over the Software. + + + Article 5 - SCOPE OF RIGHTS GRANTED + +The Licensor hereby grants to the Licensee, who accepts, the following +rights over the Software for any or all use, and for the term of the +Agreement, on the basis of the terms and conditions set forth hereinafter. + +Besides, if the Licensor owns or comes to own one or more patents +protecting all or part of the functions of the Software or of its +components, the Licensor undertakes not to enforce the rights granted by +these patents against successive Licensees using, exploiting or +modifying the Software. If these patents are transferred, the Licensor +undertakes to have the transferees subscribe to the obligations set +forth in this paragraph. + + + 5.1 RIGHT OF USE + +The Licensee is authorized to use the Software, without any limitation +as to its fields of application, with it being hereinafter specified +that this comprises: + + 1. permanent or temporary reproduction of all or part of the Software + by any or all means and in any or all form. + + 2. loading, displaying, running, or storing the Software on any or + all medium. + + 3. entitlement to observe, study or test its operation so as to + determine the ideas and principles behind any or all constituent + elements of said Software. This shall apply when the Licensee + carries out any or all loading, displaying, running, transmission + or storage operation as regards the Software, that it is entitled + to carry out hereunder. + + + 5.2 RIGHT OF MODIFICATION + +The right of modification includes the right to translate, adapt, +arrange, or make any or all modifications to the Software, and the right +to reproduce the resulting software. It includes, in particular, the +right to create a Derivative Software. + +The Licensee is authorized to make any or all modification to the +Software provided that it includes an explicit notice that it is the +author of said modification and indicates the date of the creation thereof. + + + 5.3 RIGHT OF DISTRIBUTION + +In particular, the right of distribution includes the right to publish, +transmit and communicate the Software to the general public on any or +all medium, and by any or all means, and the right to market, either in +consideration of a fee, or free of charge, one or more copies of the +Software by any means. + +The Licensee is further authorized to distribute copies of the modified +or unmodified Software to third parties according to the terms and +conditions set forth hereinafter. + + + 5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION + +The Licensee is authorized to distribute true copies of the Software in +Source Code or Object Code form, provided that said distribution +complies with all the provisions of the Agreement and is accompanied by: + + 1. a copy of the Agreement, + + 2. a notice relating to the limitation of both the Licensor's + warranty and liability as set forth in Articles 8 and 9, + +and that, in the event that only the Object Code of the Software is +redistributed, the Licensee allows effective access to the full Source +Code of the Software at a minimum during the entire period of its +distribution of the Software, it being understood that the additional +cost of acquiring the Source Code shall not exceed the cost of +transferring the data. + + + 5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE + +When the Licensee makes an Integrated Contribution to the Software, the +terms and conditions for the distribution of the resulting Modified +Software become subject to all the provisions of this Agreement. + +The Licensee is authorized to distribute the Modified Software, in +source code or object code form, provided that said distribution +complies with all the provisions of the Agreement and is accompanied by: + + 1. a copy of the Agreement, + + 2. a notice relating to the limitation of both the Licensor's + warranty and liability as set forth in Articles 8 and 9, + +and that, in the event that only the object code of the Modified +Software is redistributed, the Licensee allows effective access to the +full source code of the Modified Software at a minimum during the entire +period of its distribution of the Modified Software, it being understood +that the additional cost of acquiring the source code shall not exceed +the cost of transferring the data. + + + 5.3.3 DISTRIBUTION OF DERIVATIVE SOFTWARE + +When the Licensee creates Derivative Software, this Derivative Software +may be distributed under a license agreement other than this Agreement, +subject to compliance with the requirement to include a notice +concerning the rights over the Software as defined in Article 6.4. +In the event the creation of the Derivative Software required modification +of the Source Code, the Licensee undertakes that: + + 1. the resulting Modified Software will be governed by this Agreement, + 2. the Integrated Contributions in the resulting Modified Software + will be clearly identified and documented, + 3. the Licensee will allow effective access to the source code of the + Modified Software, at a minimum during the entire period of + distribution of the Derivative Software, such that such + modifications may be carried over in a subsequent version of the + Software; it being understood that the additional cost of + purchasing the source code of the Modified Software shall not + exceed the cost of transferring the data. + + + 5.3.4 COMPATIBILITY WITH THE CeCILL LICENSE + +When a Modified Software contains an Integrated Contribution subject to +the CeCILL license agreement, or when a Derivative Software contains a +Related Module subject to the CeCILL license agreement, the provisions +set forth in the third item of Article 6.4 are optional. + + + Article 6 - INTELLECTUAL PROPERTY + + + 6.1 OVER THE INITIAL SOFTWARE + +The Holder owns the economic rights over the Initial Software. Any or +all use of the Initial Software is subject to compliance with the terms +and conditions under which the Holder has elected to distribute its work +and no one shall be entitled to modify the terms and conditions for the +distribution of said Initial Software. + +The Holder undertakes that the Initial Software will remain ruled at +least by this Agreement, for the duration set forth in Article 4.2. + + + 6.2 OVER THE INTEGRATED CONTRIBUTIONS + +The Licensee who develops an Integrated Contribution is the owner of the +intellectual property rights over this Contribution as defined by +applicable law. + + + 6.3 OVER THE RELATED MODULES + +The Licensee who develops a Related Module is the owner of the +intellectual property rights over this Related Module as defined by +applicable law and is free to choose the type of agreement that shall +govern its distribution under the conditions defined in Article 5.3.3. + + + 6.4 NOTICE OF RIGHTS + +The Licensee expressly undertakes: + + 1. not to remove, or modify, in any manner, the intellectual property + notices attached to the Software; + + 2. to reproduce said notices, in an identical manner, in the copies + of the Software modified or not; + + 3. to ensure that use of the Software, its intellectual property + notices and the fact that it is governed by the Agreement is + indicated in a text that is easily accessible, specifically from + the interface of any Derivative Software. + +The Licensee undertakes not to directly or indirectly infringe the +intellectual property rights of the Holder and/or Contributors on the +Software and to take, where applicable, vis-à-vis its staff, any and all +measures required to ensure respect of said intellectual property rights +of the Holder and/or Contributors. + + + Article 7 - RELATED SERVICES + +7.1 Under no circumstances shall the Agreement oblige the Licensor to +provide technical assistance or maintenance services for the Software. + +However, the Licensor is entitled to offer this type of services. The +terms and conditions of such technical assistance, and/or such +maintenance, shall be set forth in a separate instrument. Only the +Licensor offering said maintenance and/or technical assistance services +shall incur liability therefor. + +7.2 Similarly, any Licensor is entitled to offer to its licensees, under +its sole responsibility, a warranty, that shall only be binding upon +itself, for the redistribution of the Software and/or the Modified +Software, under terms and conditions that it is free to decide. Said +warranty, and the financial terms and conditions of its application, +shall be subject of a separate instrument executed between the Licensor +and the Licensee. + + + Article 8 - LIABILITY + +8.1 Subject to the provisions of Article 8.2, the Licensee shall be +entitled to claim compensation for any direct loss it may have suffered +from the Software as a result of a fault on the part of the relevant +Licensor, subject to providing evidence thereof. + +8.2 The Licensor's liability is limited to the commitments made under +this Agreement and shall not be incurred as a result of in particular: +(i) loss due the Licensee's total or partial failure to fulfill its +obligations, (ii) direct or consequential loss that is suffered by the +Licensee due to the use or performance of the Software, and (iii) more +generally, any consequential loss. In particular the Parties expressly +agree that any or all pecuniary or business loss (i.e. loss of data, +loss of profits, operating loss, loss of customers or orders, +opportunity cost, any disturbance to business activities) or any or all +legal proceedings instituted against the Licensee by a third party, +shall constitute consequential loss and shall not provide entitlement to +any or all compensation from the Licensor. + + + Article 9 - WARRANTY + +9.1 The Licensee acknowledges that the scientific and technical +state-of-the-art when the Software was distributed did not enable all +possible uses to be tested and verified, nor for the presence of +possible defects to be detected. In this respect, the Licensee's +attention has been drawn to the risks associated with loading, using, +modifying and/or developing and reproducing the Software which are +reserved for experienced users. + +The Licensee shall be responsible for verifying, by any or all means, +the suitability of the product for its requirements, its good working +order, and for ensuring that it shall not cause damage to either persons +or properties. + +9.2 The Licensor hereby represents, in good faith, that it is entitled +to grant all the rights over the Software (including in particular the +rights set forth in Article 5). + +9.3 The Licensee acknowledges that the Software is supplied "as is" by +the Licensor without any other express or tacit warranty, other than +that provided for in Article 9.2 and, in particular, without any warranty +as to its commercial value, its secured, safe, innovative or relevant +nature. + +Specifically, the Licensor does not warrant that the Software is free +from any error, that it will operate without interruption, that it will +be compatible with the Licensee's own equipment and software +configuration, nor that it will meet the Licensee's requirements. + +9.4 The Licensor does not either expressly or tacitly warrant that the +Software does not infringe any third party intellectual property right +relating to a patent, software or any other property right. Therefore, +the Licensor disclaims any and all liability towards the Licensee +arising out of any or all proceedings for infringement that may be +instituted in respect of the use, modification and redistribution of the +Software. Nevertheless, should such proceedings be instituted against +the Licensee, the Licensor shall provide it with technical and legal +assistance for its defense. Such technical and legal assistance shall be +decided on a case-by-case basis between the relevant Licensor and the +Licensee pursuant to a memorandum of understanding. The Licensor +disclaims any and all liability as regards the Licensee's use of the +name of the Software. No warranty is given as regards the existence of +prior rights over the name of the Software or as regards the existence +of a trademark. + + + Article 10 - TERMINATION + +10.1 In the event of a breach by the Licensee of its obligations +hereunder, the Licensor may automatically terminate this Agreement +thirty (30) days after notice has been sent to the Licensee and has +remained ineffective. + +10.2 A Licensee whose Agreement is terminated shall no longer be +authorized to use, modify or distribute the Software. However, any +licenses that it may have granted prior to termination of the Agreement +shall remain valid subject to their having been granted in compliance +with the terms and conditions hereof. + + + Article 11 - MISCELLANEOUS + + + 11.1 EXCUSABLE EVENTS + +Neither Party shall be liable for any or all delay, or failure to +perform the Agreement, that may be attributable to an event of force +majeure, an act of God or an outside cause, such as defective +functioning or interruptions of the electricity or telecommunications +networks, network paralysis following a virus attack, intervention by +government authorities, natural disasters, water damage, earthquakes, +fire, explosions, strikes and labor unrest, war, etc. + +11.2 Any failure by either Party, on one or more occasions, to invoke +one or more of the provisions hereof, shall under no circumstances be +interpreted as being a waiver by the interested Party of its right to +invoke said provision(s) subsequently. + +11.3 The Agreement cancels and replaces any or all previous agreements, +whether written or oral, between the Parties and having the same +purpose, and constitutes the entirety of the agreement between said +Parties concerning said purpose. No supplement or modification to the +terms and conditions hereof shall be effective as between the Parties +unless it is made in writing and signed by their duly authorized +representatives. + +11.4 In the event that one or more of the provisions hereof were to +conflict with a current or future applicable act or legislative text, +said act or legislative text shall prevail, and the Parties shall make +the necessary amendments so as to comply with said act or legislative +text. All other provisions shall remain effective. Similarly, invalidity +of a provision of the Agreement, for any reason whatsoever, shall not +cause the Agreement as a whole to be invalid. + + + 11.5 LANGUAGE + +The Agreement is drafted in both French and English and both versions +are deemed authentic. + + + Article 12 - NEW VERSIONS OF THE AGREEMENT + +12.1 Any person is authorized to duplicate and distribute copies of this +Agreement. + +12.2 So as to ensure coherence, the wording of this Agreement is +protected and may only be modified by the authors of the License, who +reserve the right to periodically publish updates or new versions of the +Agreement, each with a separate number. These subsequent versions may +address new issues encountered by Free Software. + +12.3 Any Software distributed under a given version of the Agreement may +only be subsequently distributed under the same version of the Agreement +or a subsequent version. + + + Article 13 - GOVERNING LAW AND JURISDICTION + +13.1 The Agreement is governed by French law. The Parties agree to +endeavor to seek an amicable solution to any disagreements or disputes +that may arise during the performance of the Agreement. + +13.2 Failing an amicable solution within two (2) months as from their +occurrence, and unless emergency proceedings are necessary, the +disagreements or disputes shall be referred to the Paris Courts having +jurisdiction, by the more diligent Party. + + +Version 1.0 dated 2006-09-05. diff -r 000000000000 -r 505fe5249d9c README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,132 @@ +# pharmakon.fr Website + +This project is the website for pharmakon.fr. + +## Getting Started + +These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system. + +### Prerequisites + +What things you need to install the software and how to install them + + - docker + - docker-compose + - A code editor + +In you local dns (/etc/hosts for example), map you Docker machine IP to the domain name `pharmakon.test`. + +### Installing + +Build docker images: + +``` +$ docker-compose build +``` + +Launch the project + +``` +$ docker-compose up +``` +or +``` +$ docker-compose up -d +``` + +import data. + +``` +$ docker-compose exec -T wp /var/www/html/vendor/bin/wp --allow-root db import - < /path/to/pharmakon_dbase.sql +``` + +Replace strings in database: + +``` +docker-compose exec wp /var/www/html/vendor/bin/wp --allow-root search-replace http://pharmakon.fr http://pharmakon.test:8080 +``` + +Import media files: +``` +$ tar -C src/web/app/ -zxf /path/to/pharmakon_media.tar.gz +``` + +Navigate to http://pharmakon.test:8080. + +## Data management + +**!! BEWARE !!**: Do not launch the `docker-compose down` command before exporting data. This command delete the `db` container's data volume end therefore delete the database. + +### Export database +``` +$ docker-compose exec wp /var/www/html/vendor/bin/wp --allow-root db export --add-drop-table - > pharmakon_dbase_2019-04-19.sql +``` + +### Export media +``` +$ tar zcf "pharmakon_media_$(date '+%Y-%m-%d').tar.gz" -C src/web/app/ uploads +``` + +### Import database + +``` +$ docker-compose exec -T wp /var/www/html/vendor/bin/wp --allow-root db import - < pharmakon_dbase_2019-04-19.sql +``` + +If needed do a search replace after this to update the site urls: + +``` +$ docker-compose exec wp /var/www/html/vendor/bin/wp --allow-root search-replace https://pharmakon.fr http://pharmakon.test:8080 +``` +Set the template root +``` +$ docker-compose exec -T wp /var/www/html/vendor/bin/wp --allow-root option set template_root "/var/www/pharmakon.fr/web/wp/wp-content/themes" +``` + +delete options +``` +$ docker-compose exec -T wp /var/www/html/vendor/bin/wp --allow-root option delete _site_transient_update_themes +``` +``` +$ docker-compose exec -T wp /var/www/html/vendor/bin/wp --allow-root option delete _site_transient_theme_roots +``` + + +Or change the administration password +``` +$ docker-compose exec -T wp /var/www/html/vendor/bin/wp --allow-root user update admin --prompt=user_pass +``` + +Flush cache +``` +$ docker-compose exec -T wp /var/www/html/vendor/bin/wp --allow-root cache flush +``` + + +## Deployment + +TODO... + +## Built With + +* [Wordpress](https://wordpress.org/) - The CMS used + +## Versioning + +We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://www.iri.centrepompidou.fr/dev/hg/pharmakon.fr/tags). + +## Authors + +* **Yves-Marie Haussonne** - *Initial work* + +## License + +This project is licensed under the CecCill License - see the [LICENSE.md](LICENSE.md) file for details + +## Acknowledgments + +* Hat tip to anyone whose code was used +* Wordpress: https://wordpress.org/ +* Bedrock: https://roots.io/bedrock +* Docker for local wordpress development: https://urre.me/writings/docker-for-local-wordpress-development/ + diff -r 000000000000 -r 505fe5249d9c deploy/Pipfile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/Pipfile Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,12 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +ansible = "*" + +[dev-packages] + +[requires] +python_version = "3.7" diff -r 000000000000 -r 505fe5249d9c deploy/Pipfile.lock --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/Pipfile.lock Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,163 @@ +{ + "_meta": { + "hash": { + "sha256": "074d6e8fe2c11255b4574daeea396b8537a465069173d4712e0d2d9818cdf144" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.7" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "ansible": { + "hashes": [ + "sha256:d87cb25df02284d59226ff1d935d7075a175f31d0db83564c2f1ca28bbbd4cb4" + ], + "index": "pypi", + "version": "==2.9.1" + }, + "cffi": { + "hashes": [ + "sha256:0b49274afc941c626b605fb59b59c3485c17dc776dc3cc7cc14aca74cc19cc42", + "sha256:0e3ea92942cb1168e38c05c1d56b0527ce31f1a370f6117f1d490b8dcd6b3a04", + "sha256:135f69aecbf4517d5b3d6429207b2dff49c876be724ac0c8bf8e1ea99df3d7e5", + "sha256:19db0cdd6e516f13329cba4903368bff9bb5a9331d3410b1b448daaadc495e54", + "sha256:2781e9ad0e9d47173c0093321bb5435a9dfae0ed6a762aabafa13108f5f7b2ba", + "sha256:291f7c42e21d72144bb1c1b2e825ec60f46d0a7468f5346841860454c7aa8f57", + "sha256:2c5e309ec482556397cb21ede0350c5e82f0eb2621de04b2633588d118da4396", + "sha256:2e9c80a8c3344a92cb04661115898a9129c074f7ab82011ef4b612f645939f12", + "sha256:32a262e2b90ffcfdd97c7a5e24a6012a43c61f1f5a57789ad80af1d26c6acd97", + "sha256:3c9fff570f13480b201e9ab69453108f6d98244a7f495e91b6c654a47486ba43", + "sha256:415bdc7ca8c1c634a6d7163d43fb0ea885a07e9618a64bda407e04b04333b7db", + "sha256:42194f54c11abc8583417a7cf4eaff544ce0de8187abaf5d29029c91b1725ad3", + "sha256:4424e42199e86b21fc4db83bd76909a6fc2a2aefb352cb5414833c030f6ed71b", + "sha256:4a43c91840bda5f55249413037b7a9b79c90b1184ed504883b72c4df70778579", + "sha256:599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346", + "sha256:5c4fae4e9cdd18c82ba3a134be256e98dc0596af1e7285a3d2602c97dcfa5159", + "sha256:5ecfa867dea6fabe2a58f03ac9186ea64da1386af2159196da51c4904e11d652", + "sha256:62f2578358d3a92e4ab2d830cd1c2049c9c0d0e6d3c58322993cc341bdeac22e", + "sha256:6471a82d5abea994e38d2c2abc77164b4f7fbaaf80261cb98394d5793f11b12a", + "sha256:6d4f18483d040e18546108eb13b1dfa1000a089bcf8529e30346116ea6240506", + "sha256:71a608532ab3bd26223c8d841dde43f3516aa5d2bf37b50ac410bb5e99053e8f", + "sha256:74a1d8c85fb6ff0b30fbfa8ad0ac23cd601a138f7509dc617ebc65ef305bb98d", + "sha256:7b93a885bb13073afb0aa73ad82059a4c41f4b7d8eb8368980448b52d4c7dc2c", + "sha256:7d4751da932caaec419d514eaa4215eaf14b612cff66398dd51129ac22680b20", + "sha256:7f627141a26b551bdebbc4855c1157feeef18241b4b8366ed22a5c7d672ef858", + "sha256:8169cf44dd8f9071b2b9248c35fc35e8677451c52f795daa2bb4643f32a540bc", + "sha256:aa00d66c0fab27373ae44ae26a66a9e43ff2a678bf63a9c7c1a9a4d61172827a", + "sha256:ccb032fda0873254380aa2bfad2582aedc2959186cce61e3a17abc1a55ff89c3", + "sha256:d754f39e0d1603b5b24a7f8484b22d2904fa551fe865fd0d4c3332f078d20d4e", + "sha256:d75c461e20e29afc0aee7172a0950157c704ff0dd51613506bd7d82b718e7410", + "sha256:dcd65317dd15bc0451f3e01c80da2216a31916bdcffd6221ca1202d96584aa25", + "sha256:e570d3ab32e2c2861c4ebe6ffcad6a8abf9347432a37608fe1fbd157b3f0036b", + "sha256:fd43a88e045cf992ed09fa724b5315b790525f2676883a6ea64e3263bae6549d" + ], + "version": "==1.13.2" + }, + "cryptography": { + "hashes": [ + "sha256:02079a6addc7b5140ba0825f542c0869ff4df9a69c360e339ecead5baefa843c", + "sha256:1df22371fbf2004c6f64e927668734070a8953362cd8370ddd336774d6743595", + "sha256:369d2346db5934345787451504853ad9d342d7f721ae82d098083e1f49a582ad", + "sha256:3cda1f0ed8747339bbdf71b9f38ca74c7b592f24f65cdb3ab3765e4b02871651", + "sha256:44ff04138935882fef7c686878e1c8fd80a723161ad6a98da31e14b7553170c2", + "sha256:4b1030728872c59687badcca1e225a9103440e467c17d6d1730ab3d2d64bfeff", + "sha256:58363dbd966afb4f89b3b11dfb8ff200058fbc3b947507675c19ceb46104b48d", + "sha256:6ec280fb24d27e3d97aa731e16207d58bd8ae94ef6eab97249a2afe4ba643d42", + "sha256:7270a6c29199adc1297776937a05b59720e8a782531f1f122f2eb8467f9aab4d", + "sha256:73fd30c57fa2d0a1d7a49c561c40c2f79c7d6c374cc7750e9ac7c99176f6428e", + "sha256:7f09806ed4fbea8f51585231ba742b58cbcfbfe823ea197d8c89a5e433c7e912", + "sha256:90df0cc93e1f8d2fba8365fb59a858f51a11a394d64dbf3ef844f783844cc793", + "sha256:971221ed40f058f5662a604bd1ae6e4521d84e6cad0b7b170564cc34169c8f13", + "sha256:a518c153a2b5ed6b8cc03f7ae79d5ffad7315ad4569b2d5333a13c38d64bd8d7", + "sha256:b0de590a8b0979649ebeef8bb9f54394d3a41f66c5584fff4220901739b6b2f0", + "sha256:b43f53f29816ba1db8525f006fa6f49292e9b029554b3eb56a189a70f2a40879", + "sha256:d31402aad60ed889c7e57934a03477b572a03af7794fa8fb1780f21ea8f6551f", + "sha256:de96157ec73458a7f14e3d26f17f8128c959084931e8997b9e655a39c8fde9f9", + "sha256:df6b4dca2e11865e6cfbfb708e800efb18370f5a46fd601d3755bc7f85b3a8a2", + "sha256:ecadccc7ba52193963c0475ac9f6fa28ac01e01349a2ca48509667ef41ffd2cf", + "sha256:fb81c17e0ebe3358486cd8cc3ad78adbae58af12fc2bf2bc0bb84e8090fa5ce8" + ], + "version": "==2.8" + }, + "jinja2": { + "hashes": [ + "sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f", + "sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de" + ], + "version": "==2.10.3" + }, + "markupsafe": { + "hashes": [ + "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", + "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", + "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", + "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", + "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", + "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", + "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", + "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", + "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", + "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", + "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", + "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", + "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", + "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", + "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7" + ], + "version": "==1.1.1" + }, + "pycparser": { + "hashes": [ + "sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3" + ], + "version": "==2.19" + }, + "pyyaml": { + "hashes": [ + "sha256:0113bc0ec2ad727182326b61326afa3d1d8280ae1122493553fd6f4397f33df9", + "sha256:01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4", + "sha256:5124373960b0b3f4aa7df1707e63e9f109b5263eca5976c66e08b1c552d4eaf8", + "sha256:5ca4f10adbddae56d824b2c09668e91219bb178a1eee1faa56af6f99f11bf696", + "sha256:7907be34ffa3c5a32b60b95f4d95ea25361c951383a894fec31be7252b2b6f34", + "sha256:7ec9b2a4ed5cad025c2278a1e6a19c011c80a3caaac804fd2d329e9cc2c287c9", + "sha256:87ae4c829bb25b9fe99cf71fbb2140c448f534e24c998cc60f39ae4f94396a73", + "sha256:9de9919becc9cc2ff03637872a440195ac4241c80536632fffeb6a1e25a74299", + "sha256:a5a85b10e450c66b49f98846937e8cfca1db3127a9d5d1e31ca45c3d0bef4c5b", + "sha256:b0997827b4f6a7c286c01c5f60384d218dca4ed7d9efa945c3e1aa623d5709ae", + "sha256:b631ef96d3222e62861443cc89d6563ba3eeb816eeb96b2629345ab795e53681", + "sha256:bf47c0607522fdbca6c9e817a6e81b08491de50f3766a7a0e6a5be7905961b41", + "sha256:f81025eddd0327c7d4cfe9b62cf33190e1e736cc6e97502b3ec425f574b3e7a8" + ], + "version": "==5.1.2" + }, + "six": { + "hashes": [ + "sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd", + "sha256:30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66" + ], + "version": "==1.13.0" + } + }, + "develop": {} +} diff -r 000000000000 -r 505fe5249d9c deploy/README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/README.md Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,55 @@ +# pharmakon.fr deployment + +The deployment is done with ansible. +A pipfile is available to set it up. + + +## Set the deploy environement + +- `pipenv install` +- `pipenv shell` + +## Start the deploy + +- `deploy.sh `. Example: `deploy.sh test tip` + +## configuration file: + +- `hosts/hosts.` +- `group_vars/.yml` +- `host_vars//base.yml` base `host_vars/base.yml.tmpl` + +## Database deploy + +- `deploy_db.sh [CONFIG] [DB_FILE_PATH] [ORIGIN_URL]` + +With: +- `CONFIG`: test or prod +- `DB_FILE_PATH`: The database definition file (SQL) +- `ORIGIN_URL`: The site base URL matching the database file + +This script call the `deploy_db.yml` ansible script and perform the following operations +- copy the sql file to the server +- apply the sql file with wp-cli `db` command +- search and replace the origin url (wp-cli search-replace) +- set `template_root` option (wp-cli option) +- delete _site_transient_update_themes and _site_transient_theme_roots options (wp-cli option) +- update admin password (wp-cli user update) +- flush cache (wp-cli cache flush) + + +## Database dump + +- `dump_db.sh [CONFIG] [DB_FILE_PATH]` + +With: +- `CONFIG`: test or prod +- `DB_FILE_PATH`: The database definition file (SQL) + +This script call the `dump_db.sql` ansible script and perform the following operation +- create a temporary file on the remote host +- dump the content of the database into this file (wp-cli db export) +- fetch the file and write it to the givent path +- delete the temporary file + +**WARNING** : This command write to the destination file and replace it without warning \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c deploy/Vagrantfile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/Vagrantfile Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,70 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# All Vagrant configuration is done below. The "2" in Vagrant.configure +# configures the configuration version (we support older styles for +# backwards compatibility). Please don't change it unless you know what +# you're doing. +Vagrant.configure("2") do |config| + # The most common configuration options are documented and commented below. + # For a complete reference, please see the online documentation at + # https://docs.vagrantup.com. + + # Every Vagrant development environment requires a box. You can search for + # boxes at https://vagrantcloud.com/search. + config.vm.box = "generic/debian10" + + # Disable automatic box update checking. If you disable this, then + # boxes will only be checked for updates when the user runs + # `vagrant box outdated`. This is not recommended. + # config.vm.box_check_update = false + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine. In the example below, + # accessing "localhost:8080" will access port 80 on the guest machine. + # NOTE: This will enable public access to the opened port + # config.vm.network "forwarded_port", guest: 80, host: 8080 + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine and only allow access + # via 127.0.0.1 to disable public access + # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" + + # Create a private network, which allows host-only access to the machine + # using a specific IP. + config.vm.network "private_network", ip: "172.16.1.5" + + # Create a public network, which generally matched to bridged network. + # Bridged networks make the machine appear as another physical device on + # your network. + # config.vm.network "public_network" + + # Share an additional folder to the guest VM. The first argument is + # the path on the host to the actual folder. The second argument is + # the path on the guest to mount the folder. And the optional third + # argument is a set of non-required options. + # config.vm.synced_folder "../data", "/vagrant_data" + + # Provider-specific configuration so you can fine-tune various + # backing providers for Vagrant. These expose provider-specific options. + # Example for VirtualBox: + # + # config.vm.provider "virtualbox" do |vb| + # # Display the VirtualBox GUI when booting the machine + # vb.gui = true + # + # # Customize the amount of memory on the VM: + # vb.memory = "1024" + # end + # + # View the documentation for the provider you are using for more + # information on available options. + + # Enable provisioning with a shell script. Additional provisioners such as + # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the + # documentation for more information about their specific syntax and use. + config.vm.provision "shell", inline: <<-SHELL + apt-get update + apt-get install -y unzip php php-curl php-zip + SHELL +end diff -r 000000000000 -r 505fe5249d9c deploy/deploy.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/deploy.sh Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +SCRIPTNAME=`basename "$0"` + +usage() { + echo -n "${SCRIPTNAME} [CONFIG] [VERSION] + +Deploy the using ansible. +config must be in the following list : test, prod +" +} + +if [[ "$#" -ne 2 ]]; then + usage + exit 1 +fi + +config=${1} +VERSION=${2} + +case $config in + test) configOK=true;; + prod) configOK=true;; + *) configOK=false;; +esac + +if [[ "$configOK" = false ]]; then + usage + exit 1 +fi + +pushd "$SCRIPTPATH" + +ANSIBLE_SSH_PIPELINING=1 ANSIBLE_STDOUT_CALLBACK=debug ansible-playbook -v -i "./hosts/hosts.$config" -l "$config" ./deploy.yml --extra-vars "rc_version=${VERSION}" --ask-vault-pass + +popd diff -r 000000000000 -r 505fe5249d9c deploy/deploy.yml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/deploy.yml Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,72 @@ +- hosts: localhost + connection: local + vars: + build_dir: "{{playbook_dir}}/build/tmp/rc/" + tasks: + + - name: mkdir build folder + file: + path: "{{playbook_dir}}/build/tmp" + state: directory + + - name: clear checkout dir if exists + file: + path: "{{build_dir}}" + state: absent + + - name: checkout + hg: + repo: "{{p_repo}}" + version: "{{p_version}}" + force: yes + dest: "{{build_dir}}" + +- hosts: remote + vars: + src_dir: "{{playbook_dir}}/build/tmp/rc/src/" + tasks: + + - name: create the destination directory + file: + path: "{{remote_path}}" + state: directory + owner: "{{ansible_user_id}}" + become: yes + + - name: sync the sources + synchronize: + src: "{{src_dir}}" + dest: "{{remote_path}}" + + - name: clean previous version of composer + file: + path: /tmp/composer/composer + state: absent + + - name: create the destination directory + file: + path: /tmp/composer + state: directory + + - name: download new version of composer + get_url: + url: https://getcomposer.org/composer.phar + dest: /tmp/composer/composer + mode: 0755 + + - name: clean composer + file: + path: "{{remote_path}}/vendor" + state: absent + + - name: call composer + composer: + command: install + working_dir: "{{remote_path}}" + environment: + PATH: /tmp/composer:/usr/bin + + - name: create env file if needed + template: + src: env.j2 + dest: "{{remote_path}}/.env" \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c deploy/deploy_db.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/deploy_db.sh Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +SCRIPTNAME=`basename "$0"` + +usage() { + echo -n "${SCRIPTNAME} [CONFIG] [DB_FILE_PATH] [ORIGIN_URL] + +Deploy the database using ansible. +Replacing the by the destination url in the ansible config (rc_wp_home). +" +} + +if [[ "$#" -ne 3 ]]; then + usage + exit 1 +fi + +config=${1} +db_file_path=${2} +origin_url=${3} + +case $config in + test) configOK=true;; + prod) configOK=true;; + *) configOK=false;; +esac + +if [[ "$configOK" = false ]]; then + usage + exit 1 +fi + +pushd "$SCRIPTPATH" + +ANSIBLE_SSH_PIPELINING=1 ANSIBLE_STDOUT_CALLBACK=debug ansible-playbook -v -i "./hosts/hosts.$config" -l "$config" ./deploy_db.yml --extra-vars "db_file_path='${db_file_path}' origin_url='${origin_url}'" --ask-vault-pass + +popd diff -r 000000000000 -r 505fe5249d9c deploy/deploy_db.yml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/deploy_db.yml Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,119 @@ +# vendor/bin/wp option delete _site_transient_update_themes +# vendor/bin/wp option delete _site_transient_theme_roots + +- hosts: remote + vars: + src_dir: "{{playbook_dir}}/build/tmp/rc/src/" + tasks: + + - name: create temporary file + tempfile: + state: file + suffix: sql + register: sql_tmp_path + + - name: transfer sql file + copy: + src: "{{db_file_path}}" + dest: "{{sql_tmp_path.path}}" + + - name: load database + command: + argv: + - "{{remote_path}}/vendor/bin/wp" + - db + - import + - "{{sql_tmp_path.path}}" + args: + chdir: "{{remote_path}}" + + - name: delete temporary file + file: + path: "{{sql_tmp_path.path}}" + state: absent + + - name: search and replace url + command: + argv: + - "{{remote_path}}/vendor/bin/wp" + - search-replace + - "{{origin_url}}" + - "{{p_wp_home}}" + args: + chdir: "{{remote_path}}" + + - name: set template_root + command: + argv: + - "{{remote_path}}/vendor/bin/wp" + - option + - set + - template_root + - "{{remote_path}}/web/wp/wp-content/themes" + args: + chdir: "{{remote_path}}" + + - name: delete _site_transient_update_themes option + command: + argv: + - "{{remote_path}}/vendor/bin/wp" + - option + - delete + - _site_transient_update_themes + args: + chdir: "{{remote_path}}" + + - name: delete _site_transient_theme_roots option + command: + argv: + - "{{remote_path}}/vendor/bin/wp" + - option + - delete + - _site_transient_theme_roots + args: + chdir: "{{remote_path}}" + + - name: Set site in french + command: + argv: + - "{{remote_path}}/vendor/bin/wp" + - site + - switch-language + - fr_FR + args: + chdir: "{{remote_path}}" + + + - name: update admin password + command: + argv: + - "{{remote_path}}/vendor/bin/wp" + - user + - update + - "{{p_admin_user_id}}" + - "--user_pass={{p_admin_user_pswd}}" + - --skip-email + args: + chdir: "{{remote_path}}" + + - name: update admin language + command: + argv: + - "{{remote_path}}/vendor/bin/wp" + - user + - update + - "{{p_admin_user_id}}" + - "--locale=en_US" + - --skip-email + args: + chdir: "{{remote_path}}" + + - name: flush cache + command: + argv: + - "{{remote_path}}/vendor/bin/wp" + - cache + - flush + args: + chdir: "{{remote_path}}" + diff -r 000000000000 -r 505fe5249d9c deploy/dump_db.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/dump_db.sh Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +SCRIPTNAME=`basename "$0"` + +usage() { + echo -n "${SCRIPTNAME} [CONFIG] [DB_FILE_PATH] + +Dump the database to using ansible. +Beware this will replace the dest file without warning +" +} + +if [[ "$#" -ne 2 ]]; then + usage + exit 1 +fi + +config=${1} +db_file_path=${2} + +case $config in + test) configOK=true;; + prod) configOK=true;; + *) configOK=false;; +esac + +if [[ "$configOK" = false ]]; then + usage + exit 1 +fi + +pushd "$SCRIPTPATH" + +ANSIBLE_SSH_PIPELINING=1 ANSIBLE_STDOUT_CALLBACK=debug ansible-playbook -v -i "./hosts/hosts.$config" -l "$config" ./dump_db.yml --extra-vars "db_file_path='${db_file_path}'" --ask-vault-pass + +popd diff -r 000000000000 -r 505fe5249d9c deploy/dump_db.yml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/dump_db.yml Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,37 @@ +# vendor/bin/wp option delete _site_transient_update_themes +# vendor/bin/wp option delete _site_transient_theme_roots + +- hosts: remote + vars: + src_dir: "{{playbook_dir}}/build/tmp/rc/src/" + tasks: + + - name: create temporary file + tempfile: + state: file + suffix: sql + register: sql_tmp_path + + - name: dump and fetch + block: + - name: dump database + command: + argv: + - "{{remote_path}}/vendor/bin/wp" + - db + - export + - "{{sql_tmp_path.path}}" + args: + chdir: "{{remote_path}}" + + - name: transfer sql file + fetch: + src: "{{sql_tmp_path.path}}" + dest: "{{db_file_path}}" + flat: yes + always: + - name: delete temporary file + file: + path: "{{sql_tmp_path.path}}" + state: absent + diff -r 000000000000 -r 505fe5249d9c docker-compose.yml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker-compose.yml Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,43 @@ +version: '3.6' + +services: + + nginx: + image: nginx:latest + container_name: p-nginx + ports: + - '8080:80' + volumes: + - ./nginx:/etc/nginx/conf.d + - ./src:/var/www/html:rw + depends_on: + - wp + restart: always + + db: + image: mariadb:latest + container_name: p-db + environment: + MYSQL_DATABASE: wordpressdb + MYSQL_USER: wordpress + MYSQL_PASSWORD: wordpress + MYSQL_RANDOM_ROOT_PASSWORD: '1' + restart: always + healthcheck: + test: mysql -h localhost -u wordpress -p wordpress -e"quit" wordpressdb + + wp: + # image: wordpress:php7.3-fpm-alpine + build: ./wp + container_name: p-wp + volumes: + - ./src:/var/www/html:rw + environment: + WORDPRESS_DB_HOST: db + WORDPRESS_DB_USER: wordpress + WORDPRESS_DB_PASSWORD: wordpress + WORDPRESS_DB_NAME: wordpressdb + depends_on: + - db + restart: always + diff -r 000000000000 -r 505fe5249d9c nginx/pharmakon-wordpress.conf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nginx/pharmakon-wordpress.conf Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,25 @@ +server { + listen 80; + listen [::]:80; + server_name pharmakhon.test www.pharmakhon.test; + + root /var/www/html/web; + index index.php; + + access_log /var/log/nginx/access.log; + error_log /var/log/nginx/error.log; + + location / { + try_files $uri $uri/ /index.php?$args; + } + + location ~ \.php$ { + try_files $uri =404; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass wp:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + } +} \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/.env.example --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/.env.example Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,17 @@ +DATABASE_URL=mysql://database_user:database_password@database_host:database_port/database_name + +DB_PREFIX=wp_ + +WP_ENV=development +WP_HOME=http://example.com +WP_SITEURL=${WP_HOME}/wp + +# Generate your keys here: https://roots.io/salts.html +AUTH_KEY='generateme' +SECURE_AUTH_KEY='generateme' +LOGGED_IN_KEY='generateme' +NONCE_KEY='generateme' +AUTH_SALT='generateme' +SECURE_AUTH_SALT='generateme' +LOGGED_IN_SALT='generateme' +NONCE_SALT='generateme' diff -r 000000000000 -r 505fe5249d9c src/composer.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/composer.json Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,63 @@ +{ + "name": "iri-research/pharmakon.fr", + "type": "project", + "license": "MIT", + "description": "pharmakon.fr wordpress project based od root/bedrock", + "homepage": "https://pharmakon.fr", + "authors": [ + { + "name": "Yves-Marie Haussonne", + "email": "1218002+ymph@users.noreply.github.com", + "homepage": "https://github.com/ymh" + } + ], + "keywords": [ + "pharmakon", "IRI", "bedrock" + ], + "support": { + "issues": "https://www.iri.centrepompidou.fr/dev/hg/pharmakon.fr" + }, + "repositories": [ + { + "type": "composer", + "url": "https://wpackagist.org" + } + ], + "require": { + "php": ">=7.1", + "composer/installers": "^1.7", + "vlucas/phpdotenv": "^3.4.0", + "oscarotero/env": "^1.2.0", + "roots/wordpress": "^5.3", + "roots/wp-config": "^1.0.0", + "roots/wp-password-bcrypt": "^1.0.0", + "wp-cli/wp-cli-bundle": "*" + }, + "require-dev": { + "squizlabs/php_codesniffer": "^3.4.2", + "roave/security-advisories": "dev-master" + }, + "config": { + "optimize-autoloader": true, + "preferred-install": "dist", + "sort-packages": true + }, + "minimum-stability": "dev", + "prefer-stable": true, + "extra": { + "installer-paths": { + "web/app/mu-plugins/{$name}/": ["type:wordpress-muplugin"], + "web/app/plugins/{$name}/": ["type:wordpress-plugin"], + "web/app/themes/{$name}/": ["type:wordpress-theme"] + }, + "wordpress-install-dir": "web/wp" + }, + "scripts": { + "post-root-package-install": [ + "php -r \"copy('.env.example', '.env');\"" + ], + "test": [ + "phpcs" + ] + } +} diff -r 000000000000 -r 505fe5249d9c src/composer.lock --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/composer.lock Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,4088 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "3e0d73d72398f87d648f058040b5a813", + "packages": [ + { + "name": "composer/ca-bundle", + "version": "1.2.4", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/10bb96592168a0f8e8f6dcde3532d9fa50b0b527", + "reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", + "psr/log": "^1.0", + "symfony/process": "^2.5 || ^3.0 || ^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "time": "2019-08-30T08:44:50+00:00" + }, + { + "name": "composer/composer", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/composer/composer.git", + "reference": "bb01f2180df87ce7992b8331a68904f80439dd2f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/composer/zipball/bb01f2180df87ce7992b8331a68904f80439dd2f", + "reference": "bb01f2180df87ce7992b8331a68904f80439dd2f", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.0", + "composer/semver": "^1.0", + "composer/spdx-licenses": "^1.2", + "composer/xdebug-handler": "^1.1", + "justinrainbow/json-schema": "^3.0 || ^4.0 || ^5.0", + "php": "^5.3.2 || ^7.0", + "psr/log": "^1.0", + "seld/jsonlint": "^1.4", + "seld/phar-utils": "^1.0", + "symfony/console": "^2.7 || ^3.0 || ^4.0", + "symfony/filesystem": "^2.7 || ^3.0 || ^4.0", + "symfony/finder": "^2.7 || ^3.0 || ^4.0", + "symfony/process": "^2.7 || ^3.0 || ^4.0" + }, + "conflict": { + "symfony/console": "2.8.38" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7", + "phpunit/phpunit-mock-objects": "^2.3 || ^3.0" + }, + "suggest": { + "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", + "ext-zip": "Enabling the zip extension allows you to unzip archives", + "ext-zlib": "Allow gzip compression of HTTP requests" + }, + "bin": [ + "bin/composer" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\": "src/Composer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", + "homepage": "https://getcomposer.org/", + "keywords": [ + "autoload", + "dependency", + "package" + ], + "time": "2019-11-01T16:20:17+00:00" + }, + { + "name": "composer/installers", + "version": "v1.7.0", + "source": { + "type": "git", + "url": "https://github.com/composer/installers.git", + "reference": "141b272484481432cda342727a427dc1e206bfa0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/installers/zipball/141b272484481432cda342727a427dc1e206bfa0", + "reference": "141b272484481432cda342727a427dc1e206bfa0", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0" + }, + "replace": { + "roundcube/plugin-installer": "*", + "shama/baton": "*" + }, + "require-dev": { + "composer/composer": "1.0.*@dev", + "phpunit/phpunit": "^4.8.36" + }, + "type": "composer-plugin", + "extra": { + "class": "Composer\\Installers\\Plugin", + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Installers\\": "src/Composer/Installers" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kyle Robinson Young", + "email": "kyle@dontkry.com", + "homepage": "https://github.com/shama" + } + ], + "description": "A multi-framework Composer library installer", + "homepage": "https://composer.github.io/installers/", + "keywords": [ + "Craft", + "Dolibarr", + "Eliasis", + "Hurad", + "ImageCMS", + "Kanboard", + "Lan Management System", + "MODX Evo", + "Mautic", + "Maya", + "OXID", + "Plentymarkets", + "Porto", + "RadPHP", + "SMF", + "Thelia", + "Whmcs", + "WolfCMS", + "agl", + "aimeos", + "annotatecms", + "attogram", + "bitrix", + "cakephp", + "chef", + "cockpit", + "codeigniter", + "concrete5", + "croogo", + "dokuwiki", + "drupal", + "eZ Platform", + "elgg", + "expressionengine", + "fuelphp", + "grav", + "installer", + "itop", + "joomla", + "known", + "kohana", + "laravel", + "lavalite", + "lithium", + "magento", + "majima", + "mako", + "mediawiki", + "modulework", + "modx", + "moodle", + "osclass", + "phpbb", + "piwik", + "ppi", + "puppet", + "pxcms", + "reindex", + "roundcube", + "shopware", + "silverstripe", + "sydes", + "symfony", + "typo3", + "wordpress", + "yawik", + "zend", + "zikula" + ], + "time": "2019-08-12T15:00:31+00:00" + }, + { + "name": "composer/semver", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/46d9139568ccb8d9e7cdd4539cab7347568a5e2e", + "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5 || ^5.0.5", + "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "time": "2019-03-19T17:25:45+00:00" + }, + { + "name": "composer/spdx-licenses", + "version": "1.5.2", + "source": { + "type": "git", + "url": "https://github.com/composer/spdx-licenses.git", + "reference": "7ac1e6aec371357df067f8a688c3d6974df68fa5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/7ac1e6aec371357df067f8a688c3d6974df68fa5", + "reference": "7ac1e6aec371357df067f8a688c3d6974df68fa5", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Spdx\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "SPDX licenses list and validation library.", + "keywords": [ + "license", + "spdx", + "validator" + ], + "time": "2019-07-29T10:31:59+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "cbe23383749496fe0f373345208b79568e4bc248" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/cbe23383749496fe0f373345208b79568e4bc248", + "reference": "cbe23383749496fe0f373345208b79568e4bc248", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "time": "2019-11-06T16:40:04+00:00" + }, + { + "name": "cweagans/composer-patches", + "version": "1.6.7", + "source": { + "type": "git", + "url": "https://github.com/cweagans/composer-patches.git", + "reference": "2e6f72a2ad8d59cd7e2b729f218bf42adb14f590" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cweagans/composer-patches/zipball/2e6f72a2ad8d59cd7e2b729f218bf42adb14f590", + "reference": "2e6f72a2ad8d59cd7e2b729f218bf42adb14f590", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "php": ">=5.3.0" + }, + "require-dev": { + "composer/composer": "~1.0", + "phpunit/phpunit": "~4.6" + }, + "type": "composer-plugin", + "extra": { + "class": "cweagans\\Composer\\Patches" + }, + "autoload": { + "psr-4": { + "cweagans\\Composer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Cameron Eagans", + "email": "me@cweagans.net" + } + ], + "description": "Provides a way to patch Composer packages.", + "time": "2019-08-29T20:11:49+00:00" + }, + { + "name": "gettext/gettext", + "version": "v4.8.2", + "source": { + "type": "git", + "url": "https://github.com/php-gettext/Gettext.git", + "reference": "e474f872f2c8636cf53fd283ec4ce1218f3d236a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-gettext/Gettext/zipball/e474f872f2c8636cf53fd283ec4ce1218f3d236a", + "reference": "e474f872f2c8636cf53fd283ec4ce1218f3d236a", + "shasum": "" + }, + "require": { + "gettext/languages": "^2.3", + "php": ">=5.4.0" + }, + "require-dev": { + "illuminate/view": "*", + "phpunit/phpunit": "^4.8|^5.7|^6.5", + "squizlabs/php_codesniffer": "^3.0", + "symfony/yaml": "~2", + "twig/extensions": "*", + "twig/twig": "^1.31|^2.0" + }, + "suggest": { + "illuminate/view": "Is necessary if you want to use the Blade extractor", + "symfony/yaml": "Is necessary if you want to use the Yaml extractor/generator", + "twig/extensions": "Is necessary if you want to use the Twig extractor", + "twig/twig": "Is necessary if you want to use the Twig extractor" + }, + "type": "library", + "autoload": { + "psr-4": { + "Gettext\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oscar Otero", + "email": "oom@oscarotero.com", + "homepage": "http://oscarotero.com", + "role": "Developer" + } + ], + "description": "PHP gettext manager", + "homepage": "https://github.com/oscarotero/Gettext", + "keywords": [ + "JS", + "gettext", + "i18n", + "mo", + "po", + "translation" + ], + "time": "2019-12-02T10:21:14+00:00" + }, + { + "name": "gettext/languages", + "version": "2.6.0", + "source": { + "type": "git", + "url": "https://github.com/php-gettext/Languages.git", + "reference": "38ea0482f649e0802e475f0ed19fa993bcb7a618" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-gettext/Languages/zipball/38ea0482f649e0802e475f0ed19fa993bcb7a618", + "reference": "38ea0482f649e0802e475f0ed19fa993bcb7a618", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.16.0", + "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4" + }, + "bin": [ + "bin/export-plural-rules" + ], + "type": "library", + "autoload": { + "psr-4": { + "Gettext\\Languages\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michele Locati", + "email": "mlocati@gmail.com", + "role": "Developer" + } + ], + "description": "gettext languages with plural rules", + "homepage": "https://github.com/php-gettext/Languages", + "keywords": [ + "cldr", + "i18n", + "internationalization", + "l10n", + "language", + "languages", + "localization", + "php", + "plural", + "plural rules", + "plurals", + "translate", + "translations", + "unicode" + ], + "time": "2019-11-13T10:30:21+00:00" + }, + { + "name": "justinrainbow/json-schema", + "version": "5.2.9", + "source": { + "type": "git", + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "44c6787311242a979fa15c704327c20e7221a0e4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/44c6787311242a979fa15c704327c20e7221a0e4", + "reference": "44c6787311242a979fa15c704327c20e7221a0e4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" + }, + "bin": [ + "bin/validate-json" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], + "time": "2019-09-25T14:49:45+00:00" + }, + { + "name": "mck89/peast", + "version": "v1.10", + "source": { + "type": "git", + "url": "https://github.com/mck89/peast.git", + "reference": "ce12201132d953a13f41565c82122a5fe2616837" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mck89/peast/zipball/ce12201132d953a13f41565c82122a5fe2616837", + "reference": "ce12201132d953a13f41565c82122a5fe2616837", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10.0-dev" + } + }, + "autoload": { + "psr-4": { + "Peast\\": "lib/Peast/", + "Peast\\test\\": "test/Peast/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Marchiò", + "email": "marco.mm89@gmail.com" + } + ], + "description": "Peast is PHP library that generates AST for JavaScript code", + "time": "2019-11-22T18:07:58+00:00" + }, + { + "name": "mustache/mustache", + "version": "v2.13.0", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/mustache.php.git", + "reference": "e95c5a008c23d3151d59ea72484d4f72049ab7f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/e95c5a008c23d3151d59ea72484d4f72049ab7f4", + "reference": "e95c5a008c23d3151d59ea72484d4f72049ab7f4", + "shasum": "" + }, + "require": { + "php": ">=5.2.4" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~1.11", + "phpunit/phpunit": "~3.7|~4.0|~5.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Mustache": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "A Mustache implementation in PHP.", + "homepage": "https://github.com/bobthecow/mustache.php", + "keywords": [ + "mustache", + "templating" + ], + "time": "2019-11-23T21:40:31+00:00" + }, + { + "name": "nb/oxymel", + "version": "v0.1.0", + "source": { + "type": "git", + "url": "https://github.com/nb/oxymel.git", + "reference": "cbe626ef55d5c4cc9b5e6e3904b395861ea76e3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nb/oxymel/zipball/cbe626ef55d5c4cc9b5e6e3904b395861ea76e3c", + "reference": "cbe626ef55d5c4cc9b5e6e3904b395861ea76e3c", + "shasum": "" + }, + "require": { + "php": ">=5.2.4" + }, + "type": "library", + "autoload": { + "psr-0": { + "Oxymel": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nikolay Bachiyski", + "email": "nb@nikolay.bg", + "homepage": "http://extrapolate.me/" + } + ], + "description": "A sweet XML builder", + "homepage": "https://github.com/nb/oxymel", + "keywords": [ + "xml" + ], + "time": "2013-02-24T15:01:54+00:00" + }, + { + "name": "oscarotero/env", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/oscarotero/env.git", + "reference": "4ab45ce5c1f2c62549208426bfa20a3d5fa008c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/oscarotero/env/zipball/4ab45ce5c1f2c62549208426bfa20a3d5fa008c6", + "reference": "4ab45ce5c1f2c62549208426bfa20a3d5fa008c6", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": ">=5.2" + }, + "type": "library", + "autoload": { + "psr-0": { + "Env": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oscar Otero", + "email": "oom@oscarotero.com", + "homepage": "http://oscarotero.com", + "role": "Developer" + } + ], + "description": "Simple library to consume environment variables", + "homepage": "https://github.com/oscarotero/env", + "keywords": [ + "env" + ], + "time": "2019-04-03T18:28:43+00:00" + }, + { + "name": "phpoption/phpoption", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "f4e7a6a1382183412246f0d361078c29fb85089e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/f4e7a6a1382183412246f0d361078c29fb85089e", + "reference": "f4e7a6a1382183412246f0d361078c29fb85089e", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6-dev" + } + }, + "autoload": { + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com" + } + ], + "description": "Option Type for PHP", + "keywords": [ + "language", + "option", + "php", + "type" + ], + "time": "2019-11-30T20:20:49+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/log", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2019-11-01T11:05:21+00:00" + }, + { + "name": "rmccue/requests", + "version": "v1.7.0", + "source": { + "type": "git", + "url": "https://github.com/rmccue/Requests.git", + "reference": "87932f52ffad70504d93f04f15690cf16a089546" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rmccue/Requests/zipball/87932f52ffad70504d93f04f15690cf16a089546", + "reference": "87932f52ffad70504d93f04f15690cf16a089546", + "shasum": "" + }, + "require": { + "php": ">=5.2" + }, + "require-dev": { + "requests/test-server": "dev-master" + }, + "type": "library", + "autoload": { + "psr-0": { + "Requests": "library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Ryan McCue", + "homepage": "http://ryanmccue.info" + } + ], + "description": "A HTTP library written in PHP, for human beings.", + "homepage": "http://github.com/rmccue/Requests", + "keywords": [ + "curl", + "fsockopen", + "http", + "idna", + "ipv6", + "iri", + "sockets" + ], + "time": "2016-10-13T00:11:37+00:00" + }, + { + "name": "roots/wordpress", + "version": "5.3", + "source": { + "type": "git", + "url": "https://github.com/WordPress/WordPress.git", + "reference": "5.3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WordPress/WordPress/zipball/5.3", + "reference": "5.3" + }, + "require": { + "php": ">=5.3.2", + "roots/wordpress-core-installer": ">=1.0.0" + }, + "type": "wordpress-core", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "WordPress Community", + "homepage": "https://wordpress.org/about/" + } + ], + "description": "WordPress is web software you can use to create a beautiful website or blog.", + "homepage": "https://wordpress.org/", + "keywords": [ + "blog", + "cms", + "wordpress" + ], + "time": "2019-11-12T20:34:22+00:00" + }, + { + "name": "roots/wordpress-core-installer", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/roots/wordpress-core-installer.git", + "reference": "83744b1ba5bbdb5bb225f47e24da61a6cf6c5b80" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/roots/wordpress-core-installer/zipball/83744b1ba5bbdb5bb225f47e24da61a6cf6c5b80", + "reference": "83744b1ba5bbdb5bb225f47e24da61a6cf6c5b80", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0" + }, + "conflict": { + "composer/installers": "<1.0.6" + }, + "replace": { + "johnpbloch/wordpress-core-installer": "*" + }, + "require-dev": { + "composer/composer": "^1.0", + "phpunit/phpunit": ">=4.8.35" + }, + "type": "composer-plugin", + "extra": { + "class": "Roots\\Composer\\WordPressCorePlugin" + }, + "autoload": { + "psr-4": { + "Roots\\Composer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "John P. Bloch", + "email": "me@johnpbloch.com" + }, + { + "name": "Roots", + "email": "team@roots.io" + } + ], + "description": "A custom installer to handle deploying WordPress with composer", + "keywords": [ + "wordpress" + ], + "time": "2018-12-10T00:22:15+00:00" + }, + { + "name": "roots/wp-config", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/roots/wp-config.git", + "reference": "37c38230796119fb487fa03346ab0706ce6d4962" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/roots/wp-config/zipball/37c38230796119fb487fa03346ab0706ce6d4962", + "reference": "37c38230796119fb487fa03346ab0706ce6d4962", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5.7", + "roave/security-advisories": "dev-master", + "squizlabs/php_codesniffer": "^3.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Roots\\WPConfig\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Austin Pray", + "email": "austin@austinpray.com" + } + ], + "description": "Collect configuration values and safely define() them", + "time": "2018-08-10T14:18:38+00:00" + }, + { + "name": "roots/wp-password-bcrypt", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/roots/wp-password-bcrypt.git", + "reference": "5cecd2e98ccc3193443cc5c5db9b3bc7abed5ffa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/roots/wp-password-bcrypt/zipball/5cecd2e98ccc3193443cc5c5db9b3bc7abed5ffa", + "reference": "5cecd2e98ccc3193443cc5c5db9b3bc7abed5ffa", + "shasum": "" + }, + "require": { + "composer/installers": "~1.0", + "php": ">=5.5.0" + }, + "require-dev": { + "brain/monkey": "^1.3.1", + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^4.8.23|^5.2.9", + "squizlabs/php_codesniffer": "^2.5.1" + }, + "type": "library", + "autoload": { + "files": [ + "wp-password-bcrypt.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Scott Walkinshaw", + "email": "scott.walkinshaw@gmail.com", + "homepage": "https://github.com/swalkinshaw" + }, + { + "name": "qwp6t", + "homepage": "https://github.com/qwp6t" + }, + { + "name": "Jan Pingel", + "email": "jpingel@bitpiston.com", + "homepage": "http://janpingel.com" + } + ], + "description": "WordPress plugin which replaces wp_hash_password and wp_check_password's phpass hasher with PHP 5.5's password_hash and password_verify using bcrypt.", + "homepage": "https://roots.io/plugins/wp-password-bcrypt", + "keywords": [ + "wordpress wp bcrypt password" + ], + "time": "2016-03-01T16:27:06+00:00" + }, + { + "name": "seld/jsonlint", + "version": "1.7.2", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/e2e5d290e4d2a4f0eb449f510071392e00e10d19", + "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "bin": [ + "bin/jsonlint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], + "time": "2019-10-24T14:27:39+00:00" + }, + { + "name": "seld/phar-utils", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/7009b5139491975ef6486545a39f3e6dad5ac30a", + "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\PharUtils\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "PHAR file format utilities, for when PHP phars you up", + "keywords": [ + "phra" + ], + "time": "2015-10-13T18:44:15+00:00" + }, + { + "name": "symfony/console", + "version": "v4.4.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "f0aea3df20d15635b3cb9730ca5eea1c65b7f201" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/f0aea3df20d15635b3cb9730ca5eea1c65b7f201", + "reference": "f0aea3df20d15635b3cb9730ca5eea1c65b7f201", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2019-12-01T10:06:17+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.4.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "40c2606131d56eff6f193b6e2ceb92414653b591" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/40c2606131d56eff6f193b6e2ceb92414653b591", + "reference": "40c2606131d56eff6f193b6e2ceb92414653b591", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2019-11-26T23:16:41+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.4.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "ce8743441da64c41e2a667b8eb66070444ed911e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/ce8743441da64c41e2a667b8eb66070444ed911e", + "reference": "ce8743441da64c41e2a667b8eb66070444ed911e", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2019-11-17T21:56:56+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2019-11-27T13:56:44+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2019-11-27T14:18:11+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/4b0e2222c55a25b4541305a053013d5647d3a25f", + "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-11-27T16:25:15+00:00" + }, + { + "name": "symfony/process", + "version": "v4.4.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "51c0135ef3f44c5803b33dc60e96bf4f77752726" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/51c0135ef3f44c5803b33dc60e96bf4f77752726", + "reference": "51c0135ef3f44c5803b33dc60e96bf4f77752726", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2019-11-28T13:33:56+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "144c5e51266b281231e947b51223ba14acf1a749" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", + "reference": "144c5e51266b281231e947b51223ba14acf1a749", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-11-18T17:27:11+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "1bdf24f065975594f6a117f0f1f6cabf1333b156" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1bdf24f065975594f6a117f0f1f6cabf1333b156", + "reference": "1bdf24f065975594f6a117f0f1f6cabf1333b156", + "shasum": "" + }, + "require": { + "php": "^5.4 || ^7.0", + "phpoption/phpoption": "^1.5", + "symfony/polyfill-ctype": "^1.9" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "homepage": "https://gjcampbell.co.uk/" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://vancelucas.com/" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "time": "2019-09-10T21:37:39+00:00" + }, + { + "name": "wp-cli/cache-command", + "version": "v2.0.3", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/cache-command.git", + "reference": "d3264aecf0e981b61adc020f5f6664f6538b7434" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/cache-command/zipball/d3264aecf0e981b61adc020f5f6664f6538b7434", + "reference": "d3264aecf0e981b61adc020f5f6664f6538b7434", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/entity-command": "^1.3 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "cache", + "cache add", + "cache decr", + "cache delete", + "cache flush", + "cache get", + "cache incr", + "cache replace", + "cache set", + "cache type", + "transient", + "transient delete", + "transient get", + "transient set", + "transient type", + "transient list" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "cache-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Manages object and transient caches.", + "homepage": "https://github.com/wp-cli/cache-command", + "time": "2019-11-12T01:43:12+00:00" + }, + { + "name": "wp-cli/checksum-command", + "version": "v2.0.3", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/checksum-command.git", + "reference": "7db66668ec116c5ccef7bc27b4354fa81b85018a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/checksum-command/zipball/7db66668ec116c5ccef7bc27b4354fa81b85018a", + "reference": "7db66668ec116c5ccef7bc27b4354fa81b85018a", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/extension-command": "^1.2 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "core verify-checksums", + "plugin verify-checksums" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "checksum-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Verifies file integrity by comparing to published checksums.", + "homepage": "https://github.com/wp-cli/checksum-command", + "time": "2019-04-25T00:28:02+00:00" + }, + { + "name": "wp-cli/config-command", + "version": "v2.0.5", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/config-command.git", + "reference": "9530dc42eebcae1fde10ad9e4aad312e06267eb9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/config-command/zipball/9530dc42eebcae1fde10ad9e4aad312e06267eb9", + "reference": "9530dc42eebcae1fde10ad9e4aad312e06267eb9", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2", + "wp-cli/wp-config-transformer": "^1.2.1" + }, + "require-dev": { + "wp-cli/db-command": "^1.3 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "config", + "config edit", + "config delete", + "config create", + "config get", + "config has", + "config list", + "config path", + "config set", + "config shuffle-salts" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "config-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + }, + { + "name": "Alain Schlesser", + "email": "alain.schlesser@gmail.com", + "homepage": "https://www.alainschlesser.com" + } + ], + "description": "Generates and reads the wp-config.php file.", + "homepage": "https://github.com/wp-cli/config-command", + "time": "2019-11-12T01:43:26+00:00" + }, + { + "name": "wp-cli/core-command", + "version": "v2.0.8", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/core-command.git", + "reference": "be62a9364c77a99698364a888362a8c8b9414f2f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/core-command/zipball/be62a9364c77a99698364a888362a8c8b9414f2f", + "reference": "be62a9364c77a99698364a888362a8c8b9414f2f", + "shasum": "" + }, + "require": { + "composer/semver": "^1.4", + "wp-cli/wp-cli": "^2.4" + }, + "require-dev": { + "wp-cli/checksum-command": "^1 || ^2", + "wp-cli/db-command": "^1.3 || ^2", + "wp-cli/entity-command": "^1.3 || ^2", + "wp-cli/extension-command": "^1.2 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "core", + "core check-update", + "core download", + "core install", + "core is-installed", + "core multisite-convert", + "core multisite-install", + "core update", + "core update-db", + "core version" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "core-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Downloads, installs, updates, and manages a WordPress installation.", + "homepage": "https://github.com/wp-cli/core-command", + "time": "2019-11-12T15:31:38+00:00" + }, + { + "name": "wp-cli/cron-command", + "version": "v2.0.3", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/cron-command.git", + "reference": "b6d0c8ff69cc56d5316a35a7a2fcc314c4069585" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/cron-command/zipball/b6d0c8ff69cc56d5316a35a7a2fcc314c4069585", + "reference": "b6d0c8ff69cc56d5316a35a7a2fcc314c4069585", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/entity-command": "^1.3 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "cron", + "cron test", + "cron event", + "cron event delete", + "cron event list", + "cron event run", + "cron event schedule", + "cron schedule", + "cron schedule list" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "cron-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Tests, runs, and deletes WP-Cron events; manages WP-Cron schedules.", + "homepage": "https://github.com/wp-cli/cron-command", + "time": "2019-04-24T07:31:46+00:00" + }, + { + "name": "wp-cli/db-command", + "version": "v2.0.5", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/db-command.git", + "reference": "119cf31491577d0a79ad42021dfeb8ac1138342b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/db-command/zipball/119cf31491577d0a79ad42021dfeb8ac1138342b", + "reference": "119cf31491577d0a79ad42021dfeb8ac1138342b", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/entity-command": "^1.3 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "db", + "db clean", + "db create", + "db drop", + "db reset", + "db check", + "db optimize", + "db prefix", + "db repair", + "db cli", + "db query", + "db export", + "db import", + "db search", + "db tables", + "db size", + "db columns" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "db-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Performs basic database operations using credentials stored in wp-config.php.", + "homepage": "https://github.com/wp-cli/db-command", + "time": "2019-11-12T05:05:58+00:00" + }, + { + "name": "wp-cli/embed-command", + "version": "v2.0.4", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/embed-command.git", + "reference": "f67fd41a056c6cb847e8601e058fa836b9e5d325" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/embed-command/zipball/f67fd41a056c6cb847e8601e058fa836b9e5d325", + "reference": "f67fd41a056c6cb847e8601e058fa836b9e5d325", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/entity-command": "^1.3 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "embed", + "embed fetch", + "embed provider", + "embed provider list", + "embed provider match", + "embed handler", + "embed handler list", + "embed cache", + "embed cache clear", + "embed cache find", + "embed cache trigger" + ] + }, + "autoload": { + "psr-4": { + "WP_CLI\\Embeds\\": "src/" + }, + "files": [ + "embed-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Pascal Birchler", + "homepage": "https://pascalbirchler.com/" + } + ], + "description": "Inspects oEmbed providers, clears embed cache, and more.", + "homepage": "https://github.com/wp-cli/embed-command", + "time": "2019-11-12T01:43:50+00:00" + }, + { + "name": "wp-cli/entity-command", + "version": "v2.0.7", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/entity-command.git", + "reference": "0df89e4fba48177acf768bff9c00cda95a3fe5b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/entity-command/zipball/0df89e4fba48177acf768bff9c00cda95a3fe5b9", + "reference": "0df89e4fba48177acf768bff9c00cda95a3fe5b9", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/cache-command": "^1 || ^2", + "wp-cli/db-command": "^1.3 || ^2", + "wp-cli/extension-command": "^1.2 || ^2", + "wp-cli/media-command": "^1.1 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "comment", + "comment approve", + "comment count", + "comment create", + "comment delete", + "comment exists", + "comment generate", + "comment get", + "comment list", + "comment meta", + "comment meta add", + "comment meta delete", + "comment meta get", + "comment meta list", + "comment meta patch", + "comment meta pluck", + "comment meta update", + "comment recount", + "comment spam", + "comment status", + "comment trash", + "comment unapprove", + "comment unspam", + "comment untrash", + "comment update", + "menu", + "menu create", + "menu delete", + "menu item", + "menu item add-custom", + "menu item add-post", + "menu item add-term", + "menu item delete", + "menu item list", + "menu item update", + "menu list", + "menu location", + "menu location assign", + "menu location list", + "menu location remove", + "network meta", + "network meta add", + "network meta delete", + "network meta get", + "network meta list", + "network meta patch", + "network meta pluck", + "network meta update", + "option", + "option add", + "option delete", + "option get", + "option list", + "option patch", + "option pluck", + "option update", + "post", + "post create", + "post delete", + "post edit", + "post exists", + "post generate", + "post get", + "post list", + "post meta", + "post meta add", + "post meta delete", + "post meta get", + "post meta list", + "post meta patch", + "post meta pluck", + "post meta update", + "post term", + "post term add", + "post term list", + "post term remove", + "post term set", + "post update", + "post-type", + "post-type get", + "post-type list", + "site", + "site activate", + "site archive", + "site create", + "site deactivate", + "site delete", + "site empty", + "site list", + "site mature", + "site option", + "site private", + "site public", + "site spam", + "site unarchive", + "site unmature", + "site unspam", + "taxonomy", + "taxonomy get", + "taxonomy list", + "term", + "term create", + "term delete", + "term generate", + "term get", + "term list", + "term meta", + "term meta add", + "term meta delete", + "term meta get", + "term meta list", + "term meta patch", + "term meta pluck", + "term meta update", + "term recount", + "term update", + "user", + "user add-cap", + "user add-role", + "user create", + "user delete", + "user generate", + "user get", + "user import-csv", + "user list", + "user list-caps", + "user meta", + "user meta add", + "user meta delete", + "user meta get", + "user meta list", + "user meta patch", + "user meta pluck", + "user meta update", + "user remove-cap", + "user remove-role", + "user reset-password", + "user session", + "user session destroy", + "user session list", + "user set-role", + "user spam", + "user term", + "user term add", + "user term list", + "user term remove", + "user term set", + "user unspam", + "user update" + ] + }, + "autoload": { + "psr-4": { + "": "src/", + "WP_CLI\\": "src/WP_CLI" + }, + "files": [ + "entity-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Manage WordPress comments, menus, options, posts, sites, terms, and users.", + "homepage": "https://github.com/wp-cli/entity-command", + "time": "2019-11-12T11:32:14+00:00" + }, + { + "name": "wp-cli/eval-command", + "version": "v2.0.5", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/eval-command.git", + "reference": "945aaebc761a694cf302985088ef6b19a4567643" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/eval-command/zipball/945aaebc761a694cf302985088ef6b19a4567643", + "reference": "945aaebc761a694cf302985088ef6b19a4567643", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "eval", + "eval-file" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "eval-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Executes arbitrary PHP code or files.", + "homepage": "https://github.com/wp-cli/eval-command", + "time": "2019-11-12T01:36:20+00:00" + }, + { + "name": "wp-cli/export-command", + "version": "v2.0.3", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/export-command.git", + "reference": "a31b1777a199a8437127ad3db1b6b92e9cb5cd9b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/export-command/zipball/a31b1777a199a8437127ad3db1b6b92e9cb5cd9b", + "reference": "a31b1777a199a8437127ad3db1b6b92e9cb5cd9b", + "shasum": "" + }, + "require": { + "nb/oxymel": "~0.1.0", + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/db-command": "^1.3 || ^2", + "wp-cli/entity-command": "^1.3 || ^2", + "wp-cli/extension-command": "^1.2 || ^2", + "wp-cli/import-command": "^1 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "export" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "export-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Exports WordPress content to a WXR file.", + "homepage": "https://github.com/wp-cli/export-command", + "time": "2019-07-16T16:39:17+00:00" + }, + { + "name": "wp-cli/extension-command", + "version": "v2.0.7", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/extension-command.git", + "reference": "e397cf208c0df679656a87041bf34129e7e3d922" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/extension-command/zipball/e397cf208c0df679656a87041bf34129e7e3d922", + "reference": "e397cf208c0df679656a87041bf34129e7e3d922", + "shasum": "" + }, + "require": { + "composer/semver": "^1.4", + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/entity-command": "^1.3 || ^2", + "wp-cli/scaffold-command": "^1.2 || ^2", + "wp-cli/wp-cli-tests": "^2.1.6" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "plugin", + "plugin activate", + "plugin deactivate", + "plugin delete", + "plugin get", + "plugin install", + "plugin is-installed", + "plugin list", + "plugin path", + "plugin search", + "plugin status", + "plugin toggle", + "plugin uninstall", + "plugin update", + "theme", + "theme activate", + "theme delete", + "theme disable", + "theme enable", + "theme get", + "theme install", + "theme is-installed", + "theme list", + "theme mod", + "theme mod get", + "theme mod set", + "theme mod remove", + "theme path", + "theme search", + "theme status", + "theme update", + "theme mod list" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "extension-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Manages plugins and themes, including installs, activations, and updates.", + "homepage": "https://github.com/wp-cli/extension-command", + "time": "2019-11-08T20:23:53+00:00" + }, + { + "name": "wp-cli/i18n-command", + "version": "v2.2.1", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/i18n-command.git", + "reference": "6a0582103ecf4a28b3086eac55a9fe590bd3dc96" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/i18n-command/zipball/6a0582103ecf4a28b3086eac55a9fe590bd3dc96", + "reference": "6a0582103ecf4a28b3086eac55a9fe590bd3dc96", + "shasum": "" + }, + "require": { + "gettext/gettext": "^4.8", + "mck89/peast": "^1.8", + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/scaffold-command": "^1.2 || ^2", + "wp-cli/wp-cli-tests": "^2.1.3" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "i18n", + "i18n make-pot", + "i18n make-json" + ] + }, + "autoload": { + "psr-4": { + "WP_CLI\\I18n\\": "src/" + }, + "files": [ + "i18n-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Pascal Birchler", + "homepage": "https://pascalbirchler.com/" + } + ], + "description": "Provides internationalization tools for WordPress projects.", + "homepage": "https://github.com/wp-cli/i18n-command", + "time": "2019-11-12T06:57:35+00:00" + }, + { + "name": "wp-cli/import-command", + "version": "v2.0.2", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/import-command.git", + "reference": "e28a7f55138ceb53f2ff5926874d8e5582c87db8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/import-command/zipball/e28a7f55138ceb53f2ff5926874d8e5582c87db8", + "reference": "e28a7f55138ceb53f2ff5926874d8e5582c87db8", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/entity-command": "^1.3 || ^2", + "wp-cli/export-command": "^1 || ^2", + "wp-cli/extension-command": "^1.2 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "import" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "import-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Imports content from a given WXR file.", + "homepage": "https://github.com/wp-cli/import-command", + "time": "2019-04-19T14:32:57+00:00" + }, + { + "name": "wp-cli/language-command", + "version": "v2.0.5", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/language-command.git", + "reference": "a14a385efffba2060f947afa85f7ffd7e7cda5d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/language-command/zipball/a14a385efffba2060f947afa85f7ffd7e7cda5d7", + "reference": "a14a385efffba2060f947afa85f7ffd7e7cda5d7", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/db-command": "^1.3 || ^2", + "wp-cli/entity-command": "^1.3 || ^2", + "wp-cli/extension-command": "^1.2 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "language", + "language core", + "language core activate", + "language core is-installed", + "language core install", + "language core list", + "language core uninstall", + "language core update", + "language plugin", + "language plugin is-installed", + "language plugin install", + "language plugin list", + "language plugin uninstall", + "language plugin update", + "language theme", + "language theme is-installed", + "language theme install", + "language theme list", + "language theme uninstall", + "language theme update" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "language-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Installs, activates, and manages language packs.", + "homepage": "https://github.com/wp-cli/language-command", + "time": "2019-11-12T01:33:31+00:00" + }, + { + "name": "wp-cli/maintenance-mode-command", + "version": "v2.0.2", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/maintenance-mode-command.git", + "reference": "3c80e731e1032607a2e9589ae6b6398e95c05b91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/maintenance-mode-command/zipball/3c80e731e1032607a2e9589ae6b6398e95c05b91", + "reference": "3c80e731e1032607a2e9589ae6b6398e95c05b91", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "maintenance-mode", + "maintenance-mode activate", + "maintenance-mode deactivate", + "maintenance-mode status", + "maintenance-mode is-active" + ] + }, + "autoload": { + "psr-4": { + "WP_CLI\\MaintenanceMode\\": "src/" + }, + "files": [ + "maintenance-mode-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thrijith Thankachan", + "email": "thrijith13@gmail.com", + "homepage": "https://thrijith.com" + } + ], + "description": "Activates, deactivates or checks the status of the maintenance mode of a site.", + "homepage": "https://github.com/wp-cli/maintenance-mode-command", + "time": "2019-11-12T01:32:41+00:00" + }, + { + "name": "wp-cli/media-command", + "version": "v2.0.7", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/media-command.git", + "reference": "0b7fbee4c4aa9335b83fd5c65183808949ba1c8e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/media-command/zipball/0b7fbee4c4aa9335b83fd5c65183808949ba1c8e", + "reference": "0b7fbee4c4aa9335b83fd5c65183808949ba1c8e", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/entity-command": "^1.3 || ^2", + "wp-cli/extension-command": "^2.0", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "media", + "media import", + "media regenerate", + "media image-size" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "media-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Imports files as attachments, regenerates thumbnails, or lists registered image sizes.", + "homepage": "https://github.com/wp-cli/media-command", + "time": "2019-11-12T11:32:15+00:00" + }, + { + "name": "wp-cli/mustangostang-spyc", + "version": "0.6.3", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/spyc.git", + "reference": "6aa0b4da69ce9e9a2c8402dab8d43cf32c581cc7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/spyc/zipball/6aa0b4da69ce9e9a2c8402dab8d43cf32c581cc7", + "reference": "6aa0b4da69ce9e9a2c8402dab8d43cf32c581cc7", + "shasum": "" + }, + "require": { + "php": ">=5.3.1" + }, + "require-dev": { + "phpunit/phpunit": "4.3.*@dev" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Mustangostang\\": "src/" + }, + "files": [ + "includes/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "mustangostang", + "email": "vlad.andersen@gmail.com" + } + ], + "description": "A simple YAML loader/dumper class for PHP (WP-CLI fork)", + "homepage": "https://github.com/mustangostang/spyc/", + "time": "2017-04-25T11:26:20+00:00" + }, + { + "name": "wp-cli/package-command", + "version": "v2.0.5", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/package-command.git", + "reference": "52fea16f3cec0577b9c417a19ebc0f328c38d853" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/package-command/zipball/52fea16f3cec0577b9c417a19ebc0f328c38d853", + "reference": "52fea16f3cec0577b9c417a19ebc0f328c38d853", + "shasum": "" + }, + "require": { + "composer/composer": ">=1.2.0 <1.7.0 || ^1.7.1", + "ext-json": "*", + "wp-cli/wp-cli": "^2.1" + }, + "require-dev": { + "wp-cli/scaffold-command": "^1 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "package", + "package browse", + "package install", + "package list", + "package update", + "package uninstall" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "package-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Lists, installs, and removes WP-CLI packages.", + "homepage": "https://github.com/wp-cli/package-command", + "time": "2019-04-24T09:34:35+00:00" + }, + { + "name": "wp-cli/php-cli-tools", + "version": "v0.11.11", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/php-cli-tools.git", + "reference": "fe9c7c44a9e1bf2196ec51dc38da0593dbf2993f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/php-cli-tools/zipball/fe9c7c44a9e1bf2196ec51dc38da0593dbf2993f", + "reference": "fe9c7c44a9e1bf2196ec51dc38da0593dbf2993f", + "shasum": "" + }, + "require": { + "php": ">= 5.3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "cli": "lib/" + }, + "files": [ + "lib/cli/cli.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "James Logsdon", + "email": "jlogsdon@php.net", + "role": "Developer" + }, + { + "name": "Daniel Bachhuber", + "email": "daniel@handbuilt.co", + "role": "Maintainer" + } + ], + "description": "Console utilities for PHP", + "homepage": "http://github.com/wp-cli/php-cli-tools", + "keywords": [ + "cli", + "console" + ], + "time": "2018-09-04T13:28:00+00:00" + }, + { + "name": "wp-cli/rewrite-command", + "version": "v2.0.4", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/rewrite-command.git", + "reference": "3879bcbf7e695f68097cedb8415ed04915a25465" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/rewrite-command/zipball/3879bcbf7e695f68097cedb8415ed04915a25465", + "reference": "3879bcbf7e695f68097cedb8415ed04915a25465", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/entity-command": "^1.3 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "rewrite", + "rewrite flush", + "rewrite list", + "rewrite structure" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "rewrite-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Lists or flushes the site's rewrite rules, updates the permalink structure.", + "homepage": "https://github.com/wp-cli/rewrite-command", + "time": "2019-11-12T01:31:23+00:00" + }, + { + "name": "wp-cli/role-command", + "version": "v2.0.3", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/role-command.git", + "reference": "bad54a1b02331ee6460cc6a6f967e37dd91e07a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/role-command/zipball/bad54a1b02331ee6460cc6a6f967e37dd91e07a3", + "reference": "bad54a1b02331ee6460cc6a6f967e37dd91e07a3", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "role", + "role create", + "role delete", + "role exists", + "role list", + "role reset", + "cap", + "cap add", + "cap list", + "cap remove" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "role-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Adds, removes, lists, and resets roles and capabilities.", + "homepage": "https://github.com/wp-cli/role-command", + "time": "2019-11-12T01:30:59+00:00" + }, + { + "name": "wp-cli/scaffold-command", + "version": "v2.0.7", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/scaffold-command.git", + "reference": "fe73e6f71c2a03908bb5ceac17a0e408544a868a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/scaffold-command/zipball/fe73e6f71c2a03908bb5ceac17a0e408544a868a", + "reference": "fe73e6f71c2a03908bb5ceac17a0e408544a868a", + "shasum": "" + }, + "require": { + "php": "^5.4 || ^7.0", + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/extension-command": "^1.2 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "scaffold", + "scaffold underscores", + "scaffold block", + "scaffold child-theme", + "scaffold plugin", + "scaffold plugin-tests", + "scaffold post-type", + "scaffold taxonomy", + "scaffold theme-tests" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "scaffold-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Generates code for post types, taxonomies, blocks, plugins, child themes, etc.", + "homepage": "https://github.com/wp-cli/scaffold-command", + "time": "2019-11-12T11:32:15+00:00" + }, + { + "name": "wp-cli/search-replace-command", + "version": "v2.0.5", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/search-replace-command.git", + "reference": "d53ae0715d3701ef22826d5c7b46973a1b24e472" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/search-replace-command/zipball/d53ae0715d3701ef22826d5c7b46973a1b24e472", + "reference": "d53ae0715d3701ef22826d5c7b46973a1b24e472", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/db-command": "^1.3 || ^2", + "wp-cli/entity-command": "^1.3 || ^2", + "wp-cli/extension-command": "^1.2 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "search-replace" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "search-replace-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Searches/replaces strings in the database.", + "homepage": "https://github.com/wp-cli/search-replace-command", + "time": "2019-11-12T01:29:55+00:00" + }, + { + "name": "wp-cli/server-command", + "version": "v2.0.4", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/server-command.git", + "reference": "b0c8db803aea2133973a9a35b0d94fb62487b456" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/server-command/zipball/b0c8db803aea2133973a9a35b0d94fb62487b456", + "reference": "b0c8db803aea2133973a9a35b0d94fb62487b456", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "server" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "server-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Launches PHP's built-in web server for a specific WordPress installation.", + "homepage": "https://github.com/wp-cli/server-command", + "time": "2019-11-12T11:32:15+00:00" + }, + { + "name": "wp-cli/shell-command", + "version": "v2.0.4", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/shell-command.git", + "reference": "293cc82fe6e99c0168bf834787ac5d0e17825723" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/shell-command/zipball/293cc82fe6e99c0168bf834787ac5d0e17825723", + "reference": "293cc82fe6e99c0168bf834787ac5d0e17825723", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "shell" + ] + }, + "autoload": { + "psr-4": { + "": "src/", + "WP_CLI\\": "src/WP_CLI" + }, + "files": [ + "shell-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Opens an interactive PHP console for running and testing PHP code.", + "homepage": "https://github.com/wp-cli/shell-command", + "time": "2019-11-12T01:29:25+00:00" + }, + { + "name": "wp-cli/super-admin-command", + "version": "v2.0.3", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/super-admin-command.git", + "reference": "b3f3078d25c17ee586a5f31cb5ce3553613e85b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/super-admin-command/zipball/b3f3078d25c17ee586a5f31cb5ce3553613e85b4", + "reference": "b3f3078d25c17ee586a5f31cb5ce3553613e85b4", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "^2" + }, + "require-dev": { + "wp-cli/entity-command": "^1.3 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "super-admin", + "super-admin add", + "super-admin list", + "super-admin remove" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "super-admin-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Lists, adds, or removes super admin users on a multisite installation.", + "homepage": "https://github.com/wp-cli/super-admin-command", + "time": "2019-11-12T01:28:59+00:00" + }, + { + "name": "wp-cli/widget-command", + "version": "v2.0.3", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/widget-command.git", + "reference": "ad69fa608a30d17f8a73c94fdd64e91c7de458d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/widget-command/zipball/ad69fa608a30d17f8a73c94fdd64e91c7de458d2", + "reference": "ad69fa608a30d17f8a73c94fdd64e91c7de458d2", + "shasum": "" + }, + "require": { + "wp-cli/wp-cli": "dev-master" + }, + "require-dev": { + "wp-cli/extension-command": "^1.2 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "type": "wp-cli-package", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "bundled": true, + "commands": [ + "widget", + "widget add", + "widget deactivate", + "widget delete", + "widget list", + "widget move", + "widget reset", + "widget update", + "sidebar", + "sidebar list" + ] + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "files": [ + "widget-command.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@runcommand.io", + "homepage": "https://runcommand.io" + } + ], + "description": "Adds, moves, and removes widgets; lists sidebars.", + "homepage": "https://github.com/wp-cli/widget-command", + "time": "2019-10-01T08:37:32+00:00" + }, + { + "name": "wp-cli/wp-cli", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/wp-cli.git", + "reference": "8e8b207a42573aa1d88a22d774998d54f473fd74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/8e8b207a42573aa1d88a22d774998d54f473fd74", + "reference": "8e8b207a42573aa1d88a22d774998d54f473fd74", + "shasum": "" + }, + "require": { + "cweagans/composer-patches": "^1.6", + "ext-curl": "*", + "mustache/mustache": "~2.4", + "php": "^5.4 || ^7.0", + "rmccue/requests": "~1.6", + "symfony/finder": ">2.7", + "wp-cli/mustangostang-spyc": "^0.6.3", + "wp-cli/php-cli-tools": "~0.11.2" + }, + "require-dev": { + "roave/security-advisories": "dev-master", + "wp-cli/db-command": "^1.3 || ^2", + "wp-cli/entity-command": "^1.2 || ^2", + "wp-cli/extension-command": "^1.1 || ^2", + "wp-cli/package-command": "^1 || ^2", + "wp-cli/wp-cli-tests": "^2.1" + }, + "suggest": { + "ext-readline": "Include for a better --prompt implementation", + "ext-zip": "Needed to support extraction of ZIP archives when doing downloads or updates" + }, + "bin": [ + "bin/wp", + "bin/wp.bat" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5.x-dev" + }, + "patches": { + "mustache/mustache": { + "Avoid notices on PHP 7.4+": "https://patch-diff.githubusercontent.com/raw/bobthecow/mustache.php/pull/349.patch" + } + } + }, + "autoload": { + "psr-0": { + "WP_CLI": "php" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "WP-CLI framework", + "homepage": "https://wp-cli.org", + "keywords": [ + "cli", + "wordpress" + ], + "time": "2019-11-13T17:14:38+00:00" + }, + { + "name": "wp-cli/wp-cli-bundle", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/wp-cli-bundle.git", + "reference": "713bc75b2f88550920dedc4f2ad3e1daf9f76326" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/wp-cli-bundle/zipball/713bc75b2f88550920dedc4f2ad3e1daf9f76326", + "reference": "713bc75b2f88550920dedc4f2ad3e1daf9f76326", + "shasum": "" + }, + "require": { + "cweagans/composer-patches": "^1.6", + "php": ">=5.4", + "wp-cli/cache-command": "^2", + "wp-cli/checksum-command": "^2", + "wp-cli/config-command": "^2", + "wp-cli/core-command": "^2", + "wp-cli/cron-command": "^2", + "wp-cli/db-command": "^2", + "wp-cli/embed-command": "^2", + "wp-cli/entity-command": "^2", + "wp-cli/eval-command": "^2", + "wp-cli/export-command": "^2", + "wp-cli/extension-command": "^2", + "wp-cli/i18n-command": "^2", + "wp-cli/import-command": "^2", + "wp-cli/language-command": "^2", + "wp-cli/maintenance-mode-command": "^2", + "wp-cli/media-command": "^2", + "wp-cli/package-command": "^2", + "wp-cli/rewrite-command": "^2", + "wp-cli/role-command": "^2", + "wp-cli/scaffold-command": "^2", + "wp-cli/search-replace-command": "^2", + "wp-cli/server-command": "^2", + "wp-cli/shell-command": "^2", + "wp-cli/super-admin-command": "^2", + "wp-cli/widget-command": "^2", + "wp-cli/wp-cli": "^2.4" + }, + "require-dev": { + "roave/security-advisories": "dev-master", + "wp-cli/wp-cli-tests": "^2.1" + }, + "suggest": { + "psy/psysh": "Enhanced `wp shell` functionality" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + }, + "enable-patching": true + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "WP-CLI bundle package with default commands.", + "homepage": "https://wp-cli.org", + "keywords": [ + "cli", + "wordpress" + ], + "time": "2019-11-12T17:43:58+00:00" + }, + { + "name": "wp-cli/wp-config-transformer", + "version": "v1.2.6", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/wp-config-transformer.git", + "reference": "1ca98343443a8e4585865db5f50e8e6121fee70b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/wp-config-transformer/zipball/1ca98343443a8e4585865db5f50e8e6121fee70b", + "reference": "1ca98343443a8e4585865db5f50e8e6121fee70b", + "shasum": "" + }, + "require": { + "php": ">=5.3.29" + }, + "require-dev": { + "composer/composer": "^1.5.6", + "phpunit/phpunit": "^6.5.5", + "wp-coding-standards/wpcs": "^0.14.0 || ^1.0.0 || ^2.0.0" + }, + "type": "library", + "autoload": { + "files": [ + "src/WPConfigTransformer.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frankie Jarrett", + "email": "fjarrett@gmail.com" + } + ], + "description": "Programmatically edit a wp-config.php file.", + "time": "2019-07-23T17:24:43+00:00" + } + ], + "packages-dev": [ + { + "name": "roave/security-advisories", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/Roave/SecurityAdvisories.git", + "reference": "e4ee2c8e4ccd908debc64069faf023c684a76760" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/e4ee2c8e4ccd908debc64069faf023c684a76760", + "reference": "e4ee2c8e4ccd908debc64069faf023c684a76760", + "shasum": "" + }, + "conflict": { + "3f/pygmentize": "<1.2", + "adodb/adodb-php": "<5.20.12", + "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", + "amphp/artax": "<1.0.6|>=2,<2.0.6", + "amphp/http": "<1.0.1", + "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", + "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", + "aws/aws-sdk-php": ">=3,<3.2.1", + "brightlocal/phpwhois": "<=4.2.5", + "bugsnag/bugsnag-laravel": ">=2,<2.0.2", + "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7", + "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", + "cartalyst/sentry": "<=2.1.6", + "codeigniter/framework": "<=3.0.6", + "composer/composer": "<=1-alpha.11", + "contao-components/mediaelement": ">=2.14.2,<2.21.1", + "contao/core": ">=2,<3.5.39", + "contao/core-bundle": ">=4,<4.4.39|>=4.5,<4.7.5", + "contao/listing-bundle": ">=4,<4.4.8", + "datadog/dd-trace": ">=0.30,<0.30.2", + "david-garcia/phpwhois": "<=4.3.1", + "doctrine/annotations": ">=1,<1.2.7", + "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", + "doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1", + "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2", + "doctrine/doctrine-bundle": "<1.5.2", + "doctrine/doctrine-module": "<=0.7.1", + "doctrine/mongodb-odm": ">=1,<1.0.2", + "doctrine/mongodb-odm-bundle": ">=2,<3.0.1", + "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1", + "dompdf/dompdf": ">=0.6,<0.6.2", + "drupal/core": ">=7,<7.67|>=8,<8.6.16|>=8.7,<8.7.1|>8.7.3,<8.7.5", + "drupal/drupal": ">=7,<7.67|>=8,<8.6.16|>=8.7,<8.7.1|>8.7.3,<8.7.5", + "erusev/parsedown": "<1.7.2", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.4", + "ezsystems/ezpublish-kernel": ">=5.3,<5.3.12.1|>=5.4,<5.4.13.1|>=6,<6.7.9.1|>=6.8,<6.13.5.1|>=7,<7.2.4.1|>=7.3,<7.3.2.1", + "ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.6|>=5.4,<5.4.12.3|>=2011,<2017.12.4.3|>=2018.6,<2018.6.1.4|>=2018.9,<2018.9.1.3", + "ezsystems/repository-forms": ">=2.3,<2.3.2.1", + "ezyang/htmlpurifier": "<4.1.1", + "firebase/php-jwt": "<2", + "fooman/tcpdf": "<6.2.22", + "fossar/tcpdf-parser": "<6.2.22", + "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", + "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", + "fuel/core": "<1.8.1", + "gree/jose": "<=2.2", + "gregwar/rst": "<1.0.3", + "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", + "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10", + "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.42|>=5.6,<5.6.30", + "illuminate/database": ">=4,<4.0.99|>=4.1,<4.1.29", + "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", + "ivankristianto/phpwhois": "<=4.3", + "james-heinrich/getid3": "<1.9.9", + "joomla/session": "<1.3.1", + "jsmitty12/phpwhois": "<5.1", + "kazist/phpwhois": "<=4.2.6", + "kreait/firebase-php": ">=3.2,<3.8.1", + "la-haute-societe/tcpdf": "<6.2.22", + "laravel/framework": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.42|>=5.6,<5.6.30", + "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", + "league/commonmark": "<0.18.3", + "magento/magento1ce": "<1.9.4.3", + "magento/magento1ee": ">=1,<1.14.4.3", + "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2", + "monolog/monolog": ">=1.8,<1.12", + "namshi/jose": "<2.2", + "onelogin/php-saml": "<2.10.4", + "openid/php-openid": "<2.3", + "oro/crm": ">=1.7,<1.7.4", + "oro/platform": ">=1.7,<1.7.4", + "padraic/humbug_get_contents": "<1.1.2", + "pagarme/pagarme-php": ">=0,<3", + "paragonie/random_compat": "<2", + "paypal/merchant-sdk-php": "<3.12", + "pear/archive_tar": "<1.4.4", + "phpmailer/phpmailer": ">=5,<5.2.27|>=6,<6.0.6", + "phpoffice/phpexcel": "<=1.8.1", + "phpoffice/phpspreadsheet": "<=1.5", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", + "phpwhois/phpwhois": "<=4.2.5", + "phpxmlrpc/extras": "<0.6.1", + "propel/propel": ">=2-alpha.1,<=2-alpha.7", + "propel/propel1": ">=1,<=1.7.1", + "pusher/pusher-php-server": "<2.2.1", + "robrichards/xmlseclibs": ">=1,<3.0.4", + "sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9", + "sensiolabs/connect": "<4.2.3", + "serluck/phpwhois": "<=4.2.6", + "shopware/shopware": "<5.3.7", + "silverstripe/cms": ">=3,<=3.0.11|>=3.1,<3.1.11", + "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", + "silverstripe/framework": ">=3,<3.6.7|>=3.7,<3.7.3|>=4,<4.4", + "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.1.2", + "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", + "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", + "silverstripe/userforms": "<3", + "simple-updates/phpwhois": "<=1", + "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4", + "simplesamlphp/simplesamlphp": "<1.17.8", + "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", + "slim/slim": "<2.6", + "smarty/smarty": "<3.1.33", + "socalnick/scn-social-auth": "<1.15.2", + "spoonity/tcpdf": "<6.2.22", + "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", + "stormpath/sdk": ">=0,<9.9.99", + "studio-42/elfinder": "<2.1.48", + "swiftmailer/swiftmailer": ">=4,<5.4.5", + "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", + "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", + "sylius/grid-bundle": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", + "sylius/sylius": ">=1,<1.1.18|>=1.2,<1.2.17|>=1.3,<1.3.12|>=1.4,<1.4.4", + "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", + "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", + "symfony/http-kernel": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", + "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/mime": ">=4.3,<4.3.8", + "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/polyfill": ">=1,<1.10", + "symfony/polyfill-php55": ">=1,<1.10", + "symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/routing": ">=2,<2.0.19", + "symfony/security": ">=2,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/security-bundle": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<2.8.37|>=3,<3.3.17|>=3.4,<3.4.7|>=4,<4.0.7", + "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-guard": ">=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8", + "symfony/serializer": ">=2,<2.0.11", + "symfony/symfony": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", + "symfony/translation": ">=2,<2.0.17", + "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3", + "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8", + "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", + "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", + "tecnickcom/tcpdf": "<6.2.22", + "thelia/backoffice-default-template": ">=2.1,<2.1.2", + "thelia/thelia": ">=2.1-beta.1,<2.1.3", + "theonedemon/phpwhois": "<=4.2.5", + "titon/framework": ">=0,<9.9.99", + "truckersmp/phpwhois": "<=4.3.1", + "twig/twig": "<1.38|>=2,<2.7", + "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.27|>=9,<9.5.8", + "typo3/cms-core": ">=8,<8.7.27|>=9,<9.5.8", + "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.10|>=3.1,<3.1.7|>=3.2,<3.2.7|>=3.3,<3.3.5", + "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4", + "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", + "ua-parser/uap-php": "<3.8", + "wallabag/tcpdf": "<6.2.22", + "willdurand/js-translation-bundle": "<2.1.1", + "yiisoft/yii": ">=1.1.14,<1.1.15", + "yiisoft/yii2": "<2.0.15", + "yiisoft/yii2-bootstrap": "<2.0.4", + "yiisoft/yii2-dev": "<2.0.15", + "yiisoft/yii2-elasticsearch": "<2.0.5", + "yiisoft/yii2-gii": "<2.0.4", + "yiisoft/yii2-jui": "<2.0.4", + "yiisoft/yii2-redis": "<2.0.8", + "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3", + "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", + "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", + "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", + "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", + "zendframework/zend-diactoros": ">=1,<1.8.4", + "zendframework/zend-feed": ">=1,<2.10.3", + "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-http": ">=1,<2.8.1", + "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", + "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", + "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-session": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4", + "zendframework/zend-validator": ">=2.3,<2.3.6", + "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zendframework": "<2.5.1", + "zendframework/zendframework1": "<1.12.20", + "zendframework/zendopenid": ">=2,<2.0.2", + "zendframework/zendxml": ">=1,<1.0.1", + "zetacomponents/mail": "<1.8.2", + "zf-commons/zfc-user": "<1.2.2", + "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3", + "zfr/zfr-oauth2-server-module": "<0.1.2" + }, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "role": "maintainer" + } + ], + "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "time": "2019-12-02T13:03:15+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.5.2", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "65b12cdeaaa6cd276d4c3033a95b9b88b12701e7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/65b12cdeaaa6cd276d4c3033a95b9b88b12701e7", + "reference": "65b12cdeaaa6cd276d4c3033a95b9b88b12701e7", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2019-10-28T04:36:32+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": { + "roave/security-advisories": 20 + }, + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": ">=7.1" + }, + "platform-dev": [] +} diff -r 000000000000 -r 505fe5249d9c src/config/application.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/config/application.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,125 @@ +load(); + $dotenv->required(['WP_HOME', 'WP_SITEURL']); + if (!env('DATABASE_URL')) { + $dotenv->required(['DB_NAME', 'DB_USER', 'DB_PASSWORD']); + } +} + +/** + * Set up our global environment constant and load its config first + * Default: production + */ +define('WP_ENV', env('WP_ENV') ?: 'production'); + +/** + * URLs + */ +Config::define('WP_HOME', env('WP_HOME')); +Config::define('WP_SITEURL', env('WP_SITEURL')); + +/** + * Custom Content Directory + */ +Config::define('CONTENT_DIR', '/app'); +Config::define('WP_CONTENT_DIR', $webroot_dir . Config::get('CONTENT_DIR')); +Config::define('WP_CONTENT_URL', Config::get('WP_HOME') . Config::get('CONTENT_DIR')); + +/** + * DB settings + */ +Config::define('DB_NAME', env('DB_NAME')); +Config::define('DB_USER', env('DB_USER')); +Config::define('DB_PASSWORD', env('DB_PASSWORD')); +Config::define('DB_HOST', env('DB_HOST') ?: 'localhost'); +Config::define('DB_CHARSET', 'utf8mb4'); +Config::define('DB_COLLATE', ''); +$table_prefix = env('DB_PREFIX') ?: 'wp_'; + +if (env('DATABASE_URL')) { + $dsn = (object) parse_url(env('DATABASE_URL')); + + Config::define('DB_NAME', substr($dsn->path, 1)); + Config::define('DB_USER', $dsn->user); + Config::define('DB_PASSWORD', isset($dsn->pass) ? $dsn->pass : null); + Config::define('DB_HOST', isset($dsn->port) ? "{$dsn->host}:{$dsn->port}" : $dsn->host); +} + +/** + * Authentication Unique Keys and Salts + */ +Config::define('AUTH_KEY', env('AUTH_KEY')); +Config::define('SECURE_AUTH_KEY', env('SECURE_AUTH_KEY')); +Config::define('LOGGED_IN_KEY', env('LOGGED_IN_KEY')); +Config::define('NONCE_KEY', env('NONCE_KEY')); +Config::define('AUTH_SALT', env('AUTH_SALT')); +Config::define('SECURE_AUTH_SALT', env('SECURE_AUTH_SALT')); +Config::define('LOGGED_IN_SALT', env('LOGGED_IN_SALT')); +Config::define('NONCE_SALT', env('NONCE_SALT')); + +/** + * Custom Settings + */ +Config::define('AUTOMATIC_UPDATER_DISABLED', true); +Config::define('DISABLE_WP_CRON', env('DISABLE_WP_CRON') ?: false); +// Disable the plugin and theme file editor in the admin +Config::define('DISALLOW_FILE_EDIT', true); +// Disable plugin and theme updates and installation from the admin +Config::define('DISALLOW_FILE_MODS', true); + +/** + * Debugging Settings + */ +Config::define('WP_DEBUG_DISPLAY', false); +Config::define('SCRIPT_DEBUG', false); +ini_set('display_errors', '0'); + +/** + * Allow WordPress to detect HTTPS when used behind a reverse proxy or a load balancer + * See https://codex.wordpress.org/Function_Reference/is_ssl#Notes + */ +if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { + $_SERVER['HTTPS'] = 'on'; +} + +$env_config = __DIR__ . '/environments/' . WP_ENV . '.php'; + +if (file_exists($env_config)) { + require_once $env_config; +} + +Config::apply(); + +/** + * Bootstrap WordPress + */ +if (!defined('ABSPATH')) { + define('ABSPATH', $webroot_dir . '/wp/'); +} diff -r 000000000000 -r 505fe5249d9c src/phpcs.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/phpcs.xml Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,23 @@ + + + Roots Coding Standards + + + . + + + + + + web/wp + vendor/ + + + + + + + + + + diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/.gitkeep diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/README.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/README.txt Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,208 @@ +Wordpress Theme "Atahualpa" + +VISIT THE SUPPORT FORUMS AT http://forum.bytesforall.com/ + +##################################################################### + +UPGRADE: + +##################################################################### + +To manually upgrade the theme +------------------------- +1) download the new version of the theme +2) unzip the file +3) copy any images you have added in a prior release to the 'images/header' folder. If using a different folder this step is not needed. +See the forums for directions. +4) if you have added any other files (templates, icons) copy them to the same folder in the new version - unless you are using the method to store them elsewhere. See the forums for directions. +5) Make sure the Atahualpa folder is named with the version number i.e atahualpa3712 +6) upload the folder to the 'wordpress/wp-contents/themes' folder at your host +7) get on the backend of your site and go to Dashboard->Appearances->Themes and activate the new version +8) all done + +You can now check out the new version. If something is wrong, you can simply go back to Dashboard->Appearances->Themes and re-activate the prior version. + + +##################################################################### + +(First Time) INSTALLATION: + +##################################################################### + +1. Extract the file "atahualpaXXX.zip", "atahualpa.zip" or similar +on your desktop computer, i.e. with WinZip or 7-zip + +This will create a directory named atahualpa (or atahualpaXX) with many +files and subdirectories. + +From now on we'll call this directory "atahualpa" although it might be +"atahualpa3712" or whatever for you. + +##################################################################### + +2. Upload the complete folder "atahualpa" with all its contents to +your web hosting account to the directory +/your wordpress-install/wp-content/themes/ +so the final destination of the "atahualpa" folder becomes: +/your wordpress-install/wp-content/themes/atahualpa/ +You will need a "FTP Client" Software for this + +##################################################################### + +3. Activate Atahualpa by clicking on its name or screenshot at: + +Your Blog -> Site Admin -> Appearance -> Themes + +If you have no "Site Admin" link anywhere on your blog, try +http://www.your-domain.com/wp-admin/ +If you've installed WordPress in a subfolder such as "blog", it would +be http://www.your-domain.com/blog/wp-admin/ + +##################################################################### + +4. Reload your blog homepage and see if the theme is active. If not, +repeat the steps above or post at http://forum.bytesforall.com/ + +If it looks broken, it may be a matter of setting the theme options. +If the sidebars look empty, you may need to add widgets. + +##################################################################### + +5. Configure the theme at + +Your Blog -> Site Admin -> Appearance -> Atahualpa Theme Options + +##################################################################### + +6. The theme will automatically add 4 additional widgets to the list of available widgets: + +BFA Recent Comments +An alternative to the default "Recent Comments" widget + +BFA Popular Posts +Lists the posts with the most comments + +BFA Popular in Cat +Lists the posts with the most comments, in the given category. Will only appear on category pages. + +BFA Subscribe +Provides a Feedburner "Subscribe by Email" form, plus Posts and +Comments RSS links & buttons + +A widget is a content block that you can drag and drop into one +of the sidebars. All widgets, the 4 BFA widgets and the default +WordPress widgets, can be found at: + +Your Blog -> Site Admin -> Appearance -> Widgets + +##################################################################### + +7. OPTIONAL: Install additional plugins to enhance your blog + +Atahualpa should work with just about any plugin. Besides that it +has improved plug & play support for these plugins: + +WP-PageNavi +http://wordpress.org/extend/plugins/wp-pagenavi/ + +WP-Print +http://wordpress.org/extend/plugins/wp-print/ + +WP-Email +http://wordpress.org/extend/plugins/wp-email/ + +WP-PostViews +http://wordpress.org/extend/plugins/wp-postviews/ + +WP-PostRatings +http://wordpress.org/extend/plugins/wp-postratings/ + +Sociable +http://wordpress.org/extend/plugins/sociable/ +Go to the settings page at Settings -> Sociable and +uncheck all boxes in the sections "Position:" and "Use CSS:" + +LMB^Box Comment Quicktags +http://wordpress.org/extend/plugins/lmbbox-comment-quicktags/ + +Optional: Edit lmbbox-comment-quicktags.php: +1) To remove the link "Quicktags", delete the line 243 +Quicktags: +2) To fix a not validating tag, change line 276 + +to + + +Subscribe to Comments +http://wordpress.org/extend/plugins/subscribe-to-comments/ + +Paged Comments (not required in WP 2.7+ because paged comments are a core Wordpress feature now) +http://wordpress.org/extend/plugins/paged-comments/ + +CommentLuv +http://wordpress.org/extend/plugins/commentluv/ + +Get Recent Comments +http://wordpress.org/extend/plugins/get-recent-comments/ + + +Additionally, Atahualpa has been tested with + +Akismet +http://wordpress.org/extend/plugins/akismet/ +(this plugin should already be available in your blog) +Also requires http://wordpress.com/api-keys/ + +WP Cache 2 +http://wordpress.org/extend/plugins/wp-cache/ +This is easier to install than WP Super Cache + +WP Super Cache +http://wordpress.org/extend/plugins/wp-super-cache/ +This requires that you use Permalinks + +WP-Syntax +http://wordpress.org/extend/plugins/wp-syntax/ + +WPG2 +http://wordpress.org/extend/plugins/wpg2/ + +Nextgen Gallery +http://wordpress.org/extend/plugins/nextgen-gallery/ + +Feedburner Feedsmith +http://www.google.com/support/feedburner/bin/answer.py?answer=78483&topic=13252 + +Should also work with +All in one SEO (many Atahualpa users are using it) +and other SEO plugins + + +- When you add CSS through "CSS Inserts" or other theme options: Absolute paths must be used, such as +url(http://www.yoursite.com/wp-content/themes/atahualpa/images/myimage.gif). +A relative path such as url(images/myimage.gif) will NOT work in the theme options. + +##################################################################### + + +LICENSE: + + "Atahualpa" is a WordPress theme + Copyright (C) 2008-2012 Lmm Muenchen, BFA Webdesign (www.BytesForAll.com) + + 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 3 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, see . + + + + diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/_changelog.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/_changelog.txt Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,143 @@ +Changelog 3.7.24: +- Fixed a wrong META title when Front Page is a static page +- Fixed the cause of messages 'Notice: register_sidebar was called incorrectly' showing +- Fixed lack of a space in the when using 'HTML Inserts: Body Tag' +- Fix issue in CSS where there are two ';' when there should be one + +Changelog 3.7.23: +- Fixed an error which caused feeds to stop working +- Fixed an error which caused META data not to work using Atahualpa's SEO +- Fixed a condition that could cause 'Undefined index: bfa_ata_noncename' warning messages to be displayed +- New screenshot size + +Changelog 3.7.19: +- Fixed issue with the code added in 3.7.17 to show category names on - it now work when the blog page is the front page. +- added code to fix formatting errors when using BBPress +- added code to handle captions used in galleries +- bfa_meta_tags.php: Using wp_title filter + +Changelog 3.7.18: +- Fixed issue with the code added in 3.7.16 for rotating/fading header images +- added code to eliminate some php warnings when using dynamic (new) widget areas +- added code to allow the 'width' for new widget area to use 'px' or '%' +- changed all references of 'new widget area' to 'dynamic widget area' +- atahualpa.pot was empty + +Changelog 3.7.17: +- Fixed 'Theme is redirected when activated.' + +Changelog 3.7.16: + +- New Feature: using the '%category-linked%' option will now add a class of the category to the link +- New Feature: using the '%categories-linked%' option will now add a class for each category to the link +- New feature: on single post pages, the will now include the category classes of the post +- New Feature/Bug Fix: when using rotating header images and fade in/out the Blog Title and tag will now remain visible - this also forces the images to be aligned 'top center' +- fixed missing index's in all the default styles (atahualpa/styles) +- Fixed an error where a child menu item was showing the hover color and not the parents color +- Fixed some minor documentation errors in the theme options + + +Changelog 3.7.15: + +- made default favicon_url value blank ("") as per new WP.org theme requirements +- Replaced old tag 'fixed-width' with 'fixed-layout' +- Replaced old tag 'flexible-width' with 'fluid-layout' +- replaced file '_3.7.14.changelog' with 'changelog.txt' +- unclosed
... in header.php causing W3C error if default widgets were displayed (if no custom widgets in sidebar). + +Changelog 3.7.14: + +- removed some debugging code causing a 'ladybug' favicon to show when in the backend +- added 'more' processing to 'multi column/custom query' template + +Changelog 3.7.13: + +- added new 'Full width Header' option +- added new 'Full width footer' option + +Changelog 3.7.12: + +- added new 'Center Top area widget' option code +- added new 'Center Bottom area widget' option code +- added option to specify folder to use for the logo, favicon and header images +- fixed issue in 'multi column/custom query' template when using '0' +- bfa_rotating_header_images.php, line 5: $files = '' -> $files = array(); +- bfa_rotating_header_images.php, line 12: if($bfa_ata['images_root'] == "atahualpa") -> if($bfa_ata['images_root'] != "wp-content") +- bfa_custom_comments, line 10 (Undefined Notice): if ( $post = get_post($post_id) ) -> removed +- bfa_custom_comments, line 4: global $bfa_ata -> global $bfa_ata, $post + +Changelog 3.7.11: + +- fix export issue when WordPress Address and Site Address are different +- fix small extension of %bar1 and %bar2 +- removed depreciated code checking for multisites +- added an option to change the default directory header images are stored in. + You can now have separate header image folders for multisites. + +Changelog 3.7.10: + +- changed access to globals $templateURI and $homeURL to support https +- changed documentation about using 'New widget areas' in the center column +- get_template_directory_uri() instead of get_bloginfo in /functions/bfa_get_options.php + + +Changelog 3.7.9: + +- Only excerpts shown contrary to corresponding setting. http://forum.bytesforall.com/showthread.php?t=18241 +- Updated atahualpa.pot file +- Edited style.css description +- Removed references and instructions to/for ancient WP & Atahualpa versions in readme.txt +- Added function to redirect to theme options after activation, in functions.php +- removed log.txt file + + +Changelog 3.7.8: +- Double titles when using Yoast WP SEO: http://forum.bytesforall.com/showthread.php?t=18174 +- Issue with internal SEO options: http://forum.bytesforall.com/showthread.php?t=18160 +- Issue with print style at certain sidebar config: http://forum.bytesforall.com/showthread.php?t=18125 +- sticky.gif for sticky posts not found due to space in (default) image URL, caused by line break in /functions/bfa_theme_options.php line 2240/2241 +- added new feature auto resizing of videos (embed and iframe elements), in /js.php + + +Changelog 3.7.7: + +Based on http://themes.trac.wordpress.org/ticket/7485#comment:2 +- removed 'function_exists' for get_avatar, dynamic_sidebar, + is_front_page, is_tag, wp_list_comments, wp_nav_menu, register_sidebar_widget +- removed files /legacy.coments.php, /functions/bfa_body_class.php, /functions/bfa_bodyclasses.php +- namespaced many functions with 'bfa_', mainly in functions.php + +Changelog 3.7.6: + +- renamed is_pagetemplate_active() to bfa_is_pagetemplate_active() - http://themes.trac.wordpress.org/ticket/7404 +- update the POT file +- fixed and error where an index was missing effecting excerpts +- fixed an error where php was put into the 'POST Container: STICKY' styling +- changed the default option to include no CSS Inserts +- added a documentation example of putting H1 - H6 in the CSS Inserts +- fixed an error where a was being ignored + +Changelog 3.7.5: + +- Fixed line endings in _3.7.4.changelog.txt (this file) + +Changelog 3.7.4: + +- update the POT file +- Fix missing translation for some words +- Fixed odd character appears in the documentation for 'Add new Widget Areas' +- Fixed date-modified in post/page info items returns the date published +- update the 'CrossSlide jQuery ' to version 0.6.2 +- Enhancement - only load 'comment-reply.js' on pages where it is needed +- Remove '

...

' surrounding footer to prevent validation errors +- Make the 'Page' footer work for the archive page +- Replaced functions 'eregi()' and 'ereg()' which are deprecated in php 5.3 +- added a new function to allow testing for a pagetemplate +- added a multi-column custom query' page template +- enqueue scripts with add_action + +Changelog 3.7.3: + +- Replaced (.*) with less greedy (.*?) pattern for 'custom widgets areas' preg_replace across multiple lines, too: /functions.php, line 1013 +- Replaced preg_match_all with preg_replace_callback for 'date postinfo' so that multiple items can be used, /functions/bfa_postinfo.php, line 191-199 +- New function bfa_parse_date_callback, /functions/bfa_postinfo.php, line 17 diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/atahualpa.pot --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/atahualpa.pot Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,411 @@ +msgid "" +msgstr "" +"Project-Id-Version: Atahualpa\n" +"POT-Creation-Date: 2014-08-23 02:49+0100\n" +"PO-Revision-Date: 2014-08-23 02:49+0100\n" +"Last-Translator: BytesForAll \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.7\n" +"X-Poedit-KeywordsList: __;_e\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: .\n" + +#: comments-paged.php:3 comments.php:4 +msgid "Please do not load this page directly. Thanks!" +msgstr "" + +#: comments-paged.php:7 comments.php:7 +msgid "This post is password protected. Enter the password to view comments." +msgstr "" + +#: comments-paged.php:25 comments.php:26 +msgid "No comments yet to " +msgstr "" + +#: comments-paged.php:25 comments.php:27 +msgid "1 comment to " +msgstr "" + +#: comments-paged.php:26 comments.php:27 +#, php-format +msgid "% comments to " +msgstr "" + +#: comments-paged.php:30 comments-paged.php:125 index.php:36 +#: template_multi_column_custom_query.php:227 +msgid "Pages:" +msgstr "" + +#: comments-paged.php:61 functions/bfa_theme_options.php:2681 +msgid "Your comment is awaiting moderation." +msgstr "" + +#: comments-paged.php:68 comments-paged.php:102 +#: functions/bfa_custom_comments.php:22 +#, php-format +msgid "%1$s at %2$s" +msgstr "" + +#: comments-paged.php:68 comments-paged.php:102 +msgid "F jS, Y" +msgstr "" + +#: comments-paged.php:75 comments-paged.php:105 +msgid "Edit" +msgstr "" + +#: comments-paged.php:140 +msgid "Comments are closed." +msgstr "" + +#: comments-paged.php:153 comments.php:124 +msgid "Leave a Reply" +msgstr "" + +#: comments-paged.php:157 +#, php-format +msgid "You must be %slogged in to post a comment." +msgstr "" + +#: comments-paged.php:169 +#, php-format +msgid "Logged in as %s." +msgstr "" + +#: comments-paged.php:172 +msgid "Log out of this account" +msgstr "" + +#: comments-paged.php:172 +msgid "Logout »" +msgstr "" + +#: comments-paged.php:179 +msgid "author" +msgstr "" + +#: comments-paged.php:179 comments.php:96 +msgid "Name " +msgstr "" + +#: comments-paged.php:180 comments-paged.php:185 comments.php:96 +msgid "(required)" +msgstr "" + +#: comments-paged.php:184 +msgid "email" +msgstr "" + +#: comments-paged.php:184 +msgid "Mail (will not be published) " +msgstr "" + +#: comments-paged.php:189 +msgid "url" +msgstr "" + +#: comments-paged.php:189 comments.php:100 +msgid "Website" +msgstr "" + +#: comments-paged.php:196 comments.php:106 +#, php-format +msgid "You can use %1$sthese HTML tags" +msgstr "" + +#: comments-paged.php:205 +msgid "Submit Comment" +msgstr "" + +#: comments.php:40 comments.php:48 comments.php:58 +#: functions/bfa_theme_options.php:2664 +msgid " · Reply" +msgstr "" + +#: comments.php:41 comments.php:49 comments.php:59 +msgid "Log in to Reply" +msgstr "" + +#: comments.php:98 +msgid "Email" +msgstr "" + +#: comments.php:98 +msgid "(will not be published) (required)" +msgstr "" + +#: comments.php:118 +#, php-format +msgid "You must be logged in to post a comment." +msgstr "" + +#: comments.php:119 +#, php-format +msgid "" +"Logged in as %2$s. Log out?" +msgstr "" + +#: comments.php:125 +#, php-format +msgid "Leave a Reply to %s" +msgstr "" + +#: comments.php:126 +msgid "Cancel reply" +msgstr "" + +#: comments.php:127 +msgid "Post Comment" +msgstr "" + +#: footer.php:16 header.php:108 +msgid "Categories" +msgstr "" + +#: footer.php:22 header.php:115 +msgid "Archives" +msgstr "" + +#: footer.php:71 +msgid "Meta" +msgstr "" + +#: footer.php:77 +msgid "" +"Powered by WordPress, state-of-the-art semantic personal publishing platform." +msgstr "" + +#: footer.php:78 +msgid "WordPress" +msgstr "" + +#: footer.php:100 footer.php:106 footer.php:126 footer.php:132 +msgid " queries. " +msgstr "" + +#: footer.php:100 footer.php:106 footer.php:126 footer.php:132 +msgid " seconds." +msgstr "" + +#: functions.php:555 +msgid "Atahualpa Post Options" +msgstr "" + +#: functions.php:557 +msgid "Atahualpa Page Options" +msgstr "" + +#: functions.php:597 +msgid "Body Title Single Pages" +msgstr "" + +#: functions.php:599 +msgid "Body Title Multi Post Pages" +msgstr "" + +#: functions.php:603 +msgid "Meta Title" +msgstr "" + +#: functions.php:607 +msgid "Meta Keywords" +msgstr "" + +#: functions.php:611 +msgid "Meta Description" +msgstr "" + +#: functions.php:624 +msgid "Body copy title" +msgstr "" + +#: functions.php:707 +msgid "Menu 1" +msgstr "" + +#: functions.php:708 +msgid "Menu 2" +msgstr "" + +#: index.php:61 template_multi_column_custom_query.php:266 +msgid "Not Found" +msgstr "" + +#: index.php:62 template_multi_column_custom_query.php:267 +msgid "Sorry, but you are looking for something that isn't here." +msgstr "" + +#: functions/bfa_calendar_widget.php:12 +msgid "A calendar of your blog's posts" +msgstr "" + +#: functions/bfa_calendar_widget.php:13 functions/bfa_calendar_widget.php:14 +msgid "Calendar" +msgstr "" + +#: functions/bfa_hor_cats.php:41 +msgid "View all posts filed under" +msgstr "" + +#: functions/bfa_meta_tags.php:98 +msgid "l, F jS, Y" +msgstr "" + +#: functions/bfa_meta_tags.php:101 +msgid "F Y" +msgstr "" + +#: functions/bfa_meta_tags.php:110 +msgid "404 - Page not found" +msgstr "" + +#: functions/bfa_popular_in_cat.php:130 +msgid "Lists most commented posts of given category" +msgstr "" + +#: functions/bfa_popular_in_cat.php:132 functions/bfa_popular_in_cat.php:133 +msgid "BFA Popular in Cat" +msgstr "" + +#: functions/bfa_popular_posts.php:146 +msgid "Lists most commented posts overall" +msgstr "" + +#: functions/bfa_popular_posts.php:148 functions/bfa_popular_posts.php:149 +msgid "BFA Popular posts" +msgstr "" + +#: functions/bfa_postinfo.php:295 +#, php-format +msgid "View all posts in %s" +msgstr "" + +#: functions/bfa_post_parts.php:39 functions/bfa_post_parts.php:71 +msgid "Permanent Link to " +msgstr "" + +#: functions/bfa_post_parts.php:63 +msgid "Permanent Link" +msgstr "" + +#: functions/bfa_recent_comments.php:163 functions/bfa_recent_comments.php:165 +#: functions/bfa_recent_comments.php:167 functions/bfa_recent_comments.php:169 +msgid "On: " +msgstr "" + +#: functions/bfa_recent_comments.php:171 functions/bfa_recent_comments.php:173 +#: functions/bfa_recent_comments.php:175 functions/bfa_recent_comments.php:177 +msgid " on: " +msgstr "" + +#: functions/bfa_recent_comments.php:334 +msgid "Lists the most recent comments" +msgstr "" + +#: functions/bfa_recent_comments.php:336 functions/bfa_recent_comments.php:337 +msgid "BFA Recent Comments" +msgstr "" + +#: functions/bfa_theme_options.php:954 +msgid "Posts" +msgstr "" + +#: functions/bfa_theme_options.php:962 +msgid "Subscribe to the POSTS feed" +msgstr "" + +#: functions/bfa_theme_options.php:980 +msgid "Comments" +msgstr "" + +#: functions/bfa_theme_options.php:988 +msgid "Subscribe to the COMMENTS feed" +msgstr "" + +#: functions/bfa_theme_options.php:1006 +msgid "By Email" +msgstr "" + +#: functions/bfa_theme_options.php:1014 +msgid "Subscribe by EMAIL" +msgstr "" + +#: functions/bfa_theme_options.php:1067 +msgid "Home" +msgstr "" + +#: functions/bfa_theme_options.php:1545 +msgid "« Newer Entries" +msgstr "" + +#: functions/bfa_theme_options.php:1564 +msgid "Older Entries »" +msgstr "" + +#: functions/bfa_theme_options.php:1604 +msgid "Newer Comments »" +msgstr "" + +#: functions/bfa_theme_options.php:1614 +msgid "« Older Comments" +msgstr "" + +#: functions/bfa_theme_options.php:2245 functions/bfa_theme_options.php:2259 +#: functions/bfa_theme_options.php:2272 +msgid "Tags: " +msgstr "" + +#: functions/bfa_theme_options.php:2246 functions/bfa_theme_options.php:2260 +#: functions/bfa_theme_options.php:2273 +msgid "Category:" +msgstr "" + +#: functions/bfa_theme_options.php:2246 functions/bfa_theme_options.php:2260 +msgid "Leave a comment" +msgstr "" + +#: functions/bfa_theme_options.php:2247 functions/bfa_theme_options.php:2261 +msgid "One comment" +msgstr "" + +#: functions/bfa_theme_options.php:2247 functions/bfa_theme_options.php:2261 +#, php-format +msgid "% comments" +msgstr "" + +#: functions/bfa_theme_options.php:2247 functions/bfa_theme_options.php:2261 +msgid "Comments are closed" +msgstr "" + +#: functions/bfa_theme_options.php:2248 functions/bfa_theme_options.php:2262 +#: functions/bfa_theme_options.php:2273 +msgid "Edit this post" +msgstr "" + +#: functions/bfa_theme_options.php:2578 +msgid "Continue reading %post-title%" +msgstr "" + +#: functions/bfa_theme_options.php:2672 +msgid " · Edit" +msgstr "" + +#: functions/bfa_theme_options.php:2690 +msgid "

Comments are closed.

" +msgstr "" + +#: functions/bfa_theme_options.php:2792 +msgid "Copyright © %current-year% %home% - All Rights Reserved" +msgstr "" + +#: functions/bfa_theme_options.php:3119 +msgid "Archives by Month" +msgstr "" + +#: functions/bfa_theme_options.php:3158 +msgid "Archives by Category" +msgstr "" diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/comments-paged.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/comments-paged.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,217 @@ +post_password)) { // if there's a password + if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn't match the cookie ?> +

+ + + + + +

+ + + pager->num_pages() > 1): ?> +

+ + + + +
    + + + + foreach ($comments as $comment) : + if ( ($bfa_ata['separate_trackbacks'] == "Yes" AND get_comment_type() == 'comment') + OR $bfa_ata['separate_trackbacks'] == "No" ) { ?> + +
  1. comment_author_email == get_the_author_meta('email') ) { + echo 'class="authorcomment clearfix" '; + } else { + echo $oddcomment; + } ?> id="comment-"> + + comment_author_email, $size=$bfa_ata['avatar_size']); + ?> + +
    + + + + comment_approved == '0') : + _e('Your comment is awaiting moderation.','atahualpa'); + endif; ?> + +
    + + + + + + + + ',''); ?> + + +
  2. + + + + + +
  3. id="comment-"> + +
    + + : + +
    + + + + + + + +
  4. + + + +
+ + + + pager->num_pages() > 1): ?> +

+ + + + + + comment_status) : ?> + + + + + +

+ + + + + +comment_status) : ?> + +
+ + +

+ + +

to post a comment.', 'atahualpa'), '')?>

+ + + + +
+ + +

+ ' . $user_identity . '')?> + +

+ + +

+ + +

+

+ + +

+

+ + +

+ + + + "; lmbbox_comment_quicktags_display(); echo "

"; } + else { if ($bfa_ata['show_xhtml_tags'] == "Yes") { ?> +

','atahualpa'), ''); ?>

+

+ + + +

+ ID); ?> + + +

+ +

+ + +
+ + + + + + + \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/comments.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/comments.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,133 @@ + + +comment_status)) { + $bfa_page_comment_open = 1; } +else { + $bfa_page_comment_open = 0;} + +if ( have_comments() ) : ?> + + +

+ + + + +
    + + $bfa_ata['avatar_size'], + 'reply_text'=>__(' · Reply','atahualpa'), + 'login_text'=>__('Log in to Reply','atahualpa'), + 'callback' => 'bfa_comments', + 'type' => 'comment' + )); + + wp_list_comments(array( + 'avatar_size'=>$bfa_ata['avatar_size'], + 'reply_text'=>__(' · Reply','atahualpa'), + 'login_text'=>__('Log in to Reply','atahualpa'), + 'callback' => 'bfa_comments', + 'type' => 'pings' + )); + + } else { + + wp_list_comments(array( + 'avatar_size'=>$bfa_ata['avatar_size'], + 'reply_text'=>__(' · Reply','atahualpa'), + 'login_text'=>__('Log in to Reply','atahualpa'), + 'callback' => 'bfa_comments', + 'type' => 'all' + )); + + } ?> + +
+ + + + + + + comment_status) ) : ?> + + + + + + + + + + + + + '

' . + '  

', + 'email' => '

' . + '  

', + 'url' => '

' . + '  

' +); + +if ($bfa_ata['show_xhtml_tags'] == "Yes") { + $comment_notes_after = ' +

' . + sprintf(__('You can use %1$sthese HTML tags','atahualpa'), + '') . '

+

' . allowed_tags() . ' +

'; +} else { + $comment_notes_after = ''; +} + +// The rest is set here: +$comment_form_settings = array( + 'fields' => apply_filters( 'comment_form_default_fields', $fields ), + 'comment_field' => '

', + 'must_log_in' => '
', + 'logged_in_as' => '

' . sprintf( __( 'Logged in as %2$s. Log out?', 'atahualpa' ), admin_url( 'profile.php' ), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '

', + 'comment_notes_before' => '', + 'comment_notes_after' => $comment_notes_after, + 'id_form' => 'commentform', + 'id_submit' => 'submit', + 'title_reply' => __( 'Leave a Reply','atahualpa' ), + 'title_reply_to' => __( 'Leave a Reply to %s','atahualpa' ), + 'cancel_reply_link' => __( 'Cancel reply','atahualpa' ), + 'label_submit' => __( 'Post Comment' ,'atahualpa') +); +?> + + \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/css.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/css.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,2960 @@ +'; +} else { + header("Content-type: text/css"); +} +if ( $bfa_ata['css_compress'] == "Yes" AND +!( $bfa_ata_debug == 1 AND $bfa_ata['allow_debug'] == "Yes" ) ) { + ob_start("bfa_compress_css"); +} + +function bfa_compress_css($buffer) { + + /* remove comments */ + $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer); + + /* remove tabs, spaces, newlines, etc. */ + $buffer = str_replace(array("\r\n", "\r", "\n", "\t"), '', $buffer); + $buffer = str_replace(array(' ', ' ', ' ', ' '), ' ', $buffer); + $buffer = str_replace(array(": ", " :"), ':', $buffer); + $buffer = str_replace(array(" {", "{ "), '{', $buffer); + $buffer = str_replace(';}','}', $buffer); + $buffer = str_replace(', ', ',', $buffer); + $buffer = str_replace('; ', ';', $buffer); + + return $buffer; + +} + +?> +/* ------------------------------------------------------------------ +---------- BASE LAYOUT ---------------------------------------------- +------------------------------------------------------------------ */ + +body { + text-align: center; /* centering the page container, + text-align will be reset to left + inside the container */ + margin: 0; + padding: 0; + + } + +a:link, a:visited, a:active { + color: #; + font-weight: ; + text-decoration: ; + } + +a:hover { + color: #; + font-weight: ; + text-decoration: ; + } + +ul, ol, dl, p, h1, h2, h3, h4, h5, h6 { + margin-top: 10px; + margin-bottom: 10px; + padding-top: 0; + padding-bottom: 0; + } + +/* remove margins on sub-lists */ +ul ul, ul ol, ol ul, ol ol { + margin-top: 0; + margin-bottom: 0; + } +/* +h1 { font-size: 34px; line-height: 1.2; margin: 0.3em 0 10px; } +h2 { font-size: 28px; line-height: 1.3; margin: 1em 0 .2em; } +h3 { font-size: 24px; line-height: 1.3; margin: 1em 0 .2em; } +h4 { font-size: 19px; margin: 1.33em 0 .2em; } +h5 { font-size: 1.3em; margin: 1.67em 0; font-weight: bold; } +h6 { font-size: 1.15em; margin: 1.67em 0; font-weight: bold; } +*/ +code, pre { + font-family: "Courier New", Courier, monospace; + font-size: 1em; + } + +pre { + overflow: auto; + word-wrap: normal; + padding-bottom: 1.5em; + overflow-y: hidden; + width: 99%; + } + +abbr[title], acronym[title] { + border-bottom: 1px dotted; + } + +hr { + display: block; + height: 2px; + border: none; + margin: 0.5em auto; + color: #cccccc; + background-color: #cccccc; + } + +/* use the body's font size in tables, too: */ + +table { + font-size: 1em; + } + + +/* ------------------------------------------------------------------ +---------- BREAK LONG STRINGS --------------------------------------- +------------------------------------------------------------------ */ + +/* break long strings in IE6+ and Safari2+ in posts and comments: */ + +div.post, ul.commentlist li, ol.commentlist li { + word-wrap: break-word; + } + +/* reset "break-word" for pre & wp-syntax: */ + +pre, .wp_syntax { + word-wrap: normal; + } + + +/* ------------------------------------------------------------------ +---------- WRAPPER, CONTAINER & LAYOUT ------------------------------ +------------------------------------------------------------------ */ + + + +/*-------------------- WRAPPER for MIN / MAX width --------*/ + +div#wrapper { + text-align: center; + margin-left: auto; + margin-right: auto; + display: block; + width: ; + + } + + +* html div#wrapper { +} + (((document.compatMode && + document.compatMode=='CSS1Compat') ? + document.documentElement.clientWidth : + document.body.clientWidth) + < ? "px" : + "")); +--> + } + + +/*-------------------- CONTAINER for VISUAL styles --------*/ + +div#container { + + + padding-left: px; + padding-right: px; + + width: auto; + margin-left: auto; + margin-right: auto; + text-align: left; /* resetting the "text-align: center" of "wrapper" */ + display: block; + } + +/*-------------------- LAYOUT to keep it all together -----*/ + +table#layout { + font-size: 100%; + width: 100%; + table-layout: fixed; + } + +.colone {width: px;} +.colone-inner {width: px;} +.coltwo { width: 100% } +.colthree-inner {width: px;} +.colthree {width: px;} + +/* ------------------------------------------------------------------ +---------- HEADER --------------------------------------------------- +------------------------------------------------------------------ */ + +div#header.full-width {width: 100%;} +/*-------------------- HEADER CONTAINER -------------------*/ + +div#header, +td#header { + width: auto; + padding: 0; + } + + +/*-------------------- LOGO AREA --------------------------*/ + +table#logoarea, +table#logoarea tr, +table#logoarea td { + margin: 0; + padding: 0; + background: none; + border: 0; + } + +table#logoarea { + width: 100%; + border-spacing: 0px; + + } + +/*-------------------- LOGO -------------------------------*/ + +img.logo { + display: block; + + } + +td.logoarea-logo { + width: 1%; + } + + +/*-------------------- BLOG TITLE -------------------------*/ + +h1.blogtitle, +h2.blogtitle { + display: block; + + font-smooth: always; + } + +h1.blogtitle a:link, +h1.blogtitle a:visited, +h1.blogtitle a:active, +h2.blogtitle a:link, +h2.blogtitle a:visited, +h2.blogtitle a:active { + text-decoration: none; + color: #; + font-weight: ; + font-smooth: always; + } + +h1.blogtitle a:hover, +h2.blogtitle a:hover { + text-decoration: none; + color: #; + font-weight: ; + } + +/*-------------------- BLOG TAGLINE -----------------------*/ + +p.tagline { + + } + +td.feed-icons { + white-space: nowrap; + } + +div.rss-box { + height: 1%; + display: block; + padding: 10px 0 10px 10px; + margin: 0; + width: px; + } + +/*-------------------- COMMENTS FEED ICON -----------------*/ + +a.comments-icon { + height: 22px; + line-height: 22px; + margin: 0 5px 0 5px; + padding-left: 22px; + display: block; + text-decoration: none; + float: right; + white-space: nowrap; + } + +a.comments-icon:link, +a.comments-icon:active, +a.comments-icon:visited { + background: transparent url(/images/comment-gray.png) no-repeat scroll center left; +} + +a.comments-icon:hover { + background: transparent url(/images/comment.png) no-repeat scroll center left; +} + + +/*-------------------- POSTS FEED ICON --------------------*/ + +a.posts-icon { + height: 22px; + line-height: 22px; + margin: 0 5px 0 0; + padding-left: 20px; + display: block; + text-decoration: none; + float: right; + white-space: nowrap; + } + +a.posts-icon:link, +a.posts-icon:active, +a.posts-icon:visited { + background: transparent url(/images/rss-gray.png) no-repeat scroll center left; +} + +a.posts-icon:hover { + background: transparent url(/images/rss.png) no-repeat scroll center left; +} + +/*-------------------- EMAIL SUBSCRIBE ICON ---------------*/ + +a.email-icon { + height: 22px; + line-height: 22px; + margin: 0 5px 0 5px; + padding-left: 24px; + display: block; + text-decoration: none; + float: right; + white-space: nowrap; + } + +a.email-icon:link, +a.email-icon:active, +a.email-icon:visited { + background: transparent url(/images/email-gray.png) no-repeat scroll center left; +} + +a.email-icon:hover { + background: transparent url(/images/email.png) no-repeat scroll center left; +} + +/*-------------------- SEARCH BOX IN HEADER ---------------*/ + +td.search-box { + height: 1%; + } + +div.searchbox { + height: 35px; + + } + +div.searchbox-form { + margin: 5px 10px 5px 10px; + } + + + +/*-------------------- HORIZONTAL BARS --------------------*/ + +div.horbar1, +div.horbar2 { + font-size: 1px; + clear: both; + display: block; + position: relative; + padding: 0; + margin: 0; + } + +div.horbar1 { + + } + +div.horbar2 { + + } + + +div.header-image-container-pre { + position: relative; + margin: 0; + padding: 0; + height: px; + } + +div.header-image-container { + position: relative; + margin: 0; + padding: 0; + height: px; + } + +div.codeoverlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + + + +div.titleoverlay { + z-index: 4; + position: absolute; + top: 0; + float: left; + width: auto; + + } + + + +/*-------------------- OPACITY LEFT -----------------------*/ + +div.opacityleft { + position: absolute; + z-index: 2; + top: 0; + left: 0; + background-color: #; + height: px; + width: px; + filter: alpha(opacity=); + opacity:.; + } + + + +/*-------------------- OPACITY RIGHT ----------------------*/ + +div.opacityright { + position: absolute; + z-index: 2; + top: 0; + right: 0; + background-color: #; + height: px; + width: px; + filter: alpha(opacity=); + opacity:.; + } + + + + +/*-------------------- CLICKABLE HEADER IMAGE -------------*/ + +div.clickable { + position:absolute; + top:0; + left:0; + z-index:3; + margin: 0; + padding: 0; + width: 100%; + height: px; + } + + +a.divclick:link, +a.divclick:visited, +a.divclick:active, +a.divclick:hover { + width: 100%; + height: 100%; + display: block; + text-decoration: none; + } + + +/* ------------------------------------------------------------------ +---------- LEFT SIDEBARS --------------------------------------------- +------------------------------------------------------------------ */ + +td#left { + vertical-align: top; + + } + +td#left-inner { + vertical-align: top; + + } + +/* ------------------------------------------------------------------ +---------- RIGHT SIDEBARS -------------------------------------------- +------------------------------------------------------------------ */ + +td#right { + vertical-align: top; + + } + +td#right-inner { + vertical-align: top; + + } + +/* ------------------------------------------------------------------ +---------- CENTER COLUMN -------------------------------------------- +------------------------------------------------------------------ */ + +td#middle { + vertical-align: top; + width: 100%; + + } + + +/* ------------------------------------------------------------------ +---------- FOOTER --------------------------------------------------- +------------------------------------------------------------------ */ +div#footer.full-width {width: 100%;} + +div#footer, +td#footer { + width: auto; + + } + +div#footer a:link, div#footer a:visited, div#footer a:active, +td#footer a:link, td#footer a:visited, td#footer a:active { + + } + +div#footer a:hover, +td#footer a:hover { + + } + + +/* ------------------------------------------------------------------ +---------- WIDGETS -------------------------------------------------- +------------------------------------------------------------------ */ + +div.widget { + display: block; + width: auto; /* without this IE will stretch too-wide select + menus but not the other widgets. With 100% IE + will remove sidebar borders if select menu is + too wide */ + + } + +div.widget-title { + display: block; + width: auto; + + } + +div.widget-title h3, +td#left h3.tw-widgettitle, +td#right h3.tw-widgettitle, +td#left ul.tw-nav-list, +td#right ul.tw-nav-list { + padding:0; + margin:0; + + } + +/* Since 3.4 "div-widget-content" is gone for better plugin compatibility. +Instead we'll try to mimick the feature by putting the styles on the following +containers: */ +div.widget ul, +div.textwidget { + display: block; + width: auto; + + } + + +/* ------------------------------------------------------------------ +---------- Select MENUS INSIDE OF WIDGETS ------------------------- +------------------------------------------------------------------ */ + +/* if a select menu is too wide to fit into the sidebar (because one + or several of its option titles are too long) then it will be cut off + in IE 6 & 7 */ + +div.widget select { + width: 98%; /* auto won't work in Safari */ + margin-top: 5px; + +} + + +/* ------------------------------------------------------------------ +---------- LISTS INSIDE OF WIDGETS ---------------------------------- +------------------------------------------------------------------ */ + +div.widget ul { + list-style-type: none; + margin: 0; + padding: 0; + width: auto; + } + +/*------------- base styling for all widgets -----------*/ + +div.widget ul li { + display: block; + margin: 2px 0 2px px; + padding: 0 0 0 px; + border-left: solid px #; + } + +div.widget ul li:hover, +div.widget ul li.sfhover { +display: block; +width: auto; + border-left: solid px #; + } + +div.widget ul li ul li { + margin: 2px 0 2px px; + padding: 0 0 0 px; + border-left: solid px #; + } + +div.widget ul li ul li:hover, +div.widget ul li ul li.sfhover { + border-left: solid px #; + } + +div.widget ul li ul li ul li { + margin: 2px 0 2px px; + padding: 0 0 0 px; + border-left: solid px #; + } + +div.widget ul li ul li ul li:hover, +div.widget ul li ul li ul li.sfhover { + border-left: solid px #; + } + +div.widget a:link, +div.widget a:visited, +div.widget a:active, +div.widget td a:link, +div.widget td a:visited, +div.widget td a:active, +div.widget ul li a:link, +div.widget ul li a:visited, +div.widget ul li a:active { + text-decoration: none; + font-weight: normal; + color: #; + font-weight: ; + } + +div.widget ul li ul li a:link, +div.widget ul li ul li a:visited, +div.widget ul li ul li a:active { + color: #; + font-weight: ; + } + +div.widget ul li ul li ul li a:link, +div.widget ul li ul li ul li a:visited, +div.widget ul li ul li ul li a:active { + color: #; + font-weight: ; + } + + +div.widget a:hover, +div.widget ul li a:hover { + color: #; + } + +div.widget ul li ul li a:hover { + color: #; + } + +div.widget ul li ul li ul li a:hover { + color: #; + } + +div.widget ul li a:link, +div.widget ul li a:visited, +div.widget ul li a:active, +div.widget ul li a:hover { + display: inline; + } + +* html div.widget ul li a:link, +* html div.widget ul li a:visited, +* html div.widget ul li a:active, +* html div.widget ul li a:hover { + height: 1%; /* IE6 needs this */ + } + +/*------------- styling for categories and pages widgets -----------*/ + +/* Because they can have sub items, the categories and the pages +widgets get the left border and padding on the instead of the
  • . +Otherwise, sub items would have two left borders - their own left border +and the left border of their parent (since the parent contains the sub item). +You may actually like that, it looks interesting. To try it out, comment all the next +rules up to "BFA SUBSCRIBE WIDGET" */ + +/* First, remove the left border and padding from the
  • . The margin stays on the
  • 's +because if the 's of the cateories widget were set to display:inline (default setting) +then margin would work there */ +div.widget_nav_menu ul li, +div.widget_pages ul li, +div.widget_categories ul li { + border-left: 0 !important; + padding: 0 !important; +} + +/* Then, add left border and padding to the */ +div.widget_nav_menu ul li a:link, +div.widget_nav_menu ul li a:visited, +div.widget_nav_menu ul li a:active, +div.widget_pages ul li a:link, +div.widget_pages ul li a:visited, +div.widget_pages ul li a:active, +div.widget_categories ul li a:link, +div.widget_categories ul li a:visited, +div.widget_categories ul li a:active { + padding: 0 0 0 px; + border-left: solid px #; + } + +div.widget_nav_menu ul li a:hover, +div.widget_pages ul li a:hover, +div.widget_categories ul li a:hover { + border-left: solid px #; +} + +div.widget_nav_menu ul li ul li a:link, +div.widget_nav_menu ul li ul li a:visited, +div.widget_nav_menu ul li ul li a:active, +div.widget_pages ul li ul li a:link, +div.widget_pages ul li ul li a:visited, +div.widget_pages ul li ul li a:active, +div.widget_categories ul li ul li a:link, +div.widget_categories ul li ul li a:visited, +div.widget_categories ul li ul li a:active { + padding: 0 0 0 px; + border-left: solid px #; + } + +div.widget_nav_menu ul li ul li a:hover, +div.widget_pages ul li ul li a:hover, +div.widget_categories ul li ul li a:hover { + border-left: solid px #; +} + +div.widget_nav_menu ul li ul li ul li a:link, +div.widget_nav_menu ul li ul li ul li a:visited, +div.widget_nav_menu ul li ul li ul li a:active, +div.widget_pages ul li ul li ul li a:link, +div.widget_pages ul li ul li ul li a:visited, +div.widget_pages ul li ul li ul li a:active, +div.widget_categories ul li ul li ul li a:link, +div.widget_categories ul li ul li ul li a:visited, +div.widget_categories ul li ul li ul li a:active { + padding: 0 0 0 px; + border-left: solid px #; + } + +div.widget_nav_menu ul li ul li ul li a:hover, +div.widget_pages ul li ul li ul li a:hover, +div.widget_categories ul li ul li ul li a:hover { + border-left: solid px #; +} + +/* The pages widget gets "block" because it usually has only +one link per
  • and no text */ +div.widget_nav_menu ul li a:link, +div.widget_nav_menu ul li a:active, +div.widget_nav_menu ul li a:visited, +div.widget_nav_menu ul li a:hover, +div.widget_pages ul li a:link, +div.widget_pages ul li a:active, +div.widget_pages ul li a:visited, +div.widget_pages ul li a:hover { + display: block !important; +} + +/* The category widget gets "inline" per default or otherwise the +post count would wrap into the next line. If no post count is displayed, +"block" can be chosen at Theme Options -> Style Widgets -> Category Widget Display Type. +With "block", links that don't fit into one line will align properly (as a block) +on the left side. */ +div.widget_categories ul li a:link, +div.widget_categories ul li a:active, +div.widget_categories ul li a:visited, +div.widget_categories ul li a:hover { + display: !important; +} + + + +/* ------------------------------------------------------------------ +---------- BFA SUBSCRIBE WIDGET ------------------------------------- +------------------------------------------------------------------ */ + +table.subscribe { + width: 100%; + } + +table.subscribe td.email-text { + padding: 0 0 5px 0; + vertical-align: top; + } + +table.subscribe td.email-field { + padding: 0; + width: 100%; + } + +table.subscribe td.email-button { + padding: 0 0 0 5px; + } + +table.subscribe td.post-text { + padding: 7px 0 0 0; + vertical-align: top; + } + +table.subscribe td.comment-text { + padding: 7px 0 0 0; + vertical-align: top; + } + + +/* ------------------------------------------------------------------ +---------- POSTS ---------------------------------------------------- +------------------------------------------------------------------ */ + +/*-------------------- POST CONTAINER ---------------------*/ + +div.post, div.page { + display: block; + + } + +/* additonal styles for sticky posts */ + +div.sticky { + + } + +/*-------------------- POST KICKER ------------------------*/ + +div.post-kicker { + + } + +div.post-kicker a:link, +div.post-kicker a:visited, +div.post-kicker a:active { + + } + +div.post-kicker a:hover { + + } + +/*-------------------- POST HEADLINE ----------------------*/ + +div.post-headline { + + } + +div.post-headline h1, +div.post-headline h2 { + margin: 0; + padding: 0; + + } + +div.post-headline h2 a:link, +div.post-headline h2 a:visited, +div.post-headline h2 a:active, +div.post-headline h1 a:link, +div.post-headline h1 a:visited, +div.post-headline h1 a:active { + + } + +div.post-headline h2 a:hover, +div.post-headline h1 a:hover { + + } + + +/*-------------------- POST BYLINE ------------------------*/ + +div.post-byline { + + } + +div.post-byline a:link, +div.post-byline a:visited, +div.post-byline a:active { + + } + +div.post-byline a:hover { + + } + + +/*-------------------- POST BODY COPY ---------------------*/ + +div.post-bodycopy { + + } + +div.post-bodycopy p { + margin: 1em 0; + padding: 0; + display: block; + /* The rule below would create hor. scrollbars in Firefox, + which would be better than overflowing long strings, but the + downside is that text won't float around images anymore. + Uncomment this if you don't float images anyway */ + /* overflow: auto; */ + } + + +/*-------------------- POST PAGINATION --------------------*/ + +div.post-pagination { + /*border: solid 1px brown;*/ + } + + +/*-------------------- POST FOOTER ------------------------*/ + +div.post-footer { + clear:both; + display: block; + + } + +div.post-footer a:link, +div.post-footer a:visited, +div.post-footer a:active { + + } + +div.post-footer a:hover { + + } + +/*-------------------- ICONS in KICKER, BYLINE & FOOTER ---*/ + +div.post-kicker img, +div.post-byline img, +div.post-footer img { + border: 0; + padding: 0; + margin: 0 0 -1px 0; + background: none; + } + +span.post-ratings { + display:inline-block; /* postratings set to "span" by the + theme, instead of default "div", to + make them display inline. Adding + inline-block and nowrap to avoid + line wrapping of single voting stars. */ + width: auto; + white-space: nowrap; + } + + +/* ------------------------------------------------------------------ +---------- PAGE NAVIGATION NEXT/PREVIOUS ---------------------------- +------------------------------------------------------------------ */ + +div.navigation-top { + + } + +div.navigation-middle { + + } + +div.navigation-bottom { + + } + +div.navigation-comments-above { + + } + +div.navigation-comments-below { + + } + +div.older { + float: left; + width: 48%; + text-align: left; + margin:0; + padding:0; + } + +div.newer { + float:right; + width: 48%; + text-align: right; + margin:0; + padding:0; + } + +div.older-home { + float: left; + width: 44%; + text-align: left; + margin:0; + padding:0; + } + +div.newer-home { + float:right; + width: 44%; + text-align: right; + margin:0; + padding:0; + } + +div.home { + float: left; + width: 8%; + text-align: center; + margin:0; + padding:0; + } + + +/* ------------------------------------------------------------------ +---------- FORMS ---------------------------------------------------- +------------------------------------------------------------------ */ + +form, .feedburner-email-form { + margin: 0; + padding: 0; + } + +fieldset { + border: 1px solid #cccccc; + width: auto; + padding: 0.35em 0.625em 0.75em; + display: block; + } + +legend { + color: #000000; + background: #f4f4f4; + border: 1px solid #cccccc; + padding: 2px 6px; + margin-bottom: 15px; + } + +form p { + margin: 5px 0 0 0; + padding: 0; + } + +div.xhtml-tags p { +margin: 0; +} + +label { + margin-right: 0.5em; + font-family: arial; + cursor: pointer; + } + +/* input.TextField for WP-Email +input.textbox for WPG2 */ +input.text, +input.textbox, +input.password, +input.file, +input.TextField, +textarea { + padding: 3px; + + + } + +textarea { + width: 96%; + } + + +input.inputblur { + color: #777777; + width: 95%; + } + +input.inputfocus { + color: #000000; + width: 95%; + } + + +input.highlight, textarea.highlight { + + } + + +/* .Button for WP-Email, input[type=submit] for comment submit button since 3.6.1 */ +.button, .Button, input[type=submit] { + padding: 0 2px; + height: 24px; + line-height: 16px; + + } + +/* changed from .buttonhover to input.buttonhover in 3.6.1 */ +input.buttonhover { + padding: 0 2px; + cursor: pointer; + + } + +/* comment submit button */ + +/* IE button width/padding fix */ + +form#commentform input#submit { + padding: 0 .25em; + /* Since 3.6: Using comment_form() */ + /* width: 0; */ + overflow:visible; +} + +form#commentform input#submit[class] { /*ie ignores [class]*/ + width: auto; +} + +form#commentform input#submit { + + } + +/* ------------------------------------------------------------------ +---------- SEARCH FORM ---------------------------------------------- +------------------------------------------------------------------ */ + +table.searchform { + width: 100%; + } + +table.searchform td.searchfield { + padding: 0; + width: 100%; + } + +table.searchform td.searchbutton { + padding: 0 0 0 5px; + } + +table.searchform td.searchbutton input{ + padding: 0 0 0 5px; + } + +/* ------------------------------------------------------------------ +---------- BLOCKQUOTES ---------------------------------------------- +------------------------------------------------------------------ */ + +blockquote { + height: 1%; + display: block; + clear: both; + + } + +blockquote blockquote { + height: 1%; + display: block; + clear: both; + + } + + +/* ------------------------------------------------------------------ +---------- TABLES & CALENDAR ---------------------------------------- +------------------------------------------------------------------ */ + +/*-------------------- TABLES IN POSTS --------------------*/ + +div.post table { + + } + +div.post table caption { + width: auto; + margin: 0 auto; + + } + +div.post table th { + + } + +div.post table td { + + } + +div.post table tfoot td { + + } + +div.post table tr.alt td { + + } + +div.post table tr.over td { + + } + +/*-------------------- CALENDAR WIDGET --------------------*/ + +#calendar_wrap { + padding: 0; + border: none; + } + +table#wp-calendar { + width: 100%; + font-size:90%; + border-collapse: collapse; + background-color: #ffffff; + margin: 0 auto; + } + +table#wp-calendar caption { + width: auto; + background: #eeeeee; + border: none; + padding: 3px; + margin: 0 auto; + font-size: 1em; + } + +table#wp-calendar th { + border: solid 1px #eeeeee; + background-color: #999999; + color: #ffffff; + font-weight: bold; + padding: 2px; + text-align: center; + } + +table#wp-calendar td { + padding: 0; + line-height: 18px; + background-color: #ffffff; + border: 1px solid #dddddd; + text-align: center; + } + +table#wp-calendar tfoot td { + border: solid 1px #eeeeee; + background-color: #eeeeee; + } + +table#wp-calendar td a { + display: block; + background-color: #eeeeee; + width: 100%; + height: 100%; + padding: 0; + } + + + + + + +/* ------------------------------------------------------------------ +---------- COMMENTS ------------------------------------------------- +------------------------------------------------------------------ */ + + + +/* whole respond area */ +div#respond { + + } + +p.thesetags { + margin: 10px 0; + } + +/* Since 3.6.1: added h3#reply-title. class reply cannot be added to new comment_form() without hacks */ +h3.reply, h3#reply-title { + margin: 0; + padding: 0 0 10px 0; + } + +ol.commentlist { + margin: 15px 0 25px 0; + list-style-type: none; + padding: 0; + display:block; + border-top: ; + } + +ol.commentlist li { + padding: 15px 10px; + display: block; + height: 1%; /* for IE6 */ + margin: 0; + background-color: #; + border-bottom: ; + } + +ol.commentlist li.alt { + display: block; + height: 1%; /* for IE6 */ + background-color: #; + border-bottom: ; + } + +ol.commentlist li.authorcomment { + display: block; + height: 1%; /* for IE6 */ + background-color: #; + } + +ol.commentlist span.authorname { + font-weight: bold; + font-size: ; + } + +ol.commentlist span.commentdate { + color: #666666; + font-size: 90%; + margin-bottom: 5px; + display: block; + } + +ol.commentlist span.editcomment { + display: block; + } + +ol.commentlist li p { + margin: 2px 0 5px 0; + } + +div.comment-number { + float: right; + font-size: 2em; + line-height: 2em; + font-family: georgia, serif; + font-weight: bold; + color: #ddd; + margin: -10px 0 0 0; + position: relative; + height: 1% + } + +div.comment-number a:link, +div.comment-number a:visited, +div.comment-number a:active { + color: #ccc; + } + +textarea#comment { + width: 98%; + margin: 10px 0; + display: block; + } + + + +/* ------------------------------------------------------------------ +---------- COMMENTS WP 2.7 ------------------------------------------ +------------------------------------------------------------------ */ + +ul.commentlist { + margin: 15px 0 15px 0; + list-style-type: none; + padding: 0; + display:block; + border-top: ; + } + +ul.commentlist ul { + margin: 0; + border: none; + list-style-type: none; + padding: 0; + } + +ul.commentlist li { + padding: 0; + margin: 0; + display: block; + clear: both; + height: 1%; /* for IE */ +} + +/* indent children */ +ul.commentlist ul.children li { + margin-left: 30px; +} + +/* padding and bottom margin for all commment boxes */ +ul.commentlist div.comment-container { + padding: 10px; + margin: 0; +} + +/* round corners for all children comment boxes */ +ul.children div.comment-container { + background-color: transparent; + border: dotted 1px #ccc; + padding: 10px; + margin: 0 10px 8px 0; + border-radius: 5px; + } + +ul.children div.bypostauthor { + /*margin: 10px 0 0 30px;*/ + /* more ... */ + } + +ul.commentlist li.thread-even { + background-color: #; + border-bottom: ; + } + +ul.commentlist li.thread-odd { + background-color: #; + border-bottom: ; + } + + +ul.commentlist div.bypostauthor { + background-color: #; + } + + + +ul.children div.bypostauthor { + border: dotted 1px #; + } + + +ul.commentlist span.authorname { + font-size: ; + } + +div.comment-meta a:link, +div.comment-meta a:visited, +div.comment-meta a:active, +div.comment-meta a:hover { + font-weight: normal; + } + +div#cancel-comment-reply { + margin: -5px 0 10px 0; + } + +div.comment-number { + float: right; + font-size: 2em; + line-height: 2em; + font-family: georgia, serif; + font-weight: bold; + color: #ddd; + margin: -10px 0 0 0; + position: relative; + height: 1% + } + +div.comment-number a:link, +div.comment-number a:visited, +div.comment-number a:active { + color: #ccc; + } + +/* paged comments navigation */ +.page-numbers { + padding: 2px 6px; + border: solid 1px #000000; + border-radius: 6px; + } + +/* current page number */ +span.current { + background: #ddd; + } + +a.prev, a.next { + border: none; + } + +a.page-numbers:link, +a.page-numbers:visited, +a.page-numbers:active { + text-decoration: none; + color: #; + border-color: #; + } + +a.page-numbers:hover { + text-decoration: none; + color: #; + border-color: #; + } + + /* "you can use these xhtml tags" initially closed */ +div.xhtml-tags { + display: none; + } + + +/* ------------------------------------------------------------------ +---------- For CommentLuv ---------------------------------------- +------------------------------------------------------------------ */ + +abbr em { + border: none !important; + border-top: dashed 1px #aaa !important; + display: inline-block !important; + background: url(/images/commentluv.gif) 0% 90% no-repeat; + margin-top: 8px; + padding: 5px 5px 2px 20px !important; + font-style: normal; + } + +/* ------------------------------------------------------------------ +---------- Subscribe to comments ----------------------------------- +------------------------------------------------------------------ */ + +p.subscribe-to-comments { + margin-bottom: 10px; + } + + +/* ------------------------------------------------------------------ +---------- For WPG2 Gallery Plugin ---------------------------------- +------------------------------------------------------------------ */ + +/* remove the gallery header with the "Gallery" logo */ + +div#gsHeader { + display: none; + } + +/* change the formatting of the whole gallery container. +Default settings: margin:0 1px 0 12px; width:738px; */ + +div.g2_column { + margin: 0 !important; + width: 100% !important; + font-size: 1.2em; + } + +div#gsNavBar { + border-top-width: 0 !important; + } + +p.giDescription { +font-size: 1.2em; +line-height: 1 !important; +} + +p.giTitle { +margin: 0.3em 0 !important; +font-size: 1em; +font-weight: normal; +color: #666; +} + +/* ------------------------------------------------------------------ +---------- For WP Email Plugin ---------------------------------- +------------------------------------------------------------------ */ + +div#wp-email img { + border: 0; + padding: 0; +} + +div#wp-email input, div#wp-email textarea { + margin-top: 5px; + margin-bottom: 2px; +} + +div#wp-email p { + margin-bottom: 10px; +} + +input#wp-email-submit { + padding: 0; + font-size: 30px; + height: 50px; + line-height: 50px; + overflow: visible; /* for IE */ +} + +/* icon in post footer */ +img.WP-EmailIcon { + vertical-align: text-bottom !important; +} + + +/* ------------------------------------------------------------------ +---------- For Tabbed Widgets Plugin --------------------------------- +------------------------------------------------------------------ */ + +/* For the accordion */ + +.tw-accordion .tw-widgettitle, +.tw-accordion .tw-widgettitle:hover, +.tw-accordion .tw-hovered, +.tw-accordion .selected, +.tw-accordion .selected:hover { + background: transparent !important; + background-image: none !important; +} + +.tw-accordion .tw-widgettitle span { + padding-left: 0 !important; +} + +.tw-accordion h3.tw-widgettitle { +border-bottom: solid 1px #ccc; +} +.tw-accordion h3.selected { +border-bottom: none; +} + + +/* For accordion & tabs*/ + +td#left .without_title, +td#right .without_title { + margin-top: 0; + margin-bottom: 0; +} + +/* For tabs*/ + +ul.tw-nav-list { + border-bottom: solid 1px #999; + display: block; + margin-bottom: 5px !important; +} + + +td#left ul.tw-nav-list li, +td#right ul.tw-nav-list li { + padding: 0 0 1px 0; + margin: 0 0 -1px 5px; + border: solid 1px #ccc; + border-bottom: none; + border-radius: 5px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + background: #eee; +} + +td#left ul.tw-nav-list li.ui-tabs-selected, +td#right ul.tw-nav-list li.ui-tabs-selected { + background: none; + border: solid 1px #999; + border-bottom: solid 1px #fff !important; +} + +ul.tw-nav-list li a:link, +ul.tw-nav-list li a:visited, +ul.tw-nav-list li a:active, +ul.tw-nav-list li a:hover { + padding: 0 8px !important; + background: none; + border-left: none !important; + outline: none; +} + + +td#left ul.tw-nav-list li.ui-tabs-selected a, +td#left li.ui-tabs-selected a:hover, +td#right ul.tw-nav-list li.ui-tabs-selected a, +td#right li.ui-tabs-selected a:hover { + color: #000000; + text-decoration: none; + font-weight: bold; + background: none !important; + outline: none; +} + +td#left .ui-tabs-panel, +td#right .ui-tabs-panel { + margin: 0; + padding: 0; +} + + +/* ------------------------------------------------------------------ +---------- IMAGES -------------------------------------------------- +------------------------------------------------------------------ */ + +img { + border: 0; + } + +/* For Events manager plugin Google Map */ +#dbem-location-map img { + background: none !important; +} + +.post img { + + } + +.post img.size-full { + + max-width: 96%; /* resize images in the main column if needed. + 97% so images with padding and border don't touch + the right sidebar while being resized. Change this + to 100% if you want, if your images + don't have padding and a border */ + width: auto; + + margin: 5px 0 5px 0; + } + + + + +/* hiding from IE6 which would stretch the image vertically. +IE6 will get width and height via jQuery */ +div.post img[class~=size-full] { + height: auto; /* FF & Safari need auto */ + } + + +.post img.alignleft { + float: left; + margin: 10px 10px 5px 0; + } + +.post img.alignright { + float: right; + margin: 10px 0 5px 10px; + } + +.post img.aligncenter { + display: block; + margin: 10px auto; + } + +.aligncenter, +div.aligncenter { + display: block; + margin-left: auto; + margin-right: auto; + } + +.alignleft, +div.alignleft { + float: left; + margin: 10px 10px 5px 0; + } + +.alignright, +div.alignright { + float: right; + margin: 10px 0 5px 10px; + } + +/* feed icons on archives page */ +div.archives-page img { + border: 0; + padding: 0; + background: none; + margin-bottom: 0; + vertical-align: -10%; + } + + +/* ------------------------------------------------------------------ +---------- IMAGE CAPTION (WP 2.6 and newer) ----------------------- +------------------------------------------------------------------ */ + +.wp-caption { + /*max-width: 100% auto;*/ + max-width: 96%; /* FF2, IE7, Opera9, Safari 3.0/3.1 will + resize images in the main column if needed. + 97% so images with padding and border don't touch + the right sidebar while being resized. Change this + to 100% if you want, if your images + don't have padding and a border */ + width: auto 100%; + height: auto; /* FF3 needs "auto", IE6 needs "100%", see next style*/ + display: block; + + } + +/* for imges inside a caption container IE6 does not +stretch images vertically as it does with images without +caption so we can leave this rule although it is probably not +required as jQuery sets the height for caption'ed images too */ +* html .wp-caption { + height: 100%; + } + +.wp-caption img { + margin: 0 !important; + padding: 0 !important; + border: 0 none !important; + } + +.wp-caption-text, +.wp-caption p.wp-caption-text { + + } + +/* ------------------------------------------------------------------ +---------- POST THUMBNAILS (WP 2.9 and newer) ----------------------- +------------------------------------------------------------------ */ + +img.wp-post-image { + +} + +/* ------------------------------------------------------------------ +---------- SMILEYS ------------------------------------------------- +------------------------------------------------------------------ */ + +img.wp-smiley { + float: none; + border: none !important; + margin: 0 1px -1px 1px; + padding: 0 !important; + background: none !important; + } + + +/* ------------------------------------------------------------------ +---------- GRAVATARS ---------------------------------------------- +------------------------------------------------------------------ */ + +img.avatar { + float: left; + display: block; + + } + + +/* ------------------------------------------------------------------ +---------- FOR THE QUICKTAGS PLUGIN ------------------------------ +------------------------------------------------------------------ */ + +/*--------------------COMMENTS QUCIKTAGS ------------------*/ + +/* Main Span */ +#comment_quicktags { + text-align: left; + padding: 10px 0 2px 0; + display: block; + } + +/* Button Style */ +#comment_quicktags input.ed_button { + background: #f4f4f4; + border: 2px solid #cccccc; + color: #444444; + margin: 2px 4px 2px 0; + width: auto; + padding: 0 4px; + height: 24px; + line-height: 16px; + } + +/* Button Style on focus/click */ +#comment_quicktags input.ed_button_hover { + background: #dddddd; + border: 2px solid #666666; + color: #000000; + margin: 2px 4px 2px 0; + width: auto; + padding: 0 4px; + height: 24px; + line-height: 16px; + cursor: pointer; + } + +/* Button Lable style */ +#comment_quicktags #ed_strong { + font-weight: bold; + } + +/* Button Lable style */ +#comment_quicktags #ed_em { + font-style: italic; + } + + + + +/* ------------------------------------------------------------------ +---------- FOR THE SOCIABLE PLUGIN -------------------------------- +------------------------------------------------------------------ */ + +div.sociable { + margin: 0; + width: 200px; + display:inline; + } + +div.sociable-tagline { + display: none; + } + +.sociable span { + display: inline-block; + } + +.sociable ul { + display: inline; + margin: 0 !important; + padding: 0 !important; + } + +.sociable ul li { + background: none; + display: inline; + list-style-type: none; + margin: 0; + padding: 1px; + } + +.sociable ul li:before { + content: ""; + } + +.sociable img { + float: none; + width: 16px; + height: 16px; + border: 0; + margin: 0; + padding: 0; + } + +.sociable-hovers { + opacity: .4; + filter: alpha(opacity=40); + vertical-align: text-bottom; + } + +.sociable-hovers:hover { + opacity: 1; + filter: alpha(opacity=100); + } + + + + + + +/* ------------------------------------------------------------------ +---------- FOR THE WP-PAGENAVI PLUGIN ---------------------------- +------------------------------------------------------------------ */ + +.wp-pagenavi a:link, +.wp-pagenavi a:visited, +.wp-pagenavi a:active { + color: #; + border: solid 1px #; + } + +.wp-pagenavi a:hover { + color: #; + border: solid 1px #; + } + + + + +/* ------------------------------------------------------------------ +---------- PRINT STYLE ---------------------------------------------- +------------------------------------------------------------------ */ + +@media print { + + body { + background: white; + color: black; + margin: 0; + font-size: 10pt !important; + font-family: arial, sans-serif; + } + + div.post-footer { + line-height: normal !important; + color: #555 !important; + font-size: 9pt !important; + } + + a:link, + a:visited, + a:active, + a:hover { + text-decoration: underline !important; + color: #000; + } + + h2 { + color: #000; + font-size: 14pt !important; + font-weight: normal !important; + } + + h3 { + color: #000; + font-size: 12pt !important; + } + + #header, + #footer, + .colone, + .colone-inner, + .colthree-inner, + .colthree, + .navigation, + .navigation-top, + .navigation-middle, + .navigation-bottom, + .wp-pagenavi-navigation, + #comment, + #respond, + .remove-for-print { + display: none; + } + + td#left, td#right, td#left-inner, td#right-inner { + width: 0; + display: none; + } + + td#middle { + width: 100% !important; + display: block; + } + + /* 8 hacks for display:none for all sidebars for all browsers except IE. */ + + *:lang(en) td#left { + display: none; + } + + *:lang(en) td#right { + display: none; + } + + *:lang(en) td#left-inner { + display: none; + } + + *:lang(en) td#right-inner { + display: none; + } + + td#left:empty { + display: none; + } + + td#right:empty { + display: none; + } + + td#left-inner:empty { + display: none; + } + + td#right-inner:empty { + display: none; + } + +} + + +/* ################################################################## +--------------------------------------------------------------------- +---------- DROP DOWN / FLY OUT MENUS -------------------------------- +Ruthsarian's rMenu http://webhost.bridgew.edu/etribou/layouts/ +modified by Bytes For All http://wordpress.bytesforall.com/ +--------------------------------------------------------------------- +################################################################## */ + + +/* ------------------------------------------------------------------ +---------- GENERAL MENU MECHANICS ----------------------------------- +------------------------------------------------------------------ */ + +ul.rMenu, +ul.rMenu ul, +ul.rMenu li, +ul.rMenu a { + display: block; /* make these objects blocks so they're easier to deal with */ + margin: 0; + padding: 0; /* get rid of padding/margin values that these + elements may have by default */ + } + +ul.rMenu, ul.rMenu li, ul.rMenu ul { + list-style: none; + } + +ul.rMenu ul { + display: none; /* hide the sub-menus until needed */ + } + +ul.rMenu li { + position: relative; /* so sub-menus position relative to their + parent LI element */ + z-index: 1; + } + +ul.rMenu li:hover { + z-index: 999; /* make sure this and any sub-menus that pop + appear above everything else on the page */ + } + +ul.rMenu li:hover > ul /* hide from IE5.0 because it gets confused + by this selector */ + { + display: block; /* show the sub-menu */ + position: absolute; /* remove the sub-menus from the flow of the + layout so when they pop they don't cause any + disfiguration of the layout. */ + } + +ul.rMenu li:hover { +background-position: 0 0; +} + +/* ------------------------------------------------------------------ +---------- EXTENDED MENU MECHANICS ---------------------------------- +------------------------------------------------------------------ */ + +/* These rules exist only for specific menu types, such as horizontal +or vertical menus, right or left aligned menus. */ + +ul.rMenu-hor li { + float: left; + width: auto; + } + +ul.rMenu-hRight li { + float: right; /* horizontal, right menus need their LI + elements floated to get them over there */ + } + +ul.sub-menu li, +ul.rMenu-ver li { + float: none; /* clear this so vertical sub-menus that are + children of horizontal menus won't have + their LI widths set to auto. */ + } + + + +div#menu1 ul.sub-menu, +div#menu1 ul.sub-menu ul, +div#menu1 ul.rMenu-ver, +div#menu1 ul.rMenu-ver ul { + width: em; + } +div#menu2 ul.sub-menu, +div#menu2 ul.sub-menu ul, +div#menu2 ul.rMenu-ver, +div#menu2 ul.rMenu-ver ul { + width: em; + } + +ul.rMenu-wide + { + width: 100%; /* apply this rule if you want the top-level + menu to go as wide as possible. this is + something you might want if your top-level + is a vertical menu that spans the width + of a column which has its width + pre-defined. IE/Win 5 seems to prefer + a value of 100% over auto. */ + } + +ul.rMenu-vRight + { + float: right; /* use this to float a vertical menu right. */ + } + +ul.rMenu-lFloat + { + float: left; /* use this to float a vertical menu left. */ + } + +ul.rMenu-noFloat + { + float: none; /* this is to cover those cases where a menu + is floated by default and you have a reason + to not float it. such as a menu on the + right side of the screen that you want + to have drops going left but not floated. + to be honest, i don't think this rule is + needed. the clearfix hack will resolve + renering issues associated with a floated + menu anyways. */ + } + + +/* ------------------------------------------------------------------ +---------- EXTENDED MENU MECHANICS - Center Horizontal Menu --------- +------------------------------------------------------------------ */ + +div.rMenu-center ul.rMenu { + float: left; + position: relative; + left: 50%; + } + +div.rMenu-center ul.rMenu li { + position: relative; + left: -50%; + } + +div.rMenu-center ul.rMenu li li { + left: auto; + } + + +/* ------------------------------------------------------------------ +---------- DROP POSITIONS ------------------------------------------- +------------------------------------------------------------------ */ + +ul.rMenu-hor ul { + top: auto; /* a value of 100% creates a problem in IE 5.0 + and Opera 7.23 */ + right: auto; + left: auto; /* typically want a value of 0 here but set to + auto for same reasons detailed above */ + margin-top: -1px; /* so the top border of the dropdown menu + overlaps the bottom border of its parent + horizontal menu. */ + } + +ul.rMenu-hor ul ul { + margin-top: 0; /* reset the above for fly out menus */ + margin-left: 0px; + } + +ul.sub-menu ul, +ul.rMenu-ver ul { + /*left: 60%;*/ + left: 100%; + right: auto; + top: auto; + /*margin-top: -0.5em;*/ /* i prefer top: 80% but this creates a problem + in iCab so negative top margin must be used. + salt to taste. */ + top: 0; + } + +ul.rMenu-vRight ul, +ul.rMenu-hRight ul.sub-menu ul, +ul.rMenu-hRight ul.rMenu-ver ul { + left: -100%; + right: auto; + top: auto; + /*margin-top: -0.5em;*/ /* i prefer top: 80% but this creates a problem + in iCab so negative top margin must be used. + salt to taste. */ + } + +ul.rMenu-hRight ul { + left: auto; + right: 0; /* this doesn't work in Opera 7.23 but 7.5 and + beyond work fine. this means right-aligned + horizontal menus break in Opera 7.23 and + earlier. no workaround has been found. */ + top: auto; + margin-top: -1px; /* so the top border of the dropdown menu + overlaps the bottom border of its parent + horizontal menu. */ + } + + +/* ------------------------------------------------------------------ +---------- PRESENTATION: General ------------------------------------ +------------------------------------------------------------------ */ + +div#menu1 ul.rMenu { + background: #; + border: ; + } +div#menu2 ul.rMenu { + background: #; + border: ; + } + +div#menu1 ul.rMenu li a { + border: ; + } +div#menu2 ul.rMenu li a { + border: ; + } + +ul.rMenu-hor li { + margin-bottom: -1px; /* this is so if we apply a bottom border to + the UL element it will render behind, but + inline with the bottom border of the LI + elements. Default: -1px */ + margin-top: -1px; /* this is so if we apply a top border to + the UL element it will render behind, but + inline with the bottom border of the LI + elements. Default: -1px */ + margin-left: -1px; /* negative borders on LIs to make borders on + child A elements overlap. they go here and + not on the A element for compatibility + reasons (IE6 and earlier). Default: -1px */ + } + +ul#rmenu li { + /*margin-right: 3px;*/ /* set to 0 to remove the space between single, + horizontal LI elements */ + } +ul#rmenu li ul li { + /*margin-right: 0;*/ /* without this, the 2nd level horizontal LI's would get + a margin-right, too. This should always be 0 */ + } + +ul.rMenu-hor { + padding-left: 1px ; /* compensate for the 1px left jog created by + the above negative margin. */ + } + +ul.sub-menu li, +ul.rMenu-ver li { + margin-left: 0; + margin-top: -1px; /* same thing above except for vertical + menus */ + + } + +div#menu1 ul.sub-menu, +div#menu1 ul.rMenu-ver { + border-top: ; + } +div#menu2 ul.sub-menu, +div#menu2 ul.rMenu-ver { + border-top: ; + } + + +div#menu1 ul.rMenu li a { + padding: 4px 5px; + } +div#menu2 ul.rMenu li a { + padding: 4px 5px; + } + +div#menu1 ul.rMenu li a:link, +div#menu1 ul.rMenu li a:hover, +div#menu1 ul.rMenu li a:visited, +div#menu1 ul.rMenu li a:active { + text-decoration: none; + margin: 0; + color: #; + text-transform: ; + font: ; + } +div#menu2 ul.rMenu li a:link, +div#menu2 ul.rMenu li a:hover, +div#menu2 ul.rMenu li a:visited, +div#menu2 ul.rMenu li a:active { + text-decoration: none; + margin:0; + color: #; + text-transform: ; + font: ; + } + +/* +ul.rMenu li.sfhover a:active, +ul.rMenu li:hover a:active + { + color: #fff; + background-color: #c00; + } +*/ + + +div#menu1 ul.rMenu li { + background-color: #; + } +div#menu2 ul.rMenu li { + background-color: #; + } + +div#menu1 ul.rMenu li:hover, +div#menu1 ul.rMenu li.sfhover { + /* background color for parent menu items of + the current sub-menu. includes the sfhover + class which is used in the suckerfish hack + detailed later in this stylesheet. */ + background: #; + } +div#menu2 ul.rMenu li:hover, +div#menu2 ul.rMenu li.sfhover { + /* background color for parent menu items of + the current sub-menu. includes the sfhover + class which is used in the suckerfish hack + detailed later in this stylesheet. */ + background: #; + } + +/* "current" page and hover, first part old version */ +div#menu1 ul.rMenu li.current-menu-item > a:link, +div#menu1 ul.rMenu li.current-menu-item > a:active, +div#menu1 ul.rMenu li.current-menu-item > a:hover, +div#menu1 ul.rMenu li.current-menu-item > a:visited, +div#menu1 ul.rMenu li.current_page_item > a:link, +div#menu1 ul.rMenu li.current_page_item > a:active, +div#menu1 ul.rMenu li.current_page_item > a:hover, +div#menu1 ul.rMenu li.current_page_item > a:visited { + background-color: #; + color: #; + } +/* First 4 lines For IE6:*/ +div#menu1 ul.rMenu li.current-menu-item a:link, +div#menu1 ul.rMenu li.current-menu-item a:active, +div#menu1 ul.rMenu li.current-menu-item a:hover, +div#menu1 ul.rMenu li.current-menu-item a:visited, +div#menu1 ul.rMenu li.current_page_item a:link, +div#menu1 ul.rMenu li.current_page_item a:active, +div#menu1 ul.rMenu li.current_page_item a:hover, +div#menu1 ul.rMenu li.current_page_item a:visited, +div#menu1 ul.rMenu li a:hover { + background-color: #; + color: #; + } +div#menu2 ul.rMenu li.current-menu-item > a:link, +div#menu2 ul.rMenu li.current-menu-item > a:active, +div#menu2 ul.rMenu li.current-menu-item > a:hover, +div#menu2 ul.rMenu li.current-menu-item > a:visited, +div#menu2 ul.rMenu li.current-cat > a:link, +div#menu2 ul.rMenu li.current-cat > a:active, +div#menu2 ul.rMenu li.current-cat > a:hover, +div#menu2 ul.rMenu li.current-cat > a:visited { + background-color: #; + color: #; + } +/* First 4 lines For IE6:*/ +div#menu2 ul.rMenu li.current-menu-item a:link, +div#menu2 ul.rMenu li.current-menu-item a:active, +div#menu2 ul.rMenu li.current-menu-item a:hover, +div#menu2 ul.rMenu li.current-menu-item a:visited, +div#menu2 ul.rMenu li.current-cat a:link, +div#menu2 ul.rMenu li.current-cat a:active, +div#menu2 ul.rMenu li.current-cat a:hover, +div#menu2 ul.rMenu li.current-cat a:visited, +div#menu2 ul.rMenu li a:hover { + background-color: #; + color: #; + } + +/* ------------------------------------------------------------------ +---------- PRESENTATION: Expand ------------------------------------- +------------------------------------------------------------------ */ + +div#menu1 ul.rMenu li.rMenu-expand a, +div#menu1 ul.rMenu li.rMenu-expand li.rMenu-expand a, +div#menu1 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu1 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu1 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu1 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu1 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu1 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu1 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu1 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a { + padding-right: 15px; + padding-left: 5px; + background-repeat: no-repeat; + background-position: 100% 50%; + background-image: url(/images/expand-right.gif); + } +div#menu2 ul.rMenu li.rMenu-expand a, +div#menu2 ul.rMenu li.rMenu-expand li.rMenu-expand a, +div#menu2 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu2 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu2 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu2 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu2 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu2 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu2 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +div#menu2 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a { + padding-right: 15px; + padding-left: 5px; + background-repeat: no-repeat; + background-position: 100% 50%; + background-image: url(/images/expand-right.gif); + } + +ul.rMenu-vRight li.rMenu-expand a, +ul.rMenu-vRight li.rMenu-expand li.rMenu-expand a, +ul.rMenu-vRight li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-vRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-vRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-vRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-vRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-vRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-vRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-vRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-hRight li.rMenu-expand a, +ul.rMenu-hRight li.rMenu-expand li.rMenu-expand a, +ul.rMenu-hRight li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-hRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-hRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-hRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-hRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-hRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-hRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a, +ul.rMenu-hRight li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand a + { + padding-right: 5px; + padding-left: 20px; + background-image: url(/images/expand-left.gif); + background-repeat: no-repeat; + background-position: -5px 50%; + } + +/* divs added for "IE6 & 2 menu styles" */ + +div#menu1 ul.rMenu-hor li.rMenu-expand a { + padding-left: 5px; /* reset padding */ + padding-right: 15px !important; + background-position: 100% 50%; + background-image: url(/images/expand-down.gif); + } +div#menu2 ul.rMenu-hor li.rMenu-expand a { + padding-left: 5px; /* reset padding */ + padding-right: 15px !important; + background-position: 100% 50%; + background-image: url(/images/expand-down.gif); + } + + +div#menu1 ul.rMenu li.rMenu-expand li a, +div#menu1 ul.rMenu li.rMenu-expand li.rMenu-expand li a, +div#menu1 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li a, +div#menu1 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li a, +div#menu1 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li a { + background-image: none; + padding-right: 5px; /* reset padding */ + padding-left: 5px; /* reset padding */ + } +div#menu2 ul.rMenu li.rMenu-expand li a, +div#menu2 ul.rMenu li.rMenu-expand li.rMenu-expand li a, +div#menu2 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li a, +div#menu2 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li a, +div#menu2 ul.rMenu li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li.rMenu-expand li a { + background-image: none; + padding-right: 5px; /* reset padding */ + padding-left: 5px; /* reset padding */ + } + + + +/* For centered page menu */ + +ul#rmenu2 { + border: 0 !important; +} + +ul#rmenu2 li a { + white-space: nowrap; /* IE may wrap the link text of a first level item */ +} + +ul#rmenu2 li ul li a { + white-space: normal; /* reset nowrap for sub levels. They should wrap if required */ +} + +ul#rmenu2 ul.sub-menu, +ul#rmenu2 ul.rMenu-ver { + text-align: left; /* because the parent container, the table's TD has align="center" */ +} + +div#menu1 { + border: dashed 1px #ccc; +} + + + + +/* For centered category menu */ + +ul#rmenu { + border: 0 !important; +} + +ul#rmenu li a { + white-space: nowrap; /* IE may wrap the link text of a first level item */ +} + +ul#rmenu li ul li a { + white-space: normal; /* reset nowrap for sub levels. They should wrap if required */ +} + +ul#rmenu ul.sub-menu, +ul#rmenu ul.rMenu-ver { + text-align: left; /* because the parent container, the table's TD has align="center" */ +} + +div#menu2 { + border: dashed 1px #ccc; +} + + + + +div#menu1 ul.rMenu { + background: #; + border: ; + border-right: none; + } + + + +div#menu2 ul.rMenu { + background: #; + border: ; + border-right: none; + } + + +/******************************************************************************* + * HACKS : General + * + * These are rules specifically targeted to resolve bugs/quirks that some + * browser exhibit. + * + * REFERENCES: + * http://www.webdevout.net/css-hacks + * http://www.satzansatz.de/cssd/onhavinglayout.html + * http://www.communis.co.uk/dithered/css_filters/css_only/index.html + */ +* html ul.rMenu +{ + display: inline-block; /* this is for IE/Mac. it forces IE/Mac to + expand the element's dimensions to contain + its floating child elements without a + clearing element. */ + /* \*/ display: block; /* override above rule for every other + browser using IE/Mac backslash hack */ + position: relative; /* IE 5.0/Mac needs this or it may clip the + dropdown menus */ + /* \*/ position: static;/* reset position attribute for IE/Win as it + causes z-index problems */ +} +* html ul.rMenu ul +{ + float: left; /* IE/Mac 5.0 needs this, otherwise hidden + menus are not completely removed from the + flow of the document. */ + /* \*/ float: none; /* reset the rule for non-Macs */ +} +ul.rMenu ul +{ + background-color: #fff; /* IE/Win (including 7) needs this on an object + that hasLayout so that it doesn't "look through" + the menu and let any object (text) below the + menu to gain focus, causing the menu to + disappear. application of this rule does not + cause any rendering problems with other browsers + as the background color his covered by the + menu itself. */ +} +* html ul.sub-menu li, +* html ul.rMenu-ver li, +* html ul.rMenu-hor li ul.sub-menu li, +* html ul.rMenu-hor li ul.rMenu-ver li +{ + /* the second selector above is there + because of problems IE/Mac has with + inheritance and what rules should take + precedence. and to serve as a reminder on + how to work around the issue if it's + encountered again down the road. */ + width: 100%; + float: left; + clear: left; /* IE likes to stick space below any LI + in :hover state with a sub-menu. floating + the LIs seems to work around this issue. But + note that this also triggers hasLayout + because we need a width of 100% on floats. */ +} +*:first-child+html ul.sub-menu > li:hover ul, +*:first-child+html ul.rMenu-ver > li:hover ul /* hide from IE5.0 because it gets confused by this selector */ +{ + min-width: 0; /* this fixes a similar problem as described in the + rule set that exists in IE7 (and later?). However + the whitespace only appears when the LI element is + in a :hover state. */ +} +ul.rMenu li a +{ + position: relative; /* trigger hasLayout for IE on anchor + elements. without hasLayout on anchors + they would not expand the full width + of the menu. this rule may not trigger + hasLayour in later versions of IE and + if you find this system broken in new + versions of IE, this is probably the + source. */ + min-width: 0; /* triggers hasLayout for IE 7 */ +} +* html ul.rMenu-hor li +{ + width: 6em; /* IE Mac doesn't do auto widths so specify a width + for the sake of IE/Mac. Salt to taste. */ + /* \*/ width: auto; /* now undo previous rule for non Macs by using + the IE Mac backslash comment hack */ +} +* html div.rMenu-center +{ + position: relative; + z-index: 1; /* IE 6 and earlier need a little help with + z-indexes on centered menus */ +} +html/* */:not([lang*=""]) div.rMenu-center ul.rMenu li a:hover { + height: 100%; /* for Netscape 6 */ +} +html:/* */not([lang*=""]) div.rMenu-center ul.rMenu li a:hover { + height: auto; /* reset for Netscape 7 and better */ +} + +/******************************************************************************* + * HACKS : Suckerfish w/Form Field Support (for IE 5.5 & 6.x) + * + * IE6 and earlier do not support the :hover pseudoclass and so javascript is + * used to add the "sfhover" class of any LI element that the mouse is currently + * over. This method is called suckerfish and you can read up on it at: + * http://www.htmldog.com/articles/suckerfish/dropdowns/ + * + * One problem with this approach is IE6 and earlier versions have a bug where + * form fields appear over the dropdown menus regardless of z-index values. + * The fix is to generate and stick an IFRAME element under the dropdown menus + * as they pop. The JavaScript used to do this requires that we hide menus off + * to the side of the screen ( left: -100000px; ), but normal rMenu operation + * is to hide menus with the DISPLAY property ( display: none; ). So also + * included in the set of rules below are rules to overwrite this original + * functionality of rMenu and utilize the LEFT property to move menus off- + * screen until needed. Any other rules that use the LEFT property in the + * normal rMenu system will also have to be ovewriten here as well. This + * includes the dropdown positions. + * + * NOTE: this allows for support of dropdown menus up to 3 levels deep. if you + * want to support greather menu depth you need to alter these selectors. + * read the above mentioned website for more info on how to do that. + * + * The fix to get dropdowns to appear over form fields requires we + * position menus off screen rather than simply hiding them with + * display:none. So you might think we should not be using the display + * property in the fields below. However we can because these display + * properties are only being set when a parent LI is being hovered, so + * the JavaScript used to operate on these LIs will already have the + * dimensions they need before these display rules are activated. + */ +* html ul.rMenu ul +{ + display: block; + position: absolute; /* ovewrite original functionality of hiding + element so we can hide these off screen */ +} +* html ul.rMenu ul, +* html ul.rMenu-hor ul, +* html ul.sub-menu ul, +* html ul.rMenu-ver ul, +* html ul.rMenu-vRight ul, +* html ul.rMenu-hRight ul.sub-menu ul, +* html ul.rMenu-hRight ul.rMenu-ver ul, +* html ul.rMenu-hRight ul +{ + left: -10000px; /* move menus off screen. note we're ovewriting + the dropdown position rules that use the + LEFT property, thus all the selectors. */ +} +* html ul.rMenu li.sfhover +{ + z-index: 999; /* not totally needed, but keep the menu + that pops above all other elements within + it's parent menu system */ +} +* html ul.rMenu li.sfhover ul +{ + left: auto; /* pull the menus that were off-screen back + onto the screen */ +} +* html ul.rMenu li.sfhover ul ul, +* html ul.rMenu li.sfhover ul ul ul +{ + display: none; /* IE/Suckerfish alternative for browsers that + don't support :hover state on LI elements */ +} +* html ul.rMenu li.sfhover ul, +* html ul.rMenu li li.sfhover ul, +* html ul.rMenu li li li.sfhover ul +{ + display: block; /* ^ ditto ^ */ +} + +* html ul.sub-menu li.sfhover ul, +* html ul.rMenu-ver li.sfhover ul +{ + left: 60%; /* dropdown positioning uses the left attribute + for horizontal positioning. however we can't + use this property until the menu is being + displayed. + + note that all ULs beneath the menu item + currently in the hover state will get this + value through inheritance. however all sub- + menus still won't display because + two rule sets up we're setting the + DISPLAY property to none. + */ +} +* html ul.rMenu-vRight li.sfhover ul, +* html ul.rMenu-hRight ul.sub-menu li.sfhover ul +* html ul.rMenu-hRight ul.rMenu-ver li.sfhover ul +{ + left: -60%; /* ^ ditto ^ */ +} +* html ul.rMenu iframe +{ + /* filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0); */ + /* the above rule is now applied in the + javascript used to generate the IFRAME this + is applied to. it allows the CSS to validate + while keeping the original functionality. */ + position: absolute; + left: 0; + top: 0; + z-index: -1; /* this is the IFRAME that's placed behind + dropdown menus so that form elements don't + show through the menus. they are not set + programatically via javascript because + doing so generates some lag in the display + of the dropdown menu. */ +} + +/* ie6 fixes */ + +* html ul.rMenu { + margin-left: 1px; +} + +* html ul.rMenu ul, +* html ul.rMenu ul ul, +* html ul.rMenu ul ul ul, +* html ul.rMenu ul ul ul ul { + margin-left: 0; +} + + + +/* ------------------------------------------------------------------ +---------- HACKS: Clearfix & others --------------------------------- +------------------------------------------------------------------ */ + +.clearfix:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; + } + +.clearfix { + min-width: 0; /* trigger hasLayout for IE7 */ + display: inline-block; + /* \*/ display: block; /* Hide from IE Mac */ + } + +* html .clearfix { + /* \*/ height: 1%; /* Hide from IE Mac */ + } + +/* Chrome and Safari don't like clearfix in some cases. +Also, adding height and font-size for IE6 */ +.clearboth { + clear: both; + height: 1%; + font-size: 1%; + line-height: 1%; + display: block; + padding: 0; + margin: 0; + } + + +\n"; +} +?> \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/download.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/download.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,16 @@ + \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/editor-style-rtl.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/editor-style-rtl.css Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,56 @@ +/* +Theme Name: Twenty Ten +*/ +/* +Used to style the TinyMCE editor. +*/ +html .mceContentBody{ + direction:rtl; + unicode-bidi:embed; + float:right; +} +* { + font-family: Arial, Tahoma, sans-serif; +} +/* Text elements */ +ul { + margin: 0 -18px 18px 0; +} +ol { + margin: 0 -18px 18px 0; +} +dd { + margin-right: 0; +} +blockquote { + font-style: normal; +} +table { + text-align: right; + margin: 0 0 24px -1px; +} +html .mceContentBody{ + direction:rtl; + unicode-bidi:embed; + float:right; +} +* { + font-family: Arial, Tahoma, sans-serif; +} +/* Text elements */ +ul { + margin: 0 -18px 18px 0; +} +ol { + margin: 0 -18px 18px 0; +} +dd { + margin-right: 0; +} +blockquote { + font-style: normal; +} +table { + text-align: right; + margin: 0 0 24px -1px; +} \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/editor-style.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/editor-style.css Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,289 @@ +/* +Theme Name: Twenty Ten +*/ +/* +Used to style the TinyMCE editor. +*/ +html .mceContentBody { + max-width:640px; +} +* { + font-family: Georgia, "Bitstream Charter", serif; + color: #444; + line-height: 1.5; +} +p, +dl, +td, +th, +ul, +ol, +blockquote { + font-size: 16px; +} +tr th, +thead th, +label, +tr th, +thead th { + font-family: "Helvetica Neue", Arial, Helvetica, "Nimbus Sans L", sans-serif; +} +pre { + font-family: "Courier 10 Pitch", Courier, monospace; +} +code, code var { + font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; +} +body, input, textarea { + font-size: 12px; + line-height: 18px; +} +hr { + background-color: #e7e7e7; + border:0; + height: 1px; + margin-bottom: 18px; + clear:both; +} +/* Text elements */ +p { + margin-bottom: 18px; +} +ul { + list-style: square; + margin: 0 0 18px 1.5em; +} +ol { + list-style: decimal; + margin: 0 0 18px 1.5em; +} +ol ol { + list-style:upper-alpha; +} +ol ol ol { + list-style:lower-roman; +} +ol ol ol ol { + list-style:lower-alpha; +} +ul ul, +ol ol, +ul ol, +ol ul { + margin-bottom:0; +} +dl { + margin:0 0 24px 0; +} +dt { + font-weight: bold; +} +dd { + margin-bottom: 18px; +} +strong { + font-weight: bold; + color: #000; +} +cite, +em, +i { + font-style: italic; + border: none; +} +big { + font-size: 131.25%; +} +ins { + background: #ffffcc; + border: none; + color: #333; +} +del { + text-decoration: line-through; + color: #555; +} +blockquote { + font-style: italic; + padding: 0 3em; +} +blockquote cite, +blockquote em, +blockquote i { + font-style: normal; +} +pre { + background: #f7f7f7; + color: #222; + line-height: 18px; + margin-bottom: 18px; + padding: 1.5em; +} +abbr, +acronym { + border-bottom: 1px dotted #666; + cursor: help; +} +ins { + text-decoration: none; +} +sup, +sub { + height: 0; + line-height: 1; + vertical-align: baseline; + position: relative; + font-size: 10px; +} +sup { + bottom: 1ex; +} +sub { + top: .5ex; +} +a:link { + color:#0066cc; +} +a:visited { + color:#743399; +} +a:active, +a:hover { + color: #ff4b33; +} +p, +ul, +ol, +dd, +pre, +hr { + margin-bottom:24px; +} +ul ul, +ol ol, +ul ol, +ol ul { + margin-bottom:0; +} +pre, +kbd, +tt, +var { + font-size: 15px; + line-height: 21px; +} +code { + font-size: 13px; +} +strong, +b, +dt, +th { + color: #000; +} +h1, +h2, +h3, +h4, +h5, +h6 { + color: #000; + margin: 0 0 20px 0; + line-height: 1.5em; + font-weight: normal; +} +h1 { + font-size: 2.4em; +} +h2 { + font-size: 1.8em; +} +h3 { + font-size: 1.4em; +} +h4 { + font-size: 1.2em; +} +h5 { + font-size: 1em; +} +h6 { + font-size: 0.9em; +} +table { + border: 1px solid #e7e7e7 !important; + text-align: left; + margin: 0 -1px 24px 0; + width: 100%; + border-collapse: collapse; + border-spacing: 0; +} +tr th, +thead th { + border: none !important; + color: #888; + font-size: 12px; + font-weight: bold; + line-height: 18px; + padding: 9px 24px; +} +tr td { + border: none !important; + border-top: 1px solid #e7e7e7 !important; + padding: 6px 24px; +} + + +img { + margin: 0; + max-width: 640px; +} +.alignleft, +img.alignleft { + display: inline; + float: left; + margin-right: 24px; + margin-top: 4px; +} +.alignright, +img.alignright { + display: inline; + float: right; + margin-left: 24px; + margin-top: 4px; +} +.aligncenter, +img.aligncenter { + clear: both; + display: block; + margin-left: auto; + margin-right: auto; +} +img.alignleft, +img.alignright, +img.aligncenter { + margin-bottom: 12px; +} +.wp-caption { + border: none; + background: #f1f1f1; + color: #888; + font-size: 12px; + line-height: 18px; + text-align: center; + margin-bottom: 20px; + padding: 4px; + -moz-border-radius: 0; + -khtml-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; +} +.wp-caption img { + margin: 5px; +} +.wp-caption p.wp-caption-text { + margin: 0 0 4px; +} +.wp-smiley { + margin:0; +} \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/footer.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/footer.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,143 @@ + + + + + + + + + + +
    +

    +
    +
    +
    + +
    +

    +
    +
    +
    + +
    +

    A sample text widget

    +
    +

    Etiam pulvinar consectetur dolor sed malesuada. Ut convallis + euismod dolor nec pretium. Nunc ut tristique massa.

    +

    Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. + Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, + suscipit in posuere in, interdum non magna.

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

    Recent Posts

    + 20, + 'what_to_show' => 'posts', + 'nopaging' => 0, + 'post_status' => 'publish', + 'ignore_sticky_posts' => 1)); + if ($r->have_posts()) : ?> +
      + have_posts()) : $r->the_post(); ?> +
    • + +
    + +
    + + + +
    +

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

    + num_queries; ?> +

    + + + + + + + + + + + + + + +
    +
  • + + + + + + + + + \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/functions.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/functions.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,950 @@ +'Left Sidebar', + 'id'=> 'bfa-ata-left-sidebar', + 'before_widget' => '
    ', + 'after_widget' => '
    ', + 'before_title' => '

    ', + 'after_title' => '

    ', + )); + register_sidebar(array( + 'name'=>'Right Sidebar', + 'id'=> 'bfa-ata-right-sidebar', + 'before_widget' => '
    ', + 'after_widget' => '
    ', + 'before_title' => '

    ', + 'after_title' => '

    ', + )); + register_sidebar(array( + 'name'=>'Left Inner Sidebar', + 'id'=> 'bfa-ata-left-inner-sidebar', + 'before_widget' => '
    ', + 'after_widget' => '
    ', + 'before_title' => '

    ', + 'after_title' => '

    ', + )); + register_sidebar(array( + 'name'=>'Right Inner Sidebar', + 'id'=> 'bfa-ata-right-inner-sidebar', + 'before_widget' => '
    ', + 'after_widget' => '
    ', + 'before_title' => '

    ', + 'after_title' => '

    ', + )); + + // Register additional extra widget areas: + # $bfa_ata_extra_widget_areas = get_option('bfa_widget_areas'); + if(isset($bfa_ata['bfa_widget_areas'])) $bfa_ata_extra_widget_areas = $bfa_ata['bfa_widget_areas']; + else $bfa_ata_extra_widget_areas = ''; + + if ($bfa_ata_extra_widget_areas != '') { + $n = 0; + foreach ($bfa_ata_extra_widget_areas as $widget_area) { + $n++; + $id_name = 'bfa-ata-extra-widget-area-'.$n; + register_sidebar(array( + 'name' => $widget_area['name'], + 'id'=> $id_name, + 'before_widget' => $widget_area['before_widget'], + 'after_widget' => $widget_area['after_widget'], + 'before_title' => $widget_area['before_title'], + 'after_title' => $widget_area['after_title'] + )); + } + } +} + + +#global $bfa_ata; +// Load functions +include_once (get_template_directory() . '/functions/bfa_header_config.php'); +include_once (get_template_directory() . '/functions/bfa_meta_tags.php'); +include_once (get_template_directory() . '/functions/bfa_hor_cats.php'); +include_once (get_template_directory() . '/functions/bfa_hor_pages.php'); +// New WP3 menus: +include_once (get_template_directory() . '/functions/bfa_new_wp3_menus.php'); +include_once (get_template_directory() . '/functions/bfa_footer.php'); +include_once (get_template_directory() . '/functions/bfa_recent_comments.php'); +include_once (get_template_directory() . '/functions/bfa_popular_posts.php'); +include_once (get_template_directory() . '/functions/bfa_popular_in_cat.php'); +include_once (get_template_directory() . '/functions/bfa_subscribe.php'); +include_once (get_template_directory() . '/functions/bfa_postinfo.php'); +include_once (get_template_directory() . '/functions/bfa_rotating_header_images.php'); +include_once (get_template_directory() . '/functions/bfa_next_previous_links.php'); +include_once (get_template_directory() . '/functions/bfa_post_parts.php'); +if (!function_exists('paged_comments')) + include_once (get_template_directory() . '/functions/bfa_custom_comments.php'); + +// Since 3.5.2: JSON for PHP 4 & 5.1: +if (!function_exists('json_decode')) { + include_once (get_template_directory() . '/functions/JSON.php'); + function json_encode($data) { $json = new Services_JSON(); return( $json->encode($data) ); } + function json_decode($data) { $json = new Services_JSON(); return( $json->decode($data) ); } +} +function bfa_toArray($data) { + if (is_object($data)) $data = get_object_vars($data); + return is_array($data) ? array_map(__FUNCTION__, $data) : $data; +} + + + +// For plugin "Sociable": +if (function_exists('sociable_html')) + include_once (get_template_directory() . '/functions/bfa_sociable2.php'); + +// "Find in directory" function, needed for finding header images on WPMU +if (file_exists(ABSPATH."/wpmu-settings.php")) + include_once (get_template_directory() . '/functions/bfa_m_find_in_dir.php'); + +// CSS for admin area +include_once (get_template_directory() . '/functions/bfa_css_admin_head.php'); +// Add the CSS to the ... of the theme option admin area +add_action('admin_head', 'bfa_add_stuff_admin_head'); + +include_once (get_template_directory() . '/functions/bfa_ata_add_admin.php'); +include_once (get_template_directory() . '/functions/bfa_ata_admin.php'); +add_action('admin_menu', 'bfa_ata_add_admin'); + + +// Escape single & double quotes +function bfa_escape($string) { + $string = str_replace('"', '"', $string); + $string = str_replace("'", ''', $string); + return $string; +} + +function bfa_footer_output($footer_content) { + global $bfa_ata; + $footer_content .= '
    Powered by WordPress & Atahualpa'; + return $footer_content; +} + +// Move Featured Content Gallery down in script order in wp_head(), so that jQuery can finish before mootools +// Since 3.6 this probably won't work because as per the new WP rules wp_head() must be right before +function bfa_remove_featured_gallery_scripts() { + remove_action('wp_head', 'gallery_styles'); +} +add_action('init','bfa_remove_featured_gallery_scripts', 1); + +function bfa_addscripts_featured_gallery() { + if(!function_exists('gallery_styles')) return; + gallery_styles(); +} +add_action('wp_head', 'bfa_addscripts_featured_gallery', 12); + +/* + * Add custom header inserts through wp_head + * + * wp_head is supposed to be right before , but html_inserts_header should be after/at the bottom of wp_head + * +@ since 3.6.5 +*/ +function bfa_add_html_inserts_header() { + global $bfa_ata; + if( $bfa_ata['html_inserts_header'] != '' ) bfa_incl('html_inserts_header'); +} +add_action('wp_head', 'bfa_add_html_inserts_header', 20); + +// new comment template for WP 2.7+, legacy template for old WP 2.6 and older +// Since 3.6.: ToDo: Remove legacy.comments.php after a while. Older WP's won't work anyway +// with the new WP requirements to REPLACE older functions with newer ones introduced in 2.8 (i.e. get_the_author_meta) +if ( !function_exists('paged_comments') ) { + include_once (get_template_directory() . '/functions/bfa_custom_comments.php'); +} + +// remove WP default inline CSS for ".recentcomments a" from header +function bfa_remove_wp_widget_recent_comments_style() { + remove_filter('wp_head', 'wp_widget_recent_comments_style' ); +} +add_filter( 'wp_head', 'bfa_remove_wp_widget_recent_comments_style', 1 ); + + +/* Remove plugin CSS & JS and include them in the theme's main CSS and JS files +This will be extended and improved in upcoming versions */ + +// remove WP Pagenavi CSS, will be included in css.php +if (function_exists('wp_pagenavi')) { + remove_action('wp_head', 'pagenavi_css'); +} + +// If the plugin Share This is activated, disable its auto-output so we can control it +// through the Atahualpa Theme Options +if ( function_exists('akst_share_link') ) { + @define('AKST_ADDTOCONTENT', false); + @define('AKST_ADDTOFOOTER', false); +} + +/* EXTERNAL OR INTERNAL CSS & JS, PLUS COMPRESSION & DEBUG */ + +// Register new query variables "bfa_ata_file" and "bfa_debug" with Wordpress +add_filter('query_vars', 'bfa_add_new_var_to_wp'); +function bfa_add_new_var_to_wp($public_query_vars) { + $public_query_vars[] = 'bfa_ata_file'; + $public_query_vars[] = 'bfa_debug'; + return $public_query_vars; +} + +// if debug add/remove info +if ( function_exists('wp_generator') ) { + remove_action('wp_head', 'wp_generator'); +} +add_action('wp_head', 'bfa_debug'); +function bfa_debug() { + global $bfa_ata, $bfa_ata_version; + $debug = get_query_var('bfa_debug'); + if ( $debug == 1 ) { + echo '' . "\n"; + if ( function_exists('the_generator') ) { + the_generator( apply_filters( 'wp_generator_type', 'xhtml' ) ); + } + echo ''."\n"; + } +} + +// redirect the template if new var "bfa_ata_file" or "bfa_debug" exists in URL +add_action('template_redirect', 'bfa_css_js_redirect'); +add_action('wp_head', 'bfa_inline_css_js'); + +// since 3.4.3 +function bfa_add_js_link() { + global $bfa_ata; + $homeURL = get_home_url(); + + if ( $bfa_ata['javascript_external'] == "External" ) { ?> + + Successfully deleted option \'bfa_ata4\' ...'; + else echo 'Something went wrong...'; + die(); +} +// add_action ( 'wp_ajax_' + [name of "action" in jQuery.ajax, see functions/bfa_css_admin_head.php], [name of function]) +add_action( 'wp_ajax_bfa_delete_bfa_ata4', 'bfa_delete_bfa_ata4' ); + + + +// Custom Excerpts +function bfa_wp_trim_excerpt($text) { // Fakes an excerpt if needed + + global $bfa_ata, $post; + + if ( '' <> $text ) { +// an manual excerpt exists, stick on the 'custom read more' and we're done + $words = preg_split("/\s+/u", $text); + $custom_read_more = str_replace('%permalink%', get_permalink(), $bfa_ata['custom_read_more']); + if ( get_the_title() == '' ) { + $custom_read_more = str_replace('%title%', 'Permalink', $custom_read_more); + } else { + $custom_read_more = str_replace('%title%', the_title('','',FALSE), $custom_read_more); + } + array_push($words, $custom_read_more); + $text = implode(' ', $words); + return $text; + } + + $text = get_the_content(''); + $words = preg_split ("/\s+/u", $text); + $post_content = $post->post_content; + $post_content_length = count(preg_split("/\s+/u", $post_content)); + +// Build the excerpt from the post + $text = apply_filters('the_content', $text); + $text = str_replace(']]>', ']]>', $text); + $text = strip_tags($text, $bfa_ata['dont_strip_excerpts']); + $excerpt_length = $bfa_ata['excerpt_length']; + $words = preg_split("/\s+/u", $text, $excerpt_length + 1); + +// this is to handle the case where the number of words +// in the post equals the excerpt length + + if ($post_content_length > $excerpt_length) { + array_pop($words); +// array_pop($words); + $custom_read_more = str_replace('%permalink%', get_permalink(), $bfa_ata['custom_read_more']); + $custom_read_more = str_replace('%title%', the_title('','',FALSE), $custom_read_more); + array_push($words, $custom_read_more); + } + $text = implode(' ', $words); + return $text; + + return $text; +} +remove_filter('get_the_excerpt', 'wp_trim_excerpt'); +add_filter('get_the_excerpt', 'bfa_wp_trim_excerpt'); + + + + +/* Custom widget areas. + +Usage: + + +Example: +&after_widget='); ?> + +Can be used anywhere in templates, and in theme option text areas that allow usage of PHP code. + +Available paramaters: + +Mandatory: +name Name under which all cells of this widget area will be listed at Site Admin -> Appearance -> Widgets + A widget area with 3 cells and a name of "My widget area" creates 3 widget cells which appear as + "My widget area 1", "My widget area 2" and "My widget area 3", + with the CSS ID's "my_widget_area_1", "my_widget_area_2" and "my_widget_area_3". + +Optional: +cells Amount of (table) cells. Each cell is a new widget area. Default: 1 +align Default alignment for all cells. Default: 2 (= center top). 1 = center middle, 2 = center top, 3 = right top, 4 = right middle, + 5 = right bottom, 6 = center bottom, 7 = left bottom, 8 = left middle, 9 = left top. +align_1 Alignment for cell 1: align_2, align_3 ... Non-specified cells get the default value of "align", which, if not defined, is 2 (= center top). +width_1 Width of cell 1: width_1, width_2, width_3 ... Non-specified cells get a equal share of the remaining width of the whole table + containing all the widget area cells. +before_widget HTML before each widget in any cell of this widget area. Default:
    +after_widget HMTL after each widget ... Default:
    +before_title HTML before the title of each widget in any cell of this widget area: Default:

    +after_title HMTL after the title ... Default:

    + +*/ +function bfa_widget_area($args = '') { + global $bfa_ata; + $defaults = array( + 'name' => '', + 'cells' => 1, + 'align' => 2, + 'before_widget' => '
    ', + 'after_widget' => '
    ', + 'before_title' => '

    ', + 'after_title' => '

    ', + ); + + $r = wp_parse_args( $args, $defaults ); + extract( $r, EXTR_SKIP ); + + $area_id = strtolower(str_replace(" ", "_", $r['name'])); + + # $bfa_widget_areas = get_option('bfa_widget_areas'); + $bfa_widget_areas = $bfa_ata['bfa_widget_areas']; + + // If there are more than 1 cell, use a table, otherwise just a DIV: + if ( $r['cells'] > 1 ) { + + echo ''; + + // If a width was set for any of the widget area cells: + # if ( strpos($args,'width_') !== FALSE ) { + + // Since 3.6.7 + $colgroup = 'no'; // If all table cells have the same width, this can be achieved by table-layout:fixed alone, without the colgroup element. + // Check if any of the cells have a set width + for ( $i = 1; $i <= $r['cells']; $i++ ) { + if ( array_key_exists('width_' . $i, $r) AND !empty($r['width_' . $i]) ) { + $colgroup = 'yes'; + } + } + + if ($colgroup == 'yes') { + echo "\n"; + for ( $i = 1; $i <= $r['cells']; $i++ ) { + echo ''; + } + echo ""; + } + + echo ""; + + for ( $i = 1; $i <= $r['cells']; $i++ ) { + + $current_name = $r['name'] . ' ' . $i; + $current_id = $area_id . '_' . $i; + $current_align = "align_" . $i; + + echo "\n" . '"; + + $bfa_widget_areas[$current_name] = $this_widget_area; + } + + echo "\n
    "; + + // Register widget area + $this_widget_area = array( + "name" => $current_name, + "before_widget" => $r['before_widget'], + "after_widget" => $r['after_widget'], + "before_title" => $r['before_title'], + "after_title" => $r['after_title'] + ); + + // Display widget area + dynamic_sidebar("$current_name"); + + echo "\n
    "; + + } else { + + // If only 1 widget cell, use a DIV instead of a table + echo '
    '; + + // Add new widget area to existing ones + $this_widget_area = array( + "name" => $r['name'], + "before_widget" => $r['before_widget'], + "after_widget" => $r['after_widget'], + "before_title" => $r['before_title'], + "after_title" => $r['after_title'] + ); + + // Display widget area + dynamic_sidebar($r['name']); + + echo '
    '; + + $current_name = $r['name']; + $bfa_widget_areas[$current_name] = $this_widget_area; + + } + + # update_option("bfa_widget_areas", $bfa_widget_areas); + $bfa_ata['bfa_widget_areas'] = $bfa_widget_areas; + update_option('bfa_ata4', $bfa_ata); + +} + + +function bfa_table_cell_align($align_type) { + switch ($align_type) { + case 1: $string = 'align="center" valign="middle"'; break; + case 2: $string = 'align="center" valign="top"'; break; + case 3: $string = 'align="right" valign="top"'; break; + case 4: $string = 'align="right" valign="middle"'; break; + case 5: $string = 'align="right" valign="bottom"'; break; + case 6: $string = 'align="center" valign="bottom"'; break; + case 7: $string = 'align="left" valign="bottom"'; break; + case 8: $string = 'align="left" valign="middle"'; break; + case 9: $string = 'align="left" valign="top"'; + } + return $string; +} + + +// Since 3.4.3: Delete Widget Areas +function bfa_ata_reset_widget_areas() { + global $bfa_ata; + check_ajax_referer( "reset_widget_areas" ); + $delete_areas = $_POST['delete_areas']; + # $current_areas = get_option('bfa_widget_areas'); + $current_areas = $bfa_ata['bfa_widget_areas']; + foreach ($delete_areas as $area_name) { + unset($current_areas[$area_name]); + } + # update_option('bfa_widget_areas', $current_areas); + $bfa_ata['bfa_widget_areas'] = $current_areas; + update_option('bfa_ata4', $bfa_ata); + echo 'Custom widget areas deleted...'; + die(); +} +// add_action ( 'wp_ajax_' + [name of "action" in jQuery.ajax, see functions/bfa_css_admin_head.php], [name of function]) +add_action( 'wp_ajax_reset_bfa_ata_widget_areas', 'bfa_ata_reset_widget_areas' ); + + +// Since 3.6.5: Import Settings +function bfa_ata_import_settings() { + global $bfa_ata; + check_ajax_referer( "import_settings" ); + + // was encoded with encodeURIComponent in bfa_css_admin_head.php + // $import_options = rawurldecode($_POST['options']); + $import_options = stripslashes($_POST['ataoptions']); + + // Since 3.5.2, use JSON + if ( json_decode($import_options) != NULL AND strpos($import_options, 'use_bfa_seo') !== FALSE ) { + update_option('bfa_ata4', json_decode($import_options, TRUE)); + echo "Success! Reloading admin area in 2 seconds...
    "; + + // Probably not a valid settings file: + } else { + echo "Sorry, but doesn't appear + to be a valid Atahualpa Settings File."; + #print_r($import_options); + } + + die(); +} +// add_action ( 'wp_ajax_' + [name of "action" in jQuery.ajax, see functions/bfa_css_admin_head.php], [name of function]) +add_action( 'wp_ajax_import_settings', 'bfa_ata_import_settings' ); + + + +/* CUSTOM BODY TITLE and meta title, meta keywords, meta description */ +if(isset($bfa_ata['page_post_options'])) { + if ($bfa_ata['page_post_options'] == "Yes") { + /* Use the admin_menu action to define the custom boxes */ + if (is_admin()) + add_action('admin_menu', 'bfa_ata_add_custom_box'); + + /* Use the save_post action to do something with the data entered */ + add_action('save_post', 'bfa_ata_save_postdata'); + } +} + +/* Use the publish_post action to do something with the data entered */ +#add_action('publish_post', 'bfa_ata_save_postdata'); + +#add_action('pre_post_update', 'bfa_ata_save_postdata'); + +/* Adds a custom section to the "advanced" Post and Page edit screens */ +function bfa_ata_add_custom_box() { + + if( function_exists( 'add_meta_box' )) { + add_meta_box( 'bfa_ata_sectionid', __( 'Atahualpa Post Options', 'atahualpa' ), + 'bfa_ata_inner_custom_box', 'post', 'normal', 'high' ); + add_meta_box( 'bfa_ata_sectionid', __( 'Atahualpa Page Options', 'atahualpa' ), + 'bfa_ata_inner_custom_box', 'page', 'normal', 'high' ); + } else { + add_action('dbx_post_advanced', 'bfa_ata_old_custom_box' ); + add_action('dbx_page_advanced', 'bfa_ata_old_custom_box' ); + } +} + +/* Prints the inner fields for the custom post/page section */ +function bfa_ata_inner_custom_box() { + + global $post; + + // Use nonce for verification + + echo ''; + + // The actual fields for data entry + + $thePostID = $post->ID; + $post_id = get_post($thePostID); +# $title = $post_id->post_title; + $title = ($post_id->post_title !== 'Auto Draft') ? $post_id->post_title : ''; + + $body_title = get_post_meta($post->ID, 'bfa_ata_body_title', true); + if ( $body_title == '' ) { + $body_title = $title; + } + $display_body_title = get_post_meta($post->ID, 'bfa_ata_display_body_title', true); + $body_title_multi = get_post_meta($post->ID, 'bfa_ata_body_title_multi', true); + if ( $body_title_multi == '' ) { + $body_title_multi = $title; + } + $meta_title = get_post_meta($post->ID, 'bfa_ata_meta_title', true); + $meta_keywords = get_post_meta($post->ID, 'bfa_ata_meta_keywords', true); + $meta_description = get_post_meta($post->ID, 'bfa_ata_meta_description', true); + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + echo ''; + echo ''; + echo ''; + + echo ''; + echo ''; + + echo ''; + echo ''; + + echo '
    Check to NOT display the Body Title on Single Post or Static Pages
    '; + +} + +/* Prints the edit form for pre-WordPress 2.5 post/page */ +function bfa_ata_old_custom_box() { + + echo '
    ' . "\n"; + echo '
    ' . "\n"; + echo '

    ' . + __( 'Body copy title', 'atahualpa' ) . "

    "; + + echo '
    '; + + // output editing form + + bfa_ata_inner_custom_box(); + + // end wrapper + + echo "
    \n"; +} + + + +/* When the post is saved, save our custom data */ +function bfa_ata_save_postdata( $post_id ) { + + /* verify this came from the our screen and with proper authorization, + because save_post can be triggered at other times */ +// Before using $_POST['value'] +if (isset($_POST['bfa_ata_noncename'])) +{ + + if ( !wp_verify_nonce( $_POST['bfa_ata_noncename'], plugin_basename(__FILE__) )) { + return $post_id; + } + + if ( 'page' == $_POST['post_type'] ) { + if ( !current_user_can( 'edit_page', $post_id )) + return $post_id; + } else { + if ( !current_user_can( 'edit_post', $post_id )) + return $post_id; + } + + // Save the data + + $new_body_title = $_POST['bfa_ata_body_title']; + $new_display_body_title = !isset($_POST["bfa_ata_display_body_title"]) ? NULL : $_POST["bfa_ata_display_body_title"]; + $new_body_title_multi = $_POST['bfa_ata_body_title_multi']; + $new_meta_title = $_POST['bfa_ata_meta_title']; + $new_meta_keywords = $_POST['bfa_ata_meta_keywords']; + $new_meta_description = $_POST['bfa_ata_meta_description']; + + update_post_meta($post_id, 'bfa_ata_body_title', $new_body_title); + update_post_meta($post_id, 'bfa_ata_display_body_title', $new_display_body_title); + update_post_meta($post_id, 'bfa_ata_body_title_multi', $new_body_title_multi); + update_post_meta($post_id, 'bfa_ata_meta_title', $new_meta_title); + update_post_meta($post_id, 'bfa_ata_meta_keywords', $new_meta_keywords); + update_post_meta($post_id, 'bfa_ata_meta_description', $new_meta_description); + +}} + +if ( function_exists( 'add_theme_support' ) ) { // Added in 2.9 + + // Since 3.4.5: WP 2.9 thumbnails support: + add_theme_support( 'post-thumbnails' ); + if ($bfa_ata['post_thumbnail_crop'] == "Yes") + set_post_thumbnail_size( $bfa_ata['post_thumbnail_width'], $bfa_ata['post_thumbnail_height'], true ); + else set_post_thumbnail_size( $bfa_ata['post_thumbnail_width'], $bfa_ata['post_thumbnail_height'] ); + add_image_size( 'single-post-thumbnail', 400, 9999 ); // Permalink thumbnail size + + // Since 3.5.4: + add_theme_support('automatic-feed-links'); +} + + +// Since 3.4.7: Import/Export Settings +function bfa_import_settings_now() { + check_ajax_referer( "import_bfa_settings" ); + $new_options = maybe_unserialize(bfa_file_get_contents($_FILES['userfile']['tmp_name'])); + update_option('bfa_new_test', $new_options); + die(); +} +// add_action ( 'wp_ajax_' + [name of "action" in jQuery.ajax, see functions/bfa_css_admin_head.php], [name of function]) +add_action( 'wp_ajax_import_bfa_settings_now', 'bfa_import_settings_now' ); + + + +// Since 3.5.2: New menu system in WP 3 +if (function_exists('register_nav_menus')) { +add_action( 'init', 'bfa_register_new_menus' ); + function bfa_register_new_menus() { + register_nav_menus( + array( + 'menu1' => __( 'Menu 1','atahualpa' ), + 'menu2' => __( 'Menu 2','atahualpa' ) + ) + ); + } +} + +// Since 3.5.4: Add odd/even class to WP's post_class +add_filter ( 'post_class' , 'bfa_post_class' ); +global $current_class; +$current_class = 'odd'; + +function bfa_post_class ( $classes ) { + global $current_class; + $classes[] = $current_class; + $current_class = ($current_class == 'odd') ? 'even' : 'odd'; + return $classes; +} + +// Since 3.6: Use stream wrapper instead of eval to include user code. Not used anymore since 3.6.5 +class bfa_VariableStream { + var $position; + var $varname; + + function stream_open($path, $mode, $options, &$opened_path) + { + $url = parse_url($path); + $this->varname = $url["host"]; + $this->position = 0; + + return true; + } + + function stream_read($count) + { + $ret = substr($GLOBALS[$this->varname], $this->position, $count); + $this->position += strlen($ret); + return $ret; + } + + function stream_write($data) + { + $left = substr($GLOBALS[$this->varname], 0, $this->position); + $right = substr($GLOBALS[$this->varname], $this->position + strlen($data)); + $GLOBALS[$this->varname] = $left . $data . $right; + $this->position += strlen($data); + return strlen($data); + } + + function stream_tell() + { + return $this->position; + } + + function stream_eof() + { + return $this->position >= strlen($GLOBALS[$this->varname]); + } + + function stream_seek($offset, $whence) + { + switch ($whence) { + case SEEK_SET: + if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) { + $this->position = $offset; + return true; + } else { + return false; + } + break; + + case SEEK_CUR: + if ($offset >= 0) { + $this->position += $offset; + return true; + } else { + return false; + } + break; + + case SEEK_END: + if (strlen($GLOBALS[$this->varname]) + $offset >= 0) { + $this->position = strlen($GLOBALS[$this->varname]) + $offset; + return true; + } else { + return false; + } + break; + + default: + return false; + } + } + + function stream_stat() + { + return array('size' => strlen($GLOBALS[$this->varname])); + } + + function url_stat() + { + return array(); + } + +} + +// Since 3.6: Register stream wrapper 'bfa' +stream_wrapper_register("bfa", "bfa_VariableStream") + or die("Failed to register new stream protocol 'bfa'"); + +// Since 3.6: Make sure $GLOBALS has all values +foreach($bfa_ata as $key => $value) { + $GLOBALS[$key] = $value; +} + +// Since 3.6: New variables using newer WP functions +$templateURI = get_template_directory_uri(); +// Since 3.7.0: Escape home_url, too +$homeURL = esc_url( home_url() ); + +// Since 3.6: Include Javascripts here and with wp_enqueue instead of header.php +$isIE6 = (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.') !== FALSE); + +// Since 3.7.4: Enqueue with add_action +function bfa_enqueue_scripts() { + global $isIE6, $bfa_ata; + $templateURI = get_template_directory_uri(); + + + if ( !is_admin() ) { + + wp_enqueue_script('jquery'); + + if ($bfa_ata['pngfix_selectors'] != "" AND $isIE6 = TRUE) + { + wp_register_script('ddroundies', $templateURI . '/js/DD_roundies.js', false, '0.0.2a' ); + wp_enqueue_script('ddroundies'); + add_action('wp_head', 'bfa_ddroundiesHead'); + } + + if (strpos($bfa_ata['configure_header'],'%image')!== FALSE AND $bfa_ata['header_image_javascript'] != "0" + AND $bfa_ata['crossslide_fade'] != "0") { + wp_register_script('crossslide', $templateURI . '/js/jquery.cross-slide.js', array('jquery'), '0.3.2' ); + wp_enqueue_script('crossslide'); + } + } +} +add_action('wp_enqueue_scripts', 'bfa_enqueue_scripts'); // For use on the Front end (ie. Theme) + + + +// Since 3.6.1: Add ddroundies script in head this way: +function bfa_ddroundiesHead() { + global $bfa_ata; + echo ' + +'; +} + +// Since 3.6: Content Width +if ( ! isset( $content_width ) ) + $content_width = 640; + + +// Since 3.6.5: Process or don't process user included PHP code. +function bfa_incl($option) { + + global $bfa_ata; + + $result = bfa_parse_widget_areas($bfa_ata[$option]); + + echo $result; +} + + +function bfa_parse_widget_areas($content) { + + if ( strpos($content,'/s","bfa_parse_widget_areas_callback",$content); + } + + return $content; +} + + +// Callback for preg_replace_callback +function bfa_parse_widget_areas_callback($matches) { + + parse_str($matches[3], $widget_options); + + ob_start(); + + bfa_widget_area($widget_options); + $widget_area = ob_get_contents(); + + ob_end_clean(); + + return $widget_area; +} + +function bfa_is_pagetemplate_active($pagetemplate = '') { + + if ($pagetemplate == '') {return 0;} + + global $wpdb; + $sql = "select meta_key from $wpdb->postmeta where meta_key like '_wp_page_template' and meta_value like '" . $pagetemplate . "'"; + $result = $wpdb->query($sql); + if ($result) { + return 1; + } else { + return 0; + } +} +// add category nicenames in body and post class + function bfa_category_id_class($classes) { + global $post; + if (is_single()) { + foreach((get_the_category($post->ID)) as $category) + $classes[] = 'category-'.$category->slug; + } + return $classes; + } + add_filter('body_class', 'bfa_category_id_class'); +?> \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/functions/JSON.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/functions/JSON.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,806 @@ + + * @author Matt Knapp + * @author Brett Stimmerman + * @copyright 2005 Michal Migurski + * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $ + * @license http://www.opensource.org/licenses/bsd-license.php + * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 + */ + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_SLICE', 1); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_STR', 2); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_ARR', 3); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_OBJ', 4); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_CMT', 5); + +/** + * Behavior switch for Services_JSON::decode() + */ +define('SERVICES_JSON_LOOSE_TYPE', 16); + +/** + * Behavior switch for Services_JSON::decode() + */ +define('SERVICES_JSON_SUPPRESS_ERRORS', 32); + +/** + * Converts to and from JSON format. + * + * Brief example of use: + * + * + * // create a new instance of Services_JSON + * $json = new Services_JSON(); + * + * // convert a complexe value to JSON notation, and send it to the browser + * $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4))); + * $output = $json->encode($value); + * + * print($output); + * // prints: ["foo","bar",[1,2,"baz"],[3,[4]]] + * + * // accept incoming POST data, assumed to be in JSON notation + * $input = file_get_contents('php://input', 1000000); + * $value = $json->decode($input); + * + */ +class Services_JSON +{ + /** + * constructs a new JSON instance + * + * @param int $use object behavior flags; combine with boolean-OR + * + * possible values: + * - SERVICES_JSON_LOOSE_TYPE: loose typing. + * "{...}" syntax creates associative arrays + * instead of objects in decode(). + * - SERVICES_JSON_SUPPRESS_ERRORS: error suppression. + * Values which can't be encoded (e.g. resources) + * appear as NULL instead of throwing errors. + * By default, a deeply-nested resource will + * bubble up with an error, so all return values + * from encode() should be checked with isError() + */ + function Services_JSON($use = 0) + { + $this->use = $use; + } + + /** + * convert a string from one UTF-16 char to one UTF-8 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf16 UTF-16 character + * @return string UTF-8 character + * @access private + */ + function utf162utf8($utf16) + { + // oh please oh please oh please oh please oh please + if(function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); + } + + $bytes = (ord($utf16{0}) << 8) | ord($utf16{1}); + + switch(true) { + case ((0x7F & $bytes) == $bytes): + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x7F & $bytes); + + case (0x07FF & $bytes) == $bytes: + // return a 2-byte UTF-8 character + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0xC0 | (($bytes >> 6) & 0x1F)) + . chr(0x80 | ($bytes & 0x3F)); + + case (0xFFFF & $bytes) == $bytes: + // return a 3-byte UTF-8 character + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0xE0 | (($bytes >> 12) & 0x0F)) + . chr(0x80 | (($bytes >> 6) & 0x3F)) + . chr(0x80 | ($bytes & 0x3F)); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * convert a string from one UTF-8 char to one UTF-16 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf8 UTF-8 character + * @return string UTF-16 character + * @access private + */ + function utf82utf16($utf8) + { + // oh please oh please oh please oh please oh please + if(function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); + } + + switch(strlen($utf8)) { + case 1: + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return $utf8; + + case 2: + // return a UTF-16 character from a 2-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x07 & (ord($utf8{0}) >> 2)) + . chr((0xC0 & (ord($utf8{0}) << 6)) + | (0x3F & ord($utf8{1}))); + + case 3: + // return a UTF-16 character from a 3-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr((0xF0 & (ord($utf8{0}) << 4)) + | (0x0F & (ord($utf8{1}) >> 2))) + . chr((0xC0 & (ord($utf8{1}) << 6)) + | (0x7F & ord($utf8{2}))); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * encodes an arbitrary variable into JSON format + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + function encode($var) + { + switch (gettype($var)) { + case 'boolean': + return $var ? 'true' : 'false'; + + case 'NULL': + return 'null'; + + case 'integer': + return (int) $var; + + case 'double': + case 'float': + return (float) $var; + + case 'string': + // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT + $ascii = ''; + $strlen_var = strlen($var); + + /* + * Iterate over every character in the string, + * escaping with a slash or encoding to UTF-8 where necessary + */ + for ($c = 0; $c < $strlen_var; ++$c) { + + $ord_var_c = ord($var{$c}); + + switch (true) { + case $ord_var_c == 0x08: + $ascii .= '\b'; + break; + case $ord_var_c == 0x09: + $ascii .= '\t'; + break; + case $ord_var_c == 0x0A: + $ascii .= '\n'; + break; + case $ord_var_c == 0x0C: + $ascii .= '\f'; + break; + case $ord_var_c == 0x0D: + $ascii .= '\r'; + break; + + case $ord_var_c == 0x22: + case $ord_var_c == 0x2F: + case $ord_var_c == 0x5C: + // double quote, slash, slosh + $ascii .= '\\'.$var{$c}; + break; + + case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): + // characters U-00000000 - U-0000007F (same as ASCII) + $ascii .= $var{$c}; + break; + + case (($ord_var_c & 0xE0) == 0xC0): + // characters U-00000080 - U-000007FF, mask 110XXXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, ord($var{$c + 1})); + $c += 1; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF0) == 0xE0): + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2})); + $c += 2; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF8) == 0xF0): + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3})); + $c += 3; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFC) == 0xF8): + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4})); + $c += 4; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFE) == 0xFC): + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4}), + ord($var{$c + 5})); + $c += 5; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + } + } + + return '"'.$ascii.'"'; + + case 'array': + /* + * As per JSON spec if any array key is not an integer + * we must treat the the whole array as an object. We + * also try to catch a sparsely populated associative + * array with numeric keys here because some JS engines + * will create an array with empty indexes up to + * max_index which can cause memory issues and because + * the keys, which may be relevant, will be remapped + * otherwise. + * + * As per the ECMA and JSON specification an object may + * have any string as a property. Unfortunately due to + * a hole in the ECMA specification if the key is a + * ECMA reserved word or starts with a digit the + * parameter is only accessible using ECMAScript's + * bracket notation. + */ + + // treat as a JSON object + if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { + $properties = array_map(array($this, 'name_value'), + array_keys($var), + array_values($var)); + + foreach($properties as $property) { + if(Services_JSON::isError($property)) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + } + + // treat it like a regular array + $elements = array_map(array($this, 'encode'), $var); + + foreach($elements as $element) { + if(Services_JSON::isError($element)) { + return $element; + } + } + + return '[' . join(',', $elements) . ']'; + + case 'object': + $vars = get_object_vars($var); + + $properties = array_map(array($this, 'name_value'), + array_keys($vars), + array_values($vars)); + + foreach($properties as $property) { + if(Services_JSON::isError($property)) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + + default: + return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS) + ? 'null' + : new Services_JSON_Error(gettype($var)." can not be encoded as JSON string"); + } + } + + /** + * array-walking function for use in generating JSON-formatted name-value pairs + * + * @param string $name name of key to use + * @param mixed $value reference to an array element to be encoded + * + * @return string JSON-formatted name-value pair, like '"name":value' + * @access private + */ + function name_value($name, $value) + { + $encoded_value = $this->encode($value); + + if(Services_JSON::isError($encoded_value)) { + return $encoded_value; + } + + return $this->encode(strval($name)) . ':' . $encoded_value; + } + + /** + * reduce a string by removing leading and trailing comments and whitespace + * + * @param $str string string value to strip of comments and whitespace + * + * @return string string value stripped of comments and whitespace + * @access private + */ + function reduce_string($str) + { + $str = preg_replace(array( + + // eliminate single line comments in '// ...' form + '#^\s*//(.+)$#m', + + // eliminate multi-line comments in '/* ... */' form, at start of string + '#^\s*/\*(.+)\*/#Us', + + // eliminate multi-line comments in '/* ... */' form, at end of string + '#/\*(.+)\*/\s*$#Us' + + ), '', $str); + + // eliminate extraneous space + return trim($str); + } + + /** + * decodes a JSON string into appropriate variable + * + * @param string $str JSON-formatted string + * + * @return mixed number, boolean, string, array, or object + * corresponding to given JSON input string. + * See argument 1 to Services_JSON() above for object-output behavior. + * Note that decode() always returns strings + * in ASCII or UTF-8 format! + * @access public + */ + function decode($str) + { + $str = $this->reduce_string($str); + + switch (strtolower($str)) { + case 'true': + return true; + + case 'false': + return false; + + case 'null': + return null; + + default: + $m = array(); + + if (is_numeric($str)) { + // Lookie-loo, it's a number + + // This would work on its own, but I'm trying to be + // good about returning integers where appropriate: + // return (float)$str; + + // Return float or int, as appropriate + return ((float)$str == (integer)$str) + ? (integer)$str + : (float)$str; + + } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { + // STRINGS RETURNED IN UTF-8 FORMAT + $delim = substr($str, 0, 1); + $chrs = substr($str, 1, -1); + $utf8 = ''; + $strlen_chrs = strlen($chrs); + + for ($c = 0; $c < $strlen_chrs; ++$c) { + + $substr_chrs_c_2 = substr($chrs, $c, 2); + $ord_chrs_c = ord($chrs{$c}); + + switch (true) { + case $substr_chrs_c_2 == '\b': + $utf8 .= chr(0x08); + ++$c; + break; + case $substr_chrs_c_2 == '\t': + $utf8 .= chr(0x09); + ++$c; + break; + case $substr_chrs_c_2 == '\n': + $utf8 .= chr(0x0A); + ++$c; + break; + case $substr_chrs_c_2 == '\f': + $utf8 .= chr(0x0C); + ++$c; + break; + case $substr_chrs_c_2 == '\r': + $utf8 .= chr(0x0D); + ++$c; + break; + + case $substr_chrs_c_2 == '\\"': + case $substr_chrs_c_2 == '\\\'': + case $substr_chrs_c_2 == '\\\\': + case $substr_chrs_c_2 == '\\/': + if (($delim == '"' && $substr_chrs_c_2 != '\\\'') || + ($delim == "'" && $substr_chrs_c_2 != '\\"')) { + $utf8 .= $chrs{++$c}; + } + break; + + case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)): + // single, escaped unicode character + $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2))) + . chr(hexdec(substr($chrs, ($c + 4), 2))); + $utf8 .= $this->utf162utf8($utf16); + $c += 5; + break; + + case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F): + $utf8 .= $chrs{$c}; + break; + + case ($ord_chrs_c & 0xE0) == 0xC0: + // characters U-00000080 - U-000007FF, mask 110XXXXX + //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 2); + ++$c; + break; + + case ($ord_chrs_c & 0xF0) == 0xE0: + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 3); + $c += 2; + break; + + case ($ord_chrs_c & 0xF8) == 0xF0: + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 4); + $c += 3; + break; + + case ($ord_chrs_c & 0xFC) == 0xF8: + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 5); + $c += 4; + break; + + case ($ord_chrs_c & 0xFE) == 0xFC: + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 6); + $c += 5; + break; + + } + + } + + return $utf8; + + } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) { + // array, or object notation + + if ($str{0} == '[') { + $stk = array(SERVICES_JSON_IN_ARR); + $arr = array(); + } else { + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $stk = array(SERVICES_JSON_IN_OBJ); + $obj = array(); + } else { + $stk = array(SERVICES_JSON_IN_OBJ); + $obj = new stdClass(); + } + } + + array_push($stk, array('what' => SERVICES_JSON_SLICE, + 'where' => 0, + 'delim' => false)); + + $chrs = substr($str, 1, -1); + $chrs = $this->reduce_string($chrs); + + if ($chrs == '') { + if (reset($stk) == SERVICES_JSON_IN_ARR) { + return $arr; + + } else { + return $obj; + + } + } + + //print("\nparsing {$chrs}\n"); + + $strlen_chrs = strlen($chrs); + + for ($c = 0; $c <= $strlen_chrs; ++$c) { + + $top = end($stk); + $substr_chrs_c_2 = substr($chrs, $c, 2); + + if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) { + // found a comma that is not inside a string, array, etc., + // OR we've reached the end of the character list + $slice = substr($chrs, $top['where'], ($c - $top['where'])); + array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false)); + //print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + if (reset($stk) == SERVICES_JSON_IN_ARR) { + // we are in an array, so just push an element onto the stack + array_push($arr, $this->decode($slice)); + + } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { + // we are in an object, so figure + // out the property name and set an + // element in an associative array, + // for now + $parts = array(); + + if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { + // "name":value pair + $key = $this->decode($parts[1]); + $val = $this->decode($parts[2]); + + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $obj[$key] = $val; + } else { + $obj->$key = $val; + } + } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { + // name:value pair, where name is unquoted + $key = $parts[1]; + $val = $this->decode($parts[2]); + + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $obj[$key] = $val; + } else { + $obj->$key = $val; + } + } + + } + + } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) { + // found a quote, and we are not inside a string + array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c})); + //print("Found start of string at {$c}\n"); + + } elseif (($chrs{$c} == $top['delim']) && + ($top['what'] == SERVICES_JSON_IN_STR) && + ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) { + // found a quote, we're in a string, and it's not escaped + // we know that it's not escaped becase there is _not_ an + // odd number of backslashes at the end of the string so far + array_pop($stk); + //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); + + } elseif (($chrs{$c} == '[') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a left-bracket, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false)); + //print("Found start of array at {$c}\n"); + + } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) { + // found a right-bracket, and we're in an array + array_pop($stk); + //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } elseif (($chrs{$c} == '{') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a left-brace, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false)); + //print("Found start of object at {$c}\n"); + + } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) { + // found a right-brace, and we're in an object + array_pop($stk); + //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } elseif (($substr_chrs_c_2 == '/*') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a comment start, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false)); + $c++; + //print("Found start of comment at {$c}\n"); + + } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) { + // found a comment end, and we're in one now + array_pop($stk); + $c++; + + for ($i = $top['where']; $i <= $c; ++$i) + $chrs = substr_replace($chrs, ' ', $i, 1); + + //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } + + } + + if (reset($stk) == SERVICES_JSON_IN_ARR) { + return $arr; + + } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { + return $obj; + + } + + } + } + } + + /** + * @todo Ultimately, this should just call PEAR::isError() + */ + function isError($data, $code = null) + { + if (class_exists('pear')) { + return PEAR::isError($data, $code); + } elseif (is_object($data) && (get_class($data) == 'services_json_error' || + is_subclass_of($data, 'services_json_error'))) { + return true; + } + + return false; + } +} + +if (class_exists('PEAR_Error')) { + + class Services_JSON_Error extends PEAR_Error + { + function Services_JSON_Error($message = 'unknown error', $code = null, + $mode = null, $options = null, $userinfo = null) + { + parent::PEAR_Error($message, $code, $mode, $options, $userinfo); + } + } + +} else { + + /** + * @todo Ultimately, this class shall be descended from PEAR_Error + */ + class Services_JSON_Error + { + function Services_JSON_Error($message = 'unknown error', $code = null, + $mode = null, $options = null, $userinfo = null) + { + + } + } + +} + +?> \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/functions/bfa_ata_add_admin.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/functions/bfa_ata_add_admin.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,63 @@ + \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/functions/bfa_ata_admin.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/functions/bfa_ata_admin.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,719 @@ +

    Atahualpa settings saved.

    '; + if ( isset($_REQUEST['reset']) ) echo '

    Atahualpa settings reset.

    '; +?> + +

    +Atahualpa

    +
    + +
    + + + + + + + +
    + + + + + +
    + +
    '; + +// extra info for some categories + +// "Postinfo" instructions +if($value['category'] == "postinfos" AND isset($value['switch'])) { ?> +
    +
    + + + Configure a Kicker, a Byline and a Footer + for posts and pages by arranging these Post Info Items. +

    + Some of these post info items have one or several parameters: +
      +
    • + You can leave parameters empty but do not remove their single quotes, even if the parameter is empty. +
    • +
    • + Replace the parameter delimiter with what you want to put between the list + items of the tag or category list, i.e. a comma. +
    • +
    • + Replace the parameters before and after with what you want to + display before or after that info item. If an item has these "before/after" parameters, use + them instead of hard coding text before and after that item: Example: Use +
      + %tags-linked('Tags: ', ', ', ' - ')% +
      + instead of
      + Tags: %tags-linked('', ', ', '')% - +
    • +
    • + Replace the parameter linktext with the link text for that item. +
    • +
    + HTML and icons can be used, inside of parameters, too, just not inside the date item: +
      +
    • + <image(someimage.gif)> to include an image. + Note: The image item doesn't have quotes +
    • +
    • + To use your own images, upload them to /[theme-folder]/images/icons/ +
    • +
    + +

    Icons

    + Currently available images (Once you uploaded yours they will be listed here): +

    + $file) { + echo '  <image('.$file.')>'; + } ?> + +
     
    +

    Examples

    + Examples for Post Bylines: +
      +
    • By %author%, on %date('F jS, Y')%
    • +
    • <strong>%author-linked%</strong> posted this in <strong>%categories-linked(', ')% + </strong> on <em>%date('F jS, Y')%</em>
    • +
    • <image(user.gif)> %author-linked% <image(date.gif)> %date('l, jS #of F Y #a#t h:i:s A')%
    • +
    + Examples for Post Footers: +
      +
    • %tags-linked('<strong>Tags:</strong> ', ', ', ' &mdash; ')% + <strong>Categories:</strong> %categories-linked(', ')% &mdash; + %comments('Nobody has commented yet, kick it off...', 'One comment so far', '% people had their say - be the next!', + 'Sorry, but comments are closed')% &mdash; + %wp-print% &mdash; %wp-email% &mdash; %sociable% &mdash; %wp-postviews%
    • +
    +

    Post Info Items

    + List of available post info items: +
    %author% - Displays the value in the user's Display name publicly as field. +
    %modified-author% - For WordPress 2.8 and newer ONLY: + Displays the value in the Display name publicly as field, of the author who last modified a post. + This will not work in WordPress 2.7 and older. +
    %author-description% - Displays the contents of the About yourself field in an + author's profile (Administration > Profile > Your Profile). +
    %author-login% - Displays the login name of the author of a post. The login is also + referred to as the Username an author uses to gain access to a WordPress blog. +
    %author-firstname% - Displays the first name for the author of a post. The First Name + field is set in the user's profile (Administration > Profile > Your Profile). +
    %author-lastname% - Displays the last name for the author of a post. The Last Name field + is set in the user's profile (Administration > Profile > Your Profile). +
    %author-nickname% - Displays the nickname for the author of a post. The Nickname field + is set in the user's profile (Administration > Profile > Your Profile). +
    %author-id% - Displays the unique numeric user ID for the author of a post; the ID is + assigned by WordPress when a user account is created. +
    %author-email-clear% - Displays the email address for the author of a post. The E-mail + field is set in the user's profile (Administration > Profile > Your Profile). Note that the address + is not encoded or protected in any way from harvesting by spambots. For this, see %author-email%. +
    %author-email% - Displays the email address for the author of a post, obfuscated by using + the internal function antispambot() to encode portions in HTML character + entities (these are read correctly by your browser). +
    %author-url% - Displays the URL (not a full link) to the Website for the author of a post. The Website field + is set in the user's profile (Administration > Profile > Your Profile). +
    %author-link% - Displays a link to the Website for the author of a post. The Website field is + set in the user's profile (Administration > Profile > Your Profile). The text for the link is the author's + Profile Display name publicly as field. +
    %author-posts-link% - Displays a link to all posts by an author. The link text is the user's + Display name publicly as field. +
    %author-post-count% - Displays the total number of posts an author has published. Drafts and + private posts aren't counted. +
    %author-aim% - Displays the AOL Instant Messenger screenname for the author of a post. + The AIM field is set in the user's profile (Administration > Profile > Your Profile). +
    %author-yim% - Displays the Yahoo IM ID for the author of a post. The Yahoo IM field is + set in the user's profile (Administration > Profile > Your Profile). +
    %date('F jS, Y')% - Display the date and/or time the post was published at. Many configuration + options at PHP Date. Because most letters of the alphabet represent + a certain PHP date/time function, you need to escape each letter that you want to + display LITERALLY. To escape a letter, put a hash character # right before that letter. + (Note that this is different from the original "PHP way" of escaping with backslashes \. The theme + needs the hash character #). The hash will tell the theme that you mean the actual letter and not the + corresponding PHP date/time function.

    + How to escape literal letters +
      +
    • on -> #o#n
    • +
    • of -> #of   (Note how the the lowercase f didn't get a #. + That's because f is one of the letters of the alphabet that does not represent a + PHP date function)
    • +
    • at -> #a#t
    • +
    • the -> #t#h#e
    • +
    • The arrows just illustrate how to change a word to display it literally inside a date function, don't use them
    • +
    + Examples: +
      +
    • %date('F j, Y, #a#t g:i a')% displays: December 10, 2008, at 5:16 pm
      + Note how the letters a and t of the word at are + escaped with # + to display them literally instead of interpreting them as PHP date/time function. +
    • +
    • %date('F j, Y, g:i a')% displays: December 10, 2008, 5:16 pm +
    • +
    • %date('m.d.y')% displays: 10.12.08 +
    • +
    +
    + %date-modified('F jS, Y')% - Same as above but displays the post's last modfied date instead of its creation date. +
    %tags-linked('before', 'delimiter', 'after')% - Displays the tags associated with + the current post. The name of each tag will be linked to the relevant 'tag' page. +
    Example: %tags-linked('Tagged with: ', ' - ', '. ')% +
    %tags-cats-linked('before', 'delimiter', 'after')% - Same as above but if no tags + are associated with the current post, the associated category is displayed instead. +
    Example: %tags-linked('Filed under: ', ' - ', '. ')% +
    %tags('before', 'delimiter', 'after')% - Displays the tags associated with + the current post. Tags are not linked. +
    Example: %tags-linked('Tags: ', ' - ', '. ')% +
    %category% - Displays the name of the first category a post belongs to. +
    %category-linked% - Displays a link to the first category a post belongs to. +
    %categories('delimiter')% - Displays the names of all categories a post belongs to, separated + by delimiter. +
    Example: %categories(', ')% +
    %categories-linked('delimiter')% - Displays links to all categories a post belongs to, separated + by delimiter. +
    Example: %categories-linked(' | ')% +
    %comments('No comments', '1 comment', '% comments', 'Comments closed')% - Displays a + link to the comment section of the post. The link text depends on the comment count & status (open/closed). +

    + When using this item, provide 4 text strings for the 4 possible comment states: +
      +
    • Replace 'No Comments' with your link text for posts that have no comments yet
    • +
    • Replace '1 comment' with your text for posts with 1 comment
    • +
    • Replace '% comments' with your text for posts with 2 or more comments. The % (percent) character + will be replaced with the comment count. Use that character in your own text, too, unless you do not want to display the comment count.
    • +
    • Replace 'Comments closed' with your text for posts where comments are closed. Replace 'Comments closed' with 'dontshow' + to display nothing if comments are closed (instead of displaying something like 'Comments closed')
    • +
    +
    Example: + %comments('Leave your comment', 'One comment so far', '% people had their say - chime in!', + 'Sorry, but comments are closed')% +
    Example 2: %comments('Comments', 'Comments (1)', 'Comments (%)', 'dontshow')% +

    NOTE: On single post pages the %comments('...')% link won't display anything because the comments are on the same page. + If you still + want to link to the comments, the comment section and the comment form start with named anchors, so you use something like this:
    + <?php echo '<a href="'.bfa_getH().'comments">Skip to comments</a>'; ?> or <?php echo + '<a href="'.bfa_getH().'commentform">Skip to comments form</a>'; ?> +
    %comments-rss('linktext')% - Displays the comment feed link for a post, with linktext as the link text. +
    %trackback% - Displays the trackback URL for the current post. +
    %trackback-linked('linktext')% - Displays a link to the trackback URL, with linktext as the link text. +
    %trackback-rdf% - Displays the trackback RDF information for a post. This information is not displayed + in a browser. Its use is partly intended for auto-detection of the trackback URI to a post, which can be "trackbacked" + by some blogging and RDF tools. Use this tag if you want to enable auto-discovery of the trackback URI for a post. + Without it, people who wish to send a trackback to one of your posts will have to manually search for the trackback URI. +
    %permalink% - Displays the URL for the permalink to the post. +
    %post-id% - Displays the numeric ID of the post. +
    %post-title% - Displays the title of the post. +
    %post-title-encoded% - Displays the title of the post. It somewhat duplicates the functionality of + &post-title%, but provides a 'clean' version of the title by stripping HTML tags and converting certain characters + (including quotes) to their character entity equivalent. Use this i.e. for the title tag of a link, example:
    + <a href="..." title="%post-title-encoded%"> +
    %edit('before', 'linktext', 'after')% - Displays a direct edit link for the post, IF the current viewer + is permitted to edit posts, with linktext as the link text. +
    Example: %edit(' - ', 'Edit This Post', '')% +
    %print('linktext')% - Displays a link with linktext as the link text, which, when clicked, + will start printing the content of the center column of the current page, without header, sidebars and footer. +
    Example: %print('Print this Page')% +
    %wp-print% - Displays a link to a print preview page of the post. A configurable alternative to the + theme's own basic print function (which prints right away, without preview page). Requires the plugin + WP-Print. + After you installed this plugin, customize the output at the WP-Print Options Page. +
    %wp-email% - Displays a link to a form where visitors can e-mail the post to others. Requires + the plugin WP-Email. + After you installed this plugin, customize the output at the WP-Email Options Page.
    + Suggested settings: +
      +
    • Change settings in the section "E-Mail Styles" to customize the output of this item
    • +
    • Make other changes as you see fit
    • +
    • Click "Save Changes"
    • +
    +
    %wp-postviews% - Displays how many times the post was viewed. Requires the plugin + WP-PostViews. + After you installed this plugin, customize the output at the WP-PostViews Options Page.
    + Suggested settings: +
      +
    • Change "Views Template" to customize the output of this item
    • +
    • Make other changes as you see fit
    • +
    • Click "Save Changes"
    • +
    +
    %wp-postratings% - Displays stars or other graphics showing the vote/rating of a post, and lets visitors rate the post. + Requires the plugin WP-PostRatings. + After you installed this plugin, customize the output at the WP-PostRatings Options Page.
    + Suggested settings: +
      +
    • Delete <br />%RATINGS_TEXT% from the bottom of the textarea named "Ratings Vote Text:"
    • +
    • Delete <br />%RATINGS_TEXT% from the bottom of the textarea named "Ratings None:"
    • +
    • Make other changes as you see fit
    • +
    • Click "Save Changes"
    • +
    +
    %sociable% - Displays little icons, linking the post to social bookmark sites. Requires the plugin + Sociable. Customize the output at the + + Sociable Options Page.
    + Suggested settings: +
      +
    • "Tagline:" - Will be ignored
    • "Position:" - Uncheck all boxes
    • "Use CSS:" - Uncheck this
    • +
    • "Open in new window:" - Check or uncheck, will be used
    • Click "Save Changes"
    • +
    +
    %share-this% - Displays little icons, linking the post to social bookmark sites. Requires the plugin + Share This. +
    %meta% - Displays all custom fields and their values as unordered list + <ul><li>..</li><li>..</li></ul> +
    %meta('fieldname')% - Displays the value of the custom field with the field name "fieldname". +
    Example: %meta('price')% + +
    +
    +
    +
    Default: '; + + if ($value['std'] == "") + echo "blank"; + else + echo ( isset($value['editable']) ? + stripslashes(format_to_edit($value['std'])) : + $value['std'] ); + + echo '
    ' . $value['info'] . '
    +
    '; + +} + + + +##################################################################### +# WIDGET LIST ITEMS +##################################################################### + +elseif ($value['type'] == "widget-list-items") { + +# needed for multi array options +$current_options = $bfa_ata[ $value['id'] ]; +?> +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + +
    List items and links inside
    Left Margin for whole ItemLeft Border Width for LinksLeft Border Color for LinksLeft Border Hover Color for LinksLeft Padding for LinksLink Text WeightLink Text ColorLink Text Hover Color
    + + + + + " /> + + " /> + + + + + + " /> + + " /> +
    +
    +
    +
    +
    + + +
    + Homepage
    + Front Page (*)
    + Single Posts
    + "Page" pages
    + Category Pages
    + Archive Pages +
    + Tag Pages
    + Cust.Tax. (**)
    + Search Results
    + Author Pages
    + "Not Found"
    + Attachments
    + +
    +
    ' . $value['info'] . ' +
    '; + +} + + + +##################################################################### +# TEXTAREA +##################################################################### + +elseif ($value['type'] == "textarea") { + + echo '
    +

    Default: '; + + if ($value['std'] == "") + echo "blank"; + else + echo "
    " . ( $value['editable'] == "yes" ? + str_replace("\n", "
    ", htmlentities($value['std'], ENT_QUOTES)) : + str_replace("\n", "
    ", $value['std']) ) . "
    "; + + echo '
    ' . $value['info'] . + '
    '; + +} + + + +##################################################################### +# POSTINFOS & LARGE TEXTAREAS +##################################################################### + +elseif ($value['type'] == "postinfos" OR $value['type'] == "textarea-large") { + + echo '
    +
    ' . $value['info'].'
    Default: "; + + if ($value['std'] == "") + echo "blank"; + else + echo format_to_edit( $value['std'] ); + + echo '
    '; + +} + + + +##################################################################### +# INFO +##################################################################### + +elseif ($value['type'] == "info") { + + echo '
    + ' . + $value['info'] . '
    '; + +} + + + +##################################################################### +# SELECT +##################################################################### + +elseif ($value['type'] == "select") { + + echo '
    + +
    Default: ' . +# changed in 3.3.4: +# ( $value['std'] == "" ? "blank" : $value['std'] ) . + $value['std'] . + '
    ' . $value['info'] . + '
    '; + +} + + + +##################################################################### +# SAVE and RESET OPTIONS +##################################################################### + + // all categories except first category "start-here" get closing form tags and buttons + if ( $value['category'] != "start-here" AND isset($value['lastoption']) ) { + echo '
    +

    + + + + Save settings of current page +


    + +
    +

    + + + + Reset settings of current page +

    +
    +
    '; + } + +} + +// options loop END + +?> + + + +

    +
    +

    + + +
    + WARNING - this will reset ALL 200+ theme options!
    Clicking this button will...
    + (1) remove all Atahualpa options from the WordPress options table
    + (2) reset all Atahualpa options to the default values
    +

    +
    + +
    + +
    + + + \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/functions/bfa_calendar_widget.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/functions/bfa_calendar_widget.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,15 @@ +'; get_calendar(); echo ''; + if ( !empty( $title ) ) { echo $after_widget; } else { echo ""; } +} + // unregister old / register new calendar widget + $widget_ops = array('classname' => 'widget_calendar', 'description' => __("A calendar of your blog's posts","atahualpa") ); + wp_unregister_sidebar_widget('calendar', __('Calendar','atahualpa'), 'wp_widget_calendar', $widget_ops); + wp_register_sidebar_widget('calendar', __('Calendar','atahualpa'), 'bfa_widget_calendar', $widget_ops); +?> \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/functions/bfa_css_admin_head.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/functions/bfa_css_admin_head.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,29 @@ +var nonce = '$nonce'; var nonce2 = '$nonce2'; var nonce3 = '$nonce3';"; + } + } +} +?> \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/functions/bfa_custom_comments.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/functions/bfa_custom_comments.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,28 @@ + +
  • id="comment-"> +
    +
    + + +
    + comment_approved == '0') : ?> +
    + + + +
    + \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/functions/bfa_footer.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/functions/bfa_footer.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,110 @@ +' . $page_title . ''; +} + + +function bfa_footer() { + + global $bfa_ata, $post; + $homeURL = get_home_url(); + + $footer_content = $bfa_ata['footer_style_content']; + + // page links + if ( strpos($footer_content,'%page') !== FALSE ) { + $footer_content = preg_replace_callback("|%page-(.*?)%|","bfa_footer_page_links",$footer_content); + } + + // home link + if ( strpos($footer_content,'%home%') !== FALSE ) { + ob_start(); + echo ''; bloginfo('name'); echo ''; + $footer_home_link = ob_get_contents(); + ob_end_clean(); + $footer_content = str_replace("%home%", $footer_home_link, $footer_content); + } + + // login/logout link + if ( strpos($footer_content,'%loginout%') !== FALSE ) { + + ob_start(); + wp_loginout(); + $loginout_link = ob_get_contents(); + ob_end_clean(); + + if ( $bfa_ata['nofollow'] == "Yes" ) { + $loginout_link = str_replace(' href=', ' rel="nofollow" href=', $loginout_link); + } + + $footer_content = str_replace("%loginout%", $loginout_link, $footer_content); + } + + // register link + if ( strpos($footer_content,'%register%') !== FALSE ) { + + ob_start(); + wp_register(); + $register_link = ob_get_contents(); + ob_end_clean(); + + $register_link = str_replace( array('
  • ', '
  • '), '', $register_link); + + if ( $bfa_ata['nofollow'] == "Yes" ) { + $register_link = str_replace(' href=', ' rel="nofollow" href=', $register_link); + } + + $footer_content = str_replace("%register%", $register_link, $footer_content); + } + + /* LEGACY up to Atahualpa 3.2 admin link and register link were two different tags, + now they're combined into one tag %register% mimicking the wp_register() function */ + if ( strpos($footer_content,'%admin%') !== FALSE ) { + + ob_start(); + wp_register(); + $admin_link = ob_get_contents(); + ob_end_clean(); + + $admin_link = str_replace( array('
  • ', '
  • '), '', $admin_link); + + if ( $bfa_ata['nofollow'] == "Yes" ) { + $admin_link = str_replace(' href=', ' rel="nofollow" href=', $admin_link); + } + + $footer_content = str_replace("%admin%", $admin_link, $footer_content); + } + + // RSS link + if ( strpos($footer_content,'%rss%') !== FALSE ) { + ob_start(); + bloginfo('rss2_url'); + $footer_rss2_url = ob_get_contents(); + ob_end_clean(); + $footer_content = str_replace("%rss%", $footer_rss2_url, $footer_content); + } + + // Comments RSS link + if ( strpos($footer_content,'%comments-rss%') !== FALSE ) { + ob_start(); + bloginfo('comments_rss2_url'); + $footer_comments_rss2_url = ob_get_contents(); + ob_end_clean(); + $footer_content = str_replace("%comments-rss%", $footer_comments_rss2_url, $footer_content); + } + + // Current Year + $footer_content = str_replace("%current-year%", date('Y'), $footer_content); + + // Parse widget areas: + $result = bfa_parse_widget_areas( bfa_footer_output($footer_content) ); + + return $result; + +} +?> \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/functions/bfa_get_options.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/functions/bfa_get_options.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,517 @@ +%category%","anchor_border_cat_menu_bar":"solid 1px #000000","cat_menu_bar_background_color":"777777","cat_menu_bar_background_color_hover":"CC0000","cat_menu_bar_background_color_parent":"000000","cat_menu_font":"11px Arial, Verdana, sans-serif","cat_menu_bar_link_color":"FFFFFF","cat_menu_bar_link_color_hover":"FFFFFF","cat_menu_transform":"uppercase","cat_menu_arrows":"white","cat_menu_submenu_width":"11","center_column_style":"padding: 10px 15px;","widget_center_top":"","widget_center_bottom":"","next_prev_orientation":"Newer Left, Older Right","home_multi_next_prev":"","home_single_next_prev":"","multi_next_prev_newer":"« Newer Entries","multi_next_prev_older":"Older Entries »","single_next_prev_newer":"« %link","single_next_prev_older":"%link »","single_next_prev_same_cat":"No","comments_next_prev_newer":"Newer Comments »","comments_next_prev_older":"« Older Comments","location_comments_next_prev":"Above and Below Comments","next_prev_style_comments_above":"margin: 0 0 10px 0;\npadding: 5px 0 5px 0;","next_prev_style_comments_below":"margin: 0 0 10px 0;\npadding: 5px 0 5px 0;","next_prev_comments_pagination":"Yes","location_multi_next_prev":"Bottom","location_single_next_prev":"Top","next_prev_style_top":"margin: 0 0 10px 0;\npadding: 0 0 10px 0;\nborder-bottom: dashed 1px #cccccc;","next_prev_style_middle":"margin: 10px 0 20px 0;\npadding: 10px 0 10px 0;\nborder-top: dashed 1px #cccccc;\nborder-bottom: dashed 1px #cccccc;","next_prev_style_bottom":"margin: 20px 0 0 0;\npadding: 10px 0 0 0;\nborder-top: dashed 1px #cccccc;","leftcol_on":{"homepage":"on","frontpage":"on","single":"on","page":"on","category":"on","date":"on","tag":"on","taxonomy":"on","search":"on","author":"on","404":"on","attachment":"on","check-if-saved-once":false},"left_col_pages_exclude":"","left_col_cats_exclude":"","leftcol2_on":{"check-if-saved-once":false},"left_col2_pages_exclude":"","left_col2_cats_exclude":"","rightcol_on":{"homepage":"on","frontpage":"on","single":"on","page":"on","category":"on","date":"on","tag":"on","taxonomy":"on","search":"on","author":"on","404":"on","attachment":"on","check-if-saved-once":false},"right_col_pages_exclude":"","right_col_cats_exclude":"","rightcol2_on":{"check-if-saved-once":false},"right_col2_pages_exclude":"","right_col2_cats_exclude":"","left_sidebar_width":"200","left_sidebar2_width":"200","right_sidebar_width":"200","right_sidebar2_width":"200","left_sidebar_style":"border-right: dashed 1px #CCCCCC;\npadding: 10px 10px 10px 10px;\nbackground: #ffffff;","left_sidebar2_style":"border-right: dashed 1px #CCCCCC;\npadding: 10px 10px 10px 10px;\nbackground: #ffffff;","right_sidebar_style":"border-left: dashed 1px #CCCCCC;\npadding: 10px 10px 10px 10px;\nbackground: #ffffff;","right_sidebar2_style":"border-left: dashed 1px #CCCCCC;\npadding: 10px 10px 10px 10px;\nbackground: #ffffff;","widget_container":"margin: 0 0 15px 0;","widget_title_box":"","widget_title":"font-size: 1.6em;\nfont-weight: bold;","widget_content":"","widget_lists":{"li-margin-left":0,"link-weight":"normal","link-padding-left":5,"link-border-left-width":7,"link-color":"666666","link-hover-color":"000000","link-border-left-color":"cccccc","link-border-left-hover-color":"000000"},"widget_lists2":{"li-margin-left":5,"link-weight":"normal","link-padding-left":5,"link-border-left-width":7,"link-color":"666666","link-hover-color":"000000","link-border-left-color":"cccccc","link-border-left-hover-color":"000000"},"widget_lists3":{"li-margin-left":5,"link-weight":"normal","link-padding-left":5,"link-border-left-width":7,"link-color":"666666","link-hover-color":"000000","link-border-left-color":"cccccc","link-border-left-hover-color":"000000"},"category_widget_display_type":"inline","select_font_size":"Default","post_kicker_home":"","post_kicker_multi":"","post_kicker_single":"","post_kicker_page":"","post_byline_home":"","post_byline_multi":"","post_byline_single":"","post_byline_page":"","post_footer_home":"%date(\'F jS, Y\')% | %tags-linked(\'Tags: \', \', \', \' | \')% Category: %categories-linked(\', \')% | %comments(\'Leave a comment\', \'One comment\', \'% comments\', \'Comments are closed\')% %edit(\' | \', \'Edit this post\', \'\')%","post_footer_multi":"%date(\'F jS, Y\')% | %tags-linked(\'Tags: \', \', \', \' | \')% Category: %categories-linked(\', \')% | %comments(\'Leave a comment\', \'One comment\', \'% comments\', \'Comments are closed\')% %edit(\' | \', \'Edit this post\', \'\')%","post_footer_single":"%date(\'F jS, Y\')% | %tags-linked(\'Tags: \', \', \', \' | \')% Category: %categories-linked(\', \')% %edit(\' | \', \'Edit this post\', \'\')%","post_footer_page":"","post_container_style":"margin: 0 0 30px 0;","post_container_sticky_style":"background: #eee url(\''.$templateURL.' \/images\/sticky.gif\') 99% 5% no-repeat;\nborder: dashed 1px #cccccc;\npadding: 10px;","post_kicker_style":"margin: 0 0 5px 0;","post_kicker_style_links":"color: #000000;\ntext-decoration: none;\ntext-transform: uppercase;","post_kicker_style_links_hover":"color: #cc0000;","post_headline_style":"","post_headline_style_text":"padding: 0;\nmargin: 0;","post_headline_style_links":"color: #666666;\ntext-decoration: none;","post_headline_style_links_hover":"color: #000000;\ntext-decoration: none;","post_byline_style":"margin: 5px 0 10px 0;","post_byline_style_links":"","post_byline_style_links_hover":"","post_bodycopy_style":"","post_footer_style":"margin: 0;\npadding: 5px;\nbackground: #eeeeee;\ncolor: #666;\nline-height: 18px;","post_footer_style_links":"color: #333;\nfont-weight: normal;\ntext-decoration: none;","post_footer_style_links_hover":"color: #333;\nfont-weight: normal;\ntext-decoration: underline;","excerpt_length":55,"dont_strip_excerpts":"

    ","custom_read_more":"[...]","excerpts_home":"Full Posts","full_posts_homepage":0,"excerpts_category":"Only Excerpts","excerpts_archive":"Only Excerpts","excerpts_tag":"Only Excerpts","excerpts_search":"Only Excerpts","excerpts_author":"Only Excerpts","post_thumbnail_width":150,"post_thumbnail_height":150,"post_thumbnail_crop":"No","post_thumbnail_css":"float: left;\nborder: 0;\npadding: 0;\nbackground: none;\nmargin: 0 10px 5px 0;\n","more_tag":"Continue reading %post-title%","author_highlight":"Yes","author_highlight_color":"ffecec","author_highlight_border_color":"ffbfbf","comment_background_color":"ffffff","comment_alt_background_color":"eeeeee","comment_border":"dotted 1px #cccccc","comment_author_size":"110%","comment_reply_link_text":" · Reply","comment_edit_link_text":" · Edit","comment_moderation_text":"Your comment is awaiting moderation.","comments_are_closed_text":"

    Comments are closed.<\/p>","comments_on_pages":"No","separate_trackbacks":"No","avatar_size":"55","avatar_style":"margin: 0 8px 1px 0;\npadding: 3px;\nborder: solid 1px #ddd;\nbackground-color: #f3f3f3;\n-moz-border-radius: 3px;\n-khtml-border-radius: 3px;\n-webkit-border-radius: 3px;\nborder-radius: 3px;","show_xhtml_tags":"Yes","comment_form_style":"margin: 25px 0;\npadding: 25px;\nbackground: #eee;\n-moz-border-radius: 8px;\n-khtml-border-radius: 8px;\n-webkit-border-radius: 8px;\nborder-radius: 8px;","submit_button_style":"padding: 4px 10px 4px 10px;\nfont-size: 1.2em;\nline-height: 1.5em;\nheight: 36px;","comment_display_order":"Oldest on top","footer_style":"background-color: #ffffff;\nborder-top: dashed 1px #cccccc;\npadding: 10px;\r\ntext-align: center;\ncolor: #777777;\nfont-size: 95%;","footer_style_links":"text-decoration: none;\ncolor: #777777;\nfont-weight: normal;","footer_style_links_hover":"text-decoration: none;\ncolor: #777777;\nfont-weight: normal;","footer_style_content":"Copyright © %current-year% %home% - All Rights Reserved","full_width_footer":"No","sticky_layout_footer":"No","footer_show_queries":"No","table":"border-collapse: collapse;\nmargin: 10px 0;","table_caption":"background: #eeeeee;\nborder: #999999;\npadding: 4px 8px;\ncolor: #666666;","table_th":"background: #888888;\ncolor: #ffffff;\nfont-weight: bold;\nfont-size: 90%;\npadding: 4px 8px;\n\r\n\t\t\tborder: solid 1px #ffffff;\ntext-align: left;","table_td":"padding: 4px 8px;\nbackground-color: #ffffff;\nborder-bottom: 1px solid #dddddd;\ntext-align: left;","table_tfoot_td":"","table_zebra_stripes":"Yes","table_zebra_td":"background: #f4f4f4;","table_hover_rows":"Yes","table_hover_td":"background: #e2e2e2;","form_input_field_style":"color: #000000;\nborder-top: solid 1px #333333;\nborder-left: solid 1px #333333;\nborder-right: solid 1px #999999;\nborder-bottom: solid 1px #cccccc;","form_input_field_background":"inputbackgr.gif","highlight_forms":"Yes","highlight_forms_style":"background: #e8eff7;\nborder-color: #37699f;","button_style":"background-color: #777777;\ncolor: #ffffff;\nborder: solid 2px #555555;\nfont-weight: bold;","button_style_hover":"background-color: #6b9c6b;\ncolor: #ffffff;\nborder: solid 2px #496d49;","blockquote_style":"color: #555555;\npadding: 1em 1em;\nbackground: #f4f4f4;\nborder: solid 1px #e1e1e1;","blockquote_style_2nd_level":"color: #444444;\npadding: 1em 1em;\nbackground: #e1e1e1;\nborder: solid 1px #d3d3d3;","post_image_style":"padding: 5px;\nborder: solid 1px #dddddd;\nbackground-color: #f3f3f3;\n-moz-border-radius: 3px;\n-khtml-border-radius: 3px;\n-webkit-border-radius: 3px;\nborder-radius: 3px;","post_image_caption_style":"border: 1px solid #dddddd;\ntext-align: center;\nbackground-color: #f3f3f3;\npadding-top: 4px;\nmargin: 10px 0 0 0;\n-moz-border-radius: 3px;\n-khtml-border-radius: 3px;\n-webkit-border-radius: 3px;\nborder-radius: 3px;","image_caption_text":"font-size: 0.8em;\nline-height: 13px;\npadding: 2px 4px 5px;\nmargin: 0;\ncolor: #666666;","html_inserts_header":"","html_inserts_body_tag":"","html_inserts_body_top":"","html_inserts_body_bottom":"","html_inserts_css":"h1 { font-size: 34px; line-height: 1.2; margin: 0.3em 0 10px; }\r\nh2 { font-size: 28px; line-height: 1.3; margin: 1em 0 .2em; }\r\nh3 { font-size: 24px; line-height: 1.3; margin: 1em 0 .2em; }\r\nh4 { font-size: 19px; margin: 1.33em 0 .2em; }\r\nh5 { font-size: 1.3em; margin: 1.67em 0; font-weight: bold; }\r\nh6 { font-size: 1.15em; margin: 1.67em 0; font-weight: bold; }","archives_page_id":"","archives_date_show":"Yes","archives_date_title":"Archives by Month","archives_date_type":"monthly","archives_date_limit":"","archives_date_count":"Yes","archives_category_show":"Yes","archives_category_title":"Archives by Category","archives_category_count":"Yes","archives_category_depth":"0","archives_category_orderby":"name","archives_category_order":"ASC","archives_category_feed":"No","css_external":"Inline","javascript_external":"Inline","pngfix_selectors":"","css_compress":"Yes","allow_debug":"Yes","bfa_widget_areas":false,"h_blogtitle":1,"h_posttitle":2}'; + + $bfa_ata_default = bfa_toArray(json_decode($default_options)); + + foreach ($options as $value) { + if ($value['type'] != 'info') { + if (get_option( 'bfa_ata_' . $value['id'] ) === FALSE) { + $bfa_ata4[ $value['id'] ] = $bfa_ata_default[ $value['id'] ]; + } else { + $bfa_ata4[ $value['id'] ] = get_option( 'bfa_ata_' . $value['id'] ); + } + } + } + + // Separate option bfa_widget_areas + $bfa_ata4['bfa_widget_areas'] = get_option('bfa_widget_areas'); + + update_option('bfa_ata4', $bfa_ata4); + } + + $bfa_ata = get_option('bfa_ata4'); + + if ( is_page() ) { + global $wp_query; + $current_page_id = $wp_query->get_queried_object_id(); + } + + + //figure out sidebars and "colspan=XX", based on theme options and type or ID of page that we are currently on: + + $cols = 1; + $left_col = ''; + $left_col2 = ''; + $right_col = ''; + $right_col2 = ''; + + if (( is_page() AND !is_front_page() AND !is_home() ) + OR (function_exists('is_bbpress')) ) { + + if ($bfa_ata['left_col_pages_exclude'] != "") { + $pages_exlude_left = explode(",", str_replace(" ", "", $bfa_ata['left_col_pages_exclude'])); + if ( isset($bfa_ata['leftcol_on']['page']) AND !in_array($current_page_id, $pages_exlude_left) ) { + $cols++; $left_col = "on"; + } + } else { + if ( isset($bfa_ata['leftcol_on']['page']) ) { + $cols++; $left_col = "on"; + } + } + + if ($bfa_ata['left_col2_pages_exclude'] != "") { + $pages_exlude_left2 = explode(",", str_replace(" ", "", $bfa_ata['left_col2_pages_exclude'])); + if ( isset($bfa_ata['leftcol2_on']['page']) AND !in_array($current_page_id, $pages_exlude_left2) ) { + $cols++; $left_col2 = "on"; + } + } else { + if ( isset($bfa_ata['leftcol2_on']['page']) ) { + $cols++; $left_col2 = "on"; + } + } + + if ($bfa_ata['right_col_pages_exclude'] != "") { + $pages_exlude_right = explode(",", str_replace(" ", "", $bfa_ata['right_col_pages_exclude'])); + if ( isset($bfa_ata['rightcol_on']['page']) AND !in_array($current_page_id, $pages_exlude_right) ) { + $cols++; $right_col = "on"; + } + } else { + if ( isset($bfa_ata['rightcol_on']['page']) ) { + $cols++; $right_col = "on"; + } + } + + if ($bfa_ata['right_col2_pages_exclude'] != "") { + $pages_exlude_right2 = explode(",", str_replace(" ", "", $bfa_ata['right_col2_pages_exclude'])); + if ( isset($bfa_ata['rightcol2_on']['page']) AND !in_array($current_page_id, $pages_exlude_right2) ) { + $cols++; $right_col2 = "on"; + } + } else { + if ( isset($bfa_ata['rightcol2_on']['page']) ) { + $cols++; $right_col2 = "on"; + } + } + + } elseif ( is_category() ) { + + $current_cat_id = get_query_var('cat'); + + if ($bfa_ata['left_col_cats_exclude'] != "") { + $cats_exlude_left = explode(",", str_replace(" ", "", $bfa_ata['left_col_cats_exclude'])); + if ( isset($bfa_ata['leftcol_on']['category']) AND !in_array($current_cat_id, $cats_exlude_left) ) { + $cols++; $left_col = "on"; + } + } else { + if ( isset($bfa_ata['leftcol_on']['category']) ) { + $cols++; $left_col = "on"; + } + } + + if ($bfa_ata['left_col2_cats_exclude'] != "") { + $cats_exlude_left2 = explode(",", str_replace(" ", "", $bfa_ata['left_col2_cats_exclude'])); + if ( isset($bfa_ata['leftcol2_on']['category']) AND !in_array($current_cat_id, $cats_exlude_left2) ) { + $cols++; $left_col2 = "on"; + } + } else { + if ( isset($bfa_ata['leftcol2_on']['category']) ) { + $cols++; $left_col2 = "on"; + } + } + + if ($bfa_ata['right_col_cats_exclude'] != "") { + $cats_exlude_right = explode(",", str_replace(" ", "", $bfa_ata['right_col_cats_exclude'])); + if ( isset($bfa_ata['rightcol_on']['category']) AND !in_array($current_cat_id, $cats_exlude_right) ) { + $cols++; $right_col = "on"; + } + } else { + if ( isset($bfa_ata['rightcol_on']['category']) ) { + $cols++; $right_col = "on"; + } + } + + if ($bfa_ata['right_col2_cats_exclude'] != "") { + $cats_exlude_right2 = explode(",", str_replace(" ", "", $bfa_ata['right_col2_cats_exclude'])); + if ( isset($bfa_ata['rightcol2_on']['category']) AND !in_array($current_cat_id, $cats_exlude_right2) ) { + $cols++; $right_col2 = "on"; + } + } else { + if ( isset($bfa_ata['rightcol2_on']['category']) ) { + $cols++; $right_col2 = "on"; + } + } + + } else { + + if ( + ( is_home() && isset($bfa_ata['leftcol_on']['homepage']) ) OR + ( is_front_page() AND isset($bfa_ata['leftcol_on']['frontpage']) ) OR + ( is_single() && isset($bfa_ata['leftcol_on']['single'])) OR + ( is_date() AND isset($bfa_ata['leftcol_on']['date'])) OR + ( is_tag() && isset($bfa_ata['leftcol_on']['tag'])) OR + ( is_archive() AND !( is_tag() OR is_author() OR is_date() OR is_category()) && isset($bfa_ata['leftcol_on']['taxonomy'])) OR + ( is_search() AND isset($bfa_ata['leftcol_on']['search'])) OR + ( is_author() && isset($bfa_ata['leftcol_on']['author'])) OR + ( is_404() AND isset($bfa_ata['leftcol_on']['404'])) OR + ( is_attachment() && isset($bfa_ata['leftcol_on']['attachment'])) + ) { + $cols++; $left_col = "on"; + } + + if ( + ( is_home() && isset($bfa_ata['leftcol2_on']['homepage'])) OR + ( is_front_page() AND isset($bfa_ata['leftcol2_on']['frontpage']) ) OR + ( is_single() && isset($bfa_ata['leftcol2_on']['single'])) OR( is_date() AND isset($bfa_ata['leftcol2_on']['date'])) OR + ( is_tag() && isset($bfa_ata['leftcol2_on']['tag'])) OR + ( is_archive() AND !( is_tag() OR is_author() OR is_date() OR is_category()) && isset($bfa_ata['leftcol2_on']['taxonomy'])) OR + ( is_search() AND isset($bfa_ata['leftcol2_on']['search'])) OR + ( is_author() && isset($bfa_ata['leftcol2_on']['author'])) OR + ( is_404() AND isset($bfa_ata['leftcol2_on']['404'])) OR + ( is_attachment() && isset($bfa_ata['leftcol2_on']['attachment'])) + ) { + $cols++; $left_col2 = "on"; + } + + if ( + ( is_home() && isset($bfa_ata['rightcol_on']['homepage'])) OR + ( is_front_page() AND isset($bfa_ata['rightcol_on']['frontpage']) ) OR + ( is_single() && isset($bfa_ata['rightcol_on']['single'])) OR ( is_date() AND isset($bfa_ata['rightcol_on']['date'])) OR + ( is_tag() && isset($bfa_ata['rightcol_on']['tag'])) OR + ( is_archive() AND !( is_tag() OR is_author() OR is_date() OR is_category()) && isset($bfa_ata['rightcol_on']['taxonomy'])) OR + ( is_search() AND isset($bfa_ata['rightcol_on']['search'])) OR + ( is_author() && isset($bfa_ata['rightcol_on']['author'])) OR + ( is_404() AND isset($bfa_ata['rightcol_on']['404'])) OR + ( is_attachment() && isset($bfa_ata['rightcol_on']['attachment'])) + ) { + $cols++; $right_col = "on"; + } + + if ( + ( is_home() && isset($bfa_ata['rightcol2_on']['homepage']) ) OR + ( is_front_page() AND isset($bfa_ata['rightcol2_on']['frontpage']) ) OR + ( is_single() && isset($bfa_ata['rightcol2_on']['single'])) OR + ( is_date() AND isset($bfa_ata['rightcol2_on']['date'])) OR + ( is_tag() && isset($bfa_ata['rightcol2_on']['tag'])) OR + ( is_archive() AND !( is_tag() OR is_author() OR is_date() OR is_category()) && isset($bfa_ata['rightcol2_on']['taxonomy'])) OR + ( is_search() AND isset($bfa_ata['rightcol2_on']['search'])) OR + ( is_author() && isset($bfa_ata['rightcol2_on']['author'])) OR + ( is_404() AND isset($bfa_ata['rightcol2_on']['404'])) OR + ( is_attachment() && isset($bfa_ata['rightcol2_on']['attachment'])) + ) { + $cols++; $right_col2 = "on"; + } + + } + + + // $bfa_ata['h1_on_single_pages'] turn the blogtitle to h2 and the post/page title to h1 on single post pages and static "page" pages + + if ( $bfa_ata['h1_on_single_pages'] == "Yes" AND ( is_single() OR is_page() ) ) { + $bfa_ata['h_blogtitle'] = 2; $bfa_ata['h_posttitle'] = 1; + } else { + $bfa_ata['h_blogtitle'] = 1; $bfa_ata['h_posttitle'] = 2; + } + + $result = array($bfa_ata, $cols, $left_col, $left_col2, $right_col, $right_col2, $bfa_ata['h_blogtitle'], $bfa_ata['h_posttitle']); + + return $result; + } +} +?> \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/functions/bfa_header_config.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/functions/bfa_header_config.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,359 @@ +'; + + // Left, Right or Centered + if ( strpos($header_items,"%page-right") !== FALSE ) + echo '

    ' . "\n"; + + $page_menu_bar = ob_get_contents(); + ob_end_clean(); + } + + } + + // Category Menu Bar + if ( strpos($header_items,'%cats') !== FALSE OR strpos($header_items,'%cat-center') !== FALSE + OR strpos($header_items,'%cat-right') !== FALSE ) { + + // Since 3.5.2: New WP 3 menu system: + if ( has_nav_menu('menu2') ) + { + if ( strpos($header_items,'%cats') !== FALSE ) + $alignment = "left"; + elseif ( strpos($header_items,'%cat-center') !== FALSE ) + $alignment = "center"; + else + $alignment = "right"; + + $cat_menu_bar = bfa_new_wp3_menus("menu2", $alignment ); + } + + // Old custom Atahualpa menu system: + else + { + ob_start(); + echo '' . "\n"; + else + echo '' . "\n"; + + $cat_menu_bar = ob_get_contents(); + ob_end_clean(); + } + } + + // Logo Area + if ( strpos($header_items,'%logo') !== FALSE ) { + + ob_start(); + echo ''; + + if ( $bfa_ata['show_search_box'] == "Yes" AND ($bfa_ata['show_posts_icon'] == "Yes" OR + $bfa_ata['show_email_icon'] == "Yes" OR $bfa_ata['show_comments_icon'] == "Yes") ) + $header_rowspan = 'rowspan="2" '; + else + $header_rowspan = ''; + + // Logo Icon + if ( $bfa_ata['logo'] != "" ) { + if($bfa_ata['images_root'] == "atahualpa") { + $imgdir = get_template_directory_uri() . '/images/'; + } else { + if(!isset($bfa_ata['ata_images_dir']) + OR ($bfa_ata['ata_images_dir'] == '') ) { + $img_folder = 'ata-images'; + $imgdir = content_url() . '/ata-images/'; + } else { + $imgdir = content_url() . '/' . $bfa_ata['ata_images_dir'] . '/'; + } + } + $logo = $imgdir.$bfa_ata['logo']; + + echo ''; + } + + + // Blog title and description + if ( $bfa_ata['blog_title_show'] == "Yes" OR $bfa_ata['blog_tagline_show'] == "Yes" ) { + + echo ''; + } + + // is any feed icon or link active? + if ( $bfa_ata['show_posts_icon'] == "Yes" OR $bfa_ata['show_email_icon'] == "Yes" OR + $bfa_ata['show_comments_icon'] == "Yes" ) + echo ''; + if ( $bfa_ata['show_search_box'] == "Yes" ) + echo ''; + } + + // Search box + if ( $bfa_ata['show_search_box'] == "Yes" ) + { + echo ''; + } + + echo '
    '; + + if ( $bfa_ata['blog_title_show'] == "Yes" ) { + echo ''; bloginfo('name'); echo ''; + } + + if ( $bfa_ata['blog_tagline_show'] == "Yes" ) { + echo '

    '; bloginfo('description'); echo '

    '; + } + + echo '
    '; + + // COMMENT Feed link + if ( $bfa_ata['show_comments_icon'] == "Yes" ) { + + echo '' . $bfa_ata['comment_feed_link'] . ''; + } + + // Feedburner Email link + if ( $bfa_ata['show_email_icon'] == "Yes" ) { + + echo ''; + } + + // POSTS Feed link + if ( $bfa_ata['show_posts_icon'] == "Yes" ) + { + echo '' . + $bfa_ata['post_feed_link'] . ''; + } + + if ( $bfa_ata['show_posts_icon'] == "Yes" OR $bfa_ata['show_email_icon'] == "Yes" OR + $bfa_ata['show_comments_icon'] == "Yes" ) { + echo '
    '; + $logo_area = ob_get_contents(); + ob_end_clean(); + } + + // Header Image + if ( strpos($header_items,'%image') !== FALSE ) { + + // force 'top left' alignment if rotating and fading is on + if (($bfa_ata['header_image_javascript'] !== "0") AND + ($bfa_ata['crossslide_fade'] !== "0")) { + $bfa_ata['headerimage_alignment'] = 'top left'; + } + + ob_start(); + $bfa_header_images = bfa_rotating_header_images(); + + echo '
    '; + + echo '
    '; + echo '
    '; + if ( $bfa_ata['header_image_clickable'] == "Yes" ) { + echo ''; + } + + // Header Code Overlay + if ( isset($bfa_ata['overlay_header_image']) ) { + $overlay_image_code = $bfa_ata['overlay_header_image']; + // Parse PHP code + if ( strpos($overlay_image_code,''; + echo $overlay_image_code; + echo '
    '; + } + + if ( $bfa_ata['header_opacity_left'] != 0 AND $bfa_ata['header_opacity_left'] != '' ) + echo '
     
    '; + + if ( $bfa_ata['header_opacity_right'] != 0 AND $bfa_ata['header_opacity_right'] != '' ) + echo '
     
    '; + // END: If Header Opacity + + if ( $bfa_ata['overlay_blog_title'] == "Yes" OR $bfa_ata['overlay_blog_tagline'] == "Yes" ) + { + echo '
    '; + + if ( $bfa_ata['overlay_blog_title'] == "Yes" ) { + echo ''; + bloginfo('name'); echo ''; + } + + if ( $bfa_ata['overlay_blog_tagline'] == "Yes" ) { + echo '

    '; bloginfo('description'); echo '

    '; + } + echo '
    '; + } + + echo ''; + $header_image = ob_get_contents(); + ob_end_clean(); + } + + // Horizontal bar 1 + if ( strpos($header_items,'%bar1') !== FALSE ) + $horizontal_bar1 = '
     
    '; + + // Horizontal bar 2 + if ( strpos($header_items,'%bar2') !== FALSE ) + $horizontal_bar2 = '
     
    '; + + $header_item_numbers = array( + "%pages", "%page-center", "%page-right", + "%cats", "%cat-center", "%cat-right", + "%logo", + "%image", + "%bar1", "%bar2" + ); + + $header_output = array( + $page_menu_bar, $page_menu_bar, $page_menu_bar, + $cat_menu_bar, $cat_menu_bar, $cat_menu_bar, + $logo_area, + $header_image, + $horizontal_bar1, $horizontal_bar2 + ); + + $header_items = trim($header_items); + $final_header = str_replace($header_item_numbers, $header_output, $header_items); + + // Parse widget areas: + $final_header = bfa_parse_widget_areas($final_header); + + return $final_header; +} +?> \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/functions/bfa_hor_cats.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/functions/bfa_hor_cats.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,55 @@ +/i","
  • ",$list_cat_string); + $list_cat_string = preg_replace("/
  • /i","
  • ",$list_cat_string); + $list_cat_string = preg_replace("/
  • /i","
  • ",$list_cat_string); + $list_cat_string = preg_replace("/
  • /i","
  • ",$list_cat_string); + $list_cat_string = preg_replace("/
  • /i","
  • ",$list_cat_string); + $list_cat_string = preg_replace("/
  • /i","
  • ",$list_cat_string); + $list_cat_string = preg_replace("/
  • /i","
  • ",$list_cat_string); + $list_cat_string = preg_replace("/
  • /i","
  • ",$list_cat_string); + $list_cat_string = preg_replace("/
  • /i","
  • ",$list_cat_string); + $list_cat_string = preg_replace("/
  • /i","
  • ",$list_cat_string); + + # Added in 3.2.1: Option to add Category Description to menu bar link text + global $bfa_ata; + + if ( $bfa_ata['add_descr_cat_menu_links'] == "Yes" ) { + $list_cat_string = preg_replace_callback("| title=\"(.*?)\">(.*?)|","bfa_add_descr_cat_menu_links",$list_cat_string); + } + + if ( $titles == "No" ) { + $list_cat_string = preg_replace("/title=\"(.*?)\"/si","",$list_cat_string); + } + + return $list_cat_string; +} + + + +function bfa_add_descr_cat_menu_links($matches) { + + global $bfa_ata; + + if ( strpos($matches[1],__('View all posts filed under', 'atahualpa')) !== FALSE ) { + + if ( $bfa_ata['default_cat_descr_text'] != '' ) { + $default_cat_descr = str_replace("%category%", $matches[2], $bfa_ata['default_cat_descr_text']); + return '>'.$matches[2].'
    '.$default_cat_descr.''; + } else { + return '>'.$matches[2].''; + } + + } else { + return '>'.$matches[2].'
    '.$matches[1].''; + } + +} +?> \ No newline at end of file diff -r 000000000000 -r 505fe5249d9c src/web/app/themes/atahualpa/functions/bfa_hor_pages.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/web/app/themes/atahualpa/functions/bfa_hor_pages.php Wed Dec 04 11:40:06 2019 +0100 @@ -0,0 +1,34 @@ +&link_after='); + + $list_pages_string = preg_replace("/