--- /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/*
--- /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.
--- /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/
+
--- /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"
--- /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": {}
+}
--- /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 <profile> <hg tag>`. Example: `deploy.sh test tip`
+
+## configuration file:
+
+- `hosts/hosts.<profile>`
+- `group_vars/<profile>.yml`
+- `host_vars/<hostname>/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
--- /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
--- /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 <config> 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
--- /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
--- /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 <DB_FILE_PATH> using ansible.
+Replacing the <ORIGIN_URL> 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
--- /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}}"
+
--- /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 <DB_FILE_PATH> 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
--- /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
+
--- /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
+
--- /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
--- /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'
--- /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"
+ ]
+ }
+}
--- /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": []
+}
--- /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 @@
+<?php
+/**
+ * Your base production configuration goes in this file. Environment-specific
+ * overrides go in their respective config/environments/{{WP_ENV}}.php file.
+ *
+ * A good default policy is to deviate from the production config as little as
+ * possible. Try to define as much of your configuration in this file as you
+ * can.
+ */
+
+use Roots\WPConfig\Config;
+
+/** @var string Directory containing all of the site's files */
+$root_dir = dirname(__DIR__);
+
+/** @var string Document Root */
+$webroot_dir = $root_dir . '/web';
+
+/**
+ * Expose global env() function from oscarotero/env
+ */
+Env::init();
+
+/**
+ * Use Dotenv to set required environment variables and load .env file in root
+ */
+$dotenv = Dotenv\Dotenv::create($root_dir);
+if (file_exists($root_dir . '/.env')) {
+ $dotenv->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/');
+}
--- /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 @@
+<?xml version="1.0"?>
+<ruleset name="Roots">
+ <description>Roots Coding Standards</description>
+
+ <!-- Scan all files in directory -->
+ <file>.</file>
+
+ <!-- Scan only PHP files -->
+ <arg name="extensions" value="php"/>
+
+ <!-- Ignore WordPress and Composer dependencies -->
+ <exclude-pattern>web/wp</exclude-pattern>
+ <exclude-pattern>vendor/</exclude-pattern>
+
+ <!-- Show colors in console -->
+ <arg value="-colors"/>
+
+ <!-- Show sniff codes in all reports -->
+ <arg value="ns"/>
+
+ <!-- Use PSR-2 as a base -->
+ <rule ref="PSR2"/>
+</ruleset>
--- /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
+<a href="http://codex.wordpress.org/index.php/Write_Post_SubPanel#Quicktags" title="Help With Quicktags">Quicktags</a>:
+2) To fix a not validating tag, change line 276
+<script type="text/javascript" language="javascript" src="<?php echo get_settings('siteurl'); ?>/wp-content/plugins/lmbbox-comment-quicktags.php"></script>
+to
+<script type="text/javascript" src="<?php echo get_settings('siteurl'); ?>/wp-content/plugins/lmbbox-comment-quicktags.php"></script>
+
+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 <http://www.gnu.org/licenses/>.
+
+
+
+
--- /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 <body..> 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 <body> - 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 <body....> 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 <div class="widget widget_text">... 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 <!-nextpage--> 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 '<p>...</p>' 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
--- /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 <lmmmuc@gmail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-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</a> 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</a>"
+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 <a href=\"%s\">logged in</a> to post a comment."
+msgstr ""
+
+#: comments.php:119
+#, php-format
+msgid ""
+"Logged in as <a href=\"%1$s\">%2$s</a>. <a href=\"%3$s\" title=\"Log out of "
+"this account\">Log out?</a>"
+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 "<p>Comments are closed.</p>"
+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 ""
--- /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 @@
+<?php // Do not delete these lines
+if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments-paged.php' == basename($_SERVER['SCRIPT_FILENAME']))
+ die (__('Please do not load this page directly. Thanks!','atahualpa'));
+
+if (!empty($post->post_password)) { // if there's a password
+ if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn't match the cookie ?>
+ <p class="nocomments"><?php _e('This post is password protected. Enter the password to view comments.','atahualpa'); ?></p>
+ <?php
+ return;
+ }
+}
+
+/* This variable is for alternating comment background */
+$oddcomment = 'class="alt clearfix" ';
+
+global $bfa_ata;
+// You can start editing below:
+?>
+
+<?php // If there are any comments
+if ($comments) : ?>
+
+ <a name="comments"></a><!-- named anchor for skip links -->
+ <h3 id="comments"><?php // Comment Area Title
+ comments_number(__('No comments yet to ', 'atahualpa'), __('1 comment to ', 'atahualpa'),
+ __('% comments to ', 'atahualpa')); echo get_the_title(); ?></h3>
+
+ <!-- Comment page numbers -->
+ <?php if ($paged_comments->pager->num_pages() > 1): ?>
+ <p class="comment-page-numbers"><?php _e('Pages:','atahualpa'); ?> <?php paged_comments_print_pages(); ?></p>
+ <?php endif; ?>
+ <!-- End comment page numbers -->
+
+ <!-- Comment List -->
+ <ol class="commentlist">
+
+
+ <?php // Do this for every comment -->
+ foreach ($comments as $comment) :
+ if ( ($bfa_ata['separate_trackbacks'] == "Yes" AND get_comment_type() == 'comment')
+ OR $bfa_ata['separate_trackbacks'] == "No" ) { ?>
+
+ <li <?php if ( $bfa_ata['author_highlight'] == "Yes" AND $comment->comment_author_email == get_the_author_meta('email') ) {
+ echo 'class="authorcomment clearfix" ';
+ } else {
+ echo $oddcomment;
+ } ?> id="comment-<?php comment_ID() ?>">
+
+ <?php // GRAVATAR
+ if( get_comment_type() == 'comment' AND $bfa_ata['avatar_size'] != 0 AND $bfa_ata['avatar_size'] != "" )
+ echo get_avatar($comment -> comment_author_email, $size=$bfa_ata['avatar_size']);
+ ?>
+
+ <div class="comment-number"><a href="<?php echo paged_comments_url('comment-'.get_comment_ID()); ?>" title=""><?php echo $comment_number; $comment_number += $comment_delta; ?></a></div>
+
+ <span class="authorname"><?php // Comment Author
+ comment_author_link() ?></span>
+
+ <?php // Awaiting Moderation Text
+ if ($comment->comment_approved == '0') :
+ _e('Your comment is awaiting moderation.','atahualpa');
+ endif; ?>
+
+ <br />
+
+ <span class="commentdate">
+ <?php // Comment Date and Time
+ printf(__('%1$s at %2$s','atahualpa'), get_comment_date(__('F jS, Y','atahualpa')), get_comment_time()) ?>
+ </span>
+
+ <?php // Comment Text
+ comment_text() ?>
+
+ <?php // Edit Comment Link
+ edit_comment_link(__('Edit','atahualpa'),'<span class="editcomment">','</span>'); ?>
+
+
+ </li>
+
+ <?php $oddcomment = ( $oddcomment == 'class="clearfix" ' ) ? 'class="alt clearfix" ' : 'class="clearfix" ';
+
+ }
+ endforeach;
+ // END of "Do this for every comment "
+ ?>
+
+ <?php // Do this for every trackback / pingpack
+ if ($bfa_ata['separate_trackbacks'] == "Yes") {
+ foreach ($comments as $comment) :
+ if ( get_comment_type() != 'comment') { ?>
+
+ <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>">
+
+ <div class="comment-number"><a href="<?php echo paged_comments_url('comment-'.get_comment_ID()); ?>" title=""><?php echo $comment_number; $comment_number += $comment_delta; ?></a></div>
+
+ <?php // Comment Author
+ comment_author_link() ?>:
+
+ <br />
+
+ <?php // Comment Date and Time
+ printf(__('%1$s at %2$s','atahualpa'), get_comment_date(__('F jS, Y','atahualpa')), get_comment_time()) ?>
+
+ <?php // Edit Comment Link
+ edit_comment_link(__('Edit','atahualpa'),' ',''); ?>
+
+ <?php // Comment Text
+ comment_text() ?>
+
+ </li>
+
+ <?php $oddcomment = ( empty( $oddcomment ) ) ? 'class="alt" ' : '';
+
+ }
+ endforeach;
+ }
+ // END of "Do this for every trackback / pingback "
+ ?>
+
+ </ol>
+ <!-- / Comment List -->
+
+ <!-- Comment page numbers -->
+ <?php if ($paged_comments->pager->num_pages() > 1): ?>
+ <p class="comment-page-numbers"><?php _e('Pages:','atahualpa'); ?> <?php paged_comments_print_pages(); ?></p>
+ <?php endif; ?>
+ <!-- End comment page numbers -->
+
+<?php // END of "If there ARE any comments"
+else : ?>
+
+ <?php // If comments are open, but there are no comments:
+ if ('open' == $post->comment_status) : ?>
+
+ <!-- .... -->
+
+ <?php // If comments are closed:
+ else : ?>
+
+ <p><?php _e('Comments are closed.','atahualpa'); ?></p>
+
+ <?php endif; ?>
+
+<?php // END of "If there are NO comments"
+endif; ?>
+
+<?php // If comments are open
+if ('open' == $post->comment_status) : ?>
+
+ <div id="respond">
+
+ <a name="commentform"></a><!-- named anchor for skip links -->
+ <h3 class="reply"><?php _e('Leave a Reply','atahualpa'); ?></h3>
+
+ <?php // If Login is required and User is not logged in
+ if ( get_option('comment_registration') && !$user_ID ) : ?>
+ <p><?php printf(__('You must be %slogged in</a> to post a comment.', 'atahualpa'), '<a href="' .
+ get_option('siteurl') . '/wp-login.php?redirect_to=' . urlencode(get_permalink()) . '">')?></p>
+
+ <?php // If Login is not required, or User is logged in
+ else : ?>
+
+ <!-- Comment Form -->
+ <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
+
+ <?php // If User is logged in
+ if ( $user_ID ) : ?>
+ <p>
+ <?php printf(__('Logged in as %s.', 'atahualpa'), '<a href="' . get_option('siteurl') .
+ '/wp-admin/profile.php">' . $user_identity . '</a>')?>
+ <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="
+ <?php _e('Log out of this account','atahualpa'); ?>"><?php _e('Logout »','atahualpa'); ?></a>
+ </p>
+
+ <?php // If User is not logged in: Display the form fields "Name", "Email", "URL"
+ else : ?>
+ <p>
+ <input class="text author" type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="30" tabindex="1" />
+ <label for="<?php _e('author','atahualpa'); ?>"><?php _e('Name ','atahualpa');
+ if ($req) _e('(required)','atahualpa'); ?></label>
+ </p>
+ <p>
+ <input class="text email" type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="30" tabindex="2" />
+ <label for="<?php _e('email','atahualpa'); ?>"><?php _e('Mail (will not be published) ','atahualpa');
+ if ($req) _e('(required)','atahualpa'); ?></label>
+ </p>
+ <p>
+ <input class="text url" type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="30" tabindex="3" />
+ <label for="<?php _e('url','atahualpa'); ?>"><?php _e('Website','atahualpa'); ?></label>
+ </p>
+ <?php endif; ?>
+
+ <!-- Display Quicktags or allowed XHTML Tags -->
+ <?php if (function_exists('lmbbox_comment_quicktags_display')) { echo "<p>"; lmbbox_comment_quicktags_display(); echo "</p>"; }
+ else { if ($bfa_ata['show_xhtml_tags'] == "Yes") { ?>
+ <p class="thesetags clearfix"><?php printf(__('You can use %1$sthese HTML tags</a>','atahualpa'), '<a class="xhtmltags" href="#" onclick="return false;">'); ?></p>
+ <div class="xhtml-tags"><p><code><?php echo allowed_tags(); ?></code></p></div>
+ <?php } } ?>
+
+ <!-- Comment Textarea -->
+ <p><textarea name="comment" id="comment" rows="10" cols="10" tabindex="4"></textarea></p>
+ <?php do_action('comment_form', $post->ID); ?>
+
+ <!-- Submit -->
+ <p><input name="submit" type="submit" class="button" id="submit" tabindex="5" value="<?php _e('Submit Comment','atahualpa'); ?>" />
+ <input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
+ </p>
+
+ </form>
+ </div><!-- / respond -->
+ <!-- / Comment Form -->
+
+ <?php endif; ?>
+ <!-- / If Login is not required, or User is logged in -->
+
+<?php endif; ?>
+<!-- If comments are open -->
\ No newline at end of file
--- /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 @@
+<?php // Do not delete these lines
+
+if (!empty($_SERVER['SCRIPT_FILENAME']) AND 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
+ die (__('Please do not load this page directly. Thanks!','atahualpa'));
+
+if ( post_password_required() ) {
+ _e('This post is password protected. Enter the password to view comments.','atahualpa');
+ return;
+}
+
+global $bfa_ata;
+// You can start editing below:
+?>
+
+<?php // If there are any comments
+$bfa_page_comment_open = 0;
+if ( is_page() and ('open' == $post->comment_status)) {
+ $bfa_page_comment_open = 1; }
+else {
+ $bfa_page_comment_open = 0;}
+
+if ( have_comments() ) : ?>
+
+ <a name="comments"></a><!-- named anchor for skip links -->
+ <h3 id="comments"><?php // Comment Area Title
+ comments_number(__('No comments yet to ', 'atahualpa'),
+ __('1 comment to ', 'atahualpa'), __('% comments to ', 'atahualpa'));
+ echo get_the_title(); ?></h3>
+
+ <?php bfa_next_previous_comments_links('Above'); ?>
+
+ <!-- Comment List -->
+ <ul class="commentlist">
+
+ <?php // Do this for every comment
+ if ($bfa_ata['separate_trackbacks'] == "Yes") {
+
+ 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' => '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'
+ ));
+
+ } ?>
+
+ </ul>
+ <!-- / Comment List -->
+
+ <?php bfa_next_previous_comments_links('Below'); ?>
+
+<?php else : // If there are NO comments ?>
+
+ <?php // If comments are open, but there are no comments:
+if ( ('open' == $post->comment_status) ) : ?>
+ <!-- .... -->
+
+ <?php else : // If comments are closed: ?>
+
+ <?php echo $bfa_ata['comments_are_closed_text'] ; ?>
+
+ <?php endif; ?>
+
+<?php endif; // END of "If there are NO comments" ?>
+
+<?php
+// Since 3.6.1: Configuring the new comment_form() function,
+// instead of using it with the default settings. See also http://codex.wordpress.org/Function_Reference/comment_form
+?>
+
+<?php
+// These values aren't available else:
+global $aria_req, $post_id, $required_text;
+// author, email and url fields are set in a separate variable first:
+$fields = array(
+ 'author' => '<p><input class="text author" id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' tabindex="1" />' .
+ ' <label for="author"><strong>' . __( 'Name ' ,'atahualpa') . '</strong> ' . ( $req ? __('(required)','atahualpa') : '' ) . '</label></p>',
+ 'email' => '<p><input class="text email" id="email" name="email" type="text" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' tabindex="2" />' .
+ ' <label for="email"><strong>' . __( 'Email' ,'atahualpa') . '</strong> ' . ( $req ? __('(will not be published) (required)','atahualpa') : '' ) . '</label></p>',
+ 'url' => '<p><input class="text url" id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" tabindex="3" />' .
+ ' <label for="url">' . __( 'Website','atahualpa' ) . '</label></p>'
+);
+
+if ($bfa_ata['show_xhtml_tags'] == "Yes") {
+ $comment_notes_after = '
+ <p class="thesetags clearfix">' .
+ sprintf(__('You can use %1$sthese HTML tags</a>','atahualpa'),
+ '<a class="xhtmltags" href="#" onclick="return false;">') . '</p>
+ <div class="xhtml-tags"><p><code>' . allowed_tags() . '
+ </code></p></div>';
+} else {
+ $comment_notes_after = '';
+}
+
+// The rest is set here:
+$comment_form_settings = array(
+ 'fields' => apply_filters( 'comment_form_default_fields', $fields ),
+ 'comment_field' => '<p><textarea name="comment" id="comment" rows="10" cols="10" tabindex="4"></textarea></p>',
+ 'must_log_in' => '<p class="must-log-in">' . sprintf( __( 'You must be <a href="%s">logged in</a> to post a comment.', 'atahualpa' ), wp_login_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
+ 'logged_in_as' => '<p class="logged-in-as">' . sprintf( __( 'Logged in as <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">Log out?</a>', 'atahualpa' ), admin_url( 'profile.php' ), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
+ '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')
+);
+?>
+
+<?php // Using the new function comment_form() with the custom settings $comment_form_settings
+comment_form($comment_form_settings);
+?>
\ No newline at end of file
--- /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 @@
+<?php # error_reporting(E_ALL & ~E_NOTICE);
+$templateURI = get_template_directory_uri();
+$homeURL = get_home_url();
+
+if ( isset($bfa_ata_preview) OR $bfa_ata['css_external'] == "Inline" OR
+( isset($bfa_ata_debug) AND $bfa_ata['allow_debug'] == "Yes" ) ) {
+ echo '<style type="text/css">';
+} 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;
+ <?php echo $bfa_ata['body_style']; ?>
+ }
+
+a:link, a:visited, a:active {
+ color: #<?php echo $bfa_ata['link_color']; ?>;
+ font-weight: <?php echo $bfa_ata['link_weight']; ?>;
+ text-decoration: <?php echo $bfa_ata['link_default_decoration']; ?>;
+ }
+
+a:hover {
+ color: #<?php echo $bfa_ata['link_hover_color']; ?>;
+ font-weight: <?php echo $bfa_ata['link_weight']; ?>;
+ text-decoration: <?php echo $bfa_ata['link_hover_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 ------------------------------
+------------------------------------------------------------------ */
+
+<?php if ( $bfa_ata['layout_style_leftright_padding'] == "" ) {
+ $bfa_ata['layout_style_leftright_padding'] = "0"; }
+ if ( $bfa_ata['layout_style_leftright_padding'] != "0" ) {
+ $bfa_ata['layout_min'] = $bfa_ata['layout_min_width'] + ( $bfa_ata['layout_style_leftright_padding'] * 2 );
+ $bfa_ata['layout_max'] = $bfa_ata['layout_max_width'] + ( $bfa_ata['layout_style_leftright_padding'] * 2 );
+ } else {
+ $bfa_ata['layout_min'] = $bfa_ata['layout_min_width'];
+ $bfa_ata['layout_max'] = $bfa_ata['layout_max_width'];
+ }
+ ?>
+
+/*-------------------- WRAPPER for MIN / MAX width --------*/
+
+div#wrapper {
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ display: block;
+ width: <?php echo $bfa_ata['layout_width']; ?>;
+ <?php // if layout is fluid, set min/max width, if defined:
+ if(stristr($bfa_ata['layout_width'], 'px') === FALSE) {
+ echo ($bfa_ata['layout_min_width'] == "" ? "" : "min-width: " . $bfa_ata['layout_min'] . "px;\n");
+ echo ($bfa_ata['layout_max_width'] == "" ? "" : "max-width: " . $bfa_ata['layout_max'] . "px;\n");
+ } ?>
+ }
+
+<?php // min/max width for IE6:
+if(stristr($bfa_ata['layout_width'], 'px') === FALSE && ($bfa_ata['layout_min'] != "" OR $bfa_ata['layout_max'] != "" )) { ?>
+* html div#wrapper {
+<!--
+ width:expression<?php if($bfa_ata['layout_max_width'] != "") { ?>(((document.compatMode &&
+ document.compatMode=='CSS1Compat') ?
+ document.documentElement.clientWidth :
+ document.body.clientWidth)
+ > <?php echo $bfa_ata['layout_max'] +1; ?> ? "<?php echo $bfa_ata['layout_max']; ?>px" :
+ <?php } if($bfa_ata['layout_min_width'] == "") { ?>"<?php echo $bfa_ata['layout_width']; ?>"); -->}<?php } else { ?>
+ (((document.compatMode &&
+ document.compatMode=='CSS1Compat') ?
+ document.documentElement.clientWidth :
+ document.body.clientWidth)
+ < <?php echo $bfa_ata['layout_min'] + 1; ?> ? "<?php echo $bfa_ata['layout_min']; ?>px" :
+ "<?php echo $bfa_ata['layout_width']; ?>"));
+-->
+ }
+<?php } } ?>
+
+/*-------------------- CONTAINER for VISUAL styles --------*/
+
+div#container {
+ <?php echo $bfa_ata['layout_style']; ?>
+ <?php if ( $bfa_ata['layout_style_leftright_padding'] != "0" ) { ?>
+ padding-left: <?php echo $bfa_ata['layout_style_leftright_padding']; ?>px;
+ padding-right: <?php echo $bfa_ata['layout_style_leftright_padding']; ?>px;
+ <?php } ?>
+ 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: <?php echo $bfa_ata['left_sidebar_width']; ?>px;}
+.colone-inner {width: <?php echo $bfa_ata['left_sidebar2_width']; ?>px;}
+.coltwo { width: 100% }
+.colthree-inner {width: <?php echo $bfa_ata['right_sidebar2_width']; ?>px;}
+.colthree {width: <?php echo $bfa_ata['right_sidebar_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;
+ <?php bfa_incl('logoarea_style') ?>
+ }
+
+/*-------------------- LOGO -------------------------------*/
+
+img.logo {
+ display: block;
+ <?php bfa_incl('logo_style') ?>
+ }
+
+td.logoarea-logo {
+ width: 1%;
+ }
+
+
+/*-------------------- BLOG TITLE -------------------------*/
+
+h1.blogtitle,
+h2.blogtitle {
+ display: block;
+ <?php bfa_incl('blog_title_style') ?>
+ 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: #<?php echo $bfa_ata['blog_title_color']; ?>;
+ font-weight: <?php echo $bfa_ata['blog_title_weight']; ?>;
+ font-smooth: always;
+ }
+
+h1.blogtitle a:hover,
+h2.blogtitle a:hover {
+ text-decoration: none;
+ color: #<?php echo $bfa_ata['blog_title_color_hover']; ?>;
+ font-weight: <?php echo $bfa_ata['blog_title_weight']; ?>;
+ }
+
+/*-------------------- BLOG TAGLINE -----------------------*/
+
+p.tagline {
+ <?php bfa_incl('blog_tagline_style') ?>
+ }
+
+td.feed-icons {
+ white-space: nowrap;
+ }
+
+div.rss-box {
+ height: 1%;
+ display: block;
+ padding: 10px 0 10px 10px;
+ margin: 0;
+ width: <?php echo $bfa_ata['rss_box_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(<?php echo $templateURI; ?>/images/comment-gray.png) no-repeat scroll center left;
+}
+
+a.comments-icon:hover {
+ background: transparent url(<?php echo $templateURI; ?>/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(<?php echo $templateURI; ?>/images/rss-gray.png) no-repeat scroll center left;
+}
+
+a.posts-icon:hover {
+ background: transparent url(<?php echo $templateURI; ?>/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(<?php echo $templateURI; ?>/images/email-gray.png) no-repeat scroll center left;
+}
+
+a.email-icon:hover {
+ background: transparent url(<?php echo $templateURI; ?>/images/email.png) no-repeat scroll center left;
+}
+
+/*-------------------- SEARCH BOX IN HEADER ---------------*/
+
+td.search-box {
+ height: 1%;
+ }
+
+div.searchbox {
+ height: 35px;
+ <?php bfa_incl('searchbox_style') ?>
+ }
+
+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 {
+ <?php bfa_incl('horbar1') ?>
+ }
+
+div.horbar2 {
+ <?php bfa_incl('horbar2') ?>
+ }
+
+<?php if (strpos($bfa_ata['configure_header'],'%image')!==false) { ?>
+div.header-image-container-pre {
+ position: relative;
+ margin: 0;
+ padding: 0;
+ height: <?php echo $bfa_ata['headerimage_height']; ?>px;
+ }
+
+div.header-image-container {
+ position: relative;
+ margin: 0;
+ padding: 0;
+ height: <?php echo $bfa_ata['headerimage_height']; ?>px;
+ }
+
+div.codeoverlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+<?php } ?>
+
+<?php if ( $bfa_ata['overlay_blog_title'] == "Yes" OR $bfa_ata['overlay_blog_tagline'] == "Yes" ) { ?>
+div.titleoverlay {
+ z-index: 4;
+ position: absolute;
+ top: 0;
+ float: left;
+ width: auto;
+ <?php echo $bfa_ata['overlay_box_style']; ?>
+ }
+<?php } ?>
+
+<?php if ( $bfa_ata['header_opacity_left'] != 0 AND $bfa_ata['header_opacity_left'] != '' ) { ?>
+/*-------------------- OPACITY LEFT -----------------------*/
+
+div.opacityleft {
+ position: absolute;
+ z-index: 2;
+ top: 0;
+ left: 0;
+ background-color: #<?php echo $bfa_ata['header_opacity_left_color']; ?>;
+ height: <?php echo $bfa_ata['headerimage_height']; ?>px;
+ width: <?php echo $bfa_ata['header_opacity_left_width']; ?>px;
+ filter: alpha(opacity=<?php echo $bfa_ata['header_opacity_left']; ?>);
+ opacity:.<?php echo $bfa_ata['header_opacity_left']; ?>;
+ }
+<?php } ?>
+
+<?php if ( $bfa_ata['header_opacity_right'] != 0 AND $bfa_ata['header_opacity_right'] != '' ) { ?>
+/*-------------------- OPACITY RIGHT ----------------------*/
+
+div.opacityright {
+ position: absolute;
+ z-index: 2;
+ top: 0;
+ right: 0;
+ background-color: #<?php echo $bfa_ata['header_opacity_right_color']; ?>;
+ height: <?php echo $bfa_ata['headerimage_height']; ?>px;
+ width: <?php echo $bfa_ata['header_opacity_right_width']; ?>px;
+ filter: alpha(opacity=<?php echo $bfa_ata['header_opacity_right']; ?>);
+ opacity:.<?php echo $bfa_ata['header_opacity_right']; ?>;
+ }
+<?php } ?>
+
+
+<?php if ($bfa_ata['header_image_clickable'] == "Yes") { ?>
+/*-------------------- CLICKABLE HEADER IMAGE -------------*/
+
+div.clickable {
+ position:absolute;
+ top:0;
+ left:0;
+ z-index:3;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: <?php echo $bfa_ata['headerimage_height']; ?>px;
+ }
+<?php } ?>
+
+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;
+ <?php bfa_incl('left_sidebar_style') ?>
+ }
+
+td#left-inner {
+ vertical-align: top;
+ <?php bfa_incl('left_sidebar2_style') ?>
+ }
+
+/* ------------------------------------------------------------------
+---------- RIGHT SIDEBARS --------------------------------------------
+------------------------------------------------------------------ */
+
+td#right {
+ vertical-align: top;
+ <?php bfa_incl('right_sidebar_style') ?>
+ }
+
+td#right-inner {
+ vertical-align: top;
+ <?php bfa_incl('right_sidebar2_style') ?>
+ }
+
+/* ------------------------------------------------------------------
+---------- CENTER COLUMN --------------------------------------------
+------------------------------------------------------------------ */
+
+td#middle {
+ vertical-align: top;
+ width: 100%;
+ <?php bfa_incl('center_column_style') ?>
+ }
+
+
+/* ------------------------------------------------------------------
+---------- FOOTER ---------------------------------------------------
+------------------------------------------------------------------ */
+div#footer.full-width {width: 100%;}
+
+div#footer,
+td#footer {
+ width: auto;
+ <?php bfa_incl('footer_style') ?>
+ }
+
+div#footer a:link, div#footer a:visited, div#footer a:active,
+td#footer a:link, td#footer a:visited, td#footer a:active {
+ <?php bfa_incl('footer_style_links') ?>
+ }
+
+div#footer a:hover,
+td#footer a:hover {
+ <?php bfa_incl('footer_style_links_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 */
+ <?php bfa_incl('widget_container') ?>
+ }
+
+div.widget-title {
+ display: block;
+ width: auto;
+ <?php bfa_incl('widget_title_box') ?>
+ }
+
+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;
+ <?php bfa_incl('widget_title') ?>
+ }
+
+/* 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;
+ <?php bfa_incl('widget_content') ?>
+ }
+
+
+/* ------------------------------------------------------------------
+---------- 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;
+ <?php if ( $bfa_ata['select_font_size'] != "Default" ) {
+ echo "font-size: " . $bfa_ata['select_font_size'] . ";\n"; } ?>
+}
+
+
+/* ------------------------------------------------------------------
+---------- 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 <?php echo $bfa_ata['widget_lists']['li-margin-left']; ?>px;
+ padding: 0 0 0 <?php echo $bfa_ata['widget_lists']['link-padding-left']; ?>px;
+ border-left: solid <?php echo $bfa_ata['widget_lists']['link-border-left-width']; ?>px #<?php echo $bfa_ata['widget_lists']['link-border-left-color']; ?>;
+ }
+
+div.widget ul li:hover,
+div.widget ul li.sfhover {
+display: block;
+width: auto;
+ border-left: solid <?php echo $bfa_ata['widget_lists']['link-border-left-width']; ?>px #<?php echo $bfa_ata['widget_lists']['link-border-left-hover-color']; ?>;
+ }
+
+div.widget ul li ul li {
+ margin: 2px 0 2px <?php echo $bfa_ata['widget_lists2']['li-margin-left']; ?>px;
+ padding: 0 0 0 <?php echo $bfa_ata['widget_lists2']['link-padding-left']; ?>px;
+ border-left: solid <?php echo $bfa_ata['widget_lists2']['link-border-left-width']; ?>px #<?php echo $bfa_ata['widget_lists2']['link-border-left-color']; ?>;
+ }
+
+div.widget ul li ul li:hover,
+div.widget ul li ul li.sfhover {
+ border-left: solid <?php echo $bfa_ata['widget_lists2']['link-border-left-width']; ?>px #<?php echo $bfa_ata['widget_lists2']['link-border-left-hover-color']; ?>;
+ }
+
+div.widget ul li ul li ul li {
+ margin: 2px 0 2px <?php echo $bfa_ata['widget_lists3']['li-margin-left']; ?>px;
+ padding: 0 0 0 <?php echo $bfa_ata['widget_lists3']['link-padding-left']; ?>px;
+ border-left: solid <?php echo $bfa_ata['widget_lists3']['link-border-left-width']; ?>px #<?php echo $bfa_ata['widget_lists3']['link-border-left-color']; ?>;
+ }
+
+div.widget ul li ul li ul li:hover,
+div.widget ul li ul li ul li.sfhover {
+ border-left: solid <?php echo $bfa_ata['widget_lists3']['link-border-left-width']; ?>px #<?php echo $bfa_ata['widget_lists3']['link-border-left-hover-color']; ?>;
+ }
+
+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: #<?php echo $bfa_ata['widget_lists']['link-color']; ?>;
+ font-weight: <?php echo $bfa_ata['widget_lists']['link-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: #<?php echo $bfa_ata['widget_lists2']['link-color']; ?>;
+ font-weight: <?php echo $bfa_ata['widget_lists2']['link-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: #<?php echo $bfa_ata['widget_lists3']['link-color']; ?>;
+ font-weight: <?php echo $bfa_ata['widget_lists3']['link-weight']; ?>;
+ }
+
+
+div.widget a:hover,
+div.widget ul li a:hover {
+ color: #<?php echo $bfa_ata['widget_lists']['link-hover-color']; ?>;
+ }
+
+div.widget ul li ul li a:hover {
+ color: #<?php echo $bfa_ata['widget_lists2']['link-hover-color']; ?>;
+ }
+
+div.widget ul li ul li ul li a:hover {
+ color: #<?php echo $bfa_ata['widget_lists3']['link-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 <A> instead of the <LI>.
+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 <LI>. The margin stays on the <LI>'s
+because if the <A>'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 <A> */
+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 <?php echo $bfa_ata['widget_lists']['link-padding-left']; ?>px;
+ border-left: solid <?php echo $bfa_ata['widget_lists']['link-border-left-width']; ?>px #<?php echo $bfa_ata['widget_lists']['link-border-left-color']; ?>;
+ }
+
+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 <?php echo $bfa_ata['widget_lists']['link-border-left-width']; ?>px #<?php echo $bfa_ata['widget_lists']['link-border-left-hover-color']; ?>;
+}
+
+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 <?php echo $bfa_ata['widget_lists2']['link-padding-left']; ?>px;
+ border-left: solid <?php echo $bfa_ata['widget_lists2']['link-border-left-width']; ?>px #<?php echo $bfa_ata['widget_lists2']['link-border-left-color']; ?>;
+ }
+
+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 <?php echo $bfa_ata['widget_lists2']['link-border-left-width']; ?>px #<?php echo $bfa_ata['widget_lists2']['link-border-left-hover-color']; ?>;
+}
+
+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 <?php echo $bfa_ata['widget_lists3']['link-padding-left']; ?>px;
+ border-left: solid <?php echo $bfa_ata['widget_lists3']['link-border-left-width']; ?>px #<?php echo $bfa_ata['widget_lists3']['link-border-left-color']; ?>;
+ }
+
+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 <?php echo $bfa_ata['widget_lists3']['link-border-left-width']; ?>px #<?php echo $bfa_ata['widget_lists3']['link-border-left-hover-color']; ?>;
+}
+
+/* The pages widget gets "block" because it usually has only
+one link per <LI> 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: <?php echo $bfa_ata['category_widget_display_type']; ?> !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;
+ <?php bfa_incl('post_container_style') ?>
+ }
+
+/* additonal styles for sticky posts */
+
+div.sticky {
+ <?php bfa_incl('post_container_sticky_style') ?>
+ }
+
+/*-------------------- POST KICKER ------------------------*/
+
+div.post-kicker {
+ <?php bfa_incl('post_kicker_style') ?>
+ }
+
+div.post-kicker a:link,
+div.post-kicker a:visited,
+div.post-kicker a:active {
+ <?php bfa_incl('post_kicker_style_links') ?>
+ }
+
+div.post-kicker a:hover {
+ <?php bfa_incl('post_kicker_style_links_hover') ?>
+ }
+
+/*-------------------- POST HEADLINE ----------------------*/
+
+div.post-headline {
+ <?php bfa_incl('post_headline_style') ?>
+ }
+
+div.post-headline h1,
+div.post-headline h2 {
+ margin: 0;
+ padding: 0;
+ <?php bfa_incl('post_headline_style_text') ?>
+ }
+
+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 {
+ <?php bfa_incl('post_headline_style_links') ?>
+ }
+
+div.post-headline h2 a:hover,
+div.post-headline h1 a:hover {
+ <?php bfa_incl('post_headline_style_links_hover') ?>
+ }
+
+
+/*-------------------- POST BYLINE ------------------------*/
+
+div.post-byline {
+ <?php bfa_incl('post_byline_style') ?>
+ }
+
+div.post-byline a:link,
+div.post-byline a:visited,
+div.post-byline a:active {
+ <?php bfa_incl('post_byline_style_links') ?>
+ }
+
+div.post-byline a:hover {
+ <?php bfa_incl('post_byline_style_links_hover') ?>
+ }
+
+
+/*-------------------- POST BODY COPY ---------------------*/
+
+div.post-bodycopy {
+ <?php bfa_incl('post_bodycopy_style') ?>
+ }
+
+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;
+ <?php bfa_incl('post_footer_style') ?>
+ }
+
+div.post-footer a:link,
+div.post-footer a:visited,
+div.post-footer a:active {
+ <?php bfa_incl('post_footer_style_links') ?>
+ }
+
+div.post-footer a:hover {
+ <?php bfa_incl('post_footer_style_links_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 {
+ <?php bfa_incl('next_prev_style_top') ?>
+ }
+
+div.navigation-middle {
+ <?php bfa_incl('next_prev_style_middle') ?>
+ }
+
+div.navigation-bottom {
+ <?php bfa_incl('next_prev_style_bottom') ?>
+ }
+
+div.navigation-comments-above {
+ <?php bfa_incl('next_prev_style_comments_above') ?>
+ }
+
+div.navigation-comments-below {
+ <?php bfa_incl('next_prev_style_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;
+ <?php echo $bfa_ata['form_input_field_style'] . "\n"; ?>
+ <?php if ($bfa_ata['form_input_field_background'] != "") {
+ echo "background: url(" . $templateURI . "/images/" .
+ $bfa_ata['form_input_field_background'] . ") top left no-repeat;"; } ?>
+ }
+
+textarea {
+ width: 96%;
+ }
+
+
+input.inputblur {
+ color: #777777;
+ width: 95%;
+ }
+
+input.inputfocus {
+ color: #000000;
+ width: 95%;
+ }
+
+<?php if ($bfa_ata['highlight_forms'] == "Yes") { ?>
+input.highlight, textarea.highlight {
+ <?php bfa_incl('highlight_forms_style') ?>
+ }
+<?php } ?>
+
+/* .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;
+ <?php bfa_incl('button_style') ?>
+ }
+
+/* changed from .buttonhover to input.buttonhover in 3.6.1 */
+input.buttonhover {
+ padding: 0 2px;
+ cursor: pointer;
+ <?php bfa_incl('button_style_hover') ?>
+ }
+
+/* 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 {
+ <?php bfa_incl('submit_button_style') ?>
+ }
+
+/* ------------------------------------------------------------------
+---------- 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;
+ <?php bfa_incl('blockquote_style') ?>
+ }
+
+blockquote blockquote {
+ height: 1%;
+ display: block;
+ clear: both;
+ <?php bfa_incl('blockquote_style_2nd_level') ?>
+ }
+
+
+/* ------------------------------------------------------------------
+---------- TABLES & CALENDAR ----------------------------------------
+------------------------------------------------------------------ */
+
+/*-------------------- TABLES IN POSTS --------------------*/
+
+div.post table {
+ <?php bfa_incl('table') ?>
+ }
+
+div.post table caption {
+ width: auto;
+ margin: 0 auto;
+ <?php bfa_incl('table_caption') ?>
+ }
+
+div.post table th {
+ <?php bfa_incl('table_th') ?>
+ }
+
+div.post table td {
+ <?php bfa_incl('table_td') ?>
+ }
+
+div.post table tfoot td {
+ <?php bfa_incl('table_tfoot_td') ?>
+ }
+
+div.post table tr.alt td {
+ <?php bfa_incl('table_zebra_td') ?>
+ }
+
+div.post table tr.over td {
+ <?php bfa_incl('table_hover_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 {
+ <?php bfa_incl('comment_form_style') ?>
+ }
+
+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: <?php echo $bfa_ata['comment_border']; ?>;
+ }
+
+ol.commentlist li {
+ padding: 15px 10px;
+ display: block;
+ height: 1%; /* for IE6 */
+ margin: 0;
+ background-color: #<?php echo $bfa_ata['comment_background_color']; ?>;
+ border-bottom: <?php echo $bfa_ata['comment_border']; ?>;
+ }
+
+ol.commentlist li.alt {
+ display: block;
+ height: 1%; /* for IE6 */
+ background-color: #<?php echo $bfa_ata['comment_alt_background_color']; ?>;
+ border-bottom: <?php echo $bfa_ata['comment_border']; ?>;
+ }
+
+ol.commentlist li.authorcomment {
+ display: block;
+ height: 1%; /* for IE6 */
+ background-color: #<?php echo $bfa_ata['author_highlight_color']; ?>;
+ }
+
+ol.commentlist span.authorname {
+ font-weight: bold;
+ font-size: <?php echo $bfa_ata['comment_author_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: <?php echo $bfa_ata['comment_border']; ?>;
+ }
+
+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: #<?php echo $bfa_ata['comment_background_color']; ?>;
+ border-bottom: <?php echo $bfa_ata['comment_border']; ?>;
+ }
+
+ul.commentlist li.thread-odd {
+ background-color: #<?php echo $bfa_ata['comment_alt_background_color']; ?>;
+ border-bottom: <?php echo $bfa_ata['comment_border']; ?>;
+ }
+
+<?php if ($bfa_ata['author_highlight'] == "Yes") { ?>
+ul.commentlist div.bypostauthor {
+ background-color: #<?php echo $bfa_ata['author_highlight_color']; ?>;
+ }
+<?php } ?>
+
+<?php if ($bfa_ata['author_highlight'] == "Yes") { ?>
+ul.children div.bypostauthor {
+ border: dotted 1px #<?php echo $bfa_ata['author_highlight_border_color']; ?>;
+ }
+<?php } ?>
+
+ul.commentlist span.authorname {
+ font-size: <?php echo $bfa_ata['comment_author_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: #<?php echo $bfa_ata['link_color']; ?>;
+ border-color: #<?php echo $bfa_ata['link_color']; ?>;
+ }
+
+a.page-numbers:hover {
+ text-decoration: none;
+ color: #<?php echo $bfa_ata['link_hover_color']; ?>;
+ border-color: #<?php echo $bfa_ata['link_hover_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(<?php echo $templateURI; ?>/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 {
+ <?php bfa_incl('post_image_style') ?>
+ }
+
+.post img.size-full {
+<?php if(strpos($bfa_ata['layout_width'], 'px') === FALSE) { ?>
+ 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;
+<?php } ?>
+ margin: 5px 0 5px 0;
+ }
+
+
+
+<?php if(strpos($bfa_ata['layout_width'], 'px') === FALSE) { ?>
+/* 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 */
+ }
+<?php } ?>
+
+.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;
+ <?php bfa_incl('post_image_caption_style') ?>
+ }
+
+/* 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 {
+ <?php bfa_incl('image_caption_text') ?>
+ }
+
+/* ------------------------------------------------------------------
+---------- POST THUMBNAILS (WP 2.9 and newer) -----------------------
+------------------------------------------------------------------ */
+
+img.wp-post-image {
+ <?php bfa_incl('post_thumbnail_css') ?>
+}
+
+/* ------------------------------------------------------------------
+---------- 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;
+ <?php bfa_incl('avatar_style') ?>
+ }
+
+
+/* ------------------------------------------------------------------
+---------- 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;
+ }
+
+
+<?php
+if (function_exists('sociable_html')) {
+# include (WP_PLUGIN_DIR.'/sociable/sociable.css');
+?>
+
+/* ------------------------------------------------------------------
+---------- 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);
+ }
+
+<?php } ?>
+
+
+<?php
+if (function_exists('wp_pagenavi')) {
+include (WP_PLUGIN_DIR.'/wp-pagenavi/pagenavi-css.css');
+?>
+
+/* ------------------------------------------------------------------
+---------- FOR THE WP-PAGENAVI PLUGIN ----------------------------
+------------------------------------------------------------------ */
+
+.wp-pagenavi a:link,
+.wp-pagenavi a:visited,
+.wp-pagenavi a:active {
+ color: #<?php echo $bfa_ata['link_color']; ?>;
+ border: solid 1px #<?php echo $bfa_ata['link_color']; ?>;
+ }
+
+.wp-pagenavi a:hover {
+ color: #<?php echo $bfa_ata['link_hover_color']; ?>;
+ border: solid 1px #<?php echo $bfa_ata['link_hover_color']; ?>;
+ }
+
+<?php } ?>
+
+
+/* ------------------------------------------------------------------
+---------- 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. */
+ }
+
+
+<?php if (strpos($bfa_ata['configure_header'],'%pages')!==FALSE OR
+strpos($bfa_ata['configure_header'],'%page-center')!==FALSE OR
+strpos($bfa_ata['configure_header'],'%page-right')!==FALSE OR
+strpos($bfa_ata['configure_header'],'%cats')!==FALSE OR
+strpos($bfa_ata['configure_header'],'%cat-center')!==FALSE OR
+strpos($bfa_ata['configure_header'],'%cat-right')!==FALSE) { ?>
+div#menu1 ul.sub-menu,
+div#menu1 ul.sub-menu ul,
+div#menu1 ul.rMenu-ver,
+div#menu1 ul.rMenu-ver ul {
+ width: <?php echo $bfa_ata['page_menu_submenu_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: <?php echo $bfa_ata['cat_menu_submenu_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: #<?php echo $bfa_ata['page_menu_bar_background_color']; ?>;
+ border: <?php echo $bfa_ata['anchor_border_page_menu_bar']; ?>;
+ }
+div#menu2 ul.rMenu {
+ background: #<?php echo $bfa_ata['cat_menu_bar_background_color']; ?>;
+ border: <?php echo $bfa_ata['anchor_border_cat_menu_bar']; ?>;
+ }
+
+div#menu1 ul.rMenu li a {
+ border: <?php echo $bfa_ata['anchor_border_page_menu_bar']; ?>;
+ }
+div#menu2 ul.rMenu li a {
+ border: <?php echo $bfa_ata['anchor_border_cat_menu_bar']; ?>;
+ }
+
+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: <?php echo $bfa_ata['anchor_border_page_menu_bar']; ?>;
+ }
+div#menu2 ul.sub-menu,
+div#menu2 ul.rMenu-ver {
+ border-top: <?php echo $bfa_ata['anchor_border_cat_menu_bar']; ?>;
+ }
+
+
+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: #<?php echo $bfa_ata['page_menu_bar_link_color']; ?>;
+ text-transform: <?php echo $bfa_ata['page_menu_transform']; ?>;
+ font: <?php echo $bfa_ata['page_menu_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: #<?php echo $bfa_ata['cat_menu_bar_link_color']; ?>;
+ text-transform: <?php echo $bfa_ata['cat_menu_transform']; ?>;
+ font: <?php echo $bfa_ata['cat_menu_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: #<?php echo $bfa_ata['page_menu_bar_background_color']; ?>;
+ }
+div#menu2 ul.rMenu li {
+ background-color: #<?php echo $bfa_ata['cat_menu_bar_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: #<?php echo $bfa_ata['page_menu_bar_background_color_parent']; ?>;
+ }
+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: #<?php echo $bfa_ata['cat_menu_bar_background_color_parent']; ?>;
+ }
+
+/* "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: #<?php echo $bfa_ata['page_menu_bar_background_color_hover']; ?>;
+ color: #<?php echo $bfa_ata['page_menu_bar_link_color_hover']; ?>;
+ }
+/* 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: #<?php echo $bfa_ata['page_menu_bar_background_color_hover']; ?>;
+ color: #<?php echo $bfa_ata['page_menu_bar_link_color_hover']; ?>;
+ }
+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: #<?php echo $bfa_ata['cat_menu_bar_background_color_hover']; ?>;
+ color: #<?php echo $bfa_ata['cat_menu_bar_link_color_hover']; ?>;
+ }
+/* 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: #<?php echo $bfa_ata['cat_menu_bar_background_color_hover']; ?>;
+ color: #<?php echo $bfa_ata['cat_menu_bar_link_color_hover']; ?>;
+ }
+
+/* ------------------------------------------------------------------
+---------- 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(<?php echo $templateURI; ?>/images/expand-right<?php echo ($bfa_ata['page_menu_arrows'] == "white" ? "-white" : ""); ?>.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(<?php echo $templateURI; ?>/images/expand-right<?php echo ($bfa_ata['cat_menu_arrows'] == "white" ? "-white" : ""); ?>.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(<?php echo $templateURI; ?>/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(<?php echo $templateURI; ?>/images/expand-down<?php echo ($bfa_ata['page_menu_arrows'] == "white" ? "-white" : ""); ?>.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(<?php echo $templateURI; ?>/images/expand-down<?php echo ($bfa_ata['cat_menu_arrows'] == "white" ? "-white" : ""); ?>.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 */
+ }
+
+
+<?php if (strpos($bfa_ata['configure_header'],'%page-center')!==FALSE) { ?>
+/* 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;
+}
+<?php } ?>
+
+
+<?php if (strpos($bfa_ata['configure_header'],'%cat-center')!==FALSE) { ?>
+/* 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;
+}
+<?php } ?>
+
+
+<?php if (strpos($bfa_ata['configure_header'],'%page-right')!==FALSE) { ?>
+div#menu1 ul.rMenu {
+ background: #<?php echo $bfa_ata['page_menu_bar_background_color']; ?>;
+ border: <?php echo $bfa_ata['anchor_border_page_menu_bar']; ?>;
+ border-right: none;
+ }
+<?php } ?>
+
+<?php if (strpos($bfa_ata['configure_header'],'%cat-right')!==FALSE) { ?>
+div#menu2 ul.rMenu {
+ background: #<?php echo $bfa_ata['cat_menu_bar_background_color']; ?>;
+ border: <?php echo $bfa_ata['anchor_border_cat_menu_bar']; ?>;
+ border-right: none;
+ }
+<?php } ?>
+
+/*******************************************************************************
+ * 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;
+}
+
+<?php } ?>
+
+/* ------------------------------------------------------------------
+---------- 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;
+ }
+
+
+<?php
+bfa_incl('html_inserts_css');
+
+if ( $bfa_ata['css_compress'] == "Yes" AND
+!($bfa_ata_debug==1 AND $bfa_ata['allow_debug'] == "Yes" ) ) {
+ ob_end_flush();
+}
+if ( isset($bfa_ata_preview) OR $bfa_ata['css_external'] == "Inline" OR
+($bfa_ata_debug==1 AND $bfa_ata['allow_debug'] == "Yes" ) ) {
+ echo "</style>\n";
+}
+?>
\ No newline at end of file
--- /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 @@
+<?php if (!empty($_SERVER['SCRIPT_FILENAME']) AND 'download.php' == basename($_SERVER['SCRIPT_FILENAME'])) {
+ die ('Please do not load this page directly.');
+}
+global $user_ID;
+if( $user_ID ) {
+ if( current_user_can('level_10') ) {
+ header('Content-Description: File Transfer');
+ header('Content-Disposition: attachment; filename="ata-' . str_replace('.','', $_SERVER['SERVER_NAME']) . '-' . date('Y') . date('m') . date('d') . '.txt"');
+ header('Content-Type: text/plain; charset=utf-8');
+ // output the file
+ // Since 3.5.2: Use JSON
+ echo json_encode( get_option('bfa_ata4') );
+ }
+}
+die();
+?>
\ No newline at end of file
--- /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
--- /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
--- /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 @@
+<?php /* if index.php or another page template (copied from index.php) was not used */
+global $bfa_ata, $cols, $left_col, $left_col2, $right_col, $right_col2;
+if (!isset($bfa_ata))
+list($bfa_ata, $cols, $left_col, $left_col2, $right_col, $right_col2, $bfa_ata['h_blogtitle'], $bfa_ata['h_posttitle']) = bfa_get_options();
+?>
+</td>
+<!-- / Main Column -->
+
+<!-- Right Inner Sidebar -->
+<?php if ( $right_col2 == "on" ) { ?>
+<td id="right-inner">
+
+ <?php if ( !dynamic_sidebar('Right Inner Sidebar') ) : ?>
+
+ <div class="widget widget_categories"><div class="widget-title">
+ <h3><?php _e('Categories','atahualpa'); ?></h3>
+ </div>
+ <ul><?php wp_list_categories('show_count=1&title_li='); ?></ul>
+ </div>
+
+ <div class="widget widget_archive"><div class="widget-title">
+ <h3><?php _e('Archives','atahualpa'); ?></h3>
+ </div>
+ <ul><?php wp_get_archives('type=monthly'); ?></ul>
+ </div>
+
+ <div class="widget widget_text"><div class="widget-title">
+ <h3>A sample text widget</h3></div>
+ <div class="textwidget">
+ <p>Etiam pulvinar consectetur dolor sed malesuada. Ut convallis
+ <a href="http://wordpress.org/">euismod dolor nec</a> pretium. Nunc ut tristique massa. </p>
+ <p>Nam sodales mi vitae dolor <em>ullamcorper et vulputate enim accumsan</em>.
+ Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. <strong>Nulla nulla lorem</strong>,
+ suscipit in posuere in, interdum non magna. </p>
+ </div>
+
+ <?php endif; ?>
+
+</td>
+<?php } ?>
+
+<!-- Right Sidebar -->
+<?php if ( $right_col == "on" ) { ?>
+<td id="right">
+
+ <?php if ( !dynamic_sidebar('Right Sidebar') ) : ?>
+
+ <!-- Default content here -->
+ <div class="widget"><div class="widget-title"><h3>Recent Posts</h3></div>
+ <?php $r = new WP_Query(array(
+ 'showposts' => 20,
+ 'what_to_show' => 'posts',
+ 'nopaging' => 0,
+ 'post_status' => 'publish',
+ 'ignore_sticky_posts' => 1));
+ if ($r->have_posts()) : ?>
+ <ul>
+ <?php while ($r->have_posts()) : $r->the_post(); ?>
+ <li><a href="<?php the_permalink() ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?></a></li>
+ <?php endwhile; ?>
+ </ul>
+ <?php wp_reset_query(); // Restore global post data stomped by the_post().
+ endif; ?>
+ </div>
+
+ <div id="linkcat-99" class="widget widget_links"><div class="widget-title">
+ <?php wp_list_bookmarks('category_before=&category_after=&title_before=<h3>&title_after=</h3></div>'); ?>
+ </div>
+
+ <div class="widget"><div class="widget-title">
+ <h3><?php _e('Meta','atahualpa'); ?></h3>
+ </div>
+ <ul>
+ <?php wp_register(); ?>
+ <li><?php wp_loginout(); ?></li>
+ <li><a href="http://wordpress.org/" title="
+ <?php _e('Powered by WordPress, state-of-the-art semantic personal publishing platform.','atahualpa'); ?>">
+ <?php _e('WordPress','atahualpa'); ?></a></li>
+ <?php wp_meta(); ?>
+ </ul>
+ </div>
+
+ <?php endif; ?>
+
+</td>
+<?php } ?>
+<!-- / Right Sidebar -->
+
+</tr>
+<!-- / Main Body -->
+
+<?php if ($bfa_ata['full_width_footer'] == "No") { ?>
+<tr>
+
+<!-- Footer -->
+<td id="footer" colspan="<?php echo $cols; ?>">
+ <?php echo bfa_footer(); ?>
+ <?php if ($bfa_ata['footer_show_queries'] == "Yes - visible") { ?>
+ <p>
+ <?php echo $wpdb->num_queries; ?><?php _e(' queries. ','atahualpa'); ?><?php timer_stop(1); ?><?php _e(' seconds.','atahualpa'); ?>
+ </p>
+ <?php } ?>
+
+ <?php if ($bfa_ata['footer_show_queries'] == "Yes - in source code") { ?>
+ <!--
+ <?php echo $wpdb->num_queries; ?><?php _e(' queries. ','atahualpa'); ?><?php timer_stop(1); ?><?php _e(' seconds.','atahualpa'); ?>
+ -->
+ <?php } ?>
+
+ <?php wp_footer(); ?>
+</td>
+
+
+</tr>
+<?php } ?>
+
+</table><!-- / layout -->
+</div><!-- / container -->
+</div><!-- / wrapper -->
+<?php if ($bfa_ata['full_width_footer'] == "Yes") { ?>
+ <!-- Full Width Footer -->
+ <div id="footer" class="full-width">
+ <?php echo bfa_footer(); ?>
+ <?php if ($bfa_ata['footer_show_queries'] == "Yes - visible") { ?>
+ <p>
+ <?php echo $wpdb->num_queries; ?><?php _e(' queries. ','atahualpa'); ?><?php timer_stop(1); ?><?php _e(' seconds.','atahualpa'); ?>
+ </p>
+ <?php } ?>
+
+ <?php if ($bfa_ata['footer_show_queries'] == "Yes - in source code") { ?>
+ <!--
+ <?php echo $wpdb->num_queries; ?><?php _e(' queries. ','atahualpa'); ?><?php timer_stop(1); ?><?php _e(' seconds.','atahualpa'); ?>
+ -->
+ <?php } ?>
+
+ <?php wp_footer(); ?>
+ </div>
+ <!-- / Full Width Footer -->
+<?php } ?>
+
+<?php bfa_incl('html_inserts_body_bottom'); ?>
+</body>
+</html>
\ No newline at end of file
--- /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 @@
+<?php
+$bfa_ata_version = "3.7.24";
+
+// Load translation file above
+load_theme_textdomain('atahualpa');
+
+// get default theme options
+include_once (get_template_directory() . '/functions/bfa_theme_options.php');
+// Load options
+include_once (get_template_directory() . '/functions/bfa_get_options.php');
+list($bfa_ata, $cols, $left_col, $left_col2, $right_col, $right_col2, $bfa_ata['h_blogtitle'], $bfa_ata['h_posttitle']) = bfa_get_options();
+
+
+// Sidebars:
+add_action( 'widgets_init', 'bfa_widgets_init' );
+function bfa_widgets_init() {
+
+ global $bfa_ata;
+
+ register_sidebar(array(
+ 'name'=>'Left Sidebar',
+ 'id'=> 'bfa-ata-left-sidebar',
+ 'before_widget' => '<div id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</div>',
+ 'before_title' => '<div class="widget-title"><h3>',
+ 'after_title' => '</h3></div>',
+ ));
+ register_sidebar(array(
+ 'name'=>'Right Sidebar',
+ 'id'=> 'bfa-ata-right-sidebar',
+ 'before_widget' => '<div id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</div>',
+ 'before_title' => '<div class="widget-title"><h3>',
+ 'after_title' => '</h3></div>',
+ ));
+ register_sidebar(array(
+ 'name'=>'Left Inner Sidebar',
+ 'id'=> 'bfa-ata-left-inner-sidebar',
+ 'before_widget' => '<div id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</div>',
+ 'before_title' => '<div class="widget-title"><h3>',
+ 'after_title' => '</h3></div>',
+ ));
+ register_sidebar(array(
+ 'name'=>'Right Inner Sidebar',
+ 'id'=> 'bfa-ata-right-inner-sidebar',
+ 'before_widget' => '<div id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</div>',
+ 'before_title' => '<div class="widget-title"><h3>',
+ 'after_title' => '</h3></div>',
+ ));
+
+ // 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 <head>...</head> 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 .= '<br />Powered by <a href="http://wordpress.org/">WordPress</a> & <a href="http://forum.bytesforall.com/">Atahualpa</a>';
+ 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 </head>
+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 </head>, 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 '<meta name="theme" content="Atahualpa ' . $bfa_ata_version . '" />' . "\n";
+ if ( function_exists('the_generator') ) {
+ the_generator( apply_filters( 'wp_generator_type', 'xhtml' ) );
+ }
+ echo '<meta name="robots" content="noindex, follow" />'."\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" ) { ?>
+ <script type="text/javascript" src="<?php echo $homeURL; ?>/?bfa_ata_file=js"></script>
+ <?php }
+}
+add_action('wp_head', 'bfa_add_js_link');
+
+function bfa_css_js_redirect() {
+ global $bfa_ata;
+ $bfa_ata_query_var_file = get_query_var('bfa_ata_file');
+ if ( $bfa_ata_query_var_file == "css" OR $bfa_ata_query_var_file == "js" ) {
+ include_once (get_template_directory() . '/' . $bfa_ata_query_var_file . '.php');
+ exit; // this stops WordPress entirely
+ }
+ // Since 3.4.7: Import/Export Settings
+ if ( $bfa_ata_query_var_file == "settings-download" ) {
+ if(isset($_FILES['userfile'])) $uploadedfile = $_FILES['userfile'];
+ include_once (get_template_directory() . '/download.php');
+ exit; // this stops WordPress entirely
+ }
+ if ( $bfa_ata_query_var_file == "settings-upload" ) {
+ include_once (get_template_directory() . '/upload.php');
+ exit; // this stops WordPress entirely
+ }
+}
+
+function bfa_inline_css_js() {
+ global $bfa_ata;
+ $bfa_ata_preview = get_query_var('preview');
+ $bfa_ata_debug = get_query_var('bfa_debug');
+ if ( $bfa_ata_preview == 1 OR $bfa_ata['css_external'] == "Inline" OR
+ ( $bfa_ata_debug == 1 AND $bfa_ata['allow_debug'] == "Yes" ) ) {
+ include_once (get_template_directory() . '/css.php');
+ }
+ if ( $bfa_ata_preview == 1 OR $bfa_ata['javascript_external'] == "Inline" OR
+ ( $bfa_ata_debug == 1 AND $bfa_ata['allow_debug'] == "Yes" ) ) {
+ include_once (get_template_directory() . '/js.php');
+ }
+}
+
+
+function bfa_delete_bfa_ata4() {
+ check_ajax_referer( "delete_bfa_ata4" );
+ if (delete_option('bfa_ata4')) echo '<span style="color:green;font-weight:bold;">Successfully deleted option \'bfa_ata4\' ...</span>';
+ else echo '<span style="color:green;font-weight:bold;">Something went wrong...</span>';
+ 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:
+<?php bfa_widget_area([parameters]); ?>
+
+Example:
+<?php bfa_widget_area('name=My widget area&cells=4&align=1&align_2=9&align_3=7&width_4=700&before_widget=<div id="%1$s" class="header-widget %2$s">&after_widget=</div>'); ?>
+
+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: <div id="%1$s" class="widget %2$s">
+after_widget HMTL after each widget ... Default: </div>
+before_title HTML before the title of each widget in any cell of this widget area: Default: <div class="widget-title"><h3>
+after_title HMTL after the title ... Default: </h3></div>
+
+*/
+function bfa_widget_area($args = '') {
+ global $bfa_ata;
+ $defaults = array(
+ 'name' => '',
+ 'cells' => 1,
+ 'align' => 2,
+ 'before_widget' => '<div id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</div>',
+ 'before_title' => '<div class="widget-title"><h3>',
+ 'after_title' => '</h3></div>',
+ );
+
+ $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 '<table id="' . $area_id . '" class="bfa_widget_area" style="table-layout:fixed;width:100%" cellpadding="0" cellspacing="0" border="0">';
+
+ // 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<colgroup>";
+ for ( $i = 1; $i <= $r['cells']; $i++ ) {
+ echo '<col';
+ $current_width = "width_" . $i;
+ if ( isset($r[$current_width]) ) {
+ if (!preg_match('/(%|px|pX|Px|PX)/',$r[$current_width]) ) {
+ $r[$current_width] = $r[$current_width].'px';
+ }
+ echo ' style="width:' . $r[$current_width] . '"';
+ }
+ echo ' />';
+ }
+ echo "</colgroup>";
+ }
+
+ echo "<tr>";
+
+ for ( $i = 1; $i <= $r['cells']; $i++ ) {
+
+ $current_name = $r['name'] . ' ' . $i;
+ $current_id = $area_id . '_' . $i;
+ $current_align = "align_" . $i;
+
+ echo "\n" . '<td id="' . $current_id .'" ';
+
+ if ( isset($r[$current_align]) )
+ $align_type = $r["$current_align"];
+ else
+ $align_type = $r['align'];
+
+ echo bfa_table_cell_align($align_type) . ">";
+
+ // 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</td>";
+
+ $bfa_widget_areas[$current_name] = $this_widget_area;
+ }
+
+ echo "\n</tr></table>";
+
+ } else {
+
+ // If only 1 widget cell, use a DIV instead of a table
+ echo '<div id="' . $area_id . '" class="bfa_widget_area">';
+
+ // 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 '</div>';
+
+ $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 "<strong><span style='color:green'>Success! Reloading admin area in 2 seconds... </span></strong><br />";
+
+ // Probably not a valid settings file:
+ } else {
+ echo "<strong><span style='color:red'>Sorry, but doesn't appear
+ to be a valid Atahualpa Settings File.</span></strong>";
+ #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 '<input type="hidden" name="bfa_ata_noncename" id="bfa_ata_noncename" value="' .
+ wp_create_nonce( plugin_basename(__FILE__) ) . '" />';
+
+ // 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 '<table cellpadding="5" cellspacing="0" border="0" style="table-layout:fixed;width:100%">';
+ echo '<tr><td style="text-align:right;padding:2px 5px 2px 2px"><input id="bfa_ata_display_body_title" name="bfa_ata_display_body_title" type="checkbox" '. ($display_body_title == 'on' ? ' CHECKED' : '') .' /></td><td>Check to <strong>NOT</strong> display the Body Title on Single Post or Static Pages</td></tr>';
+ echo '<tr><td style="text-align:right;padding:2px 5px 2px 2px"><label for="bfa_ata_body_title">' . __("Body Title Single Pages", 'atahualpa' ) . '</label></td>';
+ echo '<td><input type="text" name="bfa_ata_body_title" value="' . $body_title . '" size="70" style="width:97%" /></td></tr>';
+ echo '<tr><td style="text-align:right;padding:2px 5px 2px 2px"><label for="bfa_ata_body_title_multi">' . __("Body Title Multi Post Pages", 'atahualpa' ) . '</label></td>';
+ echo '<td><input type="text" name="bfa_ata_body_title_multi" value="' . $body_title_multi . '" size="70" style="width:97%" /></td></tr>';
+
+ echo '<colgroup><col style="width:200px"><col></colgroup>';
+ echo '<tr><td style="text-align:right;padding:2px 5px 2px 2px"><label for="bfa_ata_meta_title">' . __("Meta Title", 'atahualpa' ) . '</label></td>';
+ echo '<td><input type="text" name="bfa_ata_meta_title" value="' .
+ $meta_title . '" size="70" style="width:97%" /></td></tr>';
+
+ echo '<tr><td style="text-align:right;padding:2px 5px 2px 2px"><label for="bfa_ata_meta_keywords">' . __("Meta Keywords", 'atahualpa' ) . '</label></td>';
+ echo '<td><input type="text" name="bfa_ata_meta_keywords" value="' .
+ $meta_keywords . '" size="70" style="width:97%" /></td></tr>';
+
+ echo '<tr><td style="text-align:right;vertical-align:top;padding:5px 5px 2px 2px"><label for="bfa_ata_meta_description">' . __("Meta Description", 'atahualpa' ) . '</label></td>';
+ echo '<td><textarea name="bfa_ata_meta_description" cols="70" rows="4" style="width:97%">'.$meta_description.'</textarea></td></tr>';
+
+ echo '</table>';
+
+}
+
+/* Prints the edit form for pre-WordPress 2.5 post/page */
+function bfa_ata_old_custom_box() {
+
+ echo '<div class="dbx-b-ox-wrapper">' . "\n";
+ echo '<fieldset id="bfa_ata_fieldsetid" class="dbx-box">' . "\n";
+ echo '<div class="dbx-h-andle-wrapper"><h3 class="dbx-handle">' .
+ __( 'Body copy title', 'atahualpa' ) . "</h3></div>";
+
+ echo '<div class="dbx-c-ontent-wrapper"><div class="dbx-content">';
+
+ // output editing form
+
+ bfa_ata_inner_custom_box();
+
+ // end wrapper
+
+ echo "</div></div></fieldset></div>\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 '
+<!--[if IE 6]>
+<script type="text/javascript">DD_roundies.addRule("' . $bfa_ata['pngfix_selectors'] . '");</script>
+<![endif]-->
+';
+}
+
+// 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,'<?php bfa_widget_area') !== FALSE ) {
+ $content = preg_replace_callback("/<\?php bfa_widget_area(.*?)\((.*?)'(.*?)'(.*?)\)(.*?)\?>/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
--- /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 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Converts to and from JSON format.
+ *
+ * JSON (JavaScript Object Notation) is a lightweight data-interchange
+ * format. It is easy for humans to read and write. It is easy for machines
+ * to parse and generate. It is based on a subset of the JavaScript
+ * Programming Language, Standard ECMA-262 3rd Edition - December 1999.
+ * This feature can also be found in Python. JSON is a text format that is
+ * completely language independent but uses conventions that are familiar
+ * to programmers of the C-family of languages, including C, C++, C#, Java,
+ * JavaScript, Perl, TCL, and many others. These properties make JSON an
+ * ideal data-interchange language.
+ *
+ * This package provides a simple encoder and decoder for JSON notation. It
+ * is intended for use with client-side Javascript applications that make
+ * use of HTTPRequest to perform server communication functions - data can
+ * be encoded into JSON notation for use in a client-side javascript, or
+ * decoded from incoming Javascript requests. JSON format is native to
+ * Javascript, and can be directly eval()'ed with no further parsing
+ * overhead
+ *
+ * All strings should be in ASCII or UTF-8 format!
+ *
+ * LICENSE: Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met: Redistributions of source code must retain the
+ * above copyright notice, this list of conditions and the following
+ * disclaimer. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ * @category
+ * @package Services_JSON
+ * @author Michal Migurski <mike-json@teczno.com>
+ * @author Matt Knapp <mdknapp[at]gmail[dot]com>
+ * @author Brett Stimmerman <brettstimmerman[at]gmail[dot]com>
+ * @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:
+ *
+ * <code>
+ * // 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);
+ * </code>
+ */
+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
--- /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 @@
+<?php
+function bfa_ata_add_admin() {
+ global $options, $bfa_ata;
+
+ if ( isset($_GET['page'])) {
+ if ( $_GET['page'] == "atahualpa-options" ) {
+
+ if ( isset($_REQUEST['action']) ) {
+ if ( 'save' == $_REQUEST['action'] ) {
+
+ foreach ($options as $value) {
+ if ( $value['category'] == $_REQUEST['category'] ) {
+ if ( isset($value['escape']) ) {
+ if( isset( $_REQUEST[ $value['id'] ] ) )
+ // Since 3.6.8 removed bfa_escape
+ //$bfa_ata[ $value['id'] ] = stripslashes(bfa_escape($_REQUEST[ $value['id'] ] ));
+ $bfa_ata[ $value['id'] ] = stripslashes($_REQUEST[ $value['id'] ]);
+ else
+ unset ($bfa_ata[ $value['id'] ]);
+ } elseif ( isset($value['stripslashes']) ) {
+ if ($value['stripslashes'] == "no") {
+ if( isset( $_REQUEST[ $value['id'] ] ) )
+ $bfa_ata[ $value['id'] ] = $_REQUEST[ $value['id'] ] ;
+ else
+ unset ($bfa_ata[ $value['id'] ]);
+ }
+ } else {
+ if( isset( $_REQUEST[ $value['id'] ] ) )
+ $bfa_ata[ $value['id'] ] = stripslashes($_REQUEST[ $value['id'] ] );
+ else
+ unset ($bfa_ata[ $value['id'] ]);
+ }
+ }
+ }
+ update_option('bfa_ata4', $bfa_ata);
+ header("Location: themes.php?page=atahualpa-options&saved=true");
+ die;
+
+ } else if( 'reset' == $_REQUEST['action'] ) {
+
+ if ("reset-all" == $_REQUEST['category']) {
+ delete_option('bfa_ata4');
+ } else {
+ foreach ($options as $value) {
+ if ( $value['category'] == $_REQUEST['category'] )
+ $bfa_ata[ $value['id'] ] = $value['std'];
+ }
+ update_option('bfa_ata4', $bfa_ata);
+ }
+
+ header("Location: themes.php?page=atahualpa-options&reset=true");
+ die;
+ }
+ }
+
+ }
+ }
+
+ $atapage = add_theme_page("Atahualpa Options", "Atahualpa Theme Options", 'edit_theme_options', 'atahualpa-options', 'bfa_ata_admin');
+ // Since 3.6.8:
+ add_action( "admin_print_styles-$atapage", 'bfa_ata_admin_enqueue' );
+}
+?>
\ No newline at end of file
--- /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 @@
+<?php
+function bfa_ata_admin() {
+ global $bfa_ata, $bfa_ata_version, $options;
+ $templateURI = get_template_directory_uri();
+
+ if ( isset($_REQUEST['saved']) ) echo '<div id="message" class="updated fade"><p><strong>Atahualpa settings saved.</strong></p></div>';
+ if ( isset($_REQUEST['reset']) ) echo '<div id="message" class="updated fade"><p><strong>Atahualpa settings reset.</strong></p></div>';
+?>
+<table width="100%" cellpadding="2" cellspacing="0"><tr><td valign="middle" width="380"><h2 style="margin:0 30px 0 0; padding: 5px 0 5px 0;">
+Atahualpa <?php echo $bfa_ata_version; ?></h2></td><td valign="middle">
+<iframe src="http://wordpress.bytesforall.com/update.php?theme=Atahualpa&version=<?php
+echo $bfa_ata_version; ?>" width="98%" height="40" scrolling="no" frameborder="0"></iframe></td>
+</tr></table>
+
+<div class="wrap" style="margin: 0 10px 0 0">
+
+<table>
+<tr>
+<td valign="top" width="200">
+
+<ul id="bfaoptiontabs" class="shadetabs">
+ <li><a href="#" rel="start-here" class="selected">START</a></li>
+
+ <strong>Export/Import Settings</strong>
+ <li><a href="#" rel="export-import">Export/Import Settings</a></li>
+
+ <strong>Search Engine Optimization</strong>
+ <li><a href="#" rel="seo">Configure SEO</a></li>
+
+ <strong>Overall Style & Config.</strong>
+ <li><a href="#" rel="body-font-links">Body, Text & Links</a></li>
+ <li><a href="#" rel="layout">Style & configure LAYOUT</a></li>
+
+ <strong>Image Locations</strong>
+ <li><a href="#" rel="image-location">Image Location</a></li>
+ <li><a href="#" rel="favicon">Add a FAVICON</a></li>
+
+ <strong>Header Area</strong>
+ <li><a href="#" rel="header">Style & edit HEADER AREA</a></li>
+ <li><a href="#" rel="header-image">Header Image</a></li>
+ <li><a href="#" rel="feed-links">RSS Settings</a></li>
+ <li><a href="#" rel="page-menu-bar">MENU 1 (Page Menu)</a></li>
+ <li><a href="#" rel="cat-menu-bar">MENU 2 (Category Menu)</a></li>
+
+ <strong>Center Column</strong>
+ <li><a href="#" rel="center">Style & edit CENTER COLUMN</a></li>
+ <li><a href="#" rel="next-prev-nav">Next/Previous Navigation</a></li>
+
+ <strong>Sidebars & Widgets</strong>
+ <li><a href="#" rel="sidebars">Style & configure SIDEBARS</a></li>
+ <li><a href="#" rel="widgets">Style WIDGETS</a></li>
+ <li><a href="#" rel="widget-areas">Add DYNAMIC WIDGET AREAS</a></li>
+
+ <strong>Post & Pages</strong>
+ <li><a href="#" rel="postinfos">Edit POST/PAGE INFO ITEMS</a></li>
+ <li><a href="#" rel="posts">Style POSTS & PAGES</a></li>
+ <li><a href="#" rel="posts-or-excerpts">Configure EXCERPTS</a></li>
+ <li><a href="#" rel="post-thumbnails">Post THUMBNAILS</a></li>
+ <li><a href="#" rel="more-tag">"Read More" tag</a></li>
+
+ <strong>Comments</strong>
+ <li><a href="#" rel="comments">Style & configure COMMENTS</a></li>
+
+ <strong>Footer</strong>
+ <li><a href="#" rel="footer-style">Style & edit FOOTER</a></li>
+
+ <strong>Various Content Items</strong>
+ <li><a href="#" rel="tables">Style TABLES</a></li>
+ <li><a href="#" rel="forms">Style FORMS</a></li>
+ <li><a href="#" rel="blockquotes">Style BLOCKQUOTES</a></li>
+ <li><a href="#" rel="images">Style IMAGES</a></li>
+ <li><a href="#" rel="html-inserts">Add HTML/CSS Inserts</a></li>
+
+ <strong>Archives Page</strong>
+ <li><a href="#" rel="archives-page">Create ARCHIVES PAGE</a></li>
+
+ <strong>CSS & Javascript</strong>
+ <li><a href="#" rel="css-javascript">Configure CSS & JS</a></li>
+</ul>
+
+</td>
+
+<td valign="top" width="100%">
+
+<div id="start-here" class="tabcontent">
+<!-- opening the first tab content div, first option should be start-here, in the options array above //-->
+<?php foreach ($options as $value) { // start the options loop, check first, if we need to switch to another tab = option category
+
+// open/close category tab divs . All categories except first category "start-here" get an opening form tag. "start-here" has no value "switch"
+if ( isset($value['switch'])) echo '</div><div id="'.$value['category'].'" class="tabcontent"><form method="post">';
+
+// extra info for some categories
+
+// "Postinfo" instructions
+if($value['category'] == "postinfos" AND isset($value['switch'])) { ?>
+ <div class="bfa-container">
+ <div class="bfa-container-full">
+ <img src="<?php echo $templateURI; ?>/options/images/post-structure.gif"
+ style="float: right; margin: 40px 0 15px 15px;">
+ <label for="Post Info Items">Post Info Items</label>
+ Configure a <strong>Kicker</strong>, a <strong>Byline</strong> and a <strong>Footer</strong>
+ for posts and pages by arranging these <strong>Post Info Items</strong>.
+ <br /><br />
+ Some of these post info items have one or several <strong>parameters</strong>:
+ <ul>
+ <li>
+ You can leave parameters empty but do not remove their single quotes, even if the parameter is empty.
+ </li>
+ <li>
+ Replace the parameter <code>delimiter</code> with what you want to put between the list
+ items of the tag or category list, i.e. a comma.
+ </li>
+ <li>
+ Replace the parameters <code>before</code> and <code>after</code> 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
+ <br />
+ <code>%tags-linked('<i>Tags: </i>', '<i>, </i>', '<i> - </i>')%</code>
+ <br />
+ instead of<br />
+ <code>Tags: %tags-linked('', '<i>, </i>', '')% - </code>
+ </li>
+ <li>
+ Replace the parameter <code>linktext</code> with the link text for that item.
+ </li>
+ </ul>
+ HTML and <strong>icons</strong> can be used, inside of parameters, too, just not inside the date item:
+ <ul>
+ <li>
+ <code><image(someimage.gif)></code> to include an image.
+ <em>Note: The image item doesn't have quotes</em>
+ </li>
+ <li>
+ To use your own images, upload them to /[theme-folder]/images/icons/
+ </li>
+ </ul>
+
+ <h3>Icons</h3>
+ <strong>Currently available images (Once you uploaded yours they will be listed here):</strong>
+ <br /><br />
+ <?php if ($handle = opendir( get_template_directory() . '/images/icons/')) {
+ while (false !== ($file = readdir($handle))) {
+ if ($file != "." && $file != "..") $files[] = $file;
+ }
+ closedir($handle);
+ }
+ sort($files);
+ foreach ($files as $key => $file) {
+ echo '<span style="float:left; width: 280px; margin-right: 10px; height: 22px;"><img src="' .
+ $templateURI . '/images/icons/'.$file.'" /> <code><image('.$file.')></code></span>';
+ } ?>
+
+ <div style="clear:left"> </div>
+ <h3>Examples</h3>
+ Examples for <strong>Post Bylines</strong>:
+ <ul>
+ <li><code>By %author%, on %date('<i>F jS, Y</i>')%</code></li>
+ <li><code><strong>%author-linked%</strong> posted this in <strong>%categories-linked('<i>, </i>')%
+ </strong> on <em>%date('<i>F jS, Y</i>')%</em></code></li>
+ <li><code><image(user.gif)> %author-linked% <image(date.gif)> %date('<i>l, jS #of F Y #a#t h:i:s A</i>')%</code></li>
+ </ul>
+ Examples for <strong>Post Footers</strong>:
+ <ul>
+ <li><code>%tags-linked('<i><strong>Tags:</strong> </i>', '<i>, </i>', '<i> &mdash; </i>')%
+ <strong>Categories:</strong> %categories-linked('<i>, </i>')% &mdash;
+ %comments('<i>Nobody has commented yet, kick it off...</i>', '<i>One comment so far</i>', '<i>% people had their say - be the next!</i>',
+ '<i>Sorry, but comments are closed</i>')% &mdash;
+ %wp-print% &mdash; %wp-email% &mdash; %sociable% &mdash; %wp-postviews%</code></li>
+ </ul>
+ <h3>Post Info Items</h3>
+ List of available post info items:
+ <hr><code>%author%</code> - Displays the value in the user's Display name publicly as field.
+ <hr><code>%modified-author%</code> - For <strong>WordPress 2.8</strong> and newer <strong>ONLY</strong>:
+ 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.
+ <hr><code>%author-description%</code> - Displays the contents of the About yourself field in an
+ author's profile (Administration > Profile > Your Profile).
+ <hr><code>%author-login%</code> - 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.
+ <hr><code>%author-firstname%</code> - 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).
+ <hr><code>%author-lastname%</code> - 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).
+ <hr><code>%author-nickname%</code> - Displays the nickname for the author of a post. The Nickname field
+ is set in the user's profile (Administration > Profile > Your Profile).
+ <hr><code>%author-id%</code> - Displays the unique numeric user ID for the author of a post; the ID is
+ assigned by WordPress when a user account is created.
+ <hr><code>%author-email-clear%</code> - 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 <code>%author-email%</code>.
+ <hr><code>%author-email%</code> - 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).
+ <hr><code>%author-url%</code> - 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).
+ <hr><code>%author-link%</code> - 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.
+ <hr><code>%author-posts-link%</code> - Displays a link to all posts by an author. The link text is the user's
+ Display name publicly as field.
+ <hr><code>%author-post-count%</code> - Displays the total number of posts an author has published. Drafts and
+ private posts aren't counted.
+ <hr><code>%author-aim%</code> - 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).
+ <hr><code>%author-yim%</code> - 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).
+ <hr><code>%date('F jS, Y')%</code> - Display the date and/or time the post was published at. Many configuration
+ options at <a href='http://www.php.net/date'>PHP Date</a>. Because most letters of the alphabet represent
+ a certain PHP date/time function, you need to <strong>escape</strong> each letter that you want to
+ display LITERALLY. To <strong>escape</strong> a letter, put a hash character <strong>#</strong> right before that letter.
+ (Note that this is different from the original "PHP way" of escaping with backslashes <code>\</code>. The theme
+ needs the hash character <code>#</code>). The hash will tell the theme that you mean the actual letter and not the
+ corresponding PHP date/time function.<br /><br />
+ <strong>How to escape literal letters</strong>
+ <ul>
+ <li>on -> <code>#o#n</code></li>
+ <li>of -> <code>#of</code> (Note how the the lowercase <strong>f</strong> didn't get a <code>#</code>.
+ That's because <strong>f</strong> is one of the letters of the alphabet that does <strong>not</strong> represent a
+ PHP date function)</li>
+ <li>at -> <code>#a#t</code></li>
+ <li>the -> <code>#t#h#e</code></li>
+ <li>The arrows just illustrate how to change a word to display it literally inside a date function, don't use them</li>
+ </ul>
+ <strong>Examples:</strong>
+ <ul>
+ <li><code>%date('<i>F j, Y, #a#t g:i a</i>')%</code> displays: December 10, 2008, at 5:16 pm <br />
+ Note how the letters <strong>a</strong> and <strong>t</strong> of the word <strong>at</strong> are
+ <strong>escaped</strong> with <code>#</code>
+ to display them literally instead of interpreting them as PHP date/time function.
+ </li>
+ <li><code>%date('<i>F j, Y, g:i a</i>')%</code> displays: December 10, 2008, 5:16 pm
+ </li>
+ <li><code>%date('<i>m.d.y</i>')%</code> displays: 10.12.08
+ </li>
+ </ul>
+ <hr>
+ <code>%date-modified('F jS, Y')%</code> - Same as above but displays the post's last modfied date instead of its creation date.
+ <hr><code>%tags-linked('before', 'delimiter', 'after')%</code> - Displays the tags associated with
+ the current post. The name of each tag will be linked to the relevant 'tag' page.
+ <br /><strong>Example:</strong> <code>%tags-linked('<i>Tagged with: </i>', '<i> - </i>', '<i>. </i>')%</code>
+ <hr><code>%tags-cats-linked('before', 'delimiter', 'after')%</code> - Same as above but if no tags
+ are associated with the current post, the associated category is displayed instead.
+ <br /><strong>Example:</strong> <code>%tags-linked('<i>Filed under: </i>', '<i> - </i>', '<i>. </i>')%</code>
+ <hr><code>%tags('before', 'delimiter', 'after')%</code> - Displays the tags associated with
+ the current post. Tags are not linked.
+ <br /><strong>Example:</strong> <code>%tags-linked('<i>Tags: </i>', '<i> - </i>', '<i>. </i>')%</code>
+ <hr><code>%category%</code> - Displays the name of the <strong>first</strong> category a post belongs to.
+ <hr><code>%category-linked%</code> - Displays a link to the <strong>first</strong> category a post belongs to.
+ <hr><code>%categories('delimiter')%</code> - Displays the names of all categories a post belongs to, separated
+ by delimiter.
+ <br /><strong>Example:</strong> <code>%categories('<i>, </i>')%</code>
+ <hr><code>%categories-linked('delimiter')%</code> - Displays links to all categories a post belongs to, separated
+ by delimiter.
+ <br /><strong>Example:</strong> <code>%categories-linked('<i> | </i>')%</code>
+ <hr><code>%comments('No comments', '1 comment', '% comments', 'Comments closed')%</code> - Displays a
+ link to the comment section of the post. The link text depends on the comment count & status (open/closed).
+ <br /><br />
+ <strong>When using this item, provide 4 text strings for the 4 possible comment states:</strong>
+ <ul>
+ <li>Replace <code>'No Comments'</code> with your link text for posts that have no comments yet</li>
+ <li>Replace <code>'1 comment'</code> with your text for posts with 1 comment</li>
+ <li>Replace <code>'% comments'</code> with your text for posts with 2 or more comments. The <code>%</code> (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.</li>
+ <li>Replace <code>'Comments closed'</code> 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')</li>
+ </ul>
+ <br /><strong>Example:</strong>
+ <code>%comments('<i>Leave your comment</i>', '<i>One comment so far</i>', '<i>% people had their say - chime in!</i>',
+ '<i>Sorry, but comments are closed</i>')%</code>
+ <br /><strong>Example 2:</strong> <code>%comments('<i>Comments</i>', '<i>Comments (1)</i>', '<i>Comments (%)</i>', '<i>dontshow</i>')%</code>
+ <br /><br />NOTE: On single post pages the <code>%comments('...')%</code> 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:<br />
+ <code><?php echo '<a href="'.bfa_getH().'comments">Skip to comments</a>'; ?></code> or <code><?php echo
+ '<a href="'.bfa_getH().'commentform">Skip to comments form</a>'; ?></code>
+ <hr><code>%comments-rss('linktext')%</code> - Displays the comment feed link for a post, with linktext as the link text.
+ <hr><code>%trackback%</code> - Displays the trackback URL for the current post.
+ <hr><code>%trackback-linked('linktext')%</code> - Displays a link to the trackback URL, with linktext as the link text.
+ <hr><code>%trackback-rdf%</code> - 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.
+ <hr><code>%permalink%</code> - Displays the URL for the permalink to the post.
+ <hr><code>%post-id%</code> - Displays the numeric ID of the post.
+ <hr><code>%post-title%</code> - Displays the title of the post.
+ <hr><code>%post-title-encoded%</code> - 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:<br />
+ <a href="..." title="<code><i>%post-title-encoded%</i></code>">
+ <hr><code>%edit('before', 'linktext', 'after')%</code> - Displays a direct edit link for the post, IF the current viewer
+ is permitted to edit posts, with <em>linktext</em> as the link text.
+ <br /><strong>Example:</strong> <code>%edit('<i> - </i>', '<i>Edit This Post</i>', '')%</code>
+ <hr><code>%print('linktext')%</code> - Displays a link with <em>linktext</em> 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.
+ <br /><strong>Example:</strong> <code>%print('<i>Print this Page</i>')%</code>
+ <hr><code>%wp-print%</code> - 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
+ <a href="http://wordpress.org/extend/plugins/wp-print/">WP-Print</a>.
+ After you installed this plugin, customize the output at the <a title="If this link doesn't work, go to 'Settings' (top right) -> 'Print'"
+ href="options-general.php?page=wp-print/print-options.php">WP-Print Options Page</a>.
+ <hr><code>%wp-email%</code> - Displays a link to a form where visitors can e-mail the post to others. Requires
+ the plugin <a href="http://wordpress.org/extend/plugins/wp-email/">WP-Email</a>.
+ After you installed this plugin, customize the output at the <a title="If this link doesn't work, click on 'E-Mail'
+ at the top of the current page, then 'E-Mail Options'" href="admin.php?page=wp-email/email-options.php">WP-Email Options Page</a>.<br />
+ <strong>Suggested settings:</strong>
+ <ul>
+ <li>Change settings in the section "E-Mail Styles" to customize the output of this item</li>
+ <li>Make other changes as you see fit</li>
+ <li>Click "Save Changes"</li>
+ </ul>
+ <hr><code>%wp-postviews%</code> - Displays how many times the post was viewed. Requires the plugin
+ <a href="http://wordpress.org/extend/plugins/wp-postviews/">WP-PostViews</a>.
+ After you installed this plugin, customize the output at the <a title="If this link doesn't work, go to 'Settings' (top right) -> 'Post Views'"
+ href="options-general.php?page=wp-postviews/postviews-options.php">WP-PostViews Options Page</a>.<br />
+ <strong>Suggested settings:</strong>
+ <ul>
+ <li>Change "Views Template" to customize the output of this item</li>
+ <li>Make other changes as you see fit</li>
+ <li>Click "Save Changes"</li>
+ </ul>
+ <hr><code>%wp-postratings%</code> - Displays stars or other graphics showing the vote/rating of a post, and lets visitors rate the post.
+ Requires the plugin <a href="http://wordpress.org/extend/plugins/wp-postratings/">WP-PostRatings</a>.
+ After you installed this plugin, customize the output at the <a title="If this link doesn't work, click on 'Ratings' at the top of the current page"
+ href="admin.php?page=wp-postratings/postratings-templates.php">WP-PostRatings Options Page</a>.<br />
+ <strong>Suggested settings:</strong>
+ <ul>
+ <li>Delete <code><br />%RATINGS_TEXT%</code> from the bottom of the textarea named "Ratings Vote Text:"</li>
+ <li>Delete <code><br />%RATINGS_TEXT%</code> from the bottom of the textarea named "Ratings None:"</li>
+ <li>Make other changes as you see fit</li>
+ <li>Click "Save Changes"</li>
+ </ul>
+ <hr><code>%sociable%</code> - Displays little icons, linking the post to social bookmark sites. Requires the plugin
+ <a href="http://wordpress.org/extend/plugins/sociable/">Sociable</a>. Customize the output at the
+ <a title="If this link doesn't work, go to 'Settings' (top right) -> 'Sociable'" href="options-general.php?page=Sociable">
+ Sociable Options Page</a>.<br />
+ <strong>Suggested settings:</strong>
+ <ul>
+ <li>"Tagline:" - Will be ignored</li><li>"Position:" - Uncheck all boxes</li><li>"Use CSS:" - Uncheck this</li>
+ <li>"Open in new window:" - Check or uncheck, will be used</li><li>Click "Save Changes"</li>
+ </ul>
+ <hr><code>%share-this%</code> - Displays little icons, linking the post to social bookmark sites. Requires the plugin
+ <a href="http://wordpress.org/extend/plugins/share-this/">Share This</a>.
+ <hr><code>%meta%</code> - Displays all custom fields and their values as unordered list
+ <ul><li>..</li><li>..</li></ul>
+ <hr><code>%meta('fieldname')%</code> - Displays the value of the custom field with the field name "fieldname".
+ <br /><strong>Example:</strong> <code>%meta('<i>price</i>')%</code>
+ <!--
+ <hr><code><?php echo "Hello world!"; ?></code> - In regular WordPress (but not in WPMU), you can use PHP code, too.
+ Write the PHP code in the usual way, with opening and closing PHP tags.
+ <br /><strong>Example:</strong>
+ <code><?php if ( is_page('17') ) { if ( function_exists('some_plugin_function') ) { some_plugin_function(); } } ?></code>
+ -->
+ </div>
+ </div>
+<?php } // End of "Postinfo" instructions
+
+
+
+#####################################################################
+# TEXT
+#####################################################################
+
+if ($value['type'] == "text") {
+
+ echo '<div class="bfa-container"><div class="bfa-container-left">
+ <label for="' . $value['id'] . '">' . $value['name'] . '</label><input ';
+
+ if ( isset($value['size']))
+ echo "size=" . $value['size'] . ($value['size'] > 20 ? ' style="width: 95%;"' : ' ');
+
+// Note: eregi() is depreciated in php 5.3
+// echo ( eregi("color", $value['id']) ? 'class="color" ' : '' ) .
+ echo ( preg_match("/"."color"."/i", $value['id']) ? 'class="color" ' : '' ) .
+ 'name="' . $value['id'] . '" id="' . $value['id'] . '" type="' . $value['type'] . '" value="';
+
+ if ( isset($bfa_ata[ $value['id'] ]) )
+ echo ( isset($value['editable']) ?
+ stripslashes(format_to_edit( $bfa_ata[ $value['id'] ] )) :
+ $bfa_ata[ $value['id'] ] );
+ else
+ echo ( isset($value['editable']) ?
+ stripslashes(format_to_edit($value['std'])) :
+ $value['std'] );
+
+ echo '" /><br />Default: <strong>';
+
+ if ($value['std'] == "")
+ echo "blank";
+ else
+ echo ( isset($value['editable']) ?
+ stripslashes(format_to_edit($value['std'])) :
+ $value['std'] );
+
+ echo '</strong></div><div class="bfa-container-right">' . $value['info'] . '</div>
+ <div style="clear:both"></div></div>';
+
+}
+
+
+
+#####################################################################
+# WIDGET LIST ITEMS
+#####################################################################
+
+elseif ($value['type'] == "widget-list-items") {
+
+# needed for multi array options
+$current_options = $bfa_ata[ $value['id'] ];
+?>
+<div class="bfa-container">
+ <div class="bfa-container-full">
+ <label for="<?php echo $value['name']; ?>"><?php echo $value['name']; ?></label>
+ <?php echo $value['info']; ?>
+ <br />
+ <br />
+ <table class="bfa-optiontable" border="0" cellspacing="0">
+ <thead>
+ <tr>
+ <td colspan="8">List items and links inside</td>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Left Margin for whole Item</td><td>Left Border Width for Links</td><td>Left Border Color for Links</td>
+ <td>Left Border Hover Color for Links</td><td>Left Padding for Links</td><td>Link Text Weight</td><td>Link Text Color</td>
+ <td>Link Text Hover Color</td></tr>
+ <tr>
+ <td>
+ <select name="<?php echo $value['id'] . '[li-margin-left]'; ?>" id="<?php echo $value['id'] . '[li-margin-left]'; ?>">
+ <?php for ($i = 0; $i <= 20; $i++) { ?>
+ <option<?php if ( $current_options['li-margin-left'] == $i) { echo ' selected="selected"'; }
+ elseif ( !isset($current_options['li-margin-left']) AND $i == $value['std']['li-margin-left']) {
+ echo ' selected="selected"'; } ?>><?php echo $i; ?></option>
+ <?php } ?>
+ </select>
+ </td>
+ <td>
+ <select name="<?php echo $value['id'] . '[link-border-left-width]'; ?>" id="<?php echo $value['id'] . '[link-border-left-width]'; ?>">
+ <?php for ($i = 0; $i <= 20; $i++) { ?>
+ <option<?php if ( $current_options['link-border-left-width'] == $i) { echo ' selected="selected"'; }
+ elseif ( !isset($current_options['link-border-left-width']) AND $i == $value['std']['link-border-left-width']) {
+ echo ' selected="selected"'; } ?>><?php echo $i; ?></option>
+ <?php } ?>
+ </select>
+ </td>
+ <td>
+ <input size="8" class="color" name="<?php echo $value['id'] . '[link-border-left-color]'; ?>" id="<?php echo $value['id'] .
+ '[link-border-left-color]'; ?>" type="text" value="<?php if ( $current_options['link-border-left-color'] != "") {
+ echo $current_options['link-border-left-color'] ; } else { echo $value['std']['link-border-left-color']; } ?>" />
+ </td>
+ <td>
+ <input size="8" class="color" name="<?php echo $value['id'] . '[link-border-left-hover-color]'; ?>" id="<?php echo $value['id'] .
+ '[link-border-left-hover-color]'; ?>" type="text" value="<?php if ( $current_options['link-border-left-hover-color'] != "") {
+ echo $current_options['link-border-left-hover-color'] ; } else { echo $value['std']['link-border-left-hover-color']; } ?>" />
+ </td>
+ <td>
+ <select name="<?php echo $value['id'] . '[link-padding-left]'; ?>" id="<?php echo $value['id'] . '[link-padding-left]'; ?>">
+ <?php for ($i = 0; $i <= 20; $i++) { ?>
+ <option<?php if ( $current_options['link-padding-left'] == $i) { echo ' selected="selected"'; }
+ elseif ( !isset($current_options['link-padding-left']) AND $i == $value['std']['link-padding-left']) {
+ echo ' selected="selected"'; } ?>><?php echo $i; ?></option>
+ <?php } ?>
+ </select>
+ </td>
+ <td>
+ <select name="<?php echo $value['id'] . '[link-weight]'; ?>" id="<?php echo $value['id'] . '[link-weight]'; ?>">
+ <?php foreach (array('normal', 'bold') as $option) { ?>
+ <option<?php if ( $current_options['link-weight'] == $option) { echo ' selected="selected"'; }
+ elseif ( !isset($current_options['link-weight']) AND $option == $value['std']['link-weight']) {
+ echo ' selected="selected"'; } ?>><?php echo $option; ?></option>
+ <?php } ?>
+ </select>
+ </td>
+ <td>
+ <input size="8" class="color" name="<?php echo $value['id'] . '[link-color]'; ?>" id="<?php echo $value['id'] .
+ '[link-color]'; ?>" type="text" value="<?php if ( $current_options['link-color'] != "") {
+ echo $current_options['link-color'] ; } else { echo $value['std']['link-color']; } ?>" />
+ </td>
+ <td>
+ <input size="8" class="color" name="<?php echo $value['id'] . '[link-hover-color]'; ?>" id="<?php echo $value['id'] .
+ '[link-hover-color]'; ?>" type="text" value="<?php if ( $current_options['link-hover-color'] != "") {
+ echo $current_options['link-hover-color'] ; } else { echo $value['std']['link-hover-color']; } ?>" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div style="clear:both"></div>
+ </div>
+</div>
+<?php }
+
+
+
+#####################################################################
+# DISPLAY ON
+#####################################################################
+
+elseif ($value['type'] == "displayon") {
+
+ # special for checkboxes, if checkbox is unchecked then there won't be any key/value pair for that checkbox in the options table.
+ if ( isset($bfa_ata[ $value['id'] ]))
+ $current_options = $bfa_ata[ $value['id'] ];
+ else
+ $current_options = $value['std'];
+
+ echo '<div class="bfa-container"><div class="bfa-container-left"><label for="' .
+ $value['name'] . '">' . $value['name'] . '</label>
+ <table align="right" class="bfa-optiontable" border="0" cellspacing="0" cellpadding="5">
+ <tbody><tr><td style="vertical-align: top">
+ <input type="checkbox" name="' . $value['id'] . '[homepage]" ' .
+ (isset($current_options['homepage']) ? 'checked="checked"' : '' ) . ' /> Homepage<br />
+ <input type="checkbox" name="' . $value['id'] . '[frontpage]" ' .
+ (isset($current_options['frontpage']) ? 'checked="checked"' : '' ) . ' /> Front Page (*)<br />
+ <input type="checkbox" name="' . $value['id'] . '[single]" ' .
+ (isset($current_options['single']) ? 'checked="checked"' : '' ) . ' /> Single Posts<br />
+ <input type="checkbox" name="' . $value['id'] . '[page]" ' .
+ (isset($current_options['page']) ? 'checked="checked"' : '' ) . ' /> "Page" pages<br />
+ <input type="checkbox" name="' . $value['id'] . '[category]" ' .
+ (isset($current_options['category']) ? 'checked="checked"' : '' ) . ' /> Category Pages<br />
+ <input type="checkbox" name="' . $value['id'] . '[date]" ' .
+ (isset($current_options['date']) ? 'checked="checked"' : '' ) . ' /> Archive Pages
+ </td><td style="vertical-align: top">
+ <input type="checkbox" name="' . $value['id'] . '[tag]" ' .
+ (isset($current_options['tag']) ? 'checked="checked"' : '' ) . ' /> Tag Pages<br />
+ <input type="checkbox" name="' . $value['id'] . '[taxonomy]" ' .
+ (isset($current_options['taxonomy']) ? 'checked="checked"' : '' ) . ' /> Cust.Tax. (**)<br />
+ <input type="checkbox" name="' . $value['id'] . '[search]" ' .
+ (isset($current_options['search']) ? 'checked="checked"' : '' ) . ' /> Search Results<br />
+ <input type="checkbox" name="' . $value['id'] . '[author]" ' .
+ (isset($current_options['author']) ? 'checked="checked"' : '' ) . ' /> Author Pages<br />
+ <input type="checkbox" name="' . $value['id'] . '[404]" ' .
+ (isset($current_options['404']) ? 'checked="checked"' : '' ) . ' /> "Not Found"<br />
+ <input type="checkbox" name="' . $value['id'] . '[attachment]" ' .
+ (isset($current_options['attachment']) ? 'checked="checked"' : '' ) . ' /> Attachments<br />
+ <input type="hidden" name="' . $value['id'] . '[check-if-saved-once]" value="saved">
+ </td></tr></tbody>
+ </table>
+ </div><div class="bfa-container-right">' . $value['info'] . '
+ </div><div style="clear:both"></div></div>';
+
+}
+
+
+
+#####################################################################
+# TEXTAREA
+#####################################################################
+
+elseif ($value['type'] == "textarea") {
+
+ echo '<div class="bfa-container clearfix">
+ <div class="bfa-container-left"><label for="' . $value['id'] . '">' .
+ $value['name'] . '</label><textarea name="' . $value['id'] . '" id="' .
+ $value['id'] . '" class="growing">';
+
+ if ( isset($bfa_ata[ $value['id'] ]) )
+ echo ( $value['editable'] == "yes" ?
+ stripslashes(format_to_edit( $bfa_ata[ $value['id'] ] )) :
+ $bfa_ata[ $value['id'] ] ) ;
+ else
+ echo ( $value['editable'] == "yes" ?
+ stripslashes(format_to_edit($value['std'])) :
+ $value['std'] );
+
+ echo '</textarea><br />Default: <strong>';
+
+ if ($value['std'] == "")
+ echo "blank";
+ else
+ echo "<br /><code>" . ( $value['editable'] == "yes" ?
+ str_replace("\n", "<br />", htmlentities($value['std'], ENT_QUOTES)) :
+ str_replace("\n", "<br />", $value['std']) ) . "</code>";
+
+ echo '</strong></div><div class="bfa-container-right">' . $value['info'] .
+ '</div><div style="clear:both"></div></div>';
+
+}
+
+
+
+#####################################################################
+# POSTINFOS & LARGE TEXTAREAS
+#####################################################################
+
+elseif ($value['type'] == "postinfos" OR $value['type'] == "textarea-large") {
+
+ echo '<div class="bfa-container">
+ <div class="bfa-container-full"><label for="' . $value['name'] . '">' .
+ $value['name'] . '</label>' . $value['info'].'<br /><div class="mooarea"><textarea name="' .
+# $value['id'] . '" id="' . $value['id'] . '" class="growing">';
+$value['id'] . '" id="' . $value['id'] . '" class="growing"
+cols="60" rows="1" style="overflow: hidden; height: 16px; line-height: 16px; ">';
+/*
+ if ( get_option( $value['id'] ) !== FALSE)
+ echo format_to_edit(get_option( $value['id'] ));
+ else
+ echo format_to_edit($value['std']);
+*/
+ if ( isset($bfa_ata[ $value['id'] ]) )
+ echo format_to_edit( $bfa_ata[ $value['id'] ] );
+ else
+ echo format_to_edit( $value['std'] );
+
+ echo "</textarea></div>Default: <strong>";
+
+ if ($value['std'] == "")
+ echo "blank";
+ else
+ echo format_to_edit( $value['std'] );
+
+ echo '</strong></div></div>';
+
+}
+
+
+
+#####################################################################
+# INFO
+#####################################################################
+
+elseif ($value['type'] == "info") {
+
+ echo '<div class="bfa-container"><div class="bfa-container-full">
+ <label for="' . $value['name'] . '">' . $value['name'] . '</label>' .
+ $value['info'] . '</div></div>';
+
+}
+
+
+
+#####################################################################
+# SELECT
+#####################################################################
+
+elseif ($value['type'] == "select") {
+
+ echo '<div class="bfa-container"><div class="bfa-container-left">
+ <label for="' . $value['name'] . '">' . $value['name'] . '</label>
+ <select name="' . $value['id'] . '" id="' . $value['id'] . '">';
+
+ foreach ($value['options'] as $option) {
+
+ echo '<option';
+
+ if ( $bfa_ata[ $value['id'] ] == $option)
+ echo ' selected="selected"';
+ elseif ( $bfa_ata[ $value['id'] ] == '' AND $option == $value['std'])
+ echo ' selected="selected"';
+
+ echo '>'.$option.'</option>';
+
+ }
+
+ echo '</select><br />Default: <strong>' .
+# changed in 3.3.4:
+# ( $value['std'] == "" ? "blank" : $value['std'] ) .
+ $value['std'] .
+ '</strong></div><div class="bfa-container-right">' . $value['info'] .
+ '</div><div style="clear:both"></div></div>';
+
+}
+
+
+
+#####################################################################
+# 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 '<div id="submit-container" class="bfa-container" style="background: none; border: none;">
+ <p class="submit">
+ <input class="save-tab" name="save" type="submit" value="" />
+ <input type="hidden" name="action" value="save" />
+ <input type="hidden" name="category" value="' . $value['category'] . '" />
+ <span style="font-weight: bold; font-size: 22px; color: #018301">Save settings of current page</span>
+ </p><br />
+ </form>
+ <form method="post">
+ <p class="submit">
+ <input class="reset-tab" name="reset" type="submit" value="" onClick="return confirmPageReset()" />
+ <input type="hidden" name="action" value="reset" />
+ <input type="hidden" name="category" value="' . $value['category'] . '" />
+ <span style="font-weight: bold; font-size: 13px; color: #ab0000">Reset settings of current page</span>
+ </p>
+ </form>
+ </div>';
+ }
+
+}
+
+// options loop END
+
+?>
+</div> <!-- closing the last tab content div //-->
+
+<!-- "reset all" button -->
+<br /><br />
+ <form method="post">
+ <p class="submit">
+ <input class="reset-all" name="reset" type="submit" value="Reset ALL theme options" onClick="return confirmSubmit()"/>
+ <input type="hidden" name="action" value="reset" />
+ <input type="hidden" name="category" value="reset-all" /><br />
+ <span style="color: #c00;"><strong>WARNING</strong> - this will reset ALL 200+ theme options!</span><br />Clicking this button will...<br />
+ (1) remove all Atahualpa options from the WordPress options table<br />
+ (2) reset all Atahualpa options to the default values<br />
+ </p>
+ </form>
+
+</td>
+</tr>
+</table>
+
+</div><!-- / class=wrap -->
+
+
+<?php
+}
+?>
\ No newline at end of file
--- /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 @@
+<?php
+function bfa_widget_calendar($args) {
+ extract($args);
+ $options = get_option('bfa_widget_calendar');
+ $title = apply_filters('widget_title', $options['title']);
+ echo $before_widget;
+ if ( !empty($title) ) { echo $before_title . $title . $after_title; }
+ echo '<div id="calendar_wrap">'; get_calendar(); echo '</div>';
+ if ( !empty( $title ) ) { echo $after_widget; } else { echo "</div>"; }
+}
+ // 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
--- /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 @@
+<?php
+function bfa_ata_admin_enqueue($hook) {
+
+ $url = get_template_directory_uri() ;
+ wp_enqueue_script( 'jscolor', "$url/options/jscolor/jscolor.js", false, '1.0.8' );
+ wp_enqueue_script( 'ajaxupload', "$url/js/ajaxupload.js", false, '3.6' );
+ wp_enqueue_script( 'mootools', "$url/options/mootools-for-textarea.js", false, '1.2.1' );
+ wp_enqueue_script( 'uvumi-textarea', "$url/options/UvumiTextarea-compressed.js", array( 'mootools' ), '1.1.0' );
+ wp_enqueue_script( 'ata-admin', "$url/options/ata-admin.js", array( 'jquery' ), '2011-06-10' );
+
+ wp_enqueue_style( 'ata-admin', "$url/options/ata-admin.css", false, '2011-04-28' );
+ wp_enqueue_style( 'uvumi-textarea', "$url/options/uvumi-textarea.css", false, '2011-04-28' );
+}
+
+
+function bfa_add_stuff_admin_head() {
+ $templateURI = get_template_directory_uri();
+ $homeURL = get_home_url();
+ if ( isset($_GET['page'])) {
+ if ( strpos( $_GET['page'], "atahualpa-" ) === 0 ) {
+ // Create a WP nonce for the Ajax action later on
+ $nonce = wp_create_nonce( 'reset_widget_areas' );
+ $nonce2 = wp_create_nonce( 'delete_bfa_ata4' );
+ $nonce3 = wp_create_nonce( 'import_settings' );
+ echo "<script type='text/javascript'>var nonce = '$nonce'; var nonce2 = '$nonce2'; var nonce3 = '$nonce3';</script>";
+ }
+ }
+}
+?>
\ No newline at end of file
--- /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 @@
+<?php
+function bfa_comments($comment, $args, $depth) {
+
+global $bfa_ata, $post;
+
+ $GLOBALS['comment'] = $comment; ?>
+ <li <?php comment_class($class='clearfix') ?> id="comment-<?php comment_ID(); ?>">
+ <div id="div-comment-<?php comment_ID(); ?>" class="clearfix comment-container<?php
+ $comment = get_comment($comment_id);
+ if ( $comment->user_id === $post->post_author )
+ echo ' bypostauthor';
+ ?>">
+ <div class="comment-author vcard">
+ <?php if ($args['avatar_size'] != 0) echo get_avatar( $comment, $args['avatar_size'] ); ?>
+ <span class="authorname"><?php comment_author_link(); ?></span>
+ </div>
+ <?php if ($comment->comment_approved == '0') : ?>
+ <em><?php echo $bfa_ata['comment_moderation_text']; ?></em><br />
+ <?php endif; ?>
+ <div class="comment-meta commentmetadata">
+ <a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>">
+ <?php printf(__('%1$s at %2$s','atahualpa'), get_comment_date(), get_comment_time()) ?></a>
+ <?php echo comment_reply_link(array('before' => '<span class="comment-reply-link">', 'after' => '</span>', 'reply_text' => $bfa_ata['comment_reply_link_text'], 'depth' => $depth, 'max_depth' => $args['max_depth'] )); ?>
+ <?php edit_comment_link($bfa_ata['comment_edit_link_text'],'<span class="comment-edit-link">','</span>') ?>
+ </div>
+ <?php comment_text() ?>
+ </div>
+<?php } ?>
\ No newline at end of file
--- /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 @@
+<?php
+
+function bfa_footer_page_links($matches) {
+ $page_id = $matches[1];
+ $page_data = get_page($page_id, ARRAY_A);
+ $page_title = $page_data['post_title'];
+ $page_url = get_permalink($page_id);
+ return '<a href="' . $page_url . '">' . $page_title . '</a>';
+}
+
+
+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 '<a href="' . $homeURL . '/">'; bloginfo('name'); echo '</a>';
+ $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('<li>', '</li>'), '', $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('<li>', '</li>'), '', $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
--- /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 @@
+<?php if (!function_exists('bfa_get_options')) {
+ function bfa_get_options() {
+ global $options, $bfa_ata;
+
+ if (get_option('bfa_ata4') === FALSE) {
+
+ // 268 Old ATA 3.X options:
+ $bfa_ata3 = array(
+ "start_here",
+ "import_settings",
+ "use_bfa_seo",
+ "homepage_meta_description",
+ "homepage_meta_keywords",
+ "add_blogtitle",
+ "title_separator_code",
+ "archive_noindex",
+ "cat_noindex",
+ "tag_noindex",
+ "h1_on_single_pages",
+ "nofollow",
+ "body_style",
+ "link_color",
+ "link_hover_color",
+ "link_default_decoration",
+ "link_hover_decoration",
+ "link_weight",
+ "layout_width",
+ "layout_min_width",
+ "layout_max_width",
+ "layout_style",
+ "layout_style_leftright_padding",
+ "favicon_file",
+ "configure_header",
+ "logoarea_style",
+ "logo",
+ "logo_style",
+ "blog_title_show",
+ "blog_title_style",
+ "blog_title_weight",
+ "blog_title_color",
+ "blog_title_color_hover",
+ "blog_tagline_show",
+ "blog_tagline_style",
+ "show_search_box",
+ "searchbox_style",
+ "searchbox_text",
+ "horbar1",
+ "horbar2",
+ "header_image_info",
+ "header_image_javascript",
+ "header_image_javascript_preload",
+ "header_image_clickable",
+ "headerimage_height",
+ "headerimage_alignment",
+ "header_opacity_left",
+ "header_opacity_left_width",
+ "header_opacity_left_color",
+ "header_opacity_right",
+ "header_opacity_right_width",
+ "header_opacity_right_color",
+ "overlay_blog_title",
+ "overlay_blog_tagline",
+ "overlay_box_style",
+ "rss_settings_info" ,
+ "rss_box_width",
+ "show_posts_icon",
+ "post_feed_link",
+ "post_feed_link_title",
+ "show_comments_icon",
+ "comment_feed_link",
+ "comment_feed_link_title",
+ "show_email_icon",
+ "email_subscribe_link",
+ "email_subscribe_link_title",
+ "feedburner_email_id",
+ "feedburner_old_new",
+ "animate_page_menu_bar",
+ "home_page_menu_bar",
+ "exclude_page_menu_bar",
+ "levels_page_menu_bar",
+ "sorting_page_menu_bar",
+ "titles_page_menu_bar",
+ "page_menu_1st_level_not_linked",
+ "anchor_border_page_menu_bar",
+ "page_menu_bar_background_color",
+ "page_menu_bar_background_color_hover",
+ "page_menu_bar_background_color_parent",
+ "page_menu_font",
+ "page_menu_bar_link_color",
+ "page_menu_bar_link_color_hover",
+ "page_menu_transform",
+ "page_menu_arrows",
+ "page_menu_submenu_width",
+ "animate_cat_menu_bar",
+ "home_cat_menu_bar",
+ "exclude_cat_menu_bar",
+ "levels_cat_menu_bar",
+ "sorting_cat_menu_bar",
+ "order_cat_menu_bar",
+ "titles_cat_menu_bar",
+ "add_descr_cat_menu_links",
+ "default_cat_descr_text",
+ "anchor_border_cat_menu_bar",
+ "cat_menu_bar_background_color",
+ "cat_menu_bar_background_color_hover",
+ "cat_menu_bar_background_color_parent",
+ "cat_menu_font",
+ "cat_menu_bar_link_color",
+ "cat_menu_bar_link_color_hover",
+ "cat_menu_transform",
+ "cat_menu_arrows",
+ "cat_menu_submenu_width",
+ "center_column_style",
+ "content_above_loop",
+ "content_inside_loop",
+ "content_below_loop",
+ "content_not_found",
+ "next_prev_orientation",
+ "home_multi_next_prev",
+ "home_single_next_prev",
+ "multi_next_prev_newer",
+ "multi_next_prev_older",
+ "single_next_prev_newer",
+ "single_next_prev_older",
+ "comments_next_prev_newer",
+ "comments_next_prev_older",
+ "location_comments_next_prev",
+ "next_prev_style_comments_above",
+ "next_prev_style_comments_below",
+ "next_prev_comments_pagination",
+ "location_multi_next_prev",
+ "location_single_next_prev",
+ "next_prev_style_top",
+ "next_prev_style_middle",
+ "next_prev_style_bottom",
+ "leftcol_on",
+ "left_col_pages_exclude",
+ "left_col_cats_exclude",
+ "leftcol2_on",
+ "left_col2_pages_exclude",
+ "left_col2_cats_exclude",
+ "rightcol_on",
+ "right_col_pages_exclude",
+ "right_col_cats_exclude",
+ "rightcol2_on",
+ // legacy "ight_col2" besides "right_col2" due to typo in "bfa_theme_options.php" in ATA 3.4.6
+ "ight_col2_pages_exclude",
+ "right_col2_pages_exclude",
+ //
+ "right_col2_cats_exclude",
+ "left_sidebar_width",
+ "left_sidebar2_width",
+ "right_sidebar_width",
+ "right_sidebar2_width",
+ "left_sidebar_style",
+ "left_sidebar2_style",
+ "right_sidebar_style",
+ "right_sidebar2_style",
+ "widget_container",
+ "widget_title_box",
+ "widget_title",
+ "widget_content",
+ "widget_lists",
+ "widget_lists2",
+ "widget_lists3",
+ "category_widget_display_type",
+ "select_font_size",
+ "widget_areas_reset",
+ "widget_areas_info",
+ "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",
+ "post_footer_multi",
+ "post_footer_single",
+ "post_footer_page",
+ "post_container_style",
+ "post_container_sticky_style",
+ "post_kicker_style",
+ "post_kicker_style_links",
+ "post_kicker_style_links_hover",
+ "post_headline_style",
+ "post_headline_style_text",
+ "post_headline_style_links",
+ "post_headline_style_links_hover",
+ "post_byline_style",
+ "post_byline_style_links",
+ "post_byline_style_links_hover",
+ "post_bodycopy_style",
+ "post_footer_style",
+ "post_footer_style_links",
+ "post_footer_style_links_hover",
+ "excerpt_length",
+ "dont_strip_excerpts",
+ "custom_read_more",
+ "excerpts_home",
+ "full_posts_homepage",
+ "excerpts_category",
+ "excerpts_archive",
+ "excerpts_tag",
+ "excerpts_search",
+ "excerpts_author",
+ "post_thumbnail_width",
+ "post_thumbnail_height",
+ "post_thumbnail_crop",
+ "post_thumbnail_css",
+ "more_tag",
+ "author_highlight",
+ "author_highlight_color",
+ "author_highlight_border_color",
+ "comment_background_color",
+ "comment_alt_background_color",
+ "comment_border",
+ "comment_author_size",
+ "comment_reply_link_text",
+ "comment_edit_link_text",
+ "comment_moderation_text",
+ "comments_are_closed_text",
+ "comments_on_pages",
+ "separate_trackback",
+ "avatar_size",
+ "avatar_style",
+ "show_xhtml_tags",
+ "comment_form_style",
+ "submit_button_style",
+ "comment_display_order",
+ "footer_style",
+ "footer_style_links",
+ "footer_style_links_hover",
+ "footer_style_content",
+ "sticky_layout_footer",
+ "footer_show_queries",
+ "table",
+ "table_caption",
+ "table_th",
+ "table_td",
+ "table_tfoot_td",
+ "table_zebra_stripes",
+ "table_zebra_td",
+ "table_hover_rows",
+ "table_hover_td",
+ "form_input_field_style",
+ "form_input_field_background",
+ "highlight_forms",
+ "highlight_forms_style",
+ "button_style",
+ "button_style_hover",
+ "blockquote_style",
+ "blockquote_style_2nd_level",
+ "post_image_style",
+ "post_image_caption_style",
+ "image_caption_text",
+ "html_inserts_header",
+ "html_inserts_body_tag",
+ "html_inserts_body_top",
+ "html_inserts_body_bottom",
+ "html_inserts_css",
+ "archives_page_id",
+ "archives_date_show",
+ "archives_date_title",
+ "archives_date_type",
+ "archives_date_limit",
+ "archives_date_count",
+ "archives_category_show",
+ "archives_category_title",
+ "archives_category_count",
+ "archives_category_depth",
+ "archives_category_orderby",
+ "archives_category_order",
+ "archives_category_feed",
+ "css_external",
+ "javascript_external",
+ "pngfix_selectors",
+ "css_compress",
+ "allow_debug",
+ "IEDocType",
+ "ata_images_dir",
+ "overlay_header_image",
+ "widget_center_top",
+ "widget_center_bottom",
+ "images_root",
+ "full_width_header",
+ "full_width_footer"
+ );
+
+ // If no old settings exit, use the new 'default' style
+ $old_setting_exists = 'no';
+
+ foreach ($bfa_ata3 as $old_option) {
+ if (get_option( 'bfa_ata_' . $old_option ) !== FALSE )
+ $old_setting_exists = 'yes';
+ }
+
+
+ // Separate option bfa_widget_areas
+ if (get_option('bfa_widget_areas') !== FALSE) {
+ $all_old_widget_areas = get_option('bfa_widget_areas');
+ foreach ( $all_old_widget_areas as $old_widget_area) {
+ if ( isset($old_widget_area) )
+ $old_setting_exists = 'yes';
+ }
+ }
+ // bfa_toArray: turn object into array for PHP < 5.1 - included JSON.php does not return array with ,TRUE
+ $templateURL = get_template_directory_uri();
+ $default_options = '{"page_post_options":"No","use_bfa_seo":"No","homepage_meta_description":"","homepage_meta_keywords":"","add_blogtitle":"Page Title - Blog Title","title_separator_code":"1","archive_noindex":"No","cat_noindex":"No","tag_noindex":"No","h1_on_single_pages":"Yes","nofollow":"No","body_style":"font-family: tahoma, arial, sans-serif;\r\nfont-size: 0.8em;\r\ncolor: #000000;\r\nbackground: #ffffff;","link_color":"666666","link_hover_color":"CC0000","link_default_decoration":"none","link_hover_decoration":"underline","link_weight":"bold","layout_width":"99%","layout_min_width":"","layout_max_width":"","layout_style":"padding: 0;","layout_style_leftright_padding":"0","IEDocType":"None","images_root":"atahualpa","ata_images_dir":"ata-images","favicon_file":"","configure_header":"%pages %logo %bar1 %image %bar2","full_width_header":"No","logoarea_style":"","logo":"logo.png","logo_style":"margin: 0 10px 0 0;","blog_title_show":"Yes","blog_title_style":"margin: 0;\npadding: 0;\nletter-spacing: -1px;\nline-height: 1.0em;\nfont-family: tahoma, arial, sans-serif;\nfont-size: 240%;","blog_title_weight":"bold","blog_title_color":"666666","blog_title_color_hover":"000000","blog_tagline_show":"Yes","blog_tagline_style":"margin: 0;\npadding: 0;\nfont-size: 1.2em;\nfont-weight: bold;\ncolor: #666666;","show_search_box":"Yes","searchbox_style":"border: 1px dashed #cccccc;\nborder-bottom: 0;\nwidth: 200px;\nmargin: 0;\npadding: 0;","searchbox_text":"","horbar1":"height: 5px;\nbackground: #ffffff;\nborder-top: dashed 1px #cccccc;","horbar2":"height: 5px;\nbackground: #ffffff;\nborder-bottom: dashed 1px #cccccc;","header_image_javascript":"0","header_image_sort_or_shuffle":"Sort","crossslide_fade":"0","header_image_javascript_preload":"Yes","header_image_clickable":"No","headerimage_height":"150","headerimage_alignment":"top center","header_opacity_left":"40","header_opacity_left_width":"200","header_opacity_left_color":"FFFFFF","header_opacity_right":"40","header_opacity_right_width":"200","header_opacity_right_color":"FFFFFF","overlay_blog_title":"No","overlay_blog_tagline":"No","overlay_box_style":"margin-top: 30px;\r\nmargin-left: 30px;","overlay_header_image":"","rss_box_width":"280","show_posts_icon":"Yes","post_feed_link":"Posts","post_feed_link_title":"Subscribe to the POSTS feed","show_comments_icon":"Yes","comment_feed_link":"Comments","comment_feed_link_title":"Subscribe to the COMMENTS feed","show_email_icon":"No","email_subscribe_link":"By Email","email_subscribe_link_title":"Subscribe by EMAIL","feedburner_email_id":"","feedburner_old_new":"New - at feedburner.google.com","animate_page_menu_bar":"No","home_page_menu_bar":"Home","exclude_page_menu_bar":"","levels_page_menu_bar":"0","sorting_page_menu_bar":"menu_order","titles_page_menu_bar":"No","page_menu_1st_level_not_linked":"No","anchor_border_page_menu_bar":"dashed 1px #cccccc","page_menu_bar_background_color":"FFFFFF","page_menu_bar_background_color_hover":"EEEEEE","page_menu_bar_background_color_parent":"DDDDDD","page_menu_font":"11px Arial, Verdana, sans-serif","page_menu_bar_link_color":"777777","page_menu_bar_link_color_hover":"000000","page_menu_transform":"uppercase","page_menu_arrows":"black","page_menu_submenu_width":"11","animate_cat_menu_bar":"No","home_cat_menu_bar":"","exclude_cat_menu_bar":"","levels_cat_menu_bar":"0","sorting_cat_menu_bar":"ID","order_cat_menu_bar":"ASC","titles_cat_menu_bar":"No","add_descr_cat_menu_links":"No","default_cat_descr_text":"View all posts filed under<br \/>%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":"<p>","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":"<p>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
--- /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 @@
+<?php
+function bfa_header_config() {
+
+ global $bfa_ata, $post;
+ $templateURI = get_template_directory_uri();
+ $homeURL = get_home_url();
+
+ // Since 3.6: bfa_header_config() instead of bfa_header_config($header_items)
+ $header_items = $bfa_ata['configure_header'];
+
+ $page_menu_bar = ''; $cat_menu_bar = ''; $logo_area = '';
+ $header_image = ''; $horizontal_bar1 = ''; $horizontal_bar2 = '';
+
+ // Page Menu Bar
+ if ( strpos($header_items,'%pages') !== FALSE OR strpos($header_items,'%page-center') !== FALSE
+ OR strpos($header_items,'%page-right') !== FALSE ) {
+
+ // Since 3.5.2: New WP 3 menu system:
+ if ( has_nav_menu('menu1') )
+ {
+ if ( strpos($header_items,'%pages') !== FALSE )
+ $alignment = "left";
+ elseif ( strpos($header_items,'%page-center') !== FALSE )
+ $alignment = "center";
+ else
+ $alignment = "right";
+ $page_menu_bar = bfa_new_wp3_menus("menu1", $alignment );
+ }
+
+ // Old custom Atahualpa menu system:
+ else
+ {
+ ob_start();
+ echo '<div id="menu1">';
+
+ // Left, Right or Centered
+ if ( strpos($header_items,"%page-right") !== FALSE )
+ echo '<ul id="rmenu2" class="dropdown clearfix rMenu-hor rMenu-hRight rMenu">' . "\n";
+ elseif ( strpos($header_items,"%page-center") !== FALSE )
+ echo '<table cellpadding="0" cellspacing="0" style="margin: 0 auto"><tr><td align="center">
+ <ul id="rmenu2" class="clearfix rMenu-hor rMenu">' . "\n";
+ else
+ echo '<ul id="rmenu2" class="clearfix rMenu-hor rMenu">' . "\n";
+
+ // "Home" Link?
+ if ( $bfa_ata['home_page_menu_bar'] != '' )
+ {
+ echo '<li class="page_item';
+ if ( is_front_page() OR is_home() ) {
+ echo ' current_page_item';
+ }
+ echo '"><a href="' . $homeURL . '/" title="'; bloginfo('name'); echo '"><span>' .
+ $bfa_ata['home_page_menu_bar'] . '</span></a></li>' . "\n";
+ }
+
+ // Empty setting "levels" same as 0
+ if ( $bfa_ata['levels_page_menu_bar'] == '' )
+ $bfa_ata['levels_page_menu_bar'] = 0;
+
+ echo bfa_hor_pages($bfa_ata['sorting_page_menu_bar'], $bfa_ata['levels_page_menu_bar'],
+ $bfa_ata['titles_page_menu_bar'], $bfa_ata['exclude_page_menu_bar']);
+
+ // Close table if centered
+ if ( strpos($header_items,"%page-center") !== FALSE )
+ echo '</ul></td></tr></table></div>' . "\n";
+ else
+ echo '</ul></div>' . "\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 '<div id="menu2">';
+
+ if ( strpos($header_items,"%cat-right") !== FALSE )
+ echo '<ul id="rmenu" class="dropdown clearfix rMenu-hor rMenu-hRight rMenu">' . "\n";
+ elseif ( strpos($header_items,"%cat-center") !== FALSE )
+ echo '<table cellpadding="0" cellspacing="0" style="margin: 0 auto"><tr><td align="center">
+ <ul id="rmenu" class="clearfix rMenu-hor rMenu">' . "\n";
+ else
+ echo '<ul id="rmenu" class="clearfix rMenu-hor rMenu">' . "\n";
+
+ // Home Link?
+ if ( $bfa_ata['home_cat_menu_bar'] != '' )
+ {
+ echo '<li class="cat-item';
+ if ( is_front_page() OR is_home() )
+ echo ' current-cat';
+ echo '"><a href="' . $homeURL . '/" title="'; bloginfo('name'); echo '">' .
+ $bfa_ata['home_cat_menu_bar'] . '</a></li>' . "\n";
+ }
+
+ // Empty setting "levels" same as 0
+ if ( $bfa_ata['levels_cat_menu_bar'] == '' )
+ $bfa_ata['levels_cat_menu_bar'] = 0;
+
+ // Create menu list
+ echo bfa_hor_cats($bfa_ata['sorting_cat_menu_bar'], $bfa_ata['order_cat_menu_bar'],
+ $bfa_ata['levels_cat_menu_bar'], $bfa_ata['titles_cat_menu_bar'], $bfa_ata['exclude_cat_menu_bar']);
+
+ // Close table if centered
+ if ( strpos($header_items,"%cat-center") !== FALSE )
+ echo '</ul></td></tr></table></div>' . "\n";
+ else
+ echo '</ul></div>' . "\n";
+
+ $cat_menu_bar = ob_get_contents();
+ ob_end_clean();
+ }
+ }
+
+ // Logo Area
+ if ( strpos($header_items,'%logo') !== FALSE ) {
+
+ ob_start();
+ echo '<table id="logoarea" cellpadding="0" cellspacing="0" border="0" width="100%"><tr>';
+
+ 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 '<td ' . $header_rowspan . 'valign="middle" class="logoarea-logo"><a href="'
+ . $homeURL . '/">';
+ echo '<img class="logo" src="'.$logo . '" alt="';
+ bloginfo('name');
+ echo '" /></a></td>';
+ }
+
+
+ // Blog title and description
+ if ( $bfa_ata['blog_title_show'] == "Yes" OR $bfa_ata['blog_tagline_show'] == "Yes" ) {
+
+ echo '<td ' . $header_rowspan . 'valign="middle" class="logoarea-title">';
+
+ if ( $bfa_ata['blog_title_show'] == "Yes" ) {
+ echo '<h' . $bfa_ata['h_blogtitle'] . ' class="blogtitle"><a href="'
+ . $homeURL . '/">'; bloginfo('name'); echo '</a></h' . $bfa_ata['h_blogtitle'] . '>';
+ }
+
+ if ( $bfa_ata['blog_tagline_show'] == "Yes" ) {
+ echo '<p class="tagline">'; bloginfo('description'); echo '</p>';
+ }
+
+ echo '</td>';
+ }
+
+ // 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 '<td class="feed-icons" valign="middle" align="right"><div class="clearfix rss-box">';
+
+ // COMMENT Feed link
+ if ( $bfa_ata['show_comments_icon'] == "Yes" ) {
+
+ echo '<a class="comments-icon" ';
+
+ if ( $bfa_ata['nofollow'] == "Yes" )
+ echo 'rel="nofollow" ';
+
+ echo 'href="'; bloginfo('comments_rss2_url'); echo '" title="' .
+ $bfa_ata['comment_feed_link_title'] . '">' . $bfa_ata['comment_feed_link'] . '</a>';
+ }
+
+ // Feedburner Email link
+ if ( $bfa_ata['show_email_icon'] == "Yes" ) {
+
+ echo '<a class="email-icon" ';
+
+ if ( $bfa_ata['nofollow'] == "Yes" )
+ echo 'rel="nofollow" ';
+
+ echo 'href="http://' . ($bfa_ata['feedburner_old_new'] == 'New - at feedburner.google.com' ?
+ 'feedburner.google.com/fb/a/mailverify?uri=' : 'www.feedburner.com/fb/a/emailverifySubmit?feedId=') .
+ $bfa_ata['feedburner_email_id'] . '&loc=' . get_locale() . '" title="' .
+ $bfa_ata['email_subscribe_link_title'] . '">' . $bfa_ata['email_subscribe_link'] . '</a>';
+ }
+
+ // POSTS Feed link
+ if ( $bfa_ata['show_posts_icon'] == "Yes" )
+ {
+ echo '<a class="posts-icon" ';
+
+ if ( $bfa_ata['nofollow'] == "Yes" )
+ echo 'rel="nofollow" ';
+
+ echo 'href="'; bloginfo('rss2_url'); echo '" title="' .
+ $bfa_ata['post_feed_link_title'] . '">' .
+ $bfa_ata['post_feed_link'] . '</a>';
+ }
+
+ if ( $bfa_ata['show_posts_icon'] == "Yes" OR $bfa_ata['show_email_icon'] == "Yes" OR
+ $bfa_ata['show_comments_icon'] == "Yes" ) {
+ echo '</div></td>';
+ if ( $bfa_ata['show_search_box'] == "Yes" )
+ echo '</tr><tr>';
+ }
+
+ // Search box
+ if ( $bfa_ata['show_search_box'] == "Yes" )
+ {
+ echo '<td valign="bottom" class="search-box" align="right"><div class="searchbox">
+ <form method="get" class="searchform" action="' . $homeURL . '/">
+ <div class="searchbox-form">' .
+ // Since 3.6.8: Removed check whether get_search_query() exists and added esc_js
+ '<input type="text" class="text inputblur" onfocus="this.value=\'' .
+ ( get_search_query() ? esc_js(get_search_query()) : '' ) . '\'"
+ value="' . ( get_search_query() ? esc_js(get_search_query()) : esc_attr($bfa_ata['searchbox_text']) ) .
+ '" onblur="this.value=\'' . ( get_search_query() ? esc_js(get_search_query()) :
+ esc_attr($bfa_ata['searchbox_text']) ) . '\'" name="s" />' .
+ '</div>
+ </form>
+ </div>
+ </td>';
+ }
+
+ echo '</tr></table>';
+ $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 '<div id="imagecontainer-pre" class="header-image-container-pre">';
+
+ echo ' <div id="imagecontainer" class="header-image-container" style="background: url(' .
+ $bfa_header_images[array_rand($bfa_header_images)] . ') ' . $bfa_ata['headerimage_alignment'] .
+ ' no-repeat;">';
+ echo '</div>';
+ if ( $bfa_ata['header_image_clickable'] == "Yes" ) {
+ echo '<div class="clickable"><a class="divclick" title="';
+ bloginfo('name'); echo '" href ="' . $homeURL . '/"> </a></div>';
+ }
+
+ // 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,'<?php ') !== FALSE ) {
+ ob_start();
+ bfa_incl('overlay_header_image');
+ $overlay_image_code = ob_get_contents();
+ ob_end_clean();
+ }
+
+ echo '<div class="codeoverlay">';
+ echo $overlay_image_code;
+ echo '</div>';
+ }
+
+ if ( $bfa_ata['header_opacity_left'] != 0 AND $bfa_ata['header_opacity_left'] != '' )
+ echo '<div class="opacityleft"> </div>';
+
+ if ( $bfa_ata['header_opacity_right'] != 0 AND $bfa_ata['header_opacity_right'] != '' )
+ echo '<div class="opacityright"> </div>';
+ // END: If Header Opacity
+
+ if ( $bfa_ata['overlay_blog_title'] == "Yes" OR $bfa_ata['overlay_blog_tagline'] == "Yes" )
+ {
+ echo '<div class="titleoverlay">';
+
+ if ( $bfa_ata['overlay_blog_title'] == "Yes" ) {
+ echo '<h' . $bfa_ata['h_blogtitle'] . ' class="blogtitle"><a href="' . $homeURL . '/">';
+ bloginfo('name'); echo '</a></h' . $bfa_ata['h_blogtitle'] . '>';
+ }
+
+ if ( $bfa_ata['overlay_blog_tagline'] == "Yes" ) {
+ echo '<p class="tagline">'; bloginfo('description'); echo '</p>';
+ }
+ echo '</div>';
+ }
+
+ echo '</div>';
+ $header_image = ob_get_contents();
+ ob_end_clean();
+ }
+
+ // Horizontal bar 1
+ if ( strpos($header_items,'%bar1') !== FALSE )
+ $horizontal_bar1 = '<div class="horbar1"> </div>';
+
+ // Horizontal bar 2
+ if ( strpos($header_items,'%bar2') !== FALSE )
+ $horizontal_bar2 = '<div class="horbar2"> </div>';
+
+ $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
--- /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 @@
+<?php
+function bfa_hor_cats($sort_order = "ID", $order = "ASC", $levels = "", $titles = "No", $exclude = "") {
+
+ // allow option "order" only if Plugin "My category Order" is activated:
+ if ( !function_exists('mycategoryorder') AND $sort_order == 'order' ) {
+ $sort_order = "ID";
+ }
+
+ $list_cat_string = wp_list_categories('orderby=' . $sort_order . '&order=' . $order . '&title_li=&depth=' . $levels . '&exclude=' . trim(str_replace(" ", "", $exclude)) . '&echo=0');
+ $list_cat_string = preg_replace("/<li class=\"(.*?)\n<ul class='children'>/i","<li class=\"rMenu-expand \\1\n <ul class=\"rMenu-ver children\">",$list_cat_string);
+ $list_cat_string = preg_replace("/<li class=\"(.*?)\n\t<ul class='children'>/i","<li class=\"rMenu-expand \\1\n\t <ul class=\"rMenu-ver children\">",$list_cat_string);
+ $list_cat_string = preg_replace("/<li class=\"(.*?)\n\t\t<ul class='children'>/i","<li class=\"rMenu-expand \\1\n\t\t <ul class=\"rMenu-ver children\">",$list_cat_string);
+ $list_cat_string = preg_replace("/<li class=\"(.*?)\n\t\t\t<ul class='children'>/i","<li class=\"rMenu-expand \\1\n\t\t\t <ul class=\"rMenu-ver children\">",$list_cat_string);
+ $list_cat_string = preg_replace("/<li class=\"(.*?)\n\t\t\t\t<ul class='children'>/i","<li class=\"rMenu-expand \\1\n\t\t\t\t <ul class=\"rMenu-ver children\">",$list_cat_string);
+ $list_cat_string = preg_replace("/<li class=\"(.*?)\n\t\t\t\t\t<ul class='children'>/i","<li class=\"rMenu-expand \\1\n\t\t\t\t\t <ul class=\"rMenu-ver children\">",$list_cat_string);
+ $list_cat_string = preg_replace("/<li class=\"(.*?)\n\t\t\t\t\t\t<ul class='children'>/i","<li class=\"rMenu-expand \\1\n\t\t\t\t\t\t <ul class=\"rMenu-ver children\">",$list_cat_string);
+ $list_cat_string = preg_replace("/<li class=\"(.*?)\n\t\t\t\t\t\t\t<ul class='children'>/i","<li class=\"rMenu-expand \\1\n\t\t\t\t\t\t\t <ul class=\"rMenu-ver children\">",$list_cat_string);
+ $list_cat_string = preg_replace("/<li class=\"(.*?)\n\t\t\t\t\t\t\t\t<ul class='children'>/i","<li class=\"rMenu-expand \\1\n\t\t\t\t\t\t\t\t <ul class=\"rMenu-ver children\">",$list_cat_string);
+ $list_cat_string = preg_replace("/<li class=\"(.*?)\n\t\t\t\t\t\t\t\t\t<ul class='children'>/i","<li class=\"rMenu-expand \\1\n\t\t\t\t\t\t\t\t\t <ul class=\"rMenu-ver children\">",$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=\"(.*?)\">(.*?)</a>|","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].'<br /><span class="cat-descr">'.$default_cat_descr.'</span></a>';
+ } else {
+ return '>'.$matches[2].'</a>';
+ }
+
+ } else {
+ return '>'.$matches[2].'<br /><span class="cat-descr">'.$matches[1].'</span></a>';
+ }
+
+}
+?>
\ No newline at end of file
--- /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 @@
+<?php
+function bfa_hor_pages($sort_order = "menu_order", $levels = "", $titles = "No", $exclude = "") {
+
+ global $bfa_ata;
+
+ $list_pages_string = wp_list_pages('sort_column=' . $sort_order . '&title_li=&depth=' . $levels . '&exclude=' . trim(str_replace(" ", "",
+ $exclude)) . '&echo=0&link_before=<span>&link_after=</span>');
+
+ $list_pages_string = preg_replace("/<ul class='children'/","<ul",$list_pages_string);
+
+ if ( $bfa_ata['page_menu_1st_level_not_linked'] == "Yes" ) {
+ $list_pages_string = preg_replace("/<li class=\"(.*?)><a href=\"(.*?)\"(.*?)\n<ul>/i","<li class=\"rMenu-expand \\1><a href=\"#\" onclick=\"return false\"\\3\n <ul class=\"rMenu-ver\">",$list_pages_string);
+ } else {
+ $list_pages_string = preg_replace("/<li class=\"(.*?)\n<ul>/i","<li class=\"rMenu-expand \\1\n <ul class=\"rMenu-ver\">",$list_pages_string);
+ }
+
+ $list_pages_string = preg_replace("/<li class=\"(.*?)\n\t<ul>/i","<li class=\"rMenu-expand \\1\n\t <ul class=\"rMenu-ver\">",$list_pages_string);
+ $list_pages_string = preg_replace("/<li class=\"(.*?)\n\t\t<ul>/i","<li class=\"rMenu-expand \\1\n\t\t <ul class=\"rMenu-ver\">",$list_pages_string);
+ $list_pages_string = preg_replace("/<li class=\"(.*?)\n\t\t\t<ul>/i","<li class=\"rMenu-expand \\1\n\t\t\t <ul class=\"rMenu-ver\">",$list_pages_string);
+ $list_pages_string = preg_replace("/<li class=\"(.*?)\n\t\t\t\t<ul>/i","<li class=\"rMenu-expand \\1\n\t\t\t\t <ul class=\"rMenu-ver\">",$list_pages_string);
+ $list_pages_string = preg_replace("/<li class=\"(.*?)\n\t\t\t\t\t<ul>/i","<li class=\"rMenu-expand \\1\n\t\t\t\t\t <ul class=\"rMenu-ver\">",$list_pages_string);
+ $list_pages_string = preg_replace("/<li class=\"(.*?)\n\t\t\t\t\t\t<ul>/i","<li class=\"rMenu-expand \\1\n\t\t\t\t\t\t <ul class=\"rMenu-ver\">",$list_pages_string);
+ $list_pages_string = preg_replace("/<li class=\"(.*?)\n\t\t\t\t\t\t\t<ul>/i","<li class=\"rMenu-expand \\1\n\t\t\t\t\t\t\t <ul class=\"rMenu-ver\">",$list_pages_string);
+ $list_pages_string = preg_replace("/<li class=\"(.*?)\n\t\t\t\t\t\t\t\t<ul>/i","<li class=\"rMenu-expand \\1\n\t\t\t\t\t\t\t\t <ul class=\"rMenu-ver\">",$list_pages_string);
+ $list_pages_string = preg_replace("/<li class=\"(.*?)\n\t\t\t\t\t\t\t\t\t<ul>/i","<li class=\"rMenu-expand \\1\n\t\t\t\t\t\t\t\t\t <ul class=\"rMenu-ver\">",$list_pages_string);
+
+ if ( $titles == "No" ) {
+ $list_pages_string = preg_replace("/title=\"(.*?)\"/i","",$list_pages_string);
+ }
+
+ return $list_pages_string;
+
+}
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/functions/bfa_m_find_in_dir.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,66 @@
+<?php
+function bfa_m_find_in_dir( $base, $pattern, $recursive = true, $case_sensitive = false ) {
+ $result = array();
+ if( $case_sensitive ) {
+ if( false === bfa_m_find_in_dir_( $base, $pattern, $recursive, $result )) {
+ return false;
+ }
+ } else {
+ if( false === bfa_m_find_in_dir_i_( $base, $pattern, $recursive, $result )) {
+ return false;
+ }
+ }
+
+ return $result;
+}
+
+/**
+ * @access private
+ */
+function bfa_m_find_in_dir_( $base, $pattern, $recursive, &$result ) {
+ $dh = @opendir( $base );
+ if( false === $dh ) {
+ return false;
+ }
+ while( $file = readdir( $dh )) {
+ if( "." == $file || ".." == $file ){
+ continue;
+ }
+// Note: ereg() is depreciated in php 5.3
+// if( false !== @ereg( $pattern, "{$base}/{$file}" )) {
+ if( false !== @preg_match( '/'.$pattern.'/', "{$base}/{$file}" )) {
+ $result[] = "{$base}/{$file}";
+ }
+ if( false !== $recursive && is_dir( "{$base}/{$file}" )) {
+ bfa_m_find_in_dir_( "{$base}/{$file}", $pattern, $recursive, $result );
+ }
+ }
+ closedir( $dh );
+ return true;
+}
+
+/**
+ * @access private
+ */
+function bfa_m_find_in_dir_i_( $base, $pattern, $recursive, &$result ) {
+ $dh = @opendir( $base );
+ if( false === $dh ) {
+ return false;
+ }
+ while( $file = readdir( $dh )) {
+ if( "." == $file || ".." == $file ){
+ continue;
+ }
+// Note: ergi() is depreciated in php 5.3
+// if( false !== @eregi( $pattern, "{$base}/{$file}" )) {
+ if( false !== @preg_match( '/'.$pattern.'/i', "{$base}/{$file}" )) {
+ $result[] = "{$base}/{$file}";
+ }
+ if( false !== $recursive && is_dir( "{$base}/{$file}" )) {
+ bfa_m_find_in_dir_( "{$base}/{$file}", $pattern, $recursive, $result );
+ }
+ }
+ closedir( $dh );
+ return true;
+}
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/functions/bfa_meta_tags.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,209 @@
+<?php
+
+
+function bfa_title_tag( $title, $sep ) {
+
+
+ global $bfa_ata, $post;
+
+ /* check to see if any of these SEO plugins is installed.
+ If yes, the Bytes For All SEO options will be deactivated,
+ no matter what the option "Use Bytes For All SEO options?" is set to. */
+
+ // if "SEO Ultimate" Plugin (http://www.seodesignsolutions.com/wordpress-seo/) is installed
+ if( class_exists('seo_ultimate') OR
+
+ // if "WP SEO" Plugin is installed
+ defined('WPSEO_PATH') OR
+
+ // if "All-In-One_SEO" Plugin (http://semperfiwebdesign.com) is installed
+ class_exists('All_in_One_SEO_Pack') ) {
+
+ return $title;
+
+ // if "WpSEO" Plugin (http://www.wpseo.de/) is installed
+ } elseif ( class_exists('wpSEO') OR
+
+ // if "HeadSpace2" Plugin (http://urbangiraffe.com/plugins/headspace2/) is installed
+ class_exists('HeadSpace2_Admin') OR
+
+ // if "SEO Title Tag" Plugin (http://www.netconcepts.com/seo-title-tag-plugin/) is installed
+ function_exists('seo_title_tag_options_page') OR
+
+ /* if "Another WordPress Meta Plugin"
+ (http://wp.uberdose.com/2006/11/04/another-wordpress-meta-plugin/) is installed */
+ class_exists('Another_WordPress_Meta_Plugin') OR
+
+ // if "Platinum_SEO_Pack" Plugin (http://techblissonline.com/platinum-seo-pack/) is installed
+ class_exists('Platinum_SEO_Pack') OR
+
+ /* if "HeadMeta" Plugin is installed
+ (http://dougal.gunters.org/blog/2004/06/17/my-first-wordpress-plugin-headmeta) */
+ function_exists('headmeta') OR
+
+ /* if "Improved Meta Description Snippets" Plugin is installed
+ (http://www.microkid.net/wordpress-plugins/improved-meta-description-snippets/) */
+ function_exists('bas_improved_meta_descriptions') OR
+
+ // if "Head META Description" Plugin (http://guff.szub.net/head-meta-description/) is installed
+ function_exists('head_meta_desc') OR
+
+ // if "Robots Meta" Plugin (http://yoast.com/wordpress/robots-meta/) is installed
+ class_exists('RobotsMeta_Admin') OR
+
+ // if "Quick META Keywords" Plugin (http://www.quickonlinetips.com/) is installed
+ function_exists('quickkeywords') OR
+
+ // if "Add Your Own Headers" Plugin (http://wp.uberdose.com/2007/03/30/add-your-own-headers/) is installed
+ class_exists('Add_Your_Own_Headers') OR
+
+ // if "SEO_Wordpress" Plugin (http://www.utheguru.com/seo_wordpress-wordpress-seo-plugin) is installed
+ function_exists('SEO_wordpress') OR
+
+ // if the option "Use Bytes For All SEO options?" is set to "No"
+ $bfa_ata['use_bfa_seo'] == "No") {
+
+ if ( is_front_page() ) {
+ return get_bloginfo('name');
+ } else {
+ return trim( $title ) . " « " . get_bloginfo('name');
+ }
+
+
+ } else {
+
+ if ( is_home() ) {
+ return get_bloginfo('name');
+ } else {
+ if ( is_single() OR is_page() OR is_front_page() ) {
+ // post and page titles get their own filter from WP
+ $bfa_meta_title = get_post_meta( $post->ID, 'bfa_ata_meta_title', true );
+ if ( $bfa_meta_title != '' ) {
+ $bfa_ata_page_title = htmlentities( $bfa_meta_title, ENT_QUOTES, 'UTF-8' );
+ } else {
+ $bfa_ata_page_title = single_post_title( '', false );
+ }
+
+ } elseif ( is_category() ) {
+ // cat titles don't get a filter, so htmlentities is required
+ $bfa_ata_page_title = htmlentities( single_cat_title( '', false ), ENT_QUOTES, 'UTF-8' );
+
+ } elseif ( is_tag() ) {
+ // tag titles get their own filter from WP
+ $bfa_ata_page_title = htmlentities( single_tag_title( '', false ), ENT_QUOTES, 'UTF-8' );
+
+ } elseif ( is_search() ) {
+ // no WP filter, htmlentities required
+ $bfa_ata_page_title = htmlentities( esc_html($s), ENT_QUOTES, 'UTF-8' );
+
+ } elseif ( is_day() ) {
+ $bfa_ata_page_title = htmlentities( get_the_time( __( 'l, F jS, Y','atahualpa' ) ), ENT_QUOTES, 'UTF-8' );
+
+ } elseif ( is_month() ) {
+ $bfa_ata_page_title = htmlentities( get_the_time( __( 'F Y','atahualpa' ) ), ENT_QUOTES, 'UTF-8' );
+
+ } elseif ( is_year() ) {
+ $bfa_ata_page_title = htmlentities( get_the_time('Y'), ENT_QUOTES, 'UTF-8' );
+
+ # elseif ( is_author() ) {
+ # $bfa_ata_page_title = htmlentities(the_author(),ENT_QUOTES); } // this won't work
+
+ } elseif ( is_404() ) {
+ $bfa_ata_page_title = __( '404 - Page not found', 'atahualpa' );
+
+ } else {
+ $bfa_ata_page_title = $title;
+
+ }
+
+ switch ( $bfa_ata['title_separator_code'] ) {
+ case 1: $bfa_ata_title_separator = " « "; break;
+ case 2: $bfa_ata_title_separator = " » "; break;
+ case 3: $bfa_ata_title_separator = " : "; break;
+ case 4: $bfa_ata_title_separator = ": "; break;
+ case 5: $bfa_ata_title_separator = " > "; break;
+ case 6: $bfa_ata_title_separator = " < "; break;
+ case 7: $bfa_ata_title_separator = " - "; break;
+ case 8: $bfa_ata_title_separator = " ‹ "; break;
+ case 9: $bfa_ata_title_separator = " › "; break;
+ case 10: $bfa_ata_title_separator = " • "; break;
+ case 11: $bfa_ata_title_separator = " · "; break;
+ case 12: $bfa_ata_title_separator = " — "; break;
+ case 13: $bfa_ata_title_separator = " | ";
+ }
+
+ /* 3 different styles for meta title tag: (1) Blog Title - Page Title,
+ (2) Page Title - Blog Title, (3) Page Title */
+
+ if ( $bfa_ata['add_blogtitle'] == "Blog Title - Page Title" ) {
+ return get_bloginfo('name') . $bfa_ata_title_separator . $bfa_ata_page_title;
+
+ } elseif ( $bfa_ata['add_blogtitle'] == "Page Title - Blog Title" ) {
+ return $bfa_ata_page_title . $bfa_ata_title_separator . get_bloginfo('name');
+
+ } elseif ( $bfa_ata['add_blogtitle'] == "Page Title" ) {
+ return $bfa_ata_page_title;
+
+ }
+
+ }
+
+ }
+
+
+
+ return $title;
+}
+
+add_filter( 'wp_title', 'bfa_title_tag', 10, 2 );
+
+
+function bfa_meta_tags() {
+
+ global $bfa_ata, $post;
+
+ $return = '';
+
+ // META DESCRIPTION & KEYWORDS for (only) the HOMEPAGE.
+ if ( is_front_page() ) {
+
+ if ( trim( $bfa_ata['homepage_meta_description'] ) != "" ) {
+ $return .= "<meta name=\"description\" content=\"" . htmlentities( $bfa_ata['homepage_meta_description'], ENT_QUOTES,'UTF-8' ) . "\" />\n";
+ }
+ if ( trim( $bfa_ata['homepage_meta_keywords'] ) != "" ) {
+ $return .= "<meta name=\"keywords\" content=\"" . htmlentities( $bfa_ata['homepage_meta_keywords'], ENT_QUOTES,'UTF-8' ) . "\" />\n";
+ }
+ }
+
+ // META DESCRIPTION & KEYWORDS Tag for single post pages and static pages:
+ if ( is_single() OR is_page() ) {
+ $bfa_meta_description = get_post_meta( $post->ID, 'bfa_ata_meta_description', true );
+ $bfa_meta_keywords = get_post_meta( $post->ID, 'bfa_ata_meta_keywords', true );
+ if ( $bfa_meta_description != '' ) {
+ $return .= "<meta name=\"description\" content=\"" . htmlentities( $bfa_meta_description, ENT_QUOTES,'UTF-8' ) . "\" />\n";
+ }
+ if ( $bfa_meta_keywords != '' ) {
+ $return .= "<meta name=\"keywords\" content=\"" . htmlentities( $bfa_meta_keywords, ENT_QUOTES,'UTF-8' ) . "\" />\n";
+ }
+ }
+
+ // META DESCRIPTION Tag for CATEGORY PAGES, if a category description exists:
+ if ( is_category() AND strip_tags( trim( category_description() ) ) != "" ) {
+ /* the category description gets its own ASCII code filter from WP,
+ but <p> ... </p> tags will be included by WP, so we remove them here: */
+ $return .= "<meta name=\"description\" content=\"" . htmlentities( strip_tags( trim( category_description() ) ), ENT_QUOTES, 'UTF-8' ) . "\" />\n";
+ }
+
+
+ /* prevent duplicate content by making archive pages noindex:
+ If it's a date, category or tag page: */
+ if ( ( $bfa_ata['archive_noindex'] == "Yes" AND is_date() ) OR
+ ( $bfa_ata['cat_noindex'] == "Yes" AND is_category() ) OR
+ ( $bfa_ata['tag_noindex'] == "Yes" AND is_tag()) ) {
+ $return .= '<meta name="robots" content="noindex, follow" />'."\n";
+ }
+
+
+ return $return;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/functions/bfa_new_wp3_menus.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,48 @@
+<?php
+/*
+Adjust output of new WP3 menu system for Ruthsarian RMenu CSS.
+This adds the CSS class 'rMenu-expand' to parent LI's
+*/
+function bfa_new_wp3_menus($theme_location = "menu1", $alignment = "left") {
+
+ $before_menu = ''; $after_menu = '';
+
+ /*
+ if ( $theme_location == "menu1" ) $menu_id = "rmenu2-page";
+ if ( $theme_location == "menu2" ) $menu_id = "rmenu-cat";
+ */
+ if ( $theme_location == "menu1" ) $menu_id = "rmenu2";
+ if ( $theme_location == "menu2" ) $menu_id = "rmenu";
+
+ $menu_class = "clearfix rMenu-hor rMenu";
+ if ( $alignment == "right" ) $menu_class .= " rMenu-hRight";
+ if ( $alignment == "center" ) {
+ if ( $theme_location == "menu1" )
+ $before_menu = '<div id="bfa_page_menu"><table cellpadding="0" cellspacing="0" style="margin: 0 auto"><tr><td align="center">';
+ if ( $theme_location == "menu2" )
+ $before_menu = '<div id="bfa_cat_menu"><table cellpadding="0" cellspacing="0" style="margin: 0 auto"><tr><td align="center">';
+ $after_menu = '</td></tr></table></div>';
+ }
+
+ ob_start();
+
+ wp_nav_menu( array(
+ 'theme_location' => $theme_location,
+ 'container' => 'div',
+ 'container_id' => $theme_location,
+ 'menu_class' => $menu_class,
+ 'menu_id' => $menu_id,
+ 'link_before' => '<span>',
+ 'link_after' => '</span>'
+ ) );
+
+ $newmenu = ob_get_contents();
+
+ ob_end_clean();
+
+ $newmenu = preg_replace("/<li (.*?)class=\"(.*?)\">(.*?)\n(.*?)<ul class=\"/i","<li \\1 class=\"rMenu-expand \\2\">\\3\n\\4<ul class=\"rMenu-ver ",$newmenu);
+
+ return $before_menu . $newmenu . $after_menu;
+
+}
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/functions/bfa_next_previous_links.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,177 @@
+<?php
+/* Check if several pages exist to avoid empty
+ next/prev navigation on multi post pages */
+function bfa_show_posts_nav() {
+ global $wp_query;
+ return ($wp_query->max_num_pages > 1) ? TRUE : FALSE;
+}
+
+/* Next/Previous PAGE Links (on multi post pages)
+ in next_posts_link "next" means older posts
+ Available parameters for $location: Top, Bottom. Default: Top */
+function bfa_next_previous_page_links($location = "Top") {
+
+ global $bfa_ata;
+ $homeURL = get_home_url();
+
+ if ( !is_single() AND !is_page() AND
+ strpos($bfa_ata['location_multi_next_prev'],$location) !== FALSE AND
+
+ // don't display on WP Email pages
+ intval(get_query_var('email')) != 1 AND
+
+ // display only if next/prev links actually exist
+ bfa_show_posts_nav() ) {
+
+ if( function_exists('wp_pagenavi') ) {
+
+ echo '<div class="wp-pagenavi-navigation">'; wp_pagenavi();
+ echo '</div>';
+
+ } else {
+
+ if( $bfa_ata['home_multi_next_prev'] != '' ) {
+ ob_start();
+ echo '<div class="home"><a href="' . $homeURL . '/">' .
+ $bfa_ata['home_multi_next_prev'] . '</a></div>';
+ $nav_home_div_on = ob_get_contents();
+ ob_end_clean();
+
+ // make sure this is the real homepage and not a subsequent page
+ if( is_front_page() AND !is_paged() ) {
+ $nav_home_add = ""; $nav_home_div = "";
+ } else {
+ $nav_home_add = '-home';
+ $nav_home_div = $nav_home_div_on;
+ }
+ } else {
+ $nav_home_add = '';
+ $nav_home_div = '';
+ }
+
+ echo '<div class="clearfix navigation-'.strtolower($location).'">
+ <div class="older' . $nav_home_add . '">';
+
+ $bfa_ata['next_prev_orientation'] == 'Older Left, Newer Right' ?
+ next_posts_link($bfa_ata['multi_next_prev_older']) :
+ previous_posts_link($bfa_ata['multi_next_prev_newer']);
+
+ echo ' </div>' . $nav_home_div . '<div class="newer' .
+ $nav_home_add . '"> ';
+
+ $bfa_ata['next_prev_orientation'] == 'Older Left, Newer Right' ?
+ previous_posts_link($bfa_ata['multi_next_prev_newer']) :
+ next_posts_link($bfa_ata['multi_next_prev_older']);
+
+ echo '</div></div>';
+ }
+ }
+}
+
+/* Next/Previous POST Links (on single post pages)
+ in next_post_link "next" means newer posts
+ Available parameters for $location: Top, Middle, Bottom. Default: Top */
+function bfa_next_previous_post_links($location = "Top") {
+
+ global $bfa_ata;
+ $homeURL = get_home_url();
+
+ if ( is_single() AND strpos($bfa_ata['location_single_next_prev'],$location) !== FALSE AND
+
+ // don't display on WP Email pages
+ intval(get_query_var('email')) != 1 ) {
+
+ echo '<div class="clearfix navigation-'.strtolower($location).'">
+ <div class="older' . ($bfa_ata['home_single_next_prev'] != '' ?
+ '-home' : '') . '">';
+
+ if ($bfa_ata['next_prev_orientation'] == 'Older Left, Newer Right') {
+ if($bfa_ata['single_next_prev_same_cat'] == "Yes") {
+ previous_post_link($bfa_ata['single_next_prev_older'], '%title', TRUE);
+ } else {
+ previous_post_link($bfa_ata['single_next_prev_older']);
+ }
+ } else {
+ if($bfa_ata['single_next_prev_same_cat'] == "Yes") {
+ next_post_link($bfa_ata['single_next_prev_newer'], '%title', TRUE);
+ } else {
+ next_post_link($bfa_ata['single_next_prev_newer']);
+ }
+ }
+
+ echo ' </div>';
+ if ($bfa_ata['home_single_next_prev'] != '') {
+ echo '<div class="home"><a href="' . $homeURL . '/">' .
+ $bfa_ata['home_single_next_prev'] . '</a></div>';
+ }
+ echo '<div class="newer';
+ if ($bfa_ata['home_single_next_prev'] != '') {
+ echo '-home';
+ }
+ echo '"> ';
+
+ if ($bfa_ata['next_prev_orientation'] == 'Older Left, Newer Right') {
+ if($bfa_ata['single_next_prev_same_cat'] == "Yes") {
+ next_post_link($bfa_ata['single_next_prev_newer'], '%title', TRUE);
+ } else {
+ next_post_link($bfa_ata['single_next_prev_newer']);
+ }
+ } else {
+ if($bfa_ata['single_next_prev_same_cat'] == "Yes") {
+ previous_post_link($bfa_ata['single_next_prev_older'], '%title', TRUE);
+ } else {
+ previous_post_link($bfa_ata['single_next_prev_older']);
+ }
+ }
+
+ echo '</div></div>';
+ }
+}
+
+/* Next/Previous Comments Links.
+ In next_comments_link "next" means newer.
+ If navigation above comments is set: */
+function bfa_next_previous_comments_links($location = "Above") {
+
+ global $bfa_ata;
+
+ if ( strpos($bfa_ata['location_comments_next_prev'],$location) !== FALSE ) {
+
+ // if any navigation links exist, paginated or next/previous:
+ if ( get_comment_pages_count() > 1 ) {
+
+ // Overall navigation container
+ echo '<div class="clearfix navigation-comments-'.strtolower($location).'">';
+
+ if ( $bfa_ata['next_prev_comments_pagination'] == "Yes" ) {
+
+ // paginated links
+ paginate_comments_links(array(
+ 'prev_text' => $bfa_ata['comments_next_prev_older'],
+ 'next_text' => $bfa_ata['comments_next_prev_newer'],
+ ));
+
+ } else {
+
+ // next/previous links
+ echo '<div class="older">';
+
+ $bfa_ata['next_prev_orientation'] == 'Older Left, Newer Right' ?
+ previous_comments_link($bfa_ata['comments_next_prev_older']) :
+ next_comments_link($bfa_ata['comments_next_prev_newer']);
+
+ echo ' </div><div class="newer"> ';
+
+ $bfa_ata['next_prev_orientation'] == 'Older Left, Newer Right' ?
+ next_comments_link($bfa_ata['comments_next_prev_newer']) :
+ previous_comments_link($bfa_ata['comments_next_prev_older']);
+
+ echo '</div></div>';
+
+ }
+
+ echo '</div>';
+ }
+ }
+}
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/functions/bfa_popular_in_cat.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,134 @@
+<?php
+/*
+Plugin Name: BFA Popular in Cat
+Plugin URI: http://wordpress.bytesforall.com/
+Description: Configurable WordPress widget that displays the most popular posts in a given category based on the number of comments
+Version: 1.0
+Author: BFA Webdesign
+Author URI: http://www.bytesforall.com/
+*/
+/*
+Based on Plugin "Most Commented" by Nick Momrik http://mtdewvirus.com/ Version 1.5
+and the modification Last X days by DJ Chuang www.djchuang.com
+*/
+
+
+
+
+
+
+
+ // This is the function that outputs our little widget
+ function widget_mdv_most_commented_per_cat($args) {
+ extract($args);
+
+ if (is_category() ) {
+
+ $cat_id = get_query_var('cat');
+
+ // Fetch our parameters
+ $bfa_pic_options = get_option('widget_mdv_most_commented_per_cat');
+ $bfa_pic_title = $bfa_pic_options['bfa_pic_title'];
+ $bfa_pic_no_posts = $bfa_pic_options['bfa_pic_no_posts'];
+ $bfa_pic_duration = $bfa_pic_options['bfa_pic_duration'];
+ $bfa_pic_min_amount_comments = $bfa_pic_options['bfa_pic_min_amount_comments'];
+ $bfa_pic_prepend_cat_title = $bfa_pic_options['bfa_pic_prepend_cat_title'];
+ $bfa_pic_append_cat_title = $bfa_pic_options['bfa_pic_append_cat_title'];
+
+ $current_cat_title = htmlentities(single_cat_title('', false),ENT_QUOTES);
+ if ($bfa_pic_prepend_cat_title == "on" ) { $bfa_pic_title = $current_cat_title . " " . $bfa_pic_title; }
+ if ($bfa_pic_append_cat_title == "on" ) { $bfa_pic_title = $bfa_pic_title . " " . $current_cat_title; }
+
+ global $wpdb;
+
+
+ $bfa_pic_request = "SELECT DISTINCT ID, post_title, comment_count FROM $wpdb->posts as p";
+ $bfa_pic_request .= " INNER JOIN $wpdb->term_relationships AS tr ON";
+ $bfa_pic_request .= " (p.ID = tr.object_id AND";
+ $bfa_pic_request .= " tr.term_taxonomy_id = $cat_id )";
+ $bfa_pic_request .= " INNER JOIN $wpdb->term_taxonomy AS tt ON";
+ $bfa_pic_request .= " (tr.term_taxonomy_id = tt.term_taxonomy_id AND";
+ $bfa_pic_request .= " taxonomy = 'category')";
+ $bfa_pic_request .= " WHERE post_status = 'publish' AND comment_count >= $bfa_pic_min_amount_comments";
+ $bfa_pic_request .= " AND post_password =''";
+
+ if ($bfa_pic_duration !="") $bfa_pic_request .= " AND DATE_SUB(CURDATE(),INTERVAL ".$bfa_pic_duration." DAY) < post_date ";
+
+ $bfa_pic_request .= " ORDER BY comment_count DESC LIMIT $bfa_pic_no_posts";
+ $bfa_pic_posts = $wpdb->get_results($bfa_pic_request);
+
+ if ($bfa_pic_posts) {
+ $widget_mdv_most_commented_per_cat = '';
+ foreach ($bfa_pic_posts as $bfa_pic_post) {
+ $bfa_pic_post_title = stripslashes($bfa_pic_post->post_title);
+ $bfa_pic_comment_count = $bfa_pic_post->comment_count;
+ $bfa_pic_permalink = get_permalink($bfa_pic_post->ID);
+ $widget_mdv_most_commented_per_cat .= '<li><a href="' . $bfa_pic_permalink . '" title="' . $bfa_pic_post_title.'">' . $bfa_pic_post_title . ' (' . $bfa_pic_comment_count . ')</a></li>';
+ }
+ } else {
+ $widget_mdv_most_commented_per_cat = "None found";
+ }
+
+
+ if ($widget_mdv_most_commented_per_cat != "None found") {
+ echo $before_widget . $before_title . $bfa_pic_title . $after_title;
+ echo "<ul>" . $widget_mdv_most_commented_per_cat . "</ul>";
+ echo $after_widget;
+ } else { return $widget_mdv_most_commented_per_cat; }
+}
+}
+
+
+ // This is the function that outputs the form to let the users edit
+ // the widget's parameters.
+ function widget_mdv_most_commented_per_cat_control() {
+
+ // Fetch the options, check them and if need be, update the options array
+ $bfa_pic_options = $bfa_pic_newoptions = get_option('widget_mdv_most_commented_per_cat');
+ if ( isset($_POST["bfa_pic_src-submit"]) ) {
+ $bfa_pic_newoptions['bfa_pic_title'] = strip_tags(stripslashes($_POST["bfa_pic_src-title"]));
+ $bfa_pic_newoptions['bfa_pic_no_posts'] = (int) $_POST["bfa_pic_no_posts"];
+ $bfa_pic_newoptions['bfa_pic_duration'] = (int) $_POST["bfa_pic_duration"];
+ $bfa_pic_newoptions['bfa_pic_min_amount_comments'] = (int) $_POST["bfa_pic_min_amount_comments"];
+ $bfa_pic_newoptions['bfa_pic_append_cat_title'] = !isset($_POST["bfa_pic_append_cat_title"]) ? NULL : $_POST["bfa_pic_append_cat_title"];
+ $bfa_pic_newoptions['bfa_pic_prepend_cat_title'] = !isset($_POST["bfa_pic_prepend_cat_title"]) ? NULL : $_POST["bfa_pic_prepend_cat_title"];
+
+ }
+ if ( $bfa_pic_options != $bfa_pic_newoptions ) {
+ $bfa_pic_options = $bfa_pic_newoptions;
+ update_option('widget_mdv_most_commented_per_cat', $bfa_pic_options);
+ }
+
+ // Default options to the parameters
+ if ( !isset($bfa_pic_options['bfa_pic_no_posts']) ) $bfa_pic_options['bfa_pic_no_posts'] = 10;
+ if ( !isset($bfa_pic_options['bfa_pic_min_amount_comments']) ) $bfa_pic_options['bfa_pic_min_amount_comments'] = 1;
+
+ $bfa_pic_no_posts = $bfa_pic_options['bfa_pic_no_posts'];
+ $bfa_pic_duration = $bfa_pic_options['bfa_pic_duration'];
+ $bfa_pic_min_amount_comments = $bfa_pic_options['bfa_pic_min_amount_comments'];
+ $bfa_pic_append_cat_title = $bfa_pic_options['bfa_pic_append_cat_title'];
+ $bfa_pic_prepend_cat_title = $bfa_pic_options['bfa_pic_prepend_cat_title'];
+
+ // Deal with HTML in the parameters
+ $bfa_pic_title = htmlspecialchars($bfa_pic_options['bfa_pic_title'], ENT_QUOTES);
+
+?>
+ Title: <input style="width: 450px;" id="bfa_pic_src-title" name="bfa_pic_src-title" type="text" value="<?php echo $bfa_pic_title; ?>" />
+ <hr noshade size="1" style="clear:left; color: #ccc">
+ <p style="text-align: left;"><input id="bfa_pic_prepend_cat_title" name="bfa_pic_prepend_cat_title" type="checkbox" <?php if($bfa_pic_prepend_cat_title == "on"){echo " CHECKED";}?> />Prepend
+ <p style="text-align: left;"><input id="bfa_pic_append_cat_title" name="bfa_pic_append_cat_title" type="checkbox" <?php if($bfa_pic_append_cat_title == "on"){echo " CHECKED";}?> /> Append Category Name to Title
+ <hr noshade size="1" style="clear:left; color: #ccc">
+ <p style="text-align: left;">Show <input style="width: 40px;" id="bfa_pic_no_posts" name="bfa_pic_no_posts" type="text" value="<?php echo $bfa_pic_no_posts; ?>" />
+ posts not older than <input style="width: 60px;" id="bfa_pic_duration" name="bfa_pic_duration" type="text" value="<?php echo $bfa_pic_duration; ?>" /> days and with at least
+ <input style="width: 40px;" id="bfa_pic_min_amount_comments" name="bfa_pic_min_amount_comments" type="text" value="<?php echo $bfa_pic_min_amount_comments; ?>" /> comments
+ </p>
+ <div style="clear:left"></div>
+ <input type="hidden" id="bfa_pic_src-submit" name="bfa_pic_src-submit" value="1" />
+<?php
+ }
+
+ $widget_ops = array('classname' => 'widget_popular_in_cat', 'description' => __("Lists most commented posts of given category","atahualpa") );
+ $control_ops = array('width' => 600, 'height' => 500);
+ wp_register_sidebar_widget('popular_in_cat', __('BFA Popular in Cat','atahualpa'), 'widget_mdv_most_commented_per_cat', $widget_ops);
+ wp_register_widget_control('popular_in_cat', __('BFA Popular in Cat','atahualpa'), 'widget_mdv_most_commented_per_cat_control', $control_ops);
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/functions/bfa_popular_posts.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,150 @@
+<?php
+/*
+Plugin Name: BFA Popular Posts
+Plugin URI: http://wordpress.bytesforall.com/
+Description: Configurable WordPress widget that displays the most popular posts based on the number of comments
+Version: 1.0
+Author: BFA Webdesign
+Author URI: http://www.bytesforall.com/
+*/
+/*
+Based on Plugin "Most Commented" by Nick Momrik http://mtdewvirus.com/ Version 1.5
+and the modification Last X days by DJ Chuang www.djchuang.com
+*/
+
+
+
+
+
+
+
+ // This is the function that outputs our little widget
+ function widget_mdv_most_commented($args) {
+ extract($args);
+
+ // Fetch our parameters
+ $bfa_pp_options = get_option('widget_mdv_most_commented');
+ $bfa_pp_title = $bfa_pp_options['bfa_pp_title'];
+ $bfa_pp_no_posts = $bfa_pp_options['bfa_pp_no_posts'];
+ $bfa_pp_duration = $bfa_pp_options['bfa_pp_duration'];
+ $bfa_pp_min_amount_comments = $bfa_pp_options['bfa_pp_min_amount_comments'];
+ $bfa_pp_display_homepage = $bfa_pp_options['bfa_pp_display_homepage'];
+ $bfa_pp_display_category = $bfa_pp_options['bfa_pp_display_category'];
+ $bfa_pp_display_post = $bfa_pp_options['bfa_pp_display_post'];
+ $bfa_pp_display_page = $bfa_pp_options['bfa_pp_display_page'];
+ $bfa_pp_display_archive = $bfa_pp_options['bfa_pp_display_archive'];
+ $bfa_pp_display_tag = $bfa_pp_options['bfa_pp_display_tag'];
+ $bfa_pp_display_search = $bfa_pp_options['bfa_pp_display_search'];
+ $bfa_pp_display_author = $bfa_pp_options['bfa_pp_display_author'];
+ $bfa_pp_display_404 = $bfa_pp_options['bfa_pp_display_404'];
+
+ global $wpdb;
+
+
+ $bfa_pp_request = "SELECT ID, post_title, comment_count FROM $wpdb->posts";
+ $bfa_pp_request .= " WHERE post_status = 'publish' AND comment_count >= $bfa_pp_min_amount_comments";
+ $bfa_pp_request .= " AND post_password =''";
+
+ if ($bfa_pp_duration !="") $bfa_pp_request .= " AND DATE_SUB(CURDATE(),INTERVAL ".$bfa_pp_duration." DAY) < post_date ";
+
+ $bfa_pp_request .= " ORDER BY comment_count DESC LIMIT $bfa_pp_no_posts";
+ $bfa_pp_posts = $wpdb->get_results($bfa_pp_request);
+
+ $widget_mdv_most_commented = '';
+
+ if ($bfa_pp_posts) {
+ foreach ($bfa_pp_posts as $bfa_pp_post) {
+ $bfa_pp_post_title = stripslashes($bfa_pp_post->post_title);
+ $bfa_pp_comment_count = $bfa_pp_post->comment_count;
+ $bfa_pp_permalink = get_permalink($bfa_pp_post->ID);
+ $widget_mdv_most_commented .= '<li><a href="' . $bfa_pp_permalink . '" title="' . $bfa_pp_post_title.'">' . $bfa_pp_post_title . ' (' . $bfa_pp_comment_count . ')</a></li>';
+ }
+ } else {
+ $widget_mdv_most_commented = "None found";
+ }
+
+
+ if ($widget_mdv_most_commented != "None found") {
+ echo $before_widget . $before_title . $bfa_pp_title . $after_title;
+ echo "<ul>" . $widget_mdv_most_commented . "</ul>";
+ echo $after_widget;
+ } else { return $widget_mdv_most_commented; }
+}
+
+
+
+ // This is the function that outputs the form to let the users edit
+ // the widget's parameters.
+ function widget_mdv_most_commented_control() {
+
+ // Fetch the options, check them and if need be, update the options array
+ $bfa_pp_options = $bfa_pp_newoptions = get_option('widget_mdv_most_commented');
+ if ( isset($_POST["bfa_pp_src-submit"]) ) {
+ $bfa_pp_newoptions['bfa_pp_title'] = strip_tags(stripslashes($_POST["bfa_pp_src-title"]));
+ $bfa_pp_newoptions['bfa_pp_no_posts'] = (int) $_POST["bfa_pp_no_posts"];
+ $bfa_pp_newoptions['bfa_pp_duration'] = (int) $_POST["bfa_pp_duration"];
+ $bfa_pp_newoptions['bfa_pp_min_amount_comments'] = (int) $_POST["bfa_pp_min_amount_comments"];
+ $bfa_pp_newoptions['bfa_pp_display_homepage'] = !isset($_POST["bfa_pp_display_homepage"]) ? NULL : $_POST["bfa_pp_display_homepage"];
+ $bfa_pp_newoptions['bfa_pp_display_category'] = !isset($_POST["bfa_pp_display_category"]) ? NULL : $_POST["bfa_pp_display_category"];
+ $bfa_pp_newoptions['bfa_pp_display_post'] = !isset($_POST["bfa_pp_display_post"]) ? NULL : $_POST["bfa_pp_display_post"];
+ $bfa_pp_newoptions['bfa_pp_display_page'] = !isset($_POST["bfa_pp_display_page"]) ? NULL : $_POST["bfa_pp_display_page"];
+ $bfa_pp_newoptions['bfa_pp_display_archive'] = !isset($_POST["bfa_pp_display_archive"]) ? NULL : $_POST["bfa_pp_display_archive"];
+ $bfa_pp_newoptions['bfa_pp_display_tag'] = !isset($_POST["bfa_pp_display_tag"]) ? NULL : $_POST["bfa_pp_display_tag"];
+ $bfa_pp_newoptions['bfa_pp_display_search'] = !isset($_POST["bfa_pp_display_search"]) ? NULL : $_POST["bfa_pp_display_search"];
+ $bfa_pp_newoptions['bfa_pp_display_author'] = !isset($_POST["bfa_pp_display_author"]) ? NULL : $_POST["bfa_pp_display_author"];
+ $bfa_pp_newoptions['bfa_pp_display_404'] = !isset($_POST["bfa_pp_display_404"]) ? NULL : $_POST["bfa_pp_display_404"];
+
+ }
+ if ( $bfa_pp_options != $bfa_pp_newoptions ) {
+ $bfa_pp_options = $bfa_pp_newoptions;
+ update_option('widget_mdv_most_commented', $bfa_pp_options);
+ }
+
+ // Default options to the parameters
+ if ( !$bfa_pp_options['bfa_pp_no_posts'] ) $options['bfa_pp_no_posts'] = 10;
+ if ( !$bfa_pp_options['bfa_pp_min_amount_comments'] OR $bfa_pp_options['bfa_pp_min_amount_comments'] == 0) $bfa_pp_options['bfa_pp_min_amount_comments'] = 1;
+
+ if(isset($bfa_pp_options['bfa_pp_no_posts'])) $bfa_pp_no_posts = $bfa_pp_options['bfa_pp_no_posts'];
+ if(isset($bfa_pp_options['bfa_pp_duration'])) $bfa_pp_duration = $bfa_pp_options['bfa_pp_duration'];
+ $bfa_pp_min_amount_comments = $bfa_pp_options['bfa_pp_min_amount_comments'];
+ if(isset($bfa_pp_options['bfa_pp_display_homepage'])) $bfa_pp_display_homepage = $bfa_pp_options['bfa_pp_display_homepage'];
+ if(isset($bfa_pp_options['bfa_pp_display_category'])) $bfa_pp_display_category = $bfa_pp_options['bfa_pp_display_category'];
+ if(isset($bfa_pp_options['bfa_pp_display_post'])) $bfa_pp_display_post = $bfa_pp_options['bfa_pp_display_post'];
+ if(isset($bfa_pp_options['bfa_pp_display_page'])) $bfa_pp_display_page = $bfa_pp_options['bfa_pp_display_page'];
+ if(isset($bfa_pp_options['bfa_pp_display_archive'])) $bfa_pp_display_archive = $bfa_pp_options['bfa_pp_display_archive'];
+ if(isset($bfa_pp_options['bfa_pp_display_tag'])) $bfa_pp_display_tag = $bfa_pp_options['bfa_pp_display_tag'];
+ if(isset($bfa_pp_options['bfa_pp_display_search'])) $bfa_pp_display_search = $bfa_pp_options['bfa_pp_display_search'];
+ if(isset($bfa_pp_options['bfa_pp_display_author'])) $bfa_pp_display_author = $bfa_pp_options['bfa_pp_display_author'];
+ if(isset($bfa_pp_options['bfa_pp_display_404'])) $bfa_pp_display_404 = $bfa_pp_options['bfa_pp_display_404'];
+
+ // Deal with HTML in the parameters
+ if(isset($bfa_pp_options['bfa_pp_title'])) $bfa_pp_title = htmlspecialchars($bfa_pp_options['bfa_pp_title'], ENT_QUOTES);
+
+?>
+ Title: <input style="width: 450px;" id="bfa_pp_src-title" name="bfa_pp_src-title" type="text" value="<?php echo $bfa_pp_title; ?>" />
+ <hr noshade size="1" style="clear:left; color: #ccc">
+ <p style="text-align: left;">Show <input style="width: 40px;" id="bfa_pp_no_posts" name="bfa_pp_no_posts" type="text" value="<?php echo $bfa_pp_no_posts; ?>" />
+ posts not older than <input style="width: 60px;" id="bfa_pp_duration" name="bfa_pp_duration" type="text" value="<?php echo $bfa_pp_duration; ?>" /> days and with at least
+ <input style="width: 40px;" id="bfa_pp_min_amount_comments" name="bfa_pp_min_amount_comments" type="text" value="<?php echo $bfa_pp_min_amount_comments; ?>" /> comment(s)
+ </p>
+ <hr noshade size="1" style="clear:left; color: #ccc">
+ <p>And display the list on: </p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_pp_display_homepage" name="bfa_pp_display_homepage" type="checkbox" <?php if(isset($bfa_pp_display_homepage)){echo " CHECKED";}?> /> Homepage</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_pp_display_category" name="bfa_pp_display_category" type="checkbox" <?php if(isset($bfa_pp_display_category)){echo " CHECKED";}?> /> Category Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_pp_display_post" name="bfa_pp_display_post" type="checkbox" <?php if(isset($bfa_pp_display_post)){echo " CHECKED";}?> /> Single Post Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_pp_display_page" name="bfa_pp_display_page" type="checkbox" <?php if(isset($bfa_pp_display_page)){echo " CHECKED";}?> /> "Page" Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_pp_display_archive" name="bfa_pp_display_archive" type="checkbox" <?php if(isset($bfa_pp_display_archive)){echo " CHECKED";}?> /> Archive Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_pp_display_tag" name="bfa_pp_display_tag" type="checkbox" <?php if(isset($bfa_pp_display_tag)){echo " CHECKED";}?> /> Tag Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_pp_display_search" name="bfa_pp_display_search" type="checkbox" <?php if(isset($bfa_pp_display_search)){echo " CHECKED";}?> /> Search Result Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_pp_display_author" name="bfa_pp_display_author" type="checkbox" <?php if(isset($bfa_pp_display_author)){echo " CHECKED";}?> /> Author Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_pp_display_404" name="bfa_pp_display_404" type="checkbox" <?php if(isset($bfa_pp_display_404)){echo " CHECKED";}?> /> 404 Not Found Pages</p>
+ <div style="clear:left"></div>
+ <input type="hidden" id="bfa_pp_src-submit" name="bfa_pp_src-submit" value="1" />
+<?php
+ }
+
+ $widget_ops = array('classname' => 'widget_popular_posts', 'description' => __("Lists most commented posts overall","atahualpa") );
+ $control_ops = array('width' => 600, 'height' => 500);
+ wp_register_sidebar_widget('popular_posts', __('BFA Popular posts','atahualpa'), 'widget_mdv_most_commented', $widget_ops);
+ wp_register_widget_control('popular_posts', __('BFA Popular posts','atahualpa'), 'widget_mdv_most_commented_control', $control_ops);
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/functions/bfa_post_parts.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,259 @@
+<?php
+function bfa_post_kicker($before = '<div class="post-kicker">', $after = '</div>')
+{
+ global $bfa_ata;
+
+ // don't display on WP Email pages
+ if(intval(get_query_var('email')) != 1) {
+
+ if( (is_home() AND $bfa_ata['post_kicker_home'] != "") OR
+ (is_page() AND $bfa_ata['post_kicker_page'] != "") OR
+ (is_single() AND $bfa_ata['post_kicker_single'] != "") OR
+ ( (is_archive() OR is_search() OR is_author() OR is_tag()) AND $bfa_ata['post_kicker_multi'] != "") ) {
+
+ echo $before;
+
+ if ( is_home() ) $kickertype = 'post_kicker_home';
+ elseif ( is_page() ) $kickertype = 'post_kicker_page';
+ elseif ( is_single() ) $kickertype = 'post_kicker_single';
+ else $kickertype = 'post_kicker_multi';
+
+ echo bfa_postinfo($bfa_ata[$kickertype]);
+
+ echo $after;
+ }
+ }
+}
+
+function bfa_post_headline($before = '<div class="post-headline">', $after = '</div>')
+{
+ global $bfa_ata, $post;
+
+// Case 1 - 'Use Post / Page Options' is no, then just use the post/page title
+ if ($bfa_ata['page_post_options'] == 'No') {
+ echo $before;
+ ?><h<?php echo $bfa_ata['h_posttitle']; ?>><?php
+ if ( is_single() OR is_page() ) {
+ the_title(); ?></h<?php echo $bfa_ata['h_posttitle']; ?>><?php
+ } else { ?>
+ <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php _e('Permanent Link to ','atahualpa') . the_title_attribute('echo=1') ?>">
+ <?php the_title(); ?></a></h<?php echo $bfa_ata['h_posttitle']; ?>><?php
+ }
+ echo $after;
+ return;
+ }
+// Case 2 - 'Use Post / Page Options' is Yes, then use the BFA title
+ if ( is_single() OR is_page() ) {
+ $bfa_ata_body_title = get_post_meta($post->ID, 'bfa_ata_body_title', true);
+ $bfa_ata_display_body_title = get_post_meta($post->ID, 'bfa_ata_display_body_title', true);
+ $bfa_ata_body_title_multi = get_post_meta($post->ID, 'bfa_ata_body_title_multi', true);
+ } else {
+ $bfa_ata_body_title_multi = get_post_meta($post->ID, 'bfa_ata_body_title_multi', true);
+ }
+
+ // Since 3.6.1: Display a link to the full post if there is no post title and the post is too short
+ // for a read more link.
+
+ // some plugins hook into 'the_title()' so we only want it called once. But it must also be called
+ // when using the bfa_ata titles so we use a dummy call:
+ // $bfa_toss = the_title('','',false);
+ // in those cases
+ $bfa_temp_title = get_the_title();
+ if ( $bfa_temp_title == '' ) { ?>
+ <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php _e('Permanent Link','atahualpa')?>">Permalink</a><?php
+
+ } elseif ( (!is_single() AND !is_page()) OR $bfa_ata_display_body_title == '' ) {
+
+ echo $before; ?>
+ <h<?php echo $bfa_ata['h_posttitle']; ?>><?php
+
+ if( !is_single() AND !is_page() ) { ?>
+ <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php _e('Permanent Link to ','atahualpa') . the_title_attribute('echo=1') ?>"><?php
+ }
+
+ if ( (is_single() OR is_page()) AND $bfa_ata_body_title != "" ) {
+ echo htmlentities($bfa_ata_body_title,ENT_QUOTES,'UTF-8');
+ $bfa_toss = the_title('','',false);
+ } else {
+ if ( $bfa_ata_body_title_multi != '' ) {
+ echo htmlentities($bfa_ata_body_title_multi,ENT_QUOTES,'UTF-8');
+ $bfa_toss = the_title('','',false);
+ } else
+ echo $bfa_temp_title;
+ }
+
+ if ( !is_single() AND !is_page() ) { ?></a><?php } ?></h<?php echo $bfa_ata['h_posttitle']; ?>>
+ <?php echo $after;
+ }
+}
+
+
+
+
+function bfa_post_byline($before = '<div class="post-byline">', $after = '</div>')
+{
+ global $bfa_ata, $post;
+
+ // don't display on WP Email pages
+ if(intval(get_query_var('email')) != 1) {
+
+ if( (is_home() AND $bfa_ata['post_byline_home'] != "") OR
+ (is_page() AND $bfa_ata['post_byline_page'] != "") OR
+ (is_single() AND $bfa_ata['post_byline_single'] != "") OR
+ ( (is_archive() OR is_search() OR is_author() OR is_tag()) AND $bfa_ata['post_byline_multi'] != "") ) {
+
+ echo $before;
+
+ if ( is_home() ) $bylinetype = 'post_byline_home';
+ elseif ( is_page() ) $bylinetype = 'post_byline_page';
+ elseif ( is_single() ) $bylinetype = 'post_byline_single';
+ else $bylinetype = 'post_byline_multi';
+
+ echo bfa_postinfo($bfa_ata[$bylinetype]);
+
+ echo $after;
+ }
+ }
+}
+
+
+function bfa_post_bodycopy($before = '<div class="post-bodycopy clearfix">', $after = '</div>')
+{
+ global $bfa_ata, $post, $bfa_pagetemplate_name, $bfa_pagetemplate_full_post_count, $bfa_ata_postcount;
+
+ $do_full_post = 0;
+ echo $before;
+ if ((is_home() AND $bfa_ata['excerpts_home'] == "Full Posts")
+ OR (is_home() AND !is_paged() AND $bfa_ata_postcount <= $bfa_ata['full_posts_homepage'])
+ OR (is_category() AND $bfa_ata['excerpts_category'] == "Full Posts")
+ OR (is_date() AND $bfa_ata['excerpts_archive'] == "Full Posts")
+ OR (is_tag() AND $bfa_ata['excerpts_tag'] == "Full Posts")
+ OR (is_search() AND $bfa_ata['excerpts_search'] == "Full Posts")
+ OR (is_author() AND $bfa_ata['excerpts_author'] == "Full Posts")
+ OR is_single()
+ OR is_page()
+ OR function_exists('is_bbpress')
+ ) { $do_full_post = 1; }
+
+ if (bfa_is_pagetemplate_active($bfa_pagetemplate_name)) {
+ if ($bfa_ata_postcount <= $bfa_pagetemplate_full_post_count)
+ { $do_full_post = 1; }
+ else
+ { $do_full_post = 0; }
+ }
+
+ if ($do_full_post == 1) {
+ $bfa_ata_more_tag_final = str_replace("%post-title%", the_title('', '', false), $bfa_ata['more_tag']);
+ the_content($bfa_ata_more_tag_final);
+ } else {
+ if (function_exists('the_post_thumbnail') AND !function_exists('tfe_get_image')) {
+ if(has_post_thumbnail()): ?>
+ <a href="<?php the_permalink() ?>"> <?php the_post_thumbnail(); ?></a>
+ <?php endif;
+ }
+ the_excerpt();
+ }
+ echo $after;
+}
+
+
+function bfa_post_pagination($before = '<p class="post-pagination"><strong>Pages:', $after = '</strong></p>')
+{
+ global $bfa_ata, $bfa_ata_postcount;
+
+ if ((is_home() AND $bfa_ata['excerpts_home'] == "Full Posts")
+ OR (is_home() AND !is_paged() AND $bfa_ata_postcount <= $bfa_ata['full_posts_homepage'])
+ OR (is_category() AND $bfa_ata['excerpts_category'] == "Full Posts")
+ OR (is_date() AND $bfa_ata['excerpts_archive'] == "Full Posts")
+ OR (is_tag() AND $bfa_ata['excerpts_tag'] == "Full Posts")
+ OR (is_search() AND $bfa_ata['excerpts_search'] == "Full Posts")
+ OR (is_author() AND $bfa_ata['excerpts_author'] == "Full Posts")
+ OR is_single()
+ OR is_page() ) {
+ wp_link_pages('before='.$before.'&after='.$after.'&next_or_number=number');
+ }
+}
+
+
+function bfa_archives_page($before = '<div class="archives-page">', $after = '</div>')
+{
+ global $bfa_ata, $wp_query;
+ $templateURI = get_template_directory_uri();
+
+ $current_page_id = $wp_query->get_queried_object_id();
+
+ if ( is_page() AND $current_page_id == $bfa_ata['archives_page_id'] ) {
+
+ echo $before;
+ if ( $bfa_ata['archives_date_show'] == "Yes" ) { ?>
+ <h3><?php echo $bfa_ata['archives_date_title']; ?></h3>
+ <ul>
+ <?php wp_get_archives('type=' . $bfa_ata['archives_date_type'] . '&show_post_count=' .
+ ($bfa_ata['archives_date_count'] == "Yes" ? '1' : '0') . ($bfa_ata['archives_date_limit'] != "" ? '&limit=' .
+ $bfa_ata['archives_date_limit'] : '')); ?>
+ </ul>
+ <?php }
+ if ( $bfa_ata['archives_category_show'] == "Yes" ) { ?>
+ <h3><?php echo $bfa_ata['archives_category_title']; ?></h3>
+ <ul>
+ <?php wp_list_categories('title_li=&orderby=' . $bfa_ata['archives_category_orderby'] .
+ '&order=' . $bfa_ata['archives_category_order'] .
+ '&show_count=' . ($bfa_ata['archives_category_count'] == "Yes" ? '1' : '0') .
+ '&depth=' . $bfa_ata['archives_category_depth'] .
+ ($bfa_ata['archives_category_feed'] == "Yes" ? '&feed_image=' . $templateURI .
+ '/images/icons/feed.gif' : '')); ?>
+ </ul>
+ <?php }
+ echo $after;
+ }
+}
+
+
+function bfa_post_footer($before = '<div class="post-footer">', $after = '</div>')
+{
+ global $bfa_ata, $post;
+
+ // don't display on WP Email pages
+ if(intval(get_query_var('email')) != 1) {
+
+ if( (is_home() AND $bfa_ata['post_footer_home'] != "") OR
+ (is_page() AND $bfa_ata['post_footer_page'] != "") OR
+ (is_single() AND $bfa_ata['post_footer_single'] != "") OR
+ ( (is_archive() OR is_search() OR is_author() OR is_tag()) AND $bfa_ata['post_footer_multi'] != "") ) {
+
+ echo $before;
+
+ if ( is_home() ) $footertype = 'post_footer_home';
+ elseif ( is_page() ) $footertype = 'post_footer_page';
+ elseif ( is_single() ) $footertype = 'post_footer_single';
+ else $footertype = 'post_footer_multi';
+
+ echo bfa_postinfo($bfa_ata[$footertype]);
+
+ echo $after;
+ }
+ }
+}
+
+
+function bfa_get_comments()
+{
+ global $bfa_ata;
+
+ // Load Comments template (on single post pages, and "Page" pages, if set on options page)
+ if ( is_single() OR ( is_page() AND $bfa_ata['comments_on_pages'] == "Yes") ) {
+
+ // don't display on WP-Email pages
+ if( intval(get_query_var('email')) != 1 ) {
+
+ if ( function_exists('paged_comments') ) {
+ // If plugin "Paged Comments" is activated, for WP 2.6 and older
+ paged_comments_template();
+ } else {
+ // This will load either legacy comments template (for WP 2.6 and older) or the new standard comments template (for WP 2.7 and newer)
+ comments_template();
+ }
+ }
+ }
+}
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/functions/bfa_postinfo.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,543 @@
+<?php
+// Callback function for image replacement
+function bfa_image_files($matches) {
+ $templateURI = get_template_directory_uri();
+
+ return '<img src="' . $templateURI .
+ '/images/icons/' . $matches[1] . '" alt="" />';
+}
+
+
+// Callback function for post meta replacement
+function bfa_meta_value($matches) {
+ global $post;
+ return get_post_meta($post->ID, $matches[1], true);
+}
+
+// Date callback
+function bfa_parse_date_callback( $matches ) {
+ ob_start();
+ the_time($matches[2]);
+ $date = ob_get_contents();
+ ob_end_clean();
+ return $date;
+}
+
+// Date modified callback
+function bfa_parse_date_modified_callback( $matches ) {
+ ob_start();
+ the_modified_time($matches[2]);
+ $date_modified = ob_get_contents();
+ ob_end_clean();
+ return $date_modified;
+}
+
+function bfa_postinfo($postinfo_string) {
+
+ // one theme option needed below for nofollow trackback / RSS links yes/no
+ global $bfa_ata, $post;
+
+ /* replace date format escape placeholders(#) with the actual escpae
+ character (=backslashes). This function removes all backslashes from
+ post info strings to avoid issues with hosts that have magic_quotes_gpc ON.
+ But we want to keep the backslashes inside date items, because they are
+ needed to escape literal strings inside dates */
+ $postinfo_string = str_replace("#", "\\", $postinfo_string);
+
+ $postinfo = $postinfo_string;
+
+ // Author public name
+ if ( strpos($postinfo_string,'%author%') !== FALSE ) {
+ ob_start();
+ the_author();
+ $author = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author%", $author, $postinfo);
+ }
+
+ // Public name of Author who last modified a post, since WordPress 2.8.
+ // Check first if function is available (= if this is WP 2.8+)
+ if ( function_exists('the_modified_author') ) {
+ if ( strpos($postinfo_string,'%modified-author%') !== FALSE ) {
+ ob_start();
+ the_modified_author();
+ $modified_author = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%modified-author%", $modified_author, $postinfo);
+ }
+ }
+
+ // Author about yourself
+ if ( strpos($postinfo_string,'%author-description%') !== FALSE ) {
+ ob_start();
+ the_author_meta('description');
+ $author_description = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-description%", $author_description, $postinfo);
+ }
+
+ // Author login name
+ if ( strpos($postinfo_string,'%author-login%') !== FALSE ) {
+ ob_start();
+ the_author_meta('user_login');
+ $author_login = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-login%", $author_login, $postinfo);
+ }
+
+ // Author first name
+ if ( strpos($postinfo_string,'%author-firstname%') !== FALSE ) {
+ ob_start();
+ the_author_meta('first_name');
+ $author_firstname = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-firstname%", $author_firstname, $postinfo);
+ }
+
+ // Author last name
+ if ( strpos($postinfo_string,'%author-lastname%') !== FALSE ) {
+ ob_start();
+ the_author_meta('last_name');
+ $author_lastname = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-lastname%", $author_lastname, $postinfo);
+ }
+
+ // Author nickname
+ if ( strpos($postinfo_string,'%author-nickname%') !== FALSE ) {
+ ob_start();
+ the_author_meta('nickname');
+ $author_nickname = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-nickname%", $author_nickname, $postinfo);
+ }
+
+ // Author ID
+ if ( strpos($postinfo_string,'%author-id%') !== FALSE ) {
+ ob_start();
+ the_author_meta('ID');
+ $author_ID = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-id%", $author_ID, $postinfo);
+ }
+
+ // Author email address, clear text in HTML source code
+ if ( strpos($postinfo_string,'%author-email-clear%') !== FALSE ) {
+ ob_start();
+ the_author_meta('email');
+ $author_email_clear = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-email-clear%", $author_email_clear, $postinfo);
+ }
+
+ // Author email address obfuscated
+ if ( strpos($postinfo_string,'%author-email%') !== FALSE ) {
+ $postinfo = str_replace("%author-email%", antispambot(get_the_author_email()), $postinfo);
+ }
+
+ // Author website URL
+ if ( strpos($postinfo_string,'%author-url%') !== FALSE ) {
+ ob_start();
+ the_author_meta('url');
+ $author_url = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-url%", $author_url, $postinfo);
+ }
+
+ // Author website link
+ if ( strpos($postinfo_string,'%author-link%') !== FALSE ) {
+ ob_start();
+ the_author_link();
+ $author_link = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-link%", $author_link, $postinfo);
+ }
+
+ // Author posts archive link
+ if ( strpos($postinfo_string,'%author-posts-link%') !== FALSE ) {
+ ob_start();
+ the_author_posts_link();
+ $author_posts_link = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-posts-link%", $author_posts_link, $postinfo);
+ }
+
+ // LEGACY: %author-linked% replaced by %author-posts-link% in 3.3.2, but displays the same: Author posts archive link
+ if ( strpos($postinfo_string,'%author-linked%') !== FALSE ) {
+ ob_start();
+ the_author_posts_link();
+ $author_posts_link = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-linked%", $author_posts_link, $postinfo);
+ }
+
+ // Author post count
+ if ( strpos($postinfo_string,'%author-post-count%') !== FALSE ) {
+ ob_start();
+ the_author_posts();
+ $author_post_count = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-post-count%", $author_post_count, $postinfo);
+ }
+
+ // Author AOL Instant Messenger screenname
+ if ( strpos($postinfo_string,'%author-aim%') !== FALSE ) {
+ ob_start();
+ the_author_meta('aim');
+ $author_aim = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-aim%", $author_aim, $postinfo);
+ }
+
+ // Author Yahoo IM ID
+ if ( strpos($postinfo_string,'%author-yim%') !== FALSE ) {
+ ob_start();
+ the_author_meta('yim');
+ $author_yim = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%author-yim%", $author_yim, $postinfo);
+ }
+
+ // Author Gravatar
+ if (strpos($postinfo_string, '%gravatar%') !== FALSE) {
+ $gravatar = get_avatar(get_the_author_meta('ID'), 30);
+ $postinfo = str_replace("%gravatar%", $gravatar, $postinfo);
+ }
+
+ // Date & Time
+ if ( strpos($postinfo_string,'%date(') !== FALSE ) {
+ $postinfo = preg_replace_callback("/%date\((.*?)'(.*?)'(.*?)\)%/is","bfa_parse_date_callback",$postinfo);
+ }
+
+ // Date & Time, last modified
+ if ( strpos($postinfo_string,'%date-modified(') !== FALSE ) {
+ $postinfo = preg_replace_callback("/%date-modified\((.*?)'(.*?)'(.*?)\)%/is","bfa_parse_date_modified_callback",$postinfo);
+ }
+
+ // Tags, linked - since WP 2.3
+ if ( strpos($postinfo_string,'%tags-linked') !== FALSE ) {
+ while ( strpos($postinfo,'%tags-linked') !== FALSE ) {
+ $tag_link_options = preg_match("/(.*)%tags-linked\('(.*?)'(.*?)'(.*?)'(.*?)'(.*?)'(.*)/i",
+ $postinfo_string,$tag_link_matches);
+ $tags_linked = get_the_tag_list($tag_link_matches[2], $tag_link_matches[4],
+ $tag_link_matches[6]);
+ $postinfo = preg_replace("/(.*)%tags-linked\((.*?)\)%(.*)/i", "\${1}" .
+ $tags_linked. "\${3}", $postinfo);
+ }
+ }
+
+ // Tags, linked. If post has no tags, categories are displayed instead - since WP 2.3
+ if ( strpos($postinfo_string,'%tags-cats-linked') !== FALSE ) {
+ while ( strpos($postinfo,'%tags-cats-linked') !== FALSE ) {
+ $tag_link_options = preg_match("/(.*)%tags-cats-linked\('(.*?)'(.*?)'(.*?)'(.*?)'(.*?)'(.*)/i",
+ $postinfo_string,$tag_link_matches);
+ ob_start();
+ the_tags($tag_link_matches[2], $tag_link_matches[4], $tag_link_matches[6]);
+ $tags_cats_linked = ob_get_contents();
+ ob_end_clean();
+ $postinfo = preg_replace("/(.*)%tags-cats-linked\((.*?)\)%(.*)/i", "\${1}" .
+ $tags_cats_linked. "\${3}", $postinfo);
+ }
+ }
+
+ // Tags, not linked - since WP 2.3
+ if ( strpos($postinfo_string,'%tags(') !== FALSE ) {
+ while ( strpos($postinfo,'%tags(') !== FALSE ) {
+
+ $tag_options = preg_match("/(.*)%tags\('(.*?)'(.*?)'(.*?)'(.*?)'(.*?)'(.*)/i",
+ $postinfo_string,$tag_matches);
+ $posttags = get_the_tags();
+
+ if ($posttags) {
+ foreach($posttags as $tag) {
+ $tag_list .= $tag->name . $tag_matches[4];
+ }
+ // remove last separator
+ $tag_list = preg_replace("/".$tag_matches[4]."$/mi", "", $tag_list);
+ $tags = $tag_matches[2] . $tag_list . $tag_matches[6];
+ } else {
+ $tags = "";
+ }
+ $postinfo = preg_replace("/(.*)%tags\((.*?)\)%(.*)/i", "\${1}" .$tags.
+ "\${3}", $postinfo);
+ }
+ }
+
+ // 1st category
+ if ( strpos($postinfo_string,'%category%') !== FALSE ) {
+ $all_categories = get_the_category();
+ $category = $all_categories[0]->cat_name;
+ $category_notlinked = $category;
+ $postinfo = str_replace("%category%", $category_notlinked, $postinfo);
+ }
+
+ // 1st category, linked
+ if ( strpos($postinfo_string,'%category-linked%') !== FALSE ) {
+ $all_categories = get_the_category();
+ $category = $all_categories[0]->cat_name;
+ $category_linked = '<a class="'.$category . '" href="' . get_category_link($all_categories[0]->cat_ID) .
+ '">' . $category . '</a>';
+ $postinfo = str_replace("%category-linked%", $category_linked, $postinfo);
+ }
+
+ // Categories, linked with class name added
+ $categories_linked = '';
+ if ( strpos($postinfo_string,'%categories-linked') !== FALSE ) {
+ while ( strpos($postinfo,'%categories-linked') !== FALSE ) {
+ $category_linked_separator = preg_match("/(.*)%categories-linked\('(.*?)'\)(.*)/i",
+ $postinfo_string,$category_linked_matches);
+ ob_start();
+ $categories = get_the_category();
+ $items_in_categories = count($categories);
+ $output = '';
+ $categories_count = $items_in_categories;
+ if($categories){
+ foreach($categories as $category) {
+ $categories_count -= 1;
+ if ($categories_count) {
+ $seperator = $category_linked_matches[2];
+ }
+ else {$seperator = '';}
+ $categories_linked .= '<a class="'.$category->slug . '" href="'.get_category_link( $category->term_id ).'" title="' . esc_attr( $category->name ) . '">'.$category->cat_name.$seperator.'</a>';
+ }
+ }
+ ob_end_clean();
+ $postinfo = preg_replace("/(.*)%categories-linked\((.*?)\)%(.*)/i", "\${1}" .
+ $categories_linked. "\${3}", $postinfo);
+ }
+ }
+
+ // Categories, not linked
+ if ( strpos($postinfo_string,'%categories(') !== FALSE ) {
+ while ( strpos($postinfo,'%categories(') !== FALSE ) {
+ $category_separator = preg_match("/(.*)%categories\('(.*?)'\)(.*)/i",
+ $postinfo_string,$category_matches);
+ $categories = "";
+ foreach((get_the_category()) as $category) {
+ $categories .= $category->cat_name . $category_matches[2];
+ }
+ // remove last separator
+ $categories = preg_replace("/".$category_matches[2]."$/mi", "", $categories);
+ $postinfo = preg_replace("/(.*)%categories\((.*?)\)%(.*)/i", "\${1}" .
+ $categories. "\${3}", $postinfo);
+ }
+ }
+
+ // Comment link
+ if ( strpos($postinfo_string,'%comments(') !== FALSE ) {
+ while ( strpos($postinfo,'%comments(') !== FALSE ) {
+
+ $comment_options = preg_match("/(.*)%comments\('(.*?)'(.*?)'(.*?)'(.*?)'(.*?)'(.*?)'(.*?)'(.*)/i",
+ $postinfo_string,$comment_matches);
+
+ if ( !comments_open() AND $comment_matches[8] == "dontshow" ) {
+ $comment_link = '';
+ } else {
+ ob_start();
+ comments_popup_link($comment_matches[2], $comment_matches[4],
+ $comment_matches[6], 'comments-link', $comment_matches[8]);
+ $comment_link = ob_get_contents();
+ ob_end_clean();
+ }
+
+ if (!comments_open() ) {
+ if ($post->comment_count == 0) {
+ $comment_link = '<strong>' . $comment_matches[8] . '</strong>';
+ } else {
+ $comment_link = $comment_link . ' - <strong>(' . $comment_matches[8] . ')</strong>';
+ }
+ }
+ if ( !comments_open() AND $comment_matches[8] == "dontshow" ) {
+ $comment_link = '';
+ }
+
+ $postinfo = preg_replace("/(.*)%comments\((.*?)\)%(.*)/i", "\${1}" .
+ $comment_link. "\${3}", $postinfo);
+ }
+ }
+
+ // Comments Feed link
+ if ( strpos($postinfo_string,'%comments-rss') !== FALSE ) {
+ while ( strpos($postinfo,'%comments-rss') !== FALSE ) {
+
+ $comments_rss_link_text = preg_match("/(.*)%comments-rss\('(.*?)'(.*)/i",
+ $postinfo_string,$comments_rss_matches);
+
+ ob_start();
+ post_comments_feed_link($comments_rss_matches[2]);
+ $comments_rss_link = ob_get_contents();
+ ob_end_clean();
+
+ // make link nofollow if set in theme options
+ if ( $bfa_ata['nofollow'] == "Yes" )
+ $comments_rss_link = str_replace('href=', 'rel="nofollow" href=', $comments_rss_link);
+
+ $postinfo = preg_replace("/(.*)%comments-rss\((.*?)\)%(.*)/i", "\${1}" .
+ $comments_rss_link. "\${3}", $postinfo);
+ }
+ }
+
+ // Trackback URL
+ if ( strpos($postinfo_string,'%trackback%') !== FALSE ) {
+ $trackback_url = trackback_url(FALSE);
+ $postinfo = str_replace("%trackback%", $trackback_url, $postinfo);
+ }
+
+ // Trackback Link
+ if ( strpos($postinfo_string,'%trackback-linked(') !== FALSE ) {
+ while ( strpos($postinfo,'%trackback-linked(') !== FALSE ) {
+ $trackback_url = trackback_url(FALSE);
+ $trackback_link_text = preg_match("/(.*)%trackback-linked\('(.*?)'(.*)/i",
+ $postinfo_string,$trackback_matches);
+ $trackback_link = '<a href="' . $trackback_url . '">' . $trackback_matches[2] . '</a>';
+
+ // make link nofollow if set in theme options
+ if ( $bfa_ata['nofollow'] == "Yes" ) {
+ $trackback_link = str_replace('href=', 'rel="nofollow" href=', $trackback_link);
+ }
+
+ $postinfo = preg_replace("/(.*)%trackback-linked\((.*?)\)%(.*)/i", "\${1}" .
+ $trackback_link. "\${3}", $postinfo);
+ }
+ }
+
+ // Trackback RDF
+ if ( strpos($postinfo_string,'%trackback-rdf%') !== FALSE ) {
+ ob_start();
+ trackback_rdf();
+ $trackback_rdf = "<!-- " . ob_get_contents() . " -->";
+ ob_end_clean();
+ $postinfo = str_replace("%trackback-rdf%", $trackback_rdf, $postinfo);
+ }
+
+ // Permalink
+ if ( strpos($postinfo_string,'%permalink%') !== FALSE ) {
+ ob_start();
+ the_permalink();
+ $permalink = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%permalink%", $permalink, $postinfo);
+ }
+
+ // Post ID
+ if ( strpos($postinfo_string,'%post-id%') !== FALSE ) {
+ ob_start();
+ the_ID();
+ $post_id = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%post-id%", $post_id, $postinfo);
+ }
+
+ // Post Title
+ if ( strpos($postinfo_string,'%post-title%') !== FALSE ) {
+ ob_start();
+ the_title();
+ $post_title = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%post-title%", $post_title, $postinfo);
+ }
+
+ // Edit post
+ if ( strpos($postinfo_string,'%edit(') !== FALSE ) {
+ while ( strpos($postinfo,'%edit(') !== FALSE ) {
+ $edit_options = preg_match("/(.*)%edit\('(.*?)'(.*?)'(.*?)'(.*?)'(.*?)'(.*)/i",
+ $postinfo_string,$edit_matches);
+ ob_start();
+ edit_post_link($edit_matches[4], $edit_matches[2], $edit_matches[6]);
+ $edit_link = ob_get_contents();
+ ob_end_clean();
+ $postinfo = preg_replace("/(.*)%edit\((.*?)\)%(.*)/i", "\${1}" .
+ $edit_link. "\${3}", $postinfo);
+ }
+ }
+
+ // Print
+ if ( strpos($postinfo_string,'%print(') !== FALSE ) {
+ while ( strpos($postinfo,'%print(') !== FALSE ) {
+ $print_text = preg_match("/(.*)%print\('(.*?)'(.*)/i",$postinfo_string,$print_text_matches);
+ $print_link = '<a href="javascript:window.print()">' .$print_text_matches[2]. '</a>';
+ $postinfo = preg_replace("/(.*)%print\((.*?)\)%(.*)/i", "\${1}" .
+ $print_link. "\${3}", $postinfo);
+ }
+ }
+
+ // For the "WP-Email" plugin
+ if ( strpos($postinfo_string,'%wp-email%') !== FALSE ) {
+ $wp_email = ( function_exists('wp_email') ? email_link($email_post_text = '',
+ $email_page_text = '', $echo = FALSE) : "" );
+ $postinfo = str_replace("%wp-email%", $wp_email, $postinfo);
+ }
+
+ // For the "WP-Print" plugin
+ if ( strpos($postinfo_string,'%wp-print%') !== FALSE ) {
+ $wp_print = ( function_exists('wp_print') ? print_link($print_post_text = '',
+ $print_page_text = '', $echo = FALSE) : "" );
+ $postinfo = str_replace("%wp-print%", $wp_print, $postinfo);
+ }
+
+ // For the "WP-PostViews" plugin
+ if ( strpos($postinfo_string,'%wp-postviews%') !== FALSE ) {
+ $wp_postviews = ( function_exists('the_views') ? the_views($display = FALSE) : "" );
+ $postinfo = str_replace("%wp-postviews%", $wp_postviews, $postinfo);
+ }
+
+ // For the "WP-PostRatings" plugin
+ if ( strpos($postinfo_string,'%wp-postratings%') !== FALSE ) {
+ $wp_postratings = ( function_exists('the_ratings') ?
+ the_ratings($start_tag = 'span', $custom_id = 0, $display = FALSE) : "" );
+ $postinfo = str_replace("%wp-postratings%", $wp_postratings, $postinfo);
+ }
+
+ // For the "Sociable" plugin
+ if ( strpos($postinfo_string,'%sociable%') !== FALSE ) {
+ ob_start();
+ $sociable = ( (function_exists('sociable_html2') AND function_exists( do_sociable() ) ) ? do_sociable() : "");
+ $sociable = ob_get_contents();
+ ob_end_clean();
+ $postinfo = str_replace("%sociable%", $sociable, $postinfo);
+ }
+
+ // For the "Share This" plugin
+ if ( strpos($postinfo_string,'%share-this%') !== FALSE ) {
+ ob_start();
+ if ( function_exists('sharethis_button') ) {
+ sharethis_button();
+ $share_this = ob_get_contents();
+ } else {
+ $share_this = "";
+ }
+ ob_end_clean();
+ $postinfo = str_replace("%share-this%", $share_this, $postinfo);
+ }
+
+ // Images
+ if ( strpos($postinfo_string,'<image(') !== FALSE )
+ $postinfo = preg_replace_callback("|<image\((.*?)\)>|","bfa_image_files",$postinfo);
+
+ /* The meta = ALL custom fields:values, formatted by Wordpress as
+ unordered list <ul><li>..</li><li>..</li></ul> */
+ if ( strpos($postinfo_string,'%meta%') !== FALSE ) {
+ ob_start();
+ the_meta();
+ $the_meta = ob_get_contents();
+ ob_end_clean();
+ // 3.4.3.: remove bfa_ata metas */
+ $the_meta = preg_replace("/<li>(.*)bfa_ata(.*)<\/li>/i", "", $the_meta);
+ $postinfo = str_replace("%meta%", $the_meta, $postinfo);
+ }
+
+ // Single post meta values, not formatted
+ if ( strpos($postinfo_string,'%meta(') !== FALSE )
+ $postinfo = preg_replace_callback("|%meta\('(.*?)'\)%|","bfa_meta_value",$postinfo);
+
+ // Since 3.6.7, parse widget areas
+ $postinfo = bfa_parse_widget_areas($postinfo);
+
+ return $postinfo;
+}
+
+function bfa_getH() {
+ global $bfa_ata, $post;
+ return('#');
+}
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/functions/bfa_recent_comments.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,338 @@
+<?php
+/*
+Plugin Name: BFA Recent Comments Widget
+Plugin URI: http://wordpress.bytesforall.com/
+Description: Highly configurable WordPress widget that shows a list of recent comments.
+Version: 1.0
+Author: BFA Webdesign
+Author URI: http://www.bytesforall.com/
+*/
+
+/*
+Based on v0.2.4 of Recent Comments Widget by Mika Perälä
+http://mika.kfib.org/
+
+Based on v0.1.1 of the Simple Recent Comments-plugin by Raoul
+http://www.raoul.shacknet.nu/
+
+License: GPL
+Compatibility: WordPress 2.2 or newer.
+
+Installation:
+Place the widget_simple_recent_comments.php file in your /wp-content/plugins/widgets/ directory
+and activate through the administration panel, and then go to the widget panel and
+drag it to where you would like to have it!
+*/
+
+/* Copyright BFA Webdesign - http://wordpress.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 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+
+/* Changelog
+* Fri Aug 22 2008 - v1.0
+- Initial release
+*/
+
+
+
+
+
+
+
+
+ // This is the function that outputs our little widget
+ function widget_simple_recent_comments($args) {
+ extract($args);
+
+ // Fetch our parameters
+ $bfa_rc_options = get_option('widget_simple_recent_comments');
+ $bfa_rc_title = $bfa_rc_options['bfa_rc_title'];
+ $bfa_rc_src_count = $bfa_rc_options['bfa_rc_src_count'];
+ $bfa_rc_src_length = $bfa_rc_options['bfa_rc_src_length'];
+ $bfa_rc_linking_scheme = $bfa_rc_options['bfa_rc_linking_scheme'];
+ $point_first_link = $bfa_rc_options['point_first_link'];
+ $point_second_link = $bfa_rc_options['point_second_link'];
+ $add_dots = $bfa_rc_options['add_dots'];
+ $limit_by = $bfa_rc_options['limit_by'];
+ $author_bold = $bfa_rc_options['author_bold'];
+ $author_em = $bfa_rc_options['author_em'];
+ $comment_bold = $bfa_rc_options['comment_bold'];
+ $comment_em = $bfa_rc_options['comment_em'];
+ $post_bold = $bfa_rc_options['post_bold'];
+ $post_em = $bfa_rc_options['post_em'];
+ $author_nofollow = $bfa_rc_options['author_nofollow'];
+ if(isset($bfa_rc_options['bfa_rc_pre_HTML'])) $bfa_rc_pre_HTML = $bfa_rc_options['bfa_rc_pre_HTML'];
+ else $bfa_rc_pre_HTML = '';
+ if(isset($bfa_rc_options['bfa_rc_post_HTML'])) $bfa_rc_post_HTML = $bfa_rc_options['bfa_rc_post_HTML'];
+ else $bfa_rc_post_HTML = '';
+ $bfa_rc_display_homepage = $bfa_rc_options['bfa_rc_display_homepage'];
+ $bfa_rc_display_category = $bfa_rc_options['bfa_rc_display_category'];
+ $bfa_rc_display_post = $bfa_rc_options['bfa_rc_display_post'];
+ $bfa_rc_display_page = $bfa_rc_options['bfa_rc_display_page'];
+ $bfa_rc_display_archive = $bfa_rc_options['bfa_rc_display_archive'];
+ $bfa_rc_display_tag = $bfa_rc_options['bfa_rc_display_tag'];
+ $bfa_rc_display_search = $bfa_rc_options['bfa_rc_display_search'];
+ $bfa_rc_display_author = $bfa_rc_options['bfa_rc_display_author'];
+ $bfa_rc_display_404 = $bfa_rc_options['bfa_rc_display_404'];
+
+ global $wpdb;
+
+ if ( (is_home() && $bfa_rc_display_homepage == "on") OR
+ (is_category() && $bfa_rc_display_category == "on") OR
+ (is_single() && $bfa_rc_display_post == "on") OR
+ (is_page() && $bfa_rc_display_page == "on") OR
+ (is_date() && $bfa_rc_display_archive == "on") OR
+ (is_tag() && $bfa_rc_display_tag == "on") OR
+ (is_search() && $bfa_rc_display_search == "on") OR
+ (is_author() && $bfa_rc_display_author == "on") OR
+ (is_404() && $bfa_rc_display_404 == "on")) {
+
+ // Build the query and fetch the results
+ $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_author_url, comment_content, comment_date_gmt, comment_approved, comment_type, ";
+
+ if ($limit_by == "letters") {
+ $sql .= "SUBSTRING(comment_content,1,$bfa_rc_src_length) AS com_excerpt "; }
+ elseif ($limit_by == "words") {
+ $sql .= "SUBSTRING_INDEX(comment_content,' ',$bfa_rc_src_length) AS com_excerpt "; }
+ $sql .= "FROM $wpdb->comments
+ LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID)
+ WHERE comment_approved = '1' AND comment_type = '' AND post_password = ''
+ ORDER BY comment_date_gmt DESC
+ LIMIT $bfa_rc_src_count";
+ $comments = $wpdb->get_results($sql);
+
+ // Generate the output string, prepend and append the HTML specified
+ $output = $bfa_rc_pre_HTML;
+ $output .= "\n<ul id=\"bfarecentcomments\">";
+ if (!empty($comments)) {
+ foreach ($comments as $comment) {
+ // Make a check if we need to print out '...' after the selected
+ // comment text. This needs to be done if the text is longer than
+ // the specified length.
+ $dots = '';
+# if ( $bfa_rc_src_length <= strlen(strip_tags($comment->com_excerpt)) ) $dots = "...";
+ if ($limit_by == "letters") {
+ if ( $bfa_rc_src_length <= strlen(strip_tags($comment->comment_content)) ) {$dots = "...";}
+ }
+ elseif ($limit_by == "words") {
+ if ( $bfa_rc_src_length <= count(explode(" ", strip_tags($comment->comment_content))) ) {$dots = "...";}
+ }
+ // different comment link for WP 2.7 and newer / WP 2.6 and older
+ if (function_exists('wp_list_comments')) { $comment_link = get_comment_link($comment->comment_ID); } else {
+ $comment_link = get_permalink($comment->ID) . "#comment-" . $comment->comment_ID; }
+ $post_link = get_permalink($comment->ID);
+ $author_link = $comment->comment_author_url;
+ if ($author_nofollow == "on") {$author_link = $author_link . '" rel="nofollow'; }
+
+ if ($point_first_link == "comment") {$first_link = $comment_link; }
+ elseif ($point_first_link == "post") {$first_link = $post_link; }
+ elseif ($point_first_link == "author") {$first_link = $author_link; }
+
+ if ($point_second_link == "comment") {$second_link = $comment_link; }
+ elseif ($point_second_link == "post") {$second_link = $post_link; }
+ elseif ($point_second_link == "author") {$second_link = $author_link; }
+
+ $comment_text = strip_tags($comment->com_excerpt);
+ if ($add_dots == "on") {$comment_text = $comment_text . $dots; }
+ if ($comment_bold == "on") {$comment_text2 = "<strong>$comment_text</strong>"; } else {$comment_text2 = $comment_text; }
+ if ($comment_em == "on") {$comment_text2 = "<em>$comment_text2</em>"; }
+ $post_text = apply_filters('the_title_rss', $comment->post_title);
+ if ($post_bold == "on") {$post_text2 = "<strong>$post_text</strong>"; } else {$post_text2 = $post_text; }
+ if ($post_em == "on") {$post_text2 = "<em>$post_text2</em>"; }
+ $author_text = $comment->comment_author;
+ if ($author_bold == "on") {$author_text2 = "<strong>$author_text</strong>"; } else {$author_text2 = $author_text; }
+ if ($author_em == "on") {$author_text2 = "<em>$author_text2</em>"; }
+
+ $output .= "\n\t<li class=\"bfarecentcomments\">";
+
+ if ( $bfa_rc_linking_scheme == "Author Comment link-1" ) {
+ $output .= "<a href=\"$first_link\" title=\"" . __('On: ','atahualpa') . "$post_text\">$author_text2</a>: $comment_text2";
+ } elseif ( $bfa_rc_linking_scheme == "Author Comment link-2" ) {
+ $output .= "$author_text2: <a href=\"$first_link\" title=\"" . __('On: ','atahualpa') . "$post_text\">$comment_text2</a>";
+ } elseif ( $bfa_rc_linking_scheme == "Author Comment link-1 link-2" ) {
+ $output .= "<a href=\"$first_link\">$author_text2</a>: <a href=\"$second_link\" title=\"" . __('On: ','atahualpa') . "$post_text\">$comment_text2</a>";
+ } elseif ( $bfa_rc_linking_scheme == "Author Comment link-all" ) {
+ $output .= "<a href=\"$first_link\" title=\"" . __('On: ','atahualpa') . "$post_text\">$author_text2: $comment_text2</a>";
+ } elseif ( $bfa_rc_linking_scheme == "Author on Post link-1" ) {
+ $output .= "<a href=\"$first_link\" title=\"$comment_text\">$author_text2</a>" . __(' on: ','atahualpa') . "$post_text2";
+ } elseif ( $bfa_rc_linking_scheme == "Author on Post link-2" ) {
+ $output .= "$author_text2" . __(' on: ','atahualpa') . "<a href=\"$first_link\" title=\"$comment_text\">$post_text2</a>";
+ } elseif ( $bfa_rc_linking_scheme == "Author on Post link-1 link-2" ) {
+ $output .= "<a href=\"$first_link\" title=\"$comment_text\">$author_text2</a>" . __(' on: ','atahualpa') . "<a href=\"$second_link\">$post_text2</a>";
+ } elseif ( $bfa_rc_linking_scheme == "Author on Post link-all" ) {
+ $output .= "<a href=\"$first_link\" title=\"$comment_text\">$author_text2" . __(' on: ','atahualpa') . "$post_text2</a>";
+ } elseif ( $bfa_rc_linking_scheme == "Post Comment link-1" ) {
+ $output .= "<a href=\"$first_link\" title=\"$author_text\">$post_text2</a>: $comment_text2";
+ } elseif ( $bfa_rc_linking_scheme == "Post Comment link-2" ) {
+ $output .= "$post_text2: <a href=\"$first_link\" title=\"$author_text\">$comment_text2</a>";
+ } elseif ( $bfa_rc_linking_scheme == "Post Comment link-1 link-2" ) {
+ $output .= "<a href=\"$first_link\">$post_text2</a>: <a href=\"$second_link\" title=\"$author_text\">$comment_text2</a>";
+ } elseif ( $bfa_rc_linking_scheme == "Post Comment link-all" ) {
+ $output .= "<a href=\"$first_link\" title=\"$author_text\">$post_text2: $comment_text2</a>";
+ }
+
+ $output .= "</li>";
+
+ }
+ } else {
+ $output .= 'No comments.';
+ }
+ $output .= "\n</ul>";
+ $output .= $bfa_rc_post_HTML;
+
+ // remove empty author links
+ $output = preg_replace("/<a href=\"\"(.*?)>(.*?)<\/a>/i","\\2",$output);
+ $output = preg_replace("/<a href=\"http:\/\/\"(.*?)>(.*?)<\/a>/i","\\2",$output);
+
+ // These lines generate the output
+
+ echo $before_widget . $before_title . $bfa_rc_title . $after_title;
+ echo $output;
+ echo $after_widget;
+ }
+ }
+
+
+ // This is the function that outputs the form to let the users edit
+ // the widget's parameters.
+ function widget_simple_recent_comments_control() {
+
+ // Fetch the options, check them and if need be, update the options array
+ $bfa_rc_options = $bfa_rc_newoptions = get_option('widget_simple_recent_comments');
+ if ( isset($_POST["bfa_rc_src-submit"]) ) {
+ $bfa_rc_newoptions['bfa_rc_title'] = strip_tags(stripslashes($_POST["bfa_rc_src-title"]));
+ $bfa_rc_newoptions['bfa_rc_src_count'] = (int) $_POST["bfa_rc_src_count"];
+ $bfa_rc_newoptions['bfa_rc_src_length'] = (int) $_POST["bfa_rc_src_length"];
+ $bfa_rc_newoptions['bfa_rc_linking_scheme'] = strip_tags(stripslashes($_POST["bfa_rc_linking_scheme"]));
+ $bfa_rc_newoptions['point_first_link'] = $_POST["point_first_link"];
+ $bfa_rc_newoptions['point_second_link'] = $_POST["point_second_link"];
+# $bfa_rc_newoptions['add_dots'] = $_POST["add_dots"];
+ $bfa_rc_newoptions['add_dots'] = !isset($_POST["add_dots"]) ? NULL : $_POST["add_dots"];
+ $bfa_rc_newoptions['limit_by'] = $_POST["limit_by"];
+ $bfa_rc_newoptions['author_bold'] = !isset($_POST["author_bold"]) ? NULL : $_POST["author_bold"];
+ $bfa_rc_newoptions['author_em'] = !isset($_POST["author_em"]) ? NULL : $_POST["author_em"];
+ $bfa_rc_newoptions['comment_bold'] = !isset($_POST["comment_bold"]) ? NULL : $_POST["comment_bold"];
+ $bfa_rc_newoptions['comment_em'] = !isset($_POST["comment_em"]) ? NULL : $_POST["comment_em"];
+ $bfa_rc_newoptions['post_bold'] = !isset($_POST["post_bold"]) ? NULL : $_POST["post_bold"];
+ $bfa_rc_newoptions['post_em'] = !isset($_POST["post_em"]) ? NULL : $_POST["post_em"];
+ $bfa_rc_newoptions['author_nofollow'] = !isset($_POST["author_nofollow"]) ? NULL : $_POST["author_nofollow"];
+ $bfa_rc_newoptions['bfa_rc_display_homepage'] = !isset($_POST["bfa_rc_display_homepage"]) ? NULL : $_POST["bfa_rc_display_homepage"];
+ $bfa_rc_newoptions['bfa_rc_display_category'] = !isset($_POST["bfa_rc_display_category"]) ? NULL : $_POST["bfa_rc_display_category"];
+ $bfa_rc_newoptions['bfa_rc_display_post'] = !isset($_POST["bfa_rc_display_post"]) ? NULL : $_POST["bfa_rc_display_post"];
+ $bfa_rc_newoptions['bfa_rc_display_page'] = !isset($_POST["bfa_rc_display_page"]) ? NULL : $_POST["bfa_rc_display_page"];
+ $bfa_rc_newoptions['bfa_rc_display_archive'] = !isset($_POST["bfa_rc_display_archive"]) ? NULL : $_POST["bfa_rc_display_archive"];
+ $bfa_rc_newoptions['bfa_rc_display_tag'] = !isset($_POST["bfa_rc_display_tag"]) ? NULL : $_POST["bfa_rc_display_tag"];
+ $bfa_rc_newoptions['bfa_rc_display_search'] = !isset($_POST["bfa_rc_display_search"]) ? NULL : $_POST["bfa_rc_display_search"];
+ $bfa_rc_newoptions['bfa_rc_display_author'] = !isset($_POST["bfa_rc_display_author"]) ? NULL : $_POST["bfa_rc_display_author"];
+ $bfa_rc_newoptions['bfa_rc_display_404'] = !isset($_POST["bfa_rc_display_404"]) ? NULL : $_POST["bfa_rc_display_404"];
+
+ }
+ if ( $bfa_rc_options != $bfa_rc_newoptions ) {
+ $bfa_rc_options = $bfa_rc_newoptions;
+ update_option('widget_simple_recent_comments', $bfa_rc_options);
+ }
+
+ // Default options to the parameters
+ if ( !$bfa_rc_options['bfa_rc_src_count'] ) $bfa_rc_options['bfa_rc_src_count'] = 7;
+ if ( !isset($bfa_rc_options['bfa_rc_src_length']) ) $bfa_rc_options['bfa_rc_src_length'] = 60;
+ if ( !isset($bfa_rc_options['bfa_rc_linking_scheme']) ) $bfa_rc_options['bfa_rc_linking_scheme'] = "Author Comment link-all";
+ if ( !isset($bfa_rc_options['point_first_link']) ) $bfa_rc_options['point_first_link'] = "author";
+ if ( !isset($bfa_rc_options['point_second_link']) ) $bfa_rc_options['point_second_link'] = "comment";
+ if ( !isset($bfa_rc_options['limit_by']) ) $bfa_rc_options['limit_by'] = "letters";
+ if ( !isset($bfa_rc_options['author_nofollow']) ) $bfa_rc_options['author_nofollow'] = "on";
+
+ $bfa_rc_src_count = $bfa_rc_options['bfa_rc_src_count'];
+ $bfa_rc_src_length = $bfa_rc_options['bfa_rc_src_length'];
+ $bfa_rc_linking_scheme = $bfa_rc_options['bfa_rc_linking_scheme'];
+ $point_first_link = $bfa_rc_options['point_first_link'];
+ $point_second_link = $bfa_rc_options['point_second_link'];
+ $add_dots = $bfa_rc_options['add_dots'];
+ $limit_by = $bfa_rc_options['limit_by'];
+ $author_bold = $bfa_rc_options['author_bold'];
+ $author_em = $bfa_rc_options['author_em'];
+ $comment_bold = $bfa_rc_options['comment_bold'];
+ $comment_em = $bfa_rc_options['comment_em'];
+ $post_bold = $bfa_rc_options['post_bold'];
+ $post_em = $bfa_rc_options['post_em'];
+ $author_nofollow = $bfa_rc_options['author_nofollow'];
+ $bfa_rc_display_homepage = $bfa_rc_options['bfa_rc_display_homepage'];
+ $bfa_rc_display_category = $bfa_rc_options['bfa_rc_display_category'];
+ $bfa_rc_display_post = $bfa_rc_options['bfa_rc_display_post'];
+ $bfa_rc_display_page = $bfa_rc_options['bfa_rc_display_page'];
+ $bfa_rc_display_archive = $bfa_rc_options['bfa_rc_display_archive'];
+ $bfa_rc_display_tag = $bfa_rc_options['bfa_rc_display_tag'];
+ $bfa_rc_display_search = $bfa_rc_options['bfa_rc_display_search'];
+ $bfa_rc_display_author = $bfa_rc_options['bfa_rc_display_author'];
+ $bfa_rc_display_404 = $bfa_rc_options['bfa_rc_display_404'];
+
+ // Deal with HTML in the parameters
+ if(isset($bfa_rc_options['bfa_rc_pre_HTML'])) $bfa_rc_pre_HTML = htmlspecialchars($bfa_rc_options['bfa_rc_pre_HTML'], ENT_QUOTES);
+ if(isset($bfa_rc_options['bfa_rc_post_HTML'])) $bfa_rc_post_HTML = htmlspecialchars($bfa_rc_options['bfa_rc_post_HTML'], ENT_QUOTES);
+ $bfa_rc_title = htmlspecialchars($bfa_rc_options['bfa_rc_title'], ENT_QUOTES);
+
+?>
+ Title: <input style="width: 450px;" id="bfa_rc_src-title" name="bfa_rc_src-title" type="text" value="<?php echo $bfa_rc_title; ?>" />
+ <hr noshade size="1" style="clear:left; color: #ccc">
+ <p style="text-align: left;">Show <input style="width: 40px;" id="bfa_rc_src_count" name="bfa_rc_src_count" type="text" value="<?php echo $bfa_rc_src_count; ?>" /> comments like this:</p>
+ <p style="float: left; width: 195px; text-align: left;"><input id="bfa_rc_linking_scheme" name="bfa_rc_linking_scheme" type="radio" value="Author Comment link-1" <?php if($bfa_rc_linking_scheme == "Author Comment link-1"){echo " CHECKED";}?> /> <a href="#" title="On: Post Title">Author Name</a>: Comment Text</p>
+ <p style="float: left; width: 195px; text-align: left;"><input id="bfa_rc_linking_scheme" name="bfa_rc_linking_scheme" type="radio" value="Author Comment link-2" <?php if($bfa_rc_linking_scheme == "Author Comment link-2"){echo " CHECKED";}?> /> Author Name: <a href="#" title="On: Post Title">Comment Text</a></p>
+ <p style="float: left; width: 195px; text-align: left;"><input id="bfa_rc_linking_scheme" name="bfa_rc_linking_scheme" type="radio" value="Author Comment link-1 link-2" <?php if($bfa_rc_linking_scheme == "Author Comment link-1 link-2"){echo " CHECKED";}?> /> <a href="#">Author Name</a>: <a href="#" title="On: Post Title">Comment Text</a></p>
+ <p style="float: left; width: 195px; text-align: left;"><input id="bfa_rc_linking_scheme" name="bfa_rc_linking_scheme" type="radio" value="Author Comment link-all" <?php if($bfa_rc_linking_scheme == "Author Comment link-all"){echo " CHECKED";}?> /> <a href="#" title="On: Post Title">Author Name: Comment Text</a></p>
+ <p style="float: left; width: 195px; text-align: left;"><input id="bfa_rc_linking_scheme" name="bfa_rc_linking_scheme" type="radio" value="Author on Post link-1" <?php if($bfa_rc_linking_scheme == "Author on Post link-1"){echo " CHECKED";}?> /> <a href="#" title="Comment Text">Author Name</a> on: Post Title</p>
+ <p style="float: left; width: 195px; text-align: left;"><input id="bfa_rc_linking_scheme" name="bfa_rc_linking_scheme" type="radio" value="Author on Post link-2" <?php if($bfa_rc_linking_scheme == "Author on Post link-2"){echo " CHECKED";}?> /> Author Name on: <a href="#" title="Comment Text">Post Title</a></p>
+ <p style="float: left; width: 195px; text-align: left;"><input id="bfa_rc_linking_scheme" name="bfa_rc_linking_scheme" type="radio" value="Author on Post link-1 link-2" <?php if($bfa_rc_linking_scheme == "Author on Post link-1 link-2"){echo " CHECKED";}?> /> <a href="#" title="Comment Text">Author Name</a> on: <a href="#">Post Title</a></p>
+ <p style="float: left; width: 195px; text-align: left;"><input id="bfa_rc_linking_scheme" name="bfa_rc_linking_scheme" type="radio" value="Author on Post link-all" <?php if($bfa_rc_linking_scheme == "Author on Post link-all"){echo " CHECKED";}?> /> <a href="#" title="Comment Text">Author Name on: Post Title</a></p>
+ <p style="float: left; width: 195px; text-align: left;"><input id="bfa_rc_linking_scheme" name="bfa_rc_linking_scheme" type="radio" value="Post Comment link-1" <?php if($bfa_rc_linking_scheme == "Post Comment link-1"){echo " CHECKED";}?> /> <a href="#" title="Author Name">Post Title</a>: Comment Text</p>
+ <p style="float: left; width: 195px; text-align: left;"><input id="bfa_rc_linking_scheme" name="bfa_rc_linking_scheme" type="radio" value="Post Comment link-2" <?php if($bfa_rc_linking_scheme == "Post Comment link-2"){echo " CHECKED";}?> /> Post Title: <a href="#" title="Author Name">Comment Text</a></p>
+ <p style="float: left; width: 195px; text-align: left;"><input id="bfa_rc_linking_scheme" name="bfa_rc_linking_scheme" type="radio" value="Post Comment link-1 link-2" <?php if($bfa_rc_linking_scheme == "Post Comment link-1 link-2"){echo " CHECKED";}?> /> <a href="#">Post Title</a>: <a href="#" title="Author Name">Comment Text</a></p>
+ <p style="float: left; width: 195px; text-align: left;"><input id="bfa_rc_linking_scheme" name="bfa_rc_linking_scheme" type="radio" value="Post Comment link-all" <?php if($bfa_rc_linking_scheme == "Post Comment link-all"){echo " CHECKED";}?> /> <a href="#" title="Author Name">Post Title: Comment Text</a></p>
+ <hr noshade size="1" style="clear:left; color: #ccc">
+ <p style="clear:left">Point the first link to:</p>
+ <p style="float: left; text-align: left;"><input id="point_first_link" name="point_first_link" type="radio" value="author" <?php if($point_first_link == "author"){echo " CHECKED";}?> /> the author's homepage (if any)</p>
+ <p style="float: left; margin-left: 10px; text-align: left;"><input id="point_first_link" name="point_first_link" type="radio" value="comment" <?php if($point_first_link == "comment"){echo " CHECKED";}?> /> the comments</p>
+ <p style="float: left; margin-left: 10px; text-align: left;"><input id="point_first_link" name="point_first_link" type="radio" value="post" <?php if($point_first_link == "post"){echo " CHECKED";}?> /> the post</p>
+ <p style="clear:left">Point the second link (if any) to:</p>
+ <p style="float: left; text-align: left;"><input id="point_second_link" name="point_second_link" type="radio" value="author" <?php if($point_second_link == "author"){echo " CHECKED";}?> /> the author's homepage (if any)</p>
+ <p style="float: left; margin-left: 10px; text-align: left;"><input id="point_second_link" name="point_second_link" type="radio" value="comment" <?php if($point_second_link == "comment"){echo " CHECKED";}?> /> the comments</p>
+ <p style="float: left; margin-left: 10px; text-align: left;"><input id="point_second_link" name="point_second_link" type="radio" value="post" <?php if($point_second_link == "post"){echo " CHECKED";}?> /> the post</p>
+ <hr noshade size="1" style="clear:left; color: #ccc">
+ <p><input id="author_nofollow" name="author_nofollow" type="checkbox" <?php if($author_nofollow == "on"){echo " CHECKED";}?> /> Set the link to the Author Homepage to "Nofollow"</p>
+ <hr noshade size="1" style="clear:left; color: #ccc">
+ Limit the comment text to <input style="width: 40px;" id="bfa_rc_src_length" name="bfa_rc_src_length" type="text" value="<?php echo $bfa_rc_src_length; ?>" /> <input id="limit_by" name="limit_by" type="radio" value="letters" <?php if($limit_by == "letters"){echo " CHECKED";}?> /> letters <input id="limit_by" name="limit_by" type="radio" value="words" <?php if($limit_by == "words"){echo " CHECKED";}?> /> words. <input id="add_dots" name="add_dots" type="checkbox" <?php if($add_dots == "on"){echo " CHECKED";}?> /> add "..." if the actual comment is longer than that.</p>
+ <hr noshade size="1" style="clear:left; color: #ccc">
+ <p>Make the Author Name <input id="author_bold" name="author_bold" type="checkbox" <?php if($author_bold == "on"){echo " CHECKED";}?> /> <strong>Bold</strong> <input id="author_em" name="author_em" type="checkbox" <?php if($author_em == "on"){echo " CHECKED";}?> /> <em>Emphasized</em></p>
+ <p>Make the Comment Text <input id="comment_bold" name="comment_bold" type="checkbox" <?php if($comment_bold == "on"){echo " CHECKED";}?> /> <strong>Bold</strong> <input id="comment_em" name="comment_em" type="checkbox" <?php if($comment_em == "on"){echo " CHECKED";}?> /> <em>Emphasized</em></p>
+ <p>Make the Post Title <input id="post_bold" name="post_bold" type="checkbox" <?php if($post_bold == "on"){echo " CHECKED";}?> /> <strong>Bold</strong> <input id="post_em" name="post_em" type="checkbox" <?php if($post_em == "on"){echo " CHECKED";}?> /> <em>Emphasized</em></p>
+ <hr noshade size="1" style="clear:left; color: #ccc">
+ <p>Display the list on:</p> <p style="float: left; width: 160px; text-align: left;"><input id="bfa_rc_display_homepage" name="bfa_rc_display_homepage" type="checkbox" <?php if($bfa_rc_display_homepage == "on"){echo " CHECKED";}?> /> Homepage</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_rc_display_category" name="bfa_rc_display_category" type="checkbox" <?php if($bfa_rc_display_category == "on"){echo " CHECKED";}?> /> Category Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_rc_display_post" name="bfa_rc_display_post" type="checkbox" <?php if($bfa_rc_display_post == "on"){echo " CHECKED";}?> /> Single Post Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_rc_display_page" name="bfa_rc_display_page" type="checkbox" <?php if($bfa_rc_display_page == "on"){echo " CHECKED";}?> /> "Page" Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_rc_display_archive" name="bfa_rc_display_archive" type="checkbox" <?php if($bfa_rc_display_archive == "on"){echo " CHECKED";}?> /> Archive Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_rc_display_tag" name="bfa_rc_display_tag" type="checkbox" <?php if($bfa_rc_display_tag == "on"){echo " CHECKED";}?> /> Tag Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_rc_display_search" name="bfa_rc_display_search" type="checkbox" <?php if($bfa_rc_display_search == "on"){echo " CHECKED";}?> /> Search Result Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_rc_display_author" name="bfa_rc_display_author" type="checkbox" <?php if($bfa_rc_display_author == "on"){echo " CHECKED";}?> /> Author Pages</p>
+ <p style="float: left; width: 160px; text-align: left;"><input id="bfa_rc_display_404" name="bfa_rc_display_404" type="checkbox" <?php if($bfa_rc_display_404 == "on"){echo " CHECKED";}?> /> 404 Not Found Pages</p>
+ <input type="hidden" id="bfa_rc_src-submit" name="bfa_rc_src-submit" value="1" />
+<?php
+ }
+
+ $widget_ops = array('classname' => 'widget_recent_comments', 'description' => __("Lists the most recent comments","atahualpa") );
+ $control_ops = array('width' => 600, 'height' => 500);
+ wp_register_sidebar_widget('recent_comments', __('BFA Recent Comments','atahualpa'), 'widget_simple_recent_comments', $widget_ops);
+ wp_register_widget_control('recent_comments', __('BFA Recent Comments','atahualpa'), 'widget_simple_recent_comments_control', $control_ops);
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/functions/bfa_rotating_header_images.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,46 @@
+<?php
+function bfa_rotating_header_images() {
+ global $bfa_ata;
+
+ $files = array();
+ $img_folder = $bfa_ata['ata_images_dir'];
+
+ if(!isset($bfa_ata['ata_images_dir'])
+ OR ($bfa_ata['ata_images_dir'] == '') ) {
+ $img_folder = 'ata-images'; }
+
+ if($bfa_ata['images_root'] != "wp-content") {
+ $imgpath = get_template_directory() . '/images/header/';
+ $imgdir = get_template_directory_uri() . '/images/header/';
+ } else {
+ $imgpath = ABSPATH . 'wp-content/' . $img_folder . '/header/';
+ $imgdir = content_url() . '/' . $img_folder . '/header/';
+ }
+
+ $dh = @opendir($imgpath);
+ if ($dh == FALSE) {
+ echo $imgpath . ' - ' . $bfa_ata['images_root'] . '<br /><strong><span style="color: #ff0000;">the folder permission or path to your header image folder is incorrect </color></span><br />';
+ return(FALSE);
+ }
+ while (FALSE !== ($filename = readdir($dh))) {
+ if( preg_match('/\.jpg/i', $filename) || preg_match('/\.gif/i', $filename) || preg_match('/\.png/i', $filename) ) {
+ $files[] = $filename;
+ }
+ }
+
+ if(isset($bfa_ata['header_image_sort_or_shuffle'])) {
+ if ($bfa_ata['header_image_sort_or_shuffle'] == "Sort") {
+ sort($files); }
+ else {
+ shuffle($files); }
+ }
+
+ closedir($dh);
+
+ foreach($files as $value) {
+ $bfa_header_images[] = '\'' . $imgdir . $value . '\'';
+ }
+
+return $bfa_header_images;
+}
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/functions/bfa_sociable2.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,76 @@
+<?php
+function sociable_html2($display=Array()) {
+ global $sociable_known_sites, $sociablepluginpath, $wp_query;
+
+ $active_sites = get_option('sociable_active_sites');
+ $html = "";
+ $imagepath = $sociablepluginpath.'images/';
+
+ // if no sites are specified, display all active
+ // have to check $active_sites has content because WP
+ // won't save an empty array as an option
+ if (empty($display) and $active_sites)
+ $display = $active_sites;
+ // if no sites are active, display nothing
+ if (empty($display))
+ return "";
+
+ // Load the post's data
+ $blogname = urlencode(get_bloginfo('name')." ".get_bloginfo('description'));
+ $post = $wp_query->post;
+
+ $excerpt = $post->post_excerpt;
+ if ($excerpt == "") {
+ $excerpt = urlencode(substr(strip_tags($post->post_content),0,250));
+ }
+ $excerpt = str_replace('+','%20',$excerpt);
+
+ $permalink = urlencode(get_permalink($post->ID));
+
+ $title = urlencode($post->post_title);
+ $title = str_replace('+','%20',$title);
+
+ $rss = urlencode(get_bloginfo('ref_url'));
+
+ $html .= "\n<span class=\"sociable\">\n";
+ $html .= "<ul>\n";
+
+ foreach($display as $sitename) {
+ // if they specify an unknown or inactive site, ignore it
+ if (!in_array($sitename, $active_sites))
+ continue;
+
+ $site = $sociable_known_sites[$sitename];
+
+ $url = $site['url'];
+ $url = str_replace('PERMALINK', $permalink, $url);
+ $url = str_replace('TITLE', $title, $url);
+ $url = str_replace('RSS', $rss, $url);
+ $url = str_replace('BLOGNAME', $blogname, $url);
+ $url = str_replace('EXCERPT', $excerpt, $url);
+
+ if (isset($site['description']) && $site['description'] != "") {
+ $description = $site['description'];
+ } else {
+ $description = $sitename;
+ }
+ $link = "<li>";
+ $link .= "<a rel=\"nofollow\"";
+ if (get_option('sociable_usetargetblank')) {
+ $link .= " target=\"_blank\"";
+ }
+ $link .= " href=\"$url\" title=\"$description\">";
+ $link .= "<img src=\"$imagepath{$site['favicon']}\" title=\"$description\" alt=\"$description\" class=\"sociable-hovers";
+ if ($site['class'])
+ $link .= " sociable_{$site['class']}";
+ $link .= "\" />";
+ $link .= "</a></li>";
+
+ $html .= "\t".apply_filters('sociable_link',$link)."\n";
+ }
+
+ $html .= "</ul>\n</span>\n";
+
+ return $html;
+}
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/functions/bfa_subscribe.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,157 @@
+<?php
+function widget_bfa_subscribe($args) {
+ global $bfa_ata;
+ $templateURI = get_template_directory_uri();
+
+ extract($args);
+ $options = get_option('widget_bfa_subscribe');
+ $title = apply_filters('widget_title', $options['title']);
+ $email_text = apply_filters('widget_text', $options['email-text']);
+ $field_text = apply_filters('widget_title', $options['field-text']);
+ $submit_text = apply_filters('widget_title', $options['submit-text']);
+ $posts_text = apply_filters('widget_text', $options['posts-text']);
+ $comments_text = apply_filters('widget_text', $options['comments-text']);
+ $id = apply_filters('widget_title', $options['id']);
+ $google_or_feedburner = apply_filters('widget_title', $options['google-or-feedburner']);
+ echo $before_widget;
+ if ( !empty($title) ) { echo $before_title . $title . $after_title; }
+ // feedburner or google:
+ if ( $google_or_feedburner == "feedburner" ) {
+ $action_url = "www.feedburner.com/fb/a/emailverify";
+ $window_url = "www.feedburner.com/fb/a/emailverifySubmit?feedId=";
+ $hidden_value_url = "http://feeds.feedburner.com/~e?ffid=";
+ $hidden_uri = "url";
+ $hidden_input = '<input type="hidden" value="' . get_bloginfo('name') . '" name="title"/>';
+ } else {
+ $action_url = "feedburner.google.com/fb/a/mailverify";
+ $window_url = "feedburner.google.com/fb/a/mailverify?uri=";
+ $hidden_value_url = "";
+ $hidden_uri = "uri";
+ $hidden_input = "";
+ }
+ // replace URL placeholders:
+ $email_text = str_replace("%email-url", "http://" . $window_url . $id . "&loc=" . get_locale(), $email_text);
+ $posts_text = str_replace("%posts-url", get_bloginfo('rss2_url'), $posts_text);
+ $comments_text = str_replace("%comments-url", get_bloginfo('comments_rss2_url'), $comments_text);
+?>
+<form class="feedburner-email-form"
+action="http://<?php echo $action_url; ?>" method="post" target="popupwindow"
+onsubmit="window.open('http://<?php echo $window_url . $id; ?>',
+'popupwindow', 'scrollbars=yes,width=550,height=520');return true">
+<table class="subscribe" cellpadding="0" cellspacing="0" border="0"><tr>
+<td class="email-text" colspan="2"><p>
+<a href="http://<?php echo $window_url . $id; ?>&loc=<?php echo get_locale() .
+($bfa_ata_nofollow == "Yes" ? ' rel="nofollow"' : ''); ?>">
+<img src="<?php echo $templateURI; ?>/images/feedburner-email.gif" style="float:left; margin: 0 7px 3px 0" alt="" /></a><?php echo $email_text; ?></p>
+</td></tr><tr><td class="email-field"><input type="text" name="email" class="text inputblur" value="<?php echo $field_text; ?>"
+onfocus="this.value='';" />
+<input type="hidden" value="<?php echo $hidden_value_url . $id; ?>" name="<?php echo $hidden_uri; ?>"/>
+<?php echo $hidden_input ?>
+<input type="hidden" name="loc" value="<?php echo get_locale(); ?>"/>
+</td><td class="email-button">
+<input type="submit" class="button" value="<?php echo $submit_text; ?>" />
+</td></tr>
+<tr>
+<td class="post-text" colspan="2"><p>
+<a href="<?php echo get_bloginfo('rss2_url'); ?>"<?php if ($bfa_ata['nofollow'] == "Yes") { ?> rel="nofollow"<?php } ?>>
+<img src="<?php echo $templateURI; ?>/images/post-feed.gif" style="float:left; margin: 0 7px 3px 0" alt="" /></a><?php echo $posts_text; ?></p>
+</td>
+</tr>
+<tr>
+<td class="comment-text" colspan="2"><p>
+<a href="<?php echo get_bloginfo('comments_rss2_url'); ?>"<?php if ($bfa_ata['nofollow'] == "Yes") { ?> rel="nofollow"<?php } ?>>
+<img src="<?php echo $templateURI; ?>/images/comment-feed.gif" style="float:left; margin: 0 7px 3px 0" alt="" /></a><?php echo $comments_text; ?></p>
+</td>
+</tr>
+</table>
+</form>
+<?php
+ echo $after_widget;
+}
+function widget_bfa_subscribe_control() {
+ $options = $newoptions = get_option('widget_bfa_subscribe');
+ if ( isset($_POST["subscribe-submit"]) ) {
+ $newoptions['title'] = strip_tags(stripslashes($_POST["subscribe-title"]));
+
+ $newoptions['field-text'] = strip_tags(stripslashes($_POST["feedburner-email-field-text"]));
+ $newoptions['submit-text'] = strip_tags(stripslashes($_POST["feedburner-email-submit-text"]));
+
+ if ( current_user_can('unfiltered_html') ) {
+ $newoptions['email-text'] = stripslashes($_POST["subscribe-email-text"]);
+ $newoptions['posts-text'] = stripslashes($_POST["subscribe-posts-text"]);
+ $newoptions['comments-text'] = stripslashes($_POST["subscribe-comments-text"]);
+ } else {
+ $newoptions['email-text'] = stripslashes(wp_filter_post_kses($_POST["subscribe-email-text"]));
+ $newoptions['posts-text'] = stripslashes(wp_filter_post_kses($_POST["subscribe-posts-text"]));
+ $newoptions['comments-text'] = stripslashes(wp_filter_post_kses($_POST["subscribe-comments-text"]));
+ }
+
+ $newoptions['id'] = strip_tags(stripslashes($_POST["feedburner-email-id"]));
+ $newoptions['google-or-feedburner'] = strip_tags(stripslashes($_POST["google-or-feedburner"]));
+ }
+ if ( $options != $newoptions ) {
+ $options = $newoptions;
+ update_option('widget_bfa_subscribe', $options);
+ }
+ $title = esc_attr($options['title']);
+ $email_text = format_to_edit($options['email-text']);
+ $field_text = esc_attr($options['field-text']);
+ $submit_text = esc_attr($options['submit-text']);
+ $posts_text = format_to_edit($options['posts-text']);
+ $comments_text = format_to_edit($options['comments-text']);
+ $id = esc_attr($options['id']);
+ $google_or_feedburner = esc_attr($options['google-or-feedburner']);
+ if ( $google_or_feedburner == "" ) { $google_or_feedburner = "google"; }
+?>
+<p><label for="subscribe-title">Optional: Title:</label>
+<input class="widefat" id="subscribe-title" name="subscribe-title" type="text" value="<?php echo $title; ?>" /></p>
+
+<p><label for="subscribe-email-text"></label>
+Text for Email section. <?php if ( current_user_can('unfiltered_html')) echo' (HTML allowed. Email subscribe URL = %email-url)'; ?>
+<textarea class="widefat" style="width: 98%" rows="3" cols="20" id="subscribe-email-text" name="subscribe-email-text">
+<?php echo $email_text; ?></textarea></p>
+
+<p style="float: left; width: 69%; display: block">
+<label for="feedburner-email-field-text">Optional: Text inside Email input field:</label>
+<input class="widefat" id="feedburner-email-field-text" name="feedburner-email-field-text" type="text" value="<?php echo $field_text; ?>" /></p>
+
+<p style="float: right; width: 29%; display: block">
+<label for="feedburner-email-submit-text">Text for Email submit button:</label>
+<input class="widefat" id="feedburner-email-submit-text" name="feedburner-email-submit-text" type="text" value="<?php echo $submit_text; ?>" /></p>
+<div style="clear: both"></div>
+
+<p><label for="subscribe-posts-text"></label>
+Text for Posts RSS section <?php if ( current_user_can('unfiltered_html')) echo ' (HTML allowed. Posts feed URL = %posts-url)'; ?>
+<textarea class="widefat" style="width: 98%" rows="3" cols="20" id="subscribe-posts-text" name="subscribe-posts-text">
+<?php echo $posts_text; ?></textarea></p>
+
+<p><label for="subscribe-comments-text"></label>
+Text for Comments RSS section <?php if ( current_user_can('unfiltered_html')) echo ' (HTML allowed. Comments feed URL = %comments-url)'; ?>
+<textarea class="widefat" style="width: 98%" rows="3" cols="20" id="subscribe-comments-text" name="subscribe-comments-text">
+<?php echo $comments_text; ?></textarea></p>
+
+<p><label for="feedburner-email-id">Feedburner Email ID:</label>
+<input class="widefat" id="feedburner-email-id" name="feedburner-email-id" type="text" value="<?php echo $id; ?>" /></p>
+
+<p><strong>How to find the feed ID for this site at Feedburner:</strong><br />
+Login to your Feedburner account, click "My Feeds" -> Title of the feed in question -> Publicize -> Email Subscriptions -> Check out the two textareas.
+In the bigger one of the two textareas your ID appears as: <br />1) If you have an <strong>old feedburner.com</strong> account:
+www.feedburner.com/fb/a/emailverifySubmit?feedId=<strong style="color:green">1234567</strong>&loc=en_US<br />2) if you have a <strong>new feedburner.google.com</strong> account:
+feedburner.google.com/fb/a/mailverify?uri=<strong style="color:green">bytesforall/lzoG</strong>&loc=en_US<br />The green part is the ID that you need to put here.</p>
+
+<p>Is this a feedburner.google.com account or an old feedburner.com account?
+<p><input id="google-or-feedburner" name="google-or-feedburner" type="radio" value="google" <?php
+if($google_or_feedburner == "google"){echo " CHECKED";}?> /> New feedburner.google.com account</p>
+<p><input id="google-or-feedburner" name="google-or-feedburner" type="radio" value="feedburner" <?php
+if($google_or_feedburner == "feedburner"){echo " CHECKED";}?> /> Old feedburner.com account</p>
+
+ <input type="hidden" id="subscribe-submit" name="subscribe-submit" value="1" />
+
+<?php
+}
+// register feedburner email widget
+ $widget_ops = array('classname' => 'widget_bfa_subscribe', 'description' => 'Subscribe widget for RSS and Email' );
+ $control_ops = array('width' => 600, 'height' => 500);
+ wp_register_sidebar_widget('bfa_subscribe', 'BFA Subscribe', 'widget_bfa_subscribe', $widget_ops);
+ wp_register_widget_control('bfa_subscribe', 'BFA Subscribe', 'widget_bfa_subscribe_control', $control_ops);
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/functions/bfa_theme_options.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,3306 @@
+<?php
+
+// http://example.com/home/wp-content/themes/atahualpa
+$templateURI = get_template_directory_uri();
+
+// http://example.com/home
+$wordpress_base = home_url();
+
+// /wp-content/themes/atahualpa/
+$template_path = str_replace( $wordpress_base, '', $templateURI) . '/';
+
+// example.com/home
+$server_name_incl_wp_dir = str_replace("http://", "", $wordpress_base);
+
+// /home
+$wordpress_dir = str_replace($_SERVER['SERVER_NAME'], '', $server_name_incl_wp_dir);
+
+// /home/wp-content/themes/atahualpa/
+$css_img_path = $wordpress_dir . $template_path;
+
+# $bfa_ata_widget_areas = get_option('bfa_widget_areas');
+$bfa_ata = get_option('bfa_ata4');
+if(isset($bfa_ata['bfa_widget_areas'])) $bfa_ata_widget_areas = $bfa_ata['bfa_widget_areas'];
+else $bfa_ata_widget_areas = '';
+$widget_form_string = '';
+if (is_array($bfa_ata_widget_areas)) {
+ foreach ($bfa_ata_widget_areas as $widget_area) {
+ $widget_form_string .= '
+ <input type="checkbox" name="delete_widget_areas" id="' .
+ $widget_area['name'] . '" value="' . $widget_area['name'] .
+ '" /><label class="widget_area_label" for="' . $widget_area['name'] .
+ '">' . $widget_area['name'] . '</label><br />';
+ }
+}
+
+// Since 3.4.8, not activated yet, needs more code in css.php, js.php (3rd option), bfa_ata_admin.php ("New" tab)
+// and bfa_ata_add_admin.php (Save js and css files in WP Uploads with each "Save Changes")
+/*
+if (stristr(PHP_OS, 'WIN')) {
+ $slash = '\\';
+} else {
+ $slash = '/';
+}
+$upload_path = str_replace( 'themes', '', get_theme_root() ) . 'uploads';
+if(is_writable($upload_path)) {
+ $is_writable = "<span style='color:green;background:white'>Yes</span>";
+} else {
+ $is_writable = "<span style='color:red;background:white'>No</span>";
+}
+*/
+
+/* make some of these variables global in functions in 3.5.0+ */
+
+// different options text for WP and WPMU, because image upload works differently
+$header_image_text_wp = "To add your own header image(s), upload one or several
+images with any file names <code>anything.[jpg|gif|png]</code> i.e.
+<code>hfk7wdfw8.gif</code>, <code>IMAGE_1475.jpg</code>, <code>bla.png</code>
+to ". $template_path ."images/header/ through FTP. You will need a
+\"FTP Client\" software such as <a href=\"http://filezilla-project.org/download.php\">
+Filezilla</a> (free), the Firefox extension
+<a href=\"https://addons.mozilla.org/de/firefox/addon/684\">FireFTP</a> (free)
+or <a href=\"http://www.smartftp.com/download/\">SmartFTP</a> ($36.95).";
+
+$header_image_text_wpmu = "To upload your own header images, you'll need to prepare your header image(s)
+on your harddrive first. Rename your header images to <code>atahualpa_header_X.[jpg|gif|png|bmp]</code>
+(Example: <code>atahualpa_header_1.jpg</code>, <code>atahualpa_header_3.png</code>,
+<code>atahualpa_header_182.gif</code>) and then, upload them to your WordPress site through the WordPress Editor</strong>.
+<br /><br />There may be no \"upload\" tab in the admin area though. In that case, start as if you were going to
+add an image to a post: Go to Admin -> Manage -> Posts, and click on the title of an existing post to open the editor.
+Click on the \"Add Media\" link, and in the next window click on the \"Choose files to upload\" button.
+That will open a window on your local computer where you can find and select the header image
+(which you've already renamed as described before) on your local harddrive. Select \"Full Size\" and,
+do NOT click on \"Insert into Post\" but click on \"Save all changes\" instead. Now reload your Homepage
+and the new header image should appear. If you want more than one header image (to have them rotate) simply
+repeat all these steps. Atahualpa will autmatically recognize all images that are named
+<code>atahualpa_header_X.[jpg|png|gif]</code>. If there's only one image, then it'll be your single,
+\"static\" header image. If there's more than one image, then Atahualpa will rotate them with every pageview.";
+
+$logo_icon_text_wp = "To show your own graphic, upload an image to <strong>". $template_path ."images/</strong>
+and put the file name of the image into this field. <br /><br /><strong>Example:</strong><br /><code>myownlogo.gif</code>
+<br /><br />Make sure you have <strong>no spaces</strong> or exotic characters in the image file name.
+Your Windows or Mac Computer may display them but the hosting server probably won't. The image file can
+have a .gif, .jpg, .jpeg, .png or .bmp extension.";
+
+$logo_icon_text_wpmu = "To show your own graphic, upload an image through the WordPress Editor.
+There may be no \"upload\" tab in your WordPress version. To upload the image start as if you were going to
+add an image to a post: Go to Admin -> Manage -> Posts, and click on the title of an existing post to open
+the editor. Click on the \"Add Media\" link, and in the next window click on the \"Choose files to upload\" button.
+That will open a window on your local computer where you can select the image on your local harddrive.
+After you've selected the image, choose \"Full Size\" and, instead of clicking on \"Insert into Post\",
+click on \"Save all changes\". Then put the file name of your image into this field, i.e. <code>my-new-logo.jpg</code>
+and click \"Save changes\" at the bottom fo this page. Now reload your Homepage and your new logo should appear
+instead of the default one.<br /><br />Make sure you have no spaces or exotic characters in the image file name.
+Your Windows or Mac Computer may display them but the hosting server probably won't. The image file can have
+a .gif, .jpg, .jpeg, .png or .bmp extension.";
+
+if (defined('ABSPATH')) {
+ if (file_exists(ABSPATH."/wpmu-settings.php")) {
+ $header_image_text = $header_image_text_wpmu;
+ $logo_icon_text = $logo_icon_text_wpmu;
+ } else {
+ $header_image_text = $header_image_text_wp;
+ $logo_icon_text = $logo_icon_text_wp;
+ }
+}
+
+
+$go_to_pages = "go to Site Admin -> Manage -> Pages";
+$go_to_cats = "go to Site Admin -> Manage -> Categories";
+$path_to_widgets = "Design (\"Presentation\" in WP 2.3 and older)";
+
+
+
+
+
+
+
+
+
+// array of theme options starts here. Set the category of the first option of every new option category to "category_name", except for the very first option, which will be hard coded in functions.php
+$options1 = array(
+
+ array( "name" => "Thank you for using Atahualpa",
+ "category" => "start-here",
+ "id" => "start_here",
+ "type" => "info",
+ "lastoption" => "yes",
+ "info" => "<br />Since 3.6.6: <ul><li>Import settings by copying & pasting the content of the settings file into the textarea in the theme options - instead of uploading the settings file directly.</li>
+ <li>PHP code cannot be put into the textareas in the theme options anymore.</li>
+ </ul>
+ This is due to changed rules for themes listed at wordpress.org (No file operations, no processing of dynamic PHP code).
+ <h3 class='infohighlight-header'>Join for free:</h3>
+ <div class='infohighlight'>
+ <img src=\"" . $templateURI . "/images/comment_icon.png\" style=\"float: left; margin: 0px 10px 5px 0;\">
+
+ <a href='http://forum.bytesforall.com/register.php'>Become a member</a> of our active <a href='http://forum.bytesforall.com/'>Forum</a> and discuss Atahualpa with 1000's of other Atahualpa users.
+ Get new styles and language files, ask or answer questions and more.</div>
+ <h3 class='infohighlight-header'>Please donate if you can:</h3>
+ <div class='infohighlight'>
+ <img src=\"" . $templateURI . "/images/awardsmall.gif\" style=\"float: left; margin: 0px 10px 5px 0;\">
+ <a href='http://forum.bytesforall.com/awc_ds.php?do=donation'>Please donate</a> to support the Atahualpa/BytesForAll team. Your financial help will serve to maintain,
+ improve and support Atahualpa. <strong>Thank you</strong> <img src=\"" . $templateURI . "/images/heart.png\" style=\"\">
+ <em>BytesForAll Team</em>
+ </div>
+ <h3 class='infohighlight-header'>Or go even further:</h3>
+ <div class='infohighlight'>
+ <img src=\"" . $templateURI . "/images/award1small.gif\" style=\"float: left; margin: 0px 10px 5px 0;\">
+ <img src=\"" . $templateURI . "/images/diamondsmall.gif\" style=\"float: left; margin: 0px 10px 5px 0;\">
+ <a href='http://forum.bytesforall.com/awc_ds.php?do=donation'>Donate $20</a> or more to become a
+ <strong>Gold</strong> or <strong>Diamond</strong> member
+ for additonal benefits such as extra styles and tutorials and preferred
+ attention from developers and moderators.</div>
+ <br /><br />
+ "),
+
+// New category: Export/Import Settings
+
+ array(
+ "name" => "Export Atahualpa settings as file",
+ "category" => "export-import",
+ "switch" => "yes",
+ "id" => "export_settings",
+ "type" => "info",
+ "info" => "<br />Export the current Atahualpa settings and download them as a text file. This text file can be imported into this or another
+ Atahualpa 3.4.7+ installation:<br /><br /><a class='button' href='" . $wordpress_base . "/?bfa_ata_file=settings-download' id='settings-download'><strong>Export & Download</strong> Atahualpa Settings File</a>
+ <br /><br />The file will be named <code>ata-" . str_replace('.','', $_SERVER['SERVER_NAME']) . "-" . date('Y') . date('m') . date('d') . ".txt</code>. After you downloaded it,
+ you can (but don't need to) rename the file to something more meaningful.
+ "
+),
+
+ array(
+ "name" => "Import Atahualpa settings <span style='text-decoration:line-through'>file</span>",
+ "category" => "export-import",
+ "id" => "import_settings",
+ "type" => "info",
+ "info" => "<br /><strong>Paste the content of a settings file here</strong>
+ into this textarea and click 'Import'<br /><br />
+ PHP file functions cannot be used anymore in themes listed on wordpress.org, so we
+ had to remove file operations from Atahualpa (Upload isn't enough, Atahualpa needs to read the file, too). Instead of uploading a settings file you now need to copy the content of the settings file instead, and paste it into the textarea below, finally click 'Import Settings'.
+ <br />
+ <br /><span style='color:red;font-weight:bold'>THIS WILL OVERLAY ANY EXISTING SETTINGS YOU ALREADY HAVE</span>
+ <br /><textarea style='border:solid 1px black;' name='import-textarea' cols='80' rows='10' id='import-textarea'></textarea><br />
+ <br /><a class='button' href='#' id='import-settings'><strong>Import Settings</strong></a>
+ <br /><br />
+ <div id='settingsimported'></div>
+ <div class='infohighlight'>4 styles are included in the Atahualpa download, inside <code>/atahualpa/styles/: <code>ata-round.txt</code>, <code>ata-classic.txt</code>, <code>ata-default.txt</code> and <code>ata-adsense.txt</code>
+ </code> To use one of them open the file, select all (Ctrl+A), copy (Ctrl+C) and paste it (Ctrl+V) here. (Different keys on MAC)</div>"
+),
+
+ array(
+ "name" => "Delete the option 'bfa_ata4'",
+ "category" => "export-import",
+ "id" => "delete_bfa_ata4",
+ "type" => "info",
+ "lastoption" => "yes",
+ "info" => "<div class='infohighlight'>Since 3.4.7, the theme options are stored in one single option named <code>bfa_ata4</code>. If you had issues with Atahulpa 3.4.7, 3.4.8 or 3.4.9 you may have a corrupted option <code>bfa_ata4</code> in the database.<br /><br /><span style='color:red;font-weight:bold'>WARNING</span> - Pressing this button <span style='color:red;font-weight:bold'>WILL RESET ALL THEME OTPTIONS</span> to their default</div>
+ <br /><a class='button' href='#' id='delete_bfa_ata4'><strong>Delete 'bfa_ata4'</strong></a>, then reload a page on your site. This will create a new <code>bfa_ata4</code> entry in the database.<div id='bfa_ata4_deleted'></div>"
+),
+
+// New category: seo
+
+ array( "name" => "Use Post / Page Options?",
+ "category" => "seo",
+ "switch" => "yes",
+ "id" => "page_post_options",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "This adds a few option fields to the 'Write' panel of Wordpress, allowing you to set different titles
+ for posts or pages based on where the title appears (Meta Tag, Body on single post pages, Body on multi post pages)
+ <br /><br /><em>This used to be turned on by default in 3.4.6 and was removed in 3.4.7 - 3.4.9. It is an option that can be turned on
+ since 3.5.0.</em>"),
+
+ array( "name" => "Use Bytes For All SEO options?",
+ "category" => "seo",
+ "id" => "use_bfa_seo",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "<strong>Leave this at \"No\" if you're using ANY SEO plugin</strong> such as \"All-in-one-SEO\",
+ or any plugin that deals with meta tags in some way. If both a SEO plugin and Atahualpa's SEO functions are
+ activated, the meta tags of your site may get messed up, which might affect your search engine rankings.
+ <br /><br />If you leave this at \"No\", the next SEO options (except the last one, \"Nofollow RSS...\")
+ will become obsolete, you may just skip them. <br /><br /><em>Note: Even if you set this to \"Yes\", the
+ SEO functions listed below (except \"Nofollow RSS...\" and \"Make Post Titles H1\") will NOT be activated
+ IF Atahualpa recognizes that a SEO plugin is activated.</em>"),
+
+ array( "name" => "Homepage Meta Description",
+ "category" => "seo",
+ "id" => "homepage_meta_description",
+ "std" => "",
+ "type" => "textarea-large",
+ "escape" => "yes",
+ "info" => "Type 1-3 sentences, about 20-30 words total. Will be used
+ as Meta Description for (only) the homepage. If left blank, no Meta
+ Description will be added to the homepage.<br /><br />HTML: No<br />
+ Single and double quotes: Yes"),
+
+ array( "name" => "Homepage Meta Keywords",
+ "category" => "seo",
+ "id" => "homepage_meta_keywords",
+ "std" => "",
+ "type" => "textarea-large",
+ "escape" => "yes",
+ "info" => "Type 5-30 words or phrases, separated by comma. Will be used as the Meta Keywords for (only)
+ the homepage. If left blank, no Meta Keywords will be added to the homepage.<br /><br />HTML: No<br />
+ Single and double quotes: Technically, Yes, but search engines might object to it. Probably better to avoid
+ quotes here."),
+
+ array( "name" => "Meta Title Tag format",
+ "category" => "seo",
+ "id" => "add_blogtitle",
+ "type" => "select",
+ "std" => "Page Title - Blog Title",
+ "options" => array("Page Title - Blog Title",
+ "Blog Title - Page Title", "Page Title"),
+ "info" => "Show the blog title in front of or after the page title,
+ in the meta title tag of every page? Or, show only the page title?"),
+
+ array( "name" => "Meta Title Tag Separator",
+ "category" => "seo",
+ "id" => "title_separator_code",
+ "type" => "select",
+ "std" => "1",
+ "options" => array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
+ "11", "12", "13"),
+ "info" => "If you chose to include the blog title in the meta title
+ (the option above), choose here what to put <strong>between</strong>
+ the page and the blog title (or vice versa):<br /><br /> 1<code> «
+ </code> 2<code> » </code>
+ 3<code> : </code> 4<code>: </code>
+ 5<code> > </code> 6<code> < </code>
+ 7<code> - </code><br /><br />8<span style='background: white; padding: 0 15px'>‹</span>
+ 9<span style='background: white; padding: 0 15px'>›</span>
+ 10<span style='background: white; padding: 0 15px'>•</span>
+ 11<code> · </code> 12<span style='background: white; padding: 0 15px'>
+ —</span> 13<code> | </code>"),
+
+ array( "name" => "Noindex Date Archive Pages?",
+ "category" => "seo",
+ "id" => "archive_noindex",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "Include meta tag \"noindex, follow\" into date based
+ archive pages? The purpose is to keep search engines from spidering
+ duplicate content from your site."),
+
+ array( "name" => "Noindex Category pages?",
+ "category" => "seo",
+ "id" => "cat_noindex",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "Include meta tag \"noindex, follow\" into category pages?
+ Same purpose as above."),
+
+ array( "name" => "Noindex Tag pages?",
+ "category" => "seo",
+ "id" => "tag_noindex",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "Include meta tag \"noindex, follow\" into tag pages?
+ Same purpose as above."),
+
+ array( "name" => "Make Post/Page Titles H1?",
+ "category" => "seo",
+ "id" => "h1_on_single_pages",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "Make the Post/Page Titles H1 instead of H2, and the blog
+ title H2 instead of H1, on Single Post Pages and static \"Page\"
+ pages?<br /><em>This gives the actual content more weight
+ on their dedicated pages and downplays the weight of the blog title.
+ On all multi post pages (such as homepage, category pages, etc.),
+ the post titles will still be H2 and the blog title will be H1.</em>"),
+
+ array( "name" => "Nofollow RSS, trackback & admin links?",
+ "category" => "seo",
+ "id" => "nofollow",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "lastoption" => "yes",
+ "info" => "Make RSS, trackback & admin links \"nofollow\"?
+ Same purpose as above."),
+
+// New category: body-font-links
+
+ array( "name" => "Body Style",
+ "category" => "body-font-links",
+ "switch" => "yes",
+ "id" => "body_style",
+ "std" => "font-family: tahoma, arial, sans-serif;\nfont-size: 0.8em;\ncolor: #000000;\nbackground: #ffffff;",
+ "type" => "textarea-large",
+ "info" => "The styles you set here will apply to everything that doesn't get its own style. <br /><br />
+ <strong>Examples:</strong> <br /><br />Setting a background image for the body:<br /><code>background:
+ url(". $css_img_path ."images/backgr.gif) repeat top left;</code><br />To use your own image upload it to <code>
+ ". $css_img_path ."images/</code><br /><br />To put space above and below the layout:<br />
+ <code>padding-top: 20px; padding-bottom: 20px;</code><br /><br />Set padding here, instead of margin on the
+ layout container (see tab \"Layout\") because that won't work for the bottom, in Internet Explorer."),
+
+ array( "name" => "Link Default Color",
+ "category" => "body-font-links",
+ "id" => "link_color",
+ "std" => "666666",
+ "type" => "text",
+ "info" => "All hex color codes."),
+
+ array( "name" => "Link Hover Color",
+ "category" => "body-font-links",
+ "id" => "link_hover_color",
+ "std" => "cc0000",
+ "type" => "text",
+ "info" => "Color of links when \"hovering\" over them with the mouse
+ pointer. All hex color codes."),
+
+ array( "name" => "Link Default Decoration",
+ "category" => "body-font-links",
+ "id" => "link_default_decoration",
+ "type" => "select",
+ "std" => "none",
+ "options" => array("none", "underline"),
+ "info" => "Underline links or not, in their default state?"),
+
+ array( "name" => "Link Hover Decoration",
+ "category" => "body-font-links",
+ "id" => "link_hover_decoration",
+ "type" => "select",
+ "std" => "underline",
+ "options" => array("underline", "none"),
+ "info" => "When the mouse pointer hovers over a link, underline it or not?"),
+
+ array( "name" => "Link Text Bold or Not",
+ "category" => "body-font-links",
+ "id" => "link_weight",
+ "type" => "select",
+ "std" => "bold",
+ "options" => array("bold", "normal"),
+ "lastoption" => "yes",
+ "info" => "Make link text bold or not?"),
+
+// New category: layout
+
+ array( "name" => "Layout WIDTH and type (FLUID or FIXED)",
+ "category" => "layout",
+ "switch" => "yes",
+ "id" => "layout_width",
+ "std" => "99%",
+ "type" => "text",
+ "size" => "7",
+ "info" => "This setting must contain either <code>%</code> (percent)
+ or <code>px</code> after the number. <br /><br /><strong>Examples
+ </strong><ul><li><code>990px</code> Fixed width of 990 pixels</li>
+ <li><code>92%</code> Fluid width of 92%</li><li><code>100%</code>
+ Fluid width spanning the whole browser viewport</li></ul>"),
+
+ array( "name" => "Layout MIN width",
+ "category" => "layout",
+ "id" => "layout_min_width",
+ "std" => "",
+ "type" => "text",
+ "size" => "5",
+ "info" => "OPTIONAL, and for FLUID layouts only: You may set a
+ MINIMUM width (in pixels) for fluid layouts, to limit the resizing
+ behaviour.<br /><br /><strong>Example:</strong> <code>770</code>"),
+
+ array( "name" => "Layout MAX width",
+ "category" => "layout",
+ "id" => "layout_max_width",
+ "std" => "",
+ "type" => "text",
+ "size" => "5",
+ "info" => "OPTIONAL, and for FLUID layouts only: You may set a
+ MAXIMUM width (in pixels) for fluid layouts, to limit the resizing
+ behaviour.<br /><br /><strong>Example:</strong> <code>1250</code>"),
+
+ array( "name" => "Layout Container Style",
+ "category" => "layout",
+ "id" => "layout_style",
+ "std" => "padding: 0;",
+ "type" => "textarea-large",
+ "info" => "Style the layout container here. The layout container
+ holds the whole page including header, sidebars, center column and
+ footer. <ul><li>Don't use <code>margin</code> here. margin-left and
+ margin-right are needed to center the layout container. There's
+ also no real need for left/right margin. You can get space on the
+ left and right of the layout with a layout-width such as 98%.
+ And instead of <code>margin-top</code> and <code>margin-bottom</code>
+ use padding on the body (see menu tab \"Body, Text & Links\")</li>
+ <li>Left/Right padding must be set separately in the next option.
+ It will be ignored (set to 0) here.</li></ul>
+ <strong>Example:</strong><br /><br /><code>border: solid 2px #cccccc;
+ <br />padding: 10px; /*This effectively only affects top/bottom
+ padding */</code><br /><code>background: #ffffff;<br />-moz-border-radius:10px;
+ <br />-khtml-border-radius: 10px;<br />-webkit-border-radius:10px;<br />
+ border-radius: 10px;</code><br /><br />NOTE: The rounded corners
+ won't be round in Internet Explorer."),
+
+ array( "name" => "Layout Container Padding Left/Right",
+ "category" => "layout",
+ "id" => "layout_style_leftright_padding",
+ "std" => "0",
+ "type" => "text",
+ "size" => "4",
+ "info" => "If you want left/right padding on the layout container,
+ put the pixel value here. Atahualpa needs this as a separate style,
+ in order to include it in the min/max width calculation.
+ <strong>Example:</strong> <code>20</code>"),
+
+ array( "name" => "IE Document Type",
+ "category" => "layout",
+ "id" => "IEDocType",
+ "type" => "select",
+ "std" => "None",
+ "options" => array("None", "EmulateIE7", "EmulateIE8", "IE8", "IE9", "Edge"),
+ "lastoption" => "yes",
+ "info" => "Set this option to force Internet Explorer to use a particular rendering mode (supported by Internet Explorer 8 and newer)"),
+
+// New category: Images location
+
+ array( "name" => "Image Locations",
+ "category" => "image-location",
+ "switch" => "yes",
+ "id" => "image_location_info",
+ "type" => "info",
+ "info" => "By default, the <ul><li><strong>logo</strong> is stored in the <code>atahualpa/images</code> folder</li><li><strong>favicon</strong> is stored in the <code>atahualpa/images/favicon</code> folder</li><li><strong>header images</strong> are stored in the <code>atahualpa/images/header</code> folder</li></ul>If you do an automatic WordPress upgrade of the theme, these folders (and any images you put in them) are erased and replaced with the default images provided with the theme. This option allows you to put those images in a new location that will not be effected by theme upgrades.
+<br /><br />By creating a folder in the 'wp-content' folder with a name like 'ata-images' and adding a second folder in it called 'header', you would put your <ul><li><strong>logo</strong> in the <code>wp-content/ata-images</code> folder</li><li><strong>favicon</strong> in the <code>wp-content/ata-images</code> folder</li><li><strong>header images</strong> in the <code>wp-content/ata-images/header</code> folder</li></ul> then setting the <code>Relative location of images</code> to 'wp-content', your images will still exist when you do the next theme upgrade.
+ "),
+
+ array( "name" => "Relative location of images?",
+ "category" => "image-location",
+ "id" => "images_root",
+ "type" => "select",
+ "std" => "atahualpa",
+ "options" => array("atahualpa", "wp-content"),
+ "info" => "This is the relative location of the logo, favicon and header images. (see above)"),
+
+ array( "name" => "Images Directory",
+ "category" => "image-location",
+ "id" => "ata_images_dir",
+ "std" => "ata-images",
+ "type" => "text",
+ "lastoption" => "yes",
+ "info" => "Base directory for images. No leading or trailing slashes. If the 'Relative location of header images?' is set to 'atahualpa' this option is ignored and the default Ataualpa folders will be used.<br /><br />
+For <strong>MULTI SITES</strong>, you should choose the 'wp-content' option and give each multisite a unique folder name like <code>multi-01</code> and <code>multi-02</code>"),
+
+// New category: favicon
+
+ array( "name" => "Favicon",
+ "category" => "favicon",
+ "id" => "favicon_file",
+ "std" => "new-favicon.ico",
+ "type" => "text",
+ "size" => "30",
+ "switch" => "yes",
+ "lastoption" => "yes",
+ "info" => "<img src=\"" . $templateURI .
+ "/options/images/favicon-locations.gif\" style=\"float: right;
+ margin: 0 0 10px 10px;\">" . "Put the file name of the favicon here,
+ i.e. <code>fff-sport_soccer.ico</code>. To use your own graphic,
+ upload a <code>your-file-name.ico</code> to
+ <strong>". $css_img_path ."images/favicon/</strong><br /><br />
+ Leave blank to show no favicon.<br /><br />
+ <em>If the icon doesn't show: In some browsers such as IE6 you might
+ have to clear cache and history and restart the browser</em><br />
+ <br /><em>1-favicon.ico - 44-favicon.ico are available as big
+ .png files (up to 128x128) at
+ <a href=\"http://www.icon-king.com/projects/nuvola/\">Nuvola Icon Set</a>
+ if you want to create a matching logo.</em><br /><br />
+ <em>NOTE: If you create your own favicon: Simply renaming a .gif,
+ .png or jpg file won't work in Internet Explorer. <code>.ico</code>
+ is an actual file format. Create a 32 bit .png (optional: with
+ transparent background) and a size of 16x16 pixels and convert it
+ into an <code>.ico</code> file with a software such as
+ <a href=\"http://www.towofu.net/soft-e/\">@Icon Sushi</a></em>
+ <img src=\"" . $templateURI . "/options/images/favicons.gif\"
+ style=\"display: block; margin: 10px;\">"),
+
+
+
+// New category: header
+
+ array( "name" => "Configure Header Area",
+ "category" => "header",
+ "switch" => "yes",
+ "id" => "configure_header",
+ "type" => "textarea-large",
+ "editable" => "yes",
+ "size" => "30",
+ "std" => "%pages %logo %bar1 %image %bar2",
+ "info" => "Choose from 10 header items to arrange a custom header area:
+ <ul><li><code>%pages</code> - The horizontal drop down menu bar for
+ \"Page\" pages</li><li><code>%page-center</code> - Like above but centered.
+ Note: There's no S in this tag. It's <strong>not</strong> %page<strong>S</strong>-center</li>
+ <li><code>%page-right</code> - Like above but right-aligned.
+ Note: There's no S in this tag. It's <strong>not</strong> %page<strong>S</strong>-right</li>
+ <li><code>%cats</code> - The horizontal drop down
+ menu bar for categories</li><li><code>%cat-center</code> - Like above but centered.
+ Note: There's no S in this tag. It's <strong>not</strong> %cat<strong>S</strong>-center</li>
+ <li><code>%cat-right</code> - Like above but right-aligned.
+ Note: There's no S in this tag. It's <strong>not</strong> %cat<strong>S</strong>-right</li>
+ <li><code>%logo</code> - The logo area,
+ including the logo icon, the blog title & description, the search
+ box and the RSS/Email icons</li><li><code>%image</code> -
+ The rotating (or static) header image with the (optional) opacity
+ overlay left & right and an (optional) overlayed blog title & blog
+ tagline</li><li><code>%bar1</code> - A horizontal bar, to be used as
+ decoration on top, bottom of between header items. Can be used
+ multiple times.</li><li><code>%bar2</code> - A second horizontal bar,
+ that can be styled differently. Can be used multiple times.</li></ul>
+ You can style and configure these header items individually further
+ down on this page, and on the menu tabs <a href=\"javascript: myflowers.expandit('page-menu-bar-tab')\">Page Menu Bar</a> and
+ <a href=\"javascript: myflowers.expandit('cat-menu-bar-tab')\">Category Menu Bar</a>. <br /><br />This section here is just for the
+ overall configuration of the header area.<br /><br />List the header
+ items you want to display, in the order you want to display them.
+ <br /><br />Examples:<ul><li><code>%image %bar1 %logo %bar1 %pages</code>
+ </li><li><code>%pages %image %cats</code></li>
+ <li><code>%bar1 %logo %cats %bar2 %pages %bar1</code></li></ul>"),
+
+ array( "name" => "Full Width Header",
+ "category" => "header",
+ "id" => "full_width_header",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("Yes", "No"),
+ "info" => "When this option is set to<code>Yes</code>the header will extend across the full width of the browser window.
+ When set to<code>No</code>it will only span the width of the LAYOUT."),
+
+ array( "name" => "Logo Area: Styling",
+ "category" => "header",
+ "id" => "logoarea_style",
+ "std" => "",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/logo-area.jpg\" style=\"float: right;
+ margin: 0 0 10px 10px;\">" . "Style the header's logo area. The logo area is the container that holds
+ the logo / logo icon, the blog title, the blog tagline, the search box and the RSS/Email icons.
+ The height of the logo area will be determined by its content. If you want more height, set the height here.
+ You can set the height, borders and the background. Avoid margin and padding for this container - it's a table.
+ <br /><br /><strong>Example:</strong><br /><code>height: 150px;<br />background: #eeeeee;<br />
+ border: solid 1px #000000;</code>"),
+
+ array( "name" => "Show Logo Image?",
+ "category" => "header",
+ "id" => "logo",
+ "type" => "text",
+ "std" => "logo.png",
+ "info" => "Show a logo in the logo area? Leave blank to show no logo image. To test this, put <code>huge-logo.gif</code>
+ here and set both \"Show Blog Title\" and \"Show Blog Tagline\" to \"No\" below. <br /><br />
+ To show your own graphic, upload an image to the directory you defined in the <code>Images Location</code>."),
+
+ array( "name" => "Logo Image: Styling",
+ "category" => "header",
+ "id" => "logo_style",
+ "std" => "margin: 0 10px 0 0;",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/logo-style.gif\" style=\"float: right;
+ margin: 0 0 10px 10px;\">" . "Style the logo here, i.e. give it a border or move it around by applying margins.
+ <br /><br /><strong>Example:</strong><br /><br /><code>margin: 30px 30px 30px 30px;</code>"),
+
+ array( "name" => "Show Blog Title?",
+ "category" => "header",
+ "id" => "blog_title_show",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "You can remove the blog title, i.e. if you want to have just a (bigger) graphical logo instead
+ of a small logo icon plus the blog title in HTML. If you set this to \"No\" you'll probably want to remove
+ the Blog Tagline as well (see below)"),
+
+ array( "name" => "Blog Title",
+ "category" => "header",
+ "id" => "blog_title_style",
+ "std" => "margin: 0;\npadding: 0;\nletter-spacing: -1px;\nline-height: 1.0em;\nfont-family: tahoma, arial, sans-serif;\nfont-size: 240%;",
+ "type" => "textarea-large",
+ "info" => "Style the blog title font except the color and font-weight (= next options)."),
+
+ array( "name" => "Blog Title: Font Weight",
+ "category" => "header",
+ "id" => "blog_title_weight",
+ "type" => "select",
+ "std" => "bold",
+ "options" => array("bold", "normal"),
+ "info" => "Make blog title bold or not."),
+
+ array( "name" => "Blog Title Color",
+ "category" => "header",
+ "id" => "blog_title_color",
+ "std" => "666666",
+ "type" => "text",
+ "info" => "The blog title default color."),
+
+ array( "name" => "Blog Title Color: Hover",
+ "category" => "header",
+ "id" => "blog_title_color_hover",
+ "std" => "000000",
+ "type" => "text",
+ "info" => "The blog title hover color."),
+
+ array( "name" => "Show Blog Tagline?",
+ "category" => "header",
+ "id" => "blog_tagline_show",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "You can remove the blog tagline here. The blog tagline is
+ the short blog description under the blog title. It can be set at
+ Settings -> General -> Tagline."),
+
+ array( "name" => "Blog Tagline",
+ "category" => "header",
+ "id" => "blog_tagline_style",
+ "std" => "margin: 0;\npadding: 0;\nfont-size: 1.2em;\nfont-weight: bold;\ncolor: #666666;",
+ "type" => "textarea-large",
+ "info" => "Style the blog tagline."),
+
+ array( "name" => "Show search box?",
+ "category" => "header",
+ "id" => "show_search_box",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "You can remove the search box from the header here.<br />
+ <br /><em>To put a search box into one of the sidebars, go to
+ Site Admin -> " . $path_to_widgets . " -> Widgets, and add the \"Search\"
+ widget to one of the sidebars.</em>"),
+
+ array( "name" => "Search box",
+ "category" => "header",
+ "id" => "searchbox_style",
+ "std" => "border: 1px dashed #cccccc;\nborder-bottom: 0;\nwidth: 200px;\nmargin: 0;\npadding: 0;",
+ "type" => "textarea-large",
+ "info" => "Style the searchbox in the header."),
+
+ array( "name" => "Text in header search box",
+ "category" => "header",
+ "id" => "searchbox_text",
+ "std" => "",
+ "type" => "text",
+ "size" => "30",
+ "info" => "Show pre-filled text in the header search box, such as
+ <code>Type + Enter to search</code> ?"),
+
+ array( "name" => "Horizontal Bar 1: Styling",
+ "category" => "header",
+ "id" => "horbar1",
+ "std" => "height: 5px;\nbackground: #ffffff;\nborder-top: dashed 1px #cccccc;",
+ "type" => "textarea-large",
+ "info" => "2 (empty) horizontal bars are available, both of which you can style differently and use once or
+ multiple times as additional styling elements for the header area. These bars will span the whole layout width.
+ You can style their background color, height and all 4 borders (top, right, bottom, left)."),
+
+ array( "name" => "Horizontal Bar 2: Styling",
+ "category" => "header",
+ "id" => "horbar2",
+ "std" => "height: 5px;\nbackground: #ffffff;\nborder-bottom: dashed 1px #cccccc;",
+ "type" => "textarea-large",
+ "lastoption" => "yes",
+ "info" => "Style the 2nd horizontal bar here. You can use each one of these bars multiple times (or not at all)."),
+
+// New category: header-image
+
+ array( "name" => "Header Images",
+ "category" => "header-image",
+ "switch" => "yes",
+ "id" => "header_image_info",
+ "type" => "info",
+ "info" => "<br />All header images are located in the <code>Header Images Directory</code>. All images in that directory will
+ be rotated. If you don't want rotating header images, leave only one image in that directory. <ul><li>If you
+ chose a fixed width layout, the image(s) should be as wide as your <a href=\"javascript: myflowers.expandit('layout-tab')\">layout width</a>.</li><li>If you chose a fluid layout,
+ the images should be as wide as your \"max width\" setting.</li><li>If you chose no \"max-width\" setting, your
+ images should be as wide as the widest screen resolution (of your visitors) you want to cater for. 1280 pixels is
+ common today, so the images should be that wide or wider. The next common screen widths are 1440, 1600, 1680 and
+ 1920 pixels. </li></ul>" . $header_image_text),
+
+ array( "name" => "Rotate header images with Javascript?",
+ "category" => "header-image",
+ "id" => "header_image_javascript",
+ "type" => "select",
+ "std" => "0",
+ "options" => array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30),
+ "info" => "Select amount of seconds between rotation. Set to 0 to not use Javascript for rotation. In this case
+ a new random image from the <code>Header Images Directory</code> will be used on each page view, but the images won't rotate while the page is being viewed."),
+
+ array( "name" => "Sort or Shuffle header images?",
+ "category" => "header-image",
+ "id" => "header_image_sort_or_shuffle",
+ "type" => "select",
+ "std" => "Sort",
+ "options" => array("Sort", "Shuffle"),
+ "info" => "Setting this to <strong>Sort</strong> will sort the images by filename. Selecting <strong>Shuffle</strong> will randomly present the images."),
+
+ array( "name" => "Fade in/out header images with Javascript?",
+ "category" => "header-image",
+ "id" => "crossslide_fade",
+ "type" => "select",
+ "std" => "0",
+ "options" => array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30),
+ "info" => "Select duration of fade effect in seconds. Set to 0 to not fade images. In this case
+ the images will be rotated abruptly."),
+
+ array( "name" => "Preload header images for Javascript rotation?",
+ "category" => "header-image",
+ "id" => "header_image_javascript_preload",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "Preload the header images for Javascript rotation? Should probably be set to \"No\" if you have many header
+ images."),
+
+ array( "name" => "Make header image clickable?",
+ "category" => "header-image",
+ "id" => "header_image_clickable",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "Select \"Yes\" to make the header image clickable and to link it to the homepage."),
+
+ array( "name" => "Header Image: Height",
+ "category" => "header-image",
+ "id" => "headerimage_height",
+ "std" => "150",
+ "type" => "text",
+ "size" => "5",
+ "info" => "<img src=\"" . $templateURI . "/options/images/header-image-height.jpg\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Visible height of the header image(s), <strong>in pixels</strong>.
+ Change this value to show a taller or less tall area of the header image(s). <br /><br /><em>This value
+ does not need to match the actual height of your header image(s). In fact, all your header images could
+ have different (actual) heights. Only the top XXX (= value that you set here) pixels of each image will
+ be shown, the rest will be hidden. </em>"),
+
+ array( "name" => "Header Image: Alignment",
+ "category" => "header-image",
+ "id" => "headerimage_alignment",
+ "type" => "select",
+ "std" => "top center",
+ "options" => array("top center", "top left", "top right", "center left", "center center", "center right",
+ "bottom left", "bottom center", "bottom right"),
+ "info" => "The aligned edge or end of the image will be the fixed part, and the image will be cut off from
+ the opposite edge or end if it doesn't fit into the visitor's browser viewport. <br /><br />
+ <strong>Example:</strong> If you choose \"Top Left\" as the alignment, then the image(s) will be cut off
+ from the opposite edge, which would be \"Bottom Right\" in this case.<br /><br />
+ <strong>NOTE: If you choose to rotate and fade the header image, this option will automatically use \"Top Left\" as the alignment to prevent the image(s) from jumping when they are displayed.</strong>"),
+
+ array( "name" => "Opacity LEFT: Value",
+ "category" => "header-image",
+ "id" => "header_opacity_left",
+ "std" => "40",
+ "type" => "select",
+ "options" => array("0", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65",
+ "70", "75", "80", "85", "90", "95"),
+ "info" => "<img src=\"" . $templateURI . "/options/images/opacity.jpg\" style=\"float: right;
+ margin: 0 0 10px 10px;\">" . "Opacity overlay for the LEFT hand side of the header image.
+ Choose 0 to remove the Opacity."),
+
+ array( "name" => "Opacity LEFT: Width",
+ "category" => "header-image",
+ "id" => "header_opacity_left_width",
+ "std" => "200",
+ "type" => "text",
+ "size" => "5",
+ "info" => "<img src=\"" . $templateURI . "/options/images/opacity-left-width.jpg\" style=\"float: right;
+ margin: 0 0 10px 10px;\">" . "Width of the Opacity overlay for the LEFT hand side of the header image,
+ <strong>in pixels</strong>. To match this to the left sidebar's width, add up the left sidebar's width plus
+ its left and right paddings, if you've set any."),
+
+ array( "name" => "Opacity LEFT: Color",
+ "category" => "header-image",
+ "id" => "header_opacity_left_color",
+ "std" => "ffffff",
+ "type" => "text",
+ "info" => "Color of the Opacity overlay for the LEFT hand side of the header image."),
+
+ array( "name" => "Opacity RIGHT: Value",
+ "category" => "header-image",
+ "id" => "header_opacity_right",
+ "std" => "40",
+ "type" => "select",
+ "options" => array("0", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65",
+ "70", "75", "80", "85", "90", "95"),
+ "info" => "<img src=\"" . $templateURI . "/options/images/opacity.jpg\" style=\"float: right;
+ margin: 0 0 10px 10px;\">" . "Opacity overlay for the RIGHT hand side of the header image.
+ Choose 0 to remove the Opacity."),
+
+ array( "name" => "Opacity RIGHT: Width",
+ "category" => "header-image",
+ "id" => "header_opacity_right_width",
+ "std" => "200",
+ "type" => "text",
+ "size" => "5",
+ "info" => "<img src=\"" . $templateURI . "/options/images/opacity-right-width.jpg\" style=\"float: right;
+ margin: 0 0 10px 10px;\">" . "Width of the Opacity overlay for the RIGHT hand side of the header image,
+ <strong>in pixels</strong>. To match this to the right sidebar's width, add up the left sidebar's width plus
+ its left and right paddings, if you've set any."),
+
+ array( "name" => "Opacity RIGHT: Color",
+ "category" => "header-image",
+ "id" => "header_opacity_right_color",
+ "std" => "ffffff",
+ "type" => "text",
+ "info" => "Color of the Opacity overlay for the RIGHT hand side of the header image."),
+
+ array( "name" => "Overlay Blog TITLE over Header Image(s)?",
+ "category" => "header-image",
+ "id" => "overlay_blog_title",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "An alternative location for the blog title."),
+
+ array( "name" => "Overlay Blog TAGLINE over Header Image(s)?",
+ "category" => "header-image",
+ "id" => "overlay_blog_tagline",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "An alternative location for the blog tagline."),
+
+ array( "name" => "Overlayed Blog Title/Tagline Style",
+ "category" => "header-image",
+ "id" => "overlay_box_style",
+ "std" => "margin-top: 30px;\nmargin-left: 30px;",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/header-overlay.jpg\" style=\"float: right;
+ margin: 0 0 10px 10px;\">" . "The overlayed blog title and blog tagline will be in a div container.
+ Move that container around by changing the <code>margin-top</code> and <code>margin-left</code> values.
+ To right-align the overlayed container, add <code>float: right;</code> and replace <code>margin-left</code>
+ with <code>margin-right</code>. To center it, add <code>float:none; margin-left:auto; margin-right:auto;
+ text-align:center;</code> and, instead of adding margin-top here, add padding-top to
+ the parent container, via <a href=\"javascript: myflowers.expandit('html-inserts-tab')\">HTML/CSS Inserts</a> -> CSS Inserts:
+ <code>div.header-image-container { padding-top: 30px; height: XXXpx; }</code> with XXX = desired image height -
+ padding-top value.<br />
+ <br />You can add background color, borders and padding, too.
+ <br /><br /><strong>Example (as shown in the image):</strong><br /><br /><code>margin-top: 30px;<br />margin-left: 30px;<br />
+ width: 300px;<br />padding: 7px;<br />background: #ffffff;<br />border: solid 2px #000000;<br />
+ filter: alpha(opacity=60);<br />-moz-opacity:.60;<br />opacity:.60;<br />-moz-border-radius: 7px;<br />
+ -khtml-border-radius: 7px;<br />-webkit-border-radius: 7px;<br />border-radius: 7px;</code><br /><br />
+ Leave <code>width: ...;</code> out to let the box adjust to the width of the blog title or tagline, whichever is longer.<br />
+ <br />To change the styles of the blog title or the blog tagline individually, see the menu tab \"Header\"."),
+
+ array( "name" => "Overlay Header Image",
+ "category" => "header-image",
+ "id" => "overlay_header_image",
+ "std" => "",
+ "type" => "textarea-large",
+ "lastoption" => "yes",
+ "info" => "The Overlay Header Image area allows you to put in HTML which will overlay the header image. You could use this code to put buttons for links on top of the header image.
+ <br /><br />
+ For example, suppose you want to put buttons to link to your Twitter and FaceBook sites. You put the images (facebook.jpg and twitter.jpg) in a folder in wp-contents ('wp-content/my-images').
+ You could add the following to this option<br /><br />
+ <code><div id=\"header_image_sociable\"><br /> <ul><br /> <li><a href=\"http://www.facebook.com/myid\"><br />
+ <img src=\"/wp-content/images/facebook.jpg\" alt=\"Facebook\" /></a></li><br />
+ <li><a href=\"http://www.twitter.com/myid\"><br />
+ <img src=\"/wp-content/images/twitter.jpg\" alt=\"Twitter\" /></a></li><br />
+ </ul><br /> </div></code>
+ <br /><br />Since 3.6.5 <span style='color:red'>PHP code cannot be used</span> anymore. The sample code above should still work, with the striked-through PHP code removed, if your WP installation is in the root of your domain. If it's in a subdirectory such as blog,
+ the image paths would begin with <code>/blog/wp-content/...</code> instead of <code>/wp-content/</code>
+ <br /><br />If you wanted to remove the bullets from the items and position the items on the right side of the image, you could put the following in the CSS Inserts<br /><br /><code>#header_image_sociable {position: absolute; right:40px; top: 20px;}<br />#header_image_sociable ul {list-style-type: none;}</code>"),
+
+// New category: feed-links
+
+ array( "name" => "RSS settings",
+ "category" => "feed-links",
+ "switch" => "yes",
+ "id" => "rss_settings_info",
+ "type" => "info",
+ "info" => "<br />Choose from 4 types of RSS links:<ul><li>Subscribe to the Posts feed</li><li>Subscribe to
+ the Comments feed</li><li>Subscribe by Email, via Feedburner</li><li>Subscribe to the comments of a single
+ post</li></ul>There are 4 different locations to place these RSS links:<ul><li>On the right hand side of
+ the logo area: Small buttons and/or text links.<br />Configuration: Menu tab \"RSS Settings\" (the page you're
+ looking at right now)</li><li>In a sidebar, via the widget \"BFA Subscribe\". Bigger buttons and text, plus
+ a Email form field.<br />Configuration: WP Admin -> Appearance (\"Design\" or \"Presentation\" in older WP versions) -> <a href='widgets.php'>Widgets</a>
+ -> BFA Subscribe.</li><li>In the area: Text links.<br />Configuration: Menu tab
+ <a href=\"javascript: myflowers.expandit('footer-style-tab')\">Style & edit FOOTER</a> -> Footer: Content.</li><li>
+ Above or below a post: Buttons and/or Text links<br />Configuration: Menu tab
+ 'Edit POST/PAGE INFO ITEMS' -> any of the 12 text areas.</li></ul>
+ After you've configured everything...<ul><li>... the \"Subscribe by Email\" link will go to Feedburner</li><li>...
+ the \"Subscribe by Email\" form field will be submitted to Feedburner</li><li>... but all Posts and Comments
+ Feed links will still go to the default WordPress RSS links</li></ul><strong>If you want to redirect all the
+ Posts and Comments RSS links to Feedburner, you will need to install the
+ <a href=\"http://www.google.com/support/feedburner/bin/answer.py?answer=78483&topic=13252\">Feedburner Feedsmith</a>
+ plugin.</strong> <em>Note: When copying and pasting your Feedburner feed URL from your Feedburner account into
+ the options page of Feedsmith here on your blog, make sure there is <strong>no space</strong> at the end of the
+ URL or Feedburner account name.</em><br /><br />Atahualpa does not send RSS subscribers (other than Email subscribers)
+ straight away to Feedburner, because...<ul><li>... that would not cover existing subscribers</li><li>...
+ Feedsmith is a global solution that covers each and any RSS link on your site, including those a third party
+ plugin may add</li><li>... with a Feedsmith redirection readers subscribe to the URLs that you control
+ (http://www.yourdomain.com/feed/). Should you ever want to stop using Feedburner, simply uninstall the Feedsmith plugin
+ and you'll keep all your subscribers - they just won't be redirected anymore.</li></ul>"),
+
+ array( "name" => "RSS Box Width",
+ "category" => "feed-links",
+ "id" => "rss_box_width",
+ "std" => "280",
+ "type" => "text",
+ "info" => "<img src=\"" . $templateURI . "/options/images/rss-box.gif\" style=\"float: right; margin: 0 0 10px 10px;\">" .
+ "Give the box containing the RSS buttons/links a fixed width, <strong>in pixels</strong>, to keep them in
+ one line, to avoid early wrapping. You shouldn't make this wider than needed for the given content."),
+
+ array( "name" => "Show Post Feed icon?",
+ "category" => "feed-links",
+ "id" => "show_posts_icon",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "<img src=\"" . $templateURI . "/options/images/show_posts_icon.gif\" style=\"float: right; margin: 0 0 10px 10px;\">" .
+ "Show the Post RSS Feed icon on the right hand side of the logo area?"),
+
+ array( "name" => "Post Feed Link Text",
+ "category" => "feed-links",
+ "id" => "post_feed_link",
+ "std" => __("Posts","atahualpa"),
+ "type" => "text",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post_feed_link.gif\" style=\"float: right; margin: 0 0 10px 10px;\">" .
+ "Leave blank to show no Post Feed Text Link in the logo area."),
+
+ array( "name" => "Post Feed Link \"Title\"",
+ "category" => "feed-links",
+ "id" => "post_feed_link_title",
+ "std" => __("Subscribe to the POSTS feed","atahualpa"),
+ "type" => "text",
+ "size" => "30",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post_feed_link_title.gif\" style=\"float: right; margin: 0 0 10px 10px;\">" .
+ "This is not the link anchor text (that was one option above), but the link \"title\", a text that will pop up when the mouse points at the link."),
+
+ array( "name" => "Show Comment Feed icon?",
+ "category" => "feed-links",
+ "id" => "show_comments_icon",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "<img src=\"" . $templateURI . "/options/images/show_comments_icon.gif\" style=\"float: right; margin: 0 0 10px 10px;\">" .
+ "Show the Comment RSS Feed icon on the right hand side of the logo area?"),
+
+ array( "name" => "Comment Feed Link Text",
+ "category" => "feed-links",
+ "id" => "comment_feed_link",
+ "std" => __("Comments","atahualpa"),
+ "type" => "text",
+ "info" => "<img src=\"" . $templateURI . "/options/images/comment_feed_link.gif\" style=\"float: right; margin: 0 0 10px 10px;\">" .
+ "Leave blank to show no Comment Feed Text Link in the logo area."),
+
+ array( "name" => "Comment Feed Link \"Title\"",
+ "category" => "feed-links",
+ "id" => "comment_feed_link_title",
+ "std" => __("Subscribe to the COMMENTS feed","atahualpa"),
+ "type" => "text",
+ "size" => "30",
+ "info" => "<img src=\"" . $templateURI . "/options/images/comment_feed_link_title.gif\" style=\"float: right; margin: 0 0 10px 10px;\">" .
+ "This is not the link anchor text (that was one option above), but the link \"title\", a text that will pop up when the mouse points at the link."),
+
+ array( "name" => "Show Feedburner Email icon?",
+ "category" => "feed-links",
+ "id" => "show_email_icon",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "<img src=\"" . $templateURI . "/options/images/show_email_icon.gif\" style=\"float: right; margin: 0 0 10px 10px;\">" .
+ "Show a Feedburner \"Subscribe by Email\" icon on the right hand side of the logo area?"),
+
+ array( "name" => "Feedburner Email Link Text",
+ "category" => "feed-links",
+ "id" => "email_subscribe_link",
+ "std" => __("By Email","atahualpa"),
+ "type" => "text",
+ "info" => "<img src=\"" . $templateURI . "/options/images/email_subscribe_link.gif\" style=\"float: right; margin: 0 0 10px 10px;\">" .
+ "Leave blank to show no \"Subscribe by Email\" Text Link in the logo area"),
+
+ array( "name" => "Feedburner Email Link \"Title\"",
+ "category" => "feed-links",
+ "id" => "email_subscribe_link_title",
+ "std" => __("Subscribe by EMAIL","atahualpa"),
+ "type" => "text",
+ "size" => "30",
+ "info" => "<img src=\"" . $templateURI . "/options/images/email_subscribe_link_title.gif\" style=\"float: right; margin: 0 0 10px 10px;\">" .
+ "This is not the link anchor text (that was one option above), but the link \"title\", a text that will pop up when the mouse points at the link."),
+
+ array( "name" => "Feedburner ID for this site?",
+ "category" => "feed-links",
+ "id" => "feedburner_email_id",
+ "type" => "text",
+ "std" => "",
+ "size" => "25",
+ "info" => "If you chose to show the Feedburner \"Subscribe by Email\" link, put the ID of the Feedburner feed for this site here.
+ <br /><br />The ID will be a number (around 7 digits) if you have an OLD account at feedburner.com. If you have a NEW account
+ at feedburner.google.com, the ID will not be a number but a string that probably resembles your site name but without spaces.
+ <br /><br />Log in your Feedburner account, click \"My Feeds\" -> \"[Title of the feed/site in question]\"
+ -> \"Publicize\" -> \"Email Subscriptions\". (If you have not activated the Email subscription yet do it now and proceed with the
+ next step afterwards). Now check out the two textareas.<br /><br /><strong>If you have a feedburner.google.com account:</strong>
+ The smaller one of the two textareas, the one at the bottom, will contain something like this:
+ <code>feedburner.google.com/fb/a/mailverify?uri=<i>bytesforall/lzoG</i>&loc=en_US</code> The highlighted
+ text is your Google/Feedburner ID. Note: <strong>bytesforall/lzoG</strong> will NOT be your ID. This is just a sample to show you where the
+ ID starts and where it ends. It starts after <code>?uri=</code> and it ends before <code>&loc=</code><br /><br /><strong>
+ If you have an (old, original) feedburner.com account:</strong> With an old feedburner account, that is not transferred to google yet,
+ the smaller one of the two textareas, the one at the bottom, will contain something like this:
+ <code>www.feedburner.com/fb/a/emailverifySubmit?feedId=<i>1234567</i>&loc=en_US</code> The highlighted number is
+ your (old, original) Feedburner.com ID. Note: <strong>1234567</strong> will NOT be your ID. This is just a sample to show you where the
+ ID starts and where it ends. It starts after <code>?feedId=</code> and it ends before <code>&loc=</code><br /><br />
+ Now that you got your (new Google/Feedburner OR old Feedburner.com) ID put it into this field here"),
+
+ array( "name" => "OLD or NEW Feedburner account?",
+ "category" => "feed-links",
+ "id" => "feedburner_old_new",
+ "type" => "select",
+ "std" => "New - at feedburner.google.com",
+ "lastoption" => "yes",
+ "options" => array("New - at feedburner.google.com", "Old - at feedburner.com"),
+ "info" => "Whether your account qualifies as old or new does not depend on whether you log in at feedburner.com or at feedburner.google.com.
+ See one option above to determine whether your account is OLD or NEW."),
+
+// New category: page-menu-bar
+
+ array( "name" => "Animate Page Menu Bar",
+ "category" => "page-menu-bar",
+ "switch" => "yes",
+ "id" => "animate_page_menu_bar",
+ "std" => "No",
+ "type" => "select",
+ "options" => array("No", "Yes"),
+ "info" => "Animate the page menu bar with Javascript?"),
+
+ array( "name" => "Home link in Page Menu Bar",
+ "category" => "page-menu-bar",
+ "id" => "home_page_menu_bar",
+ "std" => __("Home","atahualpa"),
+ "type" => "text",
+ "info" => "<ul><li>Leave this blank to have no \"Home\" link in the page menu bar</li><li>Or, put text here
+ to include a link to your homepage into the page menu bar</li><li>The text doesn't have to be \"Home\", it
+ can be anything</li></ul>"),
+
+ array( "name" => "Exclude pages from Page Menu Bar?",
+ "category" => "page-menu-bar",
+ "id" => "exclude_page_menu_bar",
+ "std" => "",
+ "type" => "text",
+ "size" => "30",
+ "info" => "<ul><li>Leave blank to include all pages in the page menu bar</li><li>To exclude certain pages from the
+ page menu bar, put their ID's into this field, separated by comma</li></ul><strong>Example:</strong> <code>13,29,102,117</code>
+ <br /><br />To get the ID of a page, go to WP Admin -> Pages -> <a href=\"edit-pages.php\">Edit</a>, point your mouse at the title of the page
+ in question, and watch your browser's status bar (it's at the bottom) for an URL ending on \"...action=edit&post=<strong>XX</strong>\".
+ <strong>XX</strong> is the ID of the page."),
+
+ array( "name" => "Depth of Page Menu Bar",
+ "category" => "page-menu-bar",
+ "id" => "levels_page_menu_bar",
+ "std" => "0",
+ "type" => "select",
+ "options" => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
+ "info" => "<ul><li>Choose 0 to include ALL levels of pages (top level, sub pages, sub sub pages...) in the page
+ menu bar</li><li>Choose a number between 1 and 10 to include only the respective amount of page levels</li></ul>"),
+
+ array( "name" => "Sorting order of Page Menu Bar",
+ "category" => "page-menu-bar",
+ "id" => "sorting_page_menu_bar",
+ "type" => "select",
+ "std" => "menu_order",
+ "options" => array("menu_order", "post_title"),
+ "info" => "<ul><li><code>menu_order</code> - Sort the pages chronologically, as you created them (Change the page
+ order at Manage -> Pages -> Click on page title -> Page Order)</li><li><code>post_title</code> - alphabetically</li></ul>"),
+
+ array( "name" => "Title tags in Page Menu Bar",
+ "category" => "page-menu-bar",
+ "id" => "titles_page_menu_bar",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "Include a \"title\" tag for each item in the page menu? These will pop up when hovering over a menu item."),
+
+ array( "name" => "Don't link first level parent items in Page Menu Bar?",
+ "category" => "page-menu-bar",
+ "id" => "page_menu_1st_level_not_linked",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "Set this to No to replace the link target of first level parent items with <a href=\"#\">
+ This will basically unlink the first level menu items that have children. The submenus drop down when pointing
+ the mouse at the link, but clicking the link doesn't do anything. This is for users that want to organize their
+ pages in main pages and sub pages but don't have content on the main pages. \"Yes\" means \"Yes, don't link\"."),
+
+ array( "name" => "Border around all menu items",
+ "category" => "page-menu-bar",
+ "id" => "anchor_border_page_menu_bar",
+ "std" => "dashed 1px #cccccc",
+ "type" => "text",
+ "info" => "Every item of the menu bar, plus the menu bar itself, will be wrapped into this border.
+ To have no borders in the first level, give it the same color as the background color for first level items.
+ Don't use semicolons here.<br /><br />Note: Leave the border width at 1px, match colors if you want to make
+ it dissapear."),
+
+ array( "name" => "Background color",
+ "category" => "page-menu-bar",
+ "id" => "page_menu_bar_background_color",
+ "std" => "ffffff",
+ "type" => "text",
+ "info" => "Background color for menu items in their default state and the menu bar itself."),
+
+
+ array( "name" => "Background color: Hover",
+ "category" => "page-menu-bar",
+ "id" => "page_menu_bar_background_color_hover",
+ "std" => "eeeeee",
+ "type" => "text",
+ "info" => "Background color for menu items in hover and current state. <strong>Use fffffe instead of ffffff</strong> due to a \"White Background Hover Bug\" in IE7/IE8. http://haslayout.net/css/Hover-White-Background-Ignore-Bug. "),
+
+ array( "name" => "Background color: Parent",
+ "category" => "page-menu-bar",
+ "id" => "page_menu_bar_background_color_parent",
+ "std" => "dddddd",
+ "type" => "text",
+ "info" => "Background color for parent menu item while hovering over its sub menu. <strong>Use fffffe instead of ffffff</strong> due to a \"White Background Hover Bug\" in IE7/IE8. http://haslayout.net/css/Hover-White-Background-Ignore-Bug."),
+
+ array( "name" => "Font Size & Face",
+ "category" => "page-menu-bar",
+ "id" => "page_menu_font",
+ "std" => "11px Arial, Verdana, sans-serif",
+ "type" => "text",
+ "size" => "30",
+ "editable" => "yes",
+ "info" => "Set both the font size and the font face for the menu items. Enclose font face names with a
+ space in quotes, i.e.:<br /><code>12px \"comic sans ms\", \"courier new\", arial, sans-serif</code><br />
+ <br />Don't use semicolons here."),
+
+ array( "name" => "Link Color",
+ "category" => "page-menu-bar",
+ "id" => "page_menu_bar_link_color",
+ "std" => "777777",
+ "type" => "text",
+ "info" => "Color of the link text."),
+
+ array( "name" => "Link Color: Hover",
+ "category" => "page-menu-bar",
+ "id" => "page_menu_bar_link_color_hover",
+ "std" => "000000",
+ "type" => "text",
+ "info" => "Color of the link text in hover state."),
+
+ array( "name" => "Transform text in Page Menu Bar?",
+ "category" => "page-menu-bar",
+ "id" => "page_menu_transform",
+ "type" => "select",
+ "std" => "uppercase",
+ "options" => array("uppercase", "lowercase", "capitalize", "none"),
+ "info" => "You can transform the link titles in the page menu bar."),
+
+ array( "name" => "White or Black Arrows as Sub Menu Indicator?",
+ "category" => "page-menu-bar",
+ "id" => "page_menu_arrows",
+ "type" => "select",
+ "std" => "black",
+ "options" => array("black", "white"),
+ "info" => "If a menu item has sub menus, it will be indicated with down/right arrows. Choose the color for these arrows."),
+
+ array( "name" => "Width of Sub Menus",
+ "category" => "page-menu-bar",
+ "id" => "page_menu_submenu_width",
+ "type" => "select",
+ "std" => "11",
+ "lastoption" => "yes",
+ "options" => array("7", "7.5", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5", "13",
+ "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18", "18.5", "19", "19.5", "20", "20.5",
+ "21", "21.5", "22", "22.5", "23", "23.5", "24", "24.5", "25"),
+ "info" => "The width of top level items will adjust to the width of the links inside, but the sub menus
+ need a defined width, <strong>in \"em\"</strong>."),
+
+// New category: cat-menu-bar
+
+ array( "name" => "Animate Category Menu Bar",
+ "category" => "cat-menu-bar",
+ "switch" => "yes",
+ "id" => "animate_cat_menu_bar",
+ "std" => "No",
+ "type" => "select",
+ "options" => array("Yes", "No"),
+ "info" => "Animate the category menu bar with Javascript?"),
+
+ array( "name" => "Home link in Category Menu Bar",
+ "category" => "cat-menu-bar",
+ "id" => "home_cat_menu_bar",
+ "std" => "",
+ "type" => "text",
+ "info" => "<ul><li>Leave this blank to have no \"Home\" link in the category menu bar</li><li>Or, put text
+ here to include a link to your homepage into the category menu bar</li><li>The text doesn't have to be \"Home\",
+ it can be anything</li></ul>"),
+
+ array( "name" => "Exclude categories from Category Menu Bar?",
+ "category" => "cat-menu-bar",
+ "id" => "exclude_cat_menu_bar",
+ "std" => "",
+ "type" => "text",
+ "size" => "30",
+ "info" => "<ul><li>Leave blank to include all categories in the category menu bar</li><li>To exclude certain
+ categories put their ID into this field, separated by comma</li></ul><strong>Example:</strong> <code>13,29,102,117</code>
+ <br /><br />To get the ID of a category, go to WP Admin -> Posts -> <a href=\"categories.php\">Categories</a>, point your mouse at the
+ title of the category in question, and watch your browser's status bar (it's at the bottom) for an URL ending
+ on \"...action=edit&cat_ID=<strong>XX</strong>\". <strong>XX</strong> is the ID of the category."),
+
+ array( "name" => "Depth of Category Menu Bar",
+ "category" => "cat-menu-bar",
+ "id" => "levels_cat_menu_bar",
+ "std" => "0",
+ "type" => "select",
+ "options" => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
+ "info" => "<ul><li>Choose 0 to include ALL levels of categories (top level, sub cats, sub sub cats...) in the
+ category menu bar</li><li>Choose a number between 1 and 10 to include only the respective amount of category levels</li></ul>"),
+
+ array( "name" => "Sort Category Menu Bar by:",
+ "category" => "cat-menu-bar",
+ "id" => "sorting_cat_menu_bar",
+ "type" => "select",
+ "std" => "ID",
+ "options" => array("ID", "name", "count", "order"),
+ "info" => '<ul><li><code>ID</code> - Sort the categories chronologically, as you created them</li>
+ <li><code>name</code> - alphabetically</li><li><code>count</code> - by number of posts</li>
+ <li><code>order</code> - individually, as set on the options page of the plugin
+ <a href="http://wordpress.org/extend/plugins/my-category-order/">My Category Order</a> (requires this
+ plugin to be installed)</li></ul>'),
+
+ array( "name" => "Sorting order Category Menu Bar",
+ "category" => "cat-menu-bar",
+ "id" => "order_cat_menu_bar",
+ "type" => "select",
+ "std" => "ASC",
+ "options" => array("ASC", "DESC"),
+ "info" => "Sort categories in ascending (ASC) or descending (DESC) order?"),
+
+ array( "name" => "Title tags in Category Menu Bar",
+ "category" => "cat-menu-bar",
+ "id" => "titles_cat_menu_bar",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "Include a \"title\" tag for each item in the category menu bar? Title tags are the little
+ boxes that pop up when hovering over a menu item. Setting this to yes makes sense if you've set a
+ \"description\" for each category (Manage -> Categories -> Click on category name). Otherwise the
+ title tag will just repeat the category name."),
+
+ array( "name" => "Add category description to menu bar tabs",
+ "category" => "cat-menu-bar",
+ "id" => "add_descr_cat_menu_links",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "This will add a line break <br /> followed by the \"category description\" (which you can set at
+ Site Admin -> Posts -> Categories -> Description) to the link text of each category's button in the category menu bar.
+ This category description, which is now visible inside the menu buttons, can be styled through HTML/CSS Inserts ->
+ CSS Insert, i.e.: <code>span.cat-descr { font-size: 90%; text-tranform: none; }</code>"),
+
+ array( "name" => "Default Category description text",
+ "category" => "cat-menu-bar",
+ "id" => "default_cat_descr_text",
+ "std" => "View all posts filed under<br />%category%",
+ "type" => "text",
+ "size" => "30",
+ "editable" => "yes",
+ "info" => "If you chose to include the category description in the menu bar's link texts (one option above), then set
+ a default text here for categories that have no description. <code>%category%</code> is a placeholder and will be
+ replaced with the Category Title. HTML allowed."),
+
+ array( "name" => "Border around all menu items",
+ "category" => "cat-menu-bar",
+ "id" => "anchor_border_cat_menu_bar",
+ "std" => "solid 1px #000000",
+ "type" => "text",
+ "info" => "Every item of the menu bar, plus the menu bar itself, will be wrapped into this border.
+ To have no borders in the first level, give it the same color as the background color for first level items.
+ Don't use semicolons here. <br /><br />Note: Leave the border width at 1px, match colors if you want to make it dissapear."),
+
+ array( "name" => "Background color",
+ "category" => "cat-menu-bar",
+ "id" => "cat_menu_bar_background_color",
+ "std" => "777777",
+ "type" => "text",
+ "info" => "Background color for menu items in their default state and the menu bar itself."),
+
+ array( "name" => "Background color: Hover",
+ "category" => "cat-menu-bar",
+ "id" => "cat_menu_bar_background_color_hover",
+ "std" => "cc0000",
+ "type" => "text",
+ "info" => "Background color for menu items in hover and current state. <strong>Use fffffe instead of ffffff</strong> due to a \"White Background Hover Bug\" in IE7/IE8. http://haslayout.net/css/Hover-White-Background-Ignore-Bug."),
+
+ array( "name" => "Background color: Parent",
+ "category" => "cat-menu-bar",
+ "id" => "cat_menu_bar_background_color_parent",
+ "std" => "000000",
+ "type" => "text",
+ "info" => "Background color for parent menu item while hovering over its sub menu. <strong>Use fffffe instead of ffffff</strong> due to a \"White Background Hover Bug\" in IE7/IE8. http://haslayout.net/css/Hover-White-Background-Ignore-Bug."),
+
+ array( "name" => "Font for Category Menu Bar",
+ "category" => "cat-menu-bar",
+ "id" => "cat_menu_font",
+ "std" => "11px Arial, Verdana, sans-serif",
+ "type" => "text",
+ "size" => "30",
+ "editable" => "yes",
+ "info" => "Set both the font size and the font face for the menu items. Enclose font face names
+ with a space in quotes, i.e.:<br /><code>12px \"comic sans ms\", \"courier new\", arial, sans-serif</code>
+ <br /><br />Don't use semicolons here."),
+
+ array( "name" => "Link Color",
+ "category" => "cat-menu-bar",
+ "id" => "cat_menu_bar_link_color",
+ "std" => "ffffff",
+ "type" => "text",
+ "info" => "Color of the link text in default state."),
+
+ array( "name" => "Link Color: Hover",
+ "category" => "cat-menu-bar",
+ "id" => "cat_menu_bar_link_color_hover",
+ "std" => "ffffff",
+ "type" => "text",
+ "info" => "Color of the link text in hover state."),
+
+ array( "name" => "Transform text in Category Menu Bar?",
+ "category" => "cat-menu-bar",
+ "id" => "cat_menu_transform",
+ "type" => "select",
+ "std" => "uppercase",
+ "options" => array("uppercase", "lowercase", "capitalize", "none"),
+ "info" => "You can transform the link titles in the category menu bar."),
+
+ array( "name" => "White or Black Arrows as Sub Menu Indicator?",
+ "category" => "cat-menu-bar",
+ "id" => "cat_menu_arrows",
+ "type" => "select",
+ "std" => "white",
+ "options" => array("white", "black"),
+ "info" => "If a menu item has sub menus, it will be indicated with down/right arrows.
+ Choose the color for these arrows."),
+
+ array( "name" => "Width of Sub Menus",
+ "category" => "cat-menu-bar",
+ "id" => "cat_menu_submenu_width",
+ "type" => "select",
+ "std" => "11",
+ "lastoption" => "yes",
+ "options" => array("7", "7.5", "8", "8.5", "9", "9.5", "10", "10.5", "11", "11.5", "12", "12.5",
+ "13", "13.5", "14", "14.5", "15", "15.5", "16", "16.5", "17", "17.5", "18", "18.5", "19", "19.5", "20",
+ "20.5", "21", "21.5", "22", "22.5", "23", "23.5", "24", "24.5", "25"),
+ "info" => "The width of top level items will adjust to the width of the links inside, but the sub menus
+ need a defined width, <strong>in \"em\"</strong>."),
+
+
+// NEW since 3.6.5: category: center
+
+ array( "name" => "Center column style",
+ "category" => "center",
+ "id" => "center_column_style",
+ "type" => "textarea-large",
+ "switch" => "yes",
+ "std" => "padding: 10px 15px;",
+ "info" => "Style the center column here. The center column is the container for everything in the middle:
+ All posts (including \"page\" posts) and the next/prev navigation."),
+
+// ---------------------------------
+ array( "name" => "Center Column Top - widget area",
+ "category" => "center",
+ "id" => "widget_center_top",
+ "type" => "textarea-large",
+ "switch" => "yes",
+ "std" => "",
+ "info" => "You can add a new Widget Area here that will appear at the top of the center area. This widget area will display in posts and pages. <br />To control when it displays, use a plugin like 'Widget Logic'. See the <span style='color:red'>Add Dynamic Widget Areas</span> for the available options.<br /><br />
+ example 1: <code><?php bfa_widget_area('name=Center Top widget area'); ?></code> - shortest and most basic way you can create a widget area<br />
+ example 2: <code><?php bfa_widget_area('name=Center top widget area&cells=3'); ?></code> - This will create three widget areas<br />
+ example 3: <code><?php bfa_widget_area('name=Center top widget area&cells=2&width_1=400'); ?></code> - This will create a two widget area and the first one will be 400 px wide
+ "),
+
+
+ array( "name" => "Center Column Bottom - widget area",
+ "category" => "center",
+ "switch" => "yes",
+ "id" => "widget_center_bottom",
+ "std" => "",
+ "type" => "textarea-large",
+ "info" => "You can add a new Widget Area here that will appear at the bottom of the center area. See the <span style='color:red'>Add Dynamic Widget Areas</span> for the available options."),
+
+// ---------------------------------
+
+ array( "name" => "Where are the 'Content ABOVE Loop', 'The LOOP' etc. options?",
+ "category" => "center",
+ "id" => "widget_areas_reset",
+ "type" => "info",
+ "lastoption" => "yes",
+ "info" => "<strong>They are now 'hardcoded' into Atahualpa's <code>index.php</code>. To edit the loop or to add custom code before/after the loop, manually edit <code>index.php</code>.</strong><br /><br />Since 3.6.5 custom PHP code isn't possible anymore in the Atahualpa Theme Options. Atahualpa was one of few themes, if not the only theme, to allow custom PHP code to be inserted through theme options.
+ The philosophy as to what themes should or should not be able to do (i.e. which PHP functions they can use) has been tightened up quite a bit lately by WordPress, so in order to stay listed on wordpress.org we
+ had to remove this 'custom PHP' feature. Check wordpress.bytesforall.com and forum.bytesforall.com for possible workarounds or even alternative theme versions, if you cannot live without custom PHP."),
+
+// new category: center
+/*
+ array( "name" => "Center column style",
+ "category" => "center",
+ "switch" => "yes",
+ "id" => "center_column_style",
+ "std" => "padding: 10px 15px;",
+ "type" => "textarea-large",
+ "info" => "Style the center column here. The center column is the container for everything in the middle:
+ All posts (including \"page\" posts) and the next/prev navigation."),
+
+ array( "name" => "Content ABOVE the LOOP",
+ "category" => "center",
+ "id" => "content_above_loop",
+ "std" => "<?php bfa_next_previous_page_links('Top'); ?>",
+ "type" => "textarea-large",
+ "info" => "Edit/add/remove content above THE LOOP. The Loop is the content that Wordpress outputs for a particular page. This
+can be a list of posts (thus the name \"Loop\"), or a single
+post or a static page. You can use HTML and <strong>PHP</strong> here and in the other text areas below."),
+
+ array( "name" => "The LOOP",
+ "category" => "center",
+ "id" => "content_inside_loop",
+ "std" => "<?php bfa_next_previous_post_links('Top'); ?>
+
+<?php
+if ( function_exists('post_class') ) { ?>
+<div <?php if ( is_page() ) { post_class('post'); } else { post_class(\"\$odd_or_even\"); } ?> id=\"post-<?php the_ID(); ?>\">
+<?php } else { ?>
+<div class=\"<?php echo ( is_page() ? 'page ' : '' ) . \$odd_or_even . ' post\" id=\"post-'; the_ID(); ?>\">
+<?php } ?>
+
+<?php bfa_post_kicker('<div class=\"post-kicker\">','</div>'); ?>
+
+<?php bfa_post_headline('<div class=\"post-headline\">','</div>'); ?>
+
+<?php bfa_post_byline('<div class=\"post-byline\">','</div>'); ?>
+
+<?php bfa_post_bodycopy('<div class=\"post-bodycopy clearfix\">','</div>'); ?>
+
+<?php bfa_post_pagination('<p class=\"post-pagination\"><strong>'.__('Pages:','atahualpa').'</strong>','</p>'); ?>
+
+<?php bfa_post_footer('<div class=\"post-footer\">','</div>'); ?>
+
+</div><!-- / Post -->",
+ "type" => "textarea-large",
+ "info" => "Here you can add content in between single posts, or edit THE LOOP as such. To put something after post number X
+you can use the variable <code>\$bfa_ata['postcount']</code>. It contains the number of the current post in the loop.
+<br /><br /><strong>Example:</strong><br /><br />
+<code><?php if ( \$bfa_ata['postcount'] == 1 ) { ?><br /><br />
+The HTML, Javascript or PHP that you put here will be displayed after the first post.<br /><br />
+<?php } ?></code>
+<br /><br /><strong>Example 2:</strong><br /><br />
+<code><?php if ( is_front_page() AND \$bfa_ata['postcount'] == 3 ) { ?><br /><br />
+This here will be displayed after the 3rd post on (only) the homepage.<br /><br />
+<?php } ?></code>"),
+
+ array( "name" => "Content BELOW the LOOP",
+ "category" => "center",
+ "id" => "content_below_loop",
+ "std" => "<?php bfa_next_previous_post_links('Middle'); ?>
+
+<?php bfa_get_comments(); ?>
+
+<?php bfa_next_previous_post_links('Bottom'); ?>
+
+<?php bfa_archives_page('<div class=\"archives-page\">','</div>'); ?>
+
+<?php bfa_next_previous_page_links('Bottom'); ?>",
+ "type" => "textarea-large",
+ "info" => "Add/remove/edit the content below the LOOP here."),
+
+ array( "name" => "Content if NOT FOUND",
+ "category" => "center",
+ "id" => "content_not_found",
+ "std" => "<h2><?php _e('Not Found','atahualpa'); ?></h2>
+<p><?php _e(\"Sorry, but you are looking for something that isn't here.\",\"atahualpa\"); ?></p>",
+ "type" => "textarea-large",
+ "lastoption" => "yes",
+ "info" => "Add/edit/remove the content here that is displayed on \"404 Not Found\" pages."),
+*/
+
+// New category: next/prev navigation
+
+ array( "name" => "NEWER / OLDER orientation",
+ "category" => "next-prev-nav",
+ "switch" => "yes",
+ "id" => "next_prev_orientation",
+ "std" => "Newer Left, Older Right",
+ "type" => "select",
+ "options" => array("Newer Left, Older Right", "Older Left, Newer Right"),
+ "info" => "Show the link to the NEWER post/page on the LEFT or the RIGHT hand side of the navigation bar(s)?"),
+
+ array( "name" => "Home link in Nav. on MULTI post pages?",
+ "category" => "next-prev-nav",
+ "id" => "home_multi_next_prev",
+ "std" => "",
+ "type" => "text",
+ "info" => "On multi post pages, show a \"Home\" link between the 2 links pointing to the previous and
+ the next page?<ul><li>Leave blank to show no \"Home\" link</li><li>Or, put any text here to use it as
+ the text for the link to the homepage</li><li>If you use the WP-PageNavi plugin, this setting becomes
+ obsolete as then the page numbers of WP-PageNavi will be displayed instead of the default next/prev links</li></ul>"),
+
+ array( "name" => "Home link in Nav. on SINGLE post pages?",
+ "category" => "next-prev-nav",
+ "id" => "home_single_next_prev",
+ "std" => "",
+ "type" => "text",
+ "info" => "On single post pages, show a \"Home\" link between the 2 links pointing to the previous and
+ the next post?<ul><li>Leave blank to show no \"Home\" link</li><li>Or, put any text here to use it as
+ the text for the link to the homepage</li></ul>"),
+
+ array( "name" => "\"Newer Page\" link on MULTI post pages",
+ "category" => "next-prev-nav",
+ "id" => "multi_next_prev_newer",
+ "std" => __("« Newer Entries","atahualpa"),
+ "type" => "text",
+ "size" => "30",
+ "editable" => "yes",
+ "info" => "You can use single and double quotes, and HTML. Examples:<ul><li><code><br /></code>
+ for line breaks</li><li><code><strong> ... </strong></code> to make text <strong>bold</strong></li>
+ <li><code><em> ... </em></code> to make text <em>italic</em></li><li><code>&nbsp;</code> to
+ include a non-breaking space</li><li><code>&raquo;</code> for a right angle quote
+ <span style=\"font-size: 25px\">»</span></li><li><code>&laquo;</code> for a left angle quote
+ <span style=\"font-size: 25px\">«</span></li><li><code>&rsaquo;</code> for a right single angle quote
+ <span style=\"font-size: 25px\">›</span></li><li><code>&lsaquo;</code> for a left single angle quote
+ <span style=\"font-size: 25px\">‹</span></li><li><code>&rarr;</code> for a right arrow
+ <span style=\"font-size: 25px\">→</span></li><li><code>&larr;</code> for a left arrow
+ <span style=\"font-size: 25px\">←</span></li></ul>
+ <em>NOTE: If you use WP-PageNavi then this and the next setting become obsolete</em>"),
+
+ array( "name" => "\"Older Page\" link on MULTI post pages",
+ "category" => "next-prev-nav",
+ "id" => "multi_next_prev_older",
+ "std" => __("Older Entries »","atahualpa"),
+ "type" => "text",
+ "size" => "30",
+ "editable" => "yes",
+ "info" => "See above for HTML examples."),
+
+ array( "name" => "\"Newer Post\" link on SINGLE post pages",
+ "category" => "next-prev-nav",
+ "id" => "single_next_prev_newer",
+ "std" => "« %link",
+ "type" => "text",
+ "size" => "30",
+ "editable" => "yes",
+ "info" => "See above for HTML examples.<br /><br />To include the linked title of the newer post, use <code>%link</code>"),
+
+ array( "name" => "\"Older Post\" link on SINGLE post pages",
+ "category" => "next-prev-nav",
+ "id" => "single_next_prev_older",
+ "std" => "%link »",
+ "type" => "text",
+ "size" => "30",
+ "editable" => "yes",
+ "info" => "See above for HTML examples.<br /><br />To include the linked title of the older post, use <code>%link</code>"),
+
+ array( "name" => "Keep next/prev. links on SINGLE post pages to same post category?",
+ "category" => "next-prev-nav",
+ "id" => "single_next_prev_same_cat",
+ "std" => "No",
+ "type" => "select",
+ "options" => array("No", "Yes"),
+ "info" => "Limit the Next and Previous links on single post pages to the category of the
+ current post."),
+
+);
+
+$options2 = array(
+
+ array( "name" => "\"Newer Comments\" link for COMMENTS navigation",
+ "category" => "next-prev-nav",
+ "id" => "comments_next_prev_newer",
+ "std" => __("Newer Comments »","atahualpa"),
+ "type" => "text",
+ "size" => "30",
+ "editable" => "yes",
+ "info" => "See above for HTML examples. If you choose to show page numbers (see below) the
+ \"Newer Comments\" link will be on the left hand side of the page numbers."),
+
+ array( "name" => "\"Older Comments\" link for COMMENTS navigation",
+ "category" => "next-prev-nav",
+ "id" => "comments_next_prev_older",
+ "std" => __("« Older Comments","atahualpa"),
+ "type" => "text",
+ "size" => "30",
+ "editable" => "yes",
+ "info" => "See above for HTML examples. If you choose to show page numbers (see below) the
+ \"Older Comments\" link will be on the right hand side of the page numbers."),
+
+ array( "name" => "Location of Paged COMMENTS Navigation",
+ "category" => "next-prev-nav",
+ "id" => "location_comments_next_prev",
+ "std" => "Above and Below Comments",
+ "type" => "select",
+ "options" => array("Above Comments", "Below Comments", "Above and Below Comments"),
+ "info" => "Show the Next/Previous comments navigation above or below the comments?<br /><br />
+ "),
+
+ array( "name" => "Style the COMMENTS ABOVE Box",
+ "category" => "next-prev-nav",
+ "id" => "next_prev_style_comments_above",
+ "std" => "margin: 0 0 10px 0;\npadding: 5px 0 5px 0;",
+ "type" => "textarea-large",
+ "info" => "Style the box that contains the next/previous navigation for comments, when it is above the comments."),
+
+ array( "name" => "Style the COMMENTS BELOW Box",
+ "category" => "next-prev-nav",
+ "id" => "next_prev_style_comments_below",
+ "std" => "margin: 0 0 10px 0;\npadding: 5px 0 5px 0;",
+ "type" => "textarea-large",
+ "info" => "Style the box that contains the next/previous navigation for comments, when it is below the comments."),
+
+ array( "name" => "Show Page Numbers (Pagination) for COMMENTS Navigation",
+ "category" => "next-prev-nav",
+ "id" => "next_prev_comments_pagination",
+ "std" => "Yes",
+ "type" => "select",
+ "options" => array("Yes", "No"),
+ "info" => "Instead of the regular Newer Comments / Older Comments links you can show the page numbers plus
+ previous/next links. Your settings for \"Newer Comments\" link and \"Older Comments\" link from above
+ will be used as the next/previous link texts."),
+
+);
+
+$options3 = array(
+
+ array( "name" => "Location of Next/Previous Page Navigation on MULTI Post Pages",
+ "category" => "next-prev-nav",
+ "id" => "location_multi_next_prev",
+ "std" => "Bottom",
+ "type" => "select",
+ "options" => array("Top", "Bottom", "Top and Bottom", "None"),
+ "info" => "On multi post pages, show the Next/Previous navigation on top (above all posts), at the bottom
+ (below all posts), or on top AND at the bottom?"),
+
+ array( "name" => "Location of Next/Previous Post Navigation on SINGLE Post Pages",
+ "category" => "next-prev-nav",
+ "id" => "location_single_next_prev",
+ "std" => "Top",
+ "type" => "select",
+ "options" => array("Top", "Middle", "Bottom", "Top and Middle", "Top and Bottom", "Middle and Bottom",
+ "Top, Middle and Bottom", "None"),
+ "info" => "On single post pages, show the Next/Previous navigation on top, in the middle
+ (between the post and the comments), or at the bottom?"),
+
+ array( "name" => "Style the Navigation TOP Box",
+ "category" => "next-prev-nav",
+ "id" => "next_prev_style_top",
+ "std" => "margin: 0 0 10px 0;\npadding: 0 0 10px 0;\nborder-bottom: dashed 1px #cccccc;",
+ "type" => "textarea-large",
+ "info" => "Style the box that contains the next/previous navigation, when it is at the top."),
+
+ array( "name" => "Style the Navigation MIDDLE Box",
+ "category" => "next-prev-nav",
+ "id" => "next_prev_style_middle",
+ "std" => "margin: 10px 0 20px 0;\npadding: 10px 0 10px 0;\nborder-top: dashed 1px #cccccc;\nborder-bottom: dashed 1px #cccccc;",
+ "type" => "textarea-large",
+ "info" => "Style the box that contains the next/previous navigation, when it is in the middle."),
+
+ array( "name" => "Style the Navigation BOTTOM Box",
+ "category" => "next-prev-nav",
+ "id" => "next_prev_style_bottom",
+ "std" => "margin: 20px 0 0 0;\npadding: 10px 0 0 0;\nborder-top: dashed 1px #cccccc;",
+ "type" => "textarea-large",
+ "lastoption" => "yes",
+ "info" => "Style the box that contains the next/previous navigation, when it is at the bottom."),
+
+// New category: sidebars
+
+ array( "name" => "LEFT sidebar: Display on:",
+ "category" => "sidebars",
+ "switch" => "yes",
+ "id" => "leftcol_on",
+ "std" => array ("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),
+ "type" => "displayon",
+ "stripslashes" => "no",
+ "info" => "(*) \"Front Page\" will only affect WP 2.5 and newer: For those newer WP versions,
+ IF you select a static \"Page\" page as the home page, then \"Front Page\" becomes the actual homepage,
+ while the \"Homepage\" will be the home page for Posts (but not the whole blog). If no static front page
+ is selected, Homepage and Front Page will be the same.<br />(**) Custom Taxonomy pages. Custom taxonomies don't exist by default.
+ You'd have to create them manually or with a plugin such as http://wordpress.org/extend/plugins/custom-taxonomies/"),
+
+ array( "name" => "LEFT sidebar: Don't display on Pages:",
+ "category" => "sidebars",
+ "id" => "left_col_pages_exclude",
+ "std" => "",
+ "type" => "text",
+ "size" => "30",
+ "info" => "To turn off the left sidebar on <strong>individual</strong> pages, put the ID's of
+ those pages here, separated by comma<br /><br /><strong>Example:</strong><br /><code>29,8,111</code><br /><br />
+ To get the ID of a page, " . $go_to_pages . ", point your mouse at the title of the page in question, and
+ watch your browser's status bar (it's at the bottom) for an URL ending on \"...action=edit&post=<strong>XX</strong>\".
+ <strong>XX</strong> is the ID of the page."),
+
+ array( "name" => "LEFT sidebar: Don't display on Categories:",
+ "category" => "sidebars",
+ "id" => "left_col_cats_exclude",
+ "std" => "",
+ "type" => "text",
+ "size" => "30",
+ "info" => "To turn off the left sidebar on <strong>individual</strong> category pages, put the ID's of
+ those categories here, separated by comma<br /><br /><strong>Example:</strong><br /><code>13,5,87</code><br /><br />
+ To get the ID of a category, " . $go_to_cats . ", point your mouse at the title of the category in question,
+ and watch your browser's status bar (it's at the bottom) for an URL ending on \"...action=edit&cat_ID=<strong>XX</strong>\".
+ <strong>XX</strong> is the ID of the category.<br /><br />Note: This will turn on/off sidebars on category pages
+ (pages that list the posts in the given category), but not on \"all single post pages of posts in category XX\"."),
+
+ array( "name" => "LEFT INNER sidebar: Display on:",
+ "category" => "sidebars",
+ "id" => "leftcol2_on",
+ "std" => array ("check-if-saved-once" => FALSE),
+ "type" => "displayon",
+ "stripslashes" => "no",
+ "info" => "(*) \"Front Page\" will only affect WP 2.5 and newer: For those newer WP versions,
+ IF you select a static \"Page\" page as the home page, then \"Front Page\" becomes the actual homepage,
+ while the \"Homepage\" will be the home page for Posts (but not the whole blog). If no static front page
+ is selected, Homepage and Front Page will be the same.<br />(**) Custom Taxonomy pages. Custom taxonomies don't exist by default.
+ You'd have to create them manually or with a plugin such as http://wordpress.org/extend/plugins/custom-taxonomies/"),
+
+ array( "name" => "LEFT INNER sidebar: Don't display on Pages:",
+ "category" => "sidebars",
+ "id" => "left_col2_pages_exclude",
+ "std" => "",
+ "type" => "text",
+ "size" => "30",
+ "info" => "To turn off the left sidebar on <strong>individual</strong> pages, put the ID's of
+ those pages here, separated by comma<br /><br /><strong>Example:</strong><br /><code>29,8,111</code><br /><br />
+ To get the ID of a page, " . $go_to_pages . ", point your mouse at the title of the page in question, and
+ watch your browser's status bar (it's at the bottom) for an URL ending on \"...action=edit&post=<strong>XX</strong>\".
+ <strong>XX</strong> is the ID of the page."),
+
+ array( "name" => "LEFT INNER sidebar: Don't display on Categories:",
+ "category" => "sidebars",
+ "id" => "left_col2_cats_exclude",
+ "std" => "",
+ "type" => "text",
+ "size" => "30",
+ "info" => "To turn off the left sidebar on <strong>individual</strong> category pages, put the ID's of
+ those categories here, separated by comma<br /><br /><strong>Example:</strong><br /><code>13,5,87</code><br /><br />
+ To get the ID of a category, " . $go_to_cats . ", point your mouse at the title of the category in question,
+ and watch your browser's status bar (it's at the bottom) for an URL ending on \"...action=edit&cat_ID=<strong>XX</strong>\".
+ <strong>XX</strong> is the ID of the category.<br /><br />Note: This will turn on/off sidebars on category pages
+ (pages that list the posts in the given category), but not on \"all single post pages of posts in category XX\"."),
+
+ array( "name" => "RIGHT sidebar: Display on:",
+ "category" => "sidebars",
+ "id" => "rightcol_on",
+ "std" => array ("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),
+ "type" => "displayon",
+ "stripslashes" => "no",
+ "info" => "(*) \"Front Page\" will only affect WP 2.5 and newer: For those newer WP versions, IF you
+ select a static \"Page\" page as the home page, then \"Front Page\" becomes the actual homepage, while the
+ \"Homepage\" will be the home page for Posts (but not the whole blog). If no static front page is selected,
+ Homepage and Front Page will be the same.<br />(**) Custom Taxonomy pages. Custom taxonomies don't exist by default.
+ You'd have to create them manually or with a plugin such as http://wordpress.org/extend/plugins/custom-taxonomies/"),
+
+ array( "name" => "RIGHT sidebar: Don't display on Pages:",
+ "category" => "sidebars",
+ "id" => "right_col_pages_exclude",
+ "std" => "",
+ "type" => "text",
+ "size" => "30",
+ "info" => "To turn off the right sidebar on <strong>individual</strong> pages, put the ID's of
+ those pages here, separated by comma<br /><br /><strong>Example:</strong><br /><code>29,8,111</code><br /><br />
+ To get the ID of a page, " . $go_to_pages . ", point your mouse at the title of the page in question, and
+ watch your browser's status bar (it's at the bottom) for an URL ending on \"...action=edit&post=<strong>XX</strong>\".
+ <strong>XX</strong> is the ID of the page."),
+
+ array( "name" => "RIGHT sidebar: Don't display on Categories:",
+ "category" => "sidebars",
+ "id" => "right_col_cats_exclude",
+ "std" => "",
+ "type" => "text",
+ "size" => "30",
+ "info" => "To turn off the right sidebar on <strong>individual</strong> categories, put the ID's of
+ those categories here, separated by comma<br /><br /><strong>Example:</strong><br /><code>13,5,87</code><br /><br />
+ To get the ID of a category, " . $go_to_cats . ", point your mouse at the title of the category in question, and
+ watch your browser's status bar (it's at the bottom) for an URL ending on \"...action=edit&cat_ID=<strong>XX</strong>\".
+ <strong>XX</strong> is the ID of the category.<br /><br />Note: This will turn on/off sidebars on category pages
+ (pages that list the posts in the given category), but not on \"all single post pages of posts in category XX\""),
+
+ array( "name" => "RIGHT INNER sidebar: Display on:",
+ "category" => "sidebars",
+ "id" => "rightcol2_on",
+ "std" => array ("check-if-saved-once" => FALSE),
+ "type" => "displayon",
+ "stripslashes" => "no",
+ "info" => "(*) \"Front Page\" will only affect WP 2.5 and newer: For those newer WP versions, IF you
+ select a static \"Page\" page as the home page, then \"Front Page\" becomes the actual homepage, while the
+ \"Homepage\" will be the home page for Posts (but not the whole blog). If no static front page is selected,
+ Homepage and Front Page will be the same.<br />(**) Custom Taxonomy pages. Custom taxonomies don't exist by default.
+ You'd have to create them manually or with a plugin such as http://wordpress.org/extend/plugins/custom-taxonomies/"),
+
+ array( "name" => "RIGHT INNER sidebar: Don't display on Pages:",
+ "category" => "sidebars",
+ "id" => "right_col2_pages_exclude",
+ "std" => "",
+ "type" => "text",
+ "size" => "30",
+ "info" => "To turn off the right sidebar on <strong>individual</strong> pages, put the ID's of
+ those pages here, separated by comma<br /><br /><strong>Example:</strong><br /><code>29,8,111</code><br /><br />
+ To get the ID of a page, " . $go_to_pages . ", point your mouse at the title of the page in question, and
+ watch your browser's status bar (it's at the bottom) for an URL ending on \"...action=edit&post=<strong>XX</strong>\".
+ <strong>XX</strong> is the ID of the page."),
+
+ array( "name" => "RIGHT INNER sidebar: Don't display on Categories:",
+ "category" => "sidebars",
+ "id" => "right_col2_cats_exclude",
+ "std" => "",
+ "type" => "text",
+ "size" => "30",
+ "info" => "To turn off the right sidebar on <strong>individual</strong> categories, put the ID's of
+ those categories here, separated by comma<br /><br /><strong>Example:</strong><br /><code>13,5,87</code><br /><br />
+ To get the ID of a category, " . $go_to_cats . ", point your mouse at the title of the category in question, and
+ watch your browser's status bar (it's at the bottom) for an URL ending on \"...action=edit&cat_ID=<strong>XX</strong>\".
+ <strong>XX</strong> is the ID of the category.<br /><br />Note: This will turn on/off sidebars on category pages
+ (pages that list the posts in the given category), but not on \"all single post pages of posts in category XX\""),
+
+ array( "name" => "LEFT sidebar WIDTH",
+ "category" => "sidebars",
+ "id" => "left_sidebar_width",
+ "std" => "200",
+ "type" => "text",
+ "size" => "6",
+ "info" => "Width of the left sidebar in pixels. <strong>Example:</strong> <code>165</code>"),
+
+ array( "name" => "LEFT INNER sidebar WIDTH",
+ "category" => "sidebars",
+ "id" => "left_sidebar2_width",
+ "std" => "200",
+ "type" => "text",
+ "size" => "6",
+ "info" => "Width of the left sidebar in pixels. <strong>Example:</strong> <code>165</code>"),
+
+ array( "name" => "RIGHT sidebar WIDTH",
+ "category" => "sidebars",
+ "id" => "right_sidebar_width",
+ "std" => "200",
+ "type" => "text",
+ "size" => "6",
+ "info" => "Width of the right sidebar in pixels. <strong>Example:</strong> <code>220</code>"),
+
+ array( "name" => "RIGHT INNER sidebar WIDTH",
+ "category" => "sidebars",
+ "id" => "right_sidebar2_width",
+ "std" => "200",
+ "type" => "text",
+ "size" => "6",
+ "info" => "Width of the right sidebar in pixels. <strong>Example:</strong> <code>220</code>"),
+
+ array( "name" => "LEFT sidebar style",
+ "category" => "sidebars",
+ "id" => "left_sidebar_style",
+ "std" => "border-right: dashed 1px #CCCCCC;\npadding: 10px 10px 10px 10px;\nbackground: #ffffff;",
+ "type" => "textarea-large",
+ "info" => "Style the LEFT sidebar here. Usually all content in a sidebar would be inside of widgets,
+ so there should be no need to set text styles for the sidebar. The widgets can be styled separately,
+ see the menu tabs above."),
+
+ array( "name" => "LEFT INNER sidebar style",
+ "category" => "sidebars",
+ "id" => "left_sidebar2_style",
+ "std" => "border-right: dashed 1px #CCCCCC;\npadding: 10px 10px 10px 10px;\nbackground: #ffffff;",
+ "type" => "textarea-large",
+ "info" => "Style the LEFT sidebar here. Usually all content in a sidebar would be inside of widgets,
+ so there should be no need to set text styles for the sidebar. The widgets can be styled separately,
+ see the menu tabs above."),
+
+ array( "name" => "RIGHT sidebar style",
+ "category" => "sidebars",
+ "id" => "right_sidebar_style",
+ "std" => "border-left: dashed 1px #CCCCCC;\npadding: 10px 10px 10px 10px;\nbackground: #ffffff;",
+ "type" => "textarea-large",
+ "info" => "Style the RIGHT sidebar here."),
+
+ array( "name" => "RIGHT INNER sidebar style",
+ "category" => "sidebars",
+ "id" => "right_sidebar2_style",
+ "std" => "border-left: dashed 1px #CCCCCC;\npadding: 10px 10px 10px 10px;\nbackground: #ffffff;",
+ "type" => "textarea-large",
+ "lastoption" => "yes",
+ "info" => "Style the RIGHT sidebar here."),
+
+// New category: widgets
+
+ array( "name" => "Widget Container",
+ "category" => "widgets",
+ "switch" => "yes",
+ "id" => "widget_container",
+ "std" => "margin: 0 0 15px 0;",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/widget.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" .
+ "The widget container contains the \"Widget Title\" (-Box) and the \"Widget Content\" (-Box),
+ both of which you can style independently."),
+
+ array( "name" => "Widget Title Box",
+ "category" => "widgets",
+ "id" => "widget_title_box",
+ "std" => "",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/widget-title-box.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" .
+ "The Widget Title box contains the widget title. Text, calendar and search widgets may have no
+ title if you chose none. In that case there will be no Widget Title box in the widget container."),
+
+ array( "name" => "Widget Title",
+ "category" => "widgets",
+ "id" => "widget_title",
+ "std" => "font-size: 1.6em;\nfont-weight: bold;",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/widget-title.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style the Widget Title Font."),
+
+ array( "name" => "Widget Content Box",
+ "category" => "widgets",
+ "id" => "widget_content",
+ "std" => "",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/widget-content.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "The Widget Content Box is gone since Atahualpa 3.4. for better
+ plugin compatibility. It was a propretiary Atahualpa feature that provided extra styling possibilites but didn't play well with
+ all plugins because some of them rely heavily on widgets having the same structure as in the \"Default\" theme (which does
+ not have this extra DIV inside each widget).
+ Instead of \"div.widget-container\" the styles that you put here will be applied on \"div.widget ul, div.textwidget\".
+ That will cover all text widgets and all widgets that consists of unordered lists, which should be the majority of all widgets.
+ Otherwise look into the source code of a browser rendered page of your site to see which DIV or other HTML element wraps around
+ the body content of the widget that was not covered by this, and add a CSS Insert such as: <code>div.some-class { margin: 10px }</code>."),
+
+ array( "name" => "Widget List Items",
+ "category" => "widgets",
+ "id" => "widget_lists",
+ "std" => array (
+ "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"),
+ "type" => "widget-list-items",
+ "stripslashes" => "no",
+ "info" => "<img src=\"" . $templateURI . "/options/images/widget-list-items-1.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "List items and links in widgets."),
+
+ array( "name" => "Widget List Items, 2nd level",
+ "category" => "widgets",
+ "id" => "widget_lists2",
+ "std" => array (
+ "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"),
+ "type" => "widget-list-items",
+ "stripslashes" => "no",
+ "info" => "<img src=\"" . $templateURI . "/options/images/widget-list-items-2.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Second level list items and links in widgets."),
+
+ array( "name" => "Widget List Items, 3rd and lower level",
+ "category" => "widgets",
+ "id" => "widget_lists3",
+ "std" => array (
+ "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"),
+ "type" => "widget-list-items",
+ "stripslashes" => "no",
+ "info" => "<img src=\"" . $templateURI . "/options/images/widget-list-items-3.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Third and lower level list items and links in widgets."),
+
+ array( "name" => "Category Widget Display Type",
+ "category" => "widgets",
+ "id" => "category_widget_display_type",
+ "std" => "inline",
+ "type" => "select",
+ "options" => array("inline", "block"),
+ "info" => "The category widget needs this extra setting because it is the only widget that can
+ have both a link and a non-linked text (the \"post count\") inside a single list item AND be
+ hierarchical AND be too long to fit into a single line. For the most pleasing result across
+ browsers, choose... <ul><li><code>inline</code> if you are displaying the post count</li>
+ <li><code>block</code> if you're <strong>not</strong> displaying the post count</li></ul>"),
+
+ array( "name" => "Adjust SELECT menu font size",
+ "category" => "widgets",
+ "id" => "select_font_size",
+ "std" => "Default",
+ "type" => "select",
+ "options" => array("Default", "12px", "11px", "10px", "9px"),
+ "lastoption" => "yes",
+ "info" => "<img src=\"" . $templateURI . "/options/images/select-cutoff.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "In <strong>Internet Explorer</strong>,
+ \"Select\" drop down menus will be cut off if one or more of the select menu items (in this
+ case: category titles) are too long. <br /><br />To avoid this, set a (small) fixed pixel font
+ size for the select menu items here, such as <strong>11px</strong> (11 pixels) if you feel
+ (or see, because you use IE) that your select menus might be too wide for the set sidebar
+ width. (OR: Make your sidebar wider)"),
+
+// New category: widget-areas
+
+ array( "name" => "Delete Dynamic Widget Areas",
+ "category" => "widget-areas",
+ "switch" => "yes",
+ "id" => "widget_areas_reset",
+ "type" => "info",
+ "info" => "1) Delete the <code><?php bfa_widget_area(...) ?></code> code from whichever text area here in the theme options you placed it in.
+ <br />2) Select the widget areas that you want to delete and click the link below. <br />Note: The widget areas will be re-created until you deleted its associated code (see step 1). <br />
+<form action=\"\" method=\"\" id=\"widgetarea-form\">" . $widget_form_string . "</form>
+<a style='display:block; background:#C6D9E9;width:250px;margin-top:10px; padding:5px 10px;' id='reset_widget_areas' href='#'>Delete checked Widget Areas</a><span style='color:green;font-weight:bold;float:left;padding-left:30px' id='formstatus'></span><br />"),
+
+ array( "name" => "Add Dynamic Widget Areas",
+ "category" => "widget-areas",
+ "id" => "widget_areas_info",
+ "type" => "info",
+ "lastoption" => "yes",
+ "info" => "<strong>Note: After you've added dynamic widget areas, you'll need to <span style='color:red'>reload a front end page</span>
+ 1-2 times before they get created and start appearing on the front end. And you'll need to <span style='color:red'>reload WP->Presentation->Widgets</span>
+ 1-2 times before you can see the dynamic widget areas there and start adding widgets.</strong><br /><br />In addition to the existing widget areas (the sidebars) you can add additional widget areas, i.e. in the header
+area, header image overlay, the center column or the footer area. This page here only explains how to use this feature. To actually add a dynamic widget area
+you'll have to go to one of the following menu tabs:
+<ul><li><a href=\"javascript: myflowers.expandit('header-tab')\">Style & edit HEADER AREA</a>: Put the code into the text area named \"Configure Header Area\".</li>
+<li><a href=\"javascript: myflowers.expandit('center-tab')\">Style & edit CENTER COLUMN</a>: If you want to add a widget area to the Center Column, see the options there.</li>
+<li><a href=\"javascript: myflowers.expandit('footer-style-tab')\">Style & edit FOOTER</a>: Put the code into the text area named \"Footer: Content\".</li>
+<li>Technically, you could also hard code widget areas into one of the Atahualpa files such as index.php, header.php or footer.php (by using the code as shown below).
+You should avoid this though, because you'd have to re-do these file edits whenever you upgrade to a new version of Atahualpa. Most of the time it will be unnecessary anyway as there
+most likely is a text area here in the theme option pages where you can insert your code. Code that you insert in the theme options will be saved in the
+database and automatically carried over to new Atahualpa versions when you upgrade.</li></ul>
+
+<h3>Usage</h3>
+The code to create dynamic widget areas is a PHP function with parameters:<br />
+<code><?php bfa_widget_area('parameter=value&paramater=value&paramater=value'); ?></code>
+
+<h3>Min. required paramaters</h3>
+This is the shortest and most basic way you can create a dynamic widget area.<br />
+<code><?php bfa_widget_area('name=My dynamic widget area'); ?></code><br /><br />
+In this case a simple DIV container will be created. In the source code of your site, it will look like this:<br />
+<code><div id=\"my_dynamic_widget_area\" class=\"bfa_widget_area\"> Widgets will go here </div></code><br />
+(If you choose several cells, a table will be created instead, see below).
+
+<h3>Example:</h3>
+This example uses more parameters. It creates a widget area spanning the whole available width (like all widget areas), with 4 widget area cells (default: 1). Each widget area cell is a widget area in its own right. You can
+specify an alignment and a width for all or particular widget area cells. Finally, you can specify opening and closing HTML tags for the widgets that will be placed in
+these dynamic widget area cells.<br />
+<code><?php bfa_widget_area('name=My widget area&cells=4&align=1&align_2=9&align_3=7&width_4=700&before_widget=<div id=\"%1\$s\" class=\"header-widget %2\$s\">&after_widget=</div>'); ?></code><br /><br />
+Because these are multiple cells side by side, it will create a table instead of a DIV. Doing this with floating DIV's would not only be very fragile, it would also require more code
+than the table consists of.
+
+
+<h3>Available parameters:</h3>
+<table>
+<tr>
+<td class='bfa-td' colspan='2' style='border-top-style: solid'>
+<strong>Mandatory:</strong>
+</td>
+</tr><tr>
+<td class='bfa-td'><code>name</code></td>
+<td class='bfa-td'>Name under which all cells of this widget area will be listed at Site Admin -> Appearance -> <a href='widgets.php'>Widgets</a> (see drop down select menu at top right).<br /><br />
+ <em>A widget area with 3 cells and a name of \"My widget area\" creates 3 widget cells which will be listed as
+ \"My widget area 1\", \"My widget area 2\" and \"My widget area 3\" at Site Admin -> Appearance -> Widgets,
+ with the CSS ID's \"my_widget_area_1\", \"my_widget_area_2\" and \"my_widget_area_3\". </em>
+</td>
+</tr><tr>
+<td class='bfa-td' colspan='2' style='border-top-style: solid'>
+<strong>Optional:</strong>
+</td>
+</tr><tr>
+<td class='bfa-td'><code>cells</code></td>
+<td class='bfa-td'>Amount of (table) cells. Each cell is a dynamic widget area. Default: 1</td>
+</tr><tr>
+<td class='bfa-td'><code>align</code></td>
+<td class='bfa-td'><img src=\"" . $templateURI . "/options/images/widget-area-alignment.gif\"
+ style=\"float: left; margin: 0 10px 10px 0;\">Default alignment for all cells.<br />Default: <code>2</code> (= center top). <code>1</code> = center middle, <code>2</code> = center top,
+<code>3</code> = right top, <code>4</code> = right middle, <code>5</code> = right bottom, <code>6</code> = center bottom,
+<code>7</code> = left bottom, <code>8</code> = left middle, <code>9</code> = left top.</td>
+</tr><tr>
+<td class='bfa-td'><code>align_1</code>, <code>align_2</code>, <code>align_3</code> etc.</td>
+<td class='bfa-td'><img src=\"" . $templateURI . "/options/images/widget-area-alignment.gif\"
+ style=\"float: left; margin: 0 10px 10px 0;\">Alignment for a particular widget area cell. If not defined, widget area cells get the default value of the global parameter <code>align</code>, which, if not defined, is <code>2</code> (= center top).</td>
+</tr><tr>
+<td class='bfa-td'><code>width_1</code>, <code>width_2</code>, <code>width_3</code> etc.</td>
+<td class='bfa-td'>Width of a particular widget area cell. If not defined, widget area cells get an equal share of the remaining width of the whole widget area table. You can specify the value with 'px' or '%' - if you don't use eithor, it will default to 'px'.</td>
+</tr>
+<tr>
+<td class='bfa-td' colspan='2' style='border-top-style: solid'>
+<strong>Very Optional:</strong><br />Use these only if you want to apply different opening and closing HTML tags to the widgets that you
+put into the dynamic widget areas. By default the widgets will get the same opening/closing tags as the widgets in the sidebars. The default tags
+are shown below. <br /><br /><em>Note: These are the HTML tags that will be wrapped around each single widget in this particular widget area.
+The purpose is to be able to wrap a widget into different HTML tags depending on the widget area it was placed in. If you just want different styling for
+a widget based on the widget area it was placed in, then you could usually achieve this with CSS alone, by adressing the widget through the ID or class of its parent (= widget area it was placed in):<br />
+</em><code>div#my_widget_area div.widget { border: solid 1px black}</code><br /><em>Use these opening/closing HTML tags only
+if CSS alone is not enough, because you need different HTML tags before or after the widget or widget title, in a particular widget area.</em>
+</td>
+</tr><tr>
+<td class='bfa-td'><code>before_widget</code></td>
+<td class='bfa-td'>HTML before each widget in any cell of this widget area. <br />Default: <code><div id=\"%1\$s\" class=\"widget %2\$s\"></code><br />
+<code>%1\$s</code> and <code>%2\$s</code> will be replaced with individual names, which the widget will provide.</td>
+</tr><tr>
+<td class='bfa-td'><code>after_widget</code></td>
+<td class='bfa-td'>HMTL after each widget ... <br />Default: <code></div></code></td>
+</tr><tr>
+<td class='bfa-td'><code>before_title</code></td>
+<td class='bfa-td'>HTML before the title of each widget in any cell of this widget area: <br />Default: <code><div class=\"widget-title\"><h3></code></td>
+</tr><tr>
+<td class='bfa-td'><code>after_title</code></td>
+<td class='bfa-td'>HMTL after the title ... <br />Default: <code></h3></div></code></td>
+</tr>
+</table>
+"),
+
+// New category: postinfos
+
+ array( "name" => "KICKER: Homepage",
+ "category" => "postinfos",
+ "switch" => "yes",
+ "id" => "post_kicker_home",
+ "type" => "postinfos",
+ "std" => "",
+ "info" => "Leave blank to display no kicker on posts on the homepage.<br /><strong>Example:
+ </strong> <code>%category%</code>"),
+
+ array( "name" => "KICKER: Multi Post Pages",
+ "category" => "postinfos",
+ "id" => "post_kicker_multi",
+ "type" => "postinfos",
+ "std" => "",
+ "info" => "Leave blank to display no kicker on posts on multi post pages.<br /><strong>Example:
+ </strong> <code>%category-linked%</code>"),
+
+ array( "name" => "KICKER: Single Post Pages",
+ "category" => "postinfos",
+ "id" => "post_kicker_single",
+ "type" => "postinfos",
+ "std" => "",
+ "info" => "Leave blank to display no kicker on posts on single post pages.<br /><strong>Example:
+ </strong> <code>%category-linked%</code>"),
+
+ array( "name" => "KICKER: \"Page\" Pages",
+ "category" => "postinfos",
+ "id" => "post_kicker_page",
+ "type" => "postinfos",
+ "std" => "",
+ "info" => "Leave blank to display no kicker on \"page\" pages.<br /><em>NOTE: \"Page\"
+ pages don't have categories or tags</em>"),
+
+ array( "name" => "BYLINE: Homepage",
+ "category" => "postinfos",
+ "id" => "post_byline_home",
+ "type" => "postinfos",
+ "std" => "",
+ "info" => "Leave blank to display no byline on posts on the homepage.<br /><strong>Example:
+ </strong> <code>By %author%, on %date('<i>F jS, Y</i>')%</code>"),
+
+ array( "name" => "BYLINE: Multi Post Pages",
+ "category" => "postinfos",
+ "id" => "post_byline_multi",
+ "type" => "postinfos",
+ "std" => "",
+ "info" => "Leave blank to display no byline on posts on multi post pages.<br /><strong>Example:
+ </strong> <code>By %author%, on %date('<i>F jS, Y</i>')%</code>"),
+
+ array( "name" => "BYLINE: Single Post Pages",
+ "category" => "postinfos",
+ "id" => "post_byline_single",
+ "type" => "postinfos",
+ "std" => "",
+ "info" => "Leave blank to display no byline on posts on single post pages.<br /><strong>Example:
+ </strong> <code>By %author%, on %date('<i>F jS, Y</i>')%</code>"),
+
+ array( "name" => "BYLINE: \"Page\" Pages",
+ "category" => "postinfos",
+ "id" => "post_byline_page",
+ "type" => "postinfos",
+ "std" => "",
+ "info" => "Leave blank to display no byline on \"page\" pages.<br /><em>NOTE: \"Page\"
+ pages don't have categories or tags</em>"),
+
+ array( "name" => "FOOTER: Homepage",
+ "category" => "postinfos",
+ "id" => "post_footer_home",
+ "type" => "postinfos",
+ "std" => "%date('F jS, Y')% | %tags-linked('" . __('Tags: ','atahualpa') . "', ', ', ' | ')% " .
+__('Category:','atahualpa') . " %categories-linked(', ')% | %comments('" . __('Leave a comment','atahualpa') .
+"', '" . __('One comment','atahualpa') . "', '" . __('% comments','atahualpa') . "', '" . __('Comments are closed','atahualpa') .
+"')% %edit(' | ', '" . __('Edit this post','atahualpa') . "', '')%",
+ "info" => "Leave blank to display no footer on posts on the homepage.<br /><strong>Example:</strong>
+ <code>%tags-linked('<i><strong>Tags:</strong> </i>', '<i>, </i>', '<i> - </i>')%
+ <strong>Categories:</strong> %categories-linked('<i>, </i>')%<br />
+ %comments('<i>Leave a comment</i>', '<i>One comment so far</i>', '<i>% comments - be the next!</i>',
+ '<i>Comments are closed</i>')% %edit(' | ', 'Edit', '')%</code>"),
+
+ array( "name" => "FOOTER: Multi Post Pages",
+ "category" => "postinfos",
+ "id" => "post_footer_multi",
+ "type" => "postinfos",
+ "std" => "%date('F jS, Y')% | %tags-linked('" . __('Tags: ','atahualpa') . "', ', ', ' | ')% " .
+__('Category:','atahualpa') . " %categories-linked(', ')% | %comments('" . __('Leave a comment','atahualpa') .
+"', '" . __('One comment','atahualpa') . "', '" . __('% comments','atahualpa') . "', '" . __('Comments are closed','atahualpa') .
+"')% %edit(' | ', '" . __('Edit this post','atahualpa') . "', '')%",
+ "info" => "Leave blank to display no footer on posts on multi post pages.<br /><strong>Example:</strong>
+ <code>%tags-linked('<i><strong>Tags:</strong> </i>', '<i>, </i>', '<i> - </i>')% <strong>
+ Categories:</strong> %categories-linked('<i>, </i>')%<br />%comments('<i>Leave a comment</i>',
+ '<i>One comment so far</i>', '<i>% comments - be the next!</i>', '<i>Comments are closed</i>')% %edit(' | ', 'Edit', '')%</code>"),
+
+ array( "name" => "FOOTER: Single Post Pages",
+ "category" => "postinfos",
+ "id" => "post_footer_single",
+ "type" => "postinfos",
+ "std" => "%date('F jS, Y')% | %tags-linked('" . __('Tags: ','atahualpa') . "', ', ', ' | ')% " .
+__('Category:','atahualpa') . " %categories-linked(', ')% %edit(' | ', '" . __('Edit this post','atahualpa') . "', '')%",
+ "info" => "Leave blank to display no footer on posts on single post pages.<br /><strong>Example:</strong>
+ <code>%tags-linked('<i><strong>Tags:</strong> </i>', '<i>, </i>', '<i> - </i>')% <strong>
+ Categories:</strong> %categories-linked('<i>, </i>')% | <a href=\"#comments\">Skip to comments</a> %edit(' | ', 'Edit', '')%</code>"),
+
+ array( "name" => "FOOTER: \"Page\" Pages",
+ "category" => "postinfos",
+ "id" => "post_footer_page",
+ "type" => "postinfos",
+ "std" => "",
+ "lastoption" => "yes",
+ "info" => "Leave blank to have no footer on \"page\" pages.<br /><em>NOTE: \"Page\" pages
+ don't have categories or tags</em>"),
+
+// New category: posts
+
+ array( "name" => "POST Container",
+ "category" => "posts",
+ "switch" => "yes",
+ "id" => "post_container_style",
+ "std" => "margin: 0 0 30px 0;",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-container.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the container</strong>
+ that contains the whole post/page."),
+
+ array( "name" => "POST Container: STICKY",
+ "category" => "posts",
+ "id" => "post_container_sticky_style",
+ "std" => "background: #eee url(" . $templateURI . "/images/sticky.gif) 99% 5% no-repeat;\nborder: dashed 1px #cccccc;\npadding: 10px;",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-container.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Additional styles for <strong>the container
+ </strong> when it is <strong>STICKY</strong>. This works only in WP 2.7 and newer.
+ In WP 2.7, posts can be marked as \"sticky\" which will make them stay on the top of the homepage."),
+
+ array( "name" => "KICKER Box",
+ "category" => "posts",
+ "id" => "post_kicker_style",
+ "std" => "margin: 0 0 5px 0;",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-kicker.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the box</strong> that
+ contains the post/page \"kicker\", <strong>and the text</strong> inside, except the links."),
+
+ array( "name" => "KICKER Box: Links",
+ "category" => "posts",
+ "id" => "post_kicker_style_links",
+ "std" => "color: #000000;\ntext-decoration: none;\ntext-transform: uppercase;",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-kicker-links.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the links</strong> in the kicker box."),
+
+ array( "name" => "KICKER Box: Links: Hover",
+ "category" => "posts",
+ "id" => "post_kicker_style_links_hover",
+ "std" => "color: #cc0000;",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-kicker-links-hover.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the links</strong> in the
+ kicker box, in their <strong>hover</strong> state."),
+
+ array( "name" => "HEADLINE Box",
+ "category" => "posts",
+ "id" => "post_headline_style",
+ "std" => "",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-headline.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the box</strong> that contains
+ the post/page title. The text inside (= the post/page title) will be styled in the next section."),
+
+ array( "name" => "HEADLINE Box: Text",
+ "category" => "posts",
+ "id" => "post_headline_style_text",
+ "std" => "padding: 0;\nmargin: 0;",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-headline-text.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the post/page titles, when
+ they are NOT links</strong>, but regular text (= on single post pages and \"page\" pages)."),
+
+ array( "name" => "HEADLINE Box: Links",
+ "category" => "posts",
+ "id" => "post_headline_style_links",
+ "std" => "color: #666666;\ntext-decoration: none;",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-headline-links.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the post/page titles, when
+ they ARE links</strong> (= on multi post pages such as home, archive, category, tag, search...).
+ \"Page\" page titles are usually never links, but they might become links, i.e. if you expand
+ WordPress' search capabilities with a plugin."),
+
+ array( "name" => "HEADLINE Box: Links: Hover",
+ "category" => "posts",
+ "id" => "post_headline_style_links_hover",
+ "std" => "color: #000000;\ntext-decoration: none;",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-headline-links-hover.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style the <strong>hover</strong> state of
+ <strong>post/page titles</strong>, when they are links."),
+
+ array( "name" => "BYLINE Box",
+ "category" => "posts",
+ "id" => "post_byline_style",
+ "type" => "textarea-large",
+ "std" => "margin: 5px 0 10px 0;",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-byline.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the box</strong> that contains
+ the post/page byline, <strong>and the text</strong> inside, except the links."),
+
+ array( "name" => "BYLINE Box: Links",
+ "category" => "posts",
+ "id" => "post_byline_style_links",
+ "type" => "textarea-large",
+ "std" => "",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-byline-links.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the links</strong> in
+ the byline box."),
+
+ array( "name" => "BYLINE Box: Links: Hover",
+ "category" => "posts",
+ "id" => "post_byline_style_links_hover",
+ "type" => "textarea-large",
+ "std" => "",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-byline-links-hover.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the links</strong> in the
+ byline box, in their <strong>hover</strong> state."),
+
+ array( "name" => "BODY Box",
+ "category" => "posts",
+ "id" => "post_bodycopy_style",
+ "type" => "textarea-large",
+ "std" => "",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-body.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the box</strong> that
+ contains the post/page main text (= the \"body copy\"). The text and links in
+ the post/page main text box can be styled on the main tab \"Text & Link Styling\"."),
+
+ array( "name" => "FOOTER Box",
+ "category" => "posts",
+ "id" => "post_footer_style",
+ "type" => "textarea-large",
+ "std" => "margin: 0;\npadding: 5px;\nbackground: #eeeeee;\ncolor: #666;\nline-height: 18px;",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-footer.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the box</strong> that
+ contains the post/page footer, <strong>and the text</strong> inside, except the links."),
+
+ array( "name" => "FOOTER Box: Links",
+ "category" => "posts",
+ "id" => "post_footer_style_links",
+ "type" => "textarea-large",
+ "std" => "color: #333;\nfont-weight: normal;\ntext-decoration: none;",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-footer-links.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the links</strong> in the footer box."),
+
+ array( "name" => "FOOTER Box: Links: Hover",
+ "category" => "posts",
+ "id" => "post_footer_style_links_hover",
+ "type" => "textarea-large",
+ "std" => "color: #333;\nfont-weight: normal;\ntext-decoration: underline;",
+ "lastoption" => "yes",
+ "info" => "<img src=\"" . $templateURI . "/options/images/post-footer-links-hover.gif\"
+ style=\"float: right; margin: 0 0 10px 10px;\">" . "Style <strong>the links</strong> in the
+ footer box, in their <strong>hover</strong> state."),
+
+
+// New category: posts-or-excerpts
+
+ array( "name" => "Excerpt length",
+ "category" => "posts-or-excerpts",
+ "switch" => "yes",
+ "id" => "excerpt_length",
+ "type" => "text",
+ "size" => 6,
+ "std" => 55,
+ "info" => "Length of excerpts (= number of words)."),
+
+ array( "name" => "Don't strip these tags",
+ "escape" => "yes",
+ "category" => "posts-or-excerpts",
+ "id" => "dont_strip_excerpts",
+ "type" => "text",
+ "size" => 40,
+ "std" => "<p>",
+ "info" => "By default, WordPress strips most HTML tags from excerpts, except <p>. Put the HTML tags here
+ that you don't want to have stripped by WordPress. Put only the opening tag here, without spaces or commas.
+ <br /><br /><strong>Example:</strong><br /><br />
+ <code><p><a><span><em></code><br />...means \"don't strip <p>, </p>, <a href=\"...\">, </a>,
+ <span class=\"...\">, </span>, <em> and </em> from excerpts\"."),
+
+ array( "name" => "Custom read more",
+ "category" => "posts-or-excerpts",
+ "id" => "custom_read_more",
+ "type" => "textarea-large",
+ "std" => "[...]",
+ "info" => "By default, WordPress puts an ellipsis <code>[...]</code> at the bottom of excerpts. You can customize this with
+ HTML & PHP. <br /><br /><strong>Example</strong><br /><br />
+ <code><p>Continue reading <a href=\"%permalink%\">%title%</a></p></code><br /><br />
+ <code>%permalink%</code> will be replaced with the URL of the post<br />
+ <code>%title%</code> will be replaced with the title of the post"),
+
+ array( "name" => "Posts or excerpts on HOME page?",
+ "category" => "posts-or-excerpts",
+ "id" => "excerpts_home",
+ "type" => "select",
+ "std" => "Full Posts",
+ "options" => array("Only Excerpts", "Full Posts"),
+ "info" => "Show full posts or only excerpts, on the Homepage?"),
+
+ array( "name" => "Show the first X posts on HOME page as full posts?",
+ "category" => "posts-or-excerpts",
+ "id" => "full_posts_homepage",
+ "type" => "select",
+ "std" => 0,
+ "options" => array(0,1,2,3,4,5,6,7,8,9,10),
+ "info" => "By setting a number here and setting the option above (Posts or excerpts on HOME page?) to
+ \"Only Excerpts\" you can show X full posts on top of the Homepage, followed by excerpts."),
+
+ array( "name" => "Posts or excerpts on CATEGORY pages?",
+ "category" => "posts-or-excerpts",
+ "id" => "excerpts_category",
+ "type" => "select",
+ "std" => "Only Excerpts",
+ "options" => array("Only Excerpts", "Full Posts"),
+ "info" => "Show full posts or only excerpts, on Category pages?"),
+
+ array( "name" => "Posts or excerpts on ARCHIVE pages?",
+ "category" => "posts-or-excerpts",
+ "id" => "excerpts_archive",
+ "type" => "select",
+ "std" => "Only Excerpts",
+ "options" => array("Only Excerpts", "Full Posts"),
+ "info" => "Show full posts or only excerpts, on (date based) Archive pages?"),
+
+ array( "name" => "Posts or excerpts on TAG pages?",
+ "category" => "posts-or-excerpts",
+ "id" => "excerpts_tag",
+ "type" => "select",
+ "std" => "Only Excerpts",
+ "options" => array("Only Excerpts", "Full Posts"),
+ "info" => "Show full posts or only excerpts, on Tag pages?"),
+
+ array( "name" => "Posts or excerpts on SEARCH RESULT pages?",
+ "category" => "posts-or-excerpts",
+ "id" => "excerpts_search",
+ "type" => "select",
+ "std" => "Only Excerpts",
+ "options" => array("Only Excerpts", "Full Posts"),
+ "info" => "Show full posts or only excerpts, on Search Result pages?"),
+
+ array( "name" => "Posts or excerpts on AUTHOR pages?",
+ "category" => "posts-or-excerpts",
+ "id" => "excerpts_author",
+ "type" => "select",
+ "std" => "Only Excerpts",
+ "options" => array("Only Excerpts", "Full Posts"),
+ "lastoption" => "yes",
+ "info" => "Show full posts or only excerpts, on Author pages?"),
+
+// New category: posts-or-excerpts
+
+ array( "name" => "Post Thumbnail Width",
+ "category" => "post-thumbnails",
+ "switch" => "yes",
+ "id" => "post_thumbnail_width",
+ "type" => "text",
+ "size" => 6,
+ "std" => 150,
+ "info" => "Width of Post Thumbnails in pixels.<br><br><span style='color:red'>Note: Post Thumbnails are only displayed on multi post pages, which
+ have been set to display 'Only Excerpts'. See menu tab 'Configure Excerpts'.</span>"),
+
+ array( "name" => "Post Thumbnail Height",
+ "category" => "post-thumbnails",
+ "id" => "post_thumbnail_height",
+ "type" => "text",
+ "size" => 6,
+ "std" => 150,
+ "info" => "Height of Post Thumbnails in pixels."),
+
+ array( "name" => "Crop Post Thumbnails?",
+ "category" => "post-thumbnails",
+ "id" => "post_thumbnail_crop",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("Yes", "No"),
+ "info" => "Example: Original image is 600x400. The settings above are at 150/150. Then the post thumbnail has a size of...<ul><li>150x150 if 'Yes' (Crop)</li>
+ <li>150x100 if 'No' (Don't Crop')</li></ul>
+ With cropping you get the same size for all post thumbnails, but something will be cut off from the image (unless the image is square sized). "),
+
+ array( "name" => "Post Thumbnail CSS",
+ "category" => "post-thumbnails",
+ "id" => "post_thumbnail_css",
+ "type" => "textarea-large",
+ "std" => "float: left;\nborder: 0;\npadding: 0;\nbackground: none;\nmargin: 0 10px 5px 0;\n",
+ "lastoption" => "yes",
+ "info" => "Style the Post Thumbnail. It is placed inside the
+ 'bodycopy' of a post, right before the first paragraph of the excerpt:<br />
+ <div class='post-bodycopy'><br /> <strong><img POST THUMBNAIL HERE class='wp-post-image' /></strong><br /> <p>Post Excerpt starts here...</p><br /></div>"),
+
+
+// New category: more-tag
+
+ array( "name" => "Read More",
+ "category" => "more-tag",
+ "switch" => "yes",
+ "id" => "more_tag",
+ "std" => __("Continue reading %post-title%","atahualpa"),
+ "type" => "text",
+ "size" => "30",
+ "editable" => "yes",
+ "lastoption" => "yes",
+ "info" => "Configure the \"Read More\" text here. The text you put here will be displayed whenever you use
+ <code><!--more--></code> in a post, either by manually inserting that tag into a post or by using the
+ more button (see images below). This is a more fine-grained method of generating post excerpts than setting
+ the post display type to \"Excerpts\" (see menu tab \"Posts or Excerpts\"). <br /><br />Whenever you insert
+ <code><!--more--></code> into a post, only the text before that tag will be displayed on
+ multi-post-pages while the whole post will be displayed on its dedicated single post page. <br /><br />
+ Use <code>%post-title%</code> to include the post title in the \"More\" text.<br /><br />
+ Example:<br /> <code>Continue reading \"<strong>%post-title%</strong>\" &raquo;</code><br /><br />
+ You can use single and double quotes, and HTML. Examples:<ul><li><code><br /></code> for line breaks</li>
+ <li><code><strong> ... </strong></code> to make text <strong>bold</strong></li>
+ <li><code><em> ... </em></code> to make text <em>italic</em></li><li><code>&nbsp;</code> to
+ include a non-breaking space</li><li><code>&raquo;</code> for a right angle quote
+ <span style=\"font-size: 25px\">»</span></li><li><code>&laquo;</code> for a left angle quote
+ <span style=\"font-size: 25px\">«</span></li><li><code>&rsaquo;</code> for a right single angle quote
+ <span style=\"font-size: 25px\">›</span></li><li><code>&lsaquo;</code> for a left single angle quote
+ <span style=\"font-size: 25px\">‹</span></li><li><code>&rarr;</code> for a right arrow
+ <span style=\"font-size: 25px\">→</span></li><li><code>&larr;</code> for a left arrow
+ <span style=\"font-size: 25px\">←</span></li></ul>The WordPress editor buttons to insert the
+ \"Read More\" tag into a post or page. They look different depending on whether you're in Visual or HTML mode.<br /><br >" .
+ "<img src=\"" . $templateURI . "/options/images/readmore1.gif\" /><br /><br />
+ <img src=\"" . $templateURI . "/options/images/readmore2.gif\" />"),
+
+// New category: comments
+
+ array( "name" => "Highlight Author comments?",
+ "category" => "comments",
+ "switch" => "yes",
+ "id" => "author_highlight",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "Highlight author (blog owner) comments with a different background color?"),
+
+ array( "name" => "Color for Author comment highlighting",
+ "category" => "comments",
+ "id" => "author_highlight_color",
+ "std" => "ffecec",
+ "type" => "text",
+ "info" => "If you chose Yes above, set the background color for author comments here."),
+
+ array( "name" => "Border color for 2nd or lower level Author comments",
+ "category" => "comments",
+ "id" => "author_highlight_border_color",
+ "std" => "ffbfbf",
+ "type" => "text",
+ "info" => "If you chose Yes above, set the border color for author comments in the 2nd
+ or lower level = direct reply to another comment"),
+
+ array( "name" => "Regular Comment Background Color",
+ "category" => "comments",
+ "id" => "comment_background_color",
+ "std" => "ffffff",
+ "type" => "text",
+ "info" => "Background color for comments"),
+
+ array( "name" => "Alternating Comment Background Color",
+ "category" => "comments",
+ "id" => "comment_alt_background_color",
+ "std" => "eeeeee",
+ "type" => "text",
+ "info" => "Background color for every second comment. Choose the same color as one option above if
+ you want the same background color for all comments."),
+
+ array( "name" => "Border between single comments",
+ "category" => "comments",
+ "id" => "comment_border",
+ "std" => "dotted 1px #cccccc",
+ "type" => "text",
+ "info" => "Style the line that separates every comment from the next. No semicolon here."),
+
+ array( "name" => "Comment Author Name Size",
+ "category" => "comments",
+ "id" => "comment_author_size",
+ "type" => "select",
+ "std" => "110%",
+ "options" => array("100%", "105%", "110%", "115%", "120%", "125%", "130%", "135%", "140%", "145%", "150%"),
+ "info" => "Font size of comment author names relative to base font size."),
+
+ array( "name" => "Comment Reply link text",
+ "category" => "comments",
+ "id" => "comment_reply_link_text",
+ "std" => __(" · Reply", "atahualpa"),
+ "type" => "text",
+ "editable" => "yes",
+ "info" => "The text for the \"Reply\" link for each comment."),
+
+ array( "name" => "Comment Edit link text",
+ "category" => "comments",
+ "id" => "comment_edit_link_text",
+ "std" => __(" · Edit", "atahualpa"),
+ "type" => "text",
+ "editable" => "yes",
+ "info" => "The text for the \"Edit\" link for each comment. This text is only visible to users who are allowed
+ to edit a comment."),
+
+ array( "name" => "Comment In Moderation text",
+ "category" => "comments",
+ "id" => "comment_moderation_text",
+ "std" => __("Your comment is awaiting moderation.", "atahualpa"),
+ "type" => "text",
+ "editable" => "yes",
+ "info" => "The text to show after a comment was submitted, if you've set your comments to be moderated before being
+ published."),
+
+ array( "name" => "Comments Are Closed text",
+ "category" => "comments",
+ "id" => "comments_are_closed_text",
+ "std" => __("<p>Comments are closed.</p>", "atahualpa"),
+ "type" => "text",
+ "editable" => "yes",
+ "info" => "The text to show below a post or page if you've closed comments for that post or page."),
+
+ array( "name" => "Allow comments on \"Page\" pages, too?",
+ "category" => "comments",
+ "id" => "comments_on_pages",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "Set to Yes to have a comment form (and comments if any) on \"Page\" pages, too, and not only on Post pages."),
+
+ array( "name" => "Separate trackbacks/pings from comments?",
+ "category" => "comments",
+ "id" => "separate_trackbacks",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("Yes", "No"),
+ "info" => "For WP 2.6 and older: List comments, trackbacks and pings in the order they come in, or put all
+ trackbacks and pings below the comments?<br /><br /><em>Note: This works well with Atahualpa's own functions
+ but not if you use the plugin <a href=\"http://wordpress.org/extend/plugins/paged-comments/\">Paged Comments</a>
+ or Wordpress 2.7</em>"),
+
+ array( "name" => "Avatar Size",
+ "category" => "comments",
+ "id" => "avatar_size",
+ "type" => "select",
+ "std" => "55",
+ "options" => array("0", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80"),
+ "info" => "The size of avatars, in pixels. 55 means 55 x 55 pixels. Choose 0 here to show no avatars
+ (or turn them off in the WordPress admin panel if your WP version has built in avatar support)."),
+
+ array( "name" => "Avatar Style",
+ "category" => "comments",
+ "id" => "avatar_style",
+ "std" => "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;",
+ "type" => "textarea-large",
+ "info" => "Style avatars. The lines with \"radius\" create rounded corners in Firefox and Safari."),
+
+ array( "name" => "Show XHTML tags?",
+ "category" => "comments",
+ "id" => "show_xhtml_tags",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "Show the \"You can use these HTML tags\" info below the comment form?"),
+
+ array( "name" => "Comment Form Style",
+ "category" => "comments",
+ "id" => "comment_form_style",
+ "std" => "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;",
+ "type" => "textarea-large",
+ "info" => "Style the comment form area = Box that contains the Name, Email, Website input fields, the comment textarea and the submit button."),
+
+ array( "name" => "Submit Button Style",
+ "category" => "comments",
+ "id" => "submit_button_style",
+ "std" => "padding: 4px 10px 4px 10px;\nfont-size: 1.2em;\nline-height: 1.5em;\nheight: 36px;",
+ "type" => "textarea-large",
+ "info" => "Style the comment submit button, i.e. give it margin to move it around. This section here is
+ specifically for the <strong>comment</strong> submit button. Additionally, default button styles will be applied, see
+ menu tab \"Forms\", options \"Submit Buttons: Default Style\" and \"Submit Buttons: Hover Style\"."),
+
+ array( "name" => "Comment display order",
+ "category" => "comments",
+ "id" => "comment_display_order",
+ "type" => "select",
+ "std" => "Oldest on top",
+ "options" => array("Oldest on top", "Newest on top"),
+ "lastoption" => "yes",
+ "info" => "For WP 2.6 and older: To list comments in reverse order choose \"Newest on top\".
+ In WP 2.7+ you can set this at Settings -> Discussion."),
+
+// New category: footer-style (don't name this "footer", Wordpress already uses that for their own footer in the admin area)
+
+ array( "name" => "Footer Style",
+ "category" => "footer-style",
+ "switch" => "yes",
+ "id" => "footer_style",
+ "std" => "background-color: #ffffff;\nborder-top: dashed 1px #cccccc;\npadding: 10px;
+text-align: center;\ncolor: #777777;\nfont-size: 95%;",
+ "type" => "textarea-large",
+ "info" => "Style the footer box and the text inside."),
+
+ array( "name" => "Footer Style: Links",
+ "category" => "footer-style",
+ "id" => "footer_style_links",
+ "std" => "text-decoration: none;\ncolor: #777777;\nfont-weight: normal;",
+ "type" => "textarea-large",
+ "info" => "Style the links in the footer."),
+
+ array( "name" => "Footer Style: Links: Hover",
+ "category" => "footer-style",
+ "id" => "footer_style_links_hover",
+ "std" => "text-decoration: none;\ncolor: #777777;\nfont-weight: normal;",
+ "type" => "textarea-large",
+ "info" => "Style the links in the footer in hover state."),
+
+ array( "name" => "Footer: Content",
+ "category" => "footer-style",
+ "id" => "footer_style_content",
+ "std" => __("Copyright © %current-year% %home% - All Rights Reserved","atahualpa"),
+ "type" => "textarea-large",
+ "editable" => "yes",
+ "info" => "Content in the footer area. You can use PHP (in WordPress, but not in WPMU), (X)HTML
+ and these placeholders ...
+ <ul><li><code>%current-year%</code> to display the current year</li>
+ <li><code>%page-XX%</code> to display the full link for a specific page. Replace XX with the ID of the page
+ you want to display the link for.</li><li><code>%home%</code> to display a full link to the homepage.</li>
+ <li><code>%loginout%</code> to display a full Login/Logout link</li><li><code>%admin%</code> to display a
+ full link to the admin area. (Will only be displayed for logged in users.)</li>
+ <li><code>%register%</code> to display a full register link</li><li><code>%rss%</code> to display (only)
+ the URL for the RSS feed. This is not a full link, just the URL. Use something like
+ <code><a href=\"%rss%\" rel=\"nofollow\">Posts Feed</a></code></li>
+ <li><code>%comments-rss%</code> to display (only) the URL for the Comments RSS feed. This is not a full link,
+ just the URL. Use something like <code><a href=\"%comments-rss%\" rel=\"nofollow\">Comments Feed</a></code>.
+ (The BFA SEO option \"Nofollow RSS\" will not work here - nofollow would have to be included manually as
+ shown in these examples).</li>
+ <li>In HTML, <span style=\"font-size:24px\">©</span> can be displayed with <code>&copy;</code>,
+ <span style=\"font-size:24px\">™</span> with <code>&trade;</code> and
+ <span style=\"font-size:24px\">®</span> with <code>&reg;</code></li></ul>"),
+
+ array( "name" => "Full Width Footer",
+ "category" => "footer-style",
+ "id" => "full_width_footer",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("Yes", "No"),
+ "info" => "When this option is set to<code>Yes</code>the FOOTER will extend across the full width of the browser window.
+ When set to<code>No</code>it will only span the width of the LAYOUT."),
+
+ array( "name" => "Sticky footer on short pages?",
+ "category" => "footer-style",
+ "id" => "sticky_layout_footer",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes"),
+ "info" => "Make the layout footer \"stick\" at the bottom if the page is shorter than the browser viewport?"),
+
+ array( "name" => "Show number of queries & timer?",
+ "category" => "footer-style",
+ "id" => "footer_show_queries",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("No", "Yes - visible", "Yes - in source code"),
+ "lastoption" => "yes",
+ "info" => "Show the amount of database queries and the time required to render the given page,
+ at the bottom of every page? This can be useful to see how certain settings or plugins add to
+ the page rendering time."),
+
+// New category: tables
+
+ array( "name" => "Table Style",
+ "category" => "tables",
+ "switch" => "yes",
+ "id" => "table",
+ "std" => "border-collapse: collapse;\nmargin: 10px 0;",
+ "type" => "textarea-large",
+ "info" => "Style the table as a whole <code><table></code> ... <code></table></code>"),
+
+ array( "name" => "Table Caption Style",
+ "category" => "tables",
+ "id" => "table_caption",
+ "std" => "background: #eeeeee;\nborder: #999999;\npadding: 4px 8px;\ncolor: #666666;",
+ "type" => "textarea-large",
+ "info" => "The table caption (if you use any) is (usually) the first row in a table.<br /><br />
+ <strong>Example:</strong><br /><code><table><br /><i><caption>Results May 2008</caption></i><br />
+ <thead><tr><th>Name</th><th>Address</th></tr></thead><br />
+ <tfoot><tr><td>Previous</td><td>Next</td></tr></tfoot><br />
+ <tbody><tr><td>John</td><td>Smallville</td></tr></tbody><br />
+ </table></code><br /><br /><em>Note how the table footer <code>tfoot</code> comes <strong>before</strong>
+ the body <code>tbody</code></em>"),
+
+ array( "name" => "Table Header Cells",
+ "category" => "tables",
+ "id" => "table_th",
+ "std" => "background: #888888;\ncolor: #ffffff;\nfont-weight: bold;\nfont-size: 90%;\npadding: 4px 8px;\n
+ border: solid 1px #ffffff;\ntext-align: left;",
+ "type" => "textarea-large",
+ "info" => "Style the table header cells <code><th></code> ... <code></th></code>"),
+
+ array( "name" => "Table Body Cells",
+ "category" => "tables",
+ "id" => "table_td",
+ "std" => "padding: 4px 8px;\nbackground-color: #ffffff;\nborder-bottom: 1px solid #dddddd;\ntext-align: left;",
+ "type" => "textarea-large",
+ "info" => "Style the regular table cells <code><td></code> ... <code></td></code>"),
+
+ array( "name" => "Table Footer Cells",
+ "category" => "tables",
+ "id" => "table_tfoot_td",
+ "std" => "",
+ "type" => "textarea-large",
+ "info" => "You can style the table footer cells individually. <em>Or else they'll get the
+ same style as the Table Body Cells.</em>"),
+
+ array( "name" => "Zebra stripe all tables?",
+ "category" => "tables",
+ "id" => "table_zebra_stripes",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "Add a different style to every second row in <strong>all</strong> tables in posts and pages?
+ Alternatively, set this to \"No\" and add the class <code>zebra</code> to individual tables that you want to
+ zebra stripe.<br /><br /><strong>Example:</strong><br /><code><table class=\"zebra\"> ... </table></code>"),
+
+ array( "name" => "Zebra row TD style",
+ "category" => "tables",
+ "id" => "table_zebra_td",
+ "std" => "background: #f4f4f4;",
+ "type" => "textarea-large",
+ "info" => "If you chose to zebra stripe tables, set the style for the cells in every second row here."),
+
+ array( "name" => "Hover effect for all tables?",
+ "category" => "tables",
+ "id" => "table_hover_rows",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "Change the style of table rows when the mouse pointer hovers over them, for <strong>all</strong>
+ tables in posts and pages? Alternatively, set this to \"No\" and add the class <code>hover</code>
+ to individual tables that you want to apply the hover effect on.<br /><br /><strong>Example:</strong><br />
+ <code><table class=\"hover\"> ... </table></code><br /><br />Multiple classes can be added, too,
+ i.e. to add both the zebra and the hover effect to an individual table:<br /><br />
+ <code><table class=\"zebra hover\"> ... </table></code>"),
+
+ array( "name" => "Hover row TD style",
+ "category" => "tables",
+ "id" => "table_hover_td",
+ "std" => "background: #e2e2e2;",
+ "type" => "textarea-large",
+ "lastoption" => "yes",
+ "info" => "If you chose to use a hover efect for table rows, set the style for the cells in hovered table rows here."),
+
+// New category: forms
+
+ array( "name" => "Form fields: Style",
+ "category" => "forms",
+ "switch" => "yes",
+ "id" => "form_input_field_style",
+ "std" => "color: #000000;\nborder-top: solid 1px #333333;\nborder-left: solid 1px #333333;\nborder-right: solid 1px #999999;\nborder-bottom: solid 1px #cccccc;",
+ "type" => "textarea-large",
+ "info" => "Style the text input fields and textareas in forms. "),
+
+ array( "name" => "Form fields: Background image",
+ "category" => "forms",
+ "id" => "form_input_field_background",
+ "std" => "inputbackgr.gif",
+ "type" => "text",
+ "size" => "35",
+ "info" => "The \"shadow\" inside of text fields and texareas. Other available shadows are <code>inputbackgr-red.gif</code>,
+ <code>inputbackgr-green.gif</code> and <code>inputbackgr-blue.gif</code>. Or, upload your own image to <code>" .
+ $css_img_path . "images/</code>. Leave blank to have no background image in form input fields."),
+
+ array( "name" => "Highlight form fields?",
+ "category" => "forms",
+ "id" => "highlight_forms",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "Highlight form input fields when they get focus (when someone clicks into the field)?"),
+
+ array( "name" => "Highlight form fields: Style",
+ "category" => "forms",
+ "id" => "highlight_forms_style",
+ "std" => "background: #e8eff7;\nborder-color: #37699f;",
+ "type" => "textarea-large",
+ "info" => "If you chose \"Yes\" above, style the highlighted state of input fields here."),
+
+ array( "name" => "Submit Buttons: Default Style",
+ "category" => "forms",
+ "id" => "button_style",
+ "std" => "background-color: #777777;\ncolor: #ffffff;\nborder: solid 2px #555555;\nfont-weight: bold;",
+ "type" => "textarea-large",
+ "info" => "Style submit buttons in their <strong>default</strong> state."),
+
+ array( "name" => "Submit Buttons: Hover Style",
+ "category" => "forms",
+ "id" => "button_style_hover",
+ "std" => "background-color: #6b9c6b;\ncolor: #ffffff;\nborder: solid 2px #496d49;",
+ "type" => "textarea-large",
+ "lastoption" => "yes",
+ "info" => "Style submit buttons in their <strong>hover</strong> state."),
+
+// New category: blockquotes
+
+ array( "name" => "Blockquotes: Style",
+ "category" => "blockquotes",
+ "switch" => "yes",
+ "id" => "blockquote_style",
+ "std" => "color: #555555;\npadding: 1em 1em;\nbackground: #f4f4f4;\nborder: solid 1px #e1e1e1;",
+ "type" => "textarea-large",
+ "info" => "<img src=\"" . $templateURI . "/options/images/blockquotes.gif\" style=\"float: right; margin: 0 0 10px 10px;\">" .
+ "Style blockquotes. <br /><br /><strong>Example:</strong><br /><code>font: italic 1.1em georgia, serif;<br />color: #336699;<br />
+ padding: 0 1em;<br />background: #c9dbed;<br />border: dashed 5px #336699;</code><br /><br />Example Screenshot is from IE7.
+ It will look different on non-IE browsers."),
+
+ array( "name" => "Blockquotes in blockquotes: Style",
+ "category" => "blockquotes",
+ "id" => "blockquote_style_2nd_level",
+ "std" => "color: #444444;\npadding: 1em 1em;\nbackground: #e1e1e1;\nborder: solid 1px #d3d3d3;",
+ "type" => "textarea-large",
+ "lastoption" => "yes",
+ "info" => "Style blockquotes inside of blockquotes."),
+
+// New category: images
+
+ array( "name" => "Images in Posts",
+ "category" => "images",
+ "switch" => "yes",
+ "id" => "post_image_style",
+ "std" => "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;",
+ "type" => "textarea-large",
+ "info" => "Style images in posts, when they have no caption. The lines with \"radius\" create
+ rounded corners in Firefox and Safari. To remove the border around images, delete everything in this box."),
+
+ array( "name" => "Images in Posts: Caption Style",
+ "category" => "images",
+ "id" => "post_image_caption_style",
+ "std" => "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;",
+ "type" => "textarea-large",
+ "info" => "Style the caption box for images in posts, that have a caption. The lines with \"radius\"
+ create rounded corners in Firefox and Safari. To remove the border around images with caption, delete everything in this box."),
+
+ array( "name" => "Caption Text: Style",
+ "category" => "images",
+ "id" => "image_caption_text",
+ "std" => "font-size: 0.8em;\nline-height: 13px;\npadding: 2px 4px 5px;\nmargin: 0;\ncolor: #666666;",
+ "type" => "textarea-large",
+ "lastoption" => "yes",
+ "info" => "Style the caption text."),
+
+// New category: html-inserts
+
+ array( "name" => "HTML Inserts: Header",
+ "category" => "html-inserts",
+ "switch" => "yes",
+ "id" => "html_inserts_header",
+ "std" => "",
+ "type" => "textarea-large",
+ "editable" => "yes",
+ "info" => "Add code here (JavaScript, CSS, certain type of HTML) that you want to put into the header section of the website,
+ between <code><head></code> and <code></head></code>. <strong>Note:</strong> Any HTML you put here shouldn't be
+ \"visible\" HTML such as a table or a DIV container. If you put HTML here, then it would be machine parsable code, something like a
+ meta tag, such as:<br /><code><meta name=\"author\" content=\"John W. Doe\" /></code>.
+ <br /><br />Since 3.6.5 <span style='color:red'>PHP code cannot be used anymore</span> in HTML/CSS Inserts.
+ <strong>Google Analytics code</strong> would go here.
+ "),
+
+ array( "name" => "HTML Inserts: Body Tag",
+ "category" => "html-inserts",
+ "id" => "html_inserts_body_tag",
+ "std" => "",
+ "type" => "textarea-large",
+ "editable" => "yes",
+ "info" => "Add code here (usually Javascript) that you want to add to the opening body tag <code><body></code> of the website.<br /><br />
+ <strong>Example:</strong><br /><code>onLoad=\"alert('The page is loading... now!')\"</code> would result
+ in an output of <code><body <i>onLoad=\"alert('The page is loading... now!')\"</i>></code> instead
+ of the regular <code><body></code>.
+ <br /><br />Since 3.6.5 <span style='color:red'>PHP code cannot be used anymore</span> in HTML/CSS Inserts."),
+
+ array( "name" => "HTML Inserts: Body Top",
+ "category" => "html-inserts",
+ "id" => "html_inserts_body_top",
+ "std" => "",
+ "type" => "textarea-large",
+ "editable" => "yes",
+ "info" => "Add code here (JavaScript, HTML, CSS) that you want to put into the body section of the website, between
+ <code><body></code> and <code></body></code>, right after <code><body></code>.
+ <br /><br />Since 3.6.5 <span style='color:red'>PHP code cannot be used anymore</span> in HTML/CSS Inserts."),
+
+ array( "name" => "HTML Inserts: Body Bottom",
+ "category" => "html-inserts",
+ "id" => "html_inserts_body_bottom",
+ "std" => "",
+ "type" => "textarea-large",
+ "editable" => "yes",
+ "info" => "Add code here (JavaScript, HTML, CSS) that you want to put into the body section of the website,
+ between <code><body></code> and <code></body></code>, right before <code></body></code>.
+ <br /><br />Since 3.6.5 <span style='color:red'>PHP code cannot be used anymore</span> in HTML/CSS Inserts."),
+
+ array( "name" => "CSS Inserts",
+ "category" => "html-inserts",
+ "id" => "html_inserts_css",
+ "std" => "",
+ "type" => "textarea-large",
+ "editable" => "yes",
+ "lastoption" => "yes",
+ "info" => "Add CSS code here that you want to append to your theme's CSS file.<br /><br /><strong>Example</strong><br />
+ <code>.newclass {<br />color: #123456;<br />border: solid 1px #000000;<br />
+ font-family: arial, \"comic sans ms\", sans-serif;<br />background: url(". $css_img_path ."images/myimage.gif);
+ <br />}</code>
+ <br /><br /><strong>Example 2</strong><br /><code>h1 { font-size: 34px; line-height: 1.2; margin: 0.3em 0 10px; }<br />
+h2 { font-size: 28px; line-height: 1.3; margin: 1em 0 .2em; }<br />
+h3 { font-size: 24px; line-height: 1.3; margin: 1em 0 .2em; }<br />
+h4 { font-size: 19px; margin: 1.33em 0 .2em; }<br />
+h5 { font-size: 1.3em; margin: 1.67em 0; font-weight: bold; }<br />
+h6 { font-size: 1.15em; margin: 1.67em 0; font-weight: bold; }<br /></code><br />Since 3.6.5 <span style='color:red'>PHP code cannot be used anymore</span> in HTML/CSS Inserts."),
+
+
+// New category: Archives page
+
+ array( "name" => "Archives Page ID",
+ "category" => "archives-page",
+ "switch" => "yes",
+ "id" => "archives_page_id",
+ "std" => "",
+ "type" => "text",
+ "size" => "5",
+ "info" => "Atahualpa has no Archives page by default but you can create a custom one:<ul>
+ <li>Put the ID of an existing page into this field to make that page the Archives page.</li>
+ <li>This can be an empty page or a page with content.</li><li>If the page has content, the archives
+ will be appended at the bottom.</li></ul>An Archives page is a \"Page\" page listing the links to
+ (usually: monthly) archives and the categories, similar to a sitemap, but usually without a list
+ of \"Page\" pages. The difference to the archive links or select menu in the sidebar is that the
+ links will be displayed as regular content in the middle column"),
+
+ array( "name" => "Show Archives by Date?",
+ "category" => "archives-page",
+ "id" => "archives_date_show",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "Show archives by date?"),
+
+ array( "name" => "Archives by Date: Title",
+ "category" => "archives-page",
+ "id" => "archives_date_title",
+ "std" => __("Archives by Month","atahualpa"),
+ "type" => "text",
+ "info" => "The headline for the yearly/monthly/daily/postbypost archives"),
+
+ array( "name" => "Archives by Date: Type",
+ "category" => "archives-page",
+ "id" => "archives_date_type",
+ "type" => "select",
+ "std" => "monthly",
+ "options" => array("yearly", "monthly", "weekly", "daily", "postbypost"),
+ "info" => "List the date based archives by year, month, week, day or post by post?"),
+
+ array( "name" => "Archives by Date: Limit",
+ "category" => "archives-page",
+ "id" => "archives_date_limit",
+ "std" => "",
+ "type" => "text",
+ "info" => "Optional: Limit the amount of date based archive links. Leave blank for no limit.
+ <strong>Example:</strong> <code>30</code>"),
+
+ array( "name" => "Archives by Date: Show post count?",
+ "category" => "archives-page",
+ "id" => "archives_date_count",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "Show the post count for each date based archive link? Won't be used if you chose \"postbypost\" above."),
+
+ array( "name" => "Show Archives by Category?",
+ "category" => "archives-page",
+ "id" => "archives_category_show",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "Show archives by category?"),
+
+ array( "name" => "Archives by Category: Title",
+ "category" => "archives-page",
+ "id" => "archives_category_title",
+ "std" => __("Archives by Category","atahualpa"),
+ "type" => "text",
+ "info" => "The headline for the category archives"),
+
+ array( "name" => "Archives by Category: Show post count?",
+ "category" => "archives-page",
+ "id" => "archives_category_count",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "Display the post count after each category link?"),
+
+ array( "name" => "Archives by Category: Depth",
+ "category" => "archives-page",
+ "id" => "archives_category_depth",
+ "type" => "select",
+ "std" => "0",
+ "options" => array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"),
+ "info" => "Limit the depth of category levels to be displayed. Choose 0 to display all categories (= no depth limit)"),
+
+ array( "name" => "Archives by Category: Order by",
+ "category" => "archives-page",
+ "id" => "archives_category_orderby",
+ "type" => "select",
+ "std" => "name",
+ "options" => array("ID", "name", "count"),
+ "info" => "Sort the category archive links by <ul><li><strong>ID</strong> - chronologically</li>
+ <li><strong>name</strong> - alphabetically</li><li><strong>count</strong> - post count</li></ul>"),
+
+ array( "name" => "Archives by Category: Order",
+ "category" => "archives-page",
+ "id" => "archives_category_order",
+ "type" => "select",
+ "std" => "ASC",
+ "options" => array("ASC", "DESC"),
+ "info" => "Sort the category list<ul><li><strong>ASC</strong> - ascending</li>
+ <li><strong>DESC</strong> - descending</li></ul>"),
+
+ array( "name" => "Archives by Category: Feed Link",
+ "category" => "archives-page",
+ "id" => "archives_category_feed",
+ "type" => "select",
+ "std" => "No",
+ "options" => array("Yes", "No"),
+ "lastoption" => "yes",
+ "info" => "Show a linked RSS icon after each category link?"),
+
+
+// New category: css-javascript
+
+ array( "name" => "CSS: External file or inline?",
+ "category" => "css-javascript",
+ "switch" => "yes",
+ "id" => "css_external",
+ "type" => "select",
+ "std" => "Inline",
+ # "options" => array("External & Static", "External", "Inline"),
+ "options" => array("External", "Inline"),
+ "info" => "Should the CSS code be in an external file, or inline in the header of each page?<br /><br />
+ You might want to choose inline if your average page view per visitor is close to 1. In that case
+ inline CSS might actually be faster than an external CSS file."),
+/*
+ <br /><br /><span style='background:white;color:red'>NEW</span> Since 3.4.8 you can create a static CSS file inside
+ the WP Uploads directory (<code>" . $upload_path . "</code> - Writable? " . $is_writable . ") , which will be updated each time you click the huge green 'Save Changes' button.
+ For better site performance you should choose the '<strong>External & Static</strong>' option, unless your WP Uploads
+ directory isn't writable and you cannot make it writable."),
+*/
+
+ array( "name" => "Javascript: External file or inline?",
+ "category" => "css-javascript",
+ "id" => "javascript_external",
+ "type" => "select",
+ "std" => "Inline",
+ # "options" => array("External & Static", "External", "Inline"),
+ "options" => array("External", "Inline"),
+ "info" => "Should the Javascript code be in an external file, or inline in the header of each page?
+ Same considerations apply as above."),
+/*
+ <br /><br /><span style='background:white;color:red'>NEW</span> Since 3.4.8 you can create a static Javascript file inside
+ the WP Uploads directory, which will be updated each time you click the huge green 'Save Changes' button.
+ For better site performance you should choose the '<strong>External & Static</strong>' option, unless your WP Uploads
+ directory isn't writable and you cannot make it writable."),
+*/
+
+ array( "name" => "IE6 PNG Fix CSS Selectors",
+ "category" => "css-javascript",
+ "id" => "pngfix_selectors",
+ "type" => "textarea-large",
+ "std" => "",
+ "info" => "If you're using transparent PNG images, put the CSS selectors here that contain tranparent PNG images, so
+ a IE6 PNG tranparency fix can be applied on those elements. Separate selectors with commas. <br>For example you would use <strong>a.posts-icon, a.comments-icon, a.email-icon, img.logo</strong>"),
+
+ array( "name" => "CSS: Compress?",
+ "category" => "css-javascript",
+ "id" => "css_compress",
+ "type" => "select",
+ "std" => "Yes",
+ "options" => array("Yes", "No"),
+ "info" => "By choosing to compress the CSS
+ you'll end up with an additional file size of ~7 Kbyte IF you have mod_deflate or gzip running on your server.
+ CSS file sizes: No Atahualpa Compression / No Gzip: ~ 60-70 KByte. With Atahualpa Compression: ~ 35 KByte. With Atahualpa
+ Compression plus Gzip/mod_defalte: ~ 7 KByte."),
+
+ array( "name" => "Allow debugging?",
+ "category" => "css-javascript",
+ "id" => "allow_debug",
+ "type" => "select",
+ "std" => "Yes",
+ "lastoption" => "yes",
+ "options" => array("Yes", "No"),
+ "info" => "Setting this to <strong>Yes</strong> will show inline, uncompressed
+ CSS and Javascript in the source code of your site, regardless of your settings above, <strong>IF</strong> <code>?bfa_debug=1</code> was added to the URL. Additionally, the Wordpress and Atahualpa versions will be displayed as meta tags, and a meta robots tag \"noindex,follow\" will be inserted, to avoid duplicate content
+ issues in search engines.<br /><br /><strong>Set this to <code>YES</code> before you ask someone at i.e. forum.bytesforall.com to have a look at the code of your site</strong>.")
+
+/*
+ array( "name" => "Javascript: Compress?",
+ "category" => "css-javascript",
+ "id" => "javascript_compress",
+ "type" => "select",
+ "std" => "Yes",
+ "lastoption" => "yes",
+ "options" => array("Yes", "No"),
+ "info" => "Turn this off whenever you want someone to look at the Javascript code of your site. The compressed Javascript will be almost
+ unreadable.<br /><br /><em>The compressed Javascript may not work properly if lines in the code, i.e. code
+ that you added, were not finished with a semicolon. If you experience weird Javascript related behavior, turn this option here off to see if it's
+ caused by the compression.</em>"),
+*/
+
+/*
+ array( "name" => "Remove comment-reply.js?",
+ "category" => "css-javascript",
+ "id" => "include_wp_comment_reply_js",
+ "type" => "select",
+ "std" => "No",
+ "lastoption" => "yes",
+ "options" => array("Yes", "No"),
+ "info" => "For WP 2.7+: Include WP's \"comment-reply.js\" in Atahualpa's js.php and remove it from the header? This will save 1 HTTP request to the web server."),
+*/
+
+);
+
+// Merge arrays to get different options sets for WP 2.7+ (with new paged comments settings) and WP 2.6 and older
+if (function_exists('wp_list_comments')) {
+ $options = array_merge($options1, $options2, $options3); // WP 2.7 and newer
+} else {
+ $options = array_merge($options1, $options3); // WP 2.6 and older
+}
+
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/header.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?php
+ $templateURI = get_template_directory_uri();
+ $homeURL = get_home_url(); ?>
+<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
+<head>
+<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
+<?php // if index.php or another page template (copied from index.php) was not used
+if (!isset($bfa_ata))
+list($bfa_ata, $cols, $left_col, $left_col2, $right_col, $right_col2, $bfa_ata['h_blogtitle'], $bfa_ata['h_posttitle']) = bfa_get_options(); ?>
+<?php global $post_id; ?>
+<title><?php wp_title( '' ); ?></title>
+<?php if ( isset($bfa_ata['IEDocType']) ) {
+switch ( $bfa_ata['IEDocType'] ) {
+ case "None":
+ break;
+ case "EmulateIE7":
+ ?><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
+ <?php
+ break;
+ case "EmulateIE8":
+ ?><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"/>
+ <?php
+ break;
+ case "IE8":
+ ?><meta http-equiv="X-UA-Compatible" content="IE=8"/>
+ <?php
+ break;
+ case "IE9":
+ ?><meta http-equiv="X-UA-Compatible" content="IE=9"/>
+ <?php
+ break;
+ case "Edge":
+ ?><meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
+ <?php
+ break;
+ default:
+ break;
+}} ?><?php echo bfa_meta_tags(); ?>
+<?php
+
+if ($bfa_ata['favicon_file'] != "") {
+ if($bfa_ata['images_root'] == "atahualpa") {
+ $imgdir = get_template_directory_uri() . '/images/favicon/';
+ } else {
+// at this point the images_root is 'wp-content'
+ if(!isset($bfa_ata['ata_images_dir'])
+ OR ($bfa_ata['ata_images_dir'] == '') ) {
+ $imgdir = content_url() . '/ata-images/';
+ } else {
+ $imgdir = content_url() . '/' . $bfa_ata['ata_images_dir'] . '/';
+ }
+ }
+?><link rel="shortcut icon" href="<?php echo $imgdir. $bfa_ata['favicon_file']; ?>" />
+<?php } ?>
+<link rel="profile" href="http://gmpg.org/xfn/11" />
+<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
+<?php if ( $bfa_ata['css_external'] == "External" ) { ?><link rel="stylesheet" href="<?php echo $homeURL; ?>/?bfa_ata_file=css" type="text/css" media="all" /><?php } ?>
+<?php if ( function_exists('wp_list_comments') AND is_singular() AND (comments_open( $post_id ))) { wp_enqueue_script( 'comment-reply' ); } ?>
+<?php wp_head(); ?>
+</head>
+<body <?php body_class(); ?> <?php bfa_incl('html_inserts_body_tag'); ?>>
+<?php bfa_incl('html_inserts_body_top'); ?>
+
+<?php if ($bfa_ata['full_width_header'] == "Yes") { ?>
+ <!-- Full Width Header -->
+ <div id="header" class="full-width">
+ <?php echo bfa_header_config(); ?>
+ </div>
+ <!-- / Full Width Header -->
+<?php } ?>
+<div id="wrapper">
+<div id="container">
+<table id="layout" border="0" cellspacing="0" cellpadding="0">
+<colgroup>
+<?php if ( $left_col == "on" ) { ?><col class="colone" /><?php } ?>
+<?php if ( $left_col2 == "on" ) { ?><col class="colone-inner" /><?php } ?>
+<col class="coltwo" />
+<?php if ( $right_col2 == "on" ) { ?><col class="colthree-inner" /><?php } ?>
+<?php if ( $right_col == "on" ) { ?><col class="colthree" /><?php } ?>
+</colgroup>
+
+<?php if ($bfa_ata['full_width_header'] == "No") { ?>
+
+ <tr>
+
+ <!-- Header -->
+ <td id="header" colspan="<?php echo $cols; ?>">
+
+ <?php echo bfa_header_config(); ?>
+
+ </td>
+ <!-- / Header -->
+
+ </tr>
+<?php } ?>
+ <!-- Main Body -->
+ <tr id="bodyrow">
+
+ <?php if ( $left_col == "on" ) { ?>
+ <!-- Left Sidebar -->
+ <td id="left">
+
+ <?php // Widgetize the Left Sidebar
+ if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Left Sidebar') ) : ?>
+
+ <div class="widget widget_categories">
+ <div class="widget-title">
+ <h3><?php _e('Categories','atahualpa'); ?></h3>
+ </div>
+ <ul><?php wp_list_categories('show_count=1&title_li='); ?></ul>
+ </div>
+
+ <div class="widget widget_archive">
+ <div class="widget-title">
+ <h3><?php _e('Archives','atahualpa'); ?></h3>
+ </div>
+ <ul><?php wp_get_archives('type=monthly'); ?></ul>
+ </div>
+
+ <div class="widget widget_text">
+ <div class="widget-title">
+ <h3>A sample text widget</h3>
+ </div>
+ <div class="textwidget">
+ <p>Etiam pulvinar consectetur dolor sed malesuada. Ut convallis
+ <a href="http://wordpress.org/">euismod dolor nec</a> pretium. Nunc ut tristique massa. </p>
+ <p>Nam sodales mi vitae dolor <em>ullamcorper et vulputate enim accumsan</em>.
+ Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. <strong>Nulla nulla lorem</strong>,
+ suscipit in posuere in, interdum non magna. </p>
+ </div>
+ </div>
+
+ <?php endif; ?>
+
+ </td>
+ <!-- / Left Sidebar -->
+ <?php } ?>
+
+ <?php if ( $left_col2 == "on" ) { ?>
+ <!-- Left INNER Sidebar -->
+ <td id="left-inner">
+
+ <?php // Widgetize the Left Inner Sidebar
+ if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Left Inner Sidebar') ) : ?>
+
+ <!-- no default content for the LEFT INNER sidebar -->
+
+ <?php endif; ?>
+
+ </td>
+ <!-- / Left INNER Sidebar -->
+ <?php } ?>
+
+
+ <!-- Main Column -->
+ <td id="middle">
\ No newline at end of file
Binary file src/web/app/themes/atahualpa/images/award0small.gif has changed
Binary file src/web/app/themes/atahualpa/images/award1small.gif has changed
Binary file src/web/app/themes/atahualpa/images/award3small.gif has changed
Binary file src/web/app/themes/atahualpa/images/awardsmall.gif has changed
Binary file src/web/app/themes/atahualpa/images/backgr.gif has changed
Binary file src/web/app/themes/atahualpa/images/background5.png has changed
Binary file src/web/app/themes/atahualpa/images/background6.gif has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/images/background6.htm Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- saved from url=(0014)about:internet -->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>background6</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!--Fireworks CS3 Dreamweaver CS3 target. Created Wed May 26 19:23:31 GMT+0200 2010-->
+</head>
+<body bgcolor="#ffffff">
+<img name="background6" src="background6.png" width="1" height="190" border="0" id="background6" alt="" /></body>
+</html>
Binary file src/web/app/themes/atahualpa/images/background6.png has changed
Binary file src/web/app/themes/atahualpa/images/background7.png has changed
Binary file src/web/app/themes/atahualpa/images/bullet-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/bullets.gif has changed
Binary file src/web/app/themes/atahualpa/images/bullets/arrow_right.gif has changed
Binary file src/web/app/themes/atahualpa/images/bullets/arrow_right_green.gif has changed
Binary file src/web/app/themes/atahualpa/images/bullets/control_play.gif has changed
Binary file src/web/app/themes/atahualpa/images/bullets/control_play_blue.gif has changed
Binary file src/web/app/themes/atahualpa/images/bullets/gray-arrow.gif has changed
Binary file src/web/app/themes/atahualpa/images/bullets/round-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/comment-feed-small.gif has changed
Binary file src/web/app/themes/atahualpa/images/comment-feed.gif has changed
Binary file src/web/app/themes/atahualpa/images/comment-gray.png has changed
Binary file src/web/app/themes/atahualpa/images/comment.png has changed
Binary file src/web/app/themes/atahualpa/images/comment_add-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/comment_add.gif has changed
Binary file src/web/app/themes/atahualpa/images/comment_icon.png has changed
Binary file src/web/app/themes/atahualpa/images/commentluv.gif has changed
Binary file src/web/app/themes/atahualpa/images/diamondsmall.gif has changed
Binary file src/web/app/themes/atahualpa/images/directreply.gif has changed
Binary file src/web/app/themes/atahualpa/images/email-feed-small.gif has changed
Binary file src/web/app/themes/atahualpa/images/email-gray.png has changed
Binary file src/web/app/themes/atahualpa/images/email.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/Untitled-3.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/comment-gray.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/comment.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/email-gray.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/email.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/facebook-gray.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/facebook.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/logo.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/myspace-gray.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/myspace.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/rss-gray.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/rss.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/twitter-gray.png has changed
Binary file src/web/app/themes/atahualpa/images/exclusive/twitter.png has changed
Binary file src/web/app/themes/atahualpa/images/expand-down-white.gif has changed
Binary file src/web/app/themes/atahualpa/images/expand-down.gif has changed
Binary file src/web/app/themes/atahualpa/images/expand-left-white.gif has changed
Binary file src/web/app/themes/atahualpa/images/expand-left.gif has changed
Binary file src/web/app/themes/atahualpa/images/expand-right-white.gif has changed
Binary file src/web/app/themes/atahualpa/images/expand-right.gif has changed
Binary file src/web/app/themes/atahualpa/images/facebook-gray.png has changed
Binary file src/web/app/themes/atahualpa/images/facebook.png has changed
Binary file src/web/app/themes/atahualpa/images/favicon/1-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/10-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/11-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/12-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/13-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/14-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/15-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/16-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/17-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/18-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/19-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/2-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/20-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/21-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/22-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/23-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/24-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/25-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/26-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/27-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/28-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/29-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/3-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/30-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/31-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/32-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/33-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/34-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/35-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/36-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/37-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/38-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/39-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/4-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/40-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/41-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/42-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/43-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/44-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/5-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/6-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/7-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/8-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/9-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-accept.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-add.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-anchor.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-asterisk_orange.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-attach.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-basket.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-bug.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-camera.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-car.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-cart.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-cd.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-chart_bar.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-chart_pie.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-comment.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-comments.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-cursor.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-cut.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-date.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-exclamation.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-eye.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-female.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-film.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-find.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-group.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-heart.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-help.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-hourglass.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-house.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-information.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-key.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-lightbulb.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-link.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-lock.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-magnifier.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-male.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-money.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-money_dollar.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-money_euro.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-money_pound.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-money_yen.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-monitor.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-mouse.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-music.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-pencil.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-pill.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-plugin.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-rosette.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-ruby.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-sport_8ball.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-sport_basketball.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-sport_football.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-sport_golf.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-sport_raquet.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-sport_shuttlecock.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-sport_soccer.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-sport_tennis.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-star.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-status_offline.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-status_online.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-tag.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-tag_blue.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-telephone.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-television.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-tick.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-time.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-tux.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-user.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-user_female.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-weather_clouds.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-weather_cloudy.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-weather_lightning.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-weather_rain.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-weather_snow.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-weather_sun.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/fff-zoom.ico has changed
Binary file src/web/app/themes/atahualpa/images/favicon/new-favicon.ico has changed
Binary file src/web/app/themes/atahualpa/images/feedburner-email-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/feedburner-email.gif has changed
Binary file src/web/app/themes/atahualpa/images/header/1-IMG_1479.jpg has changed
Binary file src/web/app/themes/atahualpa/images/header/2-header6.jpg has changed
Binary file src/web/app/themes/atahualpa/images/header/3-IMG_1496.jpg has changed
Binary file src/web/app/themes/atahualpa/images/heart.png has changed
Binary file src/web/app/themes/atahualpa/images/huge-logo.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/add-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/add.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/anchor.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/attach.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/calendar-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/calendar.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/comment-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/comment.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/comments-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/comments.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/date-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/date.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/email-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/email.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/eye-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/eye.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/feed-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/feed.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/find.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/folder-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/folder.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/key-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/key.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/link.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/magnifier-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/magnifier.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/printer-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/printer.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/socialize-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/socialize.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/tag-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/tag.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/thumb-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/thumb.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/time-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/time.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/trackback-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/trackback.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/user-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/icons/user.gif has changed
Binary file src/web/app/themes/atahualpa/images/inputbackgr-blue.gif has changed
Binary file src/web/app/themes/atahualpa/images/inputbackgr-green.gif has changed
Binary file src/web/app/themes/atahualpa/images/inputbackgr-red.gif has changed
Binary file src/web/app/themes/atahualpa/images/inputbackgr.gif has changed
Binary file src/web/app/themes/atahualpa/images/leave-reply.gif has changed
Binary file src/web/app/themes/atahualpa/images/logo.gif has changed
Binary file src/web/app/themes/atahualpa/images/logo.png has changed
Binary file src/web/app/themes/atahualpa/images/logosymbol.gif has changed
Binary file src/web/app/themes/atahualpa/images/magnifier-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/magnifier.gif has changed
Binary file src/web/app/themes/atahualpa/images/magnifier2-gray.gif has changed
Binary file src/web/app/themes/atahualpa/images/magnifier2.gif has changed
Binary file src/web/app/themes/atahualpa/images/myspace-gray.png has changed
Binary file src/web/app/themes/atahualpa/images/myspace.png has changed
Binary file src/web/app/themes/atahualpa/images/newsamplelogo.png has changed
Binary file src/web/app/themes/atahualpa/images/no-gravatar.gif has changed
Binary file src/web/app/themes/atahualpa/images/post-feed-small.gif has changed
Binary file src/web/app/themes/atahualpa/images/post-feed.gif has changed
Binary file src/web/app/themes/atahualpa/images/rss-gray.png has changed
Binary file src/web/app/themes/atahualpa/images/rss.png has changed
Binary file src/web/app/themes/atahualpa/images/search.gif has changed
Binary file src/web/app/themes/atahualpa/images/search2.gif has changed
Binary file src/web/app/themes/atahualpa/images/sticky.gif has changed
Binary file src/web/app/themes/atahualpa/images/thumb_up.png has changed
Binary file src/web/app/themes/atahualpa/images/tick.gif has changed
Binary file src/web/app/themes/atahualpa/images/twitter-gray.png has changed
Binary file src/web/app/themes/atahualpa/images/twitter.png has changed
Binary file src/web/app/themes/atahualpa/images/widget-list.png has changed
Binary file src/web/app/themes/atahualpa/images/widget-list2.png has changed
Binary file src/web/app/themes/atahualpa/images/widget-list3.png has changed
Binary file src/web/app/themes/atahualpa/images/widget-list4.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/index.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,66 @@
+<?php
+list($bfa_ata, $cols, $left_col, $left_col2, $right_col, $right_col2, $bfa_ata['h_blogtitle'], $bfa_ata['h_posttitle']) = bfa_get_options();
+get_header();
+extract($bfa_ata);
+global $bfa_ata_postcount;
+?>
+
+<?php /* If there are any posts: */
+if (have_posts()) : $bfa_ata_postcount = 0; /* Postcount needed for option "XX first posts full posts, rest excerpts" */ ?>
+
+ <?php if ($bfa_ata['widget_center_top'] <> '') {
+ echo bfa_parse_widget_areas($bfa_ata['widget_center_top']);
+ } ?>
+
+ <?php // Deactivated since 3.6.5
+ # include 'bfa://content_above_loop';
+ // Uses the following static code instead: ?>
+ <?php bfa_next_previous_page_links('Top'); // For MULTI post pages if activated at ATO -> Next/Previous Navigation: ?>
+
+ <?php while (have_posts()) : the_post(); $bfa_ata_postcount++; ?>
+
+ <?php // Deactivated since 3.6.5
+ #include 'bfa://content_inside_loop';
+ // Uses the following static code instead: ?>
+ <?php bfa_next_previous_post_links('Top'); // For SINGLE post pages if activated at ATO -> Next/Previous Navigation ?>
+ <?php /* Post Container starts here */
+ if ( function_exists('post_class') ) { ?>
+ <div <?php if ( is_page() ) { post_class('post'); } else { post_class(); } ?> id="post-<?php the_ID(); ?>">
+ <?php } else { ?>
+ <div class="<?php echo ( is_page() ? 'page ' : '' ) . 'post" id="post-'; the_ID(); ?>">
+ <?php } ?>
+ <?php bfa_post_kicker('<div class="post-kicker">','</div>'); ?>
+ <?php bfa_post_headline('<div class="post-headline">','</div>'); ?>
+ <?php bfa_post_byline('<div class="post-byline">','</div>'); ?>
+ <?php bfa_post_bodycopy('<div class="post-bodycopy clearfix">','</div>'); ?>
+ <?php bfa_post_pagination('<p class="post-pagination"><strong>'.__('Pages:','atahualpa').'</strong>','</p>'); ?>
+ <?php bfa_archives_page('<div class="archives-page">','</div>'); // Archives Pages. Displayed on a specific static page, if configured at ATO -> Archives Pages: ?>
+ <?php bfa_post_footer('<div class="post-footer">','</div>'); ?>
+ </div><!-- / Post -->
+
+ <?php endwhile; ?>
+
+ <?php // Deactivated since 3.6.5
+ # include 'bfa://content_below_loop';
+ // Uses the following static code instead: ?>
+ <?php bfa_next_previous_post_links('Middle'); // Displayed on SINGLE post pages if activated at ATO -> Next/Previous Navigation: ?>
+ <?php bfa_get_comments(); // Load Comments template (on single post pages, and static pages, if set on options page): ?>
+ <?php bfa_next_previous_post_links('Bottom'); // Displayed on SINGLE post pages if activated at ATO -> Next/Previous Navigation: ?>
+ <?php bfa_next_previous_page_links('Bottom'); // Displayed on MULTI post pages if activated at ATO -> Next/Previous Navigation: ?>
+
+ <?php if ($bfa_ata['widget_center_bottom'] <> '') {
+ echo bfa_parse_widget_areas($bfa_ata['widget_center_bottom']);
+ } ?>
+
+<?php /* END of: If there are any posts */
+else : /* If there are no posts: */ ?>
+
+<?php // Deactivated since 3.6.5
+#include 'bfa://content_not_found';
+// Uses the following static code instead: ?>
+<h2><?php _e('Not Found','atahualpa'); ?></h2>
+<p><?php _e("Sorry, but you are looking for something that isn't here.","atahualpa"); ?></p>
+
+<?php endif; /* END of: If there are no posts */ ?>
+
+<?php get_footer(); ?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/js.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,311 @@
+<?php
+if ( isset($bfa_ata_preview) OR $bfa_ata['javascript_external'] == "Inline" OR
+( isset($bfa_ata_debug) AND $bfa_ata['allow_debug'] == "Yes" ) ) {
+ echo '<script type="text/javascript">';
+} else {
+ header("Content-type: application/x-javascript");
+}
+// Currently not used. Enable in bfa_theme_options as well
+/*
+if ( $bfa_ata['javascript_compress'] == "Yes" AND
+!( $bfa_ata_debug == 1 AND $bfa_ata['allow_debug'] == "Yes" ) ) {
+ ob_start("bfa_compress_js");
+}
+*/
+
+function bfa_compress_js($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(array(" (", "( "), "(", $buffer);
+ $buffer = str_replace(array(" )", ") "), ")", $buffer);
+ $buffer = str_replace(array(", ", " ,"), ",", $buffer);
+ $buffer = str_replace(array("; ", " ;"), ";", $buffer);
+ $buffer = str_replace(array("= ", " ="), "=", $buffer);
+ return $buffer;
+}
+
+
+# if (function_exists('sociable_html')) {
+# include (WP_PLUGIN_DIR.'/sociable/wists.js');
+# }
+
+?>
+
+//<![CDATA[
+
+<?php if (strpos($bfa_ata['configure_header'],'%image')!== FALSE AND
+$bfa_ata['header_image_javascript'] != "0" AND $bfa_ata['crossslide_fade'] == "0") { ?>
+ var HeaderImages = new Array(<?php echo implode(",", bfa_rotating_header_images()); ?>);
+ var t; var j = 0
+ var p = HeaderImages.length
+ <?php if ($bfa_ata['header_image_javascript_preload'] == "Yes") { ?>
+ var PreLoadImages = new Array()
+ for (i = 0; i < p; i++){
+ PreLoadImages[i] = new Image()
+ PreLoadImages[i].src = HeaderImages[i]
+ }
+ <?php } ?>
+ function RotateHeaderImages(){
+ if (document.body){
+ HeaderImageContainer = document.getElementById('imagecontainer');
+ HeaderImageContainer.style.background = 'url(' + HeaderImages[j] + ') <?php echo $bfa_ata['headerimage_alignment']; ?> no-repeat';
+ j = j + 1
+ if (j > (p-1)) j=0
+ t = setTimeout('RotateHeaderImages()', <?php echo $bfa_ata['header_image_javascript']; ?>000)
+ }
+ }
+ window.onload = RotateHeaderImages;
+<?php } ?>
+
+
+/* JQUERY */
+jQuery(document).ready(function(){
+<?php if ( $bfa_ata['animate_page_menu_bar'] == "Yes" AND strpos($bfa_ata['configure_header'],'%page')!== FALSE ) { ?>
+ jQuery("#rmenu2 li.rMenu-expand").hover(function(){
+ jQuery(this).find('ul.rMenu-ver:first').css({"display":"block","position":"absolute"});
+ jQuery(this).find('ul.rMenu-ver:first li').css({"display":"none"}).slideDown(500);
+ },function() {
+ jQuery(this).find('ul.rMenu-ver:first').css("display","block");
+ jQuery(this).find('ul.rMenu-ver:first li').css("display","block").slideUp(300);
+ jQuery(this).find('ul.rMenu-ver:first').slideUp(300);
+ });
+<?php } ?>
+
+<?php if ( $bfa_ata['animate_cat_menu_bar'] == "Yes" AND strpos($bfa_ata['configure_header'],'%cat')!== FALSE ) { ?>
+ jQuery("#rmenu li.rMenu-expand").hover(function(){
+ jQuery(this).find('ul.rMenu-ver:first').css({"display":"block","position":"absolute"});
+ jQuery(this).find('ul.rMenu-ver:first li').css({"display":"none"}).slideDown(500);
+ },function() {
+ jQuery(this).find('ul.rMenu-ver:first').css("display","block");
+ jQuery(this).find('ul.rMenu-ver:first li').css("display","block").slideUp(300);
+ jQuery(this).find('ul.rMenu-ver:first').slideUp(300);
+ });
+<?php } ?>
+
+<?php if (strpos($bfa_ata['configure_header'],'%image')!== FALSE AND
+$bfa_ata['header_image_javascript'] != "0" AND $bfa_ata['crossslide_fade'] != "0") { ?>
+ jQuery('div#imagecontainer')
+ .crossSlide({sleep: <?php echo $bfa_ata['header_image_javascript']; ?>,fade: <?php echo $bfa_ata['crossslide_fade']; ?>},[
+ { src: <?php echo implode( " },\n{ src: ", bfa_rotating_header_images() ); ?> }
+ ]);
+ /*
+ .crossSlide({fade: <?php echo $bfa_ata['crossslide_fade']; ?>},[
+ <?php echo "{ src: " . implode( ", from: '40% 40%', to: '60% 60%', time: 3 },\n{ src: ", bfa_rotating_header_images() ) . ",
+ from: '40% 40%', to: '60% 60%', time: 3
+ }\n ]);"; ?>
+ */
+<?php } ?>
+
+ /* jQuery('ul#rmenu').superfish(); */
+ /* jQuery('ul#rmenu').superfish().find('ul').bgIframe({opacity:false}); */
+
+ /* For IE6 */
+ if (jQuery.browser.msie && /MSIE 6\.0/i.test(window.navigator.userAgent) && !/MSIE 7\.0/i.test(window.navigator.userAgent) && !/MSIE 8\.0/i.test(window.navigator.userAgent)) {
+
+ /* Max-width for images in IE6 */
+ var centerwidth = jQuery("td#middle").width();
+
+ /* Images without caption */
+ jQuery(".post img").each(function() {
+ var maxwidth = centerwidth - 10 + 'px';
+ var imgwidth = jQuery(this).width();
+ var imgheight = jQuery(this).height();
+ var newimgheight = (centerwidth / imgwidth * imgheight) + 'px';
+ if (imgwidth > centerwidth) {
+ jQuery(this).css({width: maxwidth});
+ jQuery(this).css({height: newimgheight});
+ }
+ });
+
+ /* Images with caption */
+ jQuery("div.wp-caption").each(function() {
+ var captionwidth = jQuery(this).width();
+ var maxcaptionwidth = centerwidth + 'px';
+ var captionheight = jQuery(this).height();
+ var captionimgwidth = jQuery("div.wp-caption img").width();
+ var captionimgheight = jQuery("div.wp-caption img").height();
+ if (captionwidth > centerwidth) {
+ jQuery(this).css({width: maxcaptionwidth});
+ var newcaptionheight = (centerwidth / captionwidth * captionheight) + 'px';
+ var newcaptionimgheight = (centerwidth / captionimgwidth * captionimgheight) + 'px';
+ jQuery(this).css({height: newcaptionheight});
+ jQuery("div.wp-caption img").css({height: newcaptionimgheight});
+ }
+ });
+
+ /* sfhover for LI:HOVER support in IE6: */
+ jQuery("ul li").
+ hover( function() {
+ jQuery(this).addClass("sfhover")
+ },
+ function() {
+ jQuery(this).removeClass("sfhover")
+ }
+ );
+
+ /* End IE6 */
+ }
+
+
+
+ /* Since 3.7.8: Auto resize videos (embed and iframe elements)
+ TODO: Parse parent's dimensions only once per layout column, not per video
+ */
+ function bfa_resize_video() {
+ jQuery('embed, iframe').each( function() {
+ var video = jQuery(this),
+ videoWidth = video.attr('width'); // use the attr here, not width() or css()
+ videoParent = video.parent(),
+ videoParentWidth = parseFloat( videoParent.css( 'width' ) ),
+ videoParentBorder = parseFloat( videoParent.css( 'border-left-width' ) )
+ + parseFloat( videoParent.css( 'border-right-width' ) ),
+ videoParentPadding = parseFloat( videoParent.css( 'padding-left' ) )
+ + parseFloat( videoParent.css( 'padding-right' ) ),
+ maxWidth = videoParentWidth - videoParentBorder - videoParentPadding;
+
+ if( videoWidth > maxWidth ) {
+ var videoHeight = video.attr('height'),
+ videoMaxHeight = ( maxWidth / videoWidth * videoHeight );
+ video.attr({ width: maxWidth, height: videoMaxHeight });
+ }
+
+ });
+ }
+ bfa_resize_video();
+ jQuery(window).resize( bfa_resize_video );
+
+
+<?php if ($bfa_ata['table_hover_rows'] == "Yes") { ?>
+ jQuery(".post table tr").
+ mouseover(function() {
+ jQuery(this).addClass("over");
+ }).
+ mouseout(function() {
+ jQuery(this).removeClass("over");
+ });
+<?php } else { ?>
+ jQuery(".post table.hover tr").
+ mouseover(function() {
+ jQuery(this).addClass("over");
+ }).
+ mouseout(function() {
+ jQuery(this).removeClass("over");
+ });
+<?php } ?>
+
+
+<?php if ($bfa_ata['table_zebra_stripes'] == "Yes") { ?>
+ jQuery(".post table tr:even").
+ addClass("alt");
+<?php } else { ?>
+ jQuery(".post table.zebra tr:even").
+ addClass("alt");
+<?php } ?>
+
+
+<?php if ($bfa_ata['highlight_forms'] == "Yes") { ?>
+ jQuery("input.text, input.TextField, input.file, input.password, textarea").
+ focus(function () {
+ jQuery(this).addClass("highlight");
+ }).
+ blur(function () {
+ jQuery(this).removeClass("highlight");
+ })
+<?php } ?>
+
+ jQuery("input.inputblur").
+ focus(function () {
+ jQuery(this).addClass("inputfocus");
+ }).
+ blur(function () {
+ jQuery(this).removeClass("inputfocus");
+ })
+
+
+<?php if (function_exists('lmbbox_comment_quicktags_display')) { ?>
+ jQuery("input.ed_button").
+ mouseover(function() {
+ jQuery(this).addClass("ed_button_hover");
+ }).
+ mouseout(function() {
+ jQuery(this).removeClass("ed_button_hover");
+ });
+<?php } ?>
+
+
+ jQuery("input.button, input.Button, input#submit").
+ mouseover(function() {
+ jQuery(this).addClass("buttonhover");
+ }).
+ mouseout(function() {
+ jQuery(this).removeClass("buttonhover");
+ });
+
+ /* toggle "you can use these xhtml tags" */
+ jQuery("a.xhtmltags").
+ click(function(){
+ jQuery("div.xhtml-tags").slideToggle(300);
+ });
+
+ /* For the Tabbed Widgets plugin: */
+ jQuery("ul.tw-nav-list").
+ addClass("clearfix");
+
+
+<?php if ( $bfa_ata['sticky_layout_footer'] == "Yes" ) { ?>
+ /* Strech short pages to full height, keep footer at bottom. */
+
+ /* Set a compensation value to fix browser differences and an overall
+ misalignment with this method */
+ if (jQuery.browser.msie || jQuery.browser.safari) {
+ var bfacompensate = 41;
+ } else {
+ var bfacompensate = 21;
+ }
+
+ /* Fix a jQuery/Opera 9.5+ bug with determining the window height */
+ var windowheight = jQuery.browser.opera && jQuery.browser.version > "9.5" &&
+ jQuery.fn.jquery <= "1.2.6" ? document.documentElement["clientHeight"] : jQuery(window).height();
+
+ /* Top and bottom padding may have been set on the BODY */
+ var paddingtop = parseInt(jQuery("body").css("padding-top"));
+ var paddingbottom = parseInt(jQuery("body").css("padding-bottom"));
+
+ /* Get the height of the header, footer, and the layout as a whole */
+ var headerheight = jQuery("td#header").height();
+ var footerheight = jQuery("td#footer").height();
+ var layoutheight = jQuery("div#wrapper").height();
+
+ /* Adjust height of middle column if (layout height + body padding-top + body padding-bottom) is smaller than
+ height of browser viewport */
+ if ( windowheight > (layoutheight + paddingtop + paddingbottom) ) {
+ var newmiddleheight = windowheight - paddingtop - headerheight - footerheight - paddingbottom - bfacompensate;
+ jQuery("td#middle").css({height: newmiddleheight + "px"});
+ }
+<?php } ?>
+
+});
+
+//]]>
+<?php
+
+#if ( function_exists('wp_list_comments') AND $bfa_ata['include_wp_comment_reply_js'] == "Yes" )
+# include (ABSPATH . '/wp-includes/js/comment-reply.js');
+
+// Currently not used. Enable in bfa_theme_options as well
+/*
+if ( $bfa_ata['javascript_compress'] == "Yes" AND
+!( $bfa_ata_debug == 1 AND $bfa_ata['allow_debug'] == "Yes" ) ) {
+ ob_end_flush();
+}
+*/
+if ( isset($bfa_ata_preview) OR $bfa_ata['javascript_external'] == "Inline" OR
+( isset($bfa_ata_debug) AND $bfa_ata['allow_debug'] == "Yes" ) ) {
+ echo "</script>\n";
+}
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/js/DD_roundies.js Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,472 @@
+/**
+* DD_roundies, this adds rounded-corner CSS in standard browsers and VML sublayers in IE that accomplish a similar appearance when comparing said browsers.
+* Author: Drew Diller
+* Email: drew.diller@gmail.com
+* URL: http://www.dillerdesign.com/experiment/DD_roundies/
+* Version: 0.0.2a
+* Licensed under the MIT License: http://dillerdesign.com/experiment/DD_roundies/#license
+*
+* Usage:
+* DD_roundies.addRule('#doc .container', '10px 5px'); // selector and multiple radii
+* DD_roundies.addRule('.box', 5, true); // selector, radius, and optional addition of border-radius code for standard browsers.
+*
+* Just want the PNG fixing effect for IE6, and don't want to also use the DD_belatedPNG library? Don't give any additional arguments after the CSS selector.
+* DD_roundies.addRule('.your .example img');
+**/
+
+var DD_roundies = {
+
+ ns: 'DD_roundies',
+
+ IE6: false,
+ IE7: false,
+ IE8: false,
+ IEversion: function() {
+ if (document.documentMode != 8 && document.namespaces && !document.namespaces[this.ns]) {
+ this.IE6 = true;
+ this.IE7 = true;
+ }
+ else if (document.documentMode == 8) {
+ this.IE8 = true;
+ }
+ },
+ querySelector: document.querySelectorAll,
+ selectorsToProcess: [],
+ imgSize: {},
+
+ createVmlNameSpace: function() { /* enable VML */
+ if (this.IE6 || this.IE7) {
+ document.namespaces.add(this.ns, 'urn:schemas-microsoft-com:vml');
+ }
+ if (this.IE8) {
+ document.writeln('<?import namespace="' + this.ns + '" implementation="#default#VML" ?>');
+ }
+ },
+
+ createVmlStyleSheet: function() { /* style VML, enable behaviors */
+ /*
+ Just in case lots of other developers have added
+ lots of other stylesheets using document.createStyleSheet
+ and hit the 31-limit mark, let's not use that method!
+ further reading: http://msdn.microsoft.com/en-us/library/ms531194(VS.85).aspx
+ */
+ var style = document.createElement('style');
+ document.documentElement.firstChild.insertBefore(style, document.documentElement.firstChild.firstChild);
+ if (style.styleSheet) { /* IE */
+ try {
+ var styleSheet = style.styleSheet;
+ styleSheet.addRule(this.ns + '\\:*', '{behavior:url(#default#VML)}');
+ this.styleSheet = styleSheet;
+ } catch(err) {}
+ }
+ else {
+ this.styleSheet = style;
+ }
+ },
+
+ /**
+ * Method to use from afar - refer to it whenever.
+ * Example for IE only: DD_roundies.addRule('div.boxy_box', '10px 5px');
+ * Example for IE, Firefox, and WebKit: DD_roundies.addRule('div.boxy_box', '10px 5px', true);
+ * @param {String} selector - REQUIRED - a CSS selector, such as '#doc .container'
+ * @param {Integer} radius - REQUIRED - the desired radius for the box corners
+ * @param {Boolean} standards - OPTIONAL - true if you also wish to output -moz-border-radius/-webkit-border-radius/border-radius declarations
+ **/
+ addRule: function(selector, rad, standards) {
+ if (typeof rad == 'undefined' || rad === null) {
+ rad = 0;
+ }
+ if (rad.constructor.toString().search('Array') == -1) {
+ rad = rad.toString().replace(/[^0-9 ]/g, '').split(' ');
+ }
+ for (var i=0; i<4; i++) {
+ rad[i] = (!rad[i] && rad[i] !== 0) ? rad[Math.max((i-2), 0)] : rad[i];
+ }
+ if (this.styleSheet) {
+ if (this.styleSheet.addRule) { /* IE */
+ var selectors = selector.split(','); /* multiple selectors supported, no need for multiple calls to this anymore */
+ for (var i=0; i<selectors.length; i++) {
+ this.styleSheet.addRule(selectors[i], 'behavior:expression(DD_roundies.roundify.call(this, [' + rad.join(',') + ']))'); /* seems to execute the function without adding it to the stylesheet - interesting... */
+ }
+ }
+ else if (standards) {
+ var moz_implementation = rad.join('px ') + 'px';
+ this.styleSheet.appendChild(document.createTextNode(selector + ' {border-radius:' + moz_implementation + '; -moz-border-radius:' + moz_implementation + ';}'));
+ this.styleSheet.appendChild(document.createTextNode(selector + ' {-webkit-border-top-left-radius:' + rad[0] + 'px ' + rad[0] + 'px; -webkit-border-top-right-radius:' + rad[1] + 'px ' + rad[1] + 'px; -webkit-border-bottom-right-radius:' + rad[2] + 'px ' + rad[2] + 'px; -webkit-border-bottom-left-radius:' + rad[3] + 'px ' + rad[3] + 'px;}'));
+ }
+ }
+ else if (this.IE8) {
+ this.selectorsToProcess.push({'selector':selector, 'radii':rad});
+ }
+ },
+
+ readPropertyChanges: function(el) {
+ switch (event.propertyName) {
+ case 'style.border':
+ case 'style.borderWidth':
+ case 'style.padding':
+ this.applyVML(el);
+ break;
+ case 'style.borderColor':
+ this.vmlStrokeColor(el);
+ break;
+ case 'style.backgroundColor':
+ case 'style.backgroundPosition':
+ case 'style.backgroundRepeat':
+ this.applyVML(el);
+ break;
+ case 'style.display':
+ el.vmlBox.style.display = (el.style.display == 'none') ? 'none' : 'block';
+ break;
+ case 'style.filter':
+ this.vmlOpacity(el);
+ break;
+ case 'style.zIndex':
+ el.vmlBox.style.zIndex = el.style.zIndex;
+ break;
+ }
+ },
+
+ applyVML: function(el) {
+ el.runtimeStyle.cssText = '';
+ this.vmlFill(el);
+ this.vmlStrokeColor(el);
+ this.vmlStrokeWeight(el);
+ this.vmlOffsets(el);
+ this.vmlPath(el);
+ this.nixBorder(el);
+ this.vmlOpacity(el);
+ },
+
+ vmlOpacity: function(el) {
+ if (el.currentStyle.filter.search('lpha') != -1) {
+ var trans = el.currentStyle.filter;
+ trans = parseInt(trans.substring(trans.lastIndexOf('=')+1, trans.lastIndexOf(')')), 10)/100;
+ for (var v in el.vml) {
+ el.vml[v].filler.opacity = trans;
+ }
+ }
+ },
+
+ vmlFill: function(el) {
+ if (!el.currentStyle) {
+ return;
+ } else {
+ var elStyle = el.currentStyle;
+ }
+ el.runtimeStyle.backgroundColor = '';
+ el.runtimeStyle.backgroundImage = '';
+ var noColor = (elStyle.backgroundColor == 'transparent');
+ var noImg = true;
+ if (elStyle.backgroundImage != 'none' || el.isImg) {
+ if (!el.isImg) {
+ el.vmlBg = elStyle.backgroundImage;
+ el.vmlBg = el.vmlBg.substr(5, el.vmlBg.lastIndexOf('")')-5);
+ }
+ else {
+ el.vmlBg = el.src;
+ }
+ var lib = this;
+ if (!lib.imgSize[el.vmlBg]) { /* determine size of loaded image */
+ var img = document.createElement('img');
+ img.attachEvent('onload', function() {
+ this.width = this.offsetWidth; /* weird cache-busting requirement! */
+ this.height = this.offsetHeight;
+ lib.vmlOffsets(el);
+ });
+ img.className = lib.ns + '_sizeFinder';
+ img.runtimeStyle.cssText = 'behavior:none; position:absolute; top:-10000px; left:-10000px; border:none;'; /* make sure to set behavior to none to prevent accidental matching of the helper elements! */
+ img.src = el.vmlBg;
+ img.removeAttribute('width');
+ img.removeAttribute('height');
+ document.body.insertBefore(img, document.body.firstChild);
+ lib.imgSize[el.vmlBg] = img;
+ }
+ el.vml.image.filler.src = el.vmlBg;
+ noImg = false;
+ }
+ el.vml.image.filled = !noImg;
+ el.vml.image.fillcolor = 'none';
+ el.vml.color.filled = !noColor;
+ el.vml.color.fillcolor = elStyle.backgroundColor;
+ el.runtimeStyle.backgroundImage = 'none';
+ el.runtimeStyle.backgroundColor = 'transparent';
+ },
+
+ vmlStrokeColor: function(el) {
+ el.vml.stroke.fillcolor = el.currentStyle.borderColor;
+ },
+
+ vmlStrokeWeight: function(el) {
+ var borders = ['Top', 'Right', 'Bottom', 'Left'];
+ el.bW = {};
+ for (var b=0; b<4; b++) {
+ el.bW[borders[b]] = parseInt(el.currentStyle['border' + borders[b] + 'Width'], 10) || 0;
+ }
+ },
+
+ vmlOffsets: function(el) {
+ var dims = ['Left', 'Top', 'Width', 'Height'];
+ for (var d=0; d<4; d++) {
+ el.dim[dims[d]] = el['offset'+dims[d]];
+ }
+ var assign = function(obj, topLeft) {
+ obj.style.left = (topLeft ? 0 : el.dim.Left) + 'px';
+ obj.style.top = (topLeft ? 0 : el.dim.Top) + 'px';
+ obj.style.width = el.dim.Width + 'px';
+ obj.style.height = el.dim.Height + 'px';
+ };
+ for (var v in el.vml) {
+ var mult = (v == 'image') ? 1 : 2;
+ el.vml[v].coordsize = (el.dim.Width*mult) + ', ' + (el.dim.Height*mult);
+ assign(el.vml[v], true);
+ }
+ assign(el.vmlBox, false);
+
+ if (DD_roundies.IE8) {
+ el.vml.stroke.style.margin = '-1px';
+ if (typeof el.bW == 'undefined') {
+ this.vmlStrokeWeight(el);
+ }
+ el.vml.color.style.margin = (el.bW.Top-1) + 'px ' + (el.bW.Left-1) + 'px';
+ }
+ },
+
+ vmlPath: function(el) {
+ var coords = function(direction, w, h, r, aL, aT, mult) {
+ var cmd = direction ? ['m', 'qy', 'l', 'qx', 'l', 'qy', 'l', 'qx', 'l'] : ['qx', 'l', 'qy', 'l', 'qx', 'l', 'qy', 'l', 'm']; /* whoa */
+ aL *= mult;
+ aT *= mult;
+ w *= mult;
+ h *= mult;
+ var R = r.slice(); /* do not affect original array */
+ for (var i=0; i<4; i++) {
+ R[i] *= mult;
+ R[i] = Math.min(w/2, h/2, R[i]); /* make sure you do not get funky shapes - pick the smallest: half of the width, half of the height, or current value */
+ }
+ var coords = [
+ cmd[0] + Math.floor(0+aL) +','+ Math.floor(R[0]+aT),
+ cmd[1] + Math.floor(R[0]+aL) +','+ Math.floor(0+aT),
+ cmd[2] + Math.ceil(w-R[1]+aL) +','+ Math.floor(0+aT),
+ cmd[3] + Math.ceil(w+aL) +','+ Math.floor(R[1]+aT),
+ cmd[4] + Math.ceil(w+aL) +','+ Math.ceil(h-R[2]+aT),
+ cmd[5] + Math.ceil(w-R[2]+aL) +','+ Math.ceil(h+aT),
+ cmd[6] + Math.floor(R[3]+aL) +','+ Math.ceil(h+aT),
+ cmd[7] + Math.floor(0+aL) +','+ Math.ceil(h-R[3]+aT),
+ cmd[8] + Math.floor(0+aL) +','+ Math.floor(R[0]+aT)
+ ];
+ if (!direction) {
+ coords.reverse();
+ }
+ var path = coords.join('');
+ return path;
+ };
+
+ if (typeof el.bW == 'undefined') {
+ this.vmlStrokeWeight(el);
+ }
+ var bW = el.bW;
+ var rad = el.DD_radii.slice();
+
+ /* determine outer curves */
+ var outer = coords(true, el.dim.Width, el.dim.Height, rad, 0, 0, 2);
+
+ /* determine inner curves */
+ rad[0] -= Math.max(bW.Left, bW.Top);
+ rad[1] -= Math.max(bW.Top, bW.Right);
+ rad[2] -= Math.max(bW.Right, bW.Bottom);
+ rad[3] -= Math.max(bW.Bottom, bW.Left);
+ for (var i=0; i<4; i++) {
+ rad[i] = Math.max(rad[i], 0);
+ }
+ var inner = coords(false, el.dim.Width-bW.Left-bW.Right, el.dim.Height-bW.Top-bW.Bottom, rad, bW.Left, bW.Top, 2);
+ var image = coords(true, el.dim.Width-bW.Left-bW.Right+1, el.dim.Height-bW.Top-bW.Bottom+1, rad, bW.Left, bW.Top, 1);
+
+ /* apply huge path string */
+ el.vml.color.path = inner;
+ el.vml.image.path = image;
+ el.vml.stroke.path = outer + inner;
+
+ this.clipImage(el);
+ },
+
+ nixBorder: function(el) {
+ var s = el.currentStyle;
+ var sides = ['Top', 'Left', 'Right', 'Bottom'];
+ for (var i=0; i<4; i++) {
+ el.runtimeStyle['padding' + sides[i]] = (parseInt(s['padding' + sides[i]], 10) || 0) + (parseInt(s['border' + sides[i] + 'Width'], 10) || 0) + 'px';
+ }
+ el.runtimeStyle.border = 'none';
+ },
+
+ clipImage: function(el) {
+ var lib = DD_roundies;
+ if (!el.vmlBg || !lib.imgSize[el.vmlBg]) {
+ return;
+ }
+ var thisStyle = el.currentStyle;
+ var bg = {'X':0, 'Y':0};
+ var figurePercentage = function(axis, position) {
+ var fraction = true;
+ switch(position) {
+ case 'left':
+ case 'top':
+ bg[axis] = 0;
+ break;
+ case 'center':
+ bg[axis] = 0.5;
+ break;
+ case 'right':
+ case 'bottom':
+ bg[axis] = 1;
+ break;
+ default:
+ if (position.search('%') != -1) {
+ bg[axis] = parseInt(position, 10) * 0.01;
+ }
+ else {
+ fraction = false;
+ }
+ }
+ var horz = (axis == 'X');
+ bg[axis] = Math.ceil(fraction ? (( el.dim[horz ? 'Width' : 'Height'] - (el.bW[horz ? 'Left' : 'Top'] + el.bW[horz ? 'Right' : 'Bottom']) ) * bg[axis]) - (lib.imgSize[el.vmlBg][horz ? 'width' : 'height'] * bg[axis]) : parseInt(position, 10));
+ bg[axis] += 1;
+ };
+ for (var b in bg) {
+ figurePercentage(b, thisStyle['backgroundPosition'+b]);
+ }
+ el.vml.image.filler.position = (bg.X/(el.dim.Width-el.bW.Left-el.bW.Right+1)) + ',' + (bg.Y/(el.dim.Height-el.bW.Top-el.bW.Bottom+1));
+ var bgR = thisStyle.backgroundRepeat;
+ var c = {'T':1, 'R':el.dim.Width+1, 'B':el.dim.Height+1, 'L':1}; /* these are defaults for repeat of any kind */
+ var altC = { 'X': {'b1': 'L', 'b2': 'R', 'd': 'Width'}, 'Y': {'b1': 'T', 'b2': 'B', 'd': 'Height'} };
+ if (bgR != 'repeat') {
+ c = {'T':(bg.Y), 'R':(bg.X+lib.imgSize[el.vmlBg].width), 'B':(bg.Y+lib.imgSize[el.vmlBg].height), 'L':(bg.X)}; /* these are defaults for no-repeat - clips down to the image location */
+ if (bgR.search('repeat-') != -1) { /* now let's revert to dC for repeat-x or repeat-y */
+ var v = bgR.split('repeat-')[1].toUpperCase();
+ c[altC[v].b1] = 1;
+ c[altC[v].b2] = el.dim[altC[v].d]+1;
+ }
+ if (c.B > el.dim.Height) {
+ c.B = el.dim.Height+1;
+ }
+ }
+ el.vml.image.style.clip = 'rect('+c.T+'px '+c.R+'px '+c.B+'px '+c.L+'px)';
+ },
+
+ pseudoClass: function(el) {
+ var self = this;
+ setTimeout(function() { /* would not work as intended without setTimeout */
+ self.applyVML(el);
+ }, 1);
+ },
+
+ reposition: function(el) {
+ this.vmlOffsets(el);
+ this.vmlPath(el);
+ },
+
+ roundify: function(rad) {
+ this.style.behavior = 'none';
+ if (!this.currentStyle) {
+ return;
+ }
+ else {
+ var thisStyle = this.currentStyle;
+ }
+ var allowed = {BODY: false, TABLE: false, TR: false, TD: false, SELECT: false, OPTION: false, TEXTAREA: false};
+ if (allowed[this.nodeName] === false) { /* elements not supported yet */
+ return;
+ }
+ var self = this; /* who knows when you might need a setTimeout */
+ var lib = DD_roundies;
+ this.DD_radii = rad;
+ this.dim = {};
+
+ /* attach handlers */
+ var handlers = {resize: 'reposition', move: 'reposition'};
+ if (this.nodeName == 'A') {
+ var moreForAs = {mouseleave: 'pseudoClass', mouseenter: 'pseudoClass', focus: 'pseudoClass', blur: 'pseudoClass'};
+ for (var a in moreForAs) {
+ handlers[a] = moreForAs[a];
+ }
+ }
+ for (var h in handlers) {
+ this.attachEvent('on' + h, function() {
+ lib[handlers[h]](self);
+ });
+ }
+ this.attachEvent('onpropertychange', function() {
+ lib.readPropertyChanges(self);
+ });
+
+ /* ensure that this elent and its parent is given hasLayout (needed for accurate positioning) */
+ var giveLayout = function(el) {
+ el.style.zoom = 1;
+ if (el.currentStyle.position == 'static') {
+ el.style.position = 'relative';
+ }
+ };
+ giveLayout(this.offsetParent);
+ giveLayout(this);
+
+ /* create vml elements */
+ this.vmlBox = document.createElement('ignore'); /* IE8 really wants to be encased in a wrapper element for the VML to work, and I don't want to disturb getElementsByTagName('div') - open to suggestion on how to do this differently */
+ this.vmlBox.runtimeStyle.cssText = 'behavior:none; position:absolute; margin:0; padding:0; border:0; background:none;'; /* super important - if something accidentally matches this (you yourseld did this once, Drew), you'll get infinitely-created elements and a frozen browser! */
+ this.vmlBox.style.zIndex = thisStyle.zIndex;
+ this.vml = {'color':true, 'image':true, 'stroke':true};
+ for (var v in this.vml) {
+ this.vml[v] = document.createElement(lib.ns + ':shape');
+ this.vml[v].filler = document.createElement(lib.ns + ':fill');
+ this.vml[v].appendChild(this.vml[v].filler);
+ this.vml[v].stroked = false;
+ this.vml[v].style.position = 'absolute';
+ this.vml[v].style.zIndex = thisStyle.zIndex;
+ this.vml[v].coordorigin = '1,1';
+ this.vmlBox.appendChild(this.vml[v]);
+ }
+ this.vml.image.fillcolor = 'none';
+ this.vml.image.filler.type = 'tile';
+ this.parentNode.insertBefore(this.vmlBox, this);
+
+ this.isImg = false;
+ if (this.nodeName == 'IMG') {
+ this.isImg = true;
+ this.style.visibility = 'hidden';
+ }
+
+ setTimeout(function() {
+ lib.applyVML(self);
+ }, 1);
+ }
+
+};
+
+try {
+ document.execCommand("BackgroundImageCache", false, true);
+} catch(err) {}
+DD_roundies.IEversion();
+DD_roundies.createVmlNameSpace();
+DD_roundies.createVmlStyleSheet();
+
+if (DD_roundies.IE8 && document.attachEvent && DD_roundies.querySelector) {
+ document.attachEvent('onreadystatechange', function() {
+ if (document.readyState == 'complete') {
+ var selectors = DD_roundies.selectorsToProcess;
+ var length = selectors.length;
+ var delayedCall = function(node, radii, index) {
+ setTimeout(function() {
+ DD_roundies.roundify.call(node, radii);
+ }, index*100);
+ };
+ for (var i=0; i<length; i++) {
+ var results = document.querySelectorAll(selectors[i].selector);
+ var rLength = results.length;
+ for (var r=0; r<rLength; r++) {
+ if (results[r].nodeName != 'INPUT') { /* IE8 doesn't like to do this to inputs yet */
+ delayedCall(results[r], selectors[i].radii, r);
+ }
+ }
+ }
+ }
+ });
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/js/ajaxupload.js Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,564 @@
+/**
+ * Ajax upload
+ * Project page - http://valums.com/ajax-upload/
+ * Copyright (c) 2008 Andris Valums, http://valums.com
+ * Licensed under the MIT license (http://valums.com/mit-license/)
+ * Version 3.6 (26.06.2009)
+ */
+
+/**
+ * Changes from the previous version:
+ * 1. Fixed minor bug where click outside the button
+ * would open the file browse window
+ *
+ * For the full changelog please visit:
+ * http://valums.com/ajax-upload-changelog/
+ */
+
+(function(){
+
+var d = document, w = window;
+
+/**
+ * Get element by id
+ */
+function get(element){
+ if (typeof element == "string")
+ element = d.getElementById(element);
+ return element;
+}
+
+/**
+ * Attaches event to a dom element
+ */
+function addEvent(el, type, fn){
+ if (w.addEventListener){
+ el.addEventListener(type, fn, false);
+ } else if (w.attachEvent){
+ var f = function(){
+ fn.call(el, w.event);
+ };
+ el.attachEvent('on' + type, f)
+ }
+}
+
+
+/**
+ * Creates and returns element from html chunk
+ */
+var toElement = function(){
+ var div = d.createElement('div');
+ return function(html){
+ div.innerHTML = html;
+ var el = div.childNodes[0];
+ div.removeChild(el);
+ return el;
+ }
+}();
+
+function hasClass(ele,cls){
+ return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
+}
+function addClass(ele,cls) {
+ if (!hasClass(ele,cls)) ele.className += " "+cls;
+}
+function removeClass(ele,cls) {
+ var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
+ ele.className=ele.className.replace(reg,' ');
+}
+
+// getOffset function copied from jQuery lib (http://jquery.com/)
+if (document.documentElement["getBoundingClientRect"]){
+ // Get Offset using getBoundingClientRect
+ // http://ejohn.org/blog/getboundingclientrect-is-awesome/
+ var getOffset = function(el){
+ var box = el.getBoundingClientRect(),
+ doc = el.ownerDocument,
+ body = doc.body,
+ docElem = doc.documentElement,
+
+ // for ie
+ clientTop = docElem.clientTop || body.clientTop || 0,
+ clientLeft = docElem.clientLeft || body.clientLeft || 0,
+
+ // In Internet Explorer 7 getBoundingClientRect property is treated as physical,
+ // while others are logical. Make all logical, like in IE8.
+
+
+ zoom = 1;
+ if (body.getBoundingClientRect) {
+ var bound = body.getBoundingClientRect();
+ zoom = (bound.right - bound.left)/body.clientWidth;
+ }
+ if (zoom > 1){
+ clientTop = 0;
+ clientLeft = 0;
+ }
+ var top = box.top/zoom + (window.pageYOffset || docElem && docElem.scrollTop/zoom || body.scrollTop/zoom) - clientTop,
+ left = box.left/zoom + (window.pageXOffset|| docElem && docElem.scrollLeft/zoom || body.scrollLeft/zoom) - clientLeft;
+
+ return {
+ top: top,
+ left: left
+ };
+ }
+
+} else {
+ // Get offset adding all offsets
+ var getOffset = function(el){
+ if (w.jQuery){
+ return jQuery(el).offset();
+ }
+
+ var top = 0, left = 0;
+ do {
+ top += el.offsetTop || 0;
+ left += el.offsetLeft || 0;
+ }
+ while (el = el.offsetParent);
+
+ return {
+ left: left,
+ top: top
+ };
+ }
+}
+
+function getBox(el){
+ var left, right, top, bottom;
+ var offset = getOffset(el);
+ left = offset.left;
+ top = offset.top;
+
+ right = left + el.offsetWidth;
+ bottom = top + el.offsetHeight;
+
+ return {
+ left: left,
+ right: right,
+ top: top,
+ bottom: bottom
+ };
+}
+
+/**
+ * Crossbrowser mouse coordinates
+ */
+function getMouseCoords(e){
+ // pageX/Y is not supported in IE
+ // http://www.quirksmode.org/dom/w3c_cssom.html
+ if (!e.pageX && e.clientX){
+ // In Internet Explorer 7 some properties (mouse coordinates) are treated as physical,
+ // while others are logical (offset).
+ var zoom = 1;
+ var body = document.body;
+
+ if (body.getBoundingClientRect) {
+ var bound = body.getBoundingClientRect();
+ zoom = (bound.right - bound.left)/body.clientWidth;
+ }
+
+ return {
+ x: e.clientX / zoom + d.body.scrollLeft + d.documentElement.scrollLeft,
+ y: e.clientY / zoom + d.body.scrollTop + d.documentElement.scrollTop
+ };
+ }
+
+ return {
+ x: e.pageX,
+ y: e.pageY
+ };
+
+}
+/**
+ * Function generates unique id
+ */
+var getUID = function(){
+ var id = 0;
+ return function(){
+ return 'ValumsAjaxUpload' + id++;
+ }
+}();
+
+function fileFromPath(file){
+ return file.replace(/.*(\/|\\)/, "");
+}
+
+function getExt(file){
+ return (/[.]/.exec(file)) ? /[^.]+$/.exec(file.toLowerCase()) : '';
+}
+
+// Please use AjaxUpload , Ajax_upload will be removed in the next version
+Ajax_upload = AjaxUpload = function(button, options){
+ if (button.jquery){
+ // jquery object was passed
+ button = button[0];
+ } else if (typeof button == "string" && /^#.*/.test(button)){
+ button = button.slice(1);
+ }
+ button = get(button);
+
+ this._input = null;
+ this._button = button;
+ this._disabled = false;
+ this._submitting = false;
+ // Variable changes to true if the button was clicked
+ // 3 seconds ago (requred to fix Safari on Mac error)
+ this._justClicked = false;
+ this._parentDialog = d.body;
+
+ if (window.jQuery && jQuery.ui && jQuery.ui.dialog){
+ var parentDialog = jQuery(this._button).parents('.ui-dialog');
+ if (parentDialog.length){
+ this._parentDialog = parentDialog[0];
+ }
+ }
+
+ this._settings = {
+ // Location of the server-side upload script
+ action: 'upload.php',
+ // File upload name
+ name: 'userfile',
+ // Additional data to send
+ data: {},
+ // Submit file as soon as it's selected
+ autoSubmit: true,
+ // The type of data that you're expecting back from the server.
+ // Html and xml are detected automatically.
+ // Only useful when you are using json data as a response.
+ // Set to "json" in that case.
+ responseType: false,
+ // When user selects a file, useful with autoSubmit disabled
+ onChange: function(file, extension){},
+ // Callback to fire before file is uploaded
+ // You can return false to cancel upload
+ onSubmit: function(file, extension){},
+ // Fired when file upload is completed
+ // WARNING! DO NOT USE "FALSE" STRING AS A RESPONSE!
+ onComplete: function(file, response) {}
+ };
+
+ // Merge the users options with our defaults
+ for (var i in options) {
+ this._settings[i] = options[i];
+ }
+
+ this._createInput();
+ this._rerouteClicks();
+}
+
+// assigning methods to our class
+AjaxUpload.prototype = {
+ setData : function(data){
+ this._settings.data = data;
+ },
+ disable : function(){
+ this._disabled = true;
+ },
+ enable : function(){
+ this._disabled = false;
+ },
+ // removes ajaxupload
+ destroy : function(){
+ if(this._input){
+ if(this._input.parentNode){
+ this._input.parentNode.removeChild(this._input);
+ }
+ this._input = null;
+ }
+ },
+ /**
+ * Creates invisible file input above the button
+ */
+ _createInput : function(){
+ var self = this;
+ var input = d.createElement("input");
+ input.setAttribute('type', 'file');
+ input.setAttribute('name', this._settings.name);
+ var styles = {
+ 'position' : 'absolute'
+ ,'margin': '-5px 0 0 -175px'
+ ,'padding': 0
+ ,'width': '220px'
+ ,'height': '30px'
+ ,'fontSize': '14px'
+ ,'opacity': 0
+ ,'cursor': 'pointer'
+ ,'display' : 'none'
+ ,'zIndex' : 2147483583 //Max zIndex supported by Opera 9.0-9.2x
+ // Strange, I expected 2147483647
+ };
+ for (var i in styles){
+ input.style[i] = styles[i];
+ }
+
+ // Make sure that element opacity exists
+ // (IE uses filter instead)
+ if ( ! (input.style.opacity === "0")){
+ input.style.filter = "alpha(opacity=0)";
+ }
+
+ this._parentDialog.appendChild(input);
+
+ addEvent(input, 'change', function(){
+ // get filename from input
+ var file = fileFromPath(this.value);
+ if(self._settings.onChange.call(self, file, getExt(file)) == false ){
+ return;
+ }
+ // Submit form when value is changed
+ if (self._settings.autoSubmit){
+ self.submit();
+ }
+ });
+
+ // Fixing problem with Safari
+ // The problem is that if you leave input before the file select dialog opens
+ // it does not upload the file.
+ // As dialog opens slowly (it is a sheet dialog which takes some time to open)
+ // there is some time while you can leave the button.
+ // So we should not change display to none immediately
+ addEvent(input, 'click', function(){
+ self.justClicked = true;
+ setTimeout(function(){
+ // we will wait 3 seconds for dialog to open
+ self.justClicked = false;
+ }, 2500);
+ });
+
+ this._input = input;
+ },
+ _rerouteClicks : function (){
+ var self = this;
+
+ // IE displays 'access denied' error when using this method
+ // other browsers just ignore click()
+ // addEvent(this._button, 'click', function(e){
+ // self._input.click();
+ // });
+
+ var box, dialogOffset = {top:0, left:0}, over = false;
+
+ addEvent(self._button, 'mouseover', function(e){
+ if (!self._input || over) return;
+
+ over = true;
+ box = getBox(self._button);
+
+ if (self._parentDialog != d.body){
+ dialogOffset = getOffset(self._parentDialog);
+ }
+ });
+
+
+ // We can't use mouseout on the button,
+ // because invisible input is over it
+ addEvent(document, 'mousemove', function(e){
+ var input = self._input;
+ if (!input || !over) return;
+
+ if (self._disabled){
+ removeClass(self._button, 'hover');
+ input.style.display = 'none';
+ return;
+ }
+
+ var c = getMouseCoords(e);
+
+ if ((c.x >= box.left) && (c.x <= box.right) &&
+ (c.y >= box.top) && (c.y <= box.bottom)){
+
+ input.style.top = c.y - dialogOffset.top + 'px';
+ input.style.left = c.x - dialogOffset.left + 'px';
+ input.style.display = 'block';
+ addClass(self._button, 'hover');
+
+ } else {
+ // mouse left the button
+ over = false;
+
+ var check = setInterval(function(){
+ // if input was just clicked do not hide it
+ // to prevent safari bug
+
+ if (self.justClicked){
+ return;
+ }
+
+ if ( !over ){
+ input.style.display = 'none';
+ }
+
+ clearInterval(check);
+
+ }, 25);
+
+
+ removeClass(self._button, 'hover');
+ }
+ });
+
+ },
+ /**
+ * Creates iframe with unique name
+ */
+ _createIframe : function(){
+ // unique name
+ // We cannot use getTime, because it sometimes return
+ // same value in safari :(
+ var id = getUID();
+
+ // Remove ie6 "This page contains both secure and nonsecure items" prompt
+ // http://tinyurl.com/77w9wh
+ var iframe = toElement('<iframe src="javascript:false;" name="' + id + '" />');
+ iframe.id = id;
+ iframe.style.display = 'none';
+ d.body.appendChild(iframe);
+ return iframe;
+ },
+ /**
+ * Upload file without refreshing the page
+ */
+ submit : function(){
+ var self = this, settings = this._settings;
+
+ if (this._input.value === ''){
+ // there is no file
+ return;
+ }
+
+ // get filename from input
+ var file = fileFromPath(this._input.value);
+
+ // execute user event
+ if (! (settings.onSubmit.call(this, file, getExt(file)) == false)) {
+ // Create new iframe for this submission
+ var iframe = this._createIframe();
+
+ // Do not submit if user function returns false
+ var form = this._createForm(iframe);
+ form.appendChild(this._input);
+
+ form.submit();
+
+ d.body.removeChild(form);
+ form = null;
+ this._input = null;
+
+ // create new input
+ this._createInput();
+
+ var toDeleteFlag = false;
+
+ addEvent(iframe, 'load', function(e){
+
+ if (// For Safari
+ iframe.src == "javascript:'%3Chtml%3E%3C/html%3E';" ||
+ // For FF, IE
+ iframe.src == "javascript:'<html></html>';"){
+
+ // First time around, do not delete.
+ if( toDeleteFlag ){
+ // Fix busy state in FF3
+ setTimeout( function() {
+ d.body.removeChild(iframe);
+ }, 0);
+ }
+ return;
+ }
+
+ var doc = iframe.contentDocument ? iframe.contentDocument : frames[iframe.id].document;
+
+ // fixing Opera 9.26
+ if (doc.readyState && doc.readyState != 'complete'){
+ // Opera fires load event multiple times
+ // Even when the DOM is not ready yet
+ // this fix should not affect other browsers
+ return;
+ }
+
+ // fixing Opera 9.64
+ if (doc.body && doc.body.innerHTML == "false"){
+ // In Opera 9.64 event was fired second time
+ // when body.innerHTML changed from false
+ // to server response approx. after 1 sec
+ return;
+ }
+
+ var response;
+
+ if (doc.XMLDocument){
+ // response is a xml document IE property
+ response = doc.XMLDocument;
+ } else if (doc.body){
+ // response is html document or plain text
+ response = doc.body.innerHTML;
+ if (settings.responseType && settings.responseType.toLowerCase() == 'json'){
+ // If the document was sent as 'application/javascript' or
+ // 'text/javascript', then the browser wraps the text in a <pre>
+ // tag and performs html encoding on the contents. In this case,
+ // we need to pull the original text content from the text node's
+ // nodeValue property to retrieve the unmangled content.
+ // Note that IE6 only understands text/html
+ if (doc.body.firstChild && doc.body.firstChild.nodeName.toUpperCase() == 'PRE'){
+ response = doc.body.firstChild.firstChild.nodeValue;
+ }
+ if (response) {
+ response = window["eval"]("(" + response + ")");
+ } else {
+ response = {};
+ }
+ }
+ } else {
+ // response is a xml document
+ var response = doc;
+ }
+
+ settings.onComplete.call(self, file, response);
+
+ // Reload blank page, so that reloading main page
+ // does not re-submit the post. Also, remember to
+ // delete the frame
+ toDeleteFlag = true;
+
+ // Fix IE mixed content issue
+ iframe.src = "javascript:'<html></html>';";
+ });
+
+ } else {
+ // clear input to allow user to select same file
+ // Doesn't work in IE6
+ // this._input.value = '';
+ d.body.removeChild(this._input);
+ this._input = null;
+
+ // create new input
+ this._createInput();
+ }
+ },
+ /**
+ * Creates form, that will be submitted to iframe
+ */
+ _createForm : function(iframe){
+ var settings = this._settings;
+
+ // method, enctype must be specified here
+ // because changing this attr on the fly is not allowed in IE 6/7
+ var form = toElement('<form method="post" enctype="multipart/form-data"></form>');
+ form.style.display = 'none';
+ form.action = settings.action;
+ form.target = iframe.name;
+ d.body.appendChild(form);
+
+ // Create hidden input element for each data key
+ for (var prop in settings.data){
+ var el = d.createElement("input");
+ el.type = 'hidden';
+ el.name = prop;
+ el.value = settings.data[prop];
+ form.appendChild(el);
+ }
+ return form;
+ }
+};
+})();
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/js/jquery.cross-slide.js Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,424 @@
+/*!
+ * CrossSlide jQuery plugin v0.6.2
+ *
+ * Copyright 2007-2010 by Tobia Conforto <tobia.conforto@gmail.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 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 51
+ * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+/* Changelog:
+ *
+ * 0.6.2 2010-09-29 Added support for rel attribute
+ * 0.6.1 2010-08-02 Bugfixes
+ * 0.6 2010-07-03 Variant Ken Burns effect
+ * 0.5 2010-06-13 Support for animation control and event callbacks
+ * 0.4.2 2010-06-07 Bugfix
+ * 0.4.1 2010-06-04 Added target option
+ * 0.4 2010-05-20 Better error reporting, published on GitHub
+ * 0.3.7 2009-05-14 Fixed bug when container div's CSS position is not set
+ * 0.3.6 2009-04-16 Added alt option
+ * 0.3.5 2009-03-12 Fixed usage of href parameter in 'Ken Burns' mode
+ * 0.3.4 2009-03-12 Added shuffle option,
+ * contrib. by Ralf Santbergen <ralf_santbergen@hotmail.com>
+ * 0.3.3 2008-12-14 Added onclick option
+ * 0.3.2 2008-11-11 Fixed CSS bugs, contrib. by Erwin Bot <info@ixgcms.nl>
+ * 0.3.1 2008-11-11 Better error messages
+ * 0.3 2008-10-22 Option to repeat the animation a fixed number of times
+ * 0.2 2008-10-15 Linkable images, contrib. by Tim Rainey <tim@zmlabs.com>
+ * 0.1.1 2008-09-18 Compatibility with prototype.js
+ * 0.1 2008-08-21 Re-released under GPL v2
+ * 0.1 2007-08-19 Initial release
+ */
+
+(function() {
+ var $ = jQuery,
+ animate = ($.fn.startAnimation ? 'startAnimation' : 'animate'),
+ pause_missing = 'pause plugin missing.';
+
+ // utility to format a string with {0}, {1}... placeholders
+ function format(str) {
+ for (var i = 1; i < arguments.length; i++)
+ str = str.replace(new RegExp('\\{' + (i-1) + '}', 'g'), arguments[i]);
+ return str;
+ }
+
+ // utility to abort with a message to the error console
+ function abort() {
+ arguments[0] = 'CrossSlide: ' + arguments[0];
+ throw new Error(format.apply(null, arguments));
+ }
+
+ // utility to parse "from" and "to" parameters
+ function parse_position_param(param) {
+ var zoom = 1;
+ var tokens = param.replace(/^\s*|\s*$/g, '').split(/\s+/);
+ if (tokens.length > 3) throw new Error();
+ if (tokens[0] == 'center')
+ if (tokens.length == 1)
+ tokens = ['center', 'center'];
+ else if (tokens.length == 2 && tokens[1].match(/^[\d.]+x$/i))
+ tokens = ['center', 'center', tokens[1]];
+ if (tokens.length == 3)
+ zoom = parseFloat(tokens[2].match(/^([\d.]+)x$/i)[1]);
+ var pos = tokens[0] + ' ' + tokens[1];
+ if (pos == 'left top' || pos == 'top left')
+ return { xrel: 0, yrel: 0, zoom: zoom };
+ if (pos == 'left center' || pos == 'center left')
+ return { xrel: 0, yrel: .5, zoom: zoom };
+ if (pos == 'left bottom' || pos == 'bottom left')
+ return { xrel: 0, yrel: 1, zoom: zoom };
+ if (pos == 'center top' || pos == 'top center')
+ return { xrel: .5, yrel: 0, zoom: zoom };
+ if (pos == 'center center')
+ return { xrel: .5, yrel: .5, zoom: zoom };
+ if (pos == 'center bottom' || pos == 'bottom center')
+ return { xrel: .5, yrel: 1, zoom: zoom };
+ if (pos == 'right top' || pos == 'top right')
+ return { xrel: 1, yrel: 0, zoom: zoom };
+ if (pos == 'right center' || pos == 'center right')
+ return { xrel: 1, yrel: .5, zoom: zoom };
+ if (pos == 'right bottom' || pos == 'bottom right')
+ return { xrel: 1, yrel: 1, zoom: zoom };
+ return {
+ xrel: parseInt(tokens[0].match(/^(\d+)%$/)[1]) / 100,
+ yrel: parseInt(tokens[1].match(/^(\d+)%$/)[1]) / 100,
+ zoom: zoom
+ };
+ }
+
+ $.fn.crossSlide = function(opts, plan, callback)
+ {
+ var self = this,
+ self_width = this.width(),
+ self_height = this.height();
+
+ // must be called on exactly 1 element
+ if (self.length != 1)
+ abort('crossSlide() must be called on exactly 1 element')
+
+ // saving params for crossSlide.restart
+ self.get(0).crossSlideArgs = [ opts, plan, callback ];
+
+ // make working copy of plan
+ plan = $.map(plan, function(p) {
+ return $.extend({}, p);
+ });
+
+ // options with default values
+ if (! opts.easing)
+ opts.easing = opts.variant ? 'swing' : 'linear';
+ if (! callback)
+ callback = function() {};
+
+ // first preload all the images, while getting their actual width and height
+ (function(proceed) {
+
+ var n_loaded = 0;
+ function loop(i, img) {
+ // this loop is a for (i = 0; i < plan.length; i++)
+ // with independent var i, img (for the onload closures)
+ img.onload = function(e) {
+ n_loaded++;
+ plan[i].width = img.width;
+ plan[i].height = img.height;
+ if (n_loaded == plan.length)
+ proceed();
+ }
+ img.src = plan[i].src;
+ if (i + 1 < plan.length)
+ loop(i + 1, new Image());
+ }
+ loop(0, new Image());
+
+ })(function() { // then proceed
+
+ // check global params
+ if (! opts.fade)
+ abort('missing fade parameter.');
+ if (opts.speed && opts.sleep)
+ abort('you cannot set both speed and sleep at the same time.');
+
+ // conversion from sec to ms; from px/sec to px/ms
+ var fade_ms = Math.round(opts.fade * 1000);
+ if (opts.sleep)
+ var sleep = Math.round(opts.sleep * 1000);
+ if (opts.speed)
+ var speed = opts.speed / 1000,
+ fade_px = Math.round(fade_ms * speed);
+
+ // set container css
+ self.empty().css({
+ overflow: 'hidden',
+ padding: 0
+ });
+ if (! /^(absolute|relative|fixed)$/.test(self.css('position')))
+ self.css({ position: 'relative' });
+ if (! self.width() || ! self.height())
+ abort('container element does not have its own width and height');
+
+ // random sorting
+ if (opts.shuffle)
+ plan.sort(function() {
+ return Math.random() - 0.5;
+ });
+
+ // prepare each image
+ for (var i = 0; i < plan.length; ++i) {
+
+ var p = plan[i];
+ if (! p.src)
+ abort('missing src parameter in picture {0}.', i + 1);
+
+ if (speed) { // speed/dir mode
+
+ // check parameters and translate speed/dir mode into full mode
+ // (from/to/time)
+ switch (p.dir) {
+ case 'up':
+ p.from = { xrel: .5, yrel: 0, zoom: 1 };
+ p.to = { xrel: .5, yrel: 1, zoom: 1 };
+ var slide_px = p.height - self_height - 2 * fade_px;
+ break;
+ case 'down':
+ p.from = { xrel: .5, yrel: 1, zoom: 1 };
+ p.to = { xrel: .5, yrel: 0, zoom: 1 };
+ var slide_px = p.height - self_height - 2 * fade_px;
+ break;
+ case 'left':
+ p.from = { xrel: 0, yrel: .5, zoom: 1 };
+ p.to = { xrel: 1, yrel: .5, zoom: 1 };
+ var slide_px = p.width - self_width - 2 * fade_px;
+ break;
+ case 'right':
+ p.from = { xrel: 1, yrel: .5, zoom: 1 };
+ p.to = { xrel: 0, yrel: .5, zoom: 1 };
+ var slide_px = p.width - self_width - 2 * fade_px;
+ break;
+ default:
+ abort('missing or malformed dir parameter in picture {0}.', i+1);
+ }
+ if (slide_px <= 0)
+ abort('impossible animation: either picture {0} is too small or '
+ + 'div is too large or fade duration too long.', i + 1);
+ p.time_ms = Math.round(slide_px / speed);
+
+ } else if (! sleep) { // full mode
+
+ // check and parse parameters
+ if (! p.from || ! p.to || ! p.time)
+ abort('missing either speed/sleep option, or from/to/time params '
+ + 'in picture {0}.', i + 1);
+ try {
+ p.from = parse_position_param(p.from)
+ } catch (e) {
+ abort('malformed "from" parameter in picture {0}.', i + 1);
+ }
+ try {
+ p.to = parse_position_param(p.to)
+ } catch (e) {
+ abort('malformed "to" parameter in picture {0}.', i + 1);
+ }
+ if (! p.time)
+ abort('missing "time" parameter in picture {0}.', i + 1);
+ p.time_ms = Math.round(p.time * 1000)
+ }
+
+ // precalculate left/top/width/height bounding values
+ if (p.from)
+ $.each([ p.from, p.to ], function(i, each) {
+ each.width = Math.round(p.width * each.zoom);
+ each.height = Math.round(p.height * each.zoom);
+ each.left = Math.round((self_width - each.width) * each.xrel);
+ each.top = Math.round((self_height - each.height) * each.yrel);
+ });
+
+ // append the image (or anchor) element to the container
+ var img, elm;
+ elm = img = $(format('<img src="{0}"/>', p.src));
+ if (p.href)
+ elm = $(format('<a href="{0}"></a>', p.href)).append(img);
+ if (p.onclick)
+ elm.click(p.onclick);
+ if (p.alt)
+ img.attr('alt', p.alt);
+ if (p.rel)
+ elm.attr('rel', p.rel);
+ if (p.href && p.target)
+ elm.attr('target', p.target);
+ elm.appendTo(self);
+ }
+ delete speed; // speed mode has now been translated to full mode
+
+ // utility to compute the css for a given phase between p.from and p.to
+ // 0: begin fade-in, 1: end fade-in, 2: begin fade-out, 3: end fade-out
+ function position_to_css(p, phase) {
+ var pos = [ 0, fade_ms / (p.time_ms + 2 * fade_ms),
+ 1 - fade_ms / (p.time_ms + 2 * fade_ms), 1 ][phase];
+ return {
+ left: Math.round(p.from.left + pos * (p.to.left - p.from.left)),
+ top: Math.round(p.from.top + pos * (p.to.top - p.from.top)),
+ width: Math.round(p.from.width + pos * (p.to.width - p.from.width)),
+ height: Math.round(p.from.height + pos * (p.to.height-p.from.height))
+ };
+ }
+
+ // find images to animate and set initial css attributes
+ var imgs = self.find('img').css({
+ position: 'absolute',
+ visibility: 'hidden',
+ top: 0,
+ left: 0,
+ border: 0
+ });
+
+ // show first image
+ imgs.eq(0).css({ visibility: 'visible' });
+ if (! sleep)
+ imgs.eq(0).css(position_to_css(plan[0], opts.variant ? 0 : 1));
+
+ // create animation chain
+ var countdown = opts.loop;
+ function create_chain(i, chainf) {
+ // building the chain backwards, or inside out
+
+ if (i % 2 == 0) {
+ if (sleep) {
+ // single image sleep
+ var i_sleep = i / 2,
+ i_hide = (i_sleep - 1 + plan.length) % plan.length,
+ img_sleep = imgs.eq(i_sleep),
+ img_hide = imgs.eq(i_hide);
+ var newf = function() {
+ callback(i_sleep, img_sleep.get(0));
+ img_hide.css('visibility', 'hidden');
+ setTimeout(chainf, sleep);
+ };
+ } else {
+ // single image animation
+ var i_slide = i / 2,
+ i_hide = (i_slide - 1 + plan.length) % plan.length,
+ img_slide = imgs.eq(i_slide),
+ img_hide = imgs.eq(i_hide),
+ time = plan[i_slide].time_ms,
+ slide_anim = position_to_css(plan[i_slide],
+ opts.variant ? 3 : 2);
+ var newf = function() {
+ callback(i_slide, img_slide.get(0));
+ img_hide.css('visibility', 'hidden');
+ img_slide[animate](slide_anim, time, opts.easing, chainf);
+ };
+ }
+ } else {
+ // double image animation
+ var i_from = Math.floor(i / 2),
+ i_to = Math.ceil(i / 2) % plan.length,
+ img_from = imgs.eq(i_from),
+ img_to = imgs.eq(i_to),
+ from_anim = {},
+ to_init = { visibility: 'visible' },
+ to_anim = {};
+ if (i_to > i_from) {
+ to_init.opacity = 0;
+ to_anim.opacity = 1;
+ if (opts.doubleFade)
+ from_anim.opacity = 0;
+ } else {
+ from_anim.opacity = 0;
+ if (opts.doubleFade) {
+ to_init.opacity = 0;
+ to_anim.opacity = 1;
+ }
+ }
+ if (! sleep) {
+ // moving images
+ $.extend(to_init, position_to_css(plan[i_to], 0));
+ if (! opts.variant) {
+ $.extend(from_anim, position_to_css(plan[i_from], 3));
+ $.extend(to_anim, position_to_css(plan[i_to], 1));
+ }
+ }
+ if ($.isEmptyObject(to_anim)) {
+ var newf = function() {
+ callback(i_to, img_to.get(0), i_from, img_from.get(0));
+ img_to.css(to_init);
+ img_from[animate](from_anim, fade_ms, 'linear', chainf);
+ };
+ } else if ($.isEmptyObject(from_anim)) {
+ var newf = function() {
+ callback(i_to, img_to.get(0), i_from, img_from.get(0));
+ img_to.css(to_init);
+ img_to[animate](to_anim, fade_ms, 'linear', chainf);
+ };
+ } else {
+ var newf = function() {
+ callback(i_to, img_to.get(0), i_from, img_from.get(0));
+ img_to.css(to_init);
+ img_to[animate](to_anim, fade_ms, 'linear');
+ img_from[animate](from_anim, fade_ms, 'linear', chainf);
+ };
+ }
+ }
+
+ // if the loop option was requested, push a countdown check
+ if (opts.loop && i == plan.length * 2 - 2) {
+ var newf_orig = newf;
+ newf = function() {
+ if (--countdown) newf_orig();
+ }
+ }
+
+ if (i > 0)
+ return create_chain(i - 1, newf);
+ else
+ return newf;
+ }
+ var animation = create_chain(plan.length * 2 - 1,
+ function() { return animation(); });
+
+ // start animation
+ animation();
+ });
+ return self;
+ };
+
+ $.fn.crossSlideFreeze = function()
+ {
+ this.find('img').stop();
+ }
+
+ $.fn.crossSlideStop = function()
+ {
+ this.find('img').stop().remove();
+ }
+
+ $.fn.crossSlideRestart = function()
+ {
+ this.find('img').stop().remove();
+ $.fn.crossSlide.apply(this, this.get(0).crossSlideArgs);
+ }
+
+ $.fn.crossSlidePause = function()
+ {
+ if (! $.fn.pause)
+ abort(pause_missing);
+ this.find('img').pause();
+ }
+
+ $.fn.crossSlideResume = function()
+ {
+ if (! $.fn.pause)
+ abort(pause_missing);
+ this.find('img').resume();
+ }
+})();
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/license.txt Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,621 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/options/UvumiTextarea-compressed.js Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,28 @@
+/*
+UvumiTools TextArea v1.1.0 http://tools.uvumi.com/textarea.html
+
+Copyright (c) 2008 Uvumi LLC
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+var UvumiTextarea=Class({Implements:Options,options:{selector:'textarea',maxChar:1000,resizeDuration:250,minSize:false,catchTab:true,classPrefix:'tb'},initialize:function(a){this.setOptions(a);this.tbDummies=[];this.tbCounters=[];this.tbProgress=[];this.tbProgressBar=[];window.addEvent('domready',this.domReady.bind(this))},domReady:function(){if($(this.options.selector)){this.options.selector=$(this.options.selector)}this.textareas=$$(this.options.selector);this.textareas.each(this.buildProgress,this);if(this.options.maxChar){this.tbProgressEffects=new Fx.Elements(this.tbProgressBar,{duration:'short',link:'cancel'})}this.tbEffects=new Fx.Elements(this.textareas,{duration:this.options.resizeDuration,link:'cancel'});this.textareas.each(function(a,i){var b=a.get('value');this.previousLength=b.length;if(this.options.maxChar){if(this.previousLength>this.options.maxChar){b=b.substring(0,this.options.maxChar);this.previousLength=b.length;a.set('value',b)}var c=this.options.maxChar-this.previousLength;var d=(c*this.tbProgress[i].getSize().x/this.options.maxChar).toInt();this.tbProgressBar[i].setStyle('width',d);if(!c){var e='No character left'}else if(c==1){var e='1 character left'}else{var e=c+' characters left'}this.tbCounters[i].set('text',e)}this.tbDummies[i].set('value',b);var f=(this.tbDummies[i].getScrollSize().y>this.options.minSize?this.tbDummies[i].getScrollSize().y:this.options.minSize);if(this.tbDummies[i].retrieve('height')!=f){this.tbDummies[i].store('height',f);a.setStyle('height',f)}},this)},buildProgress:function(a,i){a.setStyle('overflow','hidden');if(!this.options.minSize){this.options.minSize=a.getSize().y}this.tbDummies[i]=a.clone().setStyles({'width':a.getStyle('width').toInt(),'position':'absolute','top':0,'height':this.options.minSize,'left':-3000}).store('height',0).inject($(document.body));a.addEvents({'keydown':this.onKeyPress.bindWithEvent(this,[i,this.options.catchTab]),'keyup':this.onKeyPress.bindWithEvent(this,i),'focus':this.startObserver.bind(this,i),'blur':this.stopObserver.bind(this)});if(this.options.maxChar){this.tbProgress[i]=new Element('div',{'class':this.options.classPrefix+'Progress','styles':{'position':'relative','overflow':'hidden','display':'block','position':'relative','width':a.getSize().x-1,'margin':'5px 0 5px '+a.getPosition(a.getParent()).x+'px'}}).inject(a,'after');this.tbProgressBar[i]=new Element('div',{'class':this.options.classPrefix+'ProgressBar','styles':{'position':'absolute','top':0,'left':0,'height':'100%','width':'100%'}}).inject(this.tbProgress[i]);this.tbCounters[i]=new Element('div',{'class':this.options.classPrefix+'Counter','styles':{'position':'absolute','top':0,'left':0,'height':'100%','width':'100%','text-align':'center'}}).inject(this.tbProgress[i]);this.update=this.updateCounter}else{this.update=this.updateNoCounter}},onKeyPress:function(a,i,b){if(b&&a.key=="tab"){a.preventDefault();this.insertTab(i)}if(!a.shift&&!a.control&&!a.alt&&!a.meta){this.update(i)}this.startObserver(i)},startObserver:function(i){$clear(this.observer);this.observer=this.observe.periodical(500,this,i)},stopObserver:function(){$clear(this.observer)},observe:function(i){if(this.textareas[i].get('value').length!=this.previousLength){this.previousLength=this.textareas[i].get('value').length;this.update(i)}},updateCounter:function(i){var a=this.textareas[i].get('value');if(a.length>this.options.maxChar){a=a.substring(0,this.options.maxChar);this.textareas[i].set('value',a)}this.previousLength=a.length;var b=this.options.maxChar-this.previousLength;var c=(b*this.tbProgress[i].getSize().x/this.options.maxChar).toInt();var d={};d[i]={'width':c};this.tbProgressEffects.start(d);if(b==0){var e='No character left';this.tbProgress[i].highlight("#f66")}else if(b==1){var e='1 character left'}else{var e=b+' characters left'}this.tbCounters[i].set('text',e);this.updateHeight(i,a)},updateNoCounter:function(i){var a=this.textareas[i].get('value');this.previousLength=a.length;this.updateHeight(i,a)},updateHeight:function(i,a){this.tbDummies[i].set('value',a);var b=(this.tbDummies[i].getScrollSize().y>this.options.minSize?this.tbDummies[i].getScrollSize().y:this.options.minSize);if(this.tbDummies[i].retrieve('height')!=b){this.tbDummies[i].store('height',b);effect={};effect[i]={'height':b};this.tbEffects.start(effect)}},insertTab:function(i){if(Browser.Engine.trident){var a=document.selection.createRange();a.text="\t"}else{var b=this.textareas[i].selectionStart;var c=this.textareas[i].selectionEnd;var d=this.textareas[i].get('value');this.textareas[i].set('value',d.substring(0,b)+"\t"+d.substring(c,d.length));b++;this.textareas[i].setSelectionRange(b,b)}}});
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/options/ata-admin.css Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,298 @@
+#adminmenu li.menu-top .wp-menu-image img,
+#adminmenu li.menu-top:hover .wp-menu-image img,
+#adminmenu li.wp-has-current-submenu .wp-menu-image img,
+#adminmenu li#toplevel_page_functions .wp-menu-image img {
+ opacity: 1 !important;
+}
+#adminmenu li#toplevel_page_atahualpa-main .wp-submenu li a {
+ padding-left:30px !important;
+ background: url("images/application_view_tile.png") no-repeat 10px 4px;
+ border-bottom: dotted 1px #ddd;
+}
+
+#adminmenu li#toplevel_page_atahualpa-main .wp-submenu li:nth-child(1) a {
+ background-image: url("images/layout_content.png")
+}
+#adminmenu li#toplevel_page_atahualpa-main .wp-submenu li:nth-child(2) a {
+ background-image: url("images/color_swatch.png")
+}
+#adminmenu li#toplevel_page_atahualpa-main .wp-submenu li:nth-child(3) a {
+ background-image: url("images/vcard_edit.png")
+}
+#adminmenu li#toplevel_page_atahualpa-main .wp-submenu li:nth-child(4) a {
+ background-image: url("images/1314060470_kmenuedit.png")
+}
+#adminmenu li#toplevel_page_atahualpa-main .wp-submenu li:nth-child(5) a {
+ background-image: url("images/1314060017_view-sort-ascending.png")
+}
+
+/* chart_line.png */
+#adminmenu li#toplevel_page_atahualpa-main .wp-submenu li:nth-child(6) a {
+ background-image: url("images/arrow_refresh_small.png")
+}
+#adminmenu li#toplevel_page_atahualpa-main .wp-submenu li:nth-child(7) a {
+ background-image: url("images/comments.png")
+}
+
+
+div.tabcontent {
+ height: auto;
+ border: none;
+ margin: 0;
+ padding: 0;
+ display:none;
+ width: auto;
+}
+div#start-here {
+ display:block;
+}
+.bfa-container {
+ width: auto 100%;
+ border: solid 3px #C6D9E9;
+ background-color: #E4F2FD;
+ margin: 0 auto 7px auto;
+ padding: 0;
+ -moz-border-radius: 10px;
+ -khtml-border-radius: 10px;
+ -webkit-border-radius: 10px;
+ border-radius: 10px;
+ position: relative;
+}
+.bfa-container div.infohighlight {
+ background:#f3fafe;
+ padding:15px;
+ border: 2px solid #C6D9E9;
+ -moz-border-radius: 10px;
+ -khtml-border-radius: 10px;
+ -webkit-border-radius: 10px;
+ border-radius: 10px;
+}
+.bfa-container h3.infohighlight-header {
+ color: #247aa8;
+ margin: 30px 0 10px 0;
+ font-family:georgia;
+ font-weight:normal;
+ font-size: 20px;
+}
+.bfa-container ul {
+ list-style: circle url(images/list-arrow.gif) !important;
+ margin: 1em 1em 1em 2em;
+}
+.bfa-container-left {
+ display: block;
+ float: left;
+ text-align: right;
+ width: 35%;
+ border-right: solid 1px #C6D9E9;
+ margin: 0;
+ padding: 10px;
+}
+.bfa-container-right {
+ display: block;
+ float: right;
+ width: 58%;
+ margin: 0;
+ padding: 10px;
+}
+.bfa-container-full {
+ width: auto;
+ margin: 0;
+ padding: 10px;
+}
+.bfa-container h2 {
+ font-size: 1.5em;
+ color: #666;
+ margin:0;
+ padding: 3px;
+ border: none
+}
+.bfa-container input {
+ text-align: right
+}
+.bfa-container label {
+ font-size: 16px;
+ font-weight: bold;
+ color: #385f7e;
+ display: block;
+ margin-bottom: 5px;
+}
+.bfa-container-left label {
+ margin-bottom: 0;
+}
+.bfa-container label.widget_area_label {
+ font-size: 12px;
+ color: black;
+ display: inline;
+ margin: 0 0 5px 5px;
+}
+.bfa-container input,
+.bfa-container-left textarea,
+.bfa-container-left select {
+ margin: 7px 0 4px 7px;
+}
+ul#bfaoptiontabs {
+ text-align: left;
+ list-style-type: none;
+ margin: 0 0 0 0;
+ padding: 0; -moz-padding-start: 0;
+}
+ul#bfaoptiontabs li {
+ /*display: inline;*/
+ width: 190px;
+ list-style-type: none;
+ margin-bottom: 0;
+}
+ul#bfaoptiontabs li a:link,
+ul#bfaoptiontabs li a:visited,
+ul#bfaoptiontabs li a:active {
+ display: -moz-inline-box;
+ display: inline-block;
+ white-space: nowrap;
+ outline: 0;
+ text-decoration: none;
+ position: relative;
+ z-index: 1;
+ padding: 2px 6px;
+ margin-right: 0px;
+ margin-bottom: 3px;
+ border: 2px solid #C6D9E9;
+ font-size: 0.9em;
+ color: #2582a9;
+ background-color: #E4F2FD;
+ -moz-border-radius: 3px;
+ -khtml-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ width: 170px;
+}
+ul#bfaoptiontabs li a:hover {
+ border: 2px solid #D54E21;
+ background-color: #ffffff;
+ color: #D54E21;
+}
+ul#bfaoptiontabs li a.selected {
+ border: 2px solid #883215;
+ background-color: #D54E21;
+ color: #ffffff !important;
+ outline: 0;
+}
+table.bfa-optiontable-layout {
+ width: 100%;
+}
+table.bfa-optiontable {
+ text-align: left;
+ white-space: wrap;
+ background-color: #f1f9fe;
+ border-collapse: collapse;
+ border: solid 1px #c4e2fb;
+}
+table.bfa-optiontable input {
+ margin: 0 2px 0 2px;
+ padding: 2px;
+ text-align: left;
+}
+table.bfa-optiontable input.color {
+ text-align: right;
+}
+table.bfa-optiontable thead tr td {
+ line-height: 11px;
+}
+table.bfa-optiontable-layout td {
+ vertical-align: top;
+}
+table.bfa-optiontable td {
+ vertical-align:middle;
+ padding: 1px 3px;
+}
+table.bfa-optiontable thead td {
+ text-align: center;
+ background-color: #c4e2fb;
+ font-weight: bold;
+ padding: 5px;
+}
+/* For widget area parameters table */
+td.bfa-td {
+ vertical-align: top;
+ padding: 15px 5px 5px 5px;
+ border-top: dashed 1px black;
+}
+div.more_blog_title_font {
+ display: none;
+}
+div.more_show_header_image {
+ display: none;
+}
+h4 {
+ font-size: 18px;
+ font-family: "Courier New", Courier, monospace;
+ margin-bottom: 5px;
+}
+code {
+ background: #ffffff;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+i {
+ color: red;
+ font-style: normal;
+ font-weight: bold;
+}
+input.save-tab {
+ display: block;
+ margin: 15px auto 4px auto;
+ border: 0 !important;
+ padding: 0 !important;
+ width: 565px;
+ height: 174px;
+ background: url(images/save-changes.gif) top left !important;
+}
+input.save-tab:hover {
+ background: url(images/save-changes.gif) bottom left !important;
+}
+input.reset-tab {
+ display: block;
+ margin: 25px auto 2px auto;
+ border: 0 !important;
+ padding: 0 !important;
+ width: 250px;
+ height: 68px;
+ background: url(images/reset-settings.gif) top left !important; ;
+}
+input.reset-tab:hover {
+ background: url(images/reset-settings.gif) bottom left !important; ;
+}
+input.reset-all {
+ overflow: visible; /* for IE */
+ letter-spacing: -1px;
+ line-height: normal !important;
+ font-size: 1.5em !important;
+ padding: 5px 10px 5px 45px;
+ background: #777 url(images/reset-all-gray.png) no-repeat 5% 50% !important;
+ background-image: none;
+ color: #ddd;
+ text-align: center;
+ font-weight: bold;
+ border: solid 3px #555;
+}
+input.reset-all:hover {
+ border: solid 3px #ff9393; color: #fff;
+ background: #800 url(images/reset-all.png) 5% 50% no-repeat !important;
+}
+p.submit {
+ text-align: center;
+}
+.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 */
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/options/ata-admin.js Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,88 @@
+jQuery(document).ready(function($){
+
+ $.ajaxSetup({
+ type: 'post',
+ url: 'admin-ajax.php'
+ });
+
+ var atahualpacookie=new RegExp("atahualpatabposition=[^;]+", "i");
+ if( document.cookie.match(atahualpacookie) ) {
+ var curTab = document.cookie.match(atahualpacookie)[0].split("=")[1];
+ $("div.tabcontent").css("display", "none");
+ $("div#" + curTab).css("display", "block");
+ $("ul#bfaoptiontabs li a").removeClass("selected");
+ $("ul#bfaoptiontabs li a[rel=" + curTab +"]").addClass("selected");
+ }
+
+ $("ul#bfaoptiontabs li a").live("click", function() {
+ var newTab = $(this).attr('rel');
+ $("div.tabcontent").css("display", "none");
+ $("div#" + newTab).css("display", "block");
+ $("ul#bfaoptiontabs li a").removeClass("selected");
+ $(this).addClass("selected");
+ document.cookie = 'atahualpatabposition=' + newTab + ';path=/';
+ });
+
+ $("a#import-settings").live("click", function() {
+ var dataString = encodeURIComponent($("textarea#import-textarea").val());
+ $.ajax({
+ data: 'action=import_settings&ataoptions=' + dataString + '&_ajax_nonce=' + nonce3,
+ success: function(html){
+ setTimeout(function() {
+ window.location = window.location;
+ }, 3000);
+ $("#settingsimported").html( html ).fadeIn("fast").fadeOut(3000);
+ }
+ });
+ return false;
+ });
+
+ $("a#reset_widget_areas").bind("click", function() {
+ var delWidgetAreas = "";
+ $("input[type='checkbox'][name='delete_widget_areas']").each(function(){
+ if(this.checked){
+ delWidgetAreas += "&delete_areas[]=" + this.value;
+ }
+ });
+ $.ajax({
+ data: 'action=reset_bfa_ata_widget_areas' + delWidgetAreas + '&_ajax_nonce=' + nonce,
+ success: function(html){
+ $("#formstatus").html( html ).fadeIn("fast").fadeOut(3000);
+ }
+ });
+ return false;
+ });
+
+ $("a#delete_bfa_ata4").bind("click", function() {
+ $.ajax({
+ data: 'action=bfa_delete_bfa_ata4&_ajax_nonce=' + $nonce2,
+ success: function(html){
+ $("#bfa_ata4_deleted").html( html ).fadeIn("fast").fadeOut(3000);
+ window.location = window.location;
+ }
+ });
+ return false;
+ });
+
+ var textareawidth = $(document).width() - 430;
+ $("div.mooarea, textarea.growing").css({width: textareawidth});
+});
+
+function confirmPageReset() {
+ var agree=confirm("This will reset ALL the options on this page. Are you sure?");
+ if (agree) return true ;
+ else return false ;
+}
+
+function confirmSubmit() {
+ var agree=confirm("Are you sure? This will reset ALL theme options.");
+ if (agree) return true ;
+ else return false ;
+}
+
+new UvumiTextarea({
+ selector: 'textarea.growing',
+ maxChar: 0
+});
+
+
Binary file src/web/app/themes/atahualpa/options/images/blockquotes.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/comment_feed_link.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/comment_feed_link_title.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/email_subscribe_link.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/email_subscribe_link_title.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/favicon-locations.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/favicons.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/hand-cursor.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/header-image-height.jpg has changed
Binary file src/web/app/themes/atahualpa/options/images/header-overlay.jpg has changed
Binary file src/web/app/themes/atahualpa/options/images/importfile.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/list-arrow.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/logo-area.jpg has changed
Binary file src/web/app/themes/atahualpa/options/images/logo-style.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/new-favicon.png has changed
Binary file src/web/app/themes/atahualpa/options/images/opacity-left-width.jpg has changed
Binary file src/web/app/themes/atahualpa/options/images/opacity-right-width.jpg has changed
Binary file src/web/app/themes/atahualpa/options/images/opacity.jpg has changed
Binary file src/web/app/themes/atahualpa/options/images/post-body.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-byline-links-hover.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-byline-links.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-byline.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-container.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-footer-links-hover.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-footer-links.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-footer.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-headline-links-hover.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-headline-links.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-headline-text.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-headline.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-kicker-links-hover.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-kicker-links.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-kicker.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post-structure.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post_feed_link.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/post_feed_link_title.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/readmore1.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/readmore2.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/reset-all-gray.png has changed
Binary file src/web/app/themes/atahualpa/options/images/reset-all.png has changed
Binary file src/web/app/themes/atahualpa/options/images/reset-settings.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/rss-box.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/save-changes.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/select-cutoff.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/show_comments_icon.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/show_email_icon.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/show_posts_icon.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/widget-area-alignment.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/widget-content.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/widget-list-items-1.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/widget-list-items-2.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/widget-list-items-3.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/widget-list-items.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/widget-title-box.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/widget-title.gif has changed
Binary file src/web/app/themes/atahualpa/options/images/widget.gif has changed
Binary file src/web/app/themes/atahualpa/options/jscolor/cross.gif has changed
Binary file src/web/app/themes/atahualpa/options/jscolor/hv102x61.png has changed
Binary file src/web/app/themes/atahualpa/options/jscolor/hv120x69.png has changed
Binary file src/web/app/themes/atahualpa/options/jscolor/hv180x101.png has changed
Binary file src/web/app/themes/atahualpa/options/jscolor/hv360x202.png has changed
Binary file src/web/app/themes/atahualpa/options/jscolor/hv540x303.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/options/jscolor/jscolor.js Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,608 @@
+/**
+ * JavaScript Color Picker
+ *
+ * @author Honza Odvarko, http://odvarko.cz
+ * @copyright Honza Odvarko
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
+ * @version 1.0.8
+ * @link http://jscolor.com
+ */
+
+
+jscolor_register() // register jscolor_init() at page load
+
+
+function jscolor_register() {
+ if(typeof window.onload == 'function') {
+ var f = window.onload
+ window.onload = function() {
+ if(f)/* IE7 */ f()
+ jscolor_init()
+ }
+ } else {
+ window.onload = jscolor_init
+ }
+}
+
+
+function jscolor_init() {
+
+ // bind <input class="..."> elements
+ var bindClass = 'color'
+
+ // set field's background according selected color?
+ var reflectOnBackground = true
+
+ // prepend field's color code with #
+ var leadingHash = false
+
+ // allow an empty value in the field instead of setting it to #000000
+ var allowEmpty = false
+
+ // spectrum's width and height
+ // var HVSize = [ 720, 404 ] // huge
+ var HVSize = [ 540, 303 ] // large
+ //var HVSize = [ 360, 202 ] // normal
+ //var HVSize = [ 180, 101 ] // small
+
+
+ var padding = 10
+ var borderWidth = 1
+ var HVCrossSize = [ 15, 15 ]
+ var SSize = 66
+ var SArrowSize = [ 7, 11 ]
+ var SSampleSize = 4
+ var ClientSliderSize = 18
+
+ var instanceId = 0
+ var instance
+ var elements = {}
+
+ var dir = function() {
+ var base = location.href
+
+ var e = document.getElementsByTagName('base')
+ for(var i=0; i<e.length; i++) {
+ if(e[i].href) base = e[i].href
+ }
+
+ var e = document.getElementsByTagName('script')
+ for(var i=0; i<e.length; i++) {
+ if(e[i].src) {
+ var src = new URI(e[i].src)
+ if(/\/jscolor\.js$/.test(src.path)) {
+ var srcAbs = src.toAbsolute(base).toString()
+ delete srcAbs.query
+ delete srcAbs.fragment
+ return srcAbs.replace(/[^\/]+$/, '') // remove filename from path
+ }
+ }
+ }
+ return false
+ }()
+
+
+ function createDialog() {
+
+ // dialog
+ elements.dialog = document.createElement('div')
+ setStyle(elements.dialog, {
+ 'zIndex' : '100',
+ 'clear' : 'both',
+ 'position' : 'absolute',
+ 'width' : HVSize[0]+SSize+3*padding+'px',
+ 'height' : HVSize[1]+2*padding+'px',
+ 'border' : borderWidth+'px solid ThreeDHighlight',
+ 'borderRightColor' : 'ThreeDShadow', 'borderBottomColor' : 'ThreeDShadow',
+ 'background' : "url('"+dir+"hv"+HVSize[0]+'x'+HVSize[1]+".png') "+padding+"px "+padding+"px no-repeat ThreeDFace"
+ })
+ elements.dialog.onmousedown = function() {
+ instance.preserve = true
+ }
+ elements.dialog.onmousemove = function(e) {
+ if(instance.holdHV) setHV(e)
+ if(instance.holdS) setS(e)
+ }
+ elements.dialog.onmouseup = elements.dialog.onmouseout = function() {
+ if(instance.holdHV || instance.holdS) {
+ instance.holdHV = instance.holdS = false
+ if(typeof instance.input.onchange == 'function') instance.input.onchange()
+ }
+ instance.input.focus()
+ }
+
+ // hue/value spectrum
+ elements.hv = document.createElement('div')
+ setStyle(elements.hv, {
+ 'position' : 'absolute',
+ 'left' : '0',
+ 'top' : '0',
+ 'width' : HVSize[0]+2*padding+'px',
+ 'height' : HVSize[1]+2*padding+'px',
+ 'background' : "url('"+dir+"cross.gif') no-repeat",
+ 'cursor' : 'crosshair'
+ })
+ var setHV = function(e) {
+ var p = getMousePos(e)
+ var relX = p[0]<instance.posHV[0] ? 0 : (p[0]-instance.posHV[0]>HVSize[0]-1 ? HVSize[0]-1 : p[0]-instance.posHV[0])
+ var relY = p[1]<instance.posHV[1] ? 0 : (p[1]-instance.posHV[1]>HVSize[1]-1 ? HVSize[1]-1 : p[1]-instance.posHV[1])
+ instance.color.setHSV(6/HVSize[0]*relX, null, 1-1/(HVSize[1]-1)*relY)
+ updateDialogPointers()
+ updateDialogSaturation()
+ updateInput(instance.input, instance.color, null)
+ }
+ elements.hv.onmousedown = function(e) { instance.holdHV = true; setHV(e) }
+ elements.dialog.appendChild(elements.hv)
+
+ // saturation gradient
+ elements.grad = document.createElement('div')
+ setStyle(elements.grad, {
+ 'position' : 'absolute',
+ 'left' : HVSize[0]+SArrowSize[0]+2*padding+'px',
+ 'top' : padding+'px',
+ 'width' : SSize-SArrowSize[0]+'px'
+ })
+ // saturation gradient's samples
+ for(var i=0; i+SSampleSize<=HVSize[1]; i+=SSampleSize) {
+ var g = document.createElement('div')
+ g.style.height = SSampleSize+'px'
+ g.style.fontSize = '1px'
+ g.style.lineHeight = '0'
+ elements.grad.appendChild(g)
+ }
+ elements.dialog.appendChild(elements.grad)
+
+ // saturation slider
+ elements.s = document.createElement('div')
+ setStyle(elements.s, {
+ 'position' : 'absolute',
+ 'left' : HVSize[0]+2*padding+'px',
+ 'top' : '0',
+ 'width' : SSize+padding+'px',
+ 'height' : HVSize[1]+2*padding+'px',
+ 'background' : "url('"+dir+"s.gif') no-repeat"
+ })
+ // IE 5 fix
+ try {
+ elements.s.style.cursor = 'pointer'
+ } catch(eOldIE) {
+ elements.s.style.cursor = 'hand'
+ }
+ var setS = function(e) {
+ var p = getMousePos(e)
+ var relY = p[1]<instance.posS[1] ? 0 : (p[1]-instance.posS[1]>HVSize[1]-1 ? HVSize[1]-1 : p[1]-instance.posS[1])
+ instance.color.setHSV(null, 1-1/(HVSize[1]-1)*relY, null)
+ updateDialogPointers()
+ updateInput(instance.input, instance.color, null)
+ }
+ elements.s.onmousedown = function(e) { instance.holdS = true; setS(e) }
+ elements.dialog.appendChild(elements.s)
+ }
+
+
+ function showDialog(input) {
+ var is = [ input.offsetWidth, input.offsetHeight ]
+ var ip = getElementPos(input)
+ var sp = getScrollPos()
+ var ws = getWindowSize()
+ var ds = [
+ HVSize[0]+SSize+3*padding+2*borderWidth,
+ HVSize[1]+2*padding+2*borderWidth
+ ]
+ var dp = [
+ -sp[0]+ip[0]+ds[0] > ws[0]-ClientSliderSize ? (-sp[0]+ip[0]+is[0]/2 > ws[0]/2 ? ip[0]+is[0]-ds[0] : ip[0]) : ip[0],
+ -sp[1]+ip[1]+is[1]+ds[1] > ws[1]-ClientSliderSize ? (-sp[1]+ip[1]+is[1]/2 > ws[1]/2 ? ip[1]-ds[1] : ip[1]+is[1]) : ip[1]+is[1]
+ ]
+
+ instanceId++
+ instance = {
+ input : input,
+ color : new color(input.value),
+ preserve : false,
+ holdHV : false,
+ holdS : false,
+ posHV : [ dp[0]+borderWidth+padding, dp[1]+borderWidth+padding ],
+ posS : [ dp[0]+borderWidth+HVSize[0]+2*padding, dp[1]+borderWidth+padding ]
+ }
+
+ updateDialogPointers()
+ updateDialogSaturation()
+
+ elements.dialog.style.left = dp[0]+'px'
+ elements.dialog.style.top = dp[1]+'px'
+ document.getElementsByTagName('body')[0].appendChild(elements.dialog)
+ }
+
+
+ function hideDialog() {
+ var b = document.getElementsByTagName('body')[0]
+ b.removeChild(elements.dialog)
+
+ instance = null
+ }
+
+
+ function updateDialogPointers() {
+ // update hue/value cross
+ var x = Math.round(instance.color.hue/6*HVSize[0])
+ var y = Math.round((1-instance.color.value)*(HVSize[1]-1))
+ elements.hv.style.backgroundPosition =
+ (padding-Math.floor(HVCrossSize[0]/2)+x)+'px '+
+ (padding-Math.floor(HVCrossSize[1]/2)+y)+'px'
+
+ // update saturation arrow
+ var y = Math.round((1-instance.color.saturation)*HVSize[1])
+ elements.s.style.backgroundPosition = '0 '+(padding-Math.floor(SArrowSize[1]/2)+y)+'px'
+ }
+
+
+ function updateDialogSaturation() {
+ // update saturation gradient
+ var r, g, b, s, c = [ instance.color.value, 0, 0 ]
+ var i = Math.floor(instance.color.hue)
+ var f = i%2 ? instance.color.hue-i : 1-(instance.color.hue-i)
+ switch(i) {
+ case 6:
+ case 0: r=0;g=1;b=2; break
+ case 1: r=1;g=0;b=2; break
+ case 2: r=2;g=0;b=1; break
+ case 3: r=2;g=1;b=0; break
+ case 4: r=1;g=2;b=0; break
+ case 5: r=0;g=2;b=1; break
+ }
+ var gr = elements.grad.childNodes
+ for(var i=0; i<gr.length; i++) {
+ s = 1 - 1/(gr.length-1)*i
+ c[1] = c[0] * (1 - s*f)
+ c[2] = c[0] * (1 - s)
+ gr[i].style.backgroundColor = 'rgb('+(c[r]*100)+'%,'+(c[g]*100)+'%,'+(c[b]*100)+'%)'
+ }
+ }
+
+
+ function bindInputs() {
+ var onfocus = function() {
+ if(instance && instance.preserve) {
+ instance.preserve = false
+ } else {
+ showDialog(this)
+ }
+ }
+ var onblur = function() {
+ if(instance && instance.preserve) return
+
+ var This = this
+ var Id = instanceId
+ setTimeout(function() {
+ if(instance && instance.preserve) return
+
+ if(instance && instanceId == Id) hideDialog() // if dialog hasn't been already shown by another instance
+ updateInput(This, new color(This.value), This.value)
+ }, 0)
+ }
+ var setcolor = function(str) {
+ var c = new color(str)
+ updateInput(this, c, str)
+ if(instance && instance.input == this) {
+ instance.color = c
+ updateDialogPointers()
+ updateDialogSaturation()
+ }
+ }
+
+ var e = document.getElementsByTagName('input')
+ var matchClass = new RegExp('\\s'+bindClass+'\\s')
+
+ for(var i=0; i<e.length; i++) {
+ if(e[i].type == 'text' && matchClass.test(' '+e[i].className+' ')) {
+
+ e[i].originalStyle = {
+ 'color' : e[i].style.color,
+ 'backgroundColor' : e[i].style.backgroundColor
+ }
+ e[i].setAttribute('autocomplete', 'off')
+ e[i].onfocus = onfocus
+ e[i].onblur = onblur
+ e[i].setcolor = setcolor
+
+ updateInput(e[i], new color(e[i].value), e[i].value)
+ }
+ }
+ }
+
+
+ function updateInput(e, color, realValue) {
+ if(allowEmpty && realValue != null && !/^\s*#?([0-9A-F]{3}([0-9A-F]{3})?)\s*$/i.test(realValue)) {
+ e.value = ''
+ if(reflectOnBackground) {
+ e.style.backgroundColor = e.originalStyle.backgroundColor
+ e.style.color = e.originalStyle.color
+ }
+ } else {
+ e.value = (leadingHash?'#':'')+color
+ if(reflectOnBackground) {
+ e.style.backgroundColor = '#'+color
+ e.style.color =
+ 0.212671 * color.red +
+ 0.715160 * color.green +
+ 0.072169 * color.blue
+ < 0.5 ? '#FFF' : '#000'
+ }
+ }
+ }
+
+
+ function setStyle(e, properties) {
+ for(var p in properties) eval('e.style.'+p+' = properties[p]')
+ }
+
+
+ function getElementPos(e) {
+ var x=0, y=0
+ if(e.offsetParent) {
+ do {
+ x += e.offsetLeft
+ y += e.offsetTop
+ } while(e = e.offsetParent)
+ }
+ return [ x, y ]
+ }
+
+
+ function getMousePos(e) {
+ if(!e) var e = window.event
+ var x=0, y=0
+ if(typeof e.pageX == 'number') {
+ x = e.pageX
+ y = e.pageY
+ } else if(typeof e.clientX == 'number') {
+ x = e.clientX+document.documentElement.scrollLeft+document.body.scrollLeft
+ y = e.clientY+document.documentElement.scrollTop+document.body.scrollTop
+ }
+ return [ x, y ]
+ }
+
+
+ function getScrollPos() {
+ var x=0, y=0
+ if(typeof window.pageYOffset == 'number') {
+ x = window.pageXOffset
+ y = window.pageYOffset
+ } else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) {
+ x = document.body.scrollLeft
+ y = document.body.scrollTop
+ } else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
+ x = document.documentElement.scrollLeft
+ y = document.documentElement.scrollTop
+ }
+ return [ x, y ]
+ }
+
+
+ function getWindowSize() {
+ var w=0, h=0
+ if(typeof window.innerWidth == 'number') {
+ w = window.innerWidth
+ h = window.innerHeight
+ } else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
+ w = document.documentElement.clientWidth
+ h = document.documentElement.clientHeight
+ } else if(document.body && (document.body.clientWidth || document.body.clientHeight)) {
+ w = document.body.clientWidth
+ h = document.body.clientHeight
+ }
+ return [ w, h ]
+ }
+
+
+ function color(hex) {
+
+ this.hue = 0 // 0-6
+ this.saturation = 0 // 0-1
+ this.value = 0 // 0-1
+
+ this.red = 0 // 0-1
+ this.green = 0 // 0-1
+ this.blue = 0 // 0-1
+
+ this.setRGB = function(r, g, b) { // null = don't change
+ var hsv = RGB_HSV(
+ r==null ? this.red : (this.red=r),
+ g==null ? this.green : (this.green=g),
+ b==null ? this.blue : (this.blue=b)
+ )
+ if(hsv[0] != null) {
+ this.hue = hsv[0]
+ }
+ this.saturation = hsv[1]
+ this.value = hsv[2]
+ }
+
+ this.setHSV = function(h, s, v) { // null = don't change
+ var rgb = HSV_RGB(
+ h==null ? this.hue : (this.hue=h),
+ s==null ? this.saturation : (this.saturation=s),
+ v==null ? this.value : (this.value=v)
+ )
+ this.red = rgb[0]
+ this.green = rgb[1]
+ this.blue = rgb[2]
+ }
+
+ function RGB_HSV(r, g, b) {
+ var n = Math.min(Math.min(r,g),b)
+ var v = Math.max(Math.max(r,g),b)
+ var m = v - n
+ if(m == 0) return [ null, 0, v ]
+ var h = r==n ? 3+(b-g)/m : (g==n ? 5+(r-b)/m : 1+(g-r)/m)
+ return [ h==6?0:h, m/v, v ]
+ }
+
+ function HSV_RGB(h, s, v) {
+ if(h == null) return [ v, v, v ]
+ var i = Math.floor(h)
+ var f = i%2 ? h-i : 1-(h-i)
+ var m = v * (1 - s)
+ var n = v * (1 - s*f)
+ switch(i) {
+ case 6:
+ case 0: return [ v, n, m ]
+ case 1: return [ n, v, m ]
+ case 2: return [ m, v, n ]
+ case 3: return [ m, n, v ]
+ case 4: return [ n, m, v ]
+ case 5: return [ v, m, n ]
+ }
+ }
+
+ this.setString = function(hex) {
+ var m = hex.match(/^\s*#?([0-9A-F]{3}([0-9A-F]{3})?)\s*$/i)
+ if(m) {
+ if(m[1].length==6) { // 6x hex
+ this.setRGB(
+ parseInt(m[1].substr(0,2),16)/255,
+ parseInt(m[1].substr(2,2),16)/255,
+ parseInt(m[1].substr(4,2),16)/255
+ )
+ } else { // 3x hex
+ this.setRGB(
+ parseInt(m[1].charAt(0)+m[1].charAt(0),16)/255,
+ parseInt(m[1].charAt(1)+m[1].charAt(1),16)/255,
+ parseInt(m[1].charAt(2)+m[1].charAt(2),16)/255
+ )
+ }
+ } else {
+ this.setRGB(0,0,0)
+ return false
+ }
+ }
+
+ this.toString = function() {
+ var r = Math.round(this.red * 255).toString(16)
+ var g = Math.round(this.green * 255).toString(16)
+ var b = Math.round(this.blue * 255).toString(16)
+ return (
+ (r.length==1 ? '0'+r : r)+
+ (g.length==1 ? '0'+g : g)+
+ (b.length==1 ? '0'+b : b)
+ ).toUpperCase()
+ }
+
+ if(hex) {
+ this.setString(hex)
+ }
+
+ }
+
+
+ function URI(uri) { // See RFC3986
+
+ this.scheme = null
+ this.authority = null
+ this.path = ''
+ this.query = null
+ this.fragment = null
+
+ this.parse = function(uri) {
+ var m = uri.match(/^(([A-Za-z][0-9A-Za-z+.-]*)(:))?((\/\/)([^\/?#]*))?([^?#]*)((\?)([^#]*))?((#)(.*))?/)
+ this.scheme = m[3] ? m[2] : null
+ this.authority = m[5] ? m[6] : null
+ this.path = m[7]
+ this.query = m[9] ? m[10] : null
+ this.fragment = m[12] ? m[13] : null
+ return this
+ }
+
+ this.toString = function() {
+ var result = ''
+ if(this.scheme != null) result = result + this.scheme + ':'
+ if(this.authority != null) result = result +'//'+ this.authority
+ if(this.path != null) result = result + this.path
+ if(this.query != null) result = result + '?'+ this.query
+ if(this.fragment != null) result = result + '#'+ this.fragment
+ return result
+ }
+
+ this.toAbsolute = function(base) {
+ var base = new URI(base)
+ var r = this
+ var t = new URI
+
+ if(base.scheme == null) return false
+
+ if(r.scheme != null && r.scheme.toLowerCase() == base.scheme.toLowerCase()) {
+ r.scheme = null
+ }
+
+ if(r.scheme != null) {
+ t.scheme = r.scheme
+ t.authority = r.authority
+ t.path = removeDotSegments(r.path)
+ t.query = r.query
+ } else {
+ if(r.authority != null) {
+ t.authority = r.authority
+ t.path = removeDotSegments(r.path)
+ t.query = r.query
+ } else {
+ if(r.path == '') {
+ t.path = base.path
+ if(r.query != null) {
+ t.query = r.query
+ } else {
+ t.query = base.query
+ }
+ } else {
+ if(r.path.substr(0,1) == '/') {
+ t.path = removeDotSegments(r.path)
+ } else {
+ if(base.authority != null && base.path == '') {
+ t.path = '/'+r.path
+ } else {
+ t.path = base.path.replace(/[^\/]+$/,'')+r.path
+ }
+ t.path = removeDotSegments(t.path)
+ }
+ t.query = r.query
+ }
+ t.authority = base.authority
+ }
+ t.scheme = base.scheme
+ }
+ t.fragment = r.fragment
+
+ return t
+ }
+
+ function removeDotSegments(path) {
+ var out = ''
+ while(path) {
+ if(path.substr(0,3)=='../' || path.substr(0,2)=='./') {
+ path = path.replace(/^\.+/,'').substr(1)
+ } else if(path.substr(0,3)=='/./' || path=='/.') {
+ path = '/'+path.substr(3)
+ } else if(path.substr(0,4)=='/../' || path=='/..') {
+ path = '/'+path.substr(4)
+ out = out.replace(/\/?[^\/]*$/, '')
+ } else if(path=='.' || path=='..') {
+ path = ''
+ } else {
+ var rm = path.match(/^\/?[^\/]*/)[0]
+ path = path.substr(rm.length)
+ out = out + rm
+ }
+ }
+ return out
+ }
+
+ if(uri) {
+ this.parse(uri)
+ }
+
+ }
+
+ // init
+ createDialog()
+ bindInputs()
+
+}
Binary file src/web/app/themes/atahualpa/options/jscolor/s.gif has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/options/mootools-for-textarea.js Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,294 @@
+//MooTools, <http://mootools.net>, My Object Oriented (JavaScript) Tools. Copyright (c) 2006-2008 Valerio Proietti, <http://mad4milk.net>, MIT Style License.
+
+var MooTools={version:"1.2.1",build:"0d4845aab3d9a4fdee2f0d4a6dd59210e4b697cf"};var Native=function(K){K=K||{};var A=K.name;var I=K.legacy;var B=K.protect;
+var C=K.implement;var H=K.generics;var F=K.initialize;var G=K.afterImplement||function(){};var D=F||I;H=H!==false;D.constructor=Native;D.$family={name:"native"};
+if(I&&F){D.prototype=I.prototype;}D.prototype.constructor=D;if(A){var E=A.toLowerCase();D.prototype.$family={name:E};Native.typize(D,E);}var J=function(N,L,O,M){if(!B||M||!N.prototype[L]){N.prototype[L]=O;
+}if(H){Native.genericize(N,L,B);}G.call(N,L,O);return N;};D.alias=function(N,L,O){if(typeof N=="string"){if((N=this.prototype[N])){return J(this,L,N,O);
+}}for(var M in N){this.alias(M,N[M],L);}return this;};D.implement=function(M,L,O){if(typeof M=="string"){return J(this,M,L,O);}for(var N in M){J(this,N,M[N],L);
+}return this;};if(C){D.implement(C);}return D;};Native.genericize=function(B,C,A){if((!A||!B[C])&&typeof B.prototype[C]=="function"){B[C]=function(){var D=Array.prototype.slice.call(arguments);
+return B.prototype[C].apply(D.shift(),D);};}};Native.implement=function(D,C){for(var B=0,A=D.length;B<A;B++){D[B].implement(C);}};Native.typize=function(A,B){if(!A.type){A.type=function(C){return($type(C)===B);
+};}};(function(){var A={Array:Array,Date:Date,Function:Function,Number:Number,RegExp:RegExp,String:String};for(var G in A){new Native({name:G,initialize:A[G],protect:true});
+}var D={"boolean":Boolean,"native":Native,object:Object};for(var C in D){Native.typize(D[C],C);}var F={Array:["concat","indexOf","join","lastIndexOf","pop","push","reverse","shift","slice","sort","splice","toString","unshift","valueOf"],String:["charAt","charCodeAt","concat","indexOf","lastIndexOf","match","replace","search","slice","split","substr","substring","toLowerCase","toUpperCase","valueOf"]};
+for(var E in F){for(var B=F[E].length;B--;){Native.genericize(window[E],F[E][B],true);}}})();var Hash=new Native({name:"Hash",initialize:function(A){if($type(A)=="hash"){A=$unlink(A.getClean());
+}for(var B in A){this[B]=A[B];}return this;}});Hash.implement({forEach:function(B,C){for(var A in this){if(this.hasOwnProperty(A)){B.call(C,this[A],A,this);
+}}},getClean:function(){var B={};for(var A in this){if(this.hasOwnProperty(A)){B[A]=this[A];}}return B;},getLength:function(){var B=0;for(var A in this){if(this.hasOwnProperty(A)){B++;
+}}return B;}});Hash.alias("forEach","each");Array.implement({forEach:function(C,D){for(var B=0,A=this.length;B<A;B++){C.call(D,this[B],B,this);}}});Array.alias("forEach","each");
+function $A(C){if(C.item){var D=[];for(var B=0,A=C.length;B<A;B++){D[B]=C[B];}return D;}return Array.prototype.slice.call(C);}function $arguments(A){return function(){return arguments[A];
+};}function $chk(A){return !!(A||A===0);}function $clear(A){clearTimeout(A);clearInterval(A);return null;}function $defined(A){return(A!=undefined);}function $each(C,B,D){var A=$type(C);
+((A=="arguments"||A=="collection"||A=="array")?Array:Hash).each(C,B,D);}function $empty(){}function $extend(C,A){for(var B in (A||{})){C[B]=A[B];}return C;
+}function $H(A){return new Hash(A);}function $lambda(A){return(typeof A=="function")?A:function(){return A;};}function $merge(){var E={};for(var D=0,A=arguments.length;
+D<A;D++){var B=arguments[D];if($type(B)!="object"){continue;}for(var C in B){var G=B[C],F=E[C];E[C]=(F&&$type(G)=="object"&&$type(F)=="object")?$merge(F,G):$unlink(G);
+}}return E;}function $pick(){for(var B=0,A=arguments.length;B<A;B++){if(arguments[B]!=undefined){return arguments[B];}}return null;}function $random(B,A){return Math.floor(Math.random()*(A-B+1)+B);
+}function $splat(B){var A=$type(B);return(A)?((A!="array"&&A!="arguments")?[B]:B):[];}var $time=Date.now||function(){return +new Date;};function $try(){for(var B=0,A=arguments.length;
+B<A;B++){try{return arguments[B]();}catch(C){}}return null;}function $type(A){if(A==undefined){return false;}if(A.$family){return(A.$family.name=="number"&&!isFinite(A))?false:A.$family.name;
+}if(A.nodeName){switch(A.nodeType){case 1:return"element";case 3:return(/\S/).test(A.nodeValue)?"textnode":"whitespace";}}else{if(typeof A.length=="number"){if(A.callee){return"arguments";
+}else{if(A.item){return"collection";}}}}return typeof A;}function $unlink(C){var B;switch($type(C)){case"object":B={};for(var E in C){B[E]=$unlink(C[E]);
+}break;case"hash":B=new Hash(C);break;case"array":B=[];for(var D=0,A=C.length;D<A;D++){B[D]=$unlink(C[D]);}break;default:return C;}return B;}var Browser=$merge({Engine:{name:"unknown",version:0},Platform:{name:(window.orientation!=undefined)?"ipod":(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase()},Features:{xpath:!!(document.evaluate),air:!!(window.runtime),query:!!(document.querySelector)},Plugins:{},Engines:{presto:function(){return(!window.opera)?false:((arguments.callee.caller)?960:((document.getElementsByClassName)?950:925));
+},trident:function(){return(!window.ActiveXObject)?false:((window.XMLHttpRequest)?5:4);},webkit:function(){return(navigator.taintEnabled)?false:((Browser.Features.xpath)?((Browser.Features.query)?525:420):419);
+},gecko:function(){return(document.getBoxObjectFor==undefined)?false:((document.getElementsByClassName)?19:18);}}},Browser||{});Browser.Platform[Browser.Platform.name]=true;
+Browser.detect=function(){for(var B in this.Engines){var A=this.Engines[B]();if(A){this.Engine={name:B,version:A};this.Engine[B]=this.Engine[B+A]=true;
+break;}}return{name:B,version:A};};Browser.detect();Browser.Request=function(){return $try(function(){return new XMLHttpRequest();},function(){return new ActiveXObject("MSXML2.XMLHTTP");
+});};Browser.Features.xhr=!!(Browser.Request());Browser.Plugins.Flash=(function(){var A=($try(function(){return navigator.plugins["Shockwave Flash"].description;
+},function(){return new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version");})||"0 r0").match(/\d+/g);return{version:parseInt(A[0]||0+"."+A[1]||0),build:parseInt(A[2]||0)};
+})();function $exec(B){if(!B){return B;}if(window.execScript){window.execScript(B);}else{var A=document.createElement("script");A.setAttribute("type","text/javascript");
+A[(Browser.Engine.webkit&&Browser.Engine.version<420)?"innerText":"text"]=B;document.head.appendChild(A);document.head.removeChild(A);}return B;}Native.UID=1;
+var $uid=(Browser.Engine.trident)?function(A){return(A.uid||(A.uid=[Native.UID++]))[0];}:function(A){return A.uid||(A.uid=Native.UID++);};var Window=new Native({name:"Window",legacy:(Browser.Engine.trident)?null:window.Window,initialize:function(A){$uid(A);
+if(!A.Element){A.Element=$empty;if(Browser.Engine.webkit){A.document.createElement("iframe");}A.Element.prototype=(Browser.Engine.webkit)?window["[[DOMElement.prototype]]"]:{};
+}A.document.window=A;return $extend(A,Window.Prototype);},afterImplement:function(B,A){window[B]=Window.Prototype[B]=A;}});Window.Prototype={$family:{name:"window"}};
+new Window(window);var Document=new Native({name:"Document",legacy:(Browser.Engine.trident)?null:window.Document,initialize:function(A){$uid(A);A.head=A.getElementsByTagName("head")[0];
+A.html=A.getElementsByTagName("html")[0];if(Browser.Engine.trident&&Browser.Engine.version<=4){$try(function(){A.execCommand("BackgroundImageCache",false,true);
+});}if(Browser.Engine.trident){A.window.attachEvent("onunload",function(){A.window.detachEvent("onunload",arguments.callee);A.head=A.html=A.window=null;
+});}return $extend(A,Document.Prototype);},afterImplement:function(B,A){document[B]=Document.Prototype[B]=A;}});Document.Prototype={$family:{name:"document"}};
+new Document(document);Array.implement({every:function(C,D){for(var B=0,A=this.length;B<A;B++){if(!C.call(D,this[B],B,this)){return false;}}return true;
+},filter:function(D,E){var C=[];for(var B=0,A=this.length;B<A;B++){if(D.call(E,this[B],B,this)){C.push(this[B]);}}return C;},clean:function(){return this.filter($defined);
+},indexOf:function(C,D){var A=this.length;for(var B=(D<0)?Math.max(0,A+D):D||0;B<A;B++){if(this[B]===C){return B;}}return -1;},map:function(D,E){var C=[];
+for(var B=0,A=this.length;B<A;B++){C[B]=D.call(E,this[B],B,this);}return C;},some:function(C,D){for(var B=0,A=this.length;B<A;B++){if(C.call(D,this[B],B,this)){return true;
+}}return false;},associate:function(C){var D={},B=Math.min(this.length,C.length);for(var A=0;A<B;A++){D[C[A]]=this[A];}return D;},link:function(C){var A={};
+for(var E=0,B=this.length;E<B;E++){for(var D in C){if(C[D](this[E])){A[D]=this[E];delete C[D];break;}}}return A;},contains:function(A,B){return this.indexOf(A,B)!=-1;
+},extend:function(C){for(var B=0,A=C.length;B<A;B++){this.push(C[B]);}return this;},getLast:function(){return(this.length)?this[this.length-1]:null;},getRandom:function(){return(this.length)?this[$random(0,this.length-1)]:null;
+},include:function(A){if(!this.contains(A)){this.push(A);}return this;},combine:function(C){for(var B=0,A=C.length;B<A;B++){this.include(C[B]);}return this;
+},erase:function(B){for(var A=this.length;A--;A){if(this[A]===B){this.splice(A,1);}}return this;},empty:function(){this.length=0;return this;},flatten:function(){var D=[];
+for(var B=0,A=this.length;B<A;B++){var C=$type(this[B]);if(!C){continue;}D=D.concat((C=="array"||C=="collection"||C=="arguments")?Array.flatten(this[B]):this[B]);
+}return D;},hexToRgb:function(B){if(this.length!=3){return null;}var A=this.map(function(C){if(C.length==1){C+=C;}return C.toInt(16);});return(B)?A:"rgb("+A+")";
+},rgbToHex:function(D){if(this.length<3){return null;}if(this.length==4&&this[3]==0&&!D){return"transparent";}var B=[];for(var A=0;A<3;A++){var C=(this[A]-0).toString(16);
+B.push((C.length==1)?"0"+C:C);}return(D)?B:"#"+B.join("");}});Function.implement({extend:function(A){for(var B in A){this[B]=A[B];}return this;},create:function(B){var A=this;
+B=B||{};return function(D){var C=B.arguments;C=(C!=undefined)?$splat(C):Array.slice(arguments,(B.event)?1:0);if(B.event){C=[D||window.event].extend(C);
+}var E=function(){return A.apply(B.bind||null,C);};if(B.delay){return setTimeout(E,B.delay);}if(B.periodical){return setInterval(E,B.periodical);}if(B.attempt){return $try(E);
+}return E();};},run:function(A,B){return this.apply(B,$splat(A));},pass:function(A,B){return this.create({bind:B,arguments:A});},bind:function(B,A){return this.create({bind:B,arguments:A});
+},bindWithEvent:function(B,A){return this.create({bind:B,arguments:A,event:true});},attempt:function(A,B){return this.create({bind:B,arguments:A,attempt:true})();
+},delay:function(B,C,A){return this.create({bind:C,arguments:A,delay:B})();},periodical:function(C,B,A){return this.create({bind:B,arguments:A,periodical:C})();
+}});Number.implement({limit:function(B,A){return Math.min(A,Math.max(B,this));},round:function(A){A=Math.pow(10,A||0);return Math.round(this*A)/A;},times:function(B,C){for(var A=0;
+A<this;A++){B.call(C,A,this);}},toFloat:function(){return parseFloat(this);},toInt:function(A){return parseInt(this,A||10);}});Number.alias("times","each");
+(function(B){var A={};B.each(function(C){if(!Number[C]){A[C]=function(){return Math[C].apply(null,[this].concat($A(arguments)));};}});Number.implement(A);
+})(["abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","sin","sqrt","tan"]);String.implement({test:function(A,B){return((typeof A=="string")?new RegExp(A,B):A).test(this);
+},contains:function(A,B){return(B)?(B+this+B).indexOf(B+A+B)>-1:this.indexOf(A)>-1;},trim:function(){return this.replace(/^\s+|\s+$/g,"");},clean:function(){return this.replace(/\s+/g," ").trim();
+},camelCase:function(){return this.replace(/-\D/g,function(A){return A.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/[A-Z]/g,function(A){return("-"+A.charAt(0).toLowerCase());
+});},capitalize:function(){return this.replace(/\b[a-z]/g,function(A){return A.toUpperCase();});},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1");
+},toInt:function(A){return parseInt(this,A||10);},toFloat:function(){return parseFloat(this);},hexToRgb:function(B){var A=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
+return(A)?A.slice(1).hexToRgb(B):null;},rgbToHex:function(B){var A=this.match(/\d{1,3}/g);return(A)?A.rgbToHex(B):null;},stripScripts:function(B){var A="";
+var C=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(){A+=arguments[1]+"\n";return"";});if(B===true){$exec(A);}else{if($type(B)=="function"){B(A,C);
+}}return C;},substitute:function(A,B){return this.replace(B||(/\\?\{([^{}]+)\}/g),function(D,C){if(D.charAt(0)=="\\"){return D.slice(1);}return(A[C]!=undefined)?A[C]:"";
+});}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(B){for(var A in this){if(this.hasOwnProperty(A)&&this[A]===B){return A;}}return null;
+},hasValue:function(A){return(Hash.keyOf(this,A)!==null);},extend:function(A){Hash.each(A,function(C,B){Hash.set(this,B,C);},this);return this;},combine:function(A){Hash.each(A,function(C,B){Hash.include(this,B,C);
+},this);return this;},erase:function(A){if(this.hasOwnProperty(A)){delete this[A];}return this;},get:function(A){return(this.hasOwnProperty(A))?this[A]:null;
+},set:function(A,B){if(!this[A]||this.hasOwnProperty(A)){this[A]=B;}return this;},empty:function(){Hash.each(this,function(B,A){delete this[A];},this);
+return this;},include:function(B,C){var A=this[B];if(A==undefined){this[B]=C;}return this;},map:function(B,C){var A=new Hash;Hash.each(this,function(E,D){A.set(D,B.call(C,E,D,this));
+},this);return A;},filter:function(B,C){var A=new Hash;Hash.each(this,function(E,D){if(B.call(C,E,D,this)){A.set(D,E);}},this);return A;},every:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&!B.call(C,this[A],A)){return false;
+}}return true;},some:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&B.call(C,this[A],A)){return true;}}return false;},getKeys:function(){var A=[];
+Hash.each(this,function(C,B){A.push(B);});return A;},getValues:function(){var A=[];Hash.each(this,function(B){A.push(B);});return A;},toQueryString:function(A){var B=[];
+Hash.each(this,function(F,E){if(A){E=A+"["+E+"]";}var D;switch($type(F)){case"object":D=Hash.toQueryString(F,E);break;case"array":var C={};F.each(function(H,G){C[G]=H;
+});D=Hash.toQueryString(C,E);break;default:D=E+"="+encodeURIComponent(F);}if(F!=undefined){B.push(D);}});return B.join("&");}});Hash.alias({keyOf:"indexOf",hasValue:"contains"});
+var Event=new Native({name:"Event",initialize:function(A,F){F=F||window;var K=F.document;A=A||F.event;if(A.$extended){return A;}this.$extended=true;var J=A.type;
+var G=A.target||A.srcElement;while(G&&G.nodeType==3){G=G.parentNode;}if(J.test(/key/)){var B=A.which||A.keyCode;var M=Event.Keys.keyOf(B);if(J=="keydown"){var D=B-111;
+if(D>0&&D<13){M="f"+D;}}M=M||String.fromCharCode(B).toLowerCase();}else{if(J.match(/(click|mouse|menu)/i)){K=(!K.compatMode||K.compatMode=="CSS1Compat")?K.html:K.body;
+var I={x:A.pageX||A.clientX+K.scrollLeft,y:A.pageY||A.clientY+K.scrollTop};var C={x:(A.pageX)?A.pageX-F.pageXOffset:A.clientX,y:(A.pageY)?A.pageY-F.pageYOffset:A.clientY};
+if(J.match(/DOMMouseScroll|mousewheel/)){var H=(A.wheelDelta)?A.wheelDelta/120:-(A.detail||0)/3;}var E=(A.which==3)||(A.button==2);var L=null;if(J.match(/over|out/)){switch(J){case"mouseover":L=A.relatedTarget||A.fromElement;
+break;case"mouseout":L=A.relatedTarget||A.toElement;}if(!(function(){while(L&&L.nodeType==3){L=L.parentNode;}return true;}).create({attempt:Browser.Engine.gecko})()){L=false;
+}}}}return $extend(this,{event:A,type:J,page:I,client:C,rightClick:E,wheel:H,relatedTarget:L,target:G,code:B,key:M,shift:A.shiftKey,control:A.ctrlKey,alt:A.altKey,meta:A.metaKey});
+}});Event.Keys=new Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Event.implement({stop:function(){return this.stopPropagation().preventDefault();
+},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation();}else{this.event.cancelBubble=true;}return this;},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault();
+}else{this.event.returnValue=false;}return this;}});var Class=new Native({name:"Class",initialize:function(B){B=B||{};var A=function(){for(var E in this){if($type(this[E])!="function"){this[E]=$unlink(this[E]);
+}}this.constructor=A;if(Class.prototyping){return this;}var D=(this.initialize)?this.initialize.apply(this,arguments):this;if(this.options&&this.options.initialize){this.options.initialize.call(this);
+}return D;};for(var C in Class.Mutators){if(!B[C]){continue;}B=Class.Mutators[C](B,B[C]);delete B[C];}$extend(A,this);A.constructor=Class;A.prototype=B;
+return A;}});Class.Mutators={Extends:function(C,A){Class.prototyping=A.prototype;var B=new A;delete B.parent;B=Class.inherit(B,C);delete Class.prototyping;
+return B;},Implements:function(A,B){$splat(B).each(function(C){Class.prototying=C;$extend(A,($type(C)=="class")?new C:C);delete Class.prototyping;});return A;
+}};Class.extend({inherit:function(B,E){var A=arguments.callee.caller;for(var D in E){var C=E[D];var G=B[D];var F=$type(C);if(G&&F=="function"){if(C!=G){if(A){C.__parent=G;
+B[D]=C;}else{Class.override(B,D,C);}}}else{if(F=="object"){B[D]=$merge(G,C);}else{B[D]=C;}}}if(A){B.parent=function(){return arguments.callee.caller.__parent.apply(this,arguments);
+};}return B;},override:function(B,A,E){var D=Class.prototyping;if(D&&B[A]!=D[A]){D=null;}var C=function(){var F=this.parent;this.parent=D?D[A]:B[A];var G=E.apply(this,arguments);
+this.parent=F;return G;};B[A]=C;}});Class.implement({implement:function(){var A=this.prototype;$each(arguments,function(B){Class.inherit(A,B);});return this;
+}});var Chain=new Class({$chain:[],chain:function(){this.$chain.extend(Array.flatten(arguments));return this;},callChain:function(){return(this.$chain.length)?this.$chain.shift().apply(this,arguments):false;
+},clearChain:function(){this.$chain.empty();return this;}});var Events=new Class({$events:{},addEvent:function(C,B,A){C=Events.removeOn(C);if(B!=$empty){this.$events[C]=this.$events[C]||[];
+this.$events[C].include(B);if(A){B.internal=true;}}return this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);}return this;},fireEvent:function(C,B,A){C=Events.removeOn(C);
+if(!this.$events||!this.$events[C]){return this;}this.$events[C].each(function(D){D.create({bind:this,delay:A,"arguments":B})();},this);return this;},removeEvent:function(B,A){B=Events.removeOn(B);
+if(!this.$events[B]){return this;}if(!A.internal){this.$events[B].erase(A);}return this;},removeEvents:function(C){if($type(C)=="object"){for(var D in C){this.removeEvent(D,C[D]);
+}return this;}if(C){C=Events.removeOn(C);}for(var D in this.$events){if(C&&C!=D){continue;}var B=this.$events[D];for(var A=B.length;A--;A){this.removeEvent(D,B[A]);
+}}return this;}});Events.removeOn=function(A){return A.replace(/^on([A-Z])/,function(B,C){return C.toLowerCase();});};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments));
+if(!this.addEvent){return this;}for(var A in this.options){if($type(this.options[A])!="function"||!(/^on[A-Z]/).test(A)){continue;}this.addEvent(A,this.options[A]);
+delete this.options[A];}return this;}});var Element=new Native({name:"Element",legacy:window.Element,initialize:function(A,B){var C=Element.Constructors.get(A);
+if(C){return C(B);}if(typeof A=="string"){return document.newElement(A,B);}return $(A).set(B);},afterImplement:function(A,B){Element.Prototype[A]=B;if(Array[A]){return ;
+}Elements.implement(A,function(){var C=[],G=true;for(var E=0,D=this.length;E<D;E++){var F=this[E][A].apply(this[E],arguments);C.push(F);if(G){G=($type(F)=="element");
+}}return(G)?new Elements(C):C;});}});Element.Prototype={$family:{name:"element"}};Element.Constructors=new Hash;var IFrame=new Native({name:"IFrame",generics:false,initialize:function(){var E=Array.link(arguments,{properties:Object.type,iframe:$defined});
+var C=E.properties||{};var B=$(E.iframe)||false;var D=C.onload||$empty;delete C.onload;C.id=C.name=$pick(C.id,C.name,B.id,B.name,"IFrame_"+$time());B=new Element(B||"iframe",C);
+var A=function(){var F=$try(function(){return B.contentWindow.location.host;});if(F&&F==window.location.host){var G=new Window(B.contentWindow);new Document(B.contentWindow.document);
+$extend(G.Element.prototype,Element.Prototype);}D.call(B.contentWindow,B.contentWindow.document);};(window.frames[C.id])?A():B.addListener("load",A);return B;
+}});var Elements=new Native({initialize:function(F,B){B=$extend({ddup:true,cash:true},B);F=F||[];if(B.ddup||B.cash){var G={},E=[];for(var C=0,A=F.length;
+C<A;C++){var D=$.element(F[C],!B.cash);if(B.ddup){if(G[D.uid]){continue;}G[D.uid]=true;}E.push(D);}F=E;}return(B.cash)?$extend(F,this):F;}});Elements.implement({filter:function(A,B){if(!A){return this;
+}return new Elements(Array.filter(this,(typeof A=="string")?function(C){return C.match(A);}:A,B));}});Document.implement({newElement:function(A,B){if(Browser.Engine.trident&&B){["name","type","checked"].each(function(C){if(!B[C]){return ;
+}A+=" "+C+'="'+B[C]+'"';if(C!="checked"){delete B[C];}});A="<"+A+">";}return $.element(this.createElement(A)).set(B);},newTextNode:function(A){return this.createTextNode(A);
+},getDocument:function(){return this;},getWindow:function(){return this.window;}});Window.implement({$:function(B,C){if(B&&B.$family&&B.uid){return B;}var A=$type(B);
+return($[A])?$[A](B,C,this.document):null;},$$:function(A){if(arguments.length==1&&typeof A=="string"){return this.document.getElements(A);}var F=[];var C=Array.flatten(arguments);
+for(var D=0,B=C.length;D<B;D++){var E=C[D];switch($type(E)){case"element":F.push(E);break;case"string":F.extend(this.document.getElements(E,true));}}return new Elements(F);
+},getDocument:function(){return this.document;},getWindow:function(){return this;}});$.string=function(C,B,A){C=A.getElementById(C);return(C)?$.element(C,B):null;
+};$.element=function(A,D){$uid(A);if(!D&&!A.$family&&!(/^object|embed$/i).test(A.tagName)){var B=Element.Prototype;for(var C in B){A[C]=B[C];}}return A;
+};$.object=function(B,C,A){if(B.toElement){return $.element(B.toElement(A),C);}return null;};$.textnode=$.whitespace=$.window=$.document=$arguments(0);
+Native.implement([Element,Document],{getElement:function(A,B){return $(this.getElements(A,true)[0]||null,B);},getElements:function(A,D){A=A.split(",");
+var C=[];var B=(A.length>1);A.each(function(E){var F=this.getElementsByTagName(E.trim());(B)?C.extend(F):C=F;},this);return new Elements(C,{ddup:B,cash:!D});
+}});(function(){var H={},F={};var I={input:"checked",option:"selected",textarea:(Browser.Engine.webkit&&Browser.Engine.version<420)?"innerHTML":"value"};
+var C=function(L){return(F[L]||(F[L]={}));};var G=function(N,L){if(!N){return ;}var M=N.uid;if(Browser.Engine.trident){if(N.clearAttributes){var P=L&&N.cloneNode(false);
+N.clearAttributes();if(P){N.mergeAttributes(P);}}else{if(N.removeEvents){N.removeEvents();}}if((/object/i).test(N.tagName)){for(var O in N){if(typeof N[O]=="function"){N[O]=$empty;
+}}Element.dispose(N);}}if(!M){return ;}H[M]=F[M]=null;};var D=function(){Hash.each(H,G);if(Browser.Engine.trident){$A(document.getElementsByTagName("object")).each(G);
+}if(window.CollectGarbage){CollectGarbage();}H=F=null;};var J=function(N,L,S,M,P,R){var O=N[S||L];var Q=[];while(O){if(O.nodeType==1&&(!M||Element.match(O,M))){if(!P){return $(O,R);
+}Q.push(O);}O=O[L];}return(P)?new Elements(Q,{ddup:false,cash:!R}):null;};var E={html:"innerHTML","class":"className","for":"htmlFor",text:(Browser.Engine.trident||(Browser.Engine.webkit&&Browser.Engine.version<420))?"innerText":"textContent"};
+var B=["compact","nowrap","ismap","declare","noshade","checked","disabled","readonly","multiple","selected","noresize","defer"];var K=["value","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","rowSpan","tabIndex","useMap"];
+Hash.extend(E,B.associate(B));Hash.extend(E,K.associate(K.map(String.toLowerCase)));var A={before:function(M,L){if(L.parentNode){L.parentNode.insertBefore(M,L);
+}},after:function(M,L){if(!L.parentNode){return ;}var N=L.nextSibling;(N)?L.parentNode.insertBefore(M,N):L.parentNode.appendChild(M);},bottom:function(M,L){L.appendChild(M);
+},top:function(M,L){var N=L.firstChild;(N)?L.insertBefore(M,N):L.appendChild(M);}};A.inside=A.bottom;Hash.each(A,function(L,M){M=M.capitalize();Element.implement("inject"+M,function(N){L(this,$(N,true));
+return this;});Element.implement("grab"+M,function(N){L($(N,true),this);return this;});});Element.implement({set:function(O,M){switch($type(O)){case"object":for(var N in O){this.set(N,O[N]);
+}break;case"string":var L=Element.Properties.get(O);(L&&L.set)?L.set.apply(this,Array.slice(arguments,1)):this.setProperty(O,M);}return this;},get:function(M){var L=Element.Properties.get(M);
+return(L&&L.get)?L.get.apply(this,Array.slice(arguments,1)):this.getProperty(M);},erase:function(M){var L=Element.Properties.get(M);(L&&L.erase)?L.erase.apply(this):this.removeProperty(M);
+return this;},setProperty:function(M,N){var L=E[M];if(N==undefined){return this.removeProperty(M);}if(L&&B[M]){N=!!N;}(L)?this[L]=N:this.setAttribute(M,""+N);
+return this;},setProperties:function(L){for(var M in L){this.setProperty(M,L[M]);}return this;},getProperty:function(M){var L=E[M];var N=(L)?this[L]:this.getAttribute(M,2);
+return(B[M])?!!N:(L)?N:N||null;},getProperties:function(){var L=$A(arguments);return L.map(this.getProperty,this).associate(L);},removeProperty:function(M){var L=E[M];
+(L)?this[L]=(L&&B[M])?false:"":this.removeAttribute(M);return this;},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this;
+},hasClass:function(L){return this.className.contains(L," ");},addClass:function(L){if(!this.hasClass(L)){this.className=(this.className+" "+L).clean();
+}return this;},removeClass:function(L){this.className=this.className.replace(new RegExp("(^|\\s)"+L+"(?:\\s|$)"),"$1");return this;},toggleClass:function(L){return this.hasClass(L)?this.removeClass(L):this.addClass(L);
+},adopt:function(){Array.flatten(arguments).each(function(L){L=$(L,true);if(L){this.appendChild(L);}},this);return this;},appendText:function(M,L){return this.grab(this.getDocument().newTextNode(M),L);
+},grab:function(M,L){A[L||"bottom"]($(M,true),this);return this;},inject:function(M,L){A[L||"bottom"](this,$(M,true));return this;},replaces:function(L){L=$(L,true);
+L.parentNode.replaceChild(this,L);return this;},wraps:function(M,L){M=$(M,true);return this.replaces(M).grab(M,L);},getPrevious:function(L,M){return J(this,"previousSibling",null,L,false,M);
+},getAllPrevious:function(L,M){return J(this,"previousSibling",null,L,true,M);},getNext:function(L,M){return J(this,"nextSibling",null,L,false,M);},getAllNext:function(L,M){return J(this,"nextSibling",null,L,true,M);
+},getFirst:function(L,M){return J(this,"nextSibling","firstChild",L,false,M);},getLast:function(L,M){return J(this,"previousSibling","lastChild",L,false,M);
+},getParent:function(L,M){return J(this,"parentNode",null,L,false,M);},getParents:function(L,M){return J(this,"parentNode",null,L,true,M);},getChildren:function(L,M){return J(this,"nextSibling","firstChild",L,true,M);
+},getWindow:function(){return this.ownerDocument.window;},getDocument:function(){return this.ownerDocument;},getElementById:function(O,N){var M=this.ownerDocument.getElementById(O);
+if(!M){return null;}for(var L=M.parentNode;L!=this;L=L.parentNode){if(!L){return null;}}return $.element(M,N);},getSelected:function(){return new Elements($A(this.options).filter(function(L){return L.selected;
+}));},getComputedStyle:function(M){if(this.currentStyle){return this.currentStyle[M.camelCase()];}var L=this.getDocument().defaultView.getComputedStyle(this,null);
+return(L)?L.getPropertyValue([M.hyphenate()]):null;},toQueryString:function(){var L=[];this.getElements("input, select, textarea",true).each(function(M){if(!M.name||M.disabled){return ;
+}var N=(M.tagName.toLowerCase()=="select")?Element.getSelected(M).map(function(O){return O.value;}):((M.type=="radio"||M.type=="checkbox")&&!M.checked)?null:M.value;
+$splat(N).each(function(O){if(typeof O!="undefined"){L.push(M.name+"="+encodeURIComponent(O));}});});return L.join("&");},clone:function(O,L){O=O!==false;
+var R=this.cloneNode(O);var N=function(V,U){if(!L){V.removeAttribute("id");}if(Browser.Engine.trident){V.clearAttributes();V.mergeAttributes(U);V.removeAttribute("uid");
+if(V.options){var W=V.options,S=U.options;for(var T=W.length;T--;){W[T].selected=S[T].selected;}}}var X=I[U.tagName.toLowerCase()];if(X&&U[X]){V[X]=U[X];
+}};if(O){var P=R.getElementsByTagName("*"),Q=this.getElementsByTagName("*");for(var M=P.length;M--;){N(P[M],Q[M]);}}N(R,this);return $(R);},destroy:function(){Element.empty(this);
+Element.dispose(this);G(this,true);return null;},empty:function(){$A(this.childNodes).each(function(L){Element.destroy(L);});return this;},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this;
+},hasChild:function(L){L=$(L,true);if(!L){return false;}if(Browser.Engine.webkit&&Browser.Engine.version<420){return $A(this.getElementsByTagName(L.tagName)).contains(L);
+}return(this.contains)?(this!=L&&this.contains(L)):!!(this.compareDocumentPosition(L)&16);},match:function(L){return(!L||(L==this)||(Element.get(this,"tag")==L));
+}});Native.implement([Element,Window,Document],{addListener:function(O,N){if(O=="unload"){var L=N,M=this;N=function(){M.removeListener("unload",N);L();
+};}else{H[this.uid]=this;}if(this.addEventListener){this.addEventListener(O,N,false);}else{this.attachEvent("on"+O,N);}return this;},removeListener:function(M,L){if(this.removeEventListener){this.removeEventListener(M,L,false);
+}else{this.detachEvent("on"+M,L);}return this;},retrieve:function(M,L){var O=C(this.uid),N=O[M];if(L!=undefined&&N==undefined){N=O[M]=L;}return $pick(N);
+},store:function(M,L){var N=C(this.uid);N[M]=L;return this;},eliminate:function(L){var M=C(this.uid);delete M[L];return this;}});window.addListener("unload",D);
+})();Element.Properties=new Hash;Element.Properties.style={set:function(A){this.style.cssText=A;},get:function(){return this.style.cssText;},erase:function(){this.style.cssText="";
+}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase();}};Element.Properties.html=(function(){var C=document.createElement("div");
+var A={table:[1,"<table>","</table>"],select:[1,"<select>","</select>"],tbody:[2,"<table><tbody>","</tbody></table>"],tr:[3,"<table><tbody><tr>","</tr></tbody></table>"]};
+A.thead=A.tfoot=A.tbody;var B={set:function(){var E=Array.flatten(arguments).join("");var F=Browser.Engine.trident&&A[this.get("tag")];if(F){var G=C;G.innerHTML=F[1]+E+F[2];
+for(var D=F[0];D--;){G=G.firstChild;}this.empty().adopt(G.childNodes);}else{this.innerHTML=E;}}};B.erase=B.set;return B;})();if(Browser.Engine.webkit&&Browser.Engine.version<420){Element.Properties.text={get:function(){if(this.innerText){return this.innerText;
+}var A=this.ownerDocument.newElement("div",{html:this.innerHTML}).inject(this.ownerDocument.body);var B=A.innerText;A.destroy();return B;}};}Element.Properties.events={set:function(A){this.addEvents(A);
+}};Native.implement([Element,Window,Document],{addEvent:function(E,G){var H=this.retrieve("events",{});H[E]=H[E]||{keys:[],values:[]};if(H[E].keys.contains(G)){return this;
+}H[E].keys.push(G);var F=E,A=Element.Events.get(E),C=G,I=this;if(A){if(A.onAdd){A.onAdd.call(this,G);}if(A.condition){C=function(J){if(A.condition.call(this,J)){return G.call(this,J);
+}return true;};}F=A.base||F;}var D=function(){return G.call(I);};var B=Element.NativeEvents[F];if(B){if(B==2){D=function(J){J=new Event(J,I.getWindow());
+if(C.call(I,J)===false){J.stop();}};}this.addListener(F,D);}H[E].values.push(D);return this;},removeEvent:function(C,B){var A=this.retrieve("events");if(!A||!A[C]){return this;
+}var F=A[C].keys.indexOf(B);if(F==-1){return this;}A[C].keys.splice(F,1);var E=A[C].values.splice(F,1)[0];var D=Element.Events.get(C);if(D){if(D.onRemove){D.onRemove.call(this,B);
+}C=D.base||C;}return(Element.NativeEvents[C])?this.removeListener(C,E):this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);}return this;
+},removeEvents:function(A){if($type(A)=="object"){for(var C in A){this.removeEvent(C,A[C]);}return this;}var B=this.retrieve("events");if(!B){return this;
+}if(!A){for(var C in B){this.removeEvents(C);}this.eliminate("events");}else{if(B[A]){while(B[A].keys[0]){this.removeEvent(A,B[A].keys[0]);}B[A]=null;}}return this;
+},fireEvent:function(D,B,A){var C=this.retrieve("events");if(!C||!C[D]){return this;}C[D].keys.each(function(E){E.create({bind:this,delay:A,"arguments":B})();
+},this);return this;},cloneEvents:function(D,A){D=$(D);var C=D.retrieve("events");if(!C){return this;}if(!A){for(var B in C){this.cloneEvents(D,B);}}else{if(C[A]){C[A].keys.each(function(E){this.addEvent(A,E);
+},this);}}return this;}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};
+(function(){var A=function(B){var C=B.relatedTarget;if(C==undefined){return true;}if(C===false){return false;}return($type(this)!="document"&&C!=this&&C.prefix!="xul"&&!this.hasChild(C));
+};Element.Events=new Hash({mouseenter:{base:"mouseover",condition:A},mouseleave:{base:"mouseout",condition:A},mousewheel:{base:(Browser.Engine.gecko)?"DOMMouseScroll":"mousewheel"}});
+})();Element.Properties.styles={set:function(A){this.setStyles(A);}};Element.Properties.opacity={set:function(A,B){if(!B){if(A==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden";
+}}else{if(this.style.visibility!="visible"){this.style.visibility="visible";}}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1;}if(Browser.Engine.trident){this.style.filter=(A==1)?"":"alpha(opacity="+A*100+")";
+}this.style.opacity=A;this.store("opacity",A);},get:function(){return this.retrieve("opacity",1);}};Element.implement({setOpacity:function(A){return this.set("opacity",A,true);
+},getOpacity:function(){return this.get("opacity");},setStyle:function(B,A){switch(B){case"opacity":return this.set("opacity",parseFloat(A));case"float":B=(Browser.Engine.trident)?"styleFloat":"cssFloat";
+}B=B.camelCase();if($type(A)!="string"){var C=(Element.Styles.get(B)||"@").split(" ");A=$splat(A).map(function(E,D){if(!C[D]){return"";}return($type(E)=="number")?C[D].replace("@",Math.round(E)):E;
+}).join(" ");}else{if(A==String(Number(A))){A=Math.round(A);}}this.style[B]=A;return this;},getStyle:function(G){switch(G){case"opacity":return this.get("opacity");
+case"float":G=(Browser.Engine.trident)?"styleFloat":"cssFloat";}G=G.camelCase();var A=this.style[G];if(!$chk(A)){A=[];for(var F in Element.ShortStyles){if(G!=F){continue;
+}for(var E in Element.ShortStyles[F]){A.push(this.getStyle(E));}return A.join(" ");}A=this.getComputedStyle(G);}if(A){A=String(A);var C=A.match(/rgba?\([\d\s,]+\)/);
+if(C){A=A.replace(C[0],C[0].rgbToHex());}}if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(A)))){if(G.test(/^(height|width)$/)){var B=(G=="width")?["left","right"]:["top","bottom"],D=0;
+B.each(function(H){D+=this.getStyle("border-"+H+"-width").toInt()+this.getStyle("padding-"+H).toInt();},this);return this["offset"+G.capitalize()]-D+"px";
+}if((Browser.Engine.presto)&&String(A).test("px")){return A;}if(G.test(/(border(.+)Width|margin|padding)/)){return"0px";}}return A;},setStyles:function(B){for(var A in B){this.setStyle(A,B[A]);
+}return this;},getStyles:function(){var A={};Array.each(arguments,function(B){A[B]=this.getStyle(B);},this);return A;}});Element.Styles=new Hash({left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"});
+Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(G){var F=Element.ShortStyles;
+var B=Element.Styles;["margin","padding"].each(function(H){var I=H+G;F[H][I]=B[I]="@px";});var E="border"+G;F.border[E]=B[E]="@px @ rgb(@, @, @)";var D=E+"Width",A=E+"Style",C=E+"Color";
+F[E]={};F.borderWidth[D]=F[E][D]=B[D]="@px";F.borderStyle[A]=F[E][A]=B[A]="@";F.borderColor[C]=F[E][C]=B[C]="rgb(@, @, @)";});(function(){Element.implement({scrollTo:function(H,I){if(B(this)){this.getWindow().scrollTo(H,I);
+}else{this.scrollLeft=H;this.scrollTop=I;}return this;},getSize:function(){if(B(this)){return this.getWindow().getSize();}return{x:this.offsetWidth,y:this.offsetHeight};
+},getScrollSize:function(){if(B(this)){return this.getWindow().getScrollSize();}return{x:this.scrollWidth,y:this.scrollHeight};},getScroll:function(){if(B(this)){return this.getWindow().getScroll();
+}return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var I=this,H={x:0,y:0};while(I&&!B(I)){H.x+=I.scrollLeft;H.y+=I.scrollTop;I=I.parentNode;
+}return H;},getOffsetParent:function(){var H=this;if(B(H)){return null;}if(!Browser.Engine.trident){return H.offsetParent;}while((H=H.parentNode)&&!B(H)){if(D(H,"position")!="static"){return H;
+}}return null;},getOffsets:function(){if(Browser.Engine.trident){var L=this.getBoundingClientRect(),J=this.getDocument().documentElement;return{x:L.left+J.scrollLeft-J.clientLeft,y:L.top+J.scrollTop-J.clientTop};
+}var I=this,H={x:0,y:0};if(B(this)){return H;}while(I&&!B(I)){H.x+=I.offsetLeft;H.y+=I.offsetTop;if(Browser.Engine.gecko){if(!F(I)){H.x+=C(I);H.y+=G(I);
+}var K=I.parentNode;if(K&&D(K,"overflow")!="visible"){H.x+=C(K);H.y+=G(K);}}else{if(I!=this&&Browser.Engine.webkit){H.x+=C(I);H.y+=G(I);}}I=I.offsetParent;
+}if(Browser.Engine.gecko&&!F(this)){H.x-=C(this);H.y-=G(this);}return H;},getPosition:function(K){if(B(this)){return{x:0,y:0};}var L=this.getOffsets(),I=this.getScrolls();
+var H={x:L.x-I.x,y:L.y-I.y};var J=(K&&(K=$(K)))?K.getPosition():{x:0,y:0};return{x:H.x-J.x,y:H.y-J.y};},getCoordinates:function(J){if(B(this)){return this.getWindow().getCoordinates();
+}var H=this.getPosition(J),I=this.getSize();var K={left:H.x,top:H.y,width:I.x,height:I.y};K.right=K.left+K.width;K.bottom=K.top+K.height;return K;},computePosition:function(H){return{left:H.x-E(this,"margin-left"),top:H.y-E(this,"margin-top")};
+},position:function(H){return this.setStyles(this.computePosition(H));}});Native.implement([Document,Window],{getSize:function(){var I=this.getWindow();
+if(Browser.Engine.presto||Browser.Engine.webkit){return{x:I.innerWidth,y:I.innerHeight};}var H=A(this);return{x:H.clientWidth,y:H.clientHeight};},getScroll:function(){var I=this.getWindow();
+var H=A(this);return{x:I.pageXOffset||H.scrollLeft,y:I.pageYOffset||H.scrollTop};},getScrollSize:function(){var I=A(this);var H=this.getSize();return{x:Math.max(I.scrollWidth,H.x),y:Math.max(I.scrollHeight,H.y)};
+},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var H=this.getSize();return{top:0,left:0,bottom:H.y,right:H.x,height:H.y,width:H.x};
+}});var D=Element.getComputedStyle;function E(H,I){return D(H,I).toInt()||0;}function F(H){return D(H,"-moz-box-sizing")=="border-box";}function G(H){return E(H,"border-top-width");
+}function C(H){return E(H,"border-left-width");}function B(H){return(/^(?:body|html)$/i).test(H.tagName);}function A(H){var I=H.getDocument();return(!I.compatMode||I.compatMode=="CSS1Compat")?I.html:I.body;
+}})();Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y;},getWidth:function(){return this.getSize().x;},getScrollTop:function(){return this.getScroll().y;
+},getScrollLeft:function(){return this.getScroll().x;},getScrollHeight:function(){return this.getScrollSize().y;},getScrollWidth:function(){return this.getScrollSize().x;
+},getTop:function(){return this.getPosition().y;},getLeft:function(){return this.getPosition().x;}});Native.implement([Document,Element],{getElements:function(H,G){H=H.split(",");
+var C,E={};for(var D=0,B=H.length;D<B;D++){var A=H[D],F=Selectors.Utils.search(this,A,E);if(D!=0&&F.item){F=$A(F);}C=(D==0)?F:(C.item)?$A(C).concat(F):C.concat(F);
+}return new Elements(C,{ddup:(H.length>1),cash:!G});}});Element.implement({match:function(B){if(!B||(B==this)){return true;}var D=Selectors.Utils.parseTagAndID(B);
+var A=D[0],E=D[1];if(!Selectors.Filters.byID(this,E)||!Selectors.Filters.byTag(this,A)){return false;}var C=Selectors.Utils.parseSelector(B);return(C)?Selectors.Utils.filter(this,C,{}):true;
+}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};
+Selectors.Utils={chk:function(B,C){if(!C){return true;}var A=$uid(B);if(!C[A]){return C[A]=true;}return false;},parseNthArgument:function(F){if(Selectors.Cache.nth[F]){return Selectors.Cache.nth[F];
+}var C=F.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!C){return false;}var E=parseInt(C[1]);var B=(E||E===0)?E:1;var D=C[2]||false;var A=parseInt(C[3])||0;
+if(B!=0){A--;while(A<1){A+=B;}while(A>=B){A-=B;}}else{B=A;D="index";}switch(D){case"n":C={a:B,b:A,special:"n"};break;case"odd":C={a:2,b:0,special:"n"};
+break;case"even":C={a:2,b:1,special:"n"};break;case"first":C={a:0,special:"index"};break;case"last":C={special:"last-child"};break;case"only":C={special:"only-child"};
+break;default:C={a:(B-1),special:"index"};}return Selectors.Cache.nth[F]=C;},parseSelector:function(E){if(Selectors.Cache.parsed[E]){return Selectors.Cache.parsed[E];
+}var D,H={classes:[],pseudos:[],attributes:[]};while((D=Selectors.RegExps.combined.exec(E))){var I=D[1],G=D[2],F=D[3],B=D[5],C=D[6],J=D[7];if(I){H.classes.push(I);
+}else{if(C){var A=Selectors.Pseudo.get(C);if(A){H.pseudos.push({parser:A,argument:J});}else{H.attributes.push({name:C,operator:"=",value:J});}}else{if(G){H.attributes.push({name:G,operator:F,value:B});
+}}}}if(!H.classes.length){delete H.classes;}if(!H.attributes.length){delete H.attributes;}if(!H.pseudos.length){delete H.pseudos;}if(!H.classes&&!H.attributes&&!H.pseudos){H=null;
+}return Selectors.Cache.parsed[E]=H;},parseTagAndID:function(B){var A=B.match(Selectors.RegExps.tag);var C=B.match(Selectors.RegExps.id);return[(A)?A[1]:"*",(C)?C[1]:false];
+},filter:function(F,C,E){var D;if(C.classes){for(D=C.classes.length;D--;D){var G=C.classes[D];if(!Selectors.Filters.byClass(F,G)){return false;}}}if(C.attributes){for(D=C.attributes.length;
+D--;D){var B=C.attributes[D];if(!Selectors.Filters.byAttribute(F,B.name,B.operator,B.value)){return false;}}}if(C.pseudos){for(D=C.pseudos.length;D--;D){var A=C.pseudos[D];
+if(!Selectors.Filters.byPseudo(F,A.parser,A.argument,E)){return false;}}}return true;},getByTagAndID:function(B,A,D){if(D){var C=(B.getElementById)?B.getElementById(D,true):Element.getElementById(B,D,true);
+return(C&&Selectors.Filters.byTag(C,A))?[C]:[];}else{return B.getElementsByTagName(A);}},search:function(I,H,N){var B=[];var C=H.trim().replace(Selectors.RegExps.splitter,function(Y,X,W){B.push(X);
+return":)"+W;}).split(":)");var J,E,U;for(var T=0,P=C.length;T<P;T++){var S=C[T];if(T==0&&Selectors.RegExps.quick.test(S)){J=I.getElementsByTagName(S);
+continue;}var A=B[T-1];var K=Selectors.Utils.parseTagAndID(S);var V=K[0],L=K[1];if(T==0){J=Selectors.Utils.getByTagAndID(I,V,L);}else{var D={},G=[];for(var R=0,Q=J.length;
+R<Q;R++){G=Selectors.Getters[A](G,J[R],V,L,D);}J=G;}var F=Selectors.Utils.parseSelector(S);if(F){E=[];for(var O=0,M=J.length;O<M;O++){U=J[O];if(Selectors.Utils.filter(U,F,N)){E.push(U);
+}}J=E;}}return J;}};Selectors.Getters={" ":function(H,G,I,A,E){var D=Selectors.Utils.getByTagAndID(G,I,A);for(var C=0,B=D.length;C<B;C++){var F=D[C];if(Selectors.Utils.chk(F,E)){H.push(F);
+}}return H;},">":function(H,G,I,A,F){var C=Selectors.Utils.getByTagAndID(G,I,A);for(var E=0,D=C.length;E<D;E++){var B=C[E];if(B.parentNode==G&&Selectors.Utils.chk(B,F)){H.push(B);
+}}return H;},"+":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(Selectors.Utils.chk(B,D)&&Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B);
+}break;}}return C;},"~":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(!Selectors.Utils.chk(B,D)){break;}if(Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B);
+}}}return C;}};Selectors.Filters={byTag:function(B,A){return(A=="*"||(B.tagName&&B.tagName.toLowerCase()==A));},byID:function(A,B){return(!B||(A.id&&A.id==B));
+},byClass:function(B,A){return(B.className&&B.className.contains(A," "));},byPseudo:function(A,D,C,B){return D.call(A,C,B);},byAttribute:function(C,D,B,E){var A=Element.prototype.getProperty.call(C,D);
+if(!A){return(B=="!=");}if(!B||E==undefined){return true;}switch(B){case"=":return(A==E);case"*=":return(A.contains(E));case"^=":return(A.substr(0,E.length)==E);
+case"$=":return(A.substr(A.length-E.length)==E);case"!=":return(A!=E);case"~=":return A.contains(E," ");case"|=":return A.contains(E,"-");}return false;
+}};Selectors.Pseudo=new Hash({checked:function(){return this.checked;},empty:function(){return !(this.innerText||this.textContent||"").length;},not:function(A){return !Element.match(this,A);
+},contains:function(A){return(this.innerText||this.textContent||"").contains(A);},"first-child":function(){return Selectors.Pseudo.index.call(this,0);},"last-child":function(){var A=this;
+while((A=A.nextSibling)){if(A.nodeType==1){return false;}}return true;},"only-child":function(){var B=this;while((B=B.previousSibling)){if(B.nodeType==1){return false;
+}}var A=this;while((A=A.nextSibling)){if(A.nodeType==1){return false;}}return true;},"nth-child":function(G,E){G=(G==undefined)?"n":G;var C=Selectors.Utils.parseNthArgument(G);
+if(C.special!="n"){return Selectors.Pseudo[C.special].call(this,C.a,E);}var F=0;E.positions=E.positions||{};var D=$uid(this);if(!E.positions[D]){var B=this;
+while((B=B.previousSibling)){if(B.nodeType!=1){continue;}F++;var A=E.positions[$uid(B)];if(A!=undefined){F=A+F;break;}}E.positions[D]=F;}return(E.positions[D]%C.a==C.b);
+},index:function(A){var B=this,C=0;while((B=B.previousSibling)){if(B.nodeType==1&&++C>A){return false;}}return(C==A);},even:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n+1",A);
+},odd:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n",A);}});Element.Events.domready={onAdd:function(A){if(Browser.loaded){A.call(this);
+}}};(function(){var B=function(){if(Browser.loaded){return ;}Browser.loaded=true;window.fireEvent("domready");document.fireEvent("domready");};if(Browser.Engine.trident){var A=document.createElement("div");
+(function(){($try(function(){A.doScroll("left");return $(A).inject(document.body).set("html","temp").dispose();}))?B():arguments.callee.delay(50);})();
+}else{if(Browser.Engine.webkit&&Browser.Engine.version<525){(function(){(["loaded","complete"].contains(document.readyState))?B():arguments.callee.delay(50);
+})();}else{window.addEvent("load",B);document.addEvent("DOMContentLoaded",B);}}})();var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:"ignore"},initialize:function(A){this.subject=this.subject||this;
+this.setOptions(A);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();var B=this.options.wait;if(B===false){this.options.link="cancel";
+}},getTransition:function(){return function(A){return -(Math.cos(Math.PI*A)-1)/2;};},step:function(){var A=$time();if(A<this.time+this.options.duration){var B=this.transition((A-this.time)/this.options.duration);
+this.set(this.compute(this.from,this.to,B));}else{this.set(this.compute(this.from,this.to,1));this.complete();}},set:function(A){return A;},compute:function(C,B,A){return Fx.compute(C,B,A);
+},check:function(A){if(!this.timer){return true;}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));
+return false;}return false;},start:function(B,A){if(!this.check(arguments.callee,B,A)){return this;}this.from=B;this.to=A;this.time=0;this.transition=this.getTransition();
+this.startTimer();this.onStart();return this;},complete:function(){if(this.stopTimer()){this.onComplete();}return this;},cancel:function(){if(this.stopTimer()){this.onCancel();
+}return this;},onStart:function(){this.fireEvent("start",this.subject);},onComplete:function(){this.fireEvent("complete",this.subject);if(!this.callChain()){this.fireEvent("chainComplete",this.subject);
+}},onCancel:function(){this.fireEvent("cancel",this.subject).clearChain();},pause:function(){this.stopTimer();return this;},resume:function(){this.startTimer();
+return this;},stopTimer:function(){if(!this.timer){return false;}this.time=$time()-this.time;this.timer=$clear(this.timer);return true;},startTimer:function(){if(this.timer){return false;
+}this.time=$time()-this.time;this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);return true;}});Fx.compute=function(C,B,A){return(B-C)*A+C;
+};Fx.Durations={"short":250,normal:500,"long":1000};Fx.CSS=new Class({Extends:Fx,prepare:function(D,E,B){B=$splat(B);var C=B[1];if(!$chk(C)){B[1]=B[0];
+B[0]=D.getStyle(E);}var A=B.map(this.parse);return{from:A[0],to:A[1]};},parse:function(A){A=$lambda(A)();A=(typeof A=="string")?A.split(" "):$splat(A);
+return A.map(function(C){C=String(C);var B=false;Fx.CSS.Parsers.each(function(F,E){if(B){return ;}var D=F.parse(C);if($chk(D)){B={value:D,parser:F};}});
+B=B||{value:C,parser:Fx.CSS.Parsers.String};return B;});},compute:function(D,C,B){var A=[];(Math.min(D.length,C.length)).times(function(E){A.push({value:D[E].parser.compute(D[E].value,C[E].value,B),parser:D[E].parser});
+});A.$family={name:"fx:css:value"};return A;},serve:function(C,B){if($type(C)!="fx:css:value"){C=this.parse(C);}var A=[];C.each(function(D){A=A.concat(D.parser.serve(D.value,B));
+});return A;},render:function(A,D,C,B){A.setStyle(D,this.serve(C,B));},search:function(A){if(Fx.CSS.Cache[A]){return Fx.CSS.Cache[A];}var B={};Array.each(document.styleSheets,function(E,D){var C=E.href;
+if(C&&C.contains("://")&&!C.contains(document.domain)){return ;}var F=E.rules||E.cssRules;Array.each(F,function(I,G){if(!I.style){return ;}var H=(I.selectorText)?I.selectorText.replace(/^\w+/,function(J){return J.toLowerCase();
+}):null;if(!H||!H.test("^"+A+"$")){return ;}Element.Styles.each(function(K,J){if(!I.style[J]||Element.ShortStyles[J]){return ;}K=String(I.style[J]);B[J]=(K.test(/^rgb/))?K.rgbToHex():K;
+});});});return Fx.CSS.Cache[A]=B;}});Fx.CSS.Cache={};Fx.CSS.Parsers=new Hash({Color:{parse:function(A){if(A.match(/^#[0-9a-f]{3,6}$/i)){return A.hexToRgb(true);
+}return((A=A.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[A[1],A[2],A[3]]:false;},compute:function(C,B,A){return C.map(function(E,D){return Math.round(Fx.compute(C[D],B[D],A));
+});},serve:function(A){return A.map(Number);}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(B,A){return(A)?B+A:B;}},String:{parse:$lambda(false),compute:$arguments(1),serve:$arguments(0)}});
+Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);},set:function(B,A){if(arguments.length==1){A=B;
+B=this.property||this.options.property;}this.render(this.element,B,A,this.options.unit);return this;},start:function(C,E,D){if(!this.check(arguments.callee,C,E,D)){return this;
+}var B=Array.flatten(arguments);this.property=this.options.property||B.shift();var A=this.prepare(this.element,this.property,B);return this.parent(A.from,A.to);
+}});Element.Properties.tween={set:function(A){var B=this.retrieve("tween");if(B){B.cancel();}return this.eliminate("tween").store("tween:options",$extend({link:"cancel"},A));
+},get:function(A){if(A||!this.retrieve("tween")){if(A||!this.retrieve("tween:options")){this.set("tween",A);}this.store("tween",new Fx.Tween(this,this.retrieve("tween:options")));
+}return this.retrieve("tween");}};Element.implement({tween:function(A,C,B){this.get("tween").start(arguments);return this;},fade:function(C){var E=this.get("tween"),D="opacity",A;
+C=$pick(C,"toggle");switch(C){case"in":E.start(D,1);break;case"out":E.start(D,0);break;case"show":E.set(D,1);break;case"hide":E.set(D,0);break;case"toggle":var B=this.retrieve("fade:flag",this.get("opacity")==1);
+E.start(D,(B)?0:1);this.store("fade:flag",!B);A=true;break;default:E.start(D,arguments);}if(!A){this.eliminate("fade:flag");}return this;},highlight:function(C,A){if(!A){A=this.retrieve("highlight:original",this.getStyle("background-color"));
+A=(A=="transparent")?"#fff":A;}var B=this.get("tween");B.start("background-color",C||"#ffff88",A).chain(function(){this.setStyle("background-color",this.retrieve("highlight:original"));
+B.callChain();}.bind(this));return this;}});
+Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(B,A){this.elements=this.subject=$$(B);this.parent(A);},compute:function(G,H,I){var C={};for(var D in G){var A=G[D],E=H[D],F=C[D]={};
+for(var B in A){F[B]=this.parent(A[B],E[B],I);}}return C;},set:function(B){for(var C in B){var A=B[C];for(var D in A){this.render(this.elements[C],D,A[D],this.options.unit);
+}}return this;},start:function(C){if(!this.check(arguments.callee,C)){return this;}var H={},I={};for(var D in C){var F=C[D],A=H[D]={},G=I[D]={};for(var B in F){var E=this.prepare(this.elements[D],B,F[B]);
+A[B]=E.from;G[B]=E.to;}}return this.parent(H,I);}});
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/options/tabcontent/tabcontent.css Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,176 @@
+/* ######### CSS for Shade Tabs. Remove if not using ######### */
+
+.shadetabs{
+padding: 3px 0;
+margin-left: 0;
+margin-top: 1px;
+margin-bottom: 0;
+font: bold 12px Verdana;
+list-style-type: none;
+text-align: left; /*set to left, center, or right to align the menu as desired*/
+}
+
+.shadetabs li{
+display: inline;
+margin: 0;
+}
+
+.shadetabs li a{
+text-decoration: none;
+position: relative;
+z-index: 1;
+padding: 3px 7px;
+margin-right: 3px;
+border: 1px solid #778;
+color: #2d2b2b;
+background: white url(shade.gif) top left repeat-x;
+}
+
+.shadetabs li a:visited{
+color: #2d2b2b;
+}
+
+.shadetabs li a:hover{
+text-decoration: underline;
+color: #2d2b2b;
+}
+
+.shadetabs li a.selected{ /*selected main tab style */
+position: relative;
+top: 1px;
+}
+
+.shadetabs li a.selected{ /*selected main tab style */
+background-image: url(shadeactive.gif);
+border-bottom-color: white;
+}
+
+.shadetabs li a.selected:hover{ /*selected main tab style */
+text-decoration: none;
+}
+
+.tabcontent{
+display:none;
+}
+
+@media print {
+.tabcontent {
+display:block !important;
+}
+}
+
+/* ######### CSS for Inverted Modern Bricks II Tabs. Remove if not using ######### */
+
+.modernbricksmenu2{
+padding: 0;
+width: 362px;
+border-top: 5px solid #D25A0B; /*Brown color theme*/
+background: transparent;
+voice-family: "\"}\"";
+voice-family: inherit;
+}
+
+.modernbricksmenu2 ul{
+margin:0;
+margin-left: 10px; /*margin between first menu item and left browser edge*/
+padding: 0;
+list-style: none;
+}
+
+.modernbricksmenu2 li{
+display: inline;
+margin: 0 2px 0 0;
+padding: 0;
+text-transform:uppercase;
+}
+
+.modernbricksmenu2 a{
+float: left;
+display: block;
+font: bold 11px Arial;
+color: white;
+text-decoration: none;
+margin: 0 1px 0 0; /*Margin between each menu item*/
+padding: 5px 10px;
+background-color: black; /*Brown color theme*/
+border-top: 1px solid white;
+}
+
+.modernbricksmenu2 a:hover{
+background-color: #D25A0B; /*Brown color theme*/
+color: white;
+}
+
+.modernbricksmenu2 a.selected{ /*currently selected tab*/
+background-color: #D25A0B; /*Brown color theme*/
+color: white;
+border-color: #D25A0B; /*Brown color theme*/
+}
+
+.tabcontent{
+display:none;
+}
+
+@media print {
+.tabcontent {
+display:block !important;
+}
+}
+
+/* ######### CSS for Indented CSS Tabs. Remove if not using ######### */
+
+
+.indentmenu{
+font: bold 13px Arial;
+width: 100%; /*leave this value as is in most cases*/
+}
+
+.indentmenu ul{
+margin: 0;
+padding: 0;
+float: left;
+/* width: 80%; width of menu*/
+border-top: 1px solid navy; /*navy border*/
+background: black url(indentbg.gif) center center repeat-x;
+}
+
+.indentmenu ul li{
+display: inline;
+}
+
+.indentmenu ul li a{
+float: left;
+color: white; /*text color*/
+padding: 5px 11px;
+text-decoration: none;
+border-right: 1px solid navy; /*navy divider between menu items*/
+}
+
+.indentmenu ul li a:visited{
+color: white;
+}
+
+.indentmenu ul li a.selected{
+color: white !important;
+padding-top: 6px; /*shift text down 1px*/
+padding-bottom: 4px;
+background: black url(indentbg2.gif) center center repeat-x;
+}
+
+
+.tabcontentstyle{ /*style of tab content oontainer*/
+border: 1px solid gray;
+width: 450px;
+margin-bottom: 1em;
+padding: 10px;
+}
+
+.tabcontent{
+display:none;
+}
+
+@media print {
+.tabcontent {
+display:block !important;
+}
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/options/tabcontent/tabcontent.js Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,159 @@
+//** Tab Content script v2.0- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
+//** Updated Oct 7th, 07 to version 2.0. Contains numerous improvements:
+// -Added Auto Mode: Script auto rotates the tabs based on an interval, until a tab is explicitly selected
+// -Ability to expand/contract arbitrary DIVs on the page as the tabbed content is expanded/ contracted
+// -Ability to dynamically select a tab either based on its position within its peers, or its ID attribute (give the target tab one 1st)
+// -Ability to set where the CSS classname "selected" get assigned- either to the target tab's link ("A"), or its parent container
+//** Updated Feb 18th, 08 to version 2.1: Adds a "tabinstance.cycleit(dir)" method to cycle forward or backward between tabs dynamically
+//** Updated April 8th, 08 to version 2.2: Adds support for expanding a tab using a URL parameter (ie: http://mysite.com/tabcontent.htm?tabinterfaceid=0)
+
+////NO NEED TO EDIT BELOW////////////////////////
+
+function ddtabcontent(tabinterfaceid){
+ this.tabinterfaceid=tabinterfaceid //ID of Tab Menu main container
+ this.tabs=document.getElementById(tabinterfaceid).getElementsByTagName("a") //Get all tab links within container
+ this.enabletabpersistence=true
+ this.hottabspositions=[] //Array to store position of tabs that have a "rel" attr defined, relative to all tab links, within container
+ this.currentTabIndex=0 //Index of currently selected hot tab (tab with sub content) within hottabspositions[] array
+ this.subcontentids=[] //Array to store ids of the sub contents ("rel" attr values)
+ this.revcontentids=[] //Array to store ids of arbitrary contents to expand/contact as well ("rev" attr values)
+ this.selectedClassTarget="link" //keyword to indicate which target element to assign "selected" CSS class ("linkparent" or "link")
+}
+
+ddtabcontent.getCookie=function(Name){
+ var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
+ if (document.cookie.match(re)) //if cookie found
+ return document.cookie.match(re)[0].split("=")[1] //return its value
+ return ""
+}
+
+ddtabcontent.setCookie=function(name, value){
+ document.cookie = name+"="+value+";path=/" //cookie value is domain wide (path=/)
+}
+
+ddtabcontent.prototype={
+
+ expandit:function(tabid_or_position){ //PUBLIC function to select a tab either by its ID or position(int) within its peers
+ this.cancelautorun() //stop auto cycling of tabs (if running)
+ var tabref=""
+ try{
+ if (typeof tabid_or_position=="string" && document.getElementById(tabid_or_position).getAttribute("rel")) //if specified tab contains "rel" attr
+ tabref=document.getElementById(tabid_or_position)
+ else if (parseInt(tabid_or_position)!=NaN && this.tabs[tabid_or_position].getAttribute("rel")) //if specified tab contains "rel" attr
+ tabref=this.tabs[tabid_or_position]
+ }
+ catch(err){alert("Invalid Tab ID or position entered!")}
+ if (tabref!="") //if a valid tab is found based on function parameter
+ this.expandtab(tabref) //expand this tab
+ },
+
+ cycleit:function(dir, autorun){ //PUBLIC function to move foward or backwards through each hot tab (tabinstance.cycleit('foward/back') )
+ if (dir=="next"){
+ var currentTabIndex=(this.currentTabIndex<this.hottabspositions.length-1)? this.currentTabIndex+1 : 0
+ }
+ else if (dir=="prev"){
+ var currentTabIndex=(this.currentTabIndex>0)? this.currentTabIndex-1 : this.hottabspositions.length-1
+ }
+ if (typeof autorun=="undefined") //if cycleit() is being called by user, versus autorun() function
+ this.cancelautorun() //stop auto cycling of tabs (if running)
+ this.expandtab(this.tabs[this.hottabspositions[currentTabIndex]])
+ },
+
+ setpersist:function(bool){ //PUBLIC function to toggle persistence feature
+ this.enabletabpersistence=bool
+ },
+
+ setselectedClassTarget:function(objstr){ //PUBLIC function to set which target element to assign "selected" CSS class ("linkparent" or "link")
+ this.selectedClassTarget=objstr || "link"
+ },
+
+ getselectedClassTarget:function(tabref){ //Returns target element to assign "selected" CSS class to
+ return (this.selectedClassTarget==("linkparent".toLowerCase()))? tabref.parentNode : tabref
+ },
+
+ urlparamselect:function(tabinterfaceid){
+ var result=window.location.search.match(new RegExp(tabinterfaceid+"=(\\d+)", "i")) //check for "?tabinterfaceid=2" in URL
+ return (result==null)? null : parseInt(RegExp.$1) //returns null or index, where index (int) is the selected tab's index
+ },
+
+ expandtab:function(tabref){
+ var subcontentid=tabref.getAttribute("rel") //Get id of subcontent to expand
+ //Get "rev" attr as a string of IDs in the format ",john,george,trey,etc," to easily search through
+ var associatedrevids=(tabref.getAttribute("rev"))? ","+tabref.getAttribute("rev").replace(/\s+/, "")+"," : ""
+ this.expandsubcontent(subcontentid)
+ this.expandrevcontent(associatedrevids)
+ for (var i=0; i<this.tabs.length; i++){ //Loop through all tabs, and assign only the selected tab the CSS class "selected"
+ this.getselectedClassTarget(this.tabs[i]).className=(this.tabs[i].getAttribute("rel")==subcontentid)? "selected" : ""
+ }
+ if (this.enabletabpersistence) //if persistence enabled, save selected tab position(int) relative to its peers
+ ddtabcontent.setCookie(this.tabinterfaceid, tabref.tabposition)
+ this.setcurrenttabindex(tabref.tabposition) //remember position of selected tab within hottabspositions[] array
+ },
+
+ expandsubcontent:function(subcontentid){
+ for (var i=0; i<this.subcontentids.length; i++){
+ var subcontent=document.getElementById(this.subcontentids[i]) //cache current subcontent obj (in for loop)
+ subcontent.style.display=(subcontent.id==subcontentid)? "block" : "none" //"show" or hide sub content based on matching id attr value
+ }
+ },
+
+ expandrevcontent:function(associatedrevids){
+ var allrevids=this.revcontentids
+ for (var i=0; i<allrevids.length; i++){ //Loop through rev attributes for all tabs in this tab interface
+ //if any values stored within associatedrevids matches one within allrevids, expand that DIV, otherwise, contract it
+ document.getElementById(allrevids[i]).style.display=(associatedrevids.indexOf(","+allrevids[i]+",")!=-1)? "block" : "none"
+ }
+ },
+
+ setcurrenttabindex:function(tabposition){ //store current position of tab (within hottabspositions[] array)
+ for (var i=0; i<this.hottabspositions.length; i++){
+ if (tabposition==this.hottabspositions[i]){
+ this.currentTabIndex=i
+ break
+ }
+ }
+ },
+
+ autorun:function(){ //function to auto cycle through and select tabs based on a set interval
+ this.cycleit('next', true)
+ },
+
+ cancelautorun:function(){
+ if (typeof this.autoruntimer!="undefined")
+ clearInterval(this.autoruntimer)
+ },
+
+ init:function(automodeperiod){
+ var persistedtab=ddtabcontent.getCookie(this.tabinterfaceid) //get position of persisted tab (applicable if persistence is enabled)
+ var selectedtab=-1 //Currently selected tab index (-1 meaning none)
+ var selectedtabfromurl=this.urlparamselect(this.tabinterfaceid) //returns null or index from: tabcontent.htm?tabinterfaceid=index
+ this.automodeperiod=automodeperiod || 0
+ for (var i=0; i<this.tabs.length; i++){
+ this.tabs[i].tabposition=i //remember position of tab relative to its peers
+ if (this.tabs[i].getAttribute("rel")){
+ var tabinstance=this
+ this.hottabspositions[this.hottabspositions.length]=i //store position of "hot" tab ("rel" attr defined) relative to its peers
+ this.subcontentids[this.subcontentids.length]=this.tabs[i].getAttribute("rel") //store id of sub content ("rel" attr value)
+ this.tabs[i].onclick=function(){
+ tabinstance.expandtab(this)
+ tabinstance.cancelautorun() //stop auto cycling of tabs (if running)
+ return false
+ }
+ if (this.tabs[i].getAttribute("rev")){ //if "rev" attr defined, store each value within "rev" as an array element
+ this.revcontentids=this.revcontentids.concat(this.tabs[i].getAttribute("rev").split(/\s*,\s*/))
+ }
+ if (selectedtabfromurl==i || this.enabletabpersistence && selectedtab==-1 && parseInt(persistedtab)==i || !this.enabletabpersistence && selectedtab==-1 && this.getselectedClassTarget(this.tabs[i]).className=="selected"){
+ selectedtab=i //Selected tab index, if found
+ }
+ }
+ } //END for loop
+ if (selectedtab!=-1) //if a valid default selected tab index is found
+ this.expandtab(this.tabs[selectedtab]) //expand selected tab (either from URL parameter, persistent feature, or class="selected" class)
+ else //if no valid default selected index found
+ this.expandtab(this.tabs[this.hottabspositions[0]]) //Just select first tab that contains a "rel" attr
+ if (parseInt(this.automodeperiod)>500 && this.hottabspositions.length>1){
+ this.autoruntimer=setInterval(function(){tabinstance.autorun()}, this.automodeperiod)
+ }
+ } //END int() function
+
+} //END Prototype assignment
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/options/uvumi-textarea-ie.css Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,7 @@
+textarea {
+ width: 750px;
+ }
+
+div.mooarea {
+width: 750px;
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/options/uvumi-textarea.css Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,77 @@
+
+#text-demo label{
+ display:block;
+ float:left;
+ width:140px;
+ text-align:right;
+ padding:6px;
+}
+
+textarea {
+ font-family: "courier new", monospace;
+ width: 750px; /* With 100%, FF loses width when tabs are switched and makes textareas 2x tall. (with dynamicdrive tabs). Try mootools tabs later */
+ border: 0px solid #C6D9E9;
+ color: navy;
+ /*font-size: 12px;
+ line-height: 18px;*/
+ /*margin: 5px 0;*/
+ margin: 0;
+ padding: 0px !important;
+ -moz-border-radius: 6px;
+ -khtml-border-radius: 6px;
+ -webkit-border-radius: 6px;
+ border-radius: 6px;
+}
+
+div.mooarea {
+ clear:right;
+ display: block;
+ width: 750px; /* With 100%, FF loses width when tabs are switched and makes textareas 2x tall. (with dynamicdrive tabs). Try mootools tabs later */
+ border: 3px solid #C6D9E9;
+ margin: 7px 0;
+ padding: 5px;
+ background: #ffffff;
+ -moz-border-radius: 6px;
+ -khtml-border-radius: 6px;
+ -webkit-border-radius: 6px;
+ border-radius: 6px;
+ }
+
+
+/*
+this class is for the lower bar container.
+It does really require any styling
+*/
+.tbWrapper{
+
+}
+
+/*
+This is the progress bar container
+Width is set with javascript, but those value can be modified
+Try to keep the button's and preogres bar's margin-left the same for better results
+*/
+.tbProgress{
+ height:1em;
+ border:1px inset #FF7A19;
+ background-color:#FFF;
+}
+
+/*
+this is the actual progress indicator, inside the porgressbar container
+Except the background color, you probably don't want to mess up the other properties
+You can set a background image if you want
+*/
+.tbProgressBar{
+ background-color:#FFB119;
+}
+
+/*
+chracters counter. Same here, except the text color, you don't want to modify any other property
+*/
+.tbCounter{
+ color:#000;
+ font-family:Trebuchet MS, Helvetica, sans-serif;
+ font-size:0.8em;
+ font-weight:bold;
+}
\ No newline at end of file
Binary file src/web/app/themes/atahualpa/screenshot.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/searchform.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,11 @@
+<form method="get" class="searchform" action="<?php echo esc_url( home_url() ); ?>/">
+<table class="searchform" cellpadding="0" cellspacing="0" border="0">
+<tr>
+<td class="searchfield">
+<input type="text" class="text inputblur" value="<?php esc_attr( the_search_query() ); ?>" name="s" />
+</td>
+<td class="searchbutton">
+<input name="submit" value="Search" type="image" src="<?php echo get_template_directory_uri(); ?>/images/magnifier2-gray.gif" style="display: block; border:none; padding: 0 0 0 5px; margin: 0;" />
+</td>
+</tr></table>
+</form>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/style.css Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,53 @@
+/*
+Theme Name: Atahualpa
+Theme URI: http://wordpress.bytesforall.com/
+Description: Atahualpa is a very customizable and browser-safe (incl. IE6) theme: Choose between fixed or flexible width layout, with min/max width, set between 0 and 4 sidebars on a per-page basis, create custom widget areas, import and export styles (several styles included), choose colors with pickers, adjust over 200 options. Atahualpa is one of the most downloaded WordPress themes and maintained since 2007. Active community at forum.bytesforall.com.
+Version: 3.7.24
+Author: BytesForAll
+Author URI: http://forum.bytesforall.com/
+Tags: left-sidebar, right-sidebar, fluid-layout, fixed-layout, one-column, two-columns, three-columns, four-columns, white, custom-colors, custom-header, theme-options, threaded-comments, sticky-post, translation-ready
+License: GNU General Public License v2.0
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+*/
+
+.aligncenter {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+.alignleft {
+ float: left;
+ }
+
+.alignright {
+ float: right;
+ }
+
+.wp-caption {
+ background: #f1f1f1;
+ line-height: 18px;
+ margin-bottom: 20px;
+ padding: 4px;
+ text-align: center;
+}
+
+.wp-caption-text {
+ color: #888;
+ font-size: 12px;
+ margin: 5px;
+ }
+
+.gallery-caption {
+ color: #888;
+ font-size: 12px;
+ margin: 0 0 12px;
+ }
+
+.sticky {
+ font-weight: normal;
+}
+
+.bypostauthor {
+ font-weight: normal;
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/styles/ata-adsense.txt Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,1 @@
+{"IEDocType":"None","overlay_header_image":"","page_post_options":"No","use_bfa_seo":"No","homepage_meta_description":"","homepage_meta_keywords":"","add_blogtitle":"Page Title - Blog Title","title_separator_code":"1","archive_noindex":"No","cat_noindex":"No","tag_noindex":"No","h1_on_single_pages":"Yes","nofollow":"No","body_style":"font-family: verdana, arial, sans-serif;\r\nfont-size: 13px;\r\nline-height: 1.5;\r\ncolor: #000000;\r\nbackground: #fff url('\/wp-content\/themes\/atahualpa\/images\/background7.png') repeat-x top left;","link_color":"365DA0","link_hover_color":"365DA0","link_default_decoration":"none","link_hover_decoration":"underline","link_weight":"normal","layout_width":"980px","layout_min_width":"","layout_max_width":"","layout_style":"\/* setting the layout container to position:relative, so that \r\nwe can position other items (such as the search form in the header) \r\nabsolute, relative to the layout container *\/\r\nposition: relative;\r\n\r\n\r\n\/* Shadow: *\/\r\n\/*\r\nbox-shadow: 0 0 15px #000;\r\n-moz-box-shadow: 0 0 15px #000;\r\n*\/\r\n\/* Round corners: *\/\r\n\/*\r\n-moz-border-radius:10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius:10px;\r\nborder-radius: 10px;\r\n*\/","layout_style_leftright_padding":"10","favicon_file":"new-favicon.ico","configure_header":"%logo %pages %cats\r\n<!-- To remove the ad altogether, start removing here... --> \r\n<div style=\"position:absolute;top:20px;right:20px;width:728px;height:90px;background:#ddd;\">\r\n<!-- Put the ad code BELOW this (and remove the sample text if there is any) -->\r\n728x90 ad code here. Edit Atahualpa Theme Options -> Style & Edit HEADER AREA -> Configure Header Area and put your code inside the DIV\r\n<!-- Put the ad code ABOVE this -->\r\n<\/div>\r\n<!-- End removing the ad here -->","full_width_header":"No","logoarea_style":"height: 130px;","logo":"newsamplelogo.png","logo_style":"margin: 0 10px 0 0;","blog_title_show":"No","blog_title_style":"margin: 0;\r\npadding: 0;\r\nletter-spacing: -1px;\r\nline-height: 1.0em;\r\nfont-size: 200%;\r\ntext-transform: uppercase;\r\nmargin-right: 740px;","blog_title_weight":"normal","blog_title_color":"000000","blog_title_color_hover":"AC161B","blog_tagline_show":"No","blog_tagline_style":"margin: 0;\r\npadding: 0;\r\nfont-size: 1.2em;\r\nfont-weight: normal;\r\ncolor: #444;\r\nmargin-right: 740px;","show_search_box":"Yes","searchbox_style":"border-bottom: 0;\r\nwidth: 200px;\r\nmargin: 0;\r\npadding: 0;","searchbox_text":"","horbar1":"height: 5px;\r\nbackground: #ffffff;\r\nborder-top: dashed 1px #cccccc;","horbar2":"height: 5px;\r\nbackground: #ffffff;\r\nborder-bottom: dashed 1px #cccccc;","header_image_javascript":"1","header_image_sort_or_shuffle":"Sort","crossslide_fade":"3","header_image_javascript_preload":"Yes","header_image_clickable":"No","headerimage_height":"160","headerimage_alignment":"top center","header_opacity_left":"0","header_opacity_left_width":"200","header_opacity_left_color":"FFFFFF","header_opacity_right":"0","header_opacity_right_width":"200","header_opacity_right_color":"FFFFFF","overlay_blog_title":"No","overlay_blog_tagline":"No","overlay_box_style":"margin-top: 30px;\r\nmargin-left: 30px;","rss_box_width":"280","show_posts_icon":"Yes","post_feed_link":"Posts","post_feed_link_title":"Subscribe to the POSTS feed","show_comments_icon":"Yes","comment_feed_link":"Comments","comment_feed_link_title":"Subscribe to the COMMENTS feed","show_email_icon":"No","email_subscribe_link":"By Email","email_subscribe_link_title":"Subscribe by EMAIL","feedburner_email_id":"","feedburner_old_new":"New - at feedburner.google.com","animate_page_menu_bar":"No","home_page_menu_bar":"Home","exclude_page_menu_bar":"","levels_page_menu_bar":"0","sorting_page_menu_bar":"menu_order","titles_page_menu_bar":"No","page_menu_1st_level_not_linked":"No","anchor_border_page_menu_bar":"0","page_menu_bar_background_color":"EEEEEE","page_menu_bar_background_color_hover":"CCCCCC","page_menu_bar_background_color_parent":"DDDDDD","page_menu_font":"12px Verdana, sans-serif","page_menu_bar_link_color":"555555","page_menu_bar_link_color_hover":"000000","page_menu_transform":"uppercase","page_menu_arrows":"black","page_menu_submenu_width":"11","animate_cat_menu_bar":"No","home_cat_menu_bar":"","exclude_cat_menu_bar":"","levels_cat_menu_bar":"0","sorting_cat_menu_bar":"ID","order_cat_menu_bar":"ASC","titles_cat_menu_bar":"No","add_descr_cat_menu_links":"No","default_cat_descr_text":"View all posts filed under<br \/>%category%","anchor_border_cat_menu_bar":"0","cat_menu_bar_background_color":"666666","cat_menu_bar_background_color_hover":"222222","cat_menu_bar_background_color_parent":"444444","cat_menu_font":"12px Verdana, sans-serif","cat_menu_bar_link_color":"FEFEFE","cat_menu_bar_link_color_hover":"FEFEFE","cat_menu_transform":"uppercase","cat_menu_arrows":"white","cat_menu_submenu_width":"11","center_column_style":"padding: 0 20px 30px 20px;","content_above_loop":"<?php \/* For MULTI post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_page_links('Top'); ?>\r\n","content_inside_loop":"<?php \/* For SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Top'); ?>\r\n\r\n<?php \/* Post Container starts here *\/\r\nif ( function_exists('post_class') ) { ?>\r\n<div <?php if ( is_page() ) { post_class('post'); } else { post_class(); } ?> id=\"post-<?php the_ID(); ?>\">\r\n<?php } else { ?>\r\n<div class=\"<?php echo ( is_page() ? 'page ' : '' ) . 'post\" id=\"post-'; the_ID(); ?>\">\r\n<?php } ?>\r\n\r\n<?php bfa_post_kicker('<div class=\"post-kicker\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_headline('<div class=\"post-headline\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_byline('<div class=\"post-byline\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_bodycopy('<div class=\"post-bodycopy clearfix\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_pagination('<p class=\"post-pagination\"><strong>'.__('Pages:','atahualpa').'<\/strong>','<\/p>'); ?>\r\n\r\n<?php bfa_post_footer('<div class=\"post-footer\">','<\/div>'); ?>\r\n\r\n<\/div><!-- \/ Post -->","content_below_loop":"<?php \/* Displayed on SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Middle'); ?>\r\n\r\n<?php \/* Load Comments template (on single post pages, and static pages, if set on options page): *\/\r\nbfa_get_comments(); ?>\r\n\r\n<?php \/* Displayed on SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Bottom'); ?>\r\n\t\t\r\n<?php \/* Archives Pages. Displayed on a specific static page, if configured at ATO -> Archives Pages: *\/\r\nbfa_archives_page('<div class=\"archives-page\">','<\/div>'); ?>\r\n\t\t\t\r\n<?php \/* Displayed on MULTI post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_page_links('Bottom'); ?>","content_not_found":"<h2><?php _e('Not Found','atahualpa'); ?><\/h2>\r\n<p><?php _e(\"Sorry, but you are looking for something that isn't here.\",\"atahualpa\"); ?><\/p>","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 »","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":"padding: 10px;\r\nmargin: 5px 0;\r\nborder-bottom: solid 5px #fafafa;","next_prev_style_comments_below":"padding: 10px;\r\nmargin: 5px 0;\r\nborder-bottom: solid 5px #fafafa;","next_prev_comments_pagination":"Yes","location_multi_next_prev":"Bottom","location_single_next_prev":"Top and Bottom","next_prev_style_top":"padding: 10px 0;\r\nbackground: #fff;\r\nborder-bottom: solid 5px #fafafa;\r\nmargin-bottom: 5px;\r\nfont-size: 11px;","next_prev_style_middle":"padding: 5px;\r\nbackground: #fff;\r\nmargin: 5px 0;\r\nfont-size: 11px;","next_prev_style_bottom":"padding: 5px;\r\nbackground: #fff;\r\nborder-top: solid 5px #fafafa;\r\nmargin: 5px 0;\r\nfont-size: 11px;","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":"saved"},"left_col_pages_exclude":"","left_col_cats_exclude":"","leftcol2_on":{"check-if-saved-once":"saved"},"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":"saved"},"right_col_pages_exclude":"","right_col_cats_exclude":"","rightcol2_on":{"homepage":"on","check-if-saved-once":"saved"},"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":"padding: 0 10px;\r\n","left_sidebar2_style":"padding: 0 10px;\r\n","right_sidebar_style":"padding: 0 10px;\r\n","right_sidebar2_style":"padding: 0 10px;\r\n","widget_container":"font-size: 11px;\r\nline-height: 1.2;\r\npadding: 10px 0 20px 0;\r\nborder-bottom: solid 5px #fafafa;\r\nmargin-bottom: 10px;","widget_title_box":"","widget_title":"font-size: 1em;\r\nfont-weight: normal;\r\ncolor: #333;\r\nmargin-bottom: 15px;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\n\r\n\r\n","widget_content":"","widget_lists":{"li-margin-left":"0","link-border-left-width":"0","link-border-left-color":"CCCCCC","link-border-left-hover-color":"000000","link-padding-left":"0","link-weight":"normal","link-color":"365DA0","link-hover-color":"365DA0"},"widget_lists2":{"li-margin-left":"5","link-border-left-width":"0","link-border-left-color":"CCCCCC","link-border-left-hover-color":"000000","link-padding-left":"0","link-weight":"normal","link-color":"365DA0","link-hover-color":"365DA0"},"widget_lists3":{"li-margin-left":"5","link-border-left-width":"0","link-border-left-color":"CCCCCC","link-border-left-hover-color":"000000","link-padding-left":"0","link-weight":"normal","link-color":"365DA0","link-hover-color":"365DA0"},"category_widget_display_type":"inline","select_font_size":"Default","post_kicker_home":"","post_kicker_multi":"","post_kicker_single":"","post_kicker_page":"","post_byline_home":"By %author%, on %date('F jS, Y')%","post_byline_multi":"By %author%, on %date('F jS, Y')%","post_byline_single":"By %author%, on %date('F jS, Y')%","post_byline_page":"","post_footer_home":"<image(comment-gray.gif)> %comments('Leave a comment', 'One comment', '% comments', 'Comments are closed')% <image(folder-gray.gif)> %categories-linked(', ')% %tags-linked(' <image(tag-gray.gif)> ', ', ', ' ')% %edit(' | ', 'Edit', '')%","post_footer_multi":"<image(comment-gray.gif)> %comments('Leave a comment', 'One comment', '% comments', 'Comments are closed')% <image(folder-gray.gif)> %categories-linked(', ')% %tags-linked(' <image(tag-gray.gif)> ', ', ', ' ')% %edit(' | ', 'Edit', '')%","post_footer_single":"<image(folder-gray.gif)> %categories-linked(', ')% %tags-linked(' <image(tag-gray.gif)> ', ', ', ' ')% %edit(' | ', 'Edit', '')%","post_footer_page":"","post_container_style":"margin: 0 0 5px 0;\r\npadding: 20px 0 30px 0;\r\nbackground: #fff;\r\nborder-bottom: solid 5px #fafafa;\r\n","post_container_sticky_style":"background: #eee url('\/wp-content\/themes\/atahualpa\/images\/sticky.gif') 99% 5% no-repeat;\r\npadding: 10px;","post_kicker_style":"margin: 0 0 5px 0;","post_kicker_style_links":"color: #999;\r\ntext-decoration: none;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;","post_kicker_style_links_hover":"color: #cc0000;","post_headline_style":"","post_headline_style_text":"padding: 0;\r\nmargin: 0;\r\nfont-size: 1.9em;\r\nline-height: 1.2;\r\nfont-weight: normal;","post_headline_style_links":"font-weight: normal;","post_headline_style_links_hover":"","post_byline_style":"margin: 5px 0 10px 0;\r\ncolor: #999;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\nfont-size: 11px;","post_byline_style_links":"","post_byline_style_links_hover":"","post_bodycopy_style":"","post_footer_style":"color: #999;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\nfont-size: 11px;","post_footer_style_links":"color: #999;\r\nfont-weight: normal;\r\ntext-decoration: none;","post_footer_style_links_hover":"color: #333;\r\nfont-weight: normal;\r\ntext-decoration: underline;","excerpt_length":"55","dont_strip_excerpts":"<p>","custom_read_more":"<span style=\"color:#777\"> . . . → Read More: <a href=\"%permalink%\">%title%<\/a><\/span>","excerpts_home":"Only Excerpts","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":"<p>Comments are closed.<\/p>","comments_on_pages":"No","separate_trackbacks":"No","avatar_size":"65","avatar_style":"margin: 0 15px 15px 0;\r\n\r\n","show_xhtml_tags":"Yes","comment_form_style":"margin: 7px 0;\r\npadding: 30px 20px;\r\nbackground: #fff;\r\n","submit_button_style":"padding: 4px 10px 4px 10px;\r\nfont-size: 1.2em;\r\nline-height: 1.5em;\r\nheight: 36px;\r\n","comment_display_order":"Oldest on top","footer_style":"padding: 10px;\r\nborder-top: solid 5px #fafafa;\r\ntext-align: center;\r\ncolor: #999;\r\nfont-size: 11px;","footer_style_links":"text-decoration: none;\r\ncolor: #999;\r\nfont-weight: normal;","footer_style_links_hover":"text-decoration: underline;\r\ncolor: #999;\r\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;\r\nborder: solid 3px #eee;\r\n","form_input_field_background":"","highlight_forms":"Yes","highlight_forms_style":"background: #e8eff7;\r\nborder-color: #37699f;","button_style":"background-color: #777777;\r\ncolor: #ffffff;\r\nborder: solid 2px #555555;","button_style_hover":"background-color: #6b9c6b;\r\ncolor: #ffffff;\r\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":"td#header {\r\npadding-bottom: 15px;\r\n}\r\ndiv.searchbox {\r\nposition: absolute;\r\ntop: 130px;\r\nright: 25px;\r\n}\r\ndiv.searchbox input.text {\r\nborder: none;\r\npadding: 2px 15px 2px 3px;\r\nbackground: #fff url('\/wp-content\/themes\/atahualpa\/images\/search2.gif') no-repeat right center;\r\n-moz-border-radius: 5px;\r\n-webkit-border-radius: 5px;\r\nborder-radius: 5px;\r\nheight: 15px;\r\nbolder: solid 1px #e7e7e7;\r\nfont-size: 11px;\r\n}\r\n\r\na.posts-icon {\r\nposition: absolute;\r\ntop: 163px;\r\nright: 140px;\r\nfont-weight: normal;\r\ncolor: #fff;\r\nfont-size: 11px;\r\n}\r\na.comments-icon {\r\nposition: absolute;\r\ntop: 163px;\r\nright: 30px;\r\nfont-weight: normal;\r\ncolor: #fff;\r\nfont-size: 11px;\r\n}\r\n\r\ndiv#menu1 ul.rMenu {\r\nbackground: transparent;\r\nborder: none;\r\n}\r\ndiv#imagecontainer {\r\nborder-top: solid 5px #666;\r\n}\r\n\r\ndiv.widget ul li {\r\npadding: 1px 5px 1px 14px !important;\r\nbackground: url('\/wp-content\/themes\/atahualpa\/images\/bullets\/gray-arrow.gif') no-repeat 0 4px;\r\n}\r\ndiv.widget ul li a:hover {\r\ntext-decoration: underline;\r\n}\r\n\r\n\/* Menu Bars *\/\r\n\r\n\r\n\/* Adjustments for the menu bars, which in their default \r\nstate have 1px borders plus -1px margins to avoid 1+1=2px \r\nborders between neighbor items. *\/\r\nul.rMenu-hor ul, ul.rMenu-hRight ul { margin-top: 0px; }\r\nul.rMenu-hor li { margin-bottom: 0px; margin-top: 0px; margin-left: 0px; }\r\nul.rMenu-hor { padding-left: 0px; }\r\nul.rMenu-ver li { margin-top: 0xp; }\r\n\r\ndiv#menu1 ul.rMenu li a, div#menu2 ul.rMenu li a {\r\npadding: 8px 10px;\t\r\n}\r\n\/* different padding for parents with arrow image *\/ \r\ndiv#menu1 ul.rMenu li.rMenu-expand a, div#menu2 ul.rMenu li.rMenu-expand a {\r\npadding: 8px 22px 8px 10px !important;\r\nbackground-position: 97% 50% !important;\r\n}\r\n\/* less padding for children with arrow image *\/ \r\ndiv#menu1 ul.rMenu li.rMenu-expand li a, div#menu2 ul.rMenu li.rMenu-expand li a {\r\npadding: 5px 22px 5px 10px !important;\r\nbackground-position: 97% 50% !important;\r\n}\r\n\r\n\r\n\/*\r\nul#rmenu {\r\npadding:5px;\r\n}\r\n*\/\r\ndiv#menu2 {\r\nbackground: #666666;\r\n}\r\ndiv#menu1 {\r\nbackground: #eee;\r\n}\r\n\r\n\r\n\/* XX comments to .... *\/\r\nh3#comments {\r\nmargin: 10px 0;\r\npadding: 10px;\r\nfont-weight: normal;\r\nbackground: #f5f5f5;\r\n}\r\n\r\nul.commentlist {\r\nborder-top: 0;\r\nmargin: 0;\r\nline-height: 1.4;\r\nfont-size: 12px;\r\n}\r\nul.commentlist li.thread-odd, ul.commentlist li.thread-even {\r\nmargin: 5px 0;\r\npadding: 10px;\r\nborder-bottom: solid 5px #fafafa;\r\nbackground: #fff;\r\n}\r\nspan.authorname, span.authorname a {\r\nfont-weight: normal;\r\nfont-size: 17px !important;\r\n}\r\ndiv.commentmetadata a {\r\ncolor: #999;\r\nfont-size: 10px;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\n}","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":"a.posts-icon, a.comments-icon, a.email-icon, img.logo","css_compress":"Yes","allow_debug":"Yes","h_blogtitle":1,"h_posttitle":2,"single_next_prev_same_cat":"No","widget_center_top":"","widget_center_bottom":"","images_root":"atahualpa","ata_images_dir":"ata-images"}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/styles/ata-classic.txt Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,1 @@
+{"IEDocType":"None","overlay_header_image":"","page_post_options":"No","use_bfa_seo":"No","homepage_meta_description":"","homepage_meta_keywords":"","add_blogtitle":"Page Title - Blog Title","title_separator_code":"1","archive_noindex":"No","cat_noindex":"No","tag_noindex":"No","h1_on_single_pages":"Yes","nofollow":"No","body_style":"font-family: tahoma, arial, sans-serif;\r\nfont-size: 0.8em;\r\ncolor: #000000;\r\nbackground: #ffffff;","link_color":"666666","link_hover_color":"CC0000","link_default_decoration":"none","link_hover_decoration":"underline","link_weight":"bold","layout_width":"99%","layout_min_width":"","layout_max_width":"","layout_style":"padding: 0;","layout_style_leftright_padding":"0","favicon_file":"new-favicon.ico","configure_header":"%pages %logo %bar1 %image %bar2","full_width_header":"No","logoarea_style":"","logo":"logo.png","logo_style":"margin: 0 10px 0 0;","blog_title_show":"Yes","blog_title_style":"margin: 0;\npadding: 0;\nletter-spacing: -1px;\nline-height: 1.0em;\nfont-family: tahoma, arial, sans-serif;\nfont-size: 240%;","blog_title_weight":"bold","blog_title_color":"666666","blog_title_color_hover":"000000","blog_tagline_show":"Yes","blog_tagline_style":"margin: 0;\npadding: 0;\nfont-size: 1.2em;\nfont-weight: bold;\ncolor: #666666;","show_search_box":"Yes","searchbox_style":"border: 1px dashed #cccccc;\nborder-bottom: 0;\nwidth: 200px;\nmargin: 0;\npadding: 0;","searchbox_text":"","horbar1":"height: 5px;\nbackground: #ffffff;\nborder-top: dashed 1px #cccccc;","horbar2":"height: 5px;\nbackground: #ffffff;\nborder-bottom: dashed 1px #cccccc;","header_image_javascript":"0","header_image_sort_or_shuffle":"Sort","crossslide_fade":"0","header_image_javascript_preload":"Yes","header_image_clickable":"No","headerimage_height":"150","headerimage_alignment":"top center","header_opacity_left":"40","header_opacity_left_width":"200","header_opacity_left_color":"FFFFFF","header_opacity_right":"40","header_opacity_right_width":"200","header_opacity_right_color":"FFFFFF","overlay_blog_title":"No","overlay_blog_tagline":"No","overlay_box_style":"margin-top: 30px;\r\nmargin-left: 30px;","rss_box_width":"280","show_posts_icon":"Yes","post_feed_link":"Posts","post_feed_link_title":"Subscribe to the POSTS feed","show_comments_icon":"Yes","comment_feed_link":"Comments","comment_feed_link_title":"Subscribe to the COMMENTS feed","show_email_icon":"No","email_subscribe_link":"By Email","email_subscribe_link_title":"Subscribe by EMAIL","feedburner_email_id":"","feedburner_old_new":"New - at feedburner.google.com","animate_page_menu_bar":"No","home_page_menu_bar":"Home","exclude_page_menu_bar":"","levels_page_menu_bar":"0","sorting_page_menu_bar":"menu_order","titles_page_menu_bar":"No","page_menu_1st_level_not_linked":"No","anchor_border_page_menu_bar":"dashed 1px #cccccc","page_menu_bar_background_color":"FFFFFF","page_menu_bar_background_color_hover":"EEEEEE","page_menu_bar_background_color_parent":"DDDDDD","page_menu_font":"11px Arial, Verdana, sans-serif","page_menu_bar_link_color":"777777","page_menu_bar_link_color_hover":"000000","page_menu_transform":"uppercase","page_menu_arrows":"black","page_menu_submenu_width":"11","animate_cat_menu_bar":"No","home_cat_menu_bar":"","exclude_cat_menu_bar":"","levels_cat_menu_bar":"0","sorting_cat_menu_bar":"ID","order_cat_menu_bar":"ASC","titles_cat_menu_bar":"No","add_descr_cat_menu_links":"No","default_cat_descr_text":"View all posts filed under<br \/>%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;","content_above_loop":"<?php \/* For MULTI post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_page_links('Top'); ?>\r\n","content_inside_loop":"<?php \/* For SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Top'); ?>\r\n\r\n<?php \/* Post Container starts here *\/\r\nif ( function_exists('post_class') ) { ?>\r\n<div <?php if ( is_page() ) { post_class('post'); } else { post_class(); } ?> id=\"post-<?php the_ID(); ?>\">\r\n<?php } else { ?>\r\n<div class=\"<?php echo ( is_page() ? 'page ' : '' ) . 'post\" id=\"post-'; the_ID(); ?>\">\r\n<?php } ?>\r\n\r\n<?php bfa_post_kicker('<div class=\"post-kicker\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_headline('<div class=\"post-headline\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_byline('<div class=\"post-byline\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_bodycopy('<div class=\"post-bodycopy clearfix\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_pagination('<p class=\"post-pagination\"><strong>'.__('Pages:','atahualpa').'<\/strong>','<\/p>'); ?>\r\n\r\n<?php bfa_post_footer('<div class=\"post-footer\">','<\/div>'); ?>\r\n\r\n<\/div><!-- \/ Post -->","content_below_loop":"<?php \/* Displayed on SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Middle'); ?>\r\n\r\n<?php \/* Load Comments template (on single post pages, and static pages, if set on options page): *\/\r\nbfa_get_comments(); ?>\r\n\r\n<?php \/* Displayed on SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Bottom'); ?>\r\n\t\t\r\n<?php \/* Archives Pages. Displayed on a specific static page, if configured at ATO -> Archives Pages: *\/\r\nbfa_archives_page('<div class=\"archives-page\">','<\/div>'); ?>\r\n\t\t\t\r\n<?php \/* Displayed on MULTI post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_page_links('Bottom'); ?>","content_not_found":"<h2><?php _e('Not Found','atahualpa'); ?><\/h2>\r\n<p><?php _e(\"Sorry, but you are looking for something that isn't here.\",\"atahualpa\"); ?><\/p>","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('\/wp-content\/themes\/atahualpa\/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":"<p>","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":"<p>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":"a.posts-icon, a.comments-icon, a.email-icon, img.logo","css_compress":"Yes","allow_debug":"Yes","bfa_widget_areas":false,"h_blogtitle":1,"h_posttitle":2,"images_root":"atahualpa","ata_images_dir":"ata-images","widget_center_top":"","widget_center_bottom":""}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/styles/ata-default.txt Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,1 @@
+{"IEDocType":"None","overlay_header_image":"","page_post_options":"No","use_bfa_seo":"No","homepage_meta_description":"","homepage_meta_keywords":"","add_blogtitle":"Page Title - Blog Title","title_separator_code":"1","archive_noindex":"No","cat_noindex":"No","tag_noindex":"No","h1_on_single_pages":"Yes","nofollow":"No","body_style":"font-family: verdana, arial, sans-serif;\r\nfont-size: 13px;\r\nline-height: 1.4;\r\ncolor: #000000;\r\nbackground: #ddd;\r\npadding-top: 20px; padding-bottom: 20px;","link_color":"365DA0","link_hover_color":"365DA0","link_default_decoration":"none","link_hover_decoration":"underline","link_weight":"bold","layout_width":"95%","layout_min_width":"","layout_max_width":"","layout_style":"padding: 20px; \/*This effectively only affects top\/bottom padding *\/\r\nbackground: #fff;\r\n\r\nbox-shadow: 0 0 15px #333;\r\n-moz-box-shadow: 0 0 15px #333;\r\n\/* uncomment next block for round corners *\/\r\n\/*\r\n-moz-border-radius:10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius:10px;\r\nborder-radius: 10px;\r\n*\/","layout_style_leftright_padding":"20","favicon_file":"new-favicon.ico","configure_header":"%logo %pages %image %cats","full_width_header":"No","logoarea_style":"","logo":"","logo_style":"margin: 0 10px 0 0;","blog_title_show":"Yes","blog_title_style":"margin: 0;\r\npadding: 0;\r\nletter-spacing: -1px;\r\nline-height: 1.0em;\r\nfont-size: 200%;\r\ntext-transform: uppercase;","blog_title_weight":"normal","blog_title_color":"000000","blog_title_color_hover":"AC161B","blog_tagline_show":"Yes","blog_tagline_style":"margin: 0;\r\npadding: 0;\r\nfont-size: 1.2em;\r\nfont-weight: normal;\r\ncolor: #444;","show_search_box":"Yes","searchbox_style":"border-bottom: 0;\r\nwidth: 200px;\r\nmargin: 0;\r\npadding: 0;","searchbox_text":"","horbar1":"height: 5px;\r\nbackground: #ffffff;\r\nborder-top: dashed 1px #cccccc;","horbar2":"height: 5px;\r\nbackground: #ffffff;\r\nborder-bottom: dashed 1px #cccccc;","header_image_javascript":"0","header_image_sort_or_shuffle":"Sort","crossslide_fade":"0","header_image_javascript_preload":"Yes","header_image_clickable":"No","headerimage_height":"150","headerimage_alignment":"top center","header_opacity_left":"0","header_opacity_left_width":"200","header_opacity_left_color":"FFFFFF","header_opacity_right":"0","header_opacity_right_width":"200","header_opacity_right_color":"FFFFFF","overlay_blog_title":"No","overlay_blog_tagline":"No","overlay_box_style":"margin-top: 30px;\r\nmargin-left: 30px;","rss_box_width":"280","show_posts_icon":"Yes","post_feed_link":"Posts","post_feed_link_title":"Subscribe to the POSTS feed","show_comments_icon":"Yes","comment_feed_link":"Comments","comment_feed_link_title":"Subscribe to the COMMENTS feed","show_email_icon":"No","email_subscribe_link":"By Email","email_subscribe_link_title":"Subscribe by EMAIL","feedburner_email_id":"","feedburner_old_new":"New - at feedburner.google.com","animate_page_menu_bar":"No","home_page_menu_bar":"Home","exclude_page_menu_bar":"","levels_page_menu_bar":"0","sorting_page_menu_bar":"menu_order","titles_page_menu_bar":"No","page_menu_1st_level_not_linked":"No","anchor_border_page_menu_bar":"0","page_menu_bar_background_color":"EEEEEE","page_menu_bar_background_color_hover":"DDDDDD","page_menu_bar_background_color_parent":"CCCCCC","page_menu_font":"12px Verdana, sans-serif","page_menu_bar_link_color":"777777","page_menu_bar_link_color_hover":"000000","page_menu_transform":"uppercase","page_menu_arrows":"black","page_menu_submenu_width":"11","animate_cat_menu_bar":"No","home_cat_menu_bar":"","exclude_cat_menu_bar":"","levels_cat_menu_bar":"0","sorting_cat_menu_bar":"ID","order_cat_menu_bar":"ASC","titles_cat_menu_bar":"No","add_descr_cat_menu_links":"No","default_cat_descr_text":"View all posts filed under<br \/>%category%","anchor_border_cat_menu_bar":"0","cat_menu_bar_background_color":"5A85C1","cat_menu_bar_background_color_hover":"2968C1","cat_menu_bar_background_color_parent":"000000","cat_menu_font":"12px 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;","content_above_loop":"<?php \/* For MULTI post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_page_links('Top'); ?>\r\n","content_inside_loop":"<?php \/* For SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Top'); ?>\r\n\r\n<?php \/* Post Container starts here *\/\r\nif ( function_exists('post_class') ) { ?>\r\n<div <?php if ( is_page() ) { post_class('post'); } else { post_class(); } ?> id=\"post-<?php the_ID(); ?>\">\r\n<?php } else { ?>\r\n<div class=\"<?php echo ( is_page() ? 'page ' : '' ) . 'post\" id=\"post-'; the_ID(); ?>\">\r\n<?php } ?>\r\n\r\n<?php bfa_post_kicker('<div class=\"post-kicker\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_headline('<div class=\"post-headline\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_byline('<div class=\"post-byline\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_bodycopy('<div class=\"post-bodycopy clearfix\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_pagination('<p class=\"post-pagination\"><strong>'.__('Pages:','atahualpa').'<\/strong>','<\/p>'); ?>\r\n\r\n<?php bfa_post_footer('<div class=\"post-footer\">','<\/div>'); ?>\r\n\r\n<\/div><!-- \/ Post -->","content_below_loop":"<?php \/* Displayed on SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Middle'); ?>\r\n\r\n<?php \/* Load Comments template (on single post pages, and static pages, if set on options page): *\/\r\nbfa_get_comments(); ?>\r\n\r\n<?php \/* Displayed on SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Bottom'); ?>\r\n\t\t\r\n<?php \/* Archives Pages. Displayed on a specific static page, if configured at ATO -> Archives Pages: *\/\r\nbfa_archives_page('<div class=\"archives-page\">','<\/div>'); ?>\r\n\t\t\t\r\n<?php \/* Displayed on MULTI post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_page_links('Bottom'); ?>","content_not_found":"<h2><?php _e('Not Found','atahualpa'); ?><\/h2>\r\n<p><?php _e(\"Sorry, but you are looking for something that isn't here.\",\"atahualpa\"); ?><\/p>","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 »","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;\r\npadding: 5px 0 5px 0;","next_prev_style_comments_below":"margin: 0 0 10px 0;\r\npadding: 5px 0 5px 0;","next_prev_comments_pagination":"Yes","location_multi_next_prev":"Top and Bottom","location_single_next_prev":"Top, Middle and Bottom","next_prev_style_top":"border-top: solid 4px #eee;\r\npadding: 8px 0;","next_prev_style_middle":"margin: 10px 0 20px 0;\r\npadding: 8px 0;\r\nborder-top: solid 4px #eee;\r\nborder-bottom: solid 4px #eee;","next_prev_style_bottom":"margin: 20px 0 0 0;\r\npadding: 10px 0 0 0;\r\nborder-top: solid 4px #eee;","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":"saved"},"left_col_pages_exclude":"","left_col_cats_exclude":"","leftcol2_on":{"check-if-saved-once":"saved"},"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":"saved"},"right_col_pages_exclude":"","right_col_cats_exclude":"","rightcol2_on":{"check-if-saved-once":"saved"},"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":"padding-right: 10px;","left_sidebar2_style":"padding-right: 10px;","right_sidebar_style":"padding-left: 10px;","right_sidebar2_style":"padding-left: 10px;","widget_container":"font-size: 12px;\r\nmargin: 0 0 10px 0;\r\npadding: 10px;\r\nborder: solid 4px #eee;\r\n\/* uncomment next block for round corners *\/\r\n\/*\r\n-moz-border-radius:5px;\r\n-khtml-border-radius: 5px;\r\n-webkit-border-radius:5px;\r\nborder-radius: 5px;\r\n*\/","widget_title_box":"","widget_title":"font-size: 0.8em;\r\nfont-weight: normal;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\ncolor: #333;\r\nborder-bottom: solid 1px #eee;\r\npadding-bottom: 10px;\r\nmargin-bottom: 10px;\r\n","widget_content":"","widget_lists":{"li-margin-left":"0","link-border-left-width":"0","link-border-left-color":"CCCCCC","link-border-left-hover-color":"000000","link-padding-left":"0","link-weight":"normal","link-color":"365DA0","link-hover-color":"365DA0"},"widget_lists2":{"li-margin-left":"5","link-border-left-width":"0","link-border-left-color":"CCCCCC","link-border-left-hover-color":"000000","link-padding-left":"0","link-weight":"normal","link-color":"365DA0","link-hover-color":"365DA0"},"widget_lists3":{"li-margin-left":"5","link-border-left-width":"0","link-border-left-color":"CCCCCC","link-border-left-hover-color":"000000","link-padding-left":"0","link-weight":"normal","link-color":"365DA0","link-hover-color":"365DA0"},"category_widget_display_type":"inline","select_font_size":"Default","post_kicker_home":"","post_kicker_multi":"","post_kicker_single":"","post_kicker_page":"","post_byline_home":"By %author%, on %date('F jS, Y')%","post_byline_multi":"By %author%, on %date('F jS, Y')%","post_byline_single":"By %author%, on %date('F jS, Y')%","post_byline_page":"","post_footer_home":"<image(comment-gray.gif)> %comments('Leave a comment', 'One comment', '% comments', 'Comments are closed')% <image(folder-gray.gif)> %categories-linked(', ')% %tags-linked(' <image(tag-gray.gif)> ', ', ', ' ')% %edit(' | ', 'Edit', '')%","post_footer_multi":"<image(comment-gray.gif)> %comments('Leave a comment', 'One comment', '% comments', 'Comments are closed')% <image(folder-gray.gif)> %categories-linked(', ')% %tags-linked(' <image(tag-gray.gif)> ', ', ', ' ')% %edit(' | ', 'Edit', '')%","post_footer_single":"<image(folder-gray.gif)> %categories-linked(', ')% %tags-linked(' <image(tag-gray.gif)> ', ', ', ' ')% %edit(' | ', 'Edit', '')%","post_footer_page":"","post_container_style":"margin: 0 0 30px 0;\r\nborder-top: solid 4px #eee;\r\npadding-top: 20px;","post_container_sticky_style":"background: #eee url('\/wp-content\/themes\/atahualpa\/images\/sticky.gif') 99% 5% no-repeat;\r\nborder: dashed 1px #cccccc;\r\npadding: 10px;","post_kicker_style":"margin: 0 0 5px 0;","post_kicker_style_links":"color: #999;\r\ntext-decoration: none;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;","post_kicker_style_links_hover":"color: #cc0000;","post_headline_style":"","post_headline_style_text":"padding: 0;\r\nmargin: 0;\r\nfont-size: 1.7em;","post_headline_style_links":"","post_headline_style_links_hover":"","post_byline_style":"margin: 5px 0 10px 0;\r\ncolor: #999;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\nfont-size: 11px;","post_byline_style_links":"","post_byline_style_links_hover":"","post_bodycopy_style":"","post_footer_style":"color: #999;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\nfont-size: 11px;","post_footer_style_links":"color: #999;\r\nfont-weight: normal;\r\ntext-decoration: none;","post_footer_style_links_hover":"color: #333;\r\nfont-weight: normal;\r\ntext-decoration: underline;","excerpt_length":"55","dont_strip_excerpts":"<p>","custom_read_more":"<span style=\"color:#777\"> . . . → Read More: <a href=\"%permalink%\">%title%<\/a><\/span>","excerpts_home":"Only Excerpts","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":"<p>Comments are closed.<\/p>","comments_on_pages":"No","separate_trackbacks":"No","avatar_size":"65","avatar_style":"margin: 0 8px 1px 0;\r\npadding: 3px;\r\nborder: solid 1px #ddd;\r\nbackground-color: #f3f3f3;\r\n-moz-border-radius: 3px;\r\n-khtml-border-radius: 3px;\r\n-webkit-border-radius: 3px;\r\nborder-radius: 3px;","show_xhtml_tags":"Yes","comment_form_style":"margin: 25px 0;\r\npadding: 25px;\r\nbackground: #eee;\r\n-moz-border-radius: 8px;\r\n-khtml-border-radius: 8px;\r\n-webkit-border-radius: 8px;\r\nborder-radius: 8px;","submit_button_style":"padding: 4px 10px 4px 10px;\r\nfont-size: 1.2em;\r\nline-height: 1.5em;\r\nheight: 36px;","comment_display_order":"Oldest on top","footer_style":"background-color: #f7f7f7;\r\nborder-top: solid 4px #eee;\r\npadding: 10px;\r\ntext-align: center;\r\ncolor: #888;\r\nfont-size: 11px;","footer_style_links":"text-decoration: none;\r\ncolor: #777777;\r\nfont-weight: normal;","footer_style_links_hover":"text-decoration: none;\r\ncolor: #777777;\r\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":"td#header { \r\npadding-bottom: 15px; \r\n}\r\n\/* removing the padding here and putting them on the sidebars instead. That way the middle column aligns nicely with the header when there are no sidebars *\/\r\ntd#middle {\r\npadding: 0;\r\n}\r\ndiv.searchbox-form {\r\nmargin: 5px 0 15px 5px;\r\n}\r\ndiv#menu1 ul.rMenu {\r\nbackground: transparent;\r\nborder: none;\r\n}\r\ndiv#imagecontainer { \r\nborder-top: solid 5px #333; \r\nborder-bottom: solid 5px #333; \r\n}\r\ndiv.widget ul li {\r\npadding: 1px 5px 1px 12px !important;\r\nbackground: url('\/wp-content\/themes\/atahualpa\/images\/bullets\/round-gray.gif') no-repeat 0 7px;\r\n}\r\n\/* Adjustments for the menu bars, which in their default \r\nstate have 1px borders plus -1px margins to avoid 1+1=2px \r\nborders between neighbor items. *\/\r\nul.rMenu-hor ul, ul.rMenu-hRight ul { margin-top: 0px; }\r\nul.rMenu-hor li { margin-bottom: 0px; margin-top: 0px; margin-left: 0px; }\r\nul.rMenu-hor { padding-left: 0px; }\r\nul.rMenu-ver li { margin-top: 0xp; }\r\n\r\ndiv#menu1 ul.rMenu li a, div#menu2 ul.rMenu li a {\r\npadding: 6px 10px;\t\r\n}\r\n\/* Space between items of page menu bar *\/\r\ndiv#menu1 ul.rMenu li {\r\nmargin-right: 5px;\r\n}\r\n\/* Reset margin for 2nd+ level items *\/\r\ndiv#menu1 ul.rMenu li li {\r\nmargin-right: 0;\r\n}\r\n\/* round corners for page menu bar items *\/\r\ndiv#menu1 ul.rMenu li, div#menu1 ul.rMenu li a {\r\n-webkit-border-top-left-radius: 5px;\r\n-webkit-border-top-right-radius: 5px;\r\n-moz-border-radius-topleft: 5px;\r\n-moz-border-radius-topright: 5px;\r\nborder-top-left-radius: 5px;\r\nborder-top-right-radius: 5px;\r\n}\r\n\/* reset 2nd+ level *\/\r\ndiv#menu1 ul.rMenu li li, div#menu1 ul.rMenu li li a {\r\n-webkit-border-top-left-radius: 0;\r\n-webkit-border-top-right-radius: 0;\r\n-moz-border-radius-topleft: 0;\r\n-moz-border-radius-topright: 0;\r\nborder-top-left-radius: 0;\r\nborder-top-right-radius: 0;\r\n}","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":"a.posts-icon, a.comments-icon, a.email-icon, img.logo","css_compress":"Yes","allow_debug":"Yes","h_blogtitle":1,"h_posttitle":2,"header_image_info":"","single_next_prev_same_cat":"No","images_root":"atahualpa","ata_images_dir":"ata-images","widget_center_top":"","widget_center_bottom":""}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/styles/ata-default2.txt Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,1 @@
+{"IEDocType":"None","overlay_header_image":"","page_post_options":"No","use_bfa_seo":"No","homepage_meta_description":"","homepage_meta_keywords":"","add_blogtitle":"Page Title - Blog Title","title_separator_code":"1","archive_noindex":"No","cat_noindex":"No","tag_noindex":"No","h1_on_single_pages":"Yes","nofollow":"No","body_style":"font-family: verdana, arial, sans-serif;\r\nfont-size: 13px;\r\nline-height: 1.5;\r\ncolor: #000000;\r\nbackground: #fff url('\/wp-content\/themes\/atahualpa\/images\/background7.png') repeat-x top left;","link_color":"365DA0","link_hover_color":"365DA0","link_default_decoration":"none","link_hover_decoration":"underline","link_weight":"normal","layout_width":"980px","layout_min_width":"","layout_max_width":"","layout_style":"\/* setting the layout container to position:relative, so that \r\nwe can position other items (such as the search form in the header) \r\nabsolute, relative to the layout container *\/\r\nposition: relative;\r\n\r\n\r\n\/* Shadow: *\/\r\n\/*\r\nbox-shadow: 0 0 15px #000;\r\n-moz-box-shadow: 0 0 15px #000;\r\n*\/\r\n\/* Round corners: *\/\r\n\/*\r\n-moz-border-radius:10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius:10px;\r\nborder-radius: 10px;\r\n*\/","layout_style_leftright_padding":"10","favicon_file":"new-favicon.ico","configure_header":"%logo %pages %cats\r\n<!-- To remove the ad altogether, start removing here... --> \r\n<div style=\"position:absolute;top:20px;right:20px;width:728px;height:90px;\">\r\n<!-- Put the ad code BELOW this (and remove the sample text if there is any) -->\r\n%image\r\n<!-- Put the ad code ABOVE this -->\r\n<\/div>\r\n<!-- End removing the ad here -->","full_width_header":"No","logoarea_style":"height: 130px;","logo":"newsamplelogo.png","logo_style":"margin: 0 10px 0 0;","blog_title_show":"No","blog_title_style":"margin: 0;\r\npadding: 0;\r\nletter-spacing: -1px;\r\nline-height: 1.0em;\r\nfont-size: 200%;\r\ntext-transform: uppercase;\r\nmargin-right: 740px;","blog_title_weight":"normal","blog_title_color":"000000","blog_title_color_hover":"AC161B","blog_tagline_show":"No","blog_tagline_style":"margin: 0;\r\npadding: 0;\r\nfont-size: 1.2em;\r\nfont-weight: normal;\r\ncolor: #444;\r\nmargin-right: 740px;","show_search_box":"Yes","searchbox_style":"border-bottom: 0;\r\nwidth: 200px;\r\nmargin: 0;\r\npadding: 0;","searchbox_text":"","horbar1":"height: 5px;\r\nbackground: #ffffff;\r\nborder-top: dashed 1px #cccccc;","horbar2":"height: 5px;\r\nbackground: #ffffff;\r\nborder-bottom: dashed 1px #cccccc;","header_image_javascript":"3","header_image_sort_or_shuffle":"Sort","crossslide_fade":"0","header_image_javascript_preload":"Yes","header_image_clickable":"No","headerimage_height":"90","headerimage_alignment":"top center","header_opacity_left":"0","header_opacity_left_width":"200","header_opacity_left_color":"FFFFFF","header_opacity_right":"0","header_opacity_right_width":"200","header_opacity_right_color":"FFFFFF","overlay_blog_title":"No","overlay_blog_tagline":"No","overlay_box_style":"margin-top: 30px;\r\nmargin-left: 30px;","rss_box_width":"280","show_posts_icon":"Yes","post_feed_link":"Posts","post_feed_link_title":"Subscribe to the POSTS feed","show_comments_icon":"Yes","comment_feed_link":"Comments","comment_feed_link_title":"Subscribe to the COMMENTS feed","show_email_icon":"No","email_subscribe_link":"By Email","email_subscribe_link_title":"Subscribe by EMAIL","feedburner_email_id":"","feedburner_old_new":"New - at feedburner.google.com","animate_page_menu_bar":"No","home_page_menu_bar":"Home","exclude_page_menu_bar":"","levels_page_menu_bar":"0","sorting_page_menu_bar":"menu_order","titles_page_menu_bar":"No","page_menu_1st_level_not_linked":"No","anchor_border_page_menu_bar":"0","page_menu_bar_background_color":"EEEEEE","page_menu_bar_background_color_hover":"CCCCCC","page_menu_bar_background_color_parent":"DDDDDD","page_menu_font":"12px Verdana, sans-serif","page_menu_bar_link_color":"555555","page_menu_bar_link_color_hover":"000000","page_menu_transform":"uppercase","page_menu_arrows":"black","page_menu_submenu_width":"11","animate_cat_menu_bar":"No","home_cat_menu_bar":"","exclude_cat_menu_bar":"","levels_cat_menu_bar":"0","sorting_cat_menu_bar":"ID","order_cat_menu_bar":"ASC","titles_cat_menu_bar":"No","add_descr_cat_menu_links":"No","default_cat_descr_text":"View all posts filed under<br \/>%category%","anchor_border_cat_menu_bar":"0","cat_menu_bar_background_color":"666666","cat_menu_bar_background_color_hover":"222222","cat_menu_bar_background_color_parent":"444444","cat_menu_font":"12px Verdana, sans-serif","cat_menu_bar_link_color":"FEFEFE","cat_menu_bar_link_color_hover":"FEFEFE","cat_menu_transform":"uppercase","cat_menu_arrows":"white","cat_menu_submenu_width":"11","center_column_style":"padding: 0 20px 30px 20px;","content_above_loop":"<?php \/* For MULTI post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_page_links('Top'); ?>\r\n","content_inside_loop":"<?php \/* For SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Top'); ?>\r\n\r\n<?php \/* Post Container starts here *\/\r\nif ( function_exists('post_class') ) { ?>\r\n<div <?php if ( is_page() ) { post_class('post'); } else { post_class(); } ?> id=\"post-<?php the_ID(); ?>\">\r\n<?php } else { ?>\r\n<div class=\"<?php echo ( is_page() ? 'page ' : '' ) . 'post\" id=\"post-'; the_ID(); ?>\">\r\n<?php } ?>\r\n\r\n<?php bfa_post_kicker('<div class=\"post-kicker\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_headline('<div class=\"post-headline\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_byline('<div class=\"post-byline\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_bodycopy('<div class=\"post-bodycopy clearfix\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_pagination('<p class=\"post-pagination\"><strong>'.__('Pages:','atahualpa').'<\/strong>','<\/p>'); ?>\r\n\r\n<?php bfa_post_footer('<div class=\"post-footer\">','<\/div>'); ?>\r\n\r\n<\/div><!-- \/ Post -->","content_below_loop":"<?php \/* Displayed on SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Middle'); ?>\r\n\r\n<?php \/* Load Comments template (on single post pages, and static pages, if set on options page): *\/\r\nbfa_get_comments(); ?>\r\n\r\n<?php \/* Displayed on SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Bottom'); ?>\r\n\t\t\r\n<?php \/* Archives Pages. Displayed on a specific static page, if configured at ATO -> Archives Pages: *\/\r\nbfa_archives_page('<div class=\"archives-page\">','<\/div>'); ?>\r\n\t\t\t\r\n<?php \/* Displayed on MULTI post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_page_links('Bottom'); ?>","content_not_found":"<h2><?php _e('Not Found','atahualpa'); ?><\/h2>\r\n<p><?php _e(\"Sorry, but you are looking for something that isn't here.\",\"atahualpa\"); ?><\/p>","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":"padding: 10px;\r\nmargin: 5px 0;\r\nborder-bottom: solid 5px #fafafa;","next_prev_style_comments_below":"padding: 10px;\r\nmargin: 5px 0;\r\nborder-bottom: solid 5px #fafafa;","next_prev_comments_pagination":"Yes","location_multi_next_prev":"Bottom","location_single_next_prev":"Top and Bottom","next_prev_style_top":"padding: 10px 0;\r\nbackground: #fff;\r\nborder-bottom: solid 5px #fafafa;\r\nmargin-bottom: 5px;\r\nfont-size: 11px;","next_prev_style_middle":"padding: 5px;\r\nbackground: #fff;\r\nmargin: 5px 0;\r\nfont-size: 11px;","next_prev_style_bottom":"padding: 5px;\r\nbackground: #fff;\r\nborder-top: solid 5px #fafafa;\r\nmargin: 5px 0;\r\nfont-size: 11px;","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":"saved"},"left_col_pages_exclude":"","left_col_cats_exclude":"","leftcol2_on":{"check-if-saved-once":"saved"},"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":"saved"},"right_col_pages_exclude":"","right_col_cats_exclude":"","rightcol2_on":{"check-if-saved-once":"saved"},"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":"padding: 0 10px;\r\n","left_sidebar2_style":"padding: 0 10px;\r\n","right_sidebar_style":"padding: 0 10px;\r\n","right_sidebar2_style":"padding: 0 10px;\r\n","widget_container":"font-size: 11px;\r\nline-height: 1.2;\r\npadding: 10px 0 20px 0;\r\nborder-bottom: solid 5px #fafafa;\r\nmargin-bottom: 10px;","widget_title_box":"","widget_title":"font-size: 1em;\r\nfont-weight: normal;\r\ncolor: #333;\r\nmargin-bottom: 15px;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\n\r\n\r\n","widget_content":"","widget_lists":{"li-margin-left":"0","link-border-left-width":"0","link-border-left-color":"CCCCCC","link-border-left-hover-color":"000000","link-padding-left":"0","link-weight":"normal","link-color":"365DA0","link-hover-color":"365DA0"},"widget_lists2":{"li-margin-left":"5","link-border-left-width":"0","link-border-left-color":"CCCCCC","link-border-left-hover-color":"000000","link-padding-left":"0","link-weight":"normal","link-color":"365DA0","link-hover-color":"365DA0"},"widget_lists3":{"li-margin-left":"5","link-border-left-width":"0","link-border-left-color":"CCCCCC","link-border-left-hover-color":"000000","link-padding-left":"0","link-weight":"normal","link-color":"365DA0","link-hover-color":"365DA0"},"category_widget_display_type":"inline","select_font_size":"Default","post_kicker_home":"","post_kicker_multi":"","post_kicker_single":"","post_kicker_page":"","post_byline_home":"By %author%, on %date('F jS, Y')%","post_byline_multi":"By %author%, on %date('F jS, Y')%","post_byline_single":"By %author%, on %date('F jS, Y')%","post_byline_page":"","post_footer_home":"<image(comment-gray.gif)> %comments('Leave a comment', 'One comment', '% comments', 'Comments are closed')% <image(folder-gray.gif)> %categories-linked(', ')% %tags-linked(' <image(tag-gray.gif)> ', ', ', ' ')% %edit(' | ', 'Edit', '')%","post_footer_multi":"<image(comment-gray.gif)> %comments('Leave a comment', 'One comment', '% comments', 'Comments are closed')% <image(folder-gray.gif)> %categories-linked(', ')% %tags-linked(' <image(tag-gray.gif)> ', ', ', ' ')% %edit(' | ', 'Edit', '')%","post_footer_single":"<image(folder-gray.gif)> %categories-linked(', ')% %tags-linked(' <image(tag-gray.gif)> ', ', ', ' ')% %edit(' | ', 'Edit', '')%","post_footer_page":"","post_container_style":"margin: 0 0 5px 0;\r\npadding: 20px 0 30px 0;\r\nbackground: #fff;\r\nborder-bottom: solid 5px #fafafa;\r\n","post_container_sticky_style":"background: #eee url('\/wp-content\/themes\/atahualpa\/images\/sticky.gif') 99% 5% no-repeat;\r\npadding: 10px;","post_kicker_style":"margin: 0 0 5px 0;","post_kicker_style_links":"color: #999;\r\ntext-decoration: none;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;","post_kicker_style_links_hover":"color: #cc0000;","post_headline_style":"","post_headline_style_text":"padding: 0;\r\nmargin: 0;\r\nfont-size: 1.9em;\r\nline-height: 1.2;\r\nfont-weight: normal;","post_headline_style_links":"font-weight: normal;","post_headline_style_links_hover":"","post_byline_style":"margin: 5px 0 10px 0;\r\ncolor: #999;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\nfont-size: 11px;","post_byline_style_links":"","post_byline_style_links_hover":"","post_bodycopy_style":"","post_footer_style":"color: #999;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\nfont-size: 11px;","post_footer_style_links":"color: #999;\r\nfont-weight: normal;\r\ntext-decoration: none;","post_footer_style_links_hover":"color: #333;\r\nfont-weight: normal;\r\ntext-decoration: underline;","excerpt_length":"55","dont_strip_excerpts":"<p>","custom_read_more":"<span style=\"color:#777\"> . . . → Read More: <a href=\"%permalink%\">%title%<\/a><\/span>","excerpts_home":"Only Excerpts","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":"<p>Comments are closed.<\/p>","comments_on_pages":"No","separate_trackbacks":"No","avatar_size":"65","avatar_style":"margin: 0 15px 15px 0;\r\n\r\n","show_xhtml_tags":"Yes","comment_form_style":"margin: 7px 0;\r\npadding: 30px 20px;\r\nbackground: #fff;\r\n","submit_button_style":"padding: 4px 10px 4px 10px;\r\nfont-size: 1.2em;\r\nline-height: 1.5em;\r\nheight: 36px;\r\n","comment_display_order":"Oldest on top","footer_style":"padding: 10px;\r\nborder-top: solid 5px #fafafa;\r\ntext-align: center;\r\ncolor: #999;\r\nfont-size: 11px;","footer_style_links":"text-decoration: none;\r\ncolor: #999;\r\nfont-weight: normal;","footer_style_links_hover":"text-decoration: underline;\r\ncolor: #999;\r\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;\r\nborder: solid 3px #eee;\r\n","form_input_field_background":"","highlight_forms":"Yes","highlight_forms_style":"background: #e8eff7;\r\nborder-color: #37699f;","button_style":"background-color: #777777;\r\ncolor: #ffffff;\r\nborder: solid 2px #555555;","button_style_hover":"background-color: #6b9c6b;\r\ncolor: #ffffff;\r\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":"td#header {\r\npadding-bottom: 15px;\r\n}\r\ndiv.searchbox {\r\nposition: absolute;\r\ntop: 130px;\r\nright: 25px;\r\n}\r\ndiv.searchbox input.text {\r\nborder: none;\r\npadding: 2px 15px 2px 3px;\r\nbackground: #fff url('\/wp-content\/themes\/atahualpa\/images\/search2.gif') no-repeat right center;\r\n-moz-border-radius: 5px;\r\n-webkit-border-radius: 5px;\r\nborder-radius: 5px;\r\nheight: 15px;\r\nbolder: solid 1px #e7e7e7;\r\nfont-size: 11px;\r\n}\r\n\r\na.posts-icon {\r\nposition: absolute;\r\ntop: 163px;\r\nright: 140px;\r\nfont-weight: normal;\r\ncolor: #fff;\r\nfont-size: 11px;\r\n}\r\na.comments-icon {\r\nposition: absolute;\r\ntop: 163px;\r\nright: 30px;\r\nfont-weight: normal;\r\ncolor: #fff;\r\nfont-size: 11px;\r\n}\r\n\r\ndiv#menu1 ul.rMenu {\r\nbackground: transparent;\r\nborder: none;\r\n}\r\n\r\ndiv.widget ul li {\r\npadding: 1px 5px 1px 14px !important;\r\nbackground: url('\/wp-content\/themes\/atahualpa\/images\/bullets\/gray-arrow.gif') no-repeat 0 4px;\r\n}\r\ndiv.widget ul li a:hover {\r\ntext-decoration: underline;\r\n}\r\n\r\n\/* Menu Bars *\/\r\n\r\n\r\n\/* Adjustments for the menu bars, which in their default \r\nstate have 1px borders plus -1px margins to avoid 1+1=2px \r\nborders between neighbor items. *\/\r\nul.rMenu-hor ul, ul.rMenu-hRight ul { margin-top: 0px; }\r\nul.rMenu-hor li { margin-bottom: 0px; margin-top: 0px; margin-left: 0px; }\r\nul.rMenu-hor { padding-left: 0px; }\r\nul.rMenu-ver li { margin-top: 0xp; }\r\n\r\ndiv#menu1 ul.rMenu li a, div#menu2 ul.rMenu li a {\r\npadding: 8px 10px;\t\r\n}\r\n\/* different padding for parents with arrow image *\/ \r\ndiv#menu1 ul.rMenu li.rMenu-expand a, div#menu2 ul.rMenu li.rMenu-expand a {\r\npadding: 8px 22px 8px 10px !important;\r\nbackground-position: 97% 50% !important;\r\n}\r\n\/* less padding for children with arrow image *\/ \r\ndiv#menu1 ul.rMenu li.rMenu-expand li a, div#menu2 ul.rMenu li.rMenu-expand li a {\r\npadding: 5px 22px 5px 10px !important;\r\nbackground-position: 97% 50% !important;\r\n}\r\n\r\n\r\n\/*\r\nul#rmenu {\r\npadding:5px;\r\n}\r\n*\/\r\ndiv#menu2 {\r\nbackground: #666666;\r\n}\r\ndiv#menu1 {\r\nbackground: #eee;\r\n}\r\n\r\n\r\n\/* XX comments to .... *\/\r\nh3#comments {\r\nmargin: 10px 0;\r\npadding: 10px;\r\nfont-weight: normal;\r\nbackground: #f5f5f5;\r\n}\r\n\r\nul.commentlist {\r\nborder-top: 0;\r\nmargin: 0;\r\nline-height: 1.4;\r\nfont-size: 12px;\r\n}\r\nul.commentlist li.thread-odd, ul.commentlist li.thread-even {\r\nmargin: 5px 0;\r\npadding: 10px;\r\nborder-bottom: solid 5px #fafafa;\r\nbackground: #fff;\r\n}\r\nspan.authorname, span.authorname a {\r\nfont-weight: normal;\r\nfont-size: 17px !important;\r\n}\r\ndiv.commentmetadata a {\r\ncolor: #999;\r\nfont-size: 10px;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\n}","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":"a.posts-icon, a.comments-icon, a.email-icon, img.logo","css_compress":"Yes","allow_debug":"Yes","bfa_widget_areas":[],"h_blogtitle":1,"h_posttitle":2,"images_root":"atahualpa","ata_images_dir":"ata-images","widget_center_top":"","widget_center_bottom":""}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/styles/ata-round.txt Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,1 @@
+{"IEDocType":"None","overlay_header_image":"","page_post_options":"No","use_bfa_seo":"No","homepage_meta_description":"","homepage_meta_keywords":"","add_blogtitle":"Page Title - Blog Title","title_separator_code":"1","archive_noindex":"No","cat_noindex":"No","tag_noindex":"No","h1_on_single_pages":"Yes","nofollow":"No","body_style":"font-family: verdana, arial, sans-serif;\r\nfont-size: 13px;\r\nline-height: 1.4;\r\ncolor: #000000;\r\nbackground: #d5d5d5;\r\npadding-top: 20px; padding-bottom: 20px;","link_color":"365DA0","link_hover_color":"365DA0","link_default_decoration":"none","link_hover_decoration":"underline","link_weight":"bold","layout_width":"95%","layout_min_width":"","layout_max_width":"","layout_style":"\/* setting the layout container to position:relative, so that \r\nwe can position other items (such as the search form in the header) \r\nabsolute, relative to the layout container *\/\r\nposition: relative;\r\n\r\npadding: 20px; \/*This effectively only affects top\/bottom padding *\/\r\nbackground: #ebebeb;\r\n\/* Shadow *\/\r\nbox-shadow: 0 0 10px #666;\r\n-moz-box-shadow: 0 0 15px #666;\r\n\r\n-moz-border-radius:10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius:10px;\r\nborder-radius: 10px;","layout_style_leftright_padding":"20","favicon_file":"new-favicon.ico","configure_header":"%logo %pages %image %cats","full_width_header":"No","logoarea_style":"height: 80px;","logo":"","logo_style":"margin: 0 10px 0 0;","blog_title_show":"Yes","blog_title_style":"margin: 0;\r\npadding: 0;\r\nletter-spacing: -1px;\r\nline-height: 1.0em;\r\nfont-size: 200%;\r\ntext-transform: uppercase;","blog_title_weight":"normal","blog_title_color":"000000","blog_title_color_hover":"AC161B","blog_tagline_show":"Yes","blog_tagline_style":"margin: 0;\r\npadding: 0;\r\nfont-size: 1.2em;\r\nfont-weight: normal;\r\ncolor: #444;","show_search_box":"Yes","searchbox_style":"border-bottom: 0;\r\nwidth: 200px;\r\nmargin: 0;\r\npadding: 0;","searchbox_text":"","horbar1":"height: 5px;\r\nbackground: #ffffff;\r\nborder-top: dashed 1px #cccccc;","horbar2":"height: 5px;\r\nbackground: #ffffff;\r\nborder-bottom: dashed 1px #cccccc;","header_image_javascript":"0","header_image_sort_or_shuffle":"Sort","crossslide_fade":"0","header_image_javascript_preload":"Yes","header_image_clickable":"No","headerimage_height":"150","headerimage_alignment":"top center","header_opacity_left":"0","header_opacity_left_width":"200","header_opacity_left_color":"FFFFFF","header_opacity_right":"0","header_opacity_right_width":"200","header_opacity_right_color":"FFFFFF","overlay_blog_title":"No","overlay_blog_tagline":"No","overlay_box_style":"margin-top: 30px;\r\nmargin-left: 30px;","rss_box_width":"280","show_posts_icon":"Yes","post_feed_link":"Posts","post_feed_link_title":"Subscribe to the POSTS feed","show_comments_icon":"Yes","comment_feed_link":"Comments","comment_feed_link_title":"Subscribe to the COMMENTS feed","show_email_icon":"No","email_subscribe_link":"By Email","email_subscribe_link_title":"Subscribe by EMAIL","feedburner_email_id":"","feedburner_old_new":"New - at feedburner.google.com","animate_page_menu_bar":"No","home_page_menu_bar":"Home","exclude_page_menu_bar":"","levels_page_menu_bar":"0","sorting_page_menu_bar":"menu_order","titles_page_menu_bar":"No","page_menu_1st_level_not_linked":"No","anchor_border_page_menu_bar":"0","page_menu_bar_background_color":"CCCCCC","page_menu_bar_background_color_hover":"666666","page_menu_bar_background_color_parent":"999999","page_menu_font":"12px Verdana, sans-serif","page_menu_bar_link_color":"555555","page_menu_bar_link_color_hover":"FFFFFF","page_menu_transform":"uppercase","page_menu_arrows":"black","page_menu_submenu_width":"11","animate_cat_menu_bar":"No","home_cat_menu_bar":"","exclude_cat_menu_bar":"","levels_cat_menu_bar":"0","sorting_cat_menu_bar":"ID","order_cat_menu_bar":"ASC","titles_cat_menu_bar":"No","add_descr_cat_menu_links":"No","default_cat_descr_text":"View all posts filed under<br \/>%category%","anchor_border_cat_menu_bar":"0","cat_menu_bar_background_color":"666666","cat_menu_bar_background_color_hover":"444444","cat_menu_bar_background_color_parent":"222222","cat_menu_font":"12px 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;","content_above_loop":"<?php \/* For MULTI post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_page_links('Top'); ?>\r\n","content_inside_loop":"<?php \/* For SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Top'); ?>\r\n\r\n<?php \/* Post Container starts here *\/\r\nif ( function_exists('post_class') ) { ?>\r\n<div <?php if ( is_page() ) { post_class('post'); } else { post_class(); } ?> id=\"post-<?php the_ID(); ?>\">\r\n<?php } else { ?>\r\n<div class=\"<?php echo ( is_page() ? 'page ' : '' ) . 'post\" id=\"post-'; the_ID(); ?>\">\r\n<?php } ?>\r\n\r\n<?php bfa_post_kicker('<div class=\"post-kicker\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_headline('<div class=\"post-headline\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_byline('<div class=\"post-byline\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_bodycopy('<div class=\"post-bodycopy clearfix\">','<\/div>'); ?>\r\n\r\n<?php bfa_post_pagination('<p class=\"post-pagination\"><strong>'.__('Pages:','atahualpa').'<\/strong>','<\/p>'); ?>\r\n\r\n<?php bfa_post_footer('<div class=\"post-footer\">','<\/div>'); ?>\r\n\r\n<\/div><!-- \/ Post -->","content_below_loop":"<?php \/* Displayed on SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Middle'); ?>\r\n\r\n<?php \/* Load Comments template (on single post pages, and static pages, if set on options page): *\/\r\nbfa_get_comments(); ?>\r\n\r\n<?php \/* Displayed on SINGLE post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_post_links('Bottom'); ?>\r\n\t\t\r\n<?php \/* Archives Pages. Displayed on a specific static page, if configured at ATO -> Archives Pages: *\/\r\nbfa_archives_page('<div class=\"archives-page\">','<\/div>'); ?>\r\n\t\t\t\r\n<?php \/* Displayed on MULTI post pages if activated at ATO -> Next\/Previous Navigation: *\/\r\nbfa_next_previous_page_links('Bottom'); ?>","content_not_found":"<h2><?php _e('Not Found','atahualpa'); ?><\/h2>\r\n<p><?php _e(\"Sorry, but you are looking for something that isn't here.\",\"atahualpa\"); ?><\/p>","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 »","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":"padding: 10px;\r\nbackground: #f7f7f7;\r\n-moz-border-radius:10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius:10px;\r\nborder-radius: 10px;\r\nborder: solid 1px #e5e5e5;\r\nmargin: 5px 0;","next_prev_style_comments_below":"padding: 10px;\r\nbackground: #f7f7f7;\r\n-moz-border-radius:10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius:10px;\r\nborder-radius: 10px;\r\nborder: solid 1px #e5e5e5;\r\nmargin: 5px 0;","next_prev_comments_pagination":"Yes","location_multi_next_prev":"Top and Bottom","location_single_next_prev":"Top, Middle and Bottom","next_prev_style_top":"padding: 5px;\r\nbackground: #fff;\r\nborder: solid 1px #e5e5e5;\r\n-moz-border-radius: 5px;\r\n-khtml-border-radius: 5px;\r\n-webkit-border-radius: 5px;\r\nborder-radius: 5px;\r\nmargin-bottom: 5px;","next_prev_style_middle":"padding: 5px;\r\nbackground: #fff;\r\nborder: solid 1px #e5e5e5;\r\n-moz-border-radius: 5px;\r\n-khtml-border-radius: 5px;\r\n-webkit-border-radius: 5px;\r\nborder-radius: 5px;\r\nmargin: 5px 0;","next_prev_style_bottom":"padding: 5px;\r\nbackground: #fff;\r\nborder: solid 1px #e5e5e5;\r\n-moz-border-radius: 5px;\r\n-khtml-border-radius: 5px;\r\n-webkit-border-radius: 5px;\r\nborder-radius: 5px;\r\nmargin: 5px 0;","leftcol_on":{"check-if-saved-once":"saved"},"left_col_pages_exclude":"","left_col_cats_exclude":"","leftcol2_on":{"check-if-saved-once":"saved"},"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":"saved"},"right_col_pages_exclude":"","right_col_cats_exclude":"","rightcol2_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":"saved"},"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":"padding-right: 5px;","left_sidebar2_style":"padding-right: 5px;","right_sidebar_style":"padding-left: 5px;","right_sidebar2_style":"padding-left: 5px;","widget_container":"font-size: 12px;\r\nmargin: 0 0 5px 0;\r\npadding: 10px;\r\nbackground: #fff;\r\n-moz-border-radius:10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius:10px;\r\nborder-radius: 10px;\r\nborder: solid 1px #e5e5e5;","widget_title_box":"","widget_title":"font-size: 0.8em;\r\nfont-weight: normal;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\ncolor: #333;\r\nborder: solid 1px #f0f0f0;\r\npadding: 5px 5px 5px 10px;\r\nmargin-bottom: 10px;\r\n-moz-border-radius:5px;\r\n-khtml-border-radius: 5px;\r\n-webkit-border-radius:5px;\r\nborder-radius: 5px;\r\nbackground: #f5f5f5;","widget_content":"","widget_lists":{"li-margin-left":"0","link-border-left-width":"0","link-border-left-color":"CCCCCC","link-border-left-hover-color":"000000","link-padding-left":"0","link-weight":"normal","link-color":"365DA0","link-hover-color":"365DA0"},"widget_lists2":{"li-margin-left":"5","link-border-left-width":"0","link-border-left-color":"CCCCCC","link-border-left-hover-color":"000000","link-padding-left":"0","link-weight":"normal","link-color":"365DA0","link-hover-color":"365DA0"},"widget_lists3":{"li-margin-left":"5","link-border-left-width":"0","link-border-left-color":"CCCCCC","link-border-left-hover-color":"000000","link-padding-left":"0","link-weight":"normal","link-color":"365DA0","link-hover-color":"365DA0"},"category_widget_display_type":"inline","select_font_size":"Default","post_kicker_home":"","post_kicker_multi":"","post_kicker_single":"","post_kicker_page":"","post_byline_home":"By %author%, on %date('F jS, Y')%","post_byline_multi":"By %author%, on %date('F jS, Y')%","post_byline_single":"By %author%, on %date('F jS, Y')%","post_byline_page":"","post_footer_home":"<image(comment-gray.gif)> %comments('Leave a comment', 'One comment', '% comments', 'Comments are closed')% <image(folder-gray.gif)> %categories-linked(', ')% %tags-linked(' <image(tag-gray.gif)> ', ', ', ' ')% %edit(' | ', 'Edit', '')%","post_footer_multi":"<image(comment-gray.gif)> %comments('Leave a comment', 'One comment', '% comments', 'Comments are closed')% <image(folder-gray.gif)> %categories-linked(', ')% %tags-linked(' <image(tag-gray.gif)> ', ', ', ' ')% %edit(' | ', 'Edit', '')%","post_footer_single":"<image(folder-gray.gif)> %categories-linked(', ')% %tags-linked(' <image(tag-gray.gif)> ', ', ', ' ')% %edit(' | ', 'Edit', '')%","post_footer_page":"","post_container_style":"margin: 0 0 5px 0;\r\npadding: 30px 20px;\r\nbackground: #fff;\r\n-moz-border-radius:10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius:10px;\r\nborder-radius: 10px;\r\nborder: solid 1px #e5e5e5;","post_container_sticky_style":"background: #eee url('\/wp-content\/themes\/atahualpa\/images\/sticky.gif') 99% 5% no-repeat;\r\nborder: dashed 1px #cccccc;\r\npadding: 10px;","post_kicker_style":"margin: 0 0 5px 0;","post_kicker_style_links":"color: #999;\r\ntext-decoration: none;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;","post_kicker_style_links_hover":"color: #cc0000;","post_headline_style":"","post_headline_style_text":"padding: 0;\r\nmargin: 0;\r\nfont-size: 1.7em;","post_headline_style_links":"","post_headline_style_links_hover":"","post_byline_style":"margin: 5px 0 10px 0;\r\ncolor: #999;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\nfont-size: 11px;","post_byline_style_links":"","post_byline_style_links_hover":"","post_bodycopy_style":"","post_footer_style":"color: #999;\r\ntext-transform: uppercase;\r\nletter-spacing: 1px;\r\nfont-size: 11px;","post_footer_style_links":"color: #999;\r\nfont-weight: normal;\r\ntext-decoration: none;","post_footer_style_links_hover":"color: #333;\r\nfont-weight: normal;\r\ntext-decoration: underline;","excerpt_length":"55","dont_strip_excerpts":"<p>","custom_read_more":"<span style=\"color:#777\"> . . . → Read More: <a href=\"%permalink%\">%title%<\/a><\/span>","excerpts_home":"Only Excerpts","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":"<p>Comments are closed.<\/p>","comments_on_pages":"No","separate_trackbacks":"No","avatar_size":"65","avatar_style":"margin: 0 8px 1px 0;\r\npadding: 3px;\r\nborder: solid 1px #ddd;\r\nbackground-color: #f3f3f3;\r\n-moz-border-radius: 3px;\r\n-khtml-border-radius: 3px;\r\n-webkit-border-radius: 3px;\r\nborder-radius: 3px;","show_xhtml_tags":"Yes","comment_form_style":"margin: 7px 0;\r\npadding: 30px 20px;\r\nbackground: #fff;\r\nborder: solid 1px #e5e5e5;\r\n-moz-border-radius: 10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius: 10px;\r\nborder-radius: 10px;","submit_button_style":"padding: 4px 10px 4px 10px;\r\nfont-size: 1.2em;\r\nline-height: 1.5em;\r\nheight: 36px;\r\n-moz-border-radius: 10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius: 10px;\r\nborder-radius: 10px;","comment_display_order":"Oldest on top","footer_style":"\/* margin has no effect here because this is a TD (without a DIV inside). \r\nPutting padding-bottom on td#middle (through CSS Insert) instead to get \r\nsome margin above the footer *\/\r\npadding: 10px;\r\nbackground: #ddd;\r\n-moz-border-radius:10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius:10px;\r\nborder-radius: 10px;\r\nborder: solid 1px #d5d5d5;\r\ntext-align: center;\r\ncolor: #666;\r\nfont-size: 11px;","footer_style_links":"text-decoration: none;\r\ncolor: #777777;\r\nfont-weight: normal;","footer_style_links_hover":"text-decoration: none;\r\ncolor: #777777;\r\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;\r\nborder-top: solid 1px #333333;\r\nborder-left: solid 1px #333333;\r\nborder-right: solid 1px #999999;\r\nborder-bottom: solid 1px #cccccc;\r\n-moz-border-radius:5px;\r\n-khtml-border-radius: 5px;\r\n-webkit-border-radius:5px;\r\nborder-radius: 5px;","form_input_field_background":"inputbackgr.gif","highlight_forms":"Yes","highlight_forms_style":"background: #e8eff7;\r\nborder-color: #37699f;","button_style":"background-color: #777777;\r\ncolor: #ffffff;\r\nborder: solid 2px #555555;","button_style_hover":"background-color: #6b9c6b;\r\ncolor: #ffffff;\r\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":"\/* removing the default top padding of td#middle of \"classic\" Atahualpa, \r\nand putting some more padding-bottom here, for more margin above the footer *\/\r\ntd#middle {\r\npadding: 0 0 15px 0;\r\n}\r\n\r\ndiv.searchbox {\r\nposition: absolute;\r\ntop: 95px;\r\nright: 20px;\r\n}\r\n\r\ndiv.searchbox-form {\r\nmargin: 5px 0 15px 5px;\r\n}\r\ndiv#menu1 ul.rMenu {\r\nbackground: transparent;\r\nborder: none;\r\n}\r\ndiv#imagecontainer {\r\nmargin: 5px 0; \r\nborder: solid 5px #666;\r\n-moz-border-radius:10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius:10px;\r\nborder-radius: 10px;\r\n}\r\ndiv.widget ul li {\r\npadding: 1px 5px 1px 12px !important;\r\nbackground: url('\/wp-content\/themes\/atahualpa\/images\/bullets\/round-gray.gif') no-repeat 0 7px;\r\n}\r\n\r\n\/* Menu Bars *\/\r\n\r\ndiv#menu1 ul.rMenu-ver {\r\n-moz-border-radius:5px;\r\n-khtml-border-radius: 50px;\r\n-webkit-border-radius:5px;\r\nborder-radius: 5px;\r\npadding: 5px;\r\n\/* the background color of sub-UL's must be set here *\/\r\nbackground: #ccc;\r\nbox-shadow: 0 3px 10px #6663;\r\n-moz-box-shadow: 0 10px 5px #666;\r\n}\r\n\r\ndiv#menu2 ul.rMenu {\r\n-moz-border-radius:5px;\r\n-khtml-border-radius: 50px;\r\n-webkit-border-radius:5px;\r\nborder-radius: 5px;\r\npadding: 3px;\r\nmargin: 5px 0;\r\n}\r\ndiv#menu2 ul.rMenu-ver {\r\n-moz-border-radius:5px;\r\n-khtml-border-radius: 50px;\r\n-webkit-border-radius:5px;\r\nborder-radius: 5px;\r\npadding: 5px;\r\n\/* the background color of sub-UL's must be set here *\/\r\nbackground: #666;\r\nbox-shadow: 0 3px 10px #333;\r\n-moz-box-shadow: 0 3px 10px #333;\r\n}\r\n\r\n\r\n\/* Adjustments for the menu bars, which in their default \r\nstate have 1px borders plus -1px margins to avoid 1+1=2px \r\nborders between neighbor items. *\/\r\nul.rMenu-hor ul, ul.rMenu-hRight ul { margin-top: 0px; }\r\nul.rMenu-hor li { margin-bottom: 0px; margin-top: 0px; margin-left: 0px; }\r\nul.rMenu-hor { padding-left: 0px; }\r\nul.rMenu-ver li { margin-top: 0xp; }\r\n\r\ndiv#menu1 ul.rMenu li a, div#menu2 ul.rMenu li a {\r\npadding: 6px 10px;\t\r\n}\r\n\/* Space between items of page menu bar *\/\r\ndiv#menu1 ul.rMenu li {\r\nmargin-right: 5px;\r\n}\r\n\/* Reset margin for 2nd+ level items *\/\r\ndiv#menu1 ul.rMenu li li {\r\nmargin-right: 0;\r\n}\r\n\r\n\/* round corners for menu bar items *\/\r\ndiv#menu1 ul.rMenu li, div#menu1 ul.rMenu li a,\r\ndiv#menu2 ul.rMenu li, div#menu2 ul.rMenu li a {\r\n-webkit-border-radius: 5px;\r\n-moz-border-radius: 5px;\r\nborder-radius: 5px;\r\n}\r\n\/* reset 2nd+ level *\/\r\n\/*\r\ndiv#menu1 ul.rMenu li li, div#menu1 ul.rMenu li li a,\r\ndiv#menu2 ul.rMenu li li, div#menu2 ul.rMenu li li a {\r\n-webkit-border-radius: 0;\r\n-moz-border-radius: 0;\r\nborder-radius: 0;\r\n}\r\n*\/\r\n\r\n\/* XX comments to .... *\/\r\nh3#comments {\r\nmargin: 5px 0;\r\npadding: 10px;\r\nbackground: #fff;\r\n-moz-border-radius:10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius:10px;\r\nborder-radius: 10px;\r\nborder: solid 1px #e5e5e5;\r\n}\r\n\r\nul.commentlist {\r\nborder-top: 0;\r\nmargin: 0;\r\n}\r\nul.commentlist li.thread-odd, ul.commentlist li.thread-even {\r\nmargin: 5px 0;\r\npadding: 10px;\r\nbackground: #fff;\r\n-moz-border-radius:10px;\r\n-khtml-border-radius: 10px;\r\n-webkit-border-radius:10px;\r\nborder-radius: 10px;\r\nborder: solid 1px #e5e5e5;\r\n}","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":"a.posts-icon, a.comments-icon, a.email-icon, img.logo","css_compress":"Yes","allow_debug":"Yes","h_blogtitle":1,"h_posttitle":2,"header_image_info":"","single_next_prev_same_cat":"No","images_root":"atahualpa","ata_images_dir":"ata-images","widget_center_top":"","widget_center_bottom":""}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/template_multi_column_custom_query.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,272 @@
+<?php
+/*
+Template Name: JUGGLEDAD's multi column/custom query
+Version: 1.6
+
+= 1.6 =
+* added code for for 'more' processing
+= 1.5 =
+* added code for center widget area from Atahualpa 3.7.12
+= 1.4 =
+* added option to control the number of full posts vrs excerpts to show
+= 1.3 =
+* added even some more error checking
+= 1.2 =
+* added some more error checking
+= 1.1 =
+* added error checking
+= 1.0 =
+* original release
+
+LICENSE:
+
+ "JUGGLEDAD's multi column/custom query" is a template for the Atahualpa theme
+ Copyright (C) 2011 Paul M Woodard, The User's Guru (www.theusersguru.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.
+
+ For a copy of the GNU General Public License go to 'www.gnu.org/licenses'
+
+*/
+ ?>
+
+ <?php
+
+list($bfa_ata, $cols, $left_col, $left_col2, $right_col, $right_col2, $bfa_ata['h_blogtitle'], $bfa_ata['h_posttitle']) = bfa_get_options();
+global $bfa_pagetemplate_name, $bfa_pagetemplate_full_post_count, $bfa_ata_postcount, $more;
+
+get_header();
+extract($bfa_ata);
+
+ $bfa_ata_postcount = 0;
+ $mccq_page = new WP_Query('page_id=' . $post->ID); /* save the page id */
+ $mccq_page->the_post();
+
+ $number_of_columns = 1;
+ $posts_above_the_column = 0;
+ $mccq_args = 'post_status=publish';
+ $show_page_title = 'no';
+ $show_page_text = 'no';
+
+ $custom_fields = get_post_custom($post->ID);
+ $bfa_pagetemplate_name = 'template_multi_column_custom_query.php';
+ $number_of_full_posts = 0;
+// -------------------------------------------------------------------------
+// get the custom query
+// -------------------------------------------------------------------------
+ $my_custom_field = $custom_fields['custom_query'];
+ if (is_array($my_custom_field)) {
+ foreach ( $my_custom_field as $key => $value ) {
+ if ($key == 'custom_query') {$mccq_args= $value;}
+ }
+ }
+
+// -------------------------------------------------------------------------
+// get the show_page_title
+// -------------------------------------------------------------------------
+ $my_custom_field = $custom_fields['show_page_title'];
+ if (is_array($my_custom_field)) {
+ foreach ( $my_custom_field as $key => $value ) {
+ if ($key == 'show_page_title') {
+ $show_page_title = strtolower($value);
+ if (($show_page_title != 'yes') AND ($show_page_title != 'no')) { ?>
+<br><strong><font color="Crimson">Warning:</font> your value for 'show_page_title' on page '<?php the_title(); ?>' must be 'yes' or 'no' - please edit the page and set the value correctly</strong><br>
+
+ <?php }
+ }
+ }
+ }
+
+// -------------------------------------------------------------------------
+// get the number_of_full_posts
+// -------------------------------------------------------------------------
+ $my_custom_field = $custom_fields['number_of_full_posts'];
+ if (is_array($my_custom_field)) {
+ foreach ( $my_custom_field as $key => $value ) {
+ if ($key == 'number_of_full_posts') {
+ $number_of_full_posts = strtolower($value);
+ if ((!is_numeric($number_of_full_posts)) OR ($number_of_full_posts < 0)) { ?>
+<br><strong><font color="Crimson">Warning:</font> your value for 'number_of_full_posts' on page '<?php the_title(); ?>' is not numeric or is a negative number - please edit the page and set the value correctly</strong><br>
+ <?php }
+ }
+ }
+ }
+ $bfa_pagetemplate_full_post_count = $number_of_full_posts;
+
+// -------------------------------------------------------------------------
+// get the show_page_text
+// -------------------------------------------------------------------------
+ $my_custom_field = $custom_fields['show_page_text'];
+ if (is_array($my_custom_field)) {
+ foreach ( $my_custom_field as $key => $value ) {
+ if ($key == 'show_page_text') {
+ $show_page_text = strtolower($value);
+ if (($show_page_text != 'yes') AND ($show_page_text != 'no')) { ?>
+<br><strong><font color="Crimson">Warning:</font> your value for 'show_page_text' on page '<?php the_title(); ?>' must be 'yes' or 'no' - please edit the page and set the value correctly</strong><br>
+ <?php }
+ }
+ }
+ }
+
+// -------------------------------------------------------------------------
+// get the posts_above_the_column
+// -------------------------------------------------------------------------
+ $my_custom_field = $custom_fields['posts_above_the_column'];
+ if (is_array($my_custom_field)) {
+ foreach ( $my_custom_field as $key => $value ) {
+ if ($key == 'posts_above_the_column') {
+ $posts_above_the_column = $value;
+ if ((!is_numeric($posts_above_the_column)) OR ($posts_above_the_column < 0)) { ?>
+<br><strong><font color="Crimson">Warning:</font> your value for 'posts_above_the_column' on page '<?php the_title(); ?>' is not numeric or is a negative number - please edit the page and set the value correctly</strong><br>
+ <?php }
+ }
+ }
+ }
+
+// -------------------------------------------------------------------------
+// get the number_of_columns
+// -------------------------------------------------------------------------
+ $my_custom_field = $custom_fields['number_of_columns'];
+ if (is_array($my_custom_field)) {
+ foreach ( $my_custom_field as $key => $value ) {
+ if ($key == 'number_of_columns') {
+ $number_of_columns = $value;
+ if ((!is_numeric($number_of_columns)) OR ($number_of_columns < 1)) { ?>
+<br><strong><font color="Crimson">Warning:</font> your value for 'number_of_columns' on page '<?php the_title(); ?>' is not numeric or is less than 1 - please edit the page and set the value correctly</strong><br>
+ <?php }
+
+ }
+ }
+ }
+
+
+// wp_reset_query();
+ $paged = get_query_var('paged');
+ if (!$paged) {
+ $paged = get_query_var('page');
+ if (!$paged) {
+ $paged = 0;
+ }
+ }
+// -------------------------------------------------------------------------
+// Should we show the page title?
+// -------------------------------------------------------------------------
+ if ($show_page_title == 'yes') {
+ bfa_post_kicker('<div class="post-kicker">','</div>');
+ bfa_post_headline('<div class="post-headline">','</div>');
+ bfa_post_byline('<div class="post-byline">','</div>');
+ }
+
+// -------------------------------------------------------------------------
+// Should we show the page text?
+// -------------------------------------------------------------------------
+ if ($show_page_text=='yes' ) {
+ bfa_post_bodycopy('<div class="post-bodycopy clearfix">','</div>');
+ }
+
+ $mccq_args= $mccq_args."&paged=$paged";
+?>
+
+<?php
+/* ===================================
+ THIS SECTION WILL PROCESS THE POSTS
+ =================================== */
+?>
+
+<?php
+$more = 0;
+query_posts($mccq_args);
+
+ /* If there are any posts: */
+if (have_posts()) : $bfa_ata_postcount = 0; /* Postcount needed for option "XX first posts full posts, rest excerpts" */ ?>
+
+ <?php if ($bfa_ata['widget_center_top'] <> '') {
+ echo bfa_parse_widget_areas($bfa_ata['widget_center_top']);
+ } ?>
+
+ <?php // Deactivated since 3.6.5
+ # include 'bfa://content_above_loop';
+ // Uses the following static code instead: ?>
+ <?php bfa_next_previous_page_links('Top'); // For MULTI post pages if activated at ATO -> Next/Previous Navigation: ?>
+
+ <table cellpadding="0" cellspacing="0" border="0">
+ <?php $column_cnt = 1; ?>
+
+ <?php while (have_posts()) : the_post(); $bfa_ata_postcount++; ?>
+
+ <?php if ($column_cnt == 1) { echo "<tr>"; }
+
+ if ($bfa_ata_postcount <= $posts_above_the_column) { ?>
+ <td id="mccq-header" colspan="<?php echo $number_of_columns;?>"> <?php
+ } else { ?>
+ <td class="mccq_column<?php echo $column_cnt;?>" style="vertical-align: top"> <?php
+ } ?>
+
+ <?php // Deactivated since 3.6.5
+ #include 'bfa://content_inside_loop';
+ // Uses the following static code instead: ?>
+ <?php bfa_next_previous_post_links('Top'); // For SINGLE post pages if activated at ATO -> Next/Previous Navigation ?>
+ <?php /* Post Container starts here */
+ if ( function_exists('post_class') ) { ?>
+ <div <?php if ( is_page() ) { post_class('post'); } else { post_class(); } ?> id="post-<?php the_ID(); ?>">
+ <?php } else { ?>
+ <div class="<?php echo ( is_page() ? 'page ' : '' ) . 'post" id="post-'; the_ID(); ?>">
+ <?php } ?>
+ <?php bfa_post_kicker('<div class="post-kicker">','</div>'); ?>
+ <?php bfa_post_headline('<div class="post-headline">','</div>'); ?>
+ <?php bfa_post_byline('<div class="post-byline">','</div>'); ?>
+ <?php bfa_post_bodycopy('<div class="post-bodycopy clearfix">','</div>'); ?>
+ <?php bfa_post_pagination('<p class="post-pagination"><strong>'.__('Pages:','atahualpa').'</strong>','</p>'); ?>
+ <?php bfa_post_footer('<div class="post-footer">','</div>'); ?>
+ </div><!-- / Post -->
+
+ </td>
+ <?php if ($bfa_ata_postcount <= $posts_above_the_column) { ?>
+ </tr> <?php
+ $column_cnt=0;
+ } ?>
+
+ <?php $column_cnt++;
+ if ($column_cnt > $number_of_columns) {
+ echo "</tr>";
+ $column_cnt=1;
+ } ?>
+
+ <?php endwhile; ?>
+
+ </table>
+
+ <?php // Deactivated since 3.6.5
+ # include 'bfa://content_below_loop';
+ // Uses the following static code instead: ?>
+ <?php bfa_next_previous_post_links('Middle'); // Displayed on SINGLE post pages if activated at ATO -> Next/Previous Navigation: ?>
+ <?php bfa_get_comments(); // Load Comments template (on single post pages, and static pages, if set on options page): ?>
+ <?php bfa_next_previous_post_links('Bottom'); // Displayed on SINGLE post pages if activated at ATO -> Next/Previous Navigation: ?>
+ <?php bfa_archives_page('<div class="archives-page">','</div>'); // Archives Pages. Displayed on a specific static page, if configured at ATO -> Archives Pages: ?>
+ <?php bfa_next_previous_page_links('Bottom'); // Displayed on MULTI post pages if activated at ATO -> Next/Previous Navigation: ?>
+
+ <?php if ($bfa_ata['widget_center_bottom'] <> '') {
+ echo bfa_parse_widget_areas($bfa_ata['widget_center_bottom']);
+ } ?>
+
+<?php /* END of: If there are any posts */
+else : /* If there are no posts: */ ?>
+
+<?php // Deactivated since 3.6.5
+#include 'bfa://content_not_found';
+// Uses the following static code instead: ?>
+<h2><?php _e('Not Found','atahualpa'); ?></h2>
+<p><?php _e("Sorry, but you are looking for something that isn't here.","atahualpa"); ?></p>
+
+<?php endif; /* END of: If there are no posts */ ?>
+<?php $wp_query = $mccq_page; /* reset the page id */ ?>
+
+<?php get_footer(); ?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/app/themes/atahualpa/upload.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,29 @@
+<?php
+if (!empty($_SERVER['SCRIPT_FILENAME']) AND 'upload.php' == basename($_SERVER['SCRIPT_FILENAME'])) {
+ die ('Please do not load this page directly.');
+}
+global $user_ID;
+
+if( $user_ID ) {
+ if( current_user_can('level_10') ) {
+ $import_options = bfa_file_get_contents($_FILES['userfile']['tmp_name']);
+
+ // 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 "<strong><span style='color:green'>Successfully imported. Reloading admin area in 2 seconds... </span><code>" .
+ basename($_FILES['userfile']['name']) . "</code></strong><br />";
+
+ // Probably not a valid settings file:
+ } else {
+ echo "<strong><span style='color:red'>Sorry, but </span><code>" .
+ basename($_FILES['userfile']['name']) . "</code> <span style='color:red'>doesn't appear
+ to be a valid Atahualpa Settings File.</span></strong>";
+ }
+
+ } else {
+ die("<span style='color:green'>Only admins can import settings</span>");
+ }
+}
+die();
+?>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/web/index.php Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,5 @@
+<?php
+
+/** WordPress view bootstrapper */
+define('WP_USE_THEMES', true);
+require __DIR__ . '/wp/wp-blog-header.php';
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/wp-cli.yml Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,3 @@
+path: web/wp
+server:
+ docroot: web
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wp/Dockerfile Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,94 @@
+FROM php:7.3-fpm-alpine
+
+# docker-entrypoint.sh dependencies
+RUN apk add --no-cache \
+# in theory, docker-entrypoint.sh is POSIX-compliant, but priority is a working, consistent image
+ bash \
+# BusyBox sed is not sufficient for some of our sed expressions
+ sed \
+ less \
+ mysql-client ; \
+ apk add --no-cache --virtual .composer-rundeps git subversion openssh mercurial tini patch make zip unzip coreutils;
+
+
+RUN set -ex; \
+ \
+ # install the PHP extensions we need
+ apk add --no-cache --virtual .build-deps \
+ libjpeg-turbo-dev \
+ libpng-dev \
+ libzip-dev \
+ zlib-dev; \
+ docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \
+ docker-php-ext-configure zip --with-libzip; \
+ docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd mysqli opcache zip; \
+ runDeps="$( \
+ scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
+ | tr ',' '\n' \
+ | sort -u \
+ | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
+ )"; \
+ apk add --virtual .wordpress-phpexts-rundeps $runDeps; \
+# install composer dependencies
+ apk add --no-cache --virtual .composer-phpext-rundeps $runDeps; \
+ printf "# composer php cli ini settings\n\
+date.timezone=UTC\n\
+memory_limit=-1\n\
+opcache.enable_cli=1\n\
+" > $PHP_INI_DIR/php-cli.ini ; \
+# clean
+ apk del .build-deps
+
+# install composer
+ENV COMPOSER_ALLOW_SUPERUSER 1
+ENV COMPOSER_HOME /tmp
+ENV COMPOSER_VERSION 1.8.5
+
+RUN curl --silent --fail --location --retry 3 --output /tmp/installer.php --url https://raw.githubusercontent.com/composer/getcomposer.org/cb19f2aa3aeaa2006c0cd69a7ef011eb31463067/web/installer \
+ && php -r " \
+ \$signature = '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5'; \
+ \$hash = hash('sha384', file_get_contents('/tmp/installer.php')); \
+ if (!hash_equals(\$signature, \$hash)) { \
+ unlink('/tmp/installer.php'); \
+ echo 'Integrity check failed, installer is either corrupt or worse.' . PHP_EOL; \
+ exit(1); \
+ }" \
+ && php /tmp/installer.php --no-ansi --install-dir=/usr/bin --filename=composer --version=${COMPOSER_VERSION} \
+ && composer --ansi --version --no-interaction \
+# install prestissimo composer parallel install plugin.
+ && composer --no-interaction global require --no-progress hirak/prestissimo \
+ && rm -f /tmp/installer.php
+
+
+
+# set recommended PHP.ini settings
+# see https://secure.php.net/manual/en/opcache.installation.php
+RUN { \
+ echo 'opcache.memory_consumption=128'; \
+ echo 'opcache.interned_strings_buffer=8'; \
+ echo 'opcache.max_accelerated_files=4000'; \
+ echo 'opcache.revalidate_freq=2'; \
+ echo 'opcache.fast_shutdown=1'; \
+ echo 'opcache.enable_cli=1'; \
+ } > /usr/local/etc/php/conf.d/opcache-recommended.ini
+# https://codex.wordpress.org/Editing_wp-config.php#Configure_Error_Logging
+RUN { \
+ echo 'error_reporting = 4339'; \
+ echo 'display_errors = Off'; \
+ echo 'display_startup_errors = Off'; \
+ echo 'log_errors = On'; \
+ echo 'error_log = /dev/stderr'; \
+ echo 'log_errors_max_len = 1024'; \
+ echo 'ignore_repeated_errors = On'; \
+ echo 'ignore_repeated_source = Off'; \
+ echo 'html_errors = Off'; \
+ } > /usr/local/etc/php/conf.d/error-logging.ini
+
+VOLUME /var/www/html
+
+COPY ./docker-entrypoint.sh /usr/local/bin/
+RUN chmod +x /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+CMD ["php-fpm"]
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wp/docker-entrypoint.sh Wed Dec 04 11:40:06 2019 +0100
@@ -0,0 +1,219 @@
+#!/bin/bash
+set -euo pipefail
+
+# usage: file_env VAR [DEFAULT]
+# ie: file_env 'XYZ_DB_PASSWORD' 'example'
+# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of
+# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature)
+file_env() {
+ local var="$1"
+ local fileVar="${var}_FILE"
+ local def="${2:-}"
+ if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then
+ echo >&2 "error: both $var and $fileVar are set (but are exclusive)"
+ exit 1
+ fi
+ local val="$def"
+ if [ "${!var:-}" ]; then
+ val="${!var}"
+ elif [ "${!fileVar:-}" ]; then
+ val="$(< "${!fileVar}")"
+ fi
+ export "$var"="$val"
+ unset "$fileVar"
+}
+
+generate_rnd() {
+ head /dev/urandom | tr -dc A-Za-z0-9 | head -c 64
+}
+
+# allow any of these "Authentication Unique Keys and Salts." to be specified via
+# environment variables with a "WORDPRESS_" prefix (ie, "WORDPRESS_AUTH_KEY")
+uniqueEnvs=(
+ AUTH_KEY
+ SECURE_AUTH_KEY
+ LOGGED_IN_KEY
+ NONCE_KEY
+ AUTH_SALT
+ SECURE_AUTH_SALT
+ LOGGED_IN_SALT
+ NONCE_SALT
+)
+envs=(
+ WORDPRESS_DB_HOST
+ WORDPRESS_DB_USER
+ WORDPRESS_DB_PASSWORD
+ WORDPRESS_DB_NAME
+ WORDPRESS_DB_CHARSET
+ WORDPRESS_DB_COLLATE
+ "${uniqueEnvs[@]/#/WORDPRESS_}"
+ WORDPRESS_TABLE_PREFIX
+ WORDPRESS_DEBUG
+ WORDPRESS_CONFIG_EXTRA
+)
+haveConfig=
+for e in "${envs[@]}"; do
+ file_env "$e"
+ if [ -z "$haveConfig" ] && [ -n "${!e}" ]; then
+ haveConfig=1
+ fi
+done
+
+# linking backwards-compatibility
+if [ -n "${!MYSQL_ENV_MYSQL_*}" ]; then
+ haveConfig=1
+ # host defaults to "mysql" below if unspecified
+ : "${WORDPRESS_DB_USER:=${MYSQL_ENV_MYSQL_USER:-root}}"
+ if [ "$WORDPRESS_DB_USER" = 'root' ]; then
+ : "${WORDPRESS_DB_PASSWORD:=${MYSQL_ENV_MYSQL_ROOT_PASSWORD:-}}"
+ else
+ : "${WORDPRESS_DB_PASSWORD:=${MYSQL_ENV_MYSQL_PASSWORD:-}}"
+ fi
+ : "${WORDPRESS_DB_NAME:=${MYSQL_ENV_MYSQL_DATABASE:-}}"
+fi
+
+# linking backwards-compatibility
+if [ -n "${!MYSQL_ENV_MYSQL_*}" ]; then
+ haveConfig=1
+ # host defaults to "mysql" below if unspecified
+ : "${WORDPRESS_DB_USER:=${MYSQL_ENV_MYSQL_USER:-root}}"
+ if [ "$WORDPRESS_DB_USER" = 'root' ]; then
+ : "${WORDPRESS_DB_PASSWORD:=${MYSQL_ENV_MYSQL_ROOT_PASSWORD:-}}"
+ else
+ : "${WORDPRESS_DB_PASSWORD:=${MYSQL_ENV_MYSQL_PASSWORD:-}}"
+ fi
+ : "${WORDPRESS_DB_NAME:=${MYSQL_ENV_MYSQL_DATABASE:-}}"
+fi
+
+: "${WORDPRESS_DB_HOST:=mysql}"
+: "${WORDPRESS_DB_USER:=root}"
+: "${WORDPRESS_DB_PASSWORD:=}"
+: "${WORDPRESS_DB_NAME:=wordpress}"
+: "${WORDPRESS_DB_CHARSET:=utf8}"
+: "${WORDPRESS_DB_COLLATE:=}"
+
+# Wait
+
+until mysql -s -h ${WORDPRESS_DB_HOST} -u ${WORDPRESS_DB_USER} -p${WORDPRESS_DB_PASSWORD} -e"quit" ${WORDPRESS_DB_NAME}; do
+ >&2 echo "Mysql is unavailable - sleeping"
+ sleep 1
+done
+
+>&2 echo "Mysql is up - proceeding"
+
+if [[ "$1" == apache2* ]] || [ "$1" == php-fpm ]; then
+ if [ "$(id -u)" = '0' ]; then
+ case "$1" in
+ apache2*)
+ user="${APACHE_RUN_USER:-www-data}"
+ group="${APACHE_RUN_GROUP:-www-data}"
+
+ # strip off any '#' symbol ('#1000' is valid syntax for Apache)
+ pound='#'
+ user="${user#$pound}"
+ group="${group#$pound}"
+ ;;
+ *) # php-fpm
+ user='www-data'
+ group='www-data'
+ ;;
+ esac
+ else
+ user="$(id -u)"
+ group="$(id -g)"
+ fi
+
+ # TODO : create .env file if needed
+ if [ ! -e .env ] && [ "$haveConfig" ]; then
+ cat > .env <<-EOF
+ DATABASE_URL=mysql://${WORDPRESS_DB_USER}:${WORDPRESS_DB_PASSWORD}@db:3306/${WORDPRESS_DB_NAME}
+ WP_HOME=http://pharmakon.test:8080
+
+ WP_SITEURL=\${WP_HOME}/wp
+ WP_ENV=development
+
+ AUTH_KEY='$(generate_rnd)'
+ SECURE_AUTH_KEY='$(generate_rnd)'
+ LOGGED_IN_KEY='$(generate_rnd)'
+ NONCE_KEY='$(generate_rnd)'
+ AUTH_SALT='$(generate_rnd)'
+ SECURE_AUTH_SALT='$(generate_rnd)'
+ LOGGED_IN_SALT='$(generate_rnd)'
+ NONCE_SALT='$(generate_rnd)'
+ EOF
+
+
+ chown "$user:$group" .env
+
+
+ if ! TERM=dumb php -- <<'EOPHP'
+<?php
+// database might not exist, so let's try creating it (just to be safe)
+
+$stderr = fopen('php://stderr', 'w');
+
+// https://codex.wordpress.org/Editing_wp-config.php#MySQL_Alternate_Port
+// "hostname:port"
+// https://codex.wordpress.org/Editing_wp-config.php#MySQL_Sockets_or_Pipes
+// "hostname:unix-socket-path"
+list($host, $socket) = explode(':', getenv('WORDPRESS_DB_HOST'), 2);
+$port = 0;
+if (is_numeric($socket)) {
+ $port = (int) $socket;
+ $socket = null;
+}
+$user = getenv('WORDPRESS_DB_USER');
+$pass = getenv('WORDPRESS_DB_PASSWORD');
+$dbName = getenv('WORDPRESS_DB_NAME');
+
+$maxTries = 10;
+do {
+ $mysql = new mysqli($host, $user, $pass, '', $port, $socket);
+ if ($mysql->connect_error) {
+ fwrite($stderr, "\n" . 'MySQL Connection Error: (' . $mysql->connect_errno . ') ' . $mysql->connect_error . "\n");
+ --$maxTries;
+ if ($maxTries <= 0) {
+ exit(1);
+ }
+ sleep(3);
+ }
+} while ($mysql->connect_error);
+
+if (!$mysql->query('CREATE DATABASE IF NOT EXISTS `' . $mysql->real_escape_string($dbName) . '`')) {
+ fwrite($stderr, "\n" . 'MySQL "CREATE DATABASE" Error: ' . $mysql->error . "\n");
+ $mysql->close();
+ exit(1);
+}
+
+$mysql->close();
+EOPHP
+ then
+ echo >&2
+ echo >&2 "WARNING: unable to establish a database connection to '$WORDPRESS_DB_HOST'"
+ echo >&2 ' continuing anyways (which might have unexpected results)'
+ echo >&2
+ fi
+ fi
+
+ # now that we're definitely done writing configuration, let's clear out the relevant envrionment variables (so that stray "phpinfo()" calls don't leak secrets from our code)
+ for e in "${envs[@]}"; do
+ unset "$e"
+ done
+fi
+
+# Always lauch composer to install or update dependencies
+composer --no-interaction install
+
+# first arg is `-f` or `--some-option`
+if [ "${1#-}" != "$1" ]; then
+ set -- composer exec wp "$@"
+fi
+
+# if our command is a valid wp-cli subcommand, let's invoke it through wp-cli instead
+# (this allows for "docker run wordpress:cli help", etc)
+if composer exec wp --path=/dev/null help "$1" > /dev/null 2>&1; then
+ set -- composer exec wp "$@"
+fi
+
+
+exec "$@"